華中科技大學控制科學與工程系自動化專業2008級 沙雨萌
物聯網(the internet of things)前景非常廣闊,它將極大地改變我們目前的生活方式。物聯網把我們的生活擬人化了,萬物成了人的同類。在這個物物相聯的世界中,物品(商品)能夠彼此進行“交流”,而無需人的干預。當信息被分享并相互關聯時,智能化的效果就會大大提升。如何讓各種智能設備連接 IP 網絡并融入上層的應用系統,就變得至關重要。
當前智能建筑系統包括了20~30個子系統,子系統分成兩大類:常規應用和專業應用。絕大部分常規類應用子系統和幾乎全部專業應用子系統均為網絡化/IP網絡化架構,建筑設備監控、安防、一卡通等已經構成IP網絡平臺上的集成融合子系統。智能建筑技術遍及各個行業,從初始的弱電集成,發展成為如今的綜合系統集成,智能建筑技術成為構建數字城市的核心技術之一,也是構建綠色建筑的重要技術。
物聯網的形態存在如下三部分內容:一部分是傳感器聯網,一部分是互聯網(IP)協議棧,一部分是 web。在智能建筑系統中,設備經過傳感器聯網技術接入其所在的子系統,再通過以太網技術組建監控網(設備網站),因而可以說許多子系統已經是準物聯網形態,或者已經是物聯網形態。

圖1 智能建筑物聯網形態
建筑設備監控系統目前常用三層結構:管理層、控制層、現場總線。設備經傳感器聯網的特點是物與物、物與人,多IO、實時、面向現場總線。現場總線有 LonWorks/BACnet/Modbus等等,非TCP/IP協議棧網絡。形成連接互聯網架構的邏輯設備,構建設備網站,實現管理和監控功能。
為方便控制網形成物聯網形態,Tridium公司2009年8月推出開源軟件編程開放平臺 Sedona Framework,利用Sedona技術很容易把現場總線上的物理設備形成Sedona設備,通過B/S(web)訪問模式對Sedona設備進行管理和監控。
Sedona技術主要分為三大部分:Sedona語言(Sedona Programming Language),Sedona虛擬機(Sedona Virtual Machine,SVM)和Sedona平臺(Sedona Running Environment)。
Sedona程序語言是目前最先進的用于嵌入式應用程序開發的面向組件編程語言,它的語法和Java、C# 相當類似。Sedona的設計者致力于讓Sedona語言更為強大,同時他們也嘗試避免其他面向對象編程語言(C++,Java)所有的過分復雜的特點。設計者通過讓Sedona語言更為簡易好用,使得程序員能寫出更強大且無錯誤(bug-free)的代碼。
Sedona虛擬機,或稱Sedona解釋器(interpreter),是Sedona安裝系統(installation)最重要的一部分。Sedona程序被設計成具有可移植性,但也只能在安裝了Sedona解釋器的平臺上運行。SVM不只用于桌面系統,它還被移植到DDC、機頂盒、無線收發器等任何安裝了具有Sedona解釋器的嵌入式操作系統中。雖然解釋器在一般的概念中被認為是個不具備高性能的系統,但是 SVM 的性能卻表現得非常優異,同時還在不斷的進步當中。值得特別注意的是,憑借 SVM 技術編譯的應用程序非常小,非常適用于嵌入式硬件平臺,同時,Sedona byte code 還可以被轉換為本地平臺使用的機器語言,從而加快了需要重復運行的程序代碼的運行效率。
Sedona平臺有時候被稱為 Sedona運行環境或是核心Sedona API(Application programming interfaces)。所有使用Sedona語言編寫的程序都必須依賴構成 Sedona平臺的預定義集合才能順利運行。Sedona類被分為多個不同的元件(Kit),Sedona平臺的元件依功能來定義,如輸入/輸出、網絡、創建、安全性以及其他許許多多的功能。Sedona平臺可以使用其他額外的標準擴展功能(standard extensions),而這些擴展API僅存在于某些Sedona安裝系統中,并不保證存在于所有的安裝系統中。
程序員使用Sedona語言來編寫Sedona應用程序、Sedona組件等,Sedona應用程序調用Sedona平臺的核心APIs,當Sedona程序被編譯時,它會被轉換成字節碼(byte code),字節碼是基于CPU架構(即SVM)的具有可移植性的機器語言。SVM可直接以硬件方式來實現,但通常都是以軟件程序的形式來表現,而字節碼便是由 SVM 來解釋與運行的。綜上所述,Sedona平臺是一套與硬件平臺和操作系統無關的,用于構建以網絡為中心的嵌入式智能設備的軟件平臺架構技術。
經過大量的工程實踐表明,基于Sedona技術開發的產品在物聯網的實際運用中有如下優勢:
3.1 強大的可移植性
Sedona平臺最主要的核心價值是“一次編寫,到處運行”。以商業術語來說,這句代表Sedona技術最重要的承諾是你只要寫一次程序(即可被編譯為字節碼在Sedona平臺上運行),便能在任何地方運行該應用程序。類似于Java虛擬機(JVM),當移植完畢基于自己硬件架構的SVM后,Sedona程序編譯的字節碼就可由 SVM 解釋并運行,一套相同的代碼在不同的Sedona設備運行上可以獲得相同的輸出。
3.2 以網絡為中心的程序設計
Tridium一直致力于設計以網絡為中心的應用程序平臺,Sedona平臺的設計者更深信其重要性,同時把 Sedona平臺設計為以網絡為中心的模式。從程序員的角度來說,Sedona提供了不同網絡拓撲結構的通信協議、編程模型。從集成使用者的角度來說,Sedona可以讓操作者通過網絡在線升級嵌入式固件程序(Firmware),甚至實時刪除、增加、修改應用程序的組件。Sedona平臺以網絡為中心的設計方式,意味著 Sedona應用程序可以動態地憑借網絡加載新設備中的功能,也可以重用需要的 Kit元件。使用這些功能的應用程序將不再只是一個個的程序代碼而已,而是成為了一個相互作用且獨立的集合。Sedona開啟了強大的嵌入式應用程序設計與開發的新紀元,它能更充分地利用物聯網資源,擴展物與物之間的“交流”,促進信息共享。
3.3 性能優異
正如前面所說,Sedona程序被編譯成具有可移植性的中間形式,即所謂的字節碼,而不是某種機器的專屬機器指令,SVM 就是解釋這些具有可移植性的程序代碼來運行 Sedona程序的。這個結構意味著Sedona程序的運行效率快過使用純解釋式語言所寫成的程序或腳本(script),但一般來說,Sedona程序的運行速度會比編譯成某個特定機器碼的 C或C++程序的運行速度慢。然而,要特別記得,雖然Sedona程序被轉換為字節碼,但并非所有的Sedona程序都是使用字節碼來實現的。為了要提高效率,Sedona平臺在計算的部分具有相當的復雜度,如字符串運作的方法都是使用機器碼來實現的。Sedona平臺運行的目標平臺是小型的嵌入式智能裝置,因此,編譯后的Sedona程序是一個輕量級的快捷應用程序,甚至可以在小于100kB內存的平臺上運行,使得使用性能已不再是個問題了。
3.4 動態及可擴充的程序
Sedona既是動態的(dynamic)也是可擴充的(extensible),Sedona程序代碼是由面向對象的模塊組件構成的,以這種形式所構成的單位稱作類(class)。類又分散存儲在不同的Kit中,同時只有在需要的時候才會被加載到SVM解釋器中。這表示應用程序可以在運行的時候決定哪些是需要的類,然后在需要的時候才加載它們;也表示程序可以憑借加載它所需要的類來動態擴充它所具備的功能。
3.5 6LoWPAN接入
Sedona提供了基于IEEE 802.15.4運行6LoWPAN的解決方案,將IP協議簇直接擴展到無線工業網。通過制造低成本,電池供電的6LoWPAN傳感器,可以很容易讓數量龐大的設備接入互聯網,極大擴展了物聯網的傳感網信息。
Sedona通過分布式決策讓所有的設備具備控制和管理的能力,變得更加智能,能夠連接到網絡的任何地方。Sedona可以讓制造廠家開發自己的可以支持互聯網的設備。這要比完全自己開發, 或是使用當今已有的那些復雜的嵌入式開發工具要簡便,快捷。
為智能裝置嵌入 Sedona芯片模組,可以解決有線和Sedona無線間通信的局限性而設計。它可以無縫地融合MS/TP總線到802.15.4協議,在802.15.4和 MS/TP上運行6LoWPAN,串行鏈路變成了高質量的網絡間的 802.15.4路由,讓每臺嵌入了該芯片的設備擁有自己的互聯網地址。
開發者的工作流程通常按圖2步驟進行:

