隨著全球化對中國經(jīng)濟的日趨影響,愈來愈激烈的市場競爭對國家電網(wǎng)公司經(jīng)營能力提出了更高的要求,相應(yīng)的對信息化水平的要求也更高,國家電網(wǎng)公司的信息化建設(shè)面臨著一系列的挑戰(zhàn)。國家電網(wǎng)公司將先進的信息技術(shù)和成熟的企業(yè)應(yīng)用系統(tǒng)與其業(yè)務(wù)狀況和需求相結(jié)合,逐漸形成了“以業(yè)務(wù)為基礎(chǔ),信息技術(shù)為手段”的科學(xué)經(jīng)營模式,但應(yīng)用建設(shè)存在多種不同的技術(shù)和標(biāo)準(zhǔn)基本沒有流程集成,各業(yè)務(wù)條線的應(yīng)用間自動信息交互的手段和機制不足,缺乏企業(yè)級的集成平臺等問題成為企業(yè)加強集中式管理、協(xié)調(diào)各部門業(yè)務(wù)能力和執(zhí)行能力,提高員工績效和企業(yè)產(chǎn)出的瓶頸,并且難以提供企業(yè)級的決策分析支持。
因此,電力企業(yè)迫切需要一個能夠解決企業(yè)間集成的方案,在企業(yè)間的全方位共享和業(yè)務(wù)流程的無縫對接,實現(xiàn)各相關(guān)業(yè)務(wù)領(lǐng)域的協(xié)作,提高業(yè)務(wù)執(zhí)行效果和效率。本文提出了基于SOA(面向服務(wù)的體系結(jié)構(gòu))的電力系統(tǒng)企業(yè)信息化集成方案,是實現(xiàn) IT 和業(yè)務(wù)同步的先進可行戰(zhàn)略,它提供了一種靈活的、可擴展且可組合的方法來重用和擴展現(xiàn)有應(yīng)用程序以及構(gòu)造新的應(yīng)用程序,以提供服務(wù)的方式向企業(yè)提供了靈活、快捷的系統(tǒng)整合選擇,將企業(yè)應(yīng)用中離散的業(yè)務(wù)功能提取出來,將其組織成可互動的、基于標(biāo)準(zhǔn)的服務(wù),用模塊化和便攜化的服務(wù)在復(fù)合應(yīng)用中組合和重用,可以更快速地滿足業(yè)務(wù)需求。
一 企業(yè)應(yīng)用集成技術(shù)的發(fā)展
1.1 傳統(tǒng)的應(yīng)用集成技術(shù)
企業(yè)應(yīng)用集成技術(shù)是伴隨著企業(yè)信息系統(tǒng)的發(fā)展而產(chǎn)生和演變的。企業(yè)的價值取向是推動應(yīng)用集成技術(shù)發(fā)展的原動力,而通過應(yīng)用集成技術(shù)所實現(xiàn)的價值反過來也驅(qū)動著公司競爭優(yōu)勢的提升。
EAI(企業(yè)應(yīng)用集成)萌芽于上世紀(jì) 80 年代后期,在本世紀(jì)初逐漸成熟并進入大規(guī)模應(yīng)用。EAI的目標(biāo)是支持對現(xiàn)有IT系統(tǒng)的重新利用,通過EAI技術(shù)能夠?qū)⒉煌能浖拖到y(tǒng)串聯(lián)起來,延長這些應(yīng)用系統(tǒng)的生命周期。傳統(tǒng)的EAI,往往使用如CORBA 和COM等的消息中間件進行分布式,跨平臺的程序交互,修改企業(yè)資源規(guī)劃以達到新的目標(biāo),使用中間件、XML等方法來進行數(shù)據(jù)分配。因此,實際上傳統(tǒng)的EAI是部件級的重用。很不幸的是,基于部件的架構(gòu)沒有統(tǒng)一的標(biāo)準(zhǔn),各廠商的中間件多采用其專有協(xié)議或接口規(guī)范,開放程度非常低,一經(jīng)采用,信息系統(tǒng)升級、完善的成本很高,周期很長,直接導(dǎo)致了企業(yè)管理流程受到系統(tǒng)固化,出現(xiàn)企業(yè)管理隨著信息化應(yīng)用的深化反而管理流程被動僵化。如果碰到了異構(gòu)的環(huán)境,就必須分別考慮怎樣在各個不同的中間件之間周旋,來實現(xiàn)合理的互聯(lián)方式,你不得不考慮各種復(fù)雜的可能性,因而很難實現(xiàn)較復(fù)雜的流程集成,也就不能迅速滿足業(yè)務(wù)變化提出的信息系統(tǒng)調(diào)整的需求。
1.2 SOA
SOA(面向服務(wù)架構(gòu))是新興的企業(yè)應(yīng)用集成技術(shù)方案,它體現(xiàn)了當(dāng)今企業(yè)應(yīng)用集成技術(shù)領(lǐng)域的最佳方案。
SOA 是一種在松散耦合的服務(wù)和應(yīng)用之間標(biāo)準(zhǔn)的集成方式,用一種構(gòu)造分布式系統(tǒng)的方法,將業(yè)務(wù)應(yīng)用功能以服務(wù)的形式提供給最終用戶應(yīng)用或其他服務(wù),實現(xiàn)服務(wù)間智能化集成與管理。服務(wù)的內(nèi)部細節(jié)以及在組成服務(wù)的組件之間傳送的數(shù)據(jù)的復(fù)雜性都對外界隱藏了,從而可以通過合并構(gòu)建在不同的機器上、運行在不同的操作系統(tǒng)中、用不同的編程語言開發(fā)的組件來創(chuàng)建服務(wù),降低集成的復(fù)雜性,增加業(yè)務(wù)的靈活性,也降低了在增強或創(chuàng)建新的業(yè)務(wù)服務(wù)的過程中帶來的風(fēng)險,也減少了維護和管理支持服務(wù)的基礎(chǔ)架構(gòu)的風(fēng)險。
在早期EAI應(yīng)用集成方式中,如果要集成N個系統(tǒng),就要建立N2個服務(wù),并且當(dāng)需要添加或刪除服務(wù)端點,必須要從新編譯服務(wù)客戶端;與早期的EAI 相比,SOA采用了分布式的應(yīng)用集成方式,全面的解決了早期EAI點對點集成方式中N2問題,而根據(jù)需要刪除服務(wù)端點時,不用擔(dān)心需要重新編譯服務(wù)客戶端的問題;同時,SOA能夠在最新的和現(xiàn)有的應(yīng)用之上創(chuàng)建應(yīng)用;SOA能夠使客戶或服務(wù)消費者免予受到服務(wù)實現(xiàn)的改變所帶來的影響;SOA能夠升級單個服務(wù)或服務(wù)消費者而無需重寫整個應(yīng)用,也無需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)。總而言之,SOA 以借助現(xiàn)有的應(yīng)用來組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。
1.2.1 企業(yè)服務(wù)總線
SOA 體系中引入了企業(yè)服務(wù)總線(ESB)的概念,服務(wù)交互的參與方并不直接交互,而是通過一個總線交互,該總線提供虛擬化和管理功能來實現(xiàn)和擴展SOA的核心定義。它是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)結(jié)合的產(chǎn)物。ESB提供了網(wǎng)絡(luò)中最基本的連接中樞,是構(gòu)筑企業(yè)神經(jīng)系統(tǒng)的必要元素。ESB 的出現(xiàn)改變了傳統(tǒng)的軟件架構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價的解決方案,同時它還可以消除不同應(yīng)用之間的技術(shù)差異,讓不同的應(yīng)用服務(wù)器協(xié)調(diào)運作,實現(xiàn)了不同服務(wù)之間的通信與整合。從功能上看,ESB提供了事件驅(qū)動和文檔導(dǎo)向的處理模式,以及分布式的運行管理機制,它支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。ESB是邏輯上與SOA所遵循的基本原則保持一致的服務(wù)集成基礎(chǔ)架構(gòu),它提供了服務(wù)管理的方法和在分布式異構(gòu)環(huán)境中進行服務(wù)交互的功能。
1.2.2 ESB 的特點
1)松耦合。ESB在服務(wù)客戶端和服務(wù)提供者之間提供了一種中階層,這種中階層可以提供消息傳輸和安全技術(shù)。這種方法可以有效的包裝原有的服務(wù),并為新客戶端提供傳輸能力。
2) 位置透明。位置透明是一個對服務(wù)客戶端隱藏服務(wù)端點物理位置的策略。ESB可以注冊和管理企業(yè)內(nèi)所有服務(wù)的位置,這提供了一個服務(wù)客戶端和服務(wù)提供者之間的抽象層,可以更靈活的管理服務(wù),并且增強了添加和刪除服務(wù)提供者的可操作性,并且不會影響服務(wù)的客戶端。
3) 服務(wù)中介ESB是一個中間層,存在于服務(wù)客戶端和服務(wù)提供者之間。這層為架構(gòu)的附加值提供了很大的空間。當(dāng)客戶使用SOA 上的服務(wù)時,ESB可以進行多個操作,它可以改變收到和發(fā)送消息的數(shù)據(jù)和Schema;根據(jù)消息的內(nèi)容,智能的把消息路由到不同的服務(wù)端點。
4) Schema 轉(zhuǎn)換。ESB發(fā)布的Web Service 的Schema 可以與表達該Web Service 的業(yè)務(wù)服務(wù)所使用的不相同。當(dāng)用戶規(guī)范分類以及與其他Web Service 聚合或編排的時候,這個功能顯得尤為重要。
5)服務(wù)聚合。ESB服務(wù)間的調(diào)用可以當(dāng)做一個Fa?ade模式使用,使一系列的Web Service 調(diào)用作為一個Web Service 出現(xiàn)。服務(wù)聚合按照這種模式來運行,當(dāng)調(diào)用一個代理服務(wù)時,多個 Web Service 會被調(diào)用,返回唯一的結(jié)果。并且可以通過一些條件判斷邏輯來定義哪些底層的服務(wù)會被調(diào)用以及調(diào)用的次序來實現(xiàn)服務(wù)的編排。
6) 負載均衡。ESB 在架構(gòu)中的位置決定了ESB適合對那些跨多服務(wù)點對點的請求做負載均衡。當(dāng)把一個業(yè)務(wù)服務(wù)Web Service 注冊到ESB后,可以指定運行該業(yè)務(wù)服務(wù)的服務(wù)端點列表?梢酝ㄟ^修改這個列表,添加或刪除服務(wù)端點,并且激活修改而不需要從新啟動服務(wù)總線。
7)強制安全性。ESB作為服務(wù)的協(xié)調(diào)者,在盡可能的情況下,應(yīng)該使用集中的方式來增強安全,這就允許了更大范圍的標(biāo)準(zhǔn)化以及對安全問題進行控制,通過策略驅(qū)動的框架來牽制安全。使用此安全策略意味著可以在每個Web Service 服務(wù)外部創(chuàng)建和應(yīng)用安全標(biāo)準(zhǔn)。
8) 監(jiān)控。ESB 在SOA中扮演著重要的角色。因此必須要有一個健壯的方式來監(jiān)控ESB的狀態(tài),包括主動式和響應(yīng)式。主動觀察服務(wù)總線性能的能力,有助于優(yōu)化服務(wù)總線提高其性能。隨時跟蹤性能有助于制定ESB的擴展計劃。響應(yīng)式監(jiān)控可以對特定條件設(shè)置警告。
可以說,ESB是特定環(huán)境下(SOA架構(gòu)中)實施EAI的方式:首先,在ESB系統(tǒng)中,被集成的對象被明確定義為服務(wù),而不是傳統(tǒng)EAI中各種各樣的中間件平臺,這樣就極大簡化了在集成異構(gòu)性上的考慮,因為不管有怎樣的應(yīng)用底層實現(xiàn),只要是SOA架構(gòu)中的服務(wù),它就一定是基于標(biāo)準(zhǔn)的。
其次,ESB明確強調(diào)消息(Message)處理在集成過程中的作用,這里的消息指的是應(yīng)用環(huán)境中被集成對象之間的溝通。傳統(tǒng)的EAI系統(tǒng)中的消息處理大多是被動的,消息的處理需要各自中間件的私有方式支持。ESB系統(tǒng)由于將集成對象統(tǒng)一到服務(wù),消息在應(yīng)用服務(wù)之間傳遞時格式是標(biāo)準(zhǔn)的,直接面向消息的處理方式成為可能。如果ESB能夠在底層支持現(xiàn)有的各種通訊協(xié)議,那么對消息的處理就完全不考慮底層的傳輸細節(jié),而直接通過消息的標(biāo)準(zhǔn)格式定義來進行。這樣,在ESB中,對消息的處理就會成為ESB 的核心,因為通過消息處理來集成服務(wù)是最簡單可行的方式。這也是ESB中總線(Bus)功能的體現(xiàn)。ESB的概念不僅僅是提供消息交互的通道,更重要的是提供服務(wù)的智能化集成基礎(chǔ)架構(gòu)。
最后,事件驅(qū)動成為 ESB 的重要特征。通常服務(wù)之間傳遞的消息有兩種形式,一種是調(diào)用(Call),即請求/回應(yīng)方式,這是常見的同步模式。還有一種我們稱之為單路消息(One-way),它的目的往往是觸發(fā)異步的事件,發(fā)送者不需要馬上得到回復(fù)?紤]到有些應(yīng)用服務(wù)是長時間運行的,因此,這種異步服務(wù)之間的消息交互也是ESB 必須支持的。除此之外,ESB的很多功能都可以利用這種機制來實現(xiàn),例如,SOA中服務(wù)的性能監(jiān)控等基礎(chǔ)架構(gòu)功能,需要通過ESB 來提供數(shù)據(jù),當(dāng)服務(wù)的請求通過ESB 中轉(zhuǎn)的時候,ESB很容易通過事件驅(qū)動機制向SOA 的基礎(chǔ)架構(gòu)服務(wù)傳遞信息。
二 基于 ESB 的電力系統(tǒng)應(yīng)用集成設(shè)計
隨著SG186的深化應(yīng)用和SG-ERP建設(shè)的提出,八大應(yīng)用及ERP等成熟套裝軟件隨著國網(wǎng)信息化的建設(shè)已經(jīng)逐步在各網(wǎng)省公司得到了推廣和應(yīng)用,各系統(tǒng)間的集成能很好的解決了電力企業(yè)內(nèi)各部門間信息共享以及快速的為決策層提供需要的數(shù)據(jù)分析和報告等問題。
在上圖的設(shè)計模式中,完全基于松散耦合方式構(gòu)建企業(yè)級應(yīng)用集成。每一個具體的應(yīng)用,它既可能是服務(wù)消費者,也可能是服務(wù)提供者,或者同時具備兩種角色。能夠進行服務(wù)化封裝或者改造的業(yè)務(wù)應(yīng)用將業(yè)務(wù)功能封裝成web服務(wù),注冊到ESB企業(yè)服務(wù)總線中,使得業(yè)務(wù)應(yīng)用提供的功能成為SOA架構(gòu)中的服務(wù),并且通過ESB對服務(wù)進行“即插即用”,快速實現(xiàn)應(yīng)用集成。服務(wù)消費者通過標(biāo)準(zhǔn)方式(SOAP over HTTP或者 SOAP over JMS)調(diào)用服務(wù)總線上的服務(wù),當(dāng)請求數(shù)據(jù)進入服務(wù)總線后,服務(wù)總線在訪問控制、消息轉(zhuǎn)換、服務(wù)路由等三步處理之后,調(diào)用相應(yīng)的業(yè)務(wù)服務(wù)。
BPM 能夠編排現(xiàn)有的服務(wù),形成組合服務(wù)或業(yè)務(wù)流程。業(yè)務(wù)流程的每個節(jié)點以“服務(wù)消費者”的身份,通過標(biāo)準(zhǔn)方式(SOAP over HTTP 或者 SOAP over JMS)調(diào)用服務(wù)總線上的服務(wù)。編排形成的組合服務(wù)或業(yè)務(wù)流程也以標(biāo)準(zhǔn) web 服務(wù)的方式注冊到服務(wù)總線,通過標(biāo)準(zhǔn)方式(SOAP over HTTP 或者 SOAP over JMS)被其他應(yīng)用調(diào)用。
三 基于ESB服務(wù)總線在電力系統(tǒng)應(yīng)用集成的實現(xiàn)案例
我公司研發(fā)的《績效管理信息系統(tǒng)》需要從ERP中獲取人員編號等信息,又要與門戶集成實現(xiàn)單點登錄、用戶信息同步等功能。在這種情況下我嘗試采用企業(yè)服務(wù)總線來解決應(yīng)用集成的問題。
我選用Oracle公司的Oracle Service Bus 10gR3,它具有高可靠性、支持標(biāo)準(zhǔn)廣泛等特點。我先將要從ERP 中獲取數(shù)據(jù)和與門戶集成所需要的方法封裝到兩個Web Service 中,分別注冊到OSB的企業(yè)服務(wù)總線上,成為OSB 的業(yè)務(wù)服務(wù),并且在OSB 中配置需要提交服務(wù)的 WSDL 文件和輸入輸出參數(shù)的 XML Schema文件;并且在OSB上面建立代理服務(wù),并配置代理服務(wù)的消息流,配置完成后開放代理服務(wù)的WSDL文件。ERP 和門戶應(yīng)用程序只需要調(diào)用OSB 上的代理服務(wù)并根據(jù)參數(shù) XML Schema文件組織好輸入?yún)?shù)和解析返回結(jié)果。
由于《績效管理信息系統(tǒng)》是一個正在使用的系統(tǒng),貿(mào)然的進行應(yīng)用集成存在著很多的風(fēng)險性,一旦數(shù)據(jù)同步或集成的任何一個環(huán)節(jié)出現(xiàn)差錯都會影響正在運行系統(tǒng)的安全。我先在測試機上進行集成測試,在確保與ERP和門戶系統(tǒng)的集成已經(jīng)安全準(zhǔn)確無誤后修改在OSB中注冊的WSDL并重新配置路由節(jié)點,將服務(wù)提供路徑由測試機遷移至正式機,完成《績效管理信息系統(tǒng)》與ERP系統(tǒng)與門戶系統(tǒng)的最終集成。
通過使用OSB服務(wù)總線,在服務(wù)提供路徑從測試機往正式機遷移的過程只需要在OSB服務(wù)總線上進行配置就可以了,ERP 系統(tǒng)和門戶系統(tǒng)不會因為服務(wù)提供者的物理地址改變而去做任何更改甚至去重新編譯程序,大大降低了數(shù)據(jù)集成的難度與風(fēng)險,并且,一些簡單的數(shù)據(jù)轉(zhuǎn)換及效驗的操作可以再XML Schema 文件中進行配置,不用修改和重新編譯客戶端程序從而讓各應(yīng)用系統(tǒng)運行更穩(wěn)定、流暢。
四 總結(jié)與展望
利用SOA技術(shù)的企業(yè)服務(wù)總線ESB構(gòu)造了松耦合的電力系統(tǒng)應(yīng)用集成,既利用了現(xiàn)有的系統(tǒng),又實現(xiàn)了系統(tǒng)間的企業(yè)級的應(yīng)用集成,解決了各系統(tǒng)間“信息孤島”的問題,所以使用基于SOA的企業(yè)服務(wù)總線ESB能夠很好的滿足電力企業(yè)的系統(tǒng)應(yīng)用集成要求,也將為其決策提供強大支持,它的應(yīng)用可以為電力企業(yè)的業(yè)務(wù)流程集成BPM提供良好的基礎(chǔ),在此基礎(chǔ)上運用聯(lián)機分析處理及流程集成等技術(shù),可以為電力企業(yè)的戰(zhàn)略和戰(zhàn)術(shù)決策以及管理提供極大的信息支持。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于SOA的企業(yè)服務(wù)總線研究與實現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083934345.html