亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        主動對象模型在車次追蹤系統(tǒng)中的應(yīng)用

        2010-08-06 09:37:20張德明
        鐵路計算機應(yīng)用 2010年5期
        關(guān)鍵詞:模塊化信息模型

        張德明

        (中國鐵道科學(xué)研究院通信信號研究所,北京100081)

        模塊化是軟件設(shè)計中需要達到的主要目標(biāo)之一。相對于傳統(tǒng)的面向過程的語言將數(shù)據(jù)結(jié)構(gòu)與算法分開的方式,面向?qū)ο蟮脑O(shè)計方法將相關(guān)的數(shù)據(jù)結(jié)構(gòu)與算法作為一個對象進行封裝,形成一個擁有自己狀態(tài)以及行為的整體。在設(shè)計對象時,通過有效地將相互關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)與行為進行封裝,而向外只提供必要的接口,從而達到強內(nèi)聚松藕合的效果,也就達到了模塊化的目標(biāo)。

        在單線程環(huán)境下,采用對象的方式確實能夠?qū)崿F(xiàn)有效的封裝。然而,當(dāng)軟件在多線程環(huán)境中運行時,對象在封裝上則會遇到并發(fā)范圍的問題。

        圖1 對象交互的圖示

        圖1展示了一個簡單多線程環(huán)境。其中,有A,B,C3個以面向?qū)ο蠓椒ㄟM行封裝的對象,另外有兩個環(huán)境線程。系統(tǒng)期望兩個線程能夠在3個對象的并發(fā)運行中,完成系統(tǒng)的功能。我們可以看到,對象B雖然作為一個獨立的對象,封裝了自己的結(jié)構(gòu)和行為。但是,由于它同時被兩個線程訪問,這樣,在對象C和A與B進行交互時,必須要考慮許多線程同步的因素,造成對象間訪問時接口復(fù)雜,也就是增強了對象間的耦合性。當(dāng)系統(tǒng)的對象更多,并發(fā)線程更多時,對象間的耦合將會成倍增加,軟件的模塊化目標(biāo)將遇到嚴(yán)重的挑戰(zhàn)。

        1 車次追蹤系統(tǒng)

        車次追蹤系統(tǒng)是調(diào)度監(jiān)督以及調(diào)度集中系統(tǒng)中一個重要的組成部分,車次追蹤系統(tǒng)根據(jù)現(xiàn)場采集的站場表示信息,無線車次號信息,行調(diào)臺下達的計劃信息,以及人工車次修改等信息,通過綜合運算,對追蹤區(qū)段的列車進行識別、跟蹤和校核,并在此基礎(chǔ)上提供自動報點,列車位置報告等信息。

        在實際設(shè)計中,車次追蹤系統(tǒng)作為調(diào)度系統(tǒng)應(yīng)用服務(wù)器中的一個模塊。作為整體的應(yīng)用服務(wù)器,除了提供車次信息相關(guān)運算和服務(wù)外,還要提供通信信息轉(zhuǎn)發(fā)、表示信息處理和進路信息處理等功能。

        當(dāng)把應(yīng)用服務(wù)器作為系統(tǒng)的環(huán)境,而將通信轉(zhuǎn)發(fā)、車次追蹤和進路控制分別作為一個重量級的對象時,將得到一個類似圖1的系統(tǒng)結(jié)構(gòu)環(huán)境,見圖2。

        圖2 車次追蹤的應(yīng)用服務(wù)器環(huán)境框圖

        在圖2的應(yīng)用服務(wù)環(huán)境中,系統(tǒng)要求應(yīng)用服務(wù)器所提供的各個功能,包括車次追蹤,通信轉(zhuǎn)發(fā),以及進路控制等都能夠并行運行,因此,系統(tǒng)中必須引入多個線程。 同時,由于各個服務(wù)模塊之間需要交互,以傳統(tǒng)面向?qū)ο竽J竭M行設(shè)計,必然將多個線程引入對象中,造成同步的困難,增強了系統(tǒng)的藕合性。如何保證車次追蹤系統(tǒng)設(shè)計的模塊化,同時又保證模塊的并行性,如前面引用中提到的,是對系統(tǒng)設(shè)計方法的一個挑戰(zhàn)。

        2 主動對象模型

        我們以圖3來說明主動對象模型。

        圖3 主動對象模型

        圖3中的對象分為兩種,其中A,B,C同以前的對象一樣,只能被別的線程被動調(diào)用,稱之為被動對象。另外一種對象,作為A,B,C3個對象的運行環(huán)境,它將系統(tǒng)的線程進行了封裝,并提供了對外接口的郵箱,稱之為主動對象。

        系統(tǒng)的運轉(zhuǎn)過程如下:當(dāng)外界有任務(wù)或者指令要主動對象來完成時,外界系統(tǒng)將任務(wù)以消息形式發(fā)送到主動對象的郵箱隊列中,主動對象的封裝線程則一直對其郵箱隊列進行監(jiān)視,一旦發(fā)覺郵箱中有消息,將取出消息進行處理。當(dāng)任務(wù)比較復(fù)雜時,主動對象將消息分發(fā)給相關(guān)的被動對象,讓其進行相應(yīng)處理。

        可以看出,在主動對象模型中,因為引入了主動對象,對任務(wù)線程進行了封裝,這樣就給其它被動對象提供了一個單線程的環(huán)境。在對A,B,C等各個被動對象進行算法設(shè)計時,只需要考慮基本的業(yè)務(wù)邏輯,而不需要考慮系統(tǒng)的并發(fā)性問題,有效地降低了系統(tǒng)的耦合性,增強了系統(tǒng)的模塊化。

        3 具體實現(xiàn)

        圖4給出基于主動對象模型車次追蹤模塊的主框架結(jié)構(gòu)。其中主要包含4個部分:接口,隊列,線程以及處理。

        圖4 車次追蹤主框架結(jié)構(gòu)

        3.1 接口部分

        接口部分將所有輸入輸出進行封裝,其中CallIn供其它系統(tǒng)進行調(diào)用,將表示信息,計劃信息等輸入到車次追蹤系統(tǒng),CallIn的處理就是將這些調(diào)用以消息的形式存放到消息隊列中。

        CallOut封裝了車次追蹤模塊的輸出部分,外界系統(tǒng)通過重載CallOut方法,從而實現(xiàn)對車次號和報點等信息的獲取。

        3.2 隊列部分

        隊列部分完成主動對象模型中的郵箱功能。所有外界的信息要傳遞到車次追蹤系統(tǒng),均需要以消息形式壓入隊列。同時,封裝線程部分對隊列進行不間斷監(jiān)視,一旦發(fā)現(xiàn)隊列中有數(shù)據(jù),將以先進現(xiàn)出的方式從中取出。

        由于隊列部分同時要被外部線程和模塊內(nèi)部線程訪問,因此,在隊列訪問時設(shè)置同步機制。

        3.3 線程部分

        系統(tǒng)通過將操作系統(tǒng)提供的線程進行封裝,從而形成只在車次追蹤模塊內(nèi)部運行的線程,當(dāng)對象生成時,生成并啟動線程,當(dāng)對象消亡時,終止并結(jié)束線程。

        系統(tǒng)線程在對象生存期不間斷地運轉(zhuǎn),給車次追蹤的業(yè)務(wù)邏輯處理對象提供運行環(huán)境,同時從消息隊列中獲取消息,并將這些消息分發(fā)給實現(xiàn)部分進行具體處理。

        3.4 處理部分

        處理部分是車次追蹤算法的核心,包含大量站場相關(guān)的數(shù)據(jù)結(jié)構(gòu)和處理類。這些處理類由封裝線程進行調(diào)用,對接收到的表示信息、無線車次號信息以及計劃信息等進行綜合分析,運算得出列車車次號位置信息以及報點等信息,將這些信息通過CallBack函數(shù)回調(diào)輸出。

        4 結(jié)束語

        本文引入主動對象模型,將車次追蹤的具體實現(xiàn)與并發(fā)處理分開,允許在進行算法設(shè)計時不用考慮系統(tǒng)的并行性,有效地降低了系統(tǒng)設(shè)計的復(fù)雜度。在滿足系統(tǒng)實時性特征的情況下,保證了系統(tǒng)的獨立性和模塊化。

        [1] 朱冰,梅宏,楊芙清. 基于事件驅(qū)動的主動對象模型[J] . 軟件學(xué)報,1996(3).

        [2] F.Buschmann, K.Henney, D.C.Schmidt. Patten-Oriented Software Architecture, Volume 4: A Pattern Language for Distributed Computing[M] . John Wiley & Sons, 2007: 365-367.

        猜你喜歡
        模塊化信息模型
        一半模型
        模塊化自主水下機器人開發(fā)與應(yīng)用
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        模塊化住宅
        ACP100模塊化小型堆研發(fā)進展
        中國核電(2017年2期)2017-08-11 08:00:56
        模塊化VS大型工廠
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        3D打印中的模型分割與打包
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        欧美老妇多毛xxxxx极瑞视频| 亚洲视频在线视频在线视频| 国产av一级二级三级| 夫妻免费无码v看片| 久久久久久亚洲精品中文字幕| 久久成年片色大黄全免费网站| 亚洲伊人免费综合网站| 男奸女永久免费视频网站| 香蕉免费一区二区三区| 国产白浆一区二区在线| 无码人妻精品一区二区三区9厂 | 久久亚洲精品ab无码播放| 日韩国产精品一本一区馆/在线| 国产一区二区三区探花| 人妻少妇-嫩草影院| 99精品国产综合久久久久五月天 | 国产91精品丝袜美腿在线| 人妻制服丝袜中文字幕| 国产成人精品白浆久久69| 夜夜未满十八勿进的爽爽影院| 日本亚洲欧美在线观看| 成年女人午夜特黄特色毛片免| 色哟哟亚洲色精一区二区| 亚洲av日韩综合一区在线观看| 少妇无码av无码去区钱| 蜜臀精品一区二区三区| 亚洲小说区图片区色综合网| 性做久久久久久久| 成人无码午夜在线观看| 日本经典中文字幕人妻| 国产剧情一区二区三区在线| 国产亚洲真人做受在线观看| 亚洲男女免费视频| 东京热日本道免费高清| 色偷偷偷在线视频播放| 乱子伦视频在线看| JIZZJIZZ国产| 日本视频一区二区三区| a级毛片免费观看在线播放| 久久精品99久久香蕉国产色戒| 色综合久久精品中文字幕|