《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > 支持CACD协同开发的中间件组件系统的研究
支持CACD协同开发的中间件组件系统的研究
侯松霞,孙济洲
天津大学 电子信息与计算机工程学院,天津300072
摘要: 给出一个支持CACD开发的系统组件平台。该平台引入了组件化的反射中间件技术,利用其内省与自适应的特性,充分支持了该平台的实现。
關(guān)鍵詞: 中间件 CACD技术
Abstract:
Key words :

摘   要: 給出一個(gè)支持CACD開發(fā)的系統(tǒng)組件平臺。該平臺引入了組件化的反射中間件技術(shù),利用其內(nèi)省與自適應(yīng)的特性,充分支持了該平臺的實(shí)現(xiàn)。
關(guān)鍵詞: CACD技術(shù)  CSCW技術(shù)  組件  反射中間件

  CSCW(Computer Supported Cooperative Work)是一門新興學(xué)科,它的研究目標(biāo)是利用網(wǎng)絡(luò)和多媒體技術(shù),使設(shè)計(jì)者之間能夠克服時(shí)空阻礙,形成一種“面對面”和“你見即我見”的分布式協(xié)同設(shè)計(jì)模式。CSCW的應(yīng)用范圍很廣,包括:軍事應(yīng)用、工業(yè)應(yīng)用、協(xié)同計(jì)算機(jī)輔助設(shè)計(jì)、醫(yī)療應(yīng)用等。其中計(jì)算機(jī)輔助協(xié)同設(shè)計(jì)CACD(Computer Aided Cooperative Design)是一個(gè)新的研究方向,它是由CAD技術(shù)與CSCW技術(shù)結(jié)合形成的[2]。
        由于CAD軟件具有數(shù)據(jù)量大、數(shù)據(jù)結(jié)構(gòu)和交互流程復(fù)雜、對象關(guān)系繁多等特點(diǎn),且傳統(tǒng)的CAD系統(tǒng)存在著設(shè)計(jì)和實(shí)施周期過長,對于需求變化適應(yīng)性差等問題,因此設(shè)計(jì)一個(gè)具有良好擴(kuò)充性、靈活性、開放性、可定制能力的CACD協(xié)同開發(fā)環(huán)境具有重要的意義。
1  中間件技術(shù)
  中間件是處于應(yīng)用軟件和系統(tǒng)軟件之間的一類軟件,它獨(dú)立于硬件或數(shù)據(jù)庫廠商(處于其產(chǎn)品的中間,實(shí)現(xiàn)其互連)。分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源。中間件位于C/S操作系統(tǒng)之上。管理計(jì)算資源和網(wǎng)絡(luò)通信。中間件是位于操作系統(tǒng)和應(yīng)用軟件之間的通用服務(wù),其主要作用是用來屏蔽網(wǎng)絡(luò)硬件平臺的差異性和操作系統(tǒng)與網(wǎng)絡(luò)協(xié)議的異構(gòu)性,使應(yīng)用軟件能夠平滑地運(yùn)行于不同的平臺上[7]。中間件往往是把一組服務(wù)模塊集成在一起,構(gòu)成一個(gè)平臺(包括開發(fā)平臺和應(yīng)用平臺)。
