基于Android平臺的OSGi架構(gòu)中間件的研究與應用
河源理工學校 藍精衛(wèi) 2017/10/3 11:00:55
(接上頁)文把系統(tǒng)的架構(gòu)分成三個層次,每個層次按照系統(tǒng)中的所需要的優(yōu)先級別和系統(tǒng)五大模塊之間的相關依賴進行安排,得出如下圖1的中間件系統(tǒng)架構(gòu)圖:
圖1 中間件系統(tǒng)架構(gòu)圖
第一層主要是提供基本服務的模塊,Serial Bundle主要屬于Serial單元的實現(xiàn),而Preferences Bundle則屬于數(shù)據(jù)存儲單元的實現(xiàn)。第二層的兩個模塊都是屬于設備類型模塊。第三層是此中間件系統(tǒng)的最上層的模塊,本模塊的主要作用就是為了連接用戶,這里使用的基于TCP/IP協(xié)議的Socket通信技術(shù),實現(xiàn)遠程訪問此中間件。
3 系統(tǒng)實現(xiàn)
3.1 Preferences Bundle模塊
此模塊主要是為存儲信息做準備,即中間件如果要想和底層的設備節(jié)點進行通信,那么就必須區(qū)別不同的設備,同時也需要把設備的唯一性的信息記錄起來。此模塊的設計是類似于XML中的樹狀的存儲框架,根節(jié)點代表和中間件連接的協(xié)調(diào)器,而各節(jié)點的各個子節(jié)點就是和協(xié)調(diào)器進行通信的設備節(jié)點。本研究只為設備節(jié)點存儲設備的網(wǎng)絡號和設備的類型這兩個信息。最后向OSGi框架注冊服務,為要使用此模塊的存儲功能的其他模塊提供接口。結(jié)構(gòu)如圖2:
圖2 存儲的結(jié)構(gòu)圖
3.2 Serial Bundle模塊
根據(jù)中間件的功能必須和底層的協(xié)調(diào)器進行通信,本文設計的中間件系統(tǒng)通過串口和底層的協(xié)調(diào)器進行連接。而在OSGi框架中開發(fā)的程序是運行在虛擬機上的jar包,所以想要訪問硬件串口就必須使用JNI技術(shù)。本模塊通過編譯串口驅(qū)動程序生成驅(qū)動so動態(tài)庫,它能在Android環(huán)境中動態(tài)加載,就像Linux下的驅(qū)動程序一樣。然后把so動態(tài)庫提供的接口進行進一步的封裝成JAVA中的jar包。在Serial Bundle模塊中使用上述的jar包,來提供串口的服務。如圖3:
圖3 串口動態(tài)so文件的調(diào)用圖
3.3 Type0x Bundle模塊
此模塊代表兩個類型的設備,即Type01代表電飯煲和Type02電燈。這兩個模塊主要是把從Socket中接收到的客戶端的數(shù)據(jù)進行邏輯處理成硬件設備能識別的字符串,然后調(diào)用Serial Service中提供的服務,把字符串數(shù)據(jù)發(fā)送到對應底層的設備。
3.4 Socket Bundle模塊
Socket 模塊主要的功能就是負責和用戶端進行相互通信的作用,通過建立Socket服務端等待用戶的連接。它實現(xiàn)了每個客戶端的連接,為每個客戶端建立一個獨立的線程會話來進行通信。它特點是能連接多個用戶,也能響應多個用戶的操作響應。
4 基于中間件的智能家居網(wǎng)系統(tǒng)
此研究的中間件的主要用途在智能家居控制系統(tǒng)中,下圖4是智能家居控制系統(tǒng)的架構(gòu)圖,從圖中可以看出中間件系統(tǒng)具有匯集各種信息,起到承上啟下的的作用。
圖4 智能家居網(wǎng)系統(tǒng)圖
5 結(jié)論
本文研究開發(fā)的基于Android平臺OSGi框架的中間件是對中間件技術(shù)的進一步拓展,傳統(tǒng)的中間件一般都是搭建在x86平臺上的,而本文研究的是可移植到基于ARM的嵌入式平臺上,并且具有動態(tài)性。使中間件能達到一次開發(fā)多次利用,滿足不同的Java環(huán)境和平臺的需求,屏蔽了底層技術(shù)的復雜性,極大降低了智能家居應用系統(tǒng)的開發(fā)難度,是整個智能家居系統(tǒng)的核心。
參考文獻
1 羅巨波.基于OSGi的Java中間件分析和設計.科技創(chuàng)業(yè)月刊,2005-6-9
2 黎 鵬.基于OSGi框架的RFID中間件系統(tǒng)的設計與實現(xiàn).南昌大學 碩士論文,2010
3 Richard S.Hall,Karl Pauls,Stuart McCulloch.《OSGi in Action: Creating Modular Applications in Java》.Manning Publication,2011-4-21
|