佘抒萌
摘 要: 具總線作為一種連接件,為工具構(gòu)建提供了通信、協(xié)作和便利的服務(wù),實現(xiàn)了工具集成設(shè)施和工具邏輯處理功能的分離,將工具集成設(shè)施從以前的隱性方式改為顯性方式,是用于工具集成的結(jié)構(gòu)部件。目前,工具總線技術(shù)尚不成熟,主要由于缺乏實用的功能、抽象合理的結(jié)構(gòu)和開放的接口規(guī)范。在此背景下,本文提出了一種工具總線模型的構(gòu)建方式,實現(xiàn)了集成設(shè)施的完備性、開放性、靈活性和可移植性。
關(guān)鍵詞: 工具總線 模型構(gòu)建 集成設(shè)施 接口規(guī)范
工具總線是工具構(gòu)件間交互的中介,由標(biāo)識總線(IbBus)、控制總線(CtrlBus)、數(shù)據(jù)總線(DataBus)、集合和總線管理器(BusManager)組成(如圖1所示),還提供了用于工具構(gòu)件與工具總線掛接的接口。工具構(gòu)件既可以是客戶方構(gòu)件(即數(shù)據(jù)的消費者),又可以是服務(wù)方構(gòu)件(即數(shù)據(jù)的生產(chǎn)者)。下面對工具總線的內(nèi)部結(jié)構(gòu)和行為作闡述。
1.總線管理器
總線管理器完成工具總線的管理控制功能,對其工具構(gòu)件發(fā)送的消息進(jìn)行接收和分析。根據(jù)消息中的主題內(nèi)容,一般首先啟動標(biāo)識總線,確定客戶方和服務(wù)方構(gòu)件的標(biāo)識或定位信息,指明信息的來源和去向,其次啟動控制總線,傳遞消息,而數(shù)據(jù)總線根據(jù)需要決定是否啟動。
2.標(biāo)識總線
標(biāo)識總線的作用類似于硬件總線中的地址總線,指明數(shù)據(jù)總線上數(shù)據(jù)的來源和去向,包含工具構(gòu)件命名、類型、ID(標(biāo)識符)及接口描述庫等內(nèi)容,提供其存儲、更新、檢索等管理方法,支持跨平臺的全局構(gòu)件標(biāo)識及接口空間,并負(fù)責(zé)處理不同主機(jī)上的標(biāo)識總線間的數(shù)據(jù)一致性問題。需要說明的是,各個工具總線在交互關(guān)系方面是對等的,它們通過消息相互聯(lián)系,但在工具總線的數(shù)據(jù)一致性問題上,還是以某個選定的工具總線為主控服務(wù)器,能夠明顯簡化系統(tǒng)的設(shè)計。
3.控制總線
控制總線是在工具總線中負(fù)責(zé)命令或消息的傳遞,包含消息收發(fā)器和控制總線間協(xié)議(ICBP:Inter—Ctrl Bus Protocol)。
消息收發(fā)器的功能之一是接收從客戶方工具構(gòu)件發(fā)來的經(jīng)由總線管理器的具有統(tǒng)一編碼格式的消息,判別是否發(fā)往本地的消息。若是,則傳遞給本地工具構(gòu)件適配器,并從工具構(gòu)件適配器接收執(zhí)行結(jié)果;否則將消息通過ICBP實體傳遞給網(wǎng)絡(luò)上目的工具總線的控制總線并接收相應(yīng)結(jié)果。消息收發(fā)器的另一功能是根據(jù)所接收的消息的源地址、目的地址和參數(shù)而決定是否啟動數(shù)據(jù)總線進(jìn)行數(shù)據(jù)的傳輸或接收,如果消息中不包含數(shù)據(jù)域,則不需要啟動數(shù)據(jù)總線;否則,需要啟動數(shù)據(jù)總線。
ICBP協(xié)議的功能是負(fù)責(zé)網(wǎng)際控制總線間的消息及結(jié)果的傳輸。ICBP協(xié)議是一個復(fù)雜的實體,包含公共數(shù)據(jù)表示(CDR:Commom Data Representation)。ICBP協(xié)議包格式和ICBP包的傳送機(jī)制等內(nèi)容,需要根據(jù)消息的底層TCP/IP傳遞過程做相應(yīng)的處理。其中,ICBP協(xié)議包格式如下所示:
其中:
(1)主機(jī)地址:指明了消息要發(fā)送的Internet上的主機(jī)地址,或者是合法的域名,如“www.uste.edu.cn”,或者是合法的IP地址,如“202.172.50.230”。
(2)端口號:指明了目標(biāo)主機(jī)上工具總線監(jiān)聽的TCP/IP端口號。
(3)構(gòu)件標(biāo)識符:指明了服務(wù)方構(gòu)件的全局標(biāo)識符。
(4)消息內(nèi)容:指明了ICBP協(xié)議包中封裝的消息內(nèi)容。
4.數(shù)據(jù)總線
數(shù)據(jù)總線集合負(fù)責(zé)數(shù)據(jù)的交換和共享,包括本地數(shù)據(jù)的交換和遠(yuǎn)程數(shù)據(jù)的交換。每根數(shù)據(jù)總線是一個數(shù)據(jù)交換協(xié)議實體,由數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方組成,負(fù)責(zé)交換一種類型的數(shù)據(jù)(如圖2所示)。由于工具間數(shù)據(jù)接口的多樣性,以及工具間接口的公共數(shù)據(jù)標(biāo)準(zhǔn)和元數(shù)據(jù)標(biāo)準(zhǔn)尚未正式形成,導(dǎo)致數(shù)據(jù)交換這一任務(wù)十分復(fù)雜,不可能設(shè)計一個支持全部數(shù)據(jù)類型的通用的數(shù)據(jù)總線集合。因此,數(shù)據(jù)總線集合中每根數(shù)據(jù)總線都被設(shè)計成可裝卸的,由工具構(gòu)件根據(jù)數(shù)據(jù)交換需求動態(tài)裝載和使用。但是,為了方便CASE工具開發(fā),可將一些常用的數(shù)據(jù)類型設(shè)計成固定的數(shù)據(jù)總線,如XML數(shù)據(jù)、純文本數(shù)據(jù)、標(biāo)準(zhǔn)二進(jìn)制數(shù)據(jù)等。
5.結(jié)語
可見,數(shù)據(jù)總線體現(xiàn)為一組用于構(gòu)件間信息共享的數(shù)據(jù)類型及其接口。不同類型的數(shù)據(jù)作為工具構(gòu)件間信息交換的中介。同時,工具總線將屏蔽本地數(shù)據(jù)交換和遠(yuǎn)程數(shù)據(jù)交換的差異,以及底層數(shù)據(jù)存儲方式,如文件和環(huán)境庫。