国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件總線體系結構的研究與應用*

2012-04-17 07:29李經松陳朝暉
空間控制技術與應用 2012年4期
關鍵詞:適配器單機體系結構

李經松,陳朝暉

(北京控制工程研究所,北京 100190)

隨著軟件系統(tǒng)規(guī)模和復雜性的不斷增加,系統(tǒng)總體結構設計的重要性已遠遠超過特定算法和數據結構的選擇,良好的體系結構是保證系統(tǒng)成功的關鍵.體系結構的不同開發(fā)模式相繼推出,基于軟件總線的開發(fā)與集成框架顯示出強大的活力,文獻[1-2]中介紹軟件總線體系結構的設計方式,軟件總線的結構模型的建立.軟件總線思想很早以前就已經存在,如美國Brown大學于1990年開發(fā)的FIELD環(huán)境[3],它作為一種工具集成的方式,通過消息服務器接收和發(fā)送消息實現工具間的通信,完成工具的集成,FIELD可以看作是一種面向消息的軟件總線模型.“軟件總線(software bus)”的概念最早由美國Maryland大學的Purtilo和Snodgrass于1994年在一篇論文中提出[4],闡述了一種軟件總線原型POLYLITH,POLYLITH能夠提供分布式環(huán)境下異構構件的集成.

本文對軟件總線體系結構進行研究,采用雙總線結構設計一種輕型軟件總線,使其成為單機軟件系統(tǒng)開發(fā)的支撐架構.

1 軟件總線體系結構

正如硬件系統(tǒng)的復雜化使工業(yè)生產不堪重負而導致總線結構興起,軟件開發(fā)也遵循總線的結構,產生了軟件總線.軟件總線并非完全是硬件總線的虛擬和映射,它主要是借鑒硬件總線的思想來實現構件的組合集成:通過適配器將構件掛接到總線上,實現構件的“即插即用”.

1.1 軟件總線結構模型

所謂軟件總線,就是所有的功能構件以相同的方式連接在一個用來相互通信的結構性部件上,這個結構性部件就是軟件總線.軟件總線源于分布式異構環(huán)境的搭建所提出的,軟件復用、構件化以及面向對象技術的發(fā)展促進了它的形成.軟件總線的思想也同樣適用于單機軟件系統(tǒng)的開發(fā)[5].

軟件總線結構模型如圖1所示.其中,復合構件也可以通過局部軟件總線連接而成,軟件總線為整個系統(tǒng)和各個層次的構件提供了統(tǒng)一的集成機制.

圖1 軟件總線結構模型Fig.1 Software bus architecture model

1.2 軟件總線結構分析

本文所討論的軟件總線是基于消息的發(fā)布/訂閱機制[6],總線控制與構件間交互都是通過消息傳輸實現的.軟件總線作為軟件系統(tǒng)中各個構件的連接組織平臺,負責系統(tǒng)內消息的訂閱、接收、傳遞、轉換工作.軟件總線為構件提供透明的服務,使遵循總線接口規(guī)范的構件能夠“即插即用”.

軟件總線結構為構件集成的基礎架構,基于軟件總線的軟件系統(tǒng)的組成描述如下[7]:

軟件系統(tǒng)由3部分組成:軟件總線結構、功能構件以及連接關系.其中軟件總線結構作為系統(tǒng)創(chuàng)建的框架,主要包含3部分:總線管理器、總線(此處的總線是指軟件總線結構中的負責通信的模塊)、以及總線適配器.總線管理器主要負責啟動總線;加載、卸載構件,并對加載的構件進行登記;為構件創(chuàng)建適配器,掛起、重啟、注銷適配器(在圖1中,總線管理器隱含在軟件總線模塊中).總線負責登記構件對消息的訂閱,接收構件的發(fā)布,根據訂閱登記表轉發(fā)消息.總線適配器負責構件與總線的連接工作,作為構件與外界環(huán)境交互的“代理”.軟件系統(tǒng)中的連接關系,是指系統(tǒng)中特定模塊間的交互關系,整個系統(tǒng)的所有連接關系通過接口函數調用和線程間消息傳遞來實現.總線管理器、總線、總線適配器三者與構件的交互關系如圖2所示.

圖2 軟件總線結構模型交互圖Fig.2 Interaction relationship of software bus configuration components

2 輕量級軟件總線體系結構的設計

傳統(tǒng)的軟件總線,應用于網絡環(huán)境,其功能的實現需要借助如下繁瑣的功能:容錯處理功能、負載平衡功能、事務處理功能、安全管理功能、緩沖池功能等.將軟件總線應用于單機軟件系統(tǒng)的開發(fā),可以避免以上繁瑣功能的實現.

本文所設計的輕量級軟件總線,作為單機模式下軟件系統(tǒng)開發(fā)的基礎架構.對滿足總線接口規(guī)范的構件,總線管理器根據構件接口描述信息配置生成適配器,實現構件的“即插即用”.輕量級軟件總線采用消息的“發(fā)布/訂閱”機制降低構件間耦合性,增強系統(tǒng)的靈活可擴展性;通過改進總線結構,基于雙總線的拓撲結構提高所開發(fā)軟件系統(tǒng)的實時響應和數據快速處理能力.軟件總線之所以稱之為總線,必須具備兩個條件:1)具有一組總線協(xié)議標準以及接口規(guī)范;2)實現構件的“即插即用”.所以,輕量級軟件總線的設計必須遵循這兩個條件.

2.1 雙總線結構

將傳統(tǒng)軟件總線模型直接引入到單機平臺使用,難以有效支持領域特性,不能很好滿足特定的業(yè)務需求,如系統(tǒng)對實時性和高效率的要求.為使軟件總線適用于單機平臺軟件的設計,本文從軟件總線拓撲結構角度出發(fā)對其進行改進,引入雙總線結構[8-9].文獻[8-9]中的雙總線結構是在分布式環(huán)境下將原有的一條總線劃分為兩條總線,目的在于將監(jiān)控數據和業(yè)務數據分開傳輸,提高數據批量處理能力;同時,通過冗余提高分布式環(huán)境下的可靠性.本文所設計雙總線結構,將單機環(huán)境下的軟件系統(tǒng)中的管理控制和業(yè)務數據分開來,分別用一條總線來傳輸——管理控制總線(MCBUS)和業(yè)務交互總線(BIBUS).適配器也相應劃分為控制端(MC)和業(yè)務端(BI)兩個部分.雙總線結構如圖3所示.

圖3 軟件總線雙總線結構圖Fig.3 Dual-bus based software bus topology

兩條總線具有不同的功能目的——管理控制總線為具有實時響應能力的傳輸通道,能夠提高軟件系統(tǒng)的控制實時性;業(yè)務交互總線為交互信息傳輸的通道,支持構件間數據的直接傳輸,有利于軟件系統(tǒng)中批量數據的快速傳輸.

管理控制信息與業(yè)務交互信息雖同屬于消息范疇,但具有不同的表現形式,使用“通知”作為管理控制信息的載體,使用“消息”作為業(yè)務交互信息的載體.管理控制信息:一般指控制命令、構件狀態(tài)等,不包含數據部分,依據情況響應,選取MCBUS,采用消息發(fā)布/訂閱方式實現準同步傳輸.業(yè)務交互信息:主要是指構件間交互的數據,選取BIBUS,采用改進的消息發(fā)布/訂閱方式實現準異步傳輸.通知與消息的格式定義如下:

(1)通知格式:

通知格式包含6個域.通知名與通知號都是作為通知的唯一性標識;通知發(fā)布者域存放發(fā)送通知的適配器線程的ID;命令/狀態(tài)域表示通知是命令還是狀態(tài),命令字域和狀態(tài)字域分別存儲命令編號和狀態(tài)編號.命令形式的通知分為需要響應和不響應兩種,需要響應命令可以用通知或消息進行響應.如果命令需要響應,通知發(fā)布者域用來告訴命令響應者發(fā)送方的地址,使響應直接由響應者返回到發(fā)送方,提高響應速度,實現準同步.

(2)消息格式:

消息格式包含5個域.消息名與消息號都是作為消息的唯一性標識;消息發(fā)布者域存放發(fā)布消息的適配器線程的ID;消息訂閱者域存放訂閱消息的適配器線程的ID;消息體域用來存放指向消息體結構的指針.

消息分為兩種:實時性消息和非實時性消息,實時性消息需要盡快的發(fā)送出去,到達訂閱消息的地方;非實時性消息,對時間要求不高,所以可以“延緩-緩存發(fā)送”,一段時間后根據消息號一起發(fā)布,這樣能夠提高批量傳輸能力.采用消息“發(fā)布/訂閱”機制的準異步形式,在不提高構件間耦合性的前提下,能夠在構件間建立一條“虛擬鏈路”.

2.2 構件模型設計

輕量級軟件總線的構件模型借鑒COM的構件模型標準[5,10],構件模型中接口部分設計支持3個接口:IMyUnknown、IControl、IBusiness,IControl 與IBusiness繼承IMyUnknown接口.其中IMyUnknown類似于COM標準中的IUnknown接口,接口函數QueryInterface提供對構件所有接口的詢問,獲取接口指針;IControl,包含5個接口函數,主要負責構件與適配器控制端的交互工作;IBusiness,包含3個接口函數,主要負責構件與適配器業(yè)務端的交互工作.構件接口設計如下所示:

在體系結構設計層次上,構件通過接口定義了同外界的信息傳遞和承擔的系統(tǒng)責任,構件接口代表了構件同環(huán)境的全部交互內容,也是唯一的交互途徑.構件在加載到軟件總線時,總線管理模塊通過IMyUnknown接口的QueryInterface函數獲取到構件的IControl和IBusiness接口指針,并將這兩個指針傳遞給構件對應的適配器.

為每個構件定義一個用XML描述的接口文件,接口文件中描述構件包含的接口以及發(fā)布、訂閱的通知和消息.XML以其嚴格的語法要求,良好的可擴展性和通用性,成為一種很好的構件接口描述語言.當構件請求加載時,總線管理器運用DOM技術對接口描述文件進行解析,解析出的接口信息,用來配置完善相應的適配器.接口描述如表1所示.如表1中,Component作為根元素,包含有兩個固定的子元素:IControl和IBusiness.IControl元素包含的是構件與外界交互的所有通知,不論訂閱還是發(fā)布;IBusiness元素包含的是構件與外界交互的所有消息.

構件模型的設計將構件接口與功能實現分開來,每個構件都支持3個接口(IControl、IBusiness以及 IMyUnknown),構件通過 IControl、IBusiness 兩個接口與適配器進行交互,適配器作為構件的代理與軟件總線交互.構件的功能是由內部定義的

私有功能函數實現的,構件通過接口函數來接收、發(fā)布通知和消息,最終實現與外界環(huán)境的交互.面向對象設計中,將構件設計為一個構件類形式,構件類的定義模式如下所示:

輕量級軟件總線體系結構的設計通過改進傳統(tǒng)軟件總線結構與功能,使其更適合單機平臺軟件系統(tǒng)的開發(fā),有效地降低軟件系統(tǒng)的集成難度,提高系統(tǒng)的靈活可擴展性,提高軟件總線中構件間的交互效率.

表1 構件接口XML描述Tab.1 Component interface description using XML

3 軟件總線的應用

本文通過實現一個基于輕量級軟件總線的模擬銀行服務排隊系統(tǒng),驗證輕量級軟件總線作為單機軟件系統(tǒng)的搭建架構具有可行性.

現有的銀行服務排隊系統(tǒng)根據客戶到達的先后順序為客戶分配序號,銀行職員依序號為客戶提供服務.系統(tǒng)的調度是基于公平競爭的先來先服務的策略,這種策略雖然對每個客人來說是公平的,但不能滿足一些對服務時間具有特殊要求的客人.基于這點,對這一系統(tǒng)進行改造,使它既能體現公平競爭性,又能滿足特殊要求.

改進的客戶服務排隊系統(tǒng)為客戶分配了一個帶有優(yōu)先級參數的序號組,其表示為一個二元組<S,T>,S表示分配的序號,T依客戶具有的優(yōu)先級(數字越大優(yōu)先級越小)而定.對于普通客戶來說,沒有優(yōu)先級別,T設置為常數0,其得到服務的順序根據S大小確定,先來先服務.對具有優(yōu)先級別的客戶,T為其優(yōu)先級值的大小,可以遞減至0,其得到服務的規(guī)則是當T的值減到0后,若當前銀行職員空閑,則其直接得到服務;如果銀行職員非空閑,則等當前客戶服務完后直接得到服務;如果同時有幾個客戶的T值為0,則比較S的值,小者先得到服務.系統(tǒng)需要定義4個功能模塊:

(1)Scheduler,序號調度模塊.接收新生成的序號,當有服務窗口空閑時依據調度算法使?jié)M足條件的客戶獲得服務.

(2)Ticket_Creator,序號產生模塊.當有客戶到來時,根據客戶是否具有優(yōu)先級別來產生不同的二元組<S,T>的序號,并將序號發(fā)送給Scheduler.

(3)Service,服務窗口模塊.為客戶提供服務,當前服務結束后,向Scheduler發(fā)送空閑通知.Service模塊可以有多個.

(4)UI,用戶接口模塊.用來模擬客戶隨機時間的到來,并為具有優(yōu)先級別的客戶提供優(yōu)先級,普通客戶不提供優(yōu)先級.

根據第2節(jié)構件模型的設計規(guī)范,上面4個功能模塊可以定義為符合輕量級軟件總線接口規(guī)范的構件,獲得總線的支持.將4個構件加載到軟件總線上即可實現一個模擬銀行服務排隊系統(tǒng),構件間通過通知和消息進行交互,完成功能模擬.構件間的通知與消息定義如表2所示.

表2 構件間交互的通知與消息Tab.2 Notification and message between components

模擬銀行服務排隊系統(tǒng)基于輕量級軟件總線,采用雙總線結構搭建,其結構如圖4所示:

如圖4所示,服務排隊系統(tǒng)在運行時,4個功能構件通過各自的適配器掛接到雙總線上,進行命令交互以及數據傳遞,其對應的運行流程,如圖5所示.

