2006 年 12 月 07 日 本 文是介紹服務組件體系結構(Service Component Architecture,SCA)的系列文章的第 1 部分。此部分將概覽 SCA,并說明它如何簡化使用面向服務的體系結構(Service-Oriented Architecture,SOA)所構建的業(yè)務應用程序的設計和集成。本系列的后續(xù)文章將討論 SCA 體系結構及其主要概念,包括服務實現(xiàn)、服務客戶機和各種組件的組裝。 面向服務的體系結構 (SOA) 是一個框架,用于組合各個業(yè)務功能和流程(稱為服務),以便實現(xiàn)復雜的業(yè)務應用程序和流程。在 SOA 框架中,相對粗粒度的業(yè)務組件被作為服務公開。SOA 將 IT 資產構造為一系列可重用的服務,這些服務是松散耦合的,與平臺和實現(xiàn)無關。SOA 將解決方案設計為服務的組裝,通過定義良好的接口和契約進行連接。 服務組件體系結構 (SCA) 是一個規(guī)范,它描述用于使用 SOA 構建應用程序和系統(tǒng)的模型。它可簡化使用 SOA 進行的應用程序開發(fā)和實現(xiàn)工作。 SCA 可簡化使用 SOA 構建的業(yè)務應用程序的創(chuàng)建和集成。SCA 提供了構建粗粒度組件的機制,這些粗粒度組件由細粒度組件組裝而成。 SCA 將傳統(tǒng)中間件編程從業(yè)務邏輯分離出來,從而使程序員免受其復雜性的困擾。它允許開發(fā)人員集中精力編寫業(yè)務邏輯,而不必將大量的時間花費在更為底層的技術實現(xiàn)上。 SCA 方法的優(yōu)勢包括:
SCA 將構建面向服務的應用程序的步驟劃分為兩個主要部分:
SCA 提供了一種機制,用于打包和部署那些緊密相關的組件,這些組件是作為一個整體開發(fā)和部署的。這種機制使服務的實現(xiàn)和組裝避免了陷入基礎設施功能的細節(jié),也避免了調用外部系統(tǒng)。這樣可支持不同基礎設施間的服務可移植性。 服務實現(xiàn)是業(yè)務邏輯的具體實現(xiàn),提供服務和/或使用服務。這些實現(xiàn)會使用眾多實現(xiàn)技術中的任意一種,如 Java?、BPEL 或 C++。實現(xiàn)是業(yè)務流程的“仆人”。 實現(xiàn)可以提供服務,而服務則是由一個接口定義的一組操作,此接口供其他組件調用。實現(xiàn)也可以調用其他服務,稱之為服務引用,服務引用指示了此實現(xiàn)對外界服務的依賴關系。實現(xiàn)還可以具有一個或多個可配置屬性。屬性是可以從外部配置的數(shù)據(jù)值,會影響此實現(xiàn)的業(yè)務功能。 SCA 服務通常對參數(shù)和返回值使用文檔樣式的業(yè)務數(shù)據(jù),最好使用服務數(shù)據(jù)對象(Service Data Object,SDO)表示這些參數(shù)(有關更多信息,請參見參考資料部分)。 服務、引用和屬性是實現(xiàn)的可配置方面——SCA 將其統(tǒng)稱為組件類型。 配置引用是通過將引用綁定到目標服務來完成的,隨后實現(xiàn)可以通過調用引用來使用目標服務。屬性的配置將涉及到為屬性設置具體的數(shù)據(jù)值。在 SCA 框架中,可以使用一個實現(xiàn)構建多個不同的組件,每個組件具有不同的引用和屬性配置。組件及其服務可以被其他本地組件調用,或者用于遠程訪問。 組裝一個組合業(yè)務應用程序的過程,在此過程中配置并連接提供服務實現(xiàn)的組件。SCA 組裝在兩個層次進行:
SCA 組裝模型包括一系列由 XML 元素定義的構件。 SCA 模塊 是一起開發(fā)和部署到 SCA 系統(tǒng) 的最大緊密耦合組件。它是 SCA 系統(tǒng)內的松散耦合組合的基本單元。SCA 模塊包含一系列組件、外部服務、入口點,以及用于銜接這些部分的機制。模塊向 SCA 系統(tǒng)提供服務實現(xiàn)。 入口點 定義模塊提供的公共服務,此服務可以由同一模塊內的其他組件使用,也可以在模塊外使用。入口點用于使用特定的綁定 發(fā)布模塊提供的服務。 模塊內的外部服務 表示其他模塊提供的遠程服務。它們位于使用此服務的 SCA 模塊之外。組件可以像訪問 SCA 組件提供的任何服務一樣訪問這些外部服務。外部服務使用綁定來描述對外部服務的訪問。 外部服務的接口必須為可遠程訪問的。 在SCA 系統(tǒng) 中,SCA 系統(tǒng) 用于聚合那些提供了相關業(yè)務功能的模塊。這是通過配置和管理模塊組件、外部服務、入口點,以及連接機制來完成的。SCA 系統(tǒng)的配置由所有部署到其中的子系統(tǒng)的組合加以表示。圖 1 是系統(tǒng)組裝的一個示例;它說明了如何使用服務和引用連接各個子系統(tǒng)和模塊。 圖 1. 服務組件體系結構 ![]() 讓我們逐個分析一下圖 1 中所看到的內容:
有一個開放源代碼項目提供服務組件體系結構的運行時實現(xiàn),您可以使用該實現(xiàn)來運行 SCA 應用程序。此項目稱為 Tuscany,目前在 Apache 中處于孵化期。此項目的主要參與者有 IBM、BEA、Oracle、Sybase、SAP、IONA 和 Siebel。 在本文中,我們介紹了 SCA 體系結構及其組裝模型,并說明了 SCA 子系統(tǒng)及各種組件,包括組成此子系統(tǒng)的模塊、連接機制和外部服務。這些細節(jié)應該能夠幫助您理解使用 SCA 構建和集成不同業(yè)務應用程序所需的各個概念。
|