系統架構師

當前位置 /首頁/職業師/系統架構師/列表

SOA體系架構下的企業系統整合

SOA不同於現有的分散式技術之處在於大多數軟體商接受它並有可以實現SOA的平臺或應用程式。它伴隨著無處不在的標準,為企業的現有資產或投資帶來了更好的重用性。它以藉助現有的應用來組合產生新服務的敏捷方式,提供給企業更好的靈活性來構建應用程式和業務流程,對現代企業的系統整合和整合起到了非常重要的作用。

SOA體系架構下的企業系統整合

  1、系統的物理部署結構

1.1 硬體體系結構

硬體體系結構主要來配合應用總體規則及軟體體系結構的需要。多層體系結構根據實際情況可以有不同的主機系統部署方案。根據前面的論述,我們清楚了多層體系結構有著良好的伸縮性。下面我們重點提出基於硬體的可伸縮性的方案建議:

主機系統部署方案的各個階段,隨著應用業務的不斷擴充套件,系統可以通過增加資料庫伺服器和Web/應用伺服器的數量,而不需要重新修改程式,就可以適應這種變化。根據目前的情況,我們認為採用圖中的第二階段的主機系統部署方案可以滿足應用系統對使用者訪問量、業務處理能力和資料儲存的要求。第二階段的主機系統部署方案要求伺服器分為資料庫伺服器和應用伺服器,應用伺服器專門負責業務處理和Web訪問,通過DDN專線連線到Internet(根據使用者對安全性的要求,系統也可以不作任何修改的執行在企業內部的anet上),並和資料庫伺服器組成一個很小的區域網。客戶機可以直接通過因特網訪問應用系統但不能直接訪問資料庫。

1.2 系統的技術體系結構

SOA架構具有一些典型特性,主要包括鬆耦合性,位置透明性以及協議無關性。鬆耦合性要求SOA架構中的不同服務之間應該保持一種鬆耦合的關係,也就是應該保持一種相對獨立無依賴的關係;位置透明性要求SOA系統中的所有服務對於他們的呼叫者來說都是位置透明的,也就是說每個服務的呼叫者只需要知道他們呼叫的是哪一個服務,但並不需要知道所呼叫服務的物理位置在哪裡;而協議無關性要求每一個服務都可以通過不同的協議來呼叫。通過這些SOA架構所具有的特性我們可以看到,SOA架構的出現為企業系統架構提供了更加靈活的構建方式,如果企業架構設計師基於SOA來構建系統架構,就可以從底層架構的級別來保證整個系統的鬆耦合性以及靈活性,這都為未來企業業務邏輯的擴充套件打好了基礎。

  2、SOA分層模型

SOA中的服務可以被對映成具體系統中的任何功能模組,但是從功能性方面可以大致劃分為以下三種類型:

2.1商業服務:這一類的服務是一個企業可以暴露給外部使用者或者合作伙伴使用的服務。比如說提交貸款申請,使用者信用檢查,貸款信用查詢。

2.2商業功能服務:這類服務會完成一些具體的商業操作,也會被更上層的商業服務呼叫,不過大多數情況下這類服務不會暴露給外部使用者直接呼叫,比如說檢索使用者帳戶資訊,儲存使用者資訊等。

2.3技術功能服務:這類服務主要完成一些底層的技術功能,比如說日誌服務以及安全服務等。

  3、SOA與企業服務匯流排(ESB)

為了將SOA變成現實,需要一個智慧化的服務基礎架構,以降低服務重用的複雜性,並可靠地整合IT環境的各種技術、協議和應用。為此,IT組織建立了一個以“服務”為中心的抽象層,以隱藏各種應用和技術帶來的底層複雜性,並提供一個定製企業應用的平臺。這個服務或整合層稱為ESB(Enterprise Service Bus,企業服務匯流排)。

3.1 SOA架構範例

SOA的部分範例轉移是一個從應用基礎架構(Application Infrastructure)遷移到服務基礎架構(Service Infrastructure)的過程。在SOA之前,各種應用程式用點對點的連線方式孤立地組織在一起。除了利用一個聚合的服務基礎架構層(Service Infrastructure Layer)之外,SOA使用同樣的後端應用引擎和中介軟體。

3.2 SOA/WEB服務的實現

J2EE平臺通過JAXRPC1.1API提供了完整的Web服務支援,這種API支援基於Servlet和企業Bean的服務端點。JAXRPC1.1基於WSDL和SOAP協議提供了與Web服務的互操作性。J2EE平臺也支援WebServicesforJ2EE規範(JSR921),後者定義了Web服務的部署需求並利用了JAXRPC程式設計模型,還提供了跨平臺的互動操作性。

Web服務客戶可以通過兩種方式訪問Java EE應用程式。客戶可以訪問用JAXRPCAPI建立的Web服務;在幕後JAXRPC使用Servlet來實現Web服務。公開無狀態的EJB作為Web服務;Web服務客戶也可以通過Bean的服務端點介面訪問無狀態會話Bean。在專案中,現有的業務邏輯大多已經使用EJB元件編寫,通過Web服務公開它可能是實現從外界訪問這些服務的最佳選擇。

3.3 兩種粒度實現SOA服務

在SOA中服務粒度有兩種相關的意思,即服務是如何實現的,服務使用和返回了多少資料或多少訊息。細粒度服務執行了最小的功能,傳送和接收少量的資料。粗粒度服務執行了較大的業務功能,並交換了更多的資料。

細粒度服務是供粗粒度服務或組合服務使用的,而不是由終端應用直接使用的。如果應用是使用細粒度服務建立的,則應用將不得不呼叫網路上多個服務,並且發生在每個服務上的資料量較少,因而會對對系統整體性帶來影響。所以,粗粒度服務的使用者不能直接呼叫它所使用的細粒度服務,安全和訪問控制必須在細粒度服務中實現。

組合服務可以使用粗粒度服務和細粒度服務進行組裝。資料數量不是粗粒度服務和組合服務之間的區別。粗粒度服務,如建立新使用者,在這一過程的操作是:需要通過一些外部服務驗證對客戶進行驗證,並在資源庫應用系統中建立使用者記錄。