最初驗證系統(tǒng)僅僅包含上面所述的4個功能構件,其中只有一個服務構件Service,之后,為了提高銀行的服務速度,需要另外再添加一個Service構件,這時基于軟件總線體系結構凸顯了靈活性以及可擴展性的優(yōu)勢,僅僅在系統(tǒng)的配置文件中添加新增的構件項即可,不需要對軟件總線及其他構件進行更改.

模擬銀行服務排隊系統(tǒng)的成功搭建與順利運行表明:所設計的輕量級軟件總線體系結構可以作為一個軟件系統(tǒng)開發(fā)的基礎架構來使用,服務于面向構件技術的軟件系統(tǒng),使系統(tǒng)結構清晰,實現構件的“即插即用”.

4 結論

軟件總線體系結構易于實現復雜軟件系統(tǒng)的定制和集成,具有靈活擴展性.將軟件總線的使用范圍由分布式環(huán)境延伸到單機平臺,實現基于軟件總線技術的單機系統(tǒng)的創(chuàng)建.本文設計一種輕量級軟件總線體系結構,采用雙總線結構,有效滿足單機系統(tǒng)對構件交互實時性和高效率的要求.

輕量級軟件總線體系結構作為一種通用的軟件系統(tǒng)架構,適用于單機軟件系統(tǒng)的體系結構設計,能夠降低系統(tǒng)的開發(fā)難度,提高系統(tǒng)的搭建效率和靈活擴展能力.

[1] 孫志安,竇強.軟件總線:體系結構分析與設計[J].指揮控制與仿真,2009,31(2):77-80 Sun Z Z,Dou Q.Software-bus:analyzes and design of architecture[J]. Command Control & Simulation,2009,31(2):77-80

[2] 張世琨,王立福,楊芙清.基于層次消息總線的軟件體系結構風格[J].中國科學(E輯),2002,32(3):393-400 Zhang S S,Wang L F,Yang F Q.Hierarchical message bus-based software architecture style[J].Science in China(Series E),2002,32(3):393-400

[3] Reiss S P.Connecting tools using message passing in the Field environment[J].IEEE Software,1990(7):57-66

[4] Purtilo J M.The polylith software bus[J].ACM,1994,16(1):151-174

[5] 劉義才.基于軟件總線技術的嵌入式集成開發(fā)平臺[D].成都:電子科技大學,2006 Liu Y C.Embedded integrated development environment based on software bus technology[D].Chengdu:UEST of China,2006

[6] 詹先銀.基于發(fā)布/訂閱的消息中間件技術及其應用[D].西安:西安電子科技大學,2005 Zhan X Y.Public/subscribe-based message oriented middleware technology and application[D].Xi’an:Xi’an Electronic and Science University,2005

[7] 雷劍.嵌入式系統(tǒng)仿真開發(fā)平臺的體系結構研究[D].成都:電子科技大學,2004 Lei J.Architecture research of simulation development platform of embedded system[D].Chengdu:UEST of China,2004

[8] 周寶,杜承烈.一種內嵌軟件傳感器的雙軟總線體系結構研究[J].計算機測量與控制,2008,16(11):1766-1769 Zhou B,Du C L.Research on a soft dual-bus architecture with software sensor embedded[J].Computer Measurement& Control,2008,16(11):1766-1769

[9] Du C L,Li G.A Software dual-bus architecture suitable for distributed real-time embedded system[C].2008 International Conference on Computer Science and Software Engineering,Wuhan China,2008

[10] 潘愛民.COM原理與應用[M].北京:清華大學出版社,1999:21-54 Pan A M.COM theory and application[M].Beijing:Tsinghua University Press,1999:21-54

猜你喜歡
適配器單機體系結構
熱連軋單機架粗軋機中間坯側彎廢鋼成因及對策
一種單機式渦流探傷儀電性能校準裝置
足球機器人并行行為組合控制體系結構分析
宇航通用單機訂單式管理模式構建與實踐
基于3D打印的輕型導彈適配器
潛空導彈垂直發(fā)射出筒適配器受載變形仿真研究
電源適配器怎么選
作戰(zhàn)體系結構穩(wěn)定性突變分析
基于DODAF的裝備體系結構設計
美國麥格普公司新型M—LOK相機三腳架適配器
井冈山市| 华坪县| 肥西县| 绍兴县| 日土县| 广水市| 大同县| 田林县| 台南县| 怀来县| 宁都县| 漯河市| 沙洋县| 石屏县| 吴忠市| 阿拉善右旗| 册亨县| 内江市| 罗田县| 孟州市| 正蓝旗| 铜川市| 汉川市| 宜兰市| 镇雄县| 宣城市| 石景山区| 泸西县| 新余市| 子长县| 松阳县| 太白县| 依兰县| 高唐县| 榕江县| 兰州市| 沧源| 宁化县| 闽侯县| 正蓝旗| 化隆|