2  組件化的中間件平臺的體系結(jié)構(gòu)
  盡管中間件具有諸多優(yōu)點(diǎn),但在應(yīng)用中也存在一些問題。多數(shù)流行的中間件服務(wù)使用專有的API和專有的協(xié)議,使得應(yīng)用比較單一。這些中間件只提供一些平臺的實(shí)現(xiàn),從而限制了應(yīng)用在異構(gòu)系統(tǒng)之間的移植。應(yīng)用開發(fā)者在這些中間件服務(wù)之上建立自己的應(yīng)用還要承擔(dān)相當(dāng)大的風(fēng)險(xiǎn),隨著技術(shù)的發(fā)展往往還要重寫自己的系統(tǒng)。也就是說,目前的各種中間件在設(shè)計(jì)原則與實(shí)現(xiàn)上還存在著一定的距離,導(dǎo)致了在滿足用戶新需求的同時(shí)各種中間件平臺越來越龐大。然而,中間件平臺的擴(kuò)展意味著規(guī)則的增多,這導(dǎo)致了用戶掌握和利用它的困難性的增加。所以需要對中間件平臺引入良好的封裝技術(shù),將其復(fù)雜的規(guī)則和實(shí)現(xiàn)方法隱藏起來,而只對外提供良好的接口。這種技術(shù)即為組件化的中間件技術(shù)。
  軟件組件,也可以稱為軟件構(gòu)件,是一種相對獨(dú)立而又能夠被替換的系統(tǒng)一部件,可以被獨(dú)立使用。軟件組件是由系統(tǒng)開發(fā)人員和最終用戶以外的第三方提供的。軟件組件應(yīng)不依賴于某一特定系統(tǒng),它可以被升級的組件代替,并且具有實(shí)際的功能意義。組件的這種特點(diǎn)對于CACD技術(shù)的開發(fā)具有很強(qiáng)的優(yōu)勢。一個(gè)設(shè)計(jì)良好的軟件構(gòu)件可以將其內(nèi)部極具智慧的實(shí)現(xiàn)部分隱藏起來,以起到保護(hù)作用,且構(gòu)件不依賴于構(gòu)件供應(yīng)方所擁有的工具和知識,不同來源的構(gòu)件應(yīng)該可以用一個(gè)第三方的整合工具裝配起來。組件是一個(gè)獨(dú)立部署的單元,是構(gòu)成中間件的基石。本文提出一個(gè)組件化的中間件平臺,該平臺采用分層的體系結(jié)構(gòu),見圖1。
平臺分為應(yīng)用層和核心層兩個(gè)部分。應(yīng)用層由多個(gè)應(yīng)用構(gòu)成,每個(gè)應(yīng)用都是一個(gè)組件,面向不同的服務(wù)內(nèi)容,如任務(wù)管理、用戶管理等。實(shí)際上,每個(gè)應(yīng)用都由與應(yīng)用相關(guān)的數(shù)據(jù)、處理這些數(shù)據(jù)的方法以及負(fù)責(zé)顯示和控制的界面等組成。每個(gè)應(yīng)用要能夠在協(xié)作的環(huán)境下工作,就必須依賴于核心層。核心層構(gòu)建在流行的網(wǎng)絡(luò)協(xié)議(如TCP/IP協(xié)議簇)上,專門負(fù)責(zé)數(shù)據(jù)共享、訪問控制、并發(fā)控制、事件收發(fā)和處理以及網(wǎng)絡(luò)通信等內(nèi)容,是協(xié)作的管理、控制和執(zhí)行部分,可以被看作是一個(gè)中間件。核心層分為六層,其中網(wǎng)絡(luò)通信層負(fù)責(zé)向網(wǎng)絡(luò)接收和發(fā)送數(shù)據(jù);數(shù)據(jù)分離層負(fù)責(zé)各種數(shù)據(jù)的調(diào)用、收集、管理與分離等操作(CAD設(shè)計(jì)過程中會(huì)產(chǎn)生大量的數(shù)據(jù));協(xié)作感知層負(fù)責(zé)確定每個(gè)事件的收發(fā)目標(biāo)和范圍;事件處理層負(fù)責(zé)對接收到的遠(yuǎn)程事件進(jìn)行處理;多用戶層分為二個(gè)子層,分別負(fù)責(zé)訪問控制和并發(fā)控制的管理與檢測;協(xié)作適配層負(fù)責(zé)對應(yīng)用層的共享數(shù)據(jù)和對象進(jìn)行摘要和映射。

  應(yīng)用層和核心層的合作是通過事件流連接在一起的。以流入事件流為例說明:首先由網(wǎng)絡(luò)通信層接收事件,由數(shù)據(jù)分離層負(fù)責(zé)數(shù)據(jù)的處理,然后由協(xié)作感知層確定正確的操作目標(biāo);事件處理層在調(diào)度訪問控制和并發(fā)控制檢測之后執(zhí)行相應(yīng)操作。這里值得注意的是:操作是由事件處理層負(fù)責(zé)調(diào)度并執(zhí)行的,但其內(nèi)容是由應(yīng)用層提供的。
