城市軌道交通標(biāo)準(zhǔn)技術(shù)委員會(huì) 魏曉東
廣州新科佳都科技有限公司 陳朝暉
1.1.3 分布式實(shí)時(shí)應(yīng)用集成技術(shù)
實(shí)時(shí)(Real Time)計(jì)算一般是指這樣的計(jì)算活動(dòng),其正確性不僅依賴(lài)于計(jì)算的邏輯結(jié)果,而且依賴(lài)于產(chǎn)生結(jié)果的時(shí)間。因此,實(shí)時(shí)計(jì)算的核心問(wèn)題是計(jì)算活動(dòng)的時(shí)間可預(yù)測(cè)性(predictablity)或者時(shí)間的確定性(determinism)。時(shí)間可預(yù)測(cè)性指能夠預(yù)先知道某個(gè)任務(wù)是否與應(yīng)用的時(shí)間約束相符合的特性。
目前的企業(yè)分布式集成技術(shù)及中間件能夠提供良好的開(kāi)發(fā)平臺(tái)和通訊支持,但是它們?nèi)狈?duì)分布式實(shí)時(shí)應(yīng)用的時(shí)間約束的支持能力。隨著分布式計(jì)算技術(shù)和分布式應(yīng)用的深入發(fā)展,一些關(guān)鍵業(yè)務(wù)領(lǐng)域特別是工業(yè)制造領(lǐng)域都要求實(shí)時(shí)分布式技術(shù)。九十年代,對(duì)象管理組織OMG提出了實(shí)時(shí)CORBA規(guī)范,用于開(kāi)發(fā)分布式實(shí)時(shí)應(yīng)用和系統(tǒng)集成。提出了DDS(Data Distribution Service,數(shù)據(jù)分發(fā)服務(wù))規(guī)范,DDS采用以數(shù)據(jù)為中心的發(fā)布—訂閱模型,實(shí)現(xiàn)了分布式異構(gòu)環(huán)境下海量數(shù)據(jù)的實(shí)時(shí)傳輸。
實(shí)時(shí)CORBA技術(shù):1997年9月OMG提出了實(shí)時(shí)CORBA 1.0的RFP(request for proposal),于1999年3月,發(fā)布了實(shí)時(shí)CORBA 1. 0規(guī)范。實(shí)時(shí)CORBA規(guī)范定義了一組標(biāo)準(zhǔn)的接口以及策略供用戶來(lái)控制和配置系統(tǒng)的處理器資源、內(nèi)存資源和通信資源。處理器資源的標(biāo)準(zhǔn)控制機(jī)制包括線程池、CORBA優(yōu)先級(jí)、互斥機(jī)制和全局調(diào)度服務(wù)等;內(nèi)存資源的標(biāo)準(zhǔn)控制機(jī)制主要有請(qǐng)求隊(duì)列等;而通信資源的標(biāo)準(zhǔn)控制機(jī)制則有協(xié)議特性設(shè)置和顯式綁定等。線程是實(shí)時(shí)CORBA系統(tǒng)進(jìn)行調(diào)度的實(shí)體,規(guī)范中對(duì)線程提供了更加豐富的控制和配置方式以支持實(shí)時(shí)應(yīng)用;定義了CORBA優(yōu)先級(jí),用于確定CORBA對(duì)象調(diào)用被處理的先后順序,并定義了優(yōu)先級(jí)映射接口(Priority Mapping),用于CORBA優(yōu)先級(jí)和本地優(yōu)先級(jí)之間的映射;定義了兩種設(shè)置CORBA優(yōu)先級(jí)的模式:客戶傳遞模式以及服務(wù)器指定模式;定義了互斥接口以協(xié)調(diào)對(duì)系統(tǒng)共享資源的競(jìng)爭(zhēng);定義了全局調(diào)度服務(wù),應(yīng)用可以向該調(diào)度服務(wù)對(duì)象指定各種有關(guān)參數(shù)。
數(shù)據(jù)分發(fā)服務(wù)技術(shù):在大型網(wǎng)絡(luò)中心系統(tǒng)中,信息的實(shí)時(shí)交換最為關(guān)鍵。從多個(gè)源產(chǎn)生的信息必須由信息制造者按QoS要求將信息請(qǐng)求者感興趣的信息進(jìn)行分發(fā)。特別是在實(shí)時(shí)和關(guān)鍵性任務(wù)系統(tǒng)中,“在正確的時(shí)間和地點(diǎn)獲取正確的數(shù)據(jù)”是非常關(guān)鍵的任務(wù)。對(duì)象管理組織OMG的數(shù)據(jù)分發(fā)服務(wù) DDS采用以數(shù)據(jù)為中心的發(fā)布-訂閱模型,提供了強(qiáng)大的數(shù)據(jù)QoS控制策略,實(shí)現(xiàn)了分布式系統(tǒng)中數(shù)據(jù)實(shí)時(shí)、可靠、高效地分發(fā),能夠廣泛應(yīng)用于航空、國(guó)防、分布仿真、工業(yè)自動(dòng)化、分布控制、機(jī)器人、電信等多個(gè)領(lǐng)域。
DDS規(guī)范標(biāo)準(zhǔn)化了分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)發(fā)布、傳遞和接收的接口和行為,定義了以數(shù)據(jù)為中心的發(fā)布-訂閱機(jī)制,提供了一個(gè)與平臺(tái)無(wú)關(guān)的數(shù)據(jù)模型(此模型能夠映射到各種具體的平臺(tái)和編程語(yǔ)言)。DDS允許應(yīng)用程序?qū)崟r(shí)發(fā)布其擁有的信息,并訂閱其需要的信息,較好的處理了不可靠網(wǎng)絡(luò)通信中數(shù)據(jù)的自動(dòng)發(fā)現(xiàn)、可靠性和冗余性等問(wèn)題,可應(yīng)用在要求高性能、可預(yù)見(jiàn)性和對(duì)資源有效使用的關(guān)鍵任務(wù)領(lǐng)域。
DDS規(guī)范描述了兩個(gè)層次的接口:低層的DCPS(Data-Centric Publish-Subscriber)用于完成數(shù)據(jù)的發(fā)布、訂閱,其目的是發(fā)布者能夠高效地將正確的信息傳遞給適當(dāng)?shù)挠嗛喺撸桓邔拥腄LRL(Data Local Reconstruction Layer)用于數(shù)據(jù)在本地的表示,其目的是使應(yīng)用程序能更加直接的訪問(wèn)交換的數(shù)據(jù),并能與本地語(yǔ)言完美的結(jié)合起來(lái)。
1.2 軟件應(yīng)用集成架構(gòu)技術(shù)
1.2.1 工業(yè)企業(yè)信息化集成系統(tǒng)的架構(gòu)設(shè)計(jì)
工業(yè)企業(yè)信息化集成系統(tǒng)對(duì)信息的基本處理過(guò)程和內(nèi)容是:信息采集、加工、存儲(chǔ)、傳遞、利用和反饋。工業(yè)企業(yè)信息化集成系統(tǒng)應(yīng)用集成架構(gòu)設(shè)計(jì)主要圍繞信息采集、信息處理和信息傳遞進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)的。
信息采集:信息采集是企業(yè)管理和控制過(guò)程的起點(diǎn),貫穿于企業(yè)信息管理的全過(guò)程。信息采集是根據(jù)企業(yè)管理和控制的需求,把企業(yè)內(nèi)外各種形態(tài)的信息收集并且匯總,供信息化集成系統(tǒng)使用。信息處理:信息處理指將采集到的信息按照不同層次企業(yè)管理和控制的目的和要求,進(jìn)行鑒別、篩選和處理,使信息規(guī)范和準(zhǔn)確,以便進(jìn)一步存儲(chǔ)、傳遞和利用,使信息具有使用價(jià)值。信息傳遞:信息傳遞就是根據(jù)不同層、級(jí)企業(yè)管理和控制的需求,把采集、加工后的信息在系統(tǒng)內(nèi)外傳輸。針對(duì)工業(yè)企業(yè)信息化集成系統(tǒng)上述的特點(diǎn),系統(tǒng)的軟件架構(gòu)采用最新的分層分布式架構(gòu)。工業(yè)企業(yè)信息化集成系統(tǒng)的縱向集成主要是軟件功能的分層結(jié)構(gòu),包括數(shù)據(jù)采集層、數(shù)據(jù)處理層以及數(shù)據(jù)傳送層。工業(yè)企業(yè)信息化集成系統(tǒng)的橫向集成主要是指軟件的分布式部署,軟件系統(tǒng)可部署在企業(yè)的各個(gè)部門(mén),采集信息后統(tǒng)一匯總到企業(yè)管理中心,或者采集數(shù)據(jù)在本地處理加工后把處理加工的結(jié)果傳送到企業(yè)的管理中心。工業(yè)企業(yè)信息化集成系統(tǒng)的縱向集成主要是在本地服務(wù)器進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)處理,在本地工作站上進(jìn)行數(shù)據(jù)展現(xiàn),邏輯結(jié)構(gòu)如圖1所示:
圖1 縱向集成示意圖
工業(yè)企業(yè)信息化集成系統(tǒng)的橫向集成主要是在企業(yè)各部門(mén)部署系統(tǒng),各個(gè)系統(tǒng)之間通過(guò)分布式通信總線(軟件總線)進(jìn)行數(shù)據(jù)傳送。邏輯結(jié)構(gòu)如圖2所示:
圖2 縱向集成示意圖
1.2.2 CORBA架構(gòu)
CORBA是當(dāng)今最重要的企業(yè)信息化集成系統(tǒng)應(yīng)用集成架構(gòu)之一,它獨(dú)立于網(wǎng)絡(luò)協(xié)議、編程語(yǔ)言和軟硬件平臺(tái),支持異構(gòu)的分布式計(jì)算環(huán)境和不同編程語(yǔ)言間的對(duì)象重用。CORBA可以作為不同平臺(tái)應(yīng)用間信息傳遞的中間件,CORBA通過(guò)引入經(jīng)過(guò)充分驗(yàn)證的有效的框架結(jié)構(gòu)和通信手段,最大限度地簡(jiǎn)化了網(wǎng)絡(luò)通信相關(guān)應(yīng)用的設(shè)計(jì)與開(kāi)發(fā),使得我們可以專(zhuān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn),而無(wú)需關(guān)心通信的細(xì)節(jié)。這恰恰是信息化集成系統(tǒng)構(gòu)建時(shí)最需要的軟件需求。CORBA是系統(tǒng)集成軟件的消息中間件,是數(shù)據(jù)傳遞通道及軟總線,如圖3所示。
CORBA應(yīng)用系統(tǒng)主要分為兩部分:一是位于應(yīng)用程序服務(wù)器中的CORBA對(duì)象,另一個(gè)是應(yīng)用使用的客戶端程序。這些客戶端程序通過(guò)CORBA技術(shù)使用CORBA對(duì)象提供的服務(wù)來(lái)完成其工作。CORBA規(guī)范定義了客戶端程序與服務(wù)端程序中的對(duì)象進(jìn)行通信的機(jī)制。在系統(tǒng)集成軟件平臺(tái)中,CORBA中間件作為分布式通信總線(軟總線),為系統(tǒng)中的各個(gè)應(yīng)用程序提供數(shù)據(jù)傳遞服務(wù)。
圖3 基于CORBA消息中間件的分層分布式軟件平臺(tái)架構(gòu)
1.2.3 J2EE架構(gòu)
J2EE是JAVA2平臺(tái)企業(yè)版,它的核心是一組技術(shù)規(guī)范與指南,提供基于組件的方式來(lái)設(shè)計(jì)、開(kāi)發(fā)、組裝和部署企業(yè)應(yīng)用。J2EE使用多層分布式的架構(gòu)模式。J2EE所包含的各類(lèi)組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過(guò)去企業(yè)后端使用的信息產(chǎn)品彼此之間無(wú)法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。
J2EE架構(gòu)可以充分利用用戶有的投資,通過(guò)允許將現(xiàn)有的信息系統(tǒng)和資產(chǎn)“包裹”在J2EE應(yīng)用程序中,不要求客戶更換現(xiàn)有技術(shù)。因?yàn)镴2EE擁有廣泛的業(yè)界支持和一些重要的“企業(yè)計(jì)算”領(lǐng)域供應(yīng)商的參與,每一個(gè)供應(yīng)商都對(duì)現(xiàn)有的客戶提供了不用廢棄自己已有投資的升級(jí)途徑。由于基于J2EE平臺(tái)的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。J2EE的體系結(jié)構(gòu)是分層結(jié)構(gòu),主要是:
(1)客戶層,運(yùn)行在客戶計(jì)算機(jī)上的組件,用戶與系統(tǒng)的接口邏輯,通過(guò)http協(xié)議的來(lái)訪問(wèn)應(yīng)用服務(wù)器。
(2)表示層,運(yùn)行在J2EE服務(wù)器上的組件,通過(guò)與業(yè)務(wù)邏輯層互動(dòng),將用戶需要的數(shù)據(jù)以適當(dāng)?shù)姆绞捷敵觥?/p>
(3)業(yè)務(wù)邏輯層,同樣是運(yùn)行在J2EE服務(wù)器上的組件。
(4)企業(yè)信息系統(tǒng)層(EIS),是指運(yùn)行在EIS服務(wù)器上的軟件系統(tǒng)。
1.2.4 NET架構(gòu)
采用.NET架構(gòu)可用快速地開(kāi)發(fā)出Windows下的軟件系統(tǒng)。在軟件系統(tǒng)開(kāi)發(fā)中采用.NET架構(gòu)具有以下技術(shù)優(yōu)勢(shì):(1)技術(shù)易學(xué)易用,開(kāi)發(fā)效率高;(2)運(yùn)行環(huán)境安裝配置方便;(3)技術(shù)成熟,主流技術(shù),配套技術(shù)文檔完善,眾多開(kāi)源或免費(fèi)的文檔或項(xiàng)目可供參考;(4)擁有眾多新技術(shù),方便構(gòu)建企業(yè)級(jí)應(yīng)用;(5)開(kāi)發(fā)部署工具功能強(qiáng)大;(6)能與Windows平臺(tái)緊密結(jié)合,最大限度利用系統(tǒng)功能;(7)眾多中間件(控件支持);(8)技術(shù)在不斷更新發(fā)展中,擁有龐大的開(kāi)發(fā)人員群體且呈增長(zhǎng)趨勢(shì);(9)支持多種語(yǔ)言的互操作,即在一種語(yǔ)言下開(kāi)發(fā)的組件,可在另一組件下通過(guò)面向?qū)ο蟮睦^承而得以重用;(10)通過(guò)對(duì)HTTP、XML、SOAP、WSDL等Internet標(biāo)準(zhǔn)的良好支持,提供在異構(gòu)網(wǎng)絡(luò)環(huán)境下獲取遠(yuǎn)程服務(wù),連接遠(yuǎn)程設(shè)備,交互遠(yuǎn)程應(yīng)用的編程界面。這些是企業(yè)信息化集成系統(tǒng)所需求的。
典型的采用.NET開(kāi)發(fā)的軟件系統(tǒng)的架構(gòu)為五層結(jié)構(gòu),分為:表現(xiàn)層、服務(wù)層、業(yè)務(wù)層、數(shù)據(jù)訪問(wèn)層、公共基礎(chǔ)設(shè)施層。
表現(xiàn)層充當(dāng)系統(tǒng)的界面呈現(xiàn)以及UI(用戶界面)邏輯的角色。UI用戶界面的實(shí)現(xiàn)方式當(dāng)前主要有兩種:(1)模型-視圖-控制器模式,通過(guò)視圖觸發(fā)并執(zhí)行某個(gè)操作,調(diào)用控制器,通過(guò)控制器去操作業(yè)務(wù)層,最終返回模型,在視圖中進(jìn)行展示。(2)模型-視圖-展示器模式,視圖和模型完全分離,視圖中定義一個(gè)接口,展示器通過(guò)調(diào)用該接口的方法控制視圖。
服務(wù)層:當(dāng)項(xiàng)目的規(guī)模大到使用多種表現(xiàn)形式,就要考慮在表現(xiàn)層和業(yè)務(wù)層之間增加一個(gè)層,以便讓表現(xiàn)層和業(yè)務(wù)層解耦,因?yàn)闃I(yè)務(wù)層作為一個(gè)業(yè)務(wù)中間件的平臺(tái),最好不要暴露于表現(xiàn)層中,這個(gè)層就是服務(wù)層。服務(wù)層實(shí)際上并不執(zhí)行任何具體的工作,其功能在于組織各個(gè)業(yè)務(wù)對(duì)象將業(yè)務(wù)層所有的細(xì)節(jié)對(duì)表現(xiàn)層隱藏起來(lái)。服務(wù)層消除了表現(xiàn)層和業(yè)務(wù)層之間的耦合,可實(shí)現(xiàn)一個(gè)遠(yuǎn)程接口與多用戶界面甚至多平臺(tái)通信。
業(yè)務(wù)層包含系統(tǒng)所需要業(yè)務(wù)過(guò)程的實(shí)現(xiàn),并與數(shù)據(jù)訪問(wèn)層交互,包括對(duì)業(yè)務(wù)實(shí)體建模的對(duì)象模型,表達(dá)了客戶的所有策略和需求的業(yè)務(wù)規(guī)則。另外,業(yè)務(wù)層還包括核心中間件技術(shù),包括第三方組件,以及工作流引擎等等。業(yè)務(wù)層需要考慮到一些與數(shù)據(jù)訪問(wèn)層交互的設(shè)計(jì)模式,模式中包括事物腳本模式、表模塊模式、活動(dòng)記錄模式、領(lǐng)域模型模式。
數(shù)據(jù)訪問(wèn)層主要提供數(shù)據(jù)持久化功能,包括數(shù)據(jù)的讀取和寫(xiě)入,另外還必須包括事務(wù)處理,并發(fā)控制等等。操作數(shù)據(jù)庫(kù)的方法可以有兩種方式:ORM(對(duì)象關(guān)系映射)方式和ADO.NET方式(ADO:Active Data Object,活動(dòng)數(shù)據(jù)對(duì)象)。ORM可以采用一些第三方的ORM框架來(lái)實(shí)現(xiàn),ADO.NET采用ASP.NET自帶的數(shù)據(jù)庫(kù)操作來(lái)實(shí)現(xiàn)。
公共基礎(chǔ)設(shè)施層:包括Common通用模塊,Logging日志模塊,Exception異常模塊,Configuration配置模塊,DI依賴(lài)注入模塊,單元測(cè)試模塊以及第三方組件(例如NHibernate、Sprint.NET、Castle、Quartz計(jì)劃任務(wù)等等)。
系統(tǒng)集成軟件正是采用上述的最新軟件技術(shù)完成企業(yè)大型信息化集成系統(tǒng)構(gòu)建的。
1.2.5 集成架構(gòu)應(yīng)用
現(xiàn)以一個(gè)城市軌道交通的信息化集成系統(tǒng)(綜合監(jiān)控系統(tǒng))為例說(shuō)明1.1與1.2節(jié)的軟件技術(shù)應(yīng)用:
此綜合監(jiān)控系統(tǒng)軟件采用了消息中間件架構(gòu)技術(shù),分布式通信軟總線選用CORBA。應(yīng)用邏輯層是應(yīng)用組件、分布式結(jié)構(gòu),是具體的業(yè)務(wù)應(yīng)用組件,如圖4所示。
圖4 城市軌道交通綜合監(jiān)控系統(tǒng)軟件平臺(tái)應(yīng)用集成架構(gòu)
由此可見(jiàn)一般的信息化集成系統(tǒng)軟件是如何采用應(yīng)用集成架構(gòu)構(gòu)建起來(lái)的。
作者簡(jiǎn)介:
魏曉東,1967年畢業(yè)于天津大學(xué)精儀系。1984~1991年任安徽工業(yè)大學(xué)自動(dòng)化系副教授。1991年出版《分散型控制系統(tǒng)》( 上海科技文獻(xiàn)出版社) 。2000~2012年任北京和利時(shí)系統(tǒng)工程公司副總工、事業(yè)部總設(shè)計(jì)師,北京地鐵13號(hào)線、深圳地鐵一期工程、廣州地鐵3號(hào)線綜合監(jiān)控系統(tǒng)工程技術(shù)總負(fù)責(zé)人。2006、2010年出版《城市軌道交通自動(dòng)化系統(tǒng)與技術(shù)》初版與第二版(電自工業(yè)出版社);2010年主編國(guó)家標(biāo)準(zhǔn)《城市軌道交通綜合監(jiān)控系統(tǒng)工程設(shè)計(jì)規(guī)范》(GB50636-2010)《城市軌道交通綜合監(jiān)控系統(tǒng)施工與質(zhì)量驗(yàn)收規(guī)范》(GB/T50732-2011);2010年主編關(guān)于兩化融合的國(guó)家標(biāo)準(zhǔn)《工業(yè)企業(yè)信息化集成系統(tǒng)規(guī)范》(GB/T26335-2010)。2013年至今任清華同方數(shù)字城市工程中心技術(shù)專(zhuān)家,住建部城市軌道交通標(biāo)注技術(shù)網(wǎng)Eu委員會(huì)委員,全國(guó)自動(dòng)化系統(tǒng)與集成標(biāo)準(zhǔn)技術(shù)委員會(huì)委員。
摘自《自動(dòng)化博覽》2017年6月刊