謝承旺,周 娟
(華東交通大學(xué)軟件學(xué)院,江西南昌330013)
電力行業(yè)是國民經(jīng)濟(jì)的重要基礎(chǔ)產(chǎn)業(yè),其信息化建設(shè)一直是國家經(jīng)濟(jì)發(fā)展戰(zhàn)略中重要關(guān)注內(nèi)容。早從上世紀(jì)60年代初開始,電力企業(yè)相繼建立了營銷技術(shù)支持系統(tǒng)、生產(chǎn)管理技術(shù)支持系統(tǒng)、CRM系統(tǒng)、ERP系統(tǒng)以及EAM系統(tǒng)、SCM系統(tǒng)、送配電管理的DMS/EMS、SCADA等應(yīng)用業(yè)務(wù)系統(tǒng)[1]。然而,這些應(yīng)用還僅僅停留在局部應(yīng)用和分散開發(fā)的層面上,離企業(yè)生產(chǎn)經(jīng)營活動(dòng)統(tǒng)一管控的要求還有較大距離,不能滿足電力集團(tuán)公司改革后的集約化、集中化和精細(xì)化管理要求,業(yè)務(wù)系統(tǒng)間缺乏有效的信息共享機(jī)制,使得企業(yè)業(yè)務(wù)流程中存在斷層,完成業(yè)務(wù)流程需要大量的手工工作。這種狀況嚴(yán)重影響到改革后的電力企業(yè)在市場環(huán)境下的運(yùn)作,不能滿足市場對電力企業(yè)提出的加快電能和電網(wǎng)發(fā)展,提高供電安全性、可靠性和服務(wù)水平的要求。
近年來,以國家電網(wǎng)、國家電力集團(tuán)為代表的電力企業(yè)紛紛投入大量資金啟動(dòng)了各種規(guī)模的應(yīng)用集成項(xiàng)目,以建立一體化的企業(yè)級應(yīng)用集成平臺(tái),實(shí)現(xiàn)企業(yè)內(nèi)各種業(yè)務(wù)應(yīng)用的信息共享與集成,支持集中化管理與企業(yè)決策。因此,針對電力行業(yè)的應(yīng)用集成技術(shù)是目前電力行業(yè)迫切需要的軟件技術(shù),具有重要的現(xiàn)實(shí)意義和極大的市場需求。
從技術(shù)層面來看,建立一體化企業(yè)級應(yīng)用集成平臺(tái)最關(guān)鍵的技術(shù)是如何有效集成各種分布異構(gòu)的應(yīng)用系統(tǒng),實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)間信息的交互與共享。目前,電力行業(yè)應(yīng)用集成的常用方法是采用數(shù)據(jù)交換中間件來進(jìn)行數(shù)據(jù)層的集成以及各種適配器來進(jìn)行應(yīng)用系統(tǒng)接口層的集成,這些集成方法的實(shí)施需要考慮各個(gè)系統(tǒng)諸多的技術(shù)因素和實(shí)現(xiàn)細(xì)節(jié),工作量和難度都很大,同時(shí)集成的系統(tǒng)也缺乏靈活性和可擴(kuò)展性[2]。
本文采用的SOA(service oriented architecture,SOA)架構(gòu)和Web服務(wù)的技術(shù)是近年來發(fā)展很快的新一代軟件開發(fā)和系統(tǒng)集成技術(shù)[3]。基于SOA架構(gòu)的集成是通過將已有系統(tǒng)的功能封裝為接口明確的、標(biāo)準(zhǔn)化的、與具體實(shí)現(xiàn)無關(guān)的Web服務(wù),并在業(yè)務(wù)層使用業(yè)務(wù)流程組合粗粒度的服務(wù)來完成系統(tǒng)集成。在基于SOA架構(gòu)的集成方案中傳統(tǒng)的基于數(shù)據(jù)的應(yīng)用集成轉(zhuǎn)變?yōu)楦至6鹊幕跇I(yè)務(wù)數(shù)據(jù)的應(yīng)用集成;傳統(tǒng)的基于接口的應(yīng)用集成轉(zhuǎn)變?yōu)榛诜?wù)和業(yè)務(wù)消息的應(yīng)用集成;而傳統(tǒng)的基于腳本(場景)的應(yīng)用集成轉(zhuǎn)變?yōu)榛诟邔訕I(yè)務(wù)流程的集成。與傳統(tǒng)集成方案相比,基于SOA架構(gòu)的集成方式更為簡單、高效、易擴(kuò)展,同時(shí)可以靈活地適應(yīng)業(yè)務(wù)需求的變更。
在電力企業(yè)一體化信息集成平臺(tái)的建設(shè)中,需要有效地解決以下幾個(gè)問題:將分散在各個(gè)業(yè)務(wù)系統(tǒng)中不同類型、不同存儲(chǔ)方式的數(shù)據(jù)進(jìn)行整合,實(shí)現(xiàn)集中管理和存儲(chǔ);使分散在各地的異構(gòu)應(yīng)用系統(tǒng)之間互聯(lián)互通;使分散的應(yīng)用系統(tǒng)基于企業(yè)業(yè)務(wù)流程進(jìn)行協(xié)同工作。
這些問題的解決涉及到數(shù)據(jù)、接口和流程等多方面的集成。電力企業(yè)已有的應(yīng)用系統(tǒng)具有多樣異構(gòu)的特點(diǎn),它們采用了各種不同的開發(fā)平臺(tái)、編程語言和消息傳遞協(xié)議,同時(shí)各個(gè)業(yè)務(wù)系統(tǒng)之間的業(yè)務(wù)聯(lián)系緊密,需要進(jìn)行多系統(tǒng)、多部門協(xié)同作業(yè)。傳統(tǒng)的集成方法和技術(shù)涉及到異構(gòu)系統(tǒng)諸多的底層實(shí)現(xiàn)細(xì)節(jié),實(shí)施難度大[4]。
在面向服務(wù)的集成技術(shù)中,異構(gòu)系統(tǒng)的接口以及異質(zhì)的數(shù)據(jù)能以服務(wù)的方式發(fā)布,這些服務(wù)屏蔽了系統(tǒng)和數(shù)據(jù)的底層實(shí)現(xiàn)技術(shù)和通信協(xié)議的差異。協(xié)議轉(zhuǎn)換和異構(gòu)系統(tǒng)間的通信等任務(wù)都由面向服務(wù)的基礎(chǔ)設(shè)施來完成(如ESB,enterprise service bus),集成人員只需關(guān)心上層的業(yè)務(wù)邏輯,使得集成工作和管理維護(hù)工作得到了簡化。同時(shí),利用面向服務(wù)的工作流(如BPEL,business process execution language)等可以在服務(wù)層之上快速構(gòu)造業(yè)務(wù)流程,協(xié)同各個(gè)業(yè)務(wù)系統(tǒng)。在業(yè)務(wù)發(fā)生變化時(shí),企業(yè)能夠通過快速更改業(yè)務(wù)流程,達(dá)到業(yè)務(wù)的隨需而變[5]。
本文的應(yīng)用集成方案針對國內(nèi)電力行業(yè)的集成需求,主要從數(shù)據(jù)層、服務(wù)/消息層和流程層等3個(gè)層次實(shí)施電力行業(yè)的應(yīng)用集成,圖1為電力行業(yè)信息系統(tǒng)應(yīng)用集成方案的總體框架圖。
圖1中的數(shù)據(jù)中心是指對電力企業(yè)中的實(shí)時(shí)數(shù)據(jù)和管理數(shù)據(jù)等進(jìn)行整合,形成一個(gè)集中管理和存儲(chǔ)的數(shù)據(jù)中心。這些數(shù)據(jù)一方面支持業(yè)務(wù)應(yīng)用系統(tǒng)的運(yùn)作,另一方面可實(shí)現(xiàn)對企業(yè)信息資源的深層挖掘,支持?jǐn)?shù)據(jù)分析和企業(yè)決策。
服務(wù)/消息總線提供業(yè)務(wù)系統(tǒng)間數(shù)據(jù)交換的公共通道。業(yè)務(wù)系統(tǒng)的接口在服務(wù)/消息總線中注冊為服務(wù),總線為這些服務(wù)提供了協(xié)議轉(zhuǎn)換、消息路由、消息過濾和數(shù)據(jù)適配等功能,從而實(shí)現(xiàn)各個(gè)業(yè)務(wù)系統(tǒng)接口間的互聯(lián)互通。
業(yè)務(wù)流程中心可以按照企業(yè)的業(yè)務(wù)需求,定制各種流程。這些流程通過整合服務(wù)/消息總線中各個(gè)業(yè)務(wù)系統(tǒng)發(fā)布的服務(wù),達(dá)到多個(gè)業(yè)務(wù)系統(tǒng)之間信息共享和協(xié)同工作的目的。
圖1 電力行業(yè)信息系統(tǒng)應(yīng)用集成方案總體框架Fig.1 Framework information system application integration in power enterprises
SDO(service data object)的設(shè)計(jì)是為了簡化和統(tǒng)一應(yīng)用程序處理數(shù)據(jù)的方式[6]。利用SDO技術(shù)可將關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)源、Web服務(wù)等異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)封裝為服務(wù)數(shù)據(jù)對象(SDO)。應(yīng)用程序編程人員通過使用數(shù)據(jù)訪問服務(wù)(DAS,data access services)對數(shù)據(jù)對象的操作來統(tǒng)一訪問各種異構(gòu)數(shù)據(jù),實(shí)現(xiàn)多樣異構(gòu)數(shù)據(jù)的整合。
SDO框架涉及3個(gè)基本概念:數(shù)據(jù)訪問服務(wù)、數(shù)據(jù)圖和數(shù)據(jù)對象。數(shù)據(jù)對象是業(yè)務(wù)數(shù)據(jù)的表達(dá)和封裝,由屬性的鍵/值對組成,每個(gè)值都可以是原始的數(shù)據(jù)類型或是另一個(gè)數(shù)據(jù)對象。數(shù)據(jù)對象提供了創(chuàng)建、刪除以及獲得數(shù)據(jù)元信息的各種方法。數(shù)據(jù)對象鏈接在一起,包含在數(shù)據(jù)圖中。數(shù)據(jù)圖是一個(gè)描述數(shù)據(jù)集合的分層結(jié)構(gòu),它包括一個(gè)數(shù)據(jù)對象樹和另一個(gè)稱作變更摘要(change summary)的結(jié)構(gòu)。變更摘要記錄了數(shù)據(jù)圖中所有數(shù)據(jù)對象的歷史更改信息。數(shù)據(jù)訪問服務(wù)是一種提供對特定數(shù)據(jù)源進(jìn)行訪問的組件,不同的數(shù)據(jù)源和技術(shù)(如XML,JMS,JCA,JDBC等)會(huì)有不同的數(shù)據(jù)訪問服務(wù)。數(shù)據(jù)訪問服務(wù)總是以數(shù)據(jù)圖方式返回?cái)?shù)據(jù)信息而隱藏了實(shí)際的數(shù)據(jù)存儲(chǔ)信息。
利用SDO框架,可以將各種異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)封裝為使用具有自描述特性的數(shù)據(jù)圖和數(shù)據(jù)對象,屏蔽了底層數(shù)據(jù)源的多樣異構(gòu)性。上層應(yīng)用程序可以使用數(shù)據(jù)訪問服務(wù)(DAS)訪問和操縱這些服務(wù)數(shù)據(jù)對象,而無需關(guān)心底層數(shù)據(jù)的存儲(chǔ)方式、位置等信息,實(shí)現(xiàn)對多樣異構(gòu)數(shù)據(jù)源的統(tǒng)一訪問。
JBI(java business integration)是一種插件式的集成架構(gòu),可以支持服務(wù)引擎和綁定組件兩類組件作為其插件。綁定組件扮演了傳統(tǒng)EAI(enterprise application integration)技術(shù)中適配器的角色。不同的綁定組件可以連接不同的應(yīng)用系統(tǒng),將系統(tǒng)使用的特定協(xié)議的消息轉(zhuǎn)換為標(biāo)準(zhǔn)化的消息,從而實(shí)現(xiàn)應(yīng)用系統(tǒng)的接口適配。企業(yè)可以根據(jù)現(xiàn)有業(yè)務(wù)系統(tǒng)提供廠商或其所采用的技術(shù),選擇相應(yīng)的綁定組件,將現(xiàn)有的應(yīng)用系統(tǒng)連接到JBI環(huán)境中,實(shí)現(xiàn)系統(tǒng)間應(yīng)用接口級的交互訪問。例如,當(dāng)需要實(shí)現(xiàn)對MQ(messages queue)服務(wù)器的連接和訪問,可以在JMS(java message services)綁定組件中將MQ服務(wù)器的接口發(fā)布為一個(gè)服務(wù)。上層應(yīng)用程序可以通過調(diào)用這個(gè)服務(wù)與MQ服務(wù)器進(jìn)行交互,JMS綁定組件在交互過程中自動(dòng)完成從JMS消息到標(biāo)準(zhǔn)化消息(XML格式)的轉(zhuǎn)換工作。圖2是基于服務(wù)/消息總線的系統(tǒng)集成示意圖。
圖2 基于服務(wù)/消息總線的系統(tǒng)集成Fig.2 Systems integration based on the service/message bus
進(jìn)一步指出,JBI綁定組件和傳統(tǒng)的接口適配器的不同之處在于服務(wù)化:JBI綁定組件將應(yīng)用程序的接口發(fā)布為基于WSDL接口的標(biāo)準(zhǔn)化的服務(wù),從而支持更通用的訪問標(biāo)準(zhǔn)化:JBI綁定組件自身的開發(fā)是基于JBI規(guī)范,具有通用的API,不同JBI環(huán)境中開發(fā)的組件原則上是可以通用的,因此具有豐富的組件資源可擴(kuò)展性:JBI環(huán)境具有插件式的架構(gòu),可以在運(yùn)行時(shí)添加JBI綁定組件,實(shí)現(xiàn)對某個(gè)新應(yīng)用系統(tǒng)接口的訪問。綜上所述,使用JBI綁定組件實(shí)現(xiàn)異構(gòu)系統(tǒng)的接口適配的技術(shù)是可行的。
BPEL是一種基于Web服務(wù)的業(yè)務(wù)流程執(zhí)行語言,可以有效支持業(yè)務(wù)流程集成工作[7]。BPEL與一般的編程語言相比具有更高的抽象層次,一般說來,BPEL并不實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,而是在更高的層面編寫企業(yè)業(yè)務(wù)流程。本文的集成方案中各種業(yè)務(wù)系統(tǒng)的接口以服務(wù)的形式對外發(fā)布,BPEL業(yè)務(wù)流程通過調(diào)用應(yīng)用系統(tǒng)發(fā)布的服務(wù)來協(xié)調(diào)各個(gè)應(yīng)用系統(tǒng),使之協(xié)同工作,共同完成任務(wù)。通過BPEL流程可以有效地整合各個(gè)應(yīng)用系統(tǒng)中原本分離的業(yè)務(wù)流程,使之成為一個(gè)完整的業(yè)務(wù)流程,達(dá)到業(yè)務(wù)流程集成的目的。圖3為使用BPEL整合多個(gè)業(yè)務(wù)系統(tǒng)的流程示意圖。
圖3 使用BPEL整合多個(gè)業(yè)務(wù)系統(tǒng)的流程Fig.3 The use of BPELintegration of multiple business system
文中的技術(shù)方案針對國內(nèi)電力企業(yè)的特點(diǎn)量身定制,采用了最新的基于SOA架構(gòu)的應(yīng)用集成技術(shù),符合最新的應(yīng)用集成標(biāo)準(zhǔn)和SOA規(guī)范[8],更為重要的是這些標(biāo)準(zhǔn)規(guī)范和技術(shù)體系均較為成熟,這樣大大降低了系統(tǒng)集成的風(fēng)險(xiǎn)。
基于SOA架構(gòu)的信息系統(tǒng)應(yīng)用集成技術(shù)能夠改變電力行業(yè)當(dāng)前的軟件開發(fā)模式以及傳統(tǒng)系統(tǒng)集成方法所造成的電力系統(tǒng)“信息孤島”和信息系統(tǒng)集成的緊密耦合局面,是目前電力行業(yè)迫切需要的軟件技術(shù)。
該集成方案從數(shù)據(jù)層、服務(wù)/消息層和流程層等3個(gè)層面實(shí)施電力行業(yè)的應(yīng)用集成,它是較為全面的整體解決方案。采用了SDO技術(shù)標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)層的集成,形成一個(gè)可以集中管理的數(shù)據(jù)中心;使用JBI綁定組件實(shí)施業(yè)務(wù)系統(tǒng)接口級的集成,實(shí)現(xiàn)各個(gè)業(yè)務(wù)系統(tǒng)接口間的互聯(lián)互通;基于BPEL標(biāo)準(zhǔn)實(shí)現(xiàn)流程層的集成,貫通多個(gè)業(yè)務(wù)系統(tǒng)中相互分離的業(yè)務(wù)流程,形成企業(yè)完整的業(yè)務(wù)流程。這些標(biāo)準(zhǔn)化的技術(shù)體系不僅降低了系統(tǒng)集成的風(fēng)險(xiǎn)還將大幅降低應(yīng)用集成平臺(tái)與應(yīng)用工作的成本。
[1]曹渝昆.基于SOA的大型電力企業(yè)信息系統(tǒng)集成研究[J].上海電力學(xué)院學(xué)報(bào),2011,27(1):53-56.
[2]李錦棠.企業(yè)SOA服務(wù)集成的研究與設(shè)計(jì)[D].廣州:廣東工業(yè)大學(xué),2006:4.
[3]王錚鈞.EAI中本體異構(gòu)數(shù)據(jù)集成中間件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(8):164-168.
[4]劉松,付曉江.面向服務(wù)的企業(yè)應(yīng)用集成架構(gòu)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2005,23(6):657-663.
[5]王恩德.利用SOA構(gòu)建新一代企業(yè)管理信息系統(tǒng)[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2006,24(3):322-329.
[6]郭飛.SOA中服務(wù)組合與自動(dòng)構(gòu)建技術(shù)研究[D].重慶:重慶大學(xué),2008:4.
[7]張海峰,馬蘇.基于SOA的企業(yè)應(yīng)用集成技術(shù)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(7):192-194.
[8]楊婷.基于SOA架構(gòu)的企業(yè)應(yīng)用集成(EAI)技術(shù)研究[D].成都:電子科技大學(xué),2009:9.