張 策,初佃輝,呂為工,柏 軍,李劍雄
(哈爾濱工業大學(威海) 計算機科學與技術學院,山東 威海 264209)
自2010年以來,在政府政策、產業開發、創新創業等方面,物聯網IoT(internet of things)發展迅猛[1-3],并逐漸演進成為各層面的主導方向,尤其在技術上與云計算、大數據等形成交叉[4],對綜合性人才提出了迫切需求,那么如何在當前實際教學中培養出優秀的物聯網人才?另一方面,隨著時代的進展,計算機系統綜合能力培養目標的導向是什么?即需要找到一個具體的目標定位。
依據對物理世界的感知、信息傳輸和數據處理,物聯網的體系結構被公認為由3個層次構成,即感知層、傳輸層和應用層。
圖1所示為物聯網3層結構圖。可以看出,物聯網包括傳統的軟件、硬件和網絡3個部分,從上層應用到下層的物理設備被劃分為應用層、傳輸層和感知層。
物聯網最上層為應用層,主要負責對數據進行智能處理與展示,關鍵是實施數據挖掘和決策;中間層為網絡層(即傳輸層),主要負責融合接入和信息存儲;最下層為感知層,主要負責智能嵌入式、標識物品、感知物品、協同和互動。從數據流向與處理的角度,物聯網包括統一標識、全面感知、可靠傳送、智能處理、產業應用,最終實現對物理世界的“感、知、控”。
物聯網包含的內容較為龐雜,對于如何在教學中理順內容關系,把握住主要技術脈絡至關重要。結合多年的教學與科研經驗,我們給出圖2所示的以技術、功能和數據流向為核心視角的物聯網層級結構圖。

圖1 物聯網3層體系結構

