蔡志峰 方偉堅 徐軍
【摘要】通過服務庫的建設,可以將分散在各個創(chuàng)新主體的普遍通用的服務進行整合和組織,按照統(tǒng)一的標準規(guī)范,形成邏輯上集中、物理上分散,可統(tǒng)一管理和服務的服務目錄,為使用者提供統(tǒng)一的通用服務發(fā)現(xiàn)和定位服務,從而實現(xiàn)主體間信息資源共享交換和信息服務、協(xié)同辦公。
【關鍵詞】SOA;服務庫;體系架構
引言
首先,需要對各個第三方主體現(xiàn)有的服務進行整理和分類,依照國家標準、國際開放技術標準,研究、分析、研發(fā)形成服務庫,基于SOA為服務提供者提供注冊服務、服務消費者發(fā)現(xiàn)和調(diào)用服務,并形成一套合理、實用的管理機制,為服務庫的長效運行提供支撐。這里旨在研究并提出標準性、指導性模型,為創(chuàng)新領域的服務庫建設提供重要指導,最終為各主體的資源共享和協(xié)同提供支持。
1.基于SOA的資源集成方法
綜合不同的角度、不同的著眼點,從總體上和本質(zhì)上來說,我們將SOA(service-oriented architecture)定義如下:面向服務的體系結構是一個組件模型,它將應用程序的不同功能單元封裝為服務,通過服務之間定義良好的接口和契約將這些服務聯(lián)系起來,接口是采用中立的方式進行定義的,獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言,使得構建在各種這樣的系統(tǒng)中的服務可以用一種統(tǒng)一和通用的方式進行交互。
SOA也是一種設計方式,它指導業(yè)務服務在其生命周期(從構思開始,直至停止使用)中包括創(chuàng)建和使用的各個方面,同時也定義和提供了一種具有以下特征的IT基礎設施:允許不同的應用相互交換數(shù)據(jù)和參與業(yè)務流程,無論它們各自背后使用的是何種操作系統(tǒng)或采用了何種編程語言。
在SOA架構中,服務是最核心的抽象手段,業(yè)務被劃分為一系列粗粒度的服務和流程。服務相對獨立、自包含、自描述、模塊化、可重用,由一個或者多個分布的系統(tǒng)所實現(xiàn),而流程由服務組裝而來。一個服務定義了一個與業(yè)務功能或業(yè)務數(shù)據(jù)相關的接口,以及約束這個接口的契約,如服務質(zhì)量要求、業(yè)務規(guī)則、安全性要求等。接口和契約采用中立、基于標準的方式進行定義,它獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。
SOA的基本體系架構由以下四部分組成
(1)服務提供者(Service Provider)
服務提供者是通過網(wǎng)絡可以訪問的軟件實體,它執(zhí)行和接收來自服務使用者的請求。它的服務和接口契約發(fā)布到服務注冊中心,服務使用者從而可以發(fā)現(xiàn)和訪問該服務。
(2)注冊機制(Register)
是一個包含可用服務的網(wǎng)絡可尋址的目錄,它是實體,接收并存儲服務契約,供服務消費者定位服務之用,它提供已發(fā)布服務提供的查詢和服務數(shù)據(jù)管理功能。
(3)服務消費者(Service Consumer)
服務消費者可以是一個請求服務的應用、服務或者其它類型的軟件模塊,它從注冊機制中定位其需要的服務,然后通過傳輸機制來綁定該服務,再通過傳遞契約規(guī)定格式的請求來執(zhí)行服務功能。
(4)服務契約(Contract)
服務契約是服務提供者和服務消費者之間交互方式的規(guī)范,指明了服務請求和響應的格式。
2.SOA應用系統(tǒng)架構
SOA從根本上來說是一種軟件架構的思想和方法論,是一些抽象的概念。企業(yè)實施SOA,必須有一個具有普遍適用性的應用系統(tǒng)體系結構。
SOA應用系統(tǒng)框架大體上可以分為七個部分:系統(tǒng)軟件層(Operational System),企業(yè)組件層(Enterprise Components),服務層(Services),業(yè)務流程編排(Business Process Choreography),展現(xiàn)層(Presentation),集成(Integration Architecture),基礎架構(QoS,Security,Management&Monitoring)。
3.服務庫總體框架
服務庫是以技術標準為前導、服務資源與可重用構件資源為基礎、服務管理平臺為支撐、服務庫注冊中心及服務目錄為核心、服務門戶為展現(xiàn)、管理機制為保障的基礎性平臺,為此設計出服務庫總體框架,如圖3所示。
(1)技術標準
包括傳輸層、消息機制、編程模型、服務發(fā)現(xiàn)和描述、可靠性、事務處理安全和管理等多方面的技術標準和規(guī)范。
(2)服務目錄
服務目錄是將服務按照某種服務分類法進行分類,并進行統(tǒng)一標識,按照元數(shù)據(jù)方式進行描述,并梳理形成服務目錄。
(3)服務庫注冊中心
用于注冊、查詢、發(fā)現(xiàn)服務和版本化服務描述信息的中心,提供對服務的分類管理能力,能夠利用分類能力實現(xiàn)對服務的搜索。應具有很高的可用性,并且是多處備份的。通過服務庫注冊中心,可以服務資源進行整合和分類管理。服務資源包括可重用的構件、本地服務以及服務提供商提供的注冊服務資源。
(4)服務管理平臺
服務管理平臺由服務管理支撐和服務管理應用組成,其中服務管理支撐為服務管理平臺對服務進行綜合管理的基礎支撐服務。服務管理應用則面向各類用戶提供服務注冊、訪問、質(zhì)量管理、節(jié)點管理、運行管理等應用。通過服務管理可以幫助用戶了解服務部署、運行情況,包括生命周期管理服務管理、監(jiān)控、檢查、分析、服務等級協(xié)議與策略。通過服務管理,能夠靈活的加入運行時控制,如消息處理、生命周期管理訪問控制和日志審計等。通過管理控制,可以實現(xiàn)對服務實施進行遠程監(jiān)控管理,實現(xiàn)對應用系統(tǒng)運行管理、日志管理和性能監(jiān)控等功能,通過友好的用戶界面,對服務進行管理,減輕管理人員的管理難度,提高服務管理質(zhì)量和準確性。
(5)服務門戶
建立統(tǒng)一的服務門戶,針對不同用戶提供不同的服務,用戶可以根據(jù)自己的需要定制自己的操作界面。服務門戶提供服務注冊、訪問、管理、使用等功能。
(6)管理機制
實現(xiàn)服務管理者、服務提供者、服務消費者在管理制度的管理下,通過登記、注銷、結算等管理活動,對服務庫進行維護、管理和使用。
(7)應用模式
從服務庫的使用用戶、建設方、建設目的等幾個方面對于服務庫的建設、應用和運營模式進行了定義,并對不同的模式進行的比較和分析。
4.服務管理平臺
SOA是一種松散的體系架構,按照這種架構開發(fā)的系統(tǒng)的基本組成元素是服務,各個服務分布于不同的計算節(jié)點上,各計算節(jié)點可能屬于不同的組織、部門,并處于不同的物理位置。此外,從業(yè)務方面,需要管理服務執(zhí)行的選擇狀態(tài)及進度等問題。因此,在基于SOA的系統(tǒng)運行時,有必要在運行時對服務進行管理。同時,由于基于SOA的系統(tǒng)分布式、松耦合的特性,對管理服務最合適的方式就是采用SOA的方式。即將有關管理服務的功能封裝為服務,通過服務接口向外提供。管理者通過調(diào)用管理服務的接口實現(xiàn)對服務的管理。服務庫管理平臺由基礎服務支撐和服務管理應用組成,主要提供以下作用:
為服務提供者提供公開和宣傳服務產(chǎn)品的渠道。
允許服務消費者查找、訪問和調(diào)用符合所定義的條件的服務。
為服務管理者提供服務管理、監(jiān)控、最優(yōu)調(diào)度等管理服務。
本文提出的服務流程是基于三個角色之間的相互作用,主要包括以下角色:
服務提供者:從企業(yè)的角度來看它是提供服務的實體,從整個體系的角度來看,它是容納服務的平臺。
服務請求者:從企業(yè)的角度來看它是一個尋求一定服務功能的請求者從整個體系的角度來看它也是一個尋找和調(diào)用服務的應用程序。服務請求者可以是瀏覽器(由人操作),也可以是沒有用戶界面的程序(如另一個Web服務應用程序)。
服務注冊處:它是服務提供者發(fā)布其服務描述的地方。服務請求者從這里發(fā)現(xiàn)服務并且得到綁定信息(包含在服務描述之中)。當然,服務請求者也可以從其它的地方得到服務描述,例如FTP站點、ADS等等。
如果應用程序想要服務,必須要有三個操作:發(fā)布服務描述;尋找和發(fā)現(xiàn)服務描述;使用服務描述來邦定和調(diào)用服務。它們可以單獨使用,也可以重復交替使用。
發(fā)布:如果要想一個服務能被訪問,就必須先發(fā)布有關它的服務描述至于它要發(fā)布在什么地方則取決于應用程序的要求。
查找:該操作的服務請求者可以直接得到服務描述,亦可以從服務注冊處查詢所需的服務。服務請求者使用查找操作主要在設計階段和運行過程中,在設計階段,使用該操作獲得服務的接口描述;運行時使用該操作獲得與服務相關的綁定和位置信息。
綁定:運行時,服務請求者利用服務描述中的有關綁定的詳細信息來定位、連接和調(diào)用一個Web服務。
圖4 服務的交互模型
服務的發(fā)布和訪問過程如下:首先,服務通過WSDL描述,被服務提供者發(fā)布到Web上,發(fā)布的過程包括向服務注冊處注冊服務或取消注冊;服務請求者可基于UDDI的Web服務注冊中心的原型實現(xiàn)以描述所需要的服務,要求服務注冊處進行查找,后者則返回匹配的結果;在返回查找結果后,服務請求者使用這些結果綁定到一個實際的服務上,來完成Web服務的調(diào)用。
5.結束語
以上幾層構成了Web服務的基本協(xié)議框架。但是,一個獨立的Web服務只能完成單一的工作,而實際的商務活動并非由單一的操作能實現(xiàn),它需要由一系列操作來協(xié)同完成。因此,我們需要將多個Web服務集成在一起,相互協(xié)調(diào)工作,形成商務工作流(WorkFlow)。這樣就提出了更高層的協(xié)議:Web服務流語言(WSFL)。其作用是為完成某一商務活動而將多個Web服務進行集成,從而使各Web服務協(xié)同工作。這層協(xié)議還處在制定中,我們有理由相信,隨著Web服務技術的發(fā)展,WSFL將成為Web服務的協(xié)議標準。
參考文獻
[1]曹曉葉,等.基于SOA 的企業(yè)應用集成研究與應用[J].微計算機信息,2007,23(12):16.
[2]林懷恭,等.基于SOA 架構的服務集成技術的研究[J].計算機技術與發(fā)展,2009,19(7).
[3]茅維華,等.基于SOA 架構的業(yè)務協(xié)同關鍵技術平臺[J].計算機工程,2009,35(19):280-281.
項目基金:國家科技支撐計劃資助項目(課題編號:2012BAH27F03);專業(yè)鎮(zhèn)中小微企業(yè)公共服務平臺建設(項目編號:2012B040500045)。