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

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

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