SOA體系架構(gòu)下的企業(yè)系統(tǒng)集成
SOA不同于現(xiàn)有的分布式技術(shù)之處在于大多數(shù)軟件商接受它并有可以實現(xiàn)SOA的平臺或應用程序。它伴隨著無處不在的標準,為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來了更好的重用性。它以借助現(xiàn)有的應用來組合產(chǎn)生新服務的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應用程序和業(yè)務流程,對現(xiàn)代企業(yè)的系統(tǒng)集成和整合起到了非常重要的作用。
1、系統(tǒng)的物理部署結(jié)構(gòu)
1.1 硬件體系結(jié)構(gòu)
硬件體系結(jié)構(gòu)主要來配合應用總體規(guī)則及軟件體系結(jié)構(gòu)的需要。多層體系結(jié)構(gòu)根據(jù)實際情況可以有不同的主機系統(tǒng)部署方案。根據(jù)前面的論述,我們清楚了多層體系結(jié)構(gòu)有著良好的伸縮性。下面我們重點提出基于硬件的可伸縮性的方案建議:
主機系統(tǒng)部署方案的各個階段,隨著應用業(yè)務的不斷擴展,系統(tǒng)可以通過增加數(shù)據(jù)庫服務器和Web/應用服務器的數(shù)量,而不需要重新修改程序,就可以適應這種變化。根據(jù)目前的情況,我們認為采用圖中的第二階段的主機系統(tǒng)部署方案可以滿足應用系統(tǒng)對用戶訪問量、業(yè)務處理能力和數(shù)據(jù)存儲的要求。第二階段的主機系統(tǒng)部署方案要求服務器分為數(shù)據(jù)庫服務器和應用服務器,應用服務器專門負責業(yè)務處理和Web訪問,通過DDN專線連接到Internet(根據(jù)用戶對安全性的要求,系統(tǒng)也可以不作任何修改的運行在企業(yè)內(nèi)部的Intranet上),并和數(shù)據(jù)庫服務器組成一個很小的局域網(wǎng)。客戶機可以直接通過因特網(wǎng)訪問應用系統(tǒng)但不能直接訪問數(shù)據(jù)庫。
1.2 系統(tǒng)的'技術(shù)體系結(jié)構(gòu)
SOA架構(gòu)具有一些典型特性,主要包括松耦合性,位置透明性以及協(xié)議無關(guān)性。松耦合性要求SOA架構(gòu)中的不同服務之間應該保持一種松耦合的關(guān)系,也就是應該保持一種相對獨立無依賴的關(guān)系;位置透明性要求SOA系統(tǒng)中的所有服務對于他們的調(diào)用者來說都是位置透明的,也就是說每個服務的調(diào)用者只需要知道他們調(diào)用的是哪一個服務,但并不需要知道所調(diào)用服務的物理位置在哪里;而協(xié)議無關(guān)性要求每一個服務都可以通過不同的協(xié)議來調(diào)用。通過這些SOA架構(gòu)所具有的特性我們可以看到,SOA架構(gòu)的出現(xiàn)為企業(yè)系統(tǒng)架構(gòu)提供了更加靈活的構(gòu)建方式,如果企業(yè)架構(gòu)設計師基于SOA來構(gòu)建系統(tǒng)架構(gòu),就可以從底層架構(gòu)的級別來保證整個系統(tǒng)的松耦合性以及靈活性,這都為未來企業(yè)業(yè)務邏輯的擴展打好了基礎。
2、SOA分層模型
SOA中的服務可以被映射成具體系統(tǒng)中的任何功能模塊,但是從功能性方面可以大致劃分為以下三種類型:
2.1商業(yè)服務:這一類的服務是一個企業(yè)可以暴露給外部用戶或者合作伙伴使用的服務。比如說提交貸款申請,用戶信用檢查,貸款信用查詢。
2.2商業(yè)功能服務:這類服務會完成一些具體的商業(yè)操作,也會被更上層的商業(yè)服務調(diào)用,不過大多數(shù)情況下這類服務不會暴露給外部用戶直接調(diào)用,比如說檢索用戶帳戶信息,存儲用戶信息等。
2.3技術(shù)功能服務:這類服務主要完成一些底層的技術(shù)功能,比如說日志服務以及安全服務等。
3、SOA與企業(yè)服務總線(ESB)
為了將SOA變成現(xiàn)實,需要一個智能化的服務基礎架構(gòu),以降低服務重用的復雜性,并可靠地集成IT環(huán)境的各種技術(shù)、協(xié)議和應用。為此,IT組織創(chuàng)建了一個以“服務”為中心的抽象層,以隱藏各種應用和技術(shù)帶來的底層復雜性,并提供一個定制企業(yè)應用的平臺。這個服務或集成層稱為ESB(Enterprise Service Bus,企業(yè)服務總線)。
3.1 SOA架構(gòu)范例
SOA的部分范例轉(zhuǎn)移是一個從應用基礎架構(gòu)(Application Infrastructure)遷移到服務基礎架構(gòu)(Service Infrastructure)的過程。在SOA之前,各種應用程序用點對點的連接方式孤立地組織在一起。除了利用一個聚合的服務基礎架構(gòu)層(Service Infrastructure Layer)之外,SOA使用同樣的后端應用引擎和中間件。
3.2 SOA/WEB服務的實現(xiàn)
J2EE平臺通過JAXRPC1.1API提供了完整的Web服務支持,這種API支持基于Servlet和企業(yè)Bean的服務端點。JAXRPC1.1基于WSDL和SOAP協(xié)議提供了與Web服務的互操作性。J2EE平臺也支持WebServicesforJ2EE規(guī)范(JSR921),后者定義了Web服務的部署需求并利用了JAXRPC編程模型,還提供了跨平臺的交互操作性。
Web服務客戶可以通過兩種方式訪問Java EE應用程序?蛻艨梢栽L問用JAXRPCAPI創(chuàng)建的Web服務;在幕后JAXRPC使用Servlet來實現(xiàn)Web服務。公開無狀態(tài)的EJB作為Web服務;Web服務客戶也可以通過Bean的服務端點接口訪問無狀態(tài)會話Bean。在項目中,現(xiàn)有的業(yè)務邏輯大多已經(jīng)使用EJB組件編寫,通過Web服務公開它可能是實現(xiàn)從外界訪問這些服務的最佳選擇。
3.3 兩種粒度實現(xiàn)SOA服務
在SOA中服務粒度有兩種相關(guān)的意思,即服務是如何實現(xiàn)的,服務使用和返回了多少數(shù)據(jù)或多少消息。細粒度服務執(zhí)行了最小的功能,發(fā)送和接收少量的數(shù)據(jù)。粗粒度服務執(zhí)行了較大的業(yè)務功能,并交換了更多的數(shù)據(jù)。
細粒度服務是供粗粒度服務或組合服務使用的,而不是由終端應用直接使用的。如果應用是使用細粒度服務建立的,則應用將不得不調(diào)用網(wǎng)絡上多個服務,并且發(fā)生在每個服務上的數(shù)據(jù)量較少,因而會對對系統(tǒng)整體性帶來影響。所以,粗粒度服務的用戶不能直接調(diào)用它所使用的細粒度服務,安全和訪問控制必須在細粒度服務中實現(xiàn)。
組合服務可以使用粗粒度服務和細粒度服務進行組裝。數(shù)據(jù)數(shù)量不是粗粒度服務和組合服務之間的區(qū)別。粗粒度服務,如創(chuàng)建新用戶,在這一過程的操作是:需要通過一些外部服務驗證對客戶進行驗證,并在資源庫應用系統(tǒng)中創(chuàng)建用戶記錄。
【SOA體系架構(gòu)下的企業(yè)系統(tǒng)集成】相關(guān)文章: