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