3  支持平臺自適應(yīng)性的反射式中間件設(shè)計(jì)
  經(jīng)過研究和實(shí)驗(yàn)發(fā)現(xiàn),反射中間件技術(shù)對于事件流處理和自適應(yīng)機(jī)制的支持有非常好的特性。即采用了本文反射中間件技術(shù)。
3.1 反射中間件的概念
  反射中間件(Reflective Middleware)是一個(gè)簡單的中間件系統(tǒng),它提供了關(guān)于自身行為的表示,這種表示可以被檢查和調(diào)整,且與它所描述的系統(tǒng)行為是因果相聯(lián)的。因果相聯(lián),意味著對自表示(self- representation)的改動(dòng)將立即反映在系統(tǒng)的實(shí)際狀態(tài)和行為中(這也是“反射”一詞的由來)[5]。
  就如在傳統(tǒng)面向?qū)ο缶幊讨袑ο蟠韱栴}域中的實(shí)體一樣,系統(tǒng)的自表示也可用其他對象來表現(xiàn),這類對象又稱為元對象(meta-object)。這樣,一個(gè)反射系統(tǒng)就分為基層和元層二層[4]。元對象的計(jì)算(元計(jì)算)用于觀測和修改它們的指示物(即所代表的對象)。元對象捕獲指示物的行為,然后進(jìn)行元計(jì)算,替換或是封裝指示物的行為。當(dāng)然,元對象自身也可由其他對象來表示,從而構(gòu)成二重元對象(meta-meta-object)的指示物。以此類推,就可構(gòu)成一種多層結(jié)構(gòu)的反射系統(tǒng)。基層對應(yīng)用領(lǐng)域中的實(shí)體進(jìn)行計(jì)算,而元層中的元對象對其相鄰低層執(zhí)行計(jì)算。
  每一次反射計(jì)算可以被分為二個(gè)邏輯部分:計(jì)算流上下文切換和元行為。計(jì)算從基層的計(jì)算流開始,當(dāng)基層實(shí)體執(zhí)行某個(gè)行為時(shí),該行為被元實(shí)體捕獲,同時(shí)計(jì)算流上升到元層(稱之為換上操作),然后元實(shí)體執(zhí)行其元計(jì)算。當(dāng)允許基層實(shí)體執(zhí)行時(shí),計(jì)算流又返回到基層(稱之為換下操作)。中間件的反射視圖如圖2所示[4]。

3.2 反射中間件的設(shè)計(jì)
  本文提出的開發(fā)平臺的基礎(chǔ)是組件化的中間件平臺。平臺的每個(gè)層次都可以看作一個(gè)組件庫,用以提供大量原始組件從而構(gòu)成復(fù)雜的服務(wù),包括底層的通信協(xié)議、系統(tǒng)組件,如過濾器、事件分發(fā)器和適配器等;管理組件如調(diào)度策略、隊(duì)列排隊(duì)策略和QoS管理。在這些原始組件基礎(chǔ)上可以構(gòu)造更大粒度的組件。上文提到的反射技術(shù)要求整個(gè)系統(tǒng)的實(shí)現(xiàn)開發(fā)并不具體到每個(gè)組件的實(shí)現(xiàn),這對傳統(tǒng)軟件組件技術(shù)是一個(gè)很好的補(bǔ)充,它使組件化的系統(tǒng)更加靈活,更具智能化。本文提出的開發(fā)平臺采用的正是這種具有自適應(yīng)能力的反射中間件。
  組件化編程必須同時(shí)在基層和元層同時(shí)展開。確切地說,每個(gè)組件都必須有一個(gè)與之相連的元空間,通過這個(gè)空間,可以支持對組件基礎(chǔ)設(shè)施框架的內(nèi)省和適應(yīng)。而且這個(gè)元空間必須由若干元空間模型組成,每個(gè)模型將描述元層中彼此互相獨(dú)立、互不相關(guān)的方面。這樣做的好處是對于系統(tǒng)的不同側(cè)面,利用分散注意力的原則,從而簡化了元空間所提供的接口。因此,不難想象,中間件平臺的一個(gè)組件可以由若干個(gè)相互獨(dú)立的元對象組成,通過每個(gè)元對象可以使組件不同的側(cè)面具體化,而不會(huì)相互影響。運(yùn)用這個(gè)原則將會(huì)大大降低設(shè)計(jì)和實(shí)現(xiàn)中間件元層的復(fù)雜度,這也就是本平臺的元空間模型。
  在本平臺中提供了二種機(jī)制管理這種自適應(yīng)過程。
  (1)自適應(yīng)方法。允許編程人員通過提供與同一個(gè)方法相關(guān)聯(lián)的不同屬性的多種實(shí)現(xiàn)方法,而從應(yīng)用中得到適合的方法。在系統(tǒng)運(yùn)行期,最有效的方法可以由相關(guān)聯(lián)的選擇器得到。一般自適應(yīng)方法在一個(gè)應(yīng)用的功能性代碼本身不得不去適應(yīng)環(huán)境的變化時(shí)會(huì)被使用到。
  (2)反射方法。允許對基對象進(jìn)行運(yùn)行時(shí)環(huán)境的配置。在這種條件下,元層次被稱作元空間,它是一組管理與應(yīng)用程序內(nèi)部細(xì)節(jié)相獨(dú)立的通用服務(wù)的集合。當(dāng)一個(gè)反射方法調(diào)用一個(gè)基對象時(shí),與該基對象相關(guān)聯(lián)的元空間也被調(diào)用執(zhí)行響應(yīng)的操作。在該方法中,訪問元空間借助于一個(gè)進(jìn)入點(diǎn)——反射器——對元空間中的各個(gè)層次對象進(jìn)行跟蹤。對于元空間的調(diào)用是在基層次代碼的執(zhí)行之前或之后進(jìn)行。系統(tǒng)將會(huì)在環(huán)境演進(jìn)時(shí)決定如何在執(zhí)行一個(gè)應(yīng)用時(shí)使用反射方法。