圖2 Sedona開發工作流程
4.1 用面向對象的Sedona編程語言編寫Sedona組件,用于實現某種功能或算法。
4.2 用Sedona編譯器工具將Sedona組件源代碼編譯成工具包。在編譯的同時,該編譯器也能針對每個類產生標準的Java Class file文件,從而可以在Java虛擬機上直接運行Sedona應用代碼,以便開發者利用Java的開發調試工具對應用組件進行開發調試,從而大大提高開發效率。
4.3 開發者將組件以工具包的形式發布,由集成商選擇將哪些工具包安裝到最終的設備上去,這樣就由Sedona工具將這些工具包編譯成二進制的scode映像文件(這一步通常由工具自動完成)。集成商選擇的工具包決定了在設備上能使用的組件功能,這樣的自由選擇能力,大大提高了設備的適用范圍,使得集成者可以根據具體應用環境進行靈活的裁剪。
4.4 為智能裝置移植SVM,將scode映像文件加載到設備上運行。這些文件即可以是預先保存在設備的ROM上,從而在設備上電之后直接運行,也可以由集成者臨時選擇,通過網絡用SOX協議動態加載。這樣就使得集成者能非常靈活、方便地根據不同需求進行現場定制。
Sedona開源框架整合了最新的IT技術,如:面向對象編程語言、虛擬機、圖形化組件開發技術等等,給樓宇自動化領域帶來了一種新的解決方案,相信在本文的拋磚引玉作用下,會有越來越多的人參與到這個開源項目的開發與建設中來,那時候就會有源源不斷的新思路補充到這個開源框架里來,使其不斷壯大,給智能建筑物聯網領域注入新的活力。
[1]Tridium公司. Sedona技術手冊,2009
[2]解讀物聯網技術在智能建筑領域的發展[EB/OL]. http://article.ednchina.com/Analog/Internet_Things_intelligent_building_computing.htm