在本文中,我將談?wù)撊绾螌?Web 服務(wù)及非 Web 服務(wù)的多重 SOA 合并成三維的整合中心來(lái)連接各種后端企業(yè)主機(jī)系統(tǒng),包括:
- 企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)
- 客戶關(guān)系管理(Customer Relationship Management,CRM)
- 供應(yīng)鏈管理(Supply Chain Management,SCM)
- 其它企業(yè)應(yīng)用程序集成(Enterprise Application Integration,EAI)的應(yīng)用程序
- 虛擬的數(shù)據(jù)庫(kù)管理系統(tǒng)
我也將討論中心如何接受輸入數(shù)據(jù)——事件和數(shù)據(jù)——來(lái)源于各種資源。我使用 X、Y 和 Z 軸在三維空間中展示圖片。
什么是 SOA 整合中心?
SOA 整合中心是 Web 服務(wù)與非 Web 服務(wù)的合并的 SOA 與后端企業(yè)系統(tǒng)的集成。它使得 Web 服務(wù)及非 Web 服務(wù)能夠與運(yùn)行在不同平臺(tái)上的服務(wù)器、主機(jī)和微機(jī)上的企業(yè)系統(tǒng)交互。
然而,SOA 整合中心不同于面向服務(wù)的整合(service-oriented integration,SOI)。SOI 將 Web 服務(wù)與運(yùn)行在不同平臺(tái)上的主機(jī)系統(tǒng)相整合。它使得 Web 服務(wù)能夠通過(guò)網(wǎng)關(guān)與主機(jī)交互。您需要 ASP.Net 或其它技術(shù)獲取網(wǎng)關(guān)來(lái)執(zhí)行普通的 Web 服務(wù)。
SOA 是基于一套業(yè)務(wù)流程的 Web 服務(wù)的交互的體系結(jié)構(gòu)。您可以在第一個(gè) SOA 中獲取 Web 服務(wù)來(lái)在第二個(gè) SOA 中復(fù)用代表 Web 服務(wù)的服務(wù)。Web 服務(wù)可能由一些小的 Web 服務(wù)組成,它們將服務(wù)傳遞給客戶。
您使用描述語(yǔ)言(例如,SOAP)或其它描述交互的方法(例如,REST)來(lái)定義交互。每個(gè)交互都是獨(dú)立且松耦合的,以便每個(gè)交互都能獨(dú)立于任何其它交互。這與依賴網(wǎng)關(guān)來(lái)與 Web 服務(wù)集成的緊耦合的主機(jī)系統(tǒng)形成對(duì)照。
SOA 層
我們看一下二維空間中的 SOA 層。之后,我將向您展示為何三維的整合中心是更好的選擇。
SOA 的 IBM 版本的前五層(請(qǐng)見(jiàn)參考資料)是(從下至上):
- 操作系統(tǒng)
- 基于組件的(系統(tǒng))
- 服務(wù)
- 業(yè)務(wù)流程
- 表示層
第六層是集成體系結(jié)構(gòu)(也作為企業(yè)集成總線(Enterprise Integration Bus)),它垂直覆蓋了前五層。下一層是服務(wù)質(zhì)量、安全、管理及監(jiān)控層。
顯而易見(jiàn),操作層由 EAI 打包的應(yīng)用程序、遺留、老式的面向?qū)ο蠹吧虡I(yè)智能應(yīng)用程序組成。它們都可以通過(guò)使用 SOI(在項(xiàng)目級(jí)或企業(yè)級(jí))來(lái)同第二層的基于組件的系統(tǒng)相集成。然后,將組件結(jié)合或集成到復(fù)合應(yīng)用程序中來(lái)提供第三層的服務(wù)。
第四層向您展示了那些服務(wù)是如何根據(jù)一套業(yè)務(wù)流程從一個(gè)流向另一個(gè)的。更高一層通過(guò)遠(yuǎn)程門(mén)戶網(wǎng)站 Web 服務(wù)(Web Services for Remote Portlet,WSRP)標(biāo)準(zhǔn)或其它面向人的表示層的方法來(lái)將 Web 服務(wù)應(yīng)用于應(yīng)用程序接口中。
二維靜態(tài)的 SOA 可能是有問(wèn)題的。幸好,整合中心的發(fā)展意味著 SOA 將變成三維動(dòng)態(tài)的。
可復(fù)用的體系結(jié)構(gòu)
我們假設(shè)該 Web 服務(wù)需要在 .Net 平臺(tái)上或隨后的 WebSphere 平臺(tái)上運(yùn)行前從主機(jī)系統(tǒng)獲取信息。您需要將 Web 服務(wù)與執(zhí)行普通 Web 服務(wù)的主機(jī)網(wǎng)關(guān)相整合。
所有 Web 服務(wù)彼此以 XML 傳遞信息——多個(gè) SOA 中的業(yè)務(wù)流程應(yīng)當(dāng)如何整合及其在提供的服務(wù)中如何實(shí)現(xiàn)。雖然在多個(gè) SOA 中 Web 服務(wù)是可復(fù)用的,但是我進(jìn)一步將 SOA 處理成可復(fù)用的體系結(jié)構(gòu)。
我有多個(gè)實(shí)例,它們關(guān)于將可復(fù)用的 SOA 合并成與主機(jī)系統(tǒng)相連的整合中心,我提出如下四步來(lái)創(chuàng)建中心:
- 將作為可復(fù)用的體系結(jié)構(gòu)的 SOA 數(shù)組劃分成兩個(gè)模塊。第一模塊主要包括整合 Web 服務(wù)的機(jī)制,而第二個(gè)模塊重在服務(wù)交互。
- 為了獲得最佳的速度及可靠性,將每個(gè) SOA 優(yōu)化成更緊湊的形式。檢查可能影響性能的磁盤(pán)碎片空間。
- 將 SOA 按照重要性及復(fù)用頻率區(qū)分優(yōu)先次序。檢查用戶對(duì)于更改 SOA 優(yōu)先權(quán)的需求。
- 將 SOA 合并成連接到一個(gè)或更多主機(jī)系統(tǒng)的整合中心,這些主機(jī)系統(tǒng)運(yùn)行在不同的平臺(tái)上。檢查先前沒(méi)有被提出的互用性問(wèn)題。
模塊化的 SOA 庫(kù)
您可以開(kāi)發(fā)模塊化的和優(yōu)化的 SOA 庫(kù),這些 SOA 被分成了不同類別的層次。每個(gè)類別可以通過(guò)層次最低級(jí)別的 Web 服務(wù)被進(jìn)一步劃分成 SOA 的子組。
您可以將庫(kù)用作到 Web 服務(wù)應(yīng)用程序的動(dòng)態(tài)鏈接。當(dāng)應(yīng)用程序需要訪問(wèn)模塊化的 SOA 時(shí),它將自己鏈接到庫(kù)中。當(dāng)它不再需要檢索到的 SOA 時(shí),將從庫(kù)中釋放自己,當(dāng)提高速度及性能時(shí)節(jié)省磁盤(pán)空間。
下列是庫(kù)中模塊化的 SOA 的一些實(shí)例:
- 衛(wèi)生保健 SOA
- 零售管理 SOA
- 物流 SOA
- 無(wú)線射頻識(shí)別(Radio Frequency Identification,RFID)SOA
庫(kù)用例
假設(shè)您使用在庫(kù)中使用最后三個(gè) SOA(零售管理、物流和 RFID)來(lái)開(kāi)發(fā)整合中心并將它們連接到主機(jī)網(wǎng)關(guān)中。今后,用戶的需求改變了——取消零售管理 SOA 并以衛(wèi)生保健 SOA 代替它。
同時(shí),用新版本更新物流 SOA 使其迎合用戶的需求。在 RFID SOA 中包含新的子組之后,將所有子組區(qū)分優(yōu)先次序并將它們優(yōu)化。
二維非共享的 SOA
我們看一下 Blue Repository 中的三個(gè)模塊化的 SOA(零售管理、物流和 RFID)的二維中心(請(qǐng)見(jiàn)圖 1)。所有都連接到主機(jī)網(wǎng)關(guān)中。例如,如果您使用 ASP.Net,那么您可以通過(guò)網(wǎng)關(guān)來(lái)執(zhí)行普通的 Web 服務(wù)。
圖 1. 非共享的 SOA 的二維中心
如您所見(jiàn),SOA 不是共享的。您可以將這三者結(jié)合成復(fù)合應(yīng)用程序以減少到主機(jī)網(wǎng)關(guān)的連接器的數(shù)目。
二維共享的 SOA
如圖 2 所示,RFID SOA 與物流 SOA 在一邊相交疊。交疊區(qū)域用黃色帶黑色斜線來(lái)顯示。它包含 SOA 用于生成一個(gè)或兩個(gè)服務(wù)的資源。
圖 2. 共享的 SOA 的二維中心
代表三維空間中的中心
您怎樣在二維計(jì)算機(jī)屏幕上設(shè)想三維的中心?處理該問(wèn)題的一種方法是在二維平面中畫(huà)出整合中心的 X、Y 和 Z 軸。另一種方法是使用軟件簡(jiǎn)單地將 2D 圖片轉(zhuǎn)換成 3D 的版本。
在三維的中心,您可以在不改變 SOA 的情況下將現(xiàn)有的主機(jī)替換成新樣式或另一供應(yīng)商的樣式。另外,您可以重新配置或更改 SOA 的優(yōu)先權(quán)以適合新的或已更新的主機(jī)系統(tǒng)對(duì)于更改用戶及組織的需求的響應(yīng)。
第一個(gè)三維中心
考慮如圖 3 所示的三維空間中的整合中心。如您所見(jiàn),RFID SOA 中部分位于物流 SOA 之后。RFID SOA 的隱藏部分用到物流 SOA 的藍(lán)色線畫(huà)出。
圖 3. 第一個(gè)共享的 SOA 的三維中心
如您所見(jiàn),連接器從 RFID SOA 通過(guò)(而不是環(huán)繞)物流 SOA 到主機(jī)網(wǎng)關(guān)。這意味著從 RFID SOA 而來(lái)的連接器與物流 SOA 共享了一些資源。
第二個(gè)三維中心
設(shè)想 RFID SOA 的重疊部分在物流 SOA 的前面,但是不是從任一側(cè),如圖 4 所示。這給了 RFID SOA 更多的選擇來(lái)共享物流 SOA 中的大量資源。
圖 4. 第二個(gè)共享的 SOA 的三維中心
如您所見(jiàn),連接器從 RFID SOA 通過(guò)物流 SOA。
有多少共享的 SOA?
在三維中心中您可以共享的 SOA 的數(shù)目依賴于項(xiàng)目復(fù)雜性、合并問(wèn)題及業(yè)務(wù)流程中的利弊。向您避免 SOA 的過(guò)量開(kāi)銷(xiāo)一樣,您需要確保在開(kāi)發(fā)的整個(gè)生命周期中不會(huì)在三維空間中發(fā)生中心超負(fù)荷的問(wèn)題。您應(yīng)當(dāng)在周期的每個(gè)時(shí)刻都測(cè)試超負(fù)荷。
結(jié)束語(yǔ)
在三維中心中合并 SOA 需要預(yù)先規(guī)劃來(lái)設(shè)置開(kāi)發(fā)和共享的 SOA 的數(shù)目限制。您應(yīng)當(dāng)同業(yè)務(wù)分析師開(kāi)發(fā)組交流有關(guān)各種合并問(wèn)題的信息。您將發(fā)現(xiàn)解決合并問(wèn)題會(huì)使您開(kāi)發(fā)三維中心的工作變得非常容易。您可以開(kāi)發(fā)在中心可復(fù)用和共享的 SOA。分析師將發(fā)現(xiàn)解決該問(wèn)題會(huì)使他們的設(shè)計(jì)和分析三維空間的中心的工作變得非常容易。他們可以確定在不會(huì)導(dǎo)致中心超負(fù)荷的前提下哪個(gè)主機(jī)系統(tǒng)可以連接到中心。