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