圖2 物聯網層級圖——以技術、功能和數據流向為核心視角
結合圖2,教學中首先要明確做到對物聯網具備宏觀的認識:①無感知層的物聯網,剩下網絡層與應用層,就是互聯網;②應用層依舊是計算機端開發出來的運行在各種計算平臺上的應用;③物聯網中的“物”是智能的嵌入式設備,包括單一智能化設備或傳統設備進行智能化改造(如添加感知裝置、處理芯片、模塊等)后的復合式智能化設備。
從技術角度,可以形象地概括為“物聯網將IT技術一網打盡”,囊括當前信息產業的主流技術。
雖然當前在物聯網課程改革[5-6]、教學實踐[7-8]、專業建設[9-10]、實驗室建設[11]、人才培養策略[12]等方面取得了一定研究成果,但是始終沒能夠提出具有計算機類專業系統能力培養這一目標牽引性的物聯網人才培養模式,因此亟待突破。這樣,提煉出適宜于當前教學中的技術學習路線成為物聯網人才培養的關鍵。
文獻[13—14]首次提出物聯網全棧人才的基本含義,我們將其進行進一步修改如下:
物聯網全棧人才:全棧開發者FSD(full stack developer)是指那些熟練掌握和設計物聯網體系結構,具備感知層設備和嵌入式系統設計與開發能力、網絡層多種通訊協議和應用層綜合開發能力的專業人才。
具體而言,FSD必須要懂基礎設施、傳感器、網關、網絡(個域網、局域網、廣域網、移動通信網和互聯網)、數據庫、Web開發中的后端開發技術(以Java、Python和Ruby為編程語言的B/S開發框架)和前端開發技術(JavaScript、HTML、CSS以及各種開發框架),甚至大數據、云計算、網絡安全等技術,整體上與圖2中的技術相對應。
相應地,我們提出圖3所示的FSD技術架構與學習路線。
在感知層,主要以嵌入式系統的學習為主,傳統的以單片機或ARM CPU等為核心的嵌入式系統開發與設計技術是主流。此外,近些年來隨著開源硬件(樹莓派、Arduino、MakeBlock、Twine、Nest等)的出現和流行,嵌入式系統開發的難度大大降低,使得計算機類專業學生進行自設計與開發的能力得到提升;相應的FPGA開發技術也使得硬件系統開發在軟件開發人員中成為可能。
在傳輸層,主要以互聯網技術學習為主,OSI7層或TCP/IP5層網絡架構與物聯網中各類常見無線通信協議(藍牙、Zigbee、WiFi、WiMax等)關聯密切,因此,掌握傳輸層技術成為可能。
在應用層,主要以程序開發為主,包括主流的Web開發(Web Server、Application Server、Web Services,尤其是基于框架技術)、移動端開發(Android或iOS平臺下APP開發等)、PC端開發(基于高級語言的常規C/S結構開發)等。
在服務上,物聯網云平臺成為物聯網系統對外提供服務的重要載體和方式,提供有數據處理軟件和操作語言,只要按照它的規則,用戶就可以實現將自身設備感知或采集的數據傳到此平臺上,用它的方法處理數據并展示。物聯網云平臺,即物聯網數據中心,由專業的物聯網服務商提供,國外的有(開源)物聯網(服務)平臺,如xively(https://xively.com/,以前叫做Pachube等名稱),國內知名的物聯網云平臺包括Yeelink(http://www.yeelink.net/))、樂聯網(http://www.lewei50.com)等。
綜上,我們提出最基本的適合FSD學習的方法:基于開源硬件制作嵌入式產品或者系統,并將其通過互聯網連接到(基于開源或不開源的)物聯網服務/數據平臺上,進行數據處理或者展示,由此基本實現一個物聯網的基本架構——可以把一個個感知層采集的信息,傳輸到(開源)物聯網(服務)平臺上,平臺會對數據進行處理,并以直觀的方式(如圖形、圖像、聲音、智能化的決策結果等)呈現出來,使得無論身處何處的用戶都能看到,甚至進而借助這個平臺進行控制。

圖3 涵蓋嵌入式開發技術、移動應用程序開發技術和Web開發技術的物聯網系統技術學習路線
物聯網時代,FSD人才緊缺成為制約物聯網發展的一個主要瓶頸,亟須加大教學中人才培養的力度,為此,如何探索出一條合適的物聯網技術學習框架和路線,并在教學中進行積極實踐顯得尤為迫切。
計算機專業相比于其他理工類相關專業的優勢在于具有對計算機系統的綜合掌握與運用能力,更加注重計算機系統的整體性,包括計算機硬件系統、軟件系統和網絡3個層面,這奠定了日后成為計算機系統專業人才的基礎。
物聯網時代的到來,需要更多掌握物聯網3個層次的基本理論與關鍵技術的復合式人才,由此,物聯網全棧人才成為計算機專業系統能力培養的有力抓手。
以我校計算機專業培養方案中的部分課程設置為例進行分析,圖4展示了與物聯網體系結構相對應的課程設置。
可見,圖4中的課程體系與物聯網3層結構一一對應,這表明當前國內計算機類專業學生培養的課程體系足以支撐起物聯網技術的學習,完全能夠具備培養FSD的基本條件。
在開源硬件以及硬件設計程序化(如FPGA、CPLD的普及)的背景下,計算機類專業學生的知識結構完全可以使其勝任感知層嵌入式設備與智能硬件的開發,這些在這幾年我院的課程實驗(一般為12~16學時)與課程設計(一般為2周)、畢業設計(一般為14周)等環節中已得到充分驗證。

圖4 課程與實踐主線奠定IoT理論與實踐基礎

圖5 基于Modbus協議的物聯網系統
在實踐環節,我們設計了基于Modbus協議的物聯網系統,圖5給出了整體的結構圖示。系統由4個部分組成,包括下位感知設備、物聯網終端(可視為網關)、服務器和上位機。在結構上,感知設備和物聯網終端對應感知層,服務器和上位機對應應用層,通信部分對應傳輸層,系統滿足物聯網的3個層次。
要求學生完成如下任務:依據文字描述搭建出系統的結構、設計系統程序集合、設計各程序功能點、編制、燒寫(下載)、調試程序、集成測試、文檔書寫。
在創新實驗課環節,學生較好地完成除圖5中下位設備開發的全部內容;在畢業設計環節,我們將功能進一步增強,學生仍出色地完成預定功能,并獲得優秀畢業設計成績。
經過圖3中的物聯網技術路線學習和類似于圖5中的實踐環節后,初步掌握計算機系統綜合知識并基本能夠進行物聯網系統設計與開發的學生,具備了物聯網復合式人才的必要條件。文獻[13]給出了首席物聯網官(CIoTO)的稱呼,對物聯網人才的最高層次進行了明確定位。具備物聯網3層系統設計與開發的FSD,相比純粹的嵌入式開發人員或軟件開發人員,更加有能力進行物聯網系統整體開發工程的有效把控,從而更加具備物聯網人才鮮明特征,更加靠近首席物聯網官。
由于物聯網具有內容覆蓋面廣、技術密集性高、脈絡重點難掌握等特點,在教學中如何定位和培養物聯網人才成為制約點。筆者對此進行嘗試性回答,針對性地給出物聯網全棧人才概念、技術學習路線以及實踐環節樣例,希冀其能夠作為重要參考,達到有效輔助計算機類人才培養的目的。
[1]孫其博, 劉杰, 黎羴, 等. 物聯網: 概念、架構與關鍵技術研究綜述[J]. 北京郵電大學學報, 2010, 33(3): 1-9.
[2]陳海明, 崔莉, 謝開斌. 物聯網體系結構與實現方法的比較研究[J]. 計算機學報, 2013, 36(1): 168-188.
[3]沈蘇彬, 毛燕琴, 范曲立, 等. 物聯網概念模型與體系結構[J]. 南京郵電大學學報(自然科學版), 2010, 30(4): 1-8.
[4]沈蘇彬, 范曲立, 宗平, 等. 物聯網的體系結構與相關技術研究[J]. 南京郵電大學學報(自然科學版), 2009, 29(6): 1-11.
[5]姜臘林, 王靜, 徐蔚鴻. 網絡工程專業物聯網方向課程改革研究[J]. 計算機教育, 2011(19): 48-50.
[6]吳功宜. 對物聯網工程專業教學體系建設的思考[J]. 計算機教育, 2010(21): 26-29.
[7]錢紅燕, 陳兵, 燕雪峰. 物聯網教學實踐體系研究[J]. 計算機教育, 2011(23): 21-25.
[8]羅高峰, 石子娟. 物聯網教學實踐模式研究: 以基于開放平臺的網絡類課程實踐教學為例[J]. 物聯網技術, 2016, 6(7): 108-109.
[9]孫涵, 陳兵, 王立松, 等. 物聯網工程專業建設初探[J]. 計算機教育, 2012(21): 2-4.
[10]陳輝, 李敬兆, 詹林. 物聯網工程專業人才培養和專業建設探索[J]. 計算機教育, 2014(4): 13-17.
[11]陳景賢, 陳志生. 高校物聯網實驗室建設與應用[J]. 實驗室研究與探索, 2013(8): 451-453.
[12]徐小龍, 魯蔚鋒, 楊庚. 物聯網專業人才培養策略研究[J]. 南京郵電大學學報(社會科學版), 2012, 14(1): 119-124.
[13]鳳凰科技. 物聯網時代即將到來: 未來三種職業最吃香[EB/OL]. (2016-06-12)[2017-07-23]. http://tech.ifeng.com/a/20160612/41621579_0.shtml.
[14]Zhang C, Chu D H, Meng F C, et al. Teaching research on IoT and embedded system of software engineering[J]. 計算機教育,2016(8): 19-25.