導讀:什么是物聯網? 物聯網工程師需要具備什么技能?
什么是物聯網?
物聯網工程師需要具備什么技能?
01什么是物聯網?
物聯網是新一代信息技術的重要組成部分,也是"信息化"時代的重要發(fā)展階段。其英文名稱是:"Internet of things(IoT)"。顧名思義,物聯網就是物物相連的互聯網。這有兩層意思:其一,物聯網的核心和基礎仍然是互聯網,是在互聯網基礎上的延伸和擴展的網絡;其二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信,也就是物物相息。
物聯網通過智能感知、識別技術與普適計算等通信感知技術,廣泛應用于網絡的融合中,也因此被稱為繼計算機、互聯網之后世界信息產業(yè)發(fā)展的第三次浪潮。物聯網是互聯網的應用拓展,與其說物聯網是網絡,不如說物聯網是業(yè)務和應用。因此,應用創(chuàng)新是物聯網發(fā)展的核心,以用戶體驗為核心的創(chuàng)新2.0是物聯網發(fā)展的靈魂。
活點定義:利用局部網絡或互聯網等通信技術把傳感器、控制器、機器、人員和物等通過新的方式聯在一起,形成人與物、物與物相聯,實現信息化、遠程管理控制和智能化的網絡。物聯網是互聯網的延伸,它包括互聯網及互聯網上所有的資源,兼容互聯網所有的應用,但物聯網中所有的元素(所有的設備、資源及通信等)都是個性化和私有化。
物聯網其實是互聯網的一個延伸,互聯網的終端是計算機(PC、服務器),我們運行的所有程序,都是計算機和網絡中的數據處理和數據傳輸,除了計算機外,沒有涉及任何其他的終端(硬件)。
物聯網的本質還是互聯網,只不過終端不再是計算機(PC、服務器),而是嵌入式計算機系統(tǒng)及其配套的傳感器。這是計算機科技發(fā)展的必然結果,為人類服務的計算機呈現出各種形態(tài),如穿戴設備、環(huán)境監(jiān)控設備、虛擬現實設備等等。只要有硬件或產品連上網,發(fā)生數據交互,就叫物聯網。
物聯網的定義是:利用二維碼、RFID、紅外感應器、GPS、等各種感知技術和設備,使任何物體與網絡相連,全面獲取現實世界的各種信息,完成物與物、人與物的信息交互、以實現對物體的智能化識別、定位、跟蹤、管理和控制。
既然如此,讓我們看看需要做些什么:現在每個家庭都會使用WiFi,WiFi是由無線路由器發(fā)射出來的。一個無線路由器,可以說就是一個局域網(LAN)。只要把那些電子設備連到家里的WiFI,就可以通過終端控制他們了??墒牵F在我們常見的能連上WiFi的設備,只有手機和電腦。電視機、空調和電燈都是連不到WiFI的東西。
那么,怎樣把電燈連到網絡呢,這個時候就需要修改電路了——在電燈這個電路里面加一個網絡模塊。說起來簡單做起來難,現在家用電燈都是日光燈什么的,里面還有什么鎮(zhèn)流器。這個時候,就需要有相關專業(yè)知識才行了。當然現在也有大功率LED燈了,其發(fā)光亮度堪比日光燈,至于能不能替代日光燈成為主流產品,拭目以待。
電燈說完了,下面談談終端。一般人可能理解不了終端是什么意思。對內行人來說,就是客戶端(Client);對外行人我就用手機電腦這些名詞代替。想要手機要控制電燈,就需要有一個APP,APP怎么開發(fā)啊?安卓手機可以用Android SDK,開發(fā)語言是Java;蘋果手機是Xcode,開發(fā)語言是Objective-C。
那我們能不能用電腦控制呢?可以啊,我們可以用網頁來控制,這是Web開發(fā)。相對的,有客戶端就有服務器(server),那個怎么給燈泡里弄一個服務器呢?這個時候就需要給燈泡嵌入一個芯片了,燈泡與芯片結合,就是一個嵌入式系統(tǒng)了。
嵌入式系統(tǒng),就是以應用為中心,以計算機技術為基礎,軟硬件可裁剪的專用計算機系統(tǒng)。嵌入式這一領域,可以分為嵌入式硬件和嵌入式軟件。比如,我思考著搭一個電路,使電燈這個電路受于芯片的控制,這就是嵌入式硬件;電路搭建好了,我就想著在芯片上寫一個小小服務器,或者說就寫個小程序,可以用手機通過WiFi來控制該芯片,這就是嵌入式軟件。什么?你覺得WiFi學起來太難?那就使用藍牙唄。藍牙和WiFi都是同一種東西,無線局域網(WLAN)。
由于我們是在局域網內監(jiān)控,當你離開了局域網就不能監(jiān)控它們了。這個時候就需要把設備連到外網(WAN),需要知道更多的網絡知識,于是,云就產生了。什么云服務、云平臺、云計算、云存儲,哎呀,我不是很懂這些,我只聽說過云計算是物聯網的基礎。以上,就是為什么我說網絡知識是基礎。
02物聯網測試工程師需要掌握的5項技能
1適應灰盒測試
在物聯網環(huán)境下,各種傳感器、監(jiān)測設備以及智能終端可以通過多種協(xié)議接入網絡,用戶對這些設備的使用方式和使用環(huán)境也無法確定,因此為了保證設備運行的穩(wěn)定性和可靠性,測試人員需要對產品進行灰盒測試。 也就是說測試團隊不僅需要像白盒測試那樣驗證應用程序的功能,還需要像黑盒測試那樣深入其內部結構, 為了做到這一點, 測試人員必須盡可能多地收集與設備API、第三方服務以及連接協(xié)議等內容相關的信息,精心設計測試用例,以便于覆蓋盡可能多的用例場景。
2嵌入式系統(tǒng)的知識
嵌入式開發(fā)一直是一個比較低調的技術領域,相對于Web開發(fā)和企業(yè)級開發(fā)而言,嵌入式開發(fā)似乎很少在互聯網上發(fā)出聲音。但是隨著智能手環(huán)、智能手表和智能眼鏡等穿戴式設備的興起, “嵌入式”這一概念迅速地以燎原之勢再次成為了當今科技界的熱點之一。
但不可否認的是,雖然嵌入式概念至今已經過了長足的發(fā)展,到目前為止依然沒有擁有像iOS和Android這樣知名的、被良好維護的操作系統(tǒng)和支持工具。雖然流行的Ubuntu和Debian都為ARM架構的自帶MMU(Memory Management Unit,內存管理單元)設備進行過安裝包的開發(fā),但是對于開發(fā)者而言依然需要掌握交叉編譯等基礎技能才能入門嵌入式開發(fā),而作為這一領域的質量把控者,如果物聯網測試人員沒有一定的嵌入式知識,依然無法做好全面的測試工作。
3能執(zhí)行有效的仿真
物聯網實現了萬物互聯,其設備形形色色,規(guī)模空前龐大,協(xié)議各不相同,環(huán)境錯綜復雜,這意味著測試人員無法針對每一種設備,每一種協(xié)議,每一種使用環(huán)境構造全面的測試用例,即使理論上能夠實現也需要付出極大的成本。為此,測試人員必須具備仿真的能力,常常需要在單一的物理設備上創(chuàng)建各種各樣的虛擬設備和虛擬網絡,從而模擬各種不同的用例場景,以達到測試的目的。仿真不僅能夠節(jié)約時間和金錢,還具有物理環(huán)境所不具備的擴展性。
4處理數據峰值和突發(fā)的使用模式
在虛擬桌面基礎設施領域有一種現象稱為“啟動風暴(Boot Storm)”:所有人都試圖在同一時刻(通常是早晨)登錄他們的VDI解決方案,以致于后端系統(tǒng)響應很慢,用戶體驗很差。那么對于物聯網來說情況是怎樣的呢?
很多情況下,我們會面臨同樣的問題。例如,在智能家居領域,用戶上班后家里的各種聯網設備基本處于關閉或者待機狀態(tài),這時候數據流很小,后端系統(tǒng)幾乎沒有壓力,但是當用戶回家之后,接入家庭WiFi網絡的各種設備便會運轉,例如電視機、電腦、Pad和手 機,正如這時候通常會產生用電峰值一樣,數據峰值也會在此時產生,從而對后端系統(tǒng)造成極大的壓力。同樣的情況在智能交通領域也會存在,例如因為上下班而造成的堵車高峰,因為節(jié)假日而造成的高速癱瘓。 這對于大部分物聯網測試團隊而言都是新的挑戰(zhàn)。
5無處不在的數據安全
物聯網潛在的數據安全問題是眾所周知的,但正如尼古拉斯·埃文斯在《Computer world》里所提到的:對于物聯網供應商來說,安全通常是后考慮的問題。在物聯網普及并滲透到人們的日常生活之前,或許可以這樣做,但是隨著大眾對物聯網的認可和使用程度越來越高,這已經成為了一個亟需解決的問題。如果說在物聯網的發(fā)展前期,供應商需要通過創(chuàng)新吸引用戶,那么在后期就必須通過穩(wěn)定性和安全性留住用戶。但現實情況是,面對規(guī)模如此龐大、種類如此豐富的設備、應用和服務,人們很難實現一種有效而又全面的防護策略。對物聯網測試團隊而言,這無疑具有極大的挑戰(zhàn) 。
總而言之,物聯網這東西,是在現有成熟的技術上發(fā)展而來的,絕對不是如電子、計算機、通信這些已經有獨立的學科的技術了,物聯網是前面三者的大融合!