從軟體開發看 IoT 的機會

台灣微軟 雲端事業發展副總經理 周旺暾

      近年來物聯網(IoT)成為最熱門的話題,許多大型晶片公司聯合硬體製造商,大量投入物聯網的研發,而以物聯網為目標的新創公司也紛紛設立,以爭取更多投資人的關注。隨著物聯網的發展,過去這只是硬體工程師與嵌入式系統的議題,需要更多專業人才的加入,延伸到原來網際網路的領域,包括後端軟開發及前端工程,以及最近另一個熱門的資料科學家。

智慧裝置的4個階段

      暫不考慮物聯網裝置連上網路要做什麼,我們先來談談裝置本身,由於晶片的成本不斷下滑,加上各種新型的感測器被發展出來,使得我們有機會在極小的電路板上,以很低的成本開發出特殊應用的智慧裝置 (Smart Things)。最近有人給開發全新的智慧裝置的人一個酷炫的名子–創客(Maker)。不管你想成為什麼樣的創客,一定要知道智慧裝置依其競爭力可分為四個階段:

  1. 監測(Monitor):這是最基本的,將感測元件所收到的資料,送回主控台。
  2. 控制(Control):智慧裝置可以接受主控台的命令,啟動開關、調整設定。
  3. 優化(Optimize):在監測數據與控制之間,加入演算法來優化,讓監測數據可以依演算法回饋給控制命令。
  4. 自主管理(Autonomy):在優化的演算法後,再加入一點機器學習的能力以及外部資料參考的能力,讓智慧裝置更聰明。

      就以當前流行的四軸飛行器為例,最早大家只是在遙控直升機上裝上攝影機,希望做成便宜的無人飛行器,這只是監測與控制;後來有人將直升機擴張到4個旋翼,再加入平衡感測器,以及維持平衡的演算法,這就是優化;然後再加上 GPS 定位,結合主控台的指令,可以做到定點之間的移動,這是進一步的優化。然而,怎樣才算是自主管理呢?這必須加上一點學習能力才行,例如:不同的載重、不同的風,自動調整飛行的設定。

      從智慧裝置的角度來看,軟體開發人才的機會是在優化與自主管理的階段,因為硬體與嵌入式系統工程師並不善長這一部份工作。

聯網裝置的4個工作

      將各種裝置連上網路形成物聯網,也可以分為4個部份的工作(不是4個階段):

  1. 產品(Products):由裝置所構成的產品,通常就是前面所提到的智慧裝置。

  2. 連網(Connectivity):這部份要考慮的是連網的所使用的技術以及相關的問題,包括傳輪協定、訊息標準、安全、格式、資料型態、網路優化及管理。
     

  3. 資料(Data):物聯網的資料個別算起來都不算大(影音資料除外),但是訊息量驚人,部份資料需要即時處理,有些資料則必須結合其他數據一起分析才會有意義。這裡的工作包括資料輸入、儲存與分析三部份。資料輸入格式應儘可能採取開放的協定,如:HTTP, AMQP…等,而資料的接受端要考慮即時的延展性 (scalability)。千萬不要以為當前主流的雲端業者所提的的網站或虛擬機器的自動延展是夠用的,這些以網頁服務為導向的設計,自動延展常需延遲5到10分鐘才能準備好新的機器,以網站服務的角度看可能足夠,但以物聯網的角度看,表示我們可能會收不到10分鐘左右的數據。在無法預測何時物聯網應用會爆量的情狀下,不能事前將所需的運算資源預先準備好。因此,選擇雲端平台不要使用 IaaS 作為資料接收端,儘可能選擇 PaaS來接收資料,最好是有針對IoT優化的PaaS資料接收服務。

    資料儲存時,先考慮放進noSQL的儲存區, 由於物聯網的數據多是以 Name-Value的方式呈現,在資料尚未處理之前,大多數的的noSQL儲存都可輕易管理它,包括MangoDB, DocumentDB, HDFS, Azure Table/Blob, AWS S3…等等。資料處理時,考慮能有效處理這些資料的工具,Apache 基金會最近有一些新的資料處理引擎,如:Apache Storm 作為分散式即時資料處理之用,Apache Spark 比 MapReduce 更有彈性的平行運算引擎。分析處理後的資料,再放進SQL儲存中,以加速提取資訊的效率。
     

  4. 運用(Consume):將資料分析的結果,運用到各種不同的地方,包括傳送到手機端與使用者互動、作成報表給數據提供者與資料管理者使用、回傳到優化階段演算法中以改善演算法的功效、或是提供給其他大數據應用參考。

      除了第一部份工作是產品的定義與設計外,其他的工作都是軟體開發相關的雲端與資料處理機會。

物聯網賺錢的3個步驟

      最後,我們來談物聯網的商業模式。物聯網最難賺錢的是銷售裝置本身,因為物聯網裝置要達到一定的市場有效性,一定要售出相當數量;加上物聯網裝置設計,多是以簡單的感測元件與必要的通訊元件構成,客戶不會像換手機一樣的經常去更新它。因此,物聯網裝置要在可靠性的前提下,儘可能做到最低成本。此外,來自中國的山寨威脅,永遠都會有人可以更低的成本,來提供同樣的硬體 (例如知名的米鍵)。

      因應山寨的威脅,最佳的策略是放棄硬體的毛利,反過來利用深圳的製造能力成為你的供應商,另一方面以提供服務守住消費者。從商業模式來看,物聯網有3種獲利的方式:

  1. 提升效率 (Improve Efficiency):利用即時收集的監測數據,幫助自已或使用者降低成本,對使用者而言,你銷售的就不是物聯網裝置,而是提昇效率並降低成本的方案。例如:工業自動化利用數據改善製造效率,設備監控與分析以提高妥善率、醫院利用連結的數據減少犯錯的機會、農場利用收集的資訊精準供應水、光線、肥料。
  2. 啟動創新 (Enable Innovation):綜合多種來源的即時資料,分析市場的變化,以隨時反應市場變化,例如;加油站將加油數量結合客戶行動App,進一步改善客戶忠誠度計劃;或者是分析歷史資料,以預測市場需求,例如:綜合歷史天候資料及即時監控資料,預測高單價農產品的品質。
  3. 轉型服務 (Transform Your Business):以提供資 料服務給客戶取代原來的銷售商品給客戶,例如;分析客戶的運動資料提供客戶健身、減重等建議與諮詢服務,健身手環直接送給客戶;分析客戶的貴重設備監測及使用資訊(如:汽車、大型空調…等),提供客戶必要的維修諮詢,在兼顧妥善率的前提下幫客戶降低成本;以租用與服務的方式向客戶收費,讓客戶不用擔心持有設備的後續使用與維護。

      物聯網將啟動新一波的產業革命,這一波的革命將由網際網路延伸開來,對硬體工程師來說當然是更多的挑戰,而對軟體開發人員而言,則是更多的機會,物聯網是基於現有的網際網路的基礎,未來有更多的應用等著我們去開發。