
悟空(WuKong)計畫是在Intel-臺大創新研究中心發展的專案,致力於開發物聯網的中介軟體(IoT Middleware)。
悟空計畫的目的是讓使用者設計、開發硬體獨立的物聯網應用,因此使用者能夠更容易的配置並動態部署他們的應用到各式各樣的物聯網平台。
悟空物聯網中介軟體有以下特點:
虛擬化物聯網裝置: 虛擬化物聯網裝置使得應用程式能獨立於硬體層次,並且能夠簡化物聯網服務在不同裝置的遷移,而不需要重新設計應用程式。因此,使用者部署他們的應用到各式各樣的平台時,他們並不需要寫出與硬體、網路通訊相關的代碼。
基於流程的編程環境: 悟空提供了資料流編程(flow-based programming)。在此編程環境,使用者可以定義資料流與流程控制來搭建物聯網應用。 使用者只需要從悟空組件庫選擇所需的組件,拖曳至編程的畫布上,接著使用單向鏈接串起各組件。應用程式的資料流在部署階段對應與編譯至合適的服務或是硬體設施。
異質與虛擬服務: 悟空中介軟體在不同的硬體平台上使用了虛擬機器來簡化應用的部署與遷移,也能夠實現虛擬化的物聯網服務(以Python實現),來支援網路相關的資料服務或者使用者介面,以運行在微型裝置,電腦,或是智能手機。此外,基於Dajeerling的微型Java虛擬機也包含在悟空中介軟體中,因此系統能夠動態新增應用程式碼於微型裝置上。
部署時期服務映射: 為了支援異質與日新月異的硬體平台,悟空將軟體上的物聯網服務與硬體上的物聯網裝置的綁定延後到了部署時期。 因此在開發應用時,平台相關屬性與配置(如阜號分配、針腳配置)都可被簡化。與平台相關的屬性會在註冊至悟空系統時被悟空主服務蒐集,主服務接著會使用這些屬性來生成適當的配置進而生成物聯網服務的可執行代碼。
在這份手冊中,我們使用了指令、範例來展示如何配置一個悟空環境以及開發悟空物聯網應用。這份文件包含了所需的系統工具套件的說明、硬體與韌體配置、主服務器的安裝及操作、感測裝置連接、以及進階物聯網裝置的支援。所有會用到的硬體及軟體都是公開的。透過公開這項計畫,我們希望未來能夠使得物聯網更容易開發及部署。