基于SOA架構的企業集成系統設計與實現
信息化的發展,企業間協同商務和企業信息門戶(EIP)等要求企業的應用系統是一個高度集成和開放的系統。然而大型企業往往擁有著異構系統,導致系統間信息的交互與互操作非常困難,形成了一個個“信息孤島”,為了實現企業全局的業務過程自動化,人們投入了大量的人力和財力來進行系統集成。傳統的企業應用集成(Enterprise Application Integration,EAI)解決方案有4種類型:用戶界面集成、數據集成、業務流程集成、函數/方法集成,這4種集成方法不能方便、靈活、低代價地實現異構系統的集成,難以快速適應企業現代業務變化的需求。另外,隨著企業計算的發展,企業級應用要求新的軟件系統不再是從底層做起,而只是依據企業邏輯需求重新組織己有的數據存儲,將現有的數據和事務通過新的渠道,如瀏覽器或者手持設備呈現給用戶。基于面向服務架構(Service Oriented Archi-tecture,SOA)的應用集成開發方案,在不改變企業應用底層架構的基礎上,可以很好地解決上述問題。它支持在中間層以服務模塊方式實現解決方案,當多個運行在不同平臺和技術下的應用程序必須互相通信時,這種體系結構尤其適用。
l SOA架構
SOA架構是一種分布式的軟件組件模型。整個系統被設計和實現為一組相互交互的服務,它使得系統中的某些服務能夠充分利用其他的服務同時卻無需考慮其物理位置。在該模型中,任何的業務功能被作為提供的一個服務使用。應用程序的不同功能(服務)通過這些服務之間定義良好的接口和契約聯系起來,使得構建在系統中的服務可以以一種統一和通用的方法進行調用。這種具有中立的接口定義(沒有強制綁定到特定的實現上)的特征稱為服務之間的松藕合。松藕合系統的好處有兩點:它的靈活性;當組成整個應用程序的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。這就為解決EAI集成問題和快速開發新的IT系統鋪平了道路。SOA模型如圖1所示,說明了SOA中的不同角色及其工作流程。SOA架構的組件包括:
(1)服務提供者:服務提供者是一個可通過網絡尋址的實體,它接受和執行來自使用者的請求;
(2)服務使用者:服務使用者是一組使用服務提供者所提供的一項或多項服務的組件;
(3)服務儲備庫:服務儲備庫包含服務的描述,服務提供者在該儲備庫中注冊其服務,而服務使用者訪問該儲備庫已發現的所提供的服務。
2 SOA的具體實現
SOA是一種軟件架構,而不是局限于某個技術的組合,它超越了技術范圍。SOA的關鍵是“服務”。W3C將服務定義為:“服務提供者完成一組工作,為服務使用者交付所需的最終結果。最終結果通常是使用者的狀態發生變化,但也可能是提供者的狀態改變,或者雙方都產生變化”。服務是網絡中可用的軟件資源。服務提供者通過標準機制提供服務,使用者通過網絡有計劃地使用服務。服務儲備庫發布服務所在位置,并在使用者請求服務時定位服務。服務使用者和提供者的角色不是惟一的,服務提供者也可以是使用者,反之亦然。SOA具體的實現有很多,包括Web Service,Ses-sionBean,JINI等,但隨著Web Service技術被越來越重視,其己經成為構建SOA的主要技術。
3 基于Web Service實現SOA
3.1 Web Service體系結構
Web Service是近幾年提出的一種新的面向服務的體系結構,它是基于Web服務提供者、服務請求者和服務注冊代理的不同操作來建立的。具體來說其運作分為三部分:發布操作一服務提供者通過發布操作向服務注冊代理注冊自己的功能和訪問接口;查找操作一服務請求者通過查找操作向服務注冊代理查找特定的服務;綁定操作一服務請求者通過綁定操作實際使用服務提供者所提供的服務。
3.2 Web Service技術支持
Web Service技術建立的面向服務架構基于開放性標準。一些典型的開放性標準有:XML(可擴展標記語言);SOAP(簡單對象訪問協議);WSDL(Web服務描述語言);UDDI(Web服務注冊規范)。Web Serv-ice本身就是一種SOA架構,可以實現各種應用程序資源的互聯互通,大大促進了軟件源的共享,從而成為新型的提供分布式的(全球性的)信息整合手段和應用系統EAI解決方案。
3.3 Web Service結構的構造實現
(1)基于CORBA和Java的Web體系結構
基于CORBA和Java的Web結構的運行機制是:CORBA客戶方程序從Web服務器下載執行,并與應用服務器上的CORBA應用對象通過Internet對象請求代理間協議(Internet Inter-ORB Protocol,IIOP)通信,調用其指定的操作。CORBA應用對象首先對客戶的請求進行認證和解釋,根據客戶請求的內容,或直接訪問資源層的數據庫或與網絡上的其他CORBA對象交互,共同完成客戶請求。各種新開發的Web應用,只要使用接口定義語言(IDL)封裝成CORBA對象,在CORBA系統中登記注冊后,就可以動態地加載進入Web系統,迅速地為客戶提供服務。體系結構如圖2所示。
評論