4  結(jié)束語
  隨著IT技術(shù)的飛速發(fā)展,計(jì)算機(jī)產(chǎn)品設(shè)計(jì)工作模式也有了很大的變化,面向集成和協(xié)作的計(jì)算機(jī)輔助設(shè)計(jì)是高科技發(fā)展的必然趨勢。在計(jì)算機(jī)學(xué)科中,反射技術(shù)的研究和應(yīng)用已從最初的編程語言擴(kuò)展到窗口系統(tǒng)、操作系統(tǒng)和分布式系統(tǒng)等領(lǐng)域,對于中間件中的反射技術(shù)的應(yīng)用研究才開始不久,但已引起各國學(xué)者的研究和注意,并已提出一些較好的反射中間件實(shí)例模型。本文將反射中間件技術(shù)的設(shè)計(jì)思想應(yīng)用到計(jì)算機(jī)輔助協(xié)作設(shè)計(jì)開發(fā)平臺上,并采用組件化處理。經(jīng)過研究實(shí)踐證明,該平臺具有較好的可擴(kuò)展性、自適應(yīng)性、靈活性和可定制性。隨著Internet的應(yīng)用和組件技術(shù)的普及,中間件廠商在IT行業(yè)的角逐越來越激烈,反射中間件技術(shù)會(huì)不斷得到發(fā)展和完善,并能在協(xié)作設(shè)計(jì)領(lǐng)域中起到舉足輕重的作用。
參考文獻(xiàn)
1   王云鵬,雷毅,潘翔等.基于Web Services的計(jì)算機(jī)輔助協(xié)同設(shè)計(jì)體系結(jié)構(gòu).計(jì)算機(jī)應(yīng)用,2004;21(2)
2   史美林,向勇,楊光信.計(jì)算機(jī)支持的協(xié)同工作理論與應(yīng)用. 北京:電子工業(yè)出版社,2000
3   kiczales G.Beyond the black box:Open implementation.  IEEE Software,1996;13(1)
4   楊思忠,劉錦德,駱志剛.反射中間件的研究.小型微型計(jì)算機(jī)結(jié)構(gòu),2002;23(5)
5   Coulson G.What is Reflective Middleware.http://dsonline. computer.org/middleware/RMarticle1.htm,2004
6   Raverdy P G,Gong L V,Lea R.DART:A Reflective Middleware for Adaptive Application.http://www.iturls.com/TechHotspot/TH_4e.asp,2004
7   張海騰,李定立.使用中間件構(gòu)筑三層結(jié)構(gòu).電腦開發(fā)與應(yīng)用,2003;16(3)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容