引言
本文討論企業(yè)整合(集成)的新發(fā)展:以服務(wù)為中心的集成(Service-Oriented Integration,簡(jiǎn)稱(chēng) SOI)。 您將了解到什么是 SOI,推動(dòng) SOI 發(fā)展的因素以及SOI 帶來(lái)的價(jià)值。作者討論了 SOI 解決方案所涉及的要素,和這些要素相關(guān)的技術(shù)、標(biāo)準(zhǔn)以及IBM的產(chǎn)品支持,最后作為總結(jié)將它們包括在 IBM 的集成參考架構(gòu)中,指出如何實(shí)現(xiàn)各種集成需求。本文還討論了在企業(yè)集成實(shí)踐中需要重點(diǎn)注意的事情,如戰(zhàn)略規(guī)劃和IT管理。本文的姊妹篇"以服務(wù)為中心的企業(yè)整合-案例分析",用一個(gè)實(shí)際案例來(lái)說(shuō)明基于 IBM 產(chǎn)品的實(shí)際 SOI 應(yīng)用,幫助讀者感性地理解 SOI。
1. 企業(yè)集成的新方向: SOI
什么是"以服務(wù)為中心的集成"?
"以服務(wù)為中心的集成"是英文詞語(yǔ)"Service-Oriented Integration"的中文翻譯,簡(jiǎn)稱(chēng) SOI。 它可以定義為:在"以服務(wù)為中心的體系架構(gòu)"(Service-Oriented Architecture,SOA)中,通過(guò)服務(wù)的交互來(lái)集成各企業(yè)的 IT 資源,如分布的應(yīng)用或者數(shù)據(jù),幫助企業(yè) IT 部門(mén)將已有但老舊而不靈活的系統(tǒng)集成起來(lái),釋放其中功能或數(shù)據(jù)為可重用的服務(wù)與業(yè)務(wù)流程。
為什么需要"以服務(wù)為中心的集成"?
企業(yè)集成的推動(dòng)因素。推動(dòng)"企業(yè)應(yīng)用集成"(Enterprise Application Integration, EAI )的因素,來(lái)自商務(wù)和技術(shù)兩個(gè)方面。從商務(wù)的角度,今天企業(yè)要在全球化的經(jīng)濟(jì)環(huán)境中求生存和發(fā)展,就必須努力適應(yīng)越來(lái)越強(qiáng)的競(jìng)爭(zhēng)和越來(lái)越快的變化,這意味著一個(gè)企業(yè)的業(yè)務(wù)模型要變得靈活以快速應(yīng)變,也就是隨需應(yīng)變。在一個(gè)企業(yè)的業(yè)務(wù)模型變得靈活的轉(zhuǎn)型過(guò)程中,需要將業(yè)務(wù)流程不斷地自動(dòng)化,然后跨部門(mén)橫向集成它們,并且管理和優(yōu)化它們,這意味著支撐這些流程的技術(shù)基礎(chǔ),即 IT 應(yīng)用和數(shù)據(jù)資源等,需要在企業(yè)范圍內(nèi)集成。所以,業(yè)務(wù)靈活應(yīng)變的能力是 SOI 的驅(qū)動(dòng)因素之一。
在技術(shù)方面,IT 部門(mén)面臨著業(yè)務(wù)部門(mén)越來(lái)越高的期望值,就是用更少的錢(qián)做更多的事情,但要做得更快、更好,這迫使 IT 部門(mén)考慮如何最大程度地重用已有應(yīng)用的功能和數(shù)據(jù)資源,來(lái)支持新應(yīng)用的開(kāi)發(fā)。但這種重用面臨著如何將高度異構(gòu)、分布的各個(gè)應(yīng)用集成起來(lái)的難題,SOI是目前最有效的解決之道。在 SOI 中,首先各個(gè)應(yīng)用的功能被封裝為基于標(biāo)準(zhǔn)來(lái)描述和供訪問(wèn)的服務(wù);其次,借助于 SOI 的通用連接能力,這些來(lái)自不同應(yīng)用的服務(wù),不需要關(guān)心對(duì)方的位置和實(shí)現(xiàn)技術(shù),以松散耦合的方式相互交互來(lái)完成集成,所以只要服務(wù)的接口描述不變,服務(wù)的使用者和提供者雙方可以自由發(fā)生變化而互不影響;最后,通過(guò)服務(wù)組合,服務(wù)可以按不同的方式來(lái)組合成為不同的業(yè)務(wù)流程。當(dāng)某個(gè)業(yè)務(wù)流程發(fā)生變化的時(shí)候,大多數(shù)時(shí)候,我們調(diào)整組裝服務(wù)的方式來(lái)滿足這種變化。總之,這種通過(guò)重用粗粒度服務(wù)而不是在底層編程來(lái)開(kāi)發(fā)新應(yīng)用以滿足業(yè)務(wù)新需求的方法,使得 IT 組織能夠以更少的投入、更快的速度、更好的質(zhì)量來(lái)開(kāi)發(fā)應(yīng)用。綜上所述,可以靈活應(yīng)變的重用方式,是 SOI 的另一個(gè)驅(qū)動(dòng)因素。
集成解決方案的發(fā)展沿革。集成企業(yè)應(yīng)用的方法各種各樣,初級(jí)一點(diǎn)的借助于簡(jiǎn)單的機(jī)制如應(yīng)用編程接口,管道、共享目錄和文件,或者某些傳輸協(xié)議如 FTP 來(lái)交換數(shù)據(jù)和互操作;高級(jí)一點(diǎn)的則使用各種消息中間件來(lái)提供消息的傳輸、轉(zhuǎn)換、合并、路由和分發(fā)、事件的發(fā)布和訂閱等;分布式計(jì)算技術(shù),如 CORBA,COM 等,也有較廣的使用。
在初期實(shí)踐中,應(yīng)用之間的連接拓?fù)浯蠖鄶?shù)情況下是點(diǎn)對(duì)點(diǎn)的,硬編碼的,所使用的協(xié)議是非標(biāo)準(zhǔn)的,功能的提供者和使用者之間是緊耦合的,功能的粒度通常較細(xì),數(shù)據(jù)的表示也不統(tǒng)一。隨著集成復(fù)雜度的增長(zhǎng),和實(shí)踐經(jīng)驗(yàn)的總結(jié),開(kāi)始出現(xiàn)一些從好的實(shí)踐中總結(jié)出來(lái)的集成模式,如消息中樞(Message Backbone)、信息總線、應(yīng)用集成中心(Application Integration Hub),這些模式從不同的角度以不同的方式來(lái)管理集成的復(fù)雜性,但都或多或少地嘗試提供一個(gè)集成基礎(chǔ)設(shè)施來(lái)簡(jiǎn)化應(yīng)用之間日趨復(fù)雜的連接拓?fù)洌峁┊悩?gòu)數(shù)據(jù)和功能訪問(wèn)方式之間的轉(zhuǎn)換,甚至提供一致的數(shù)據(jù)和功能表示與訪問(wèn)方式。通過(guò)元數(shù)據(jù)和應(yīng)用相關(guān)的領(lǐng)域知識(shí),這些集成基礎(chǔ)實(shí)施提供了很多中介和轉(zhuǎn)換的機(jī)制與模式來(lái)實(shí)現(xiàn)高級(jí)的功能,如路由、動(dòng)態(tài)選擇等能力。
隨著互聯(lián)網(wǎng)絡(luò)技術(shù)的發(fā)展、普及和應(yīng)用,相關(guān)技術(shù)和標(biāo)準(zhǔn),如 XML 和 Web Service,被廣為接受,這給應(yīng)用集成帶來(lái)了新的發(fā)展。企業(yè)應(yīng)用架構(gòu)的風(fēng)格開(kāi)始朝著以服務(wù)為中心的方向發(fā)展,而企業(yè)應(yīng)用集成也轉(zhuǎn)向以服務(wù)為中心的集成,服務(wù)的描述和訪問(wèn)基于開(kāi)放一致的標(biāo)準(zhǔn)(如 WSDL),連接應(yīng)用的基礎(chǔ)設(shè)施繼承了過(guò)去發(fā)展的成果,并通過(guò)支持開(kāi)放標(biāo)準(zhǔn),來(lái)提供通用的連接服務(wù),包括基本的服務(wù)如消息傳輸、轉(zhuǎn)換,事件的發(fā)布和訂閱,服務(wù)的中介(選擇、路由),和高級(jí)的服務(wù)如安全、事務(wù)、服務(wù)質(zhì)量,以及可管理性,來(lái)使得服務(wù)在一個(gè)標(biāo)準(zhǔn)、開(kāi)放、可靠、安全、可管理、滿足服務(wù)質(zhì)量要求的環(huán)境下,以松散耦合的方式相互交戶(hù),根據(jù)需求動(dòng)態(tài)地進(jìn)行企業(yè)應(yīng)用集成,達(dá)成非常高程度的靈活應(yīng)變能力和重用能力。SOI 是對(duì)現(xiàn)有集成技術(shù)與實(shí)踐的總結(jié)和標(biāo)準(zhǔn)化。
SOI 的好處。SOI 繼承和發(fā)展了傳統(tǒng)的 EAI,比較而言,SOI 的好處在于:
- 定義良好而又基于標(biāo)準(zhǔn)的接口 - 服務(wù)的描述易于理解,而且標(biāo)準(zhǔn)一致
- 實(shí)現(xiàn)技術(shù)和位置的透明 - 提供服務(wù)功能的應(yīng)用,它的位置以及所使用的實(shí)現(xiàn)技術(shù)被接口所屏蔽,事實(shí)上,不需要一個(gè)固定的服務(wù)提供者
- 靈活性 - 只要服務(wù)的接口不變,服務(wù)的提供者和服務(wù)的使用者都可以變化而不影響彼此,從而將變化帶來(lái)的影響減少到了最少
- 重用能力
- 漸進(jìn)式集成 - 在 SOI 中,通過(guò)將若干已有系統(tǒng)的相關(guān)功能轉(zhuǎn)化為服務(wù)來(lái)進(jìn)行集成。隨著這些項(xiàng)目的進(jìn)行,可重用的服務(wù)越來(lái)越多,最終,新的集成需求將絕大多數(shù)可以通過(guò)已有的服務(wù)來(lái)完成。所以,我們可以從當(dāng)前重要的集成需求開(kāi)始來(lái)封裝已有系統(tǒng)的功能和開(kāi)發(fā)必要的新服務(wù),以漸進(jìn)的方式逐步地?cái)U(kuò)展到整個(gè)企業(yè)范圍內(nèi)的集成。更重要的是,由于服務(wù)的靈活性,即使已有系統(tǒng)遷移到新的技術(shù)平臺(tái),甚至是被替代,都不會(huì)影響到依賴(lài)于這個(gè)應(yīng)用所提供功能的那些應(yīng)用,從而保證了集成對(duì)變化的適應(yīng)能力,使得業(yè)務(wù)靈活性有一個(gè)堅(jiān)實(shí)的基礎(chǔ)。這也意味著從傳統(tǒng)規(guī)模大、投入大、周期長(zhǎng)、見(jiàn)效慢、風(fēng)險(xiǎn)高、專(zhuān)有技術(shù),轉(zhuǎn)向小步快跑、見(jiàn)效迅速、風(fēng)險(xiǎn)低、基于標(biāo)準(zhǔn)的集成方式。這對(duì)于如今面對(duì)業(yè)務(wù)需求快速變化的 IT 機(jī)構(gòu)來(lái)說(shuō),SOI 在投入和工程方面的好處,是非常吸引人的
2. SOI解決方案
2.1. SOI解決方案的要素
通常,完整的SOI 解決方案包括如下要素:
- 代表應(yīng)用的功能和數(shù)據(jù)資源的服務(wù);
- 提供連接服務(wù)的基礎(chǔ)設(shè)施即企業(yè)服務(wù)總線(Enterprise Service Bus, ESB),連接已有應(yīng)用的連接器(Connector)和適配器(Adapter);
- 元數(shù)據(jù)及其管理如服務(wù)描述和服務(wù)注冊(cè)管理(Service Registry)等;
- 將服務(wù)組合成業(yè)務(wù)流程的引擎如 BPEL4WS 引擎;
- 業(yè)務(wù)流程管理和業(yè)務(wù)績(jī)效管理的部分;
- 一個(gè)基于標(biāo)準(zhǔn)的編程模型以及支持它的建模、開(kāi)發(fā)和組裝、測(cè)試、部署和管理的端到端工具環(huán)境;
IBM的 Websphere 業(yè)務(wù)集成參考架構(gòu)(見(jiàn)圖1,以下稱(chēng)參考架構(gòu))是典型的以服務(wù)為中心的企業(yè)集成架構(gòu),本文接下來(lái)的討論都將以此參考架構(gòu)為背景進(jìn)行。
以服務(wù)為中心的企業(yè)集成采用"關(guān)注點(diǎn)分離"(Separation of Concern)的方法規(guī)劃企業(yè)集成中的各種架構(gòu)元素,同時(shí)從服務(wù)視角規(guī)劃每種架構(gòu)元素提供的服務(wù),以及服務(wù)如何被組合在一起完成某種類(lèi)型的集成。這里架構(gòu)元素提供的服務(wù)既包括狹義的服務(wù)(WSDL描述),也包括廣義的服務(wù)(某種能力)。從服務(wù)為中心的視角看來(lái),企業(yè)集成的架構(gòu)按圖1所示的方式劃分為六大類(lèi):
- 業(yè)務(wù)邏輯服務(wù)(Business Logic Service):包括用于實(shí)現(xiàn)業(yè)務(wù)邏輯的服務(wù),和執(zhí)行業(yè)務(wù)邏輯的能力。這其中包括業(yè)務(wù)應(yīng)用服務(wù)(Business Application Service)、業(yè)務(wù)伙伴服務(wù)(Partner Service)以及應(yīng)用和信息資產(chǎn)(Application and Information asset)。
- 控制服務(wù)(Control Service):包括實(shí)現(xiàn)人(people),流程(process)和信息(information)集成的服務(wù),以及執(zhí)行這些集成邏輯的能力。
- 連接服務(wù)(Connectivity Service):連接服務(wù)通過(guò)提供企業(yè)服務(wù)總線提供分布在各種架構(gòu)元素中服務(wù)間的連接性。
- 業(yè)務(wù)創(chuàng)新和優(yōu)化服務(wù)(Business Innovation and Optimization Service):用于監(jiān)控業(yè)務(wù)系統(tǒng)運(yùn)行時(shí)服務(wù)的業(yè)務(wù)性能,并通過(guò)及時(shí)了解到的業(yè)務(wù)性能和變化,采取措施適應(yīng)變化的市場(chǎng)。
- 開(kāi)發(fā)服務(wù)(Development Service):貫徹整個(gè)軟件開(kāi)發(fā)生命周期的開(kāi)發(fā)平臺(tái),從需求分析,到建模、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試,維護(hù)全面的工具支持。
- IT服務(wù)管理(IT Service Management):支持業(yè)務(wù)系統(tǒng)運(yùn)行的各種基礎(chǔ)設(shè)施管理能力或服務(wù),如安全服務(wù)、目錄服務(wù)、系統(tǒng)管理和資源虛擬化。
2.2. 連接服務(wù) - 企業(yè)服務(wù)總線
企業(yè)服務(wù)總線(Enterprise Service Bus),以下簡(jiǎn)稱(chēng)ESB, 是過(guò)去消息中間件的發(fā)展,ESB 采用了"總線"這樣一種模式來(lái)管理和簡(jiǎn)化應(yīng)用之間的集成拓?fù)浣Y(jié)構(gòu),以廣為接受的開(kāi)放標(biāo)準(zhǔn)為基礎(chǔ)來(lái)支持應(yīng)用之間在消息、事件和服務(wù)的級(jí)別上動(dòng)態(tài)地互聯(lián)互通。
ESB 的基本特征和能力包括:描述服務(wù)的元數(shù)據(jù)和服務(wù)注冊(cè)管理;在服務(wù)請(qǐng)求者和提供者之間傳遞數(shù)據(jù),以及對(duì)這些數(shù)據(jù)進(jìn)行轉(zhuǎn)換的能力,并支持由實(shí)踐中總結(jié)出來(lái)的一些模式如同步模式,異步模式等;發(fā)現(xiàn)、路由、匹配和選擇的能力,以支持服務(wù)之間的動(dòng)態(tài)交互,解耦服務(wù)請(qǐng)求者和服務(wù)提供者。高級(jí)一些的能力,包括對(duì)安全的支持、服務(wù)質(zhì)量保證、可管理性和負(fù)載平衡等。
ESB 所提供的基于標(biāo)準(zhǔn)的連接服務(wù),將應(yīng)用中實(shí)現(xiàn)的功能或者數(shù)據(jù)資源轉(zhuǎn)化為服務(wù)請(qǐng)求者能以標(biāo)準(zhǔn)的方式來(lái)訪問(wèn)的服務(wù);當(dāng)請(qǐng)求者來(lái)請(qǐng)求一個(gè)服務(wù)時(shí),ESB 中這種中介轉(zhuǎn)化過(guò)程可能簡(jiǎn)單到什么也沒(méi)有,也可能要很復(fù)雜的中介服務(wù)支持,包括動(dòng)態(tài)地查找、選擇一個(gè)服務(wù),消息的傳遞、路由和轉(zhuǎn)換、協(xié)議的轉(zhuǎn)換。這種中介過(guò)程,是 ESB 借助于服務(wù)注冊(cè)管理以及問(wèn)題域相關(guān)的知識(shí)(如業(yè)務(wù)方面的一些規(guī)則等)自動(dòng)進(jìn)行的,不需要服務(wù)請(qǐng)求者和提供者介入,從而實(shí)現(xiàn)了解耦服務(wù)請(qǐng)求者和提供者的技術(shù)基礎(chǔ),使得服務(wù)請(qǐng)求者不需要關(guān)心服務(wù)提供者的位置和具體實(shí)現(xiàn)技術(shù),雙方在保持接口不變的情況下,各自可以獨(dú)立地演變。
所以,ESB 采用總線結(jié)構(gòu)模式簡(jiǎn)化了應(yīng)用之間的集成拓?fù)洌ㄟ^(guò)源自實(shí)踐的模式,提供了基于標(biāo)準(zhǔn)的通用連接服務(wù),使得服務(wù)請(qǐng)求者和服務(wù)提供者之間可以以松散耦合、動(dòng)態(tài)的方式交互,從而在不同層次上使得SOI 解決方案是一個(gè)松散耦合、靈活的架構(gòu)。
需要注意的是,ESB 是一種架構(gòu)模式,不能簡(jiǎn)單地等同于特定的技術(shù)或者產(chǎn)品,但實(shí)現(xiàn) ESB 確實(shí)需要各種產(chǎn)品在運(yùn)行時(shí)和工具方面的支持。IBM 有很好的產(chǎn)品支持,運(yùn)行時(shí)支持包括 WebSphere ESB 和 WebSphere Message Broker;而工具方面 IBM 則有 WebSphere Integration Developer,支持用戶(hù)以圖形界面的方式來(lái)完成相關(guān)的開(kāi)發(fā)任務(wù),如發(fā)布服務(wù),使用各種模式,轉(zhuǎn)換消息,定義路由等等。
2.3. 業(yè)務(wù)邏輯服務(wù)
整合已有應(yīng)用 - 應(yīng)用和信息訪問(wèn)服務(wù)。已有應(yīng)用和信息是實(shí)現(xiàn)業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)的重要資產(chǎn)。通過(guò)集成已有的應(yīng)用和信息將可以在已有企業(yè)系統(tǒng)上實(shí)現(xiàn)更多增值服務(wù),所以集成已有應(yīng)用和信息是企業(yè)集成中重要的一環(huán)。
以服務(wù)為中心的企業(yè)集成通過(guò)應(yīng)用和信息訪問(wèn)服務(wù)(Application and Information Access Service)來(lái)實(shí)現(xiàn)對(duì)已有應(yīng)用和信息集成。它通過(guò)各種適配器技術(shù)將已有系統(tǒng)中的業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)包裝成企業(yè)服務(wù)總線支持的協(xié)議和數(shù)據(jù)格式。通過(guò)企業(yè)服務(wù)總線,這些被包裝起來(lái)的業(yè)務(wù)邏輯和數(shù)據(jù)就可以方便的參與上層的業(yè)務(wù)流程,從而已有應(yīng)用系統(tǒng)的能力可以得以繼續(xù)發(fā)揮。這里的已有應(yīng)用包括遺留應(yīng)用、預(yù)包裝的應(yīng)用和各種企業(yè)數(shù)據(jù)存儲(chǔ)。在參考架構(gòu)中,主要有兩類(lèi)訪問(wèn)服務(wù):
- 可接入服務(wù)(On-Ramp Service): 通過(guò)各種消息通信模式(單向、請(qǐng)求/應(yīng)答和輪詢(xún))將業(yè)務(wù)邏輯和業(yè)務(wù)數(shù)據(jù)包裝成企業(yè)服務(wù)總線可以訪問(wèn)的功能。
- 事件發(fā)現(xiàn)服務(wù)(Event Detect Service) : 提供事件通知服務(wù)將已有應(yīng)用和數(shù)據(jù)中的變化通過(guò)事件框架發(fā)布到企業(yè)服務(wù)總線上。
整合新開(kāi)發(fā)的應(yīng)用 - 業(yè)務(wù)應(yīng)用服務(wù)。和已有應(yīng)用和數(shù)據(jù)類(lèi)似,新開(kāi)發(fā)的應(yīng)用也作為重要的業(yè)務(wù)邏輯成為企業(yè)集成的目標(biāo)。以服務(wù)為中心的企業(yè)集成通過(guò)業(yè)務(wù)應(yīng)用服務(wù)(Business Application Service)實(shí)現(xiàn)新應(yīng)用集成。一方面業(yè)務(wù)應(yīng)用服務(wù)幫助程序員開(kāi)發(fā)可重用、可維護(hù)和靈活的業(yè)務(wù)邏輯組件,另一方面,它也提供運(yùn)行時(shí)的集成提供對(duì)業(yè)務(wù)邏輯組件的自治管理。在參考架構(gòu)中,有三類(lèi)業(yè)務(wù)應(yīng)用服務(wù):
- 組件服務(wù)(Component Service):為可重用的組件提供應(yīng)用的運(yùn)行時(shí)容器管理服務(wù),如對(duì)象持久化、組件安全管理和事務(wù)管理等。
- 核心服務(wù)(Core Service):提供運(yùn)行時(shí)的服務(wù),包括內(nèi)存管理、對(duì)象實(shí)例化和對(duì)象池、性能管理和負(fù)載均衡、可用性管理等。
- 接口服務(wù)(Interface Service):提供和其他企業(yè)系統(tǒng)集成的接口,如其他企業(yè)應(yīng)用,數(shù)據(jù)庫(kù)、消息系統(tǒng)和管理框架。
整合客戶(hù)和業(yè)務(wù)伙伴(B2C/B2B)-伙伴服務(wù)。以服務(wù)為中心的企業(yè)集成通過(guò)伙伴服務(wù)提供與企業(yè)外部的B2B的集成能力。因?yàn)闃I(yè)務(wù)伙伴系統(tǒng)的異構(gòu)性,伙伴服務(wù)需要支持多種傳輸協(xié)議和數(shù)據(jù)格式。在參考架構(gòu)中,提供如下服務(wù):
- 社區(qū)服務(wù)(Community Service): 用于管理和企業(yè)貿(mào)易的業(yè)務(wù)伙伴,支持以交易中心(Trade Hub)為主的集中式管理和以伙伴為中心的自我管理。
- 文檔服務(wù)(Document Service):用于支持和業(yè)務(wù)伙伴交換的文檔格式,以及交互的流程和狀態(tài)管理,支持主流的RosettaNet、EDI和AS1/AS2等。
- 協(xié)議服務(wù)(Protocol Service):為文檔的交互提供傳輸層的支持,包括認(rèn)證和路由等。
2.4. 控制服務(wù)
數(shù)據(jù)整合-信息服務(wù)。企業(yè)數(shù)據(jù)的分布性和異構(gòu)性是應(yīng)用系統(tǒng)方便訪問(wèn)企業(yè)數(shù)據(jù)和在企業(yè)數(shù)據(jù)之上提供增值服務(wù)的主要障礙。數(shù)據(jù)集成和聚合技術(shù)在這種背景下誕生,用于提供對(duì)分布式數(shù)據(jù)和異構(gòu)數(shù)據(jù)的透明訪問(wèn)。
以服務(wù)為中心的企業(yè)集成通過(guò)信息服務(wù)提供集成數(shù)據(jù)的能力,目前主要包括如下集中信息服務(wù):
- 聯(lián)邦服務(wù)(Federation Service): 聯(lián)邦服務(wù)提供將各種類(lèi)型的數(shù)據(jù)聚合的能力,它既支持關(guān)系型數(shù)據(jù),也支持象XML數(shù)據(jù)、文本數(shù)據(jù)和內(nèi)容數(shù)據(jù)等非關(guān)系型數(shù)據(jù)。同時(shí),所有的數(shù)據(jù)仍然在自己本身的方式管理。
- 復(fù)制服務(wù)(Replication Service):復(fù)制服務(wù)提供遠(yuǎn)程數(shù)據(jù)的本地訪問(wèn)能力,它通過(guò)自動(dòng)的實(shí)時(shí)復(fù)制和數(shù)據(jù)轉(zhuǎn)換,在本地維護(hù)一個(gè)數(shù)據(jù)源的副本。本地?cái)?shù)據(jù)和數(shù)據(jù)源在技術(shù)實(shí)現(xiàn)上可以是獨(dú)立的。
- 轉(zhuǎn)換服務(wù)(Transformation Service):轉(zhuǎn)換服務(wù)用于數(shù)據(jù)源格式到目標(biāo)格式的轉(zhuǎn)換,可以是批量的,或者是基于記錄的。
- 搜索服務(wù)(Search Service):提供對(duì)企業(yè)數(shù)據(jù)的查詢(xún)和檢索服務(wù),既支持?jǐn)?shù)據(jù)庫(kù)等結(jié)構(gòu)化數(shù)據(jù),也支持象PDF等非結(jié)構(gòu)化數(shù)據(jù)。
流程整合- 流程服務(wù)。企業(yè)部門(mén)內(nèi)部的IT系統(tǒng)通過(guò)將業(yè)務(wù)活動(dòng)自動(dòng)化來(lái)提高業(yè)務(wù)活動(dòng)的效率。但是這些部門(mén)的業(yè)務(wù)活動(dòng)并不是獨(dú)立的,而是和其他部門(mén)的活動(dòng)彼此關(guān)聯(lián)的。勿容置疑,將彼此關(guān)聯(lián)的業(yè)務(wù)活動(dòng)組成自動(dòng)化流程可以進(jìn)一步提高業(yè)務(wù)活動(dòng)的效率。業(yè)務(wù)流程集成正是在這一背景下誕生的。
以服務(wù)為中心的企業(yè)集成通過(guò)流程服務(wù)來(lái)完成業(yè)務(wù)流程集成。在業(yè)務(wù)流程集成中,粒度的業(yè)務(wù)邏輯被組合成業(yè)務(wù)流程。流程服務(wù)提供自動(dòng)執(zhí)行這些業(yè)務(wù)流程的能力。在參考架構(gòu)中,流程服務(wù)包括如下內(nèi)容:
- 編排服務(wù)(Choreography Service): 編排服務(wù)通過(guò)預(yù)定義的流程邏輯控制流程中業(yè)務(wù)活動(dòng)的執(zhí)行,并幫助業(yè)務(wù)流程從錯(cuò)誤中恢復(fù)。
- 事務(wù)服務(wù)(Transaction Service):事務(wù)服務(wù)用于保證流程執(zhí)行中的事務(wù)特性(ACID)。對(duì)于短流程,通常采用傳統(tǒng)的兩階段提交技術(shù),對(duì)于長(zhǎng)流程,一般采用補(bǔ)償?shù)姆椒ā?
- 人工服務(wù)(Staff Service):人工服務(wù)用于將人工的活動(dòng)集成到流程中,一方面它通過(guò)關(guān)聯(lián)的交互服務(wù)使得人工可以參與到流程執(zhí)行中,另一方面它需要管理由于人工參與帶來(lái)的管理任務(wù)如:任務(wù)分派,授權(quán)和監(jiān)管等。
用戶(hù)訪問(wèn)整合 - 交互服務(wù)。將適當(dāng)?shù)男畔ⅲ谶m當(dāng)?shù)臅r(shí)間,傳遞給適當(dāng)?shù)娜耸且恢笔切畔⒓夹g(shù)追求的目標(biāo)。用戶(hù)訪問(wèn)集成是實(shí)現(xiàn)這一目標(biāo)的重要一環(huán),它負(fù)責(zé)將信息系統(tǒng)中的信息傳遞給客戶(hù),不管它在那里,它以什么樣的設(shè)備接入。
以服務(wù)為中心的企業(yè)集成通過(guò)交互服務(wù)來(lái)實(shí)現(xiàn)用戶(hù)訪問(wèn)集成。參考架構(gòu)中的交互服務(wù)包括如下類(lèi)型:
- 交付服務(wù)(Delivery Service): 交付服務(wù)提供運(yùn)行時(shí)的交互框架,它通過(guò)各種技術(shù)支持同樣的交互邏輯可以在多種方式(圖形界面、語(yǔ)音和普及計(jì)算消息)和設(shè)備(桌面、PDA、無(wú)線終端等)上運(yùn)行,比如通過(guò)頁(yè)面聚合和標(biāo)簽翻譯使得同一個(gè)Portlet可以在桌面瀏覽器和PDA瀏覽器上展現(xiàn)。
- 體驗(yàn)服務(wù)(Experience Service): 通過(guò)用戶(hù)為中心的服務(wù)增強(qiáng)用戶(hù)體驗(yàn), 其中的技術(shù)包括:個(gè)性化、協(xié)作、單點(diǎn)登錄等。
- 資源服務(wù)(Resource Service): 提供運(yùn)行時(shí)交互組件的管理,如安全配置、界面皮膚等。
2.5. 開(kāi)發(fā)支持
企業(yè)集成涉及面很廣,不僅需要開(kāi)發(fā)新的應(yīng)用并使其成為可以被用于企業(yè)集成的功能組件,而且需要將被包裝的已有的應(yīng)用和數(shù)據(jù)用于集成;不僅有企業(yè)內(nèi)部的集成,而且需要和企業(yè)外部的系統(tǒng)集成;不僅有交互集成和數(shù)據(jù)集成,還有功能和應(yīng)用集成。考慮到這其中的每部分在技術(shù)上都會(huì)涉及到各種平臺(tái)和中間件,企業(yè)集成的技術(shù)復(fù)雜性是普通應(yīng)用開(kāi)發(fā)不可比擬的。這種技術(shù)復(fù)雜性需要更強(qiáng)有力的開(kāi)發(fā)工具支持。企業(yè)集成的開(kāi)發(fā)工具需要有標(biāo)準(zhǔn)的工具框架,這些工具能夠以即插即用方式支持來(lái)自多家廠商的開(kāi)發(fā)工具。同時(shí),企業(yè)集成的開(kāi)發(fā)工具需要支持整個(gè)軟件開(kāi)發(fā)周期,以提高開(kāi)發(fā)過(guò)程中各種角色的生產(chǎn)力。
在以服務(wù)為中心的企業(yè)集成中,除了需要支持整個(gè)軟件開(kāi)發(fā)周期和標(biāo)準(zhǔn)的工具框架以外,開(kāi)發(fā)服務(wù)需要提供和服務(wù)開(kāi)發(fā)相關(guān)的技術(shù):
- 用于支持以服務(wù)為中心的企業(yè)集成方法學(xué)和建模,如SODA和IBM的SOMA(Service Oriented Modeling and Architecture)
- 用于服務(wù)為中心的編程模型,如WSDL, BPEL4WS,SCA和SDO等
開(kāi)發(fā)環(huán)境和工具中為不同開(kāi)發(fā)者的角色提供的功能被稱(chēng)為開(kāi)發(fā)服務(wù)。根據(jù)開(kāi)發(fā)過(guò)程中開(kāi)發(fā)者角色和職責(zé)的不同,有如下四類(lèi)服務(wù):
- 建模服務(wù)(Model Service):用于構(gòu)建可視化的業(yè)務(wù)流程模型
- 設(shè)計(jì)服務(wù)(Design Service):根據(jù)業(yè)務(wù)模型,進(jìn)一步分解為服務(wù)組件;設(shè)計(jì)服務(wù)用于設(shè)計(jì)和開(kāi)發(fā)這些服務(wù)組件。
- 實(shí)現(xiàn)服務(wù)(Implementation Serivice):用于將設(shè)計(jì)和開(kāi)發(fā)的服務(wù)組件部署到生產(chǎn)環(huán)境中
- 測(cè)試服務(wù)(Test Service):支持服務(wù)組件的單元測(cè)試和系統(tǒng)的集成測(cè)試
2.6. 業(yè)務(wù)創(chuàng)新和優(yōu)化
一方面,以服務(wù)為中心的企業(yè)集成通過(guò)各種集成提高信息流轉(zhuǎn)速度,從而提高生產(chǎn)效率。另一方面,以服務(wù)為中心的企業(yè)集成也為業(yè)務(wù)創(chuàng)新和優(yōu)化提供了支持平臺(tái)-業(yè)務(wù)創(chuàng)新和優(yōu)化服務(wù)。
業(yè)務(wù)創(chuàng)新和優(yōu)化服務(wù)以業(yè)務(wù)性能管理(BPM)技術(shù)為核心提供業(yè)務(wù)事件發(fā)布、收集和關(guān)鍵業(yè)務(wù)指標(biāo)監(jiān)控能力。具體而言,業(yè)務(wù)創(chuàng)新和優(yōu)化服務(wù)由以下服務(wù)組成:
- 公共事件框架服務(wù)(Common Event Infrastructure Service):通過(guò)一個(gè)公共事件框架提供IT和業(yè)務(wù)事件的激發(fā)、存儲(chǔ)和分類(lèi)等。
- 采集服務(wù)(Collection Service):通過(guò)基于策略的過(guò)濾和相關(guān)性分析檢測(cè)感興趣的服務(wù)。
- 監(jiān)控服務(wù)(Monitoring Service):通過(guò)事件與監(jiān)控上下文間的映射,計(jì)算和管理業(yè)務(wù)流程的關(guān)鍵性能指標(biāo)(KPI)
業(yè)務(wù)創(chuàng)新和優(yōu)化服務(wù)與開(kāi)發(fā)服務(wù)是緊密相關(guān)聯(lián)的。在建模階段被確定的業(yè)務(wù)流程的關(guān)鍵性能指標(biāo)被轉(zhuǎn)為特別的事件標(biāo)志被構(gòu)建到業(yè)務(wù)流程中,建模過(guò)程中的業(yè)務(wù)流程也被轉(zhuǎn)換為用于監(jiān)控服務(wù)的監(jiān)控上下文。在業(yè)務(wù)流程執(zhí)行過(guò)程中,這些事件標(biāo)志激發(fā)的事件被公共事件框架服務(wù)截獲,經(jīng)過(guò)采集服務(wù)的過(guò)濾被傳遞給監(jiān)控服務(wù)用于計(jì)算關(guān)鍵性能指標(biāo)。關(guān)鍵性能指標(biāo)作為重要的數(shù)據(jù)被用于重構(gòu)或優(yōu)化業(yè)務(wù)流程。這種迭代的方法使得業(yè)務(wù)流程處于不斷的優(yōu)化中。
2.7. 管理支持
為業(yè)務(wù)流程和服務(wù)提供安全、高效和健康的運(yùn)行環(huán)境也是以服務(wù)為中心的企業(yè)集成重要的部分,它由IT服務(wù)管理來(lái)完成。IT服務(wù)管理包括如下兩部分:
安全和目錄服務(wù)(Security and Directory Service):企業(yè)范圍的用戶(hù)、認(rèn)證和授權(quán)管理,如單點(diǎn)登錄(SSO);系統(tǒng)管理和虛擬化服務(wù)(System Management and Virtualization Service):用于管理服務(wù)器,存儲(chǔ)、網(wǎng)絡(luò)和其他IT資源。
IT服務(wù)管理中相當(dāng)一部分服務(wù)是面向軟硬件管理的,而另外一部分服務(wù),特別是安全和目錄服務(wù),以及操作系統(tǒng)和中間件管理,會(huì)通過(guò)企業(yè)服務(wù)總線和其他服務(wù)集成在一起,用于實(shí)現(xiàn)業(yè)務(wù)流程和服務(wù)的非功能性需求,如性能、可用性和安全性等。
2.8. SOI中技術(shù)標(biāo)準(zhǔn)和IBM產(chǎn)品支持
下面的表格列出樂(lè)SOI架構(gòu)元素中的技術(shù)標(biāo)準(zhǔn),和IBM的產(chǎn)品如何支持這些架構(gòu)元素。
表 1:SOI架構(gòu)元素中的技術(shù)標(biāo)準(zhǔn)以及支持架構(gòu)元素的IBM的產(chǎn)品
3. SOI 實(shí)踐
企業(yè)集成首先是一個(gè)戰(zhàn)略性的活動(dòng),在我們的經(jīng)驗(yàn)中,有很多的企業(yè)將重點(diǎn)放在集成技術(shù)上,這導(dǎo)致了很多失敗的案例。作為一個(gè)戰(zhàn)略性的活動(dòng),企業(yè)集成首先要從全局出發(fā),制定整個(gè)企業(yè)集成的策略。這種策略包括業(yè)務(wù)目標(biāo),集成路線圖,技術(shù)規(guī)范,和對(duì)開(kāi)發(fā)管理提出的新要求。
企業(yè)集成的目的是為了整合 IT 資源,形成一個(gè)靈活的 IT 基礎(chǔ)設(shè)施,來(lái)滿足業(yè)務(wù)隨需應(yīng)變的要求。所以要充分考慮業(yè)務(wù)面的壓力和痛點(diǎn),未來(lái)發(fā)展和轉(zhuǎn)型對(duì) IT 帶來(lái)的新需求,以確定集成的戰(zhàn)略目標(biāo)。在環(huán)境發(fā)生變化時(shí),要隨業(yè)務(wù)面的調(diào)整作必要的修改。在我們的觀察中,企業(yè) IT 組織往往由于缺乏高級(jí)業(yè)務(wù)管理人員的參與,而無(wú)法制定與業(yè)務(wù)對(duì)齊的集成戰(zhàn)略,失去企業(yè)集成賴(lài)以成功的最重要的基礎(chǔ)。
在制定集成的戰(zhàn)略目標(biāo)后,要根據(jù)目標(biāo)的優(yōu)先級(jí),考察當(dāng)前 IT 環(huán)境,確定集成遠(yuǎn)景,分析差距,定義集成路線圖。考察當(dāng)前可得到的技術(shù)、產(chǎn)品、相關(guān)技能和服務(wù)的可獲得狀況,定義高層技術(shù)規(guī)范,包括集成方法、參考架構(gòu)、技術(shù)和產(chǎn)品的選擇標(biāo)準(zhǔn)、所遵循的業(yè)界標(biāo)準(zhǔn)等等。然后結(jié)合人力、物力和資金的投入情況,導(dǎo)出項(xiàng)目群。在我們的觀察中,很多企業(yè)為了應(yīng)付業(yè)務(wù)需求,匆忙上馬,缺乏統(tǒng)一規(guī)劃,導(dǎo)致企業(yè) IT 架構(gòu)越來(lái)越混亂,不能適應(yīng)業(yè)務(wù)的變化而日漸被動(dòng)。
由于集成是一個(gè)企業(yè)范圍內(nèi)的活動(dòng),一個(gè)集成項(xiàng)目往往影響若干個(gè)部門(mén),其結(jié)果也由多個(gè)部門(mén)所共享使用,所以需要企業(yè)級(jí)的協(xié)調(diào)機(jī)制。這要求企業(yè)調(diào)整其已有的 IT 管理(IT Governance)機(jī)制,要有一個(gè)角色來(lái)協(xié)調(diào)集成項(xiàng)目,并被授權(quán),利用 IT 開(kāi)發(fā)管理的過(guò)程,保證相應(yīng)集成規(guī)范得到執(zhí)行。
另外值得注意的是關(guān)于成熟度的考慮,不同企業(yè)有不同的成熟度,包括業(yè)務(wù)本身、IT 系統(tǒng)、IT 組織自身在技能和管理方面,它們的成熟度,對(duì)企業(yè)集成的成功與否,也都有很大的影響。對(duì)成熟度的考察,會(huì)幫助我們制定更穩(wěn)健、實(shí)際的集成策略。
服務(wù)建模(Service Modeling)是 SOI 活動(dòng)中至關(guān)重要的活動(dòng)。它包括如何找到和確定服務(wù),如何處理服務(wù)的粒度,如何通過(guò)服務(wù)體現(xiàn)和實(shí)現(xiàn)業(yè)務(wù)目標(biāo),如何詳細(xì)說(shuō)明服務(wù),如何確定服務(wù)與已有系統(tǒng)的關(guān)系等。在我們的實(shí)踐中,這對(duì)很多 IT 組織機(jī)構(gòu)都是一個(gè)難題,可以考慮一些專(zhuān)業(yè)公司的培訓(xùn),如 IBM SOA 設(shè)計(jì)中心基于豐富的實(shí)踐所提供的各種服務(wù)。
4. 結(jié)束語(yǔ)
以服務(wù)為中心的企業(yè)集成方法是對(duì)以往企業(yè)集成技術(shù)的繼承與發(fā)展。它基于關(guān)注點(diǎn)分離、松散耦合等源自最佳實(shí)踐的架構(gòu)原則,繼承了EAI,消息總線,流程集成,數(shù)據(jù)集成等優(yōu)秀技術(shù),結(jié)合以服務(wù)為中心(Service Orientation)的先進(jìn)思想,正在給企業(yè)集成領(lǐng)域帶來(lái)巨大的變化。隨著SOI及相關(guān)技術(shù)的逐漸成熟,SOI正在成為企業(yè)集成的新方向。本文的姊妹篇"以服務(wù)為中心的企業(yè)整合-案例分析",將用一個(gè)實(shí)際案例來(lái)說(shuō)明基于 IBM 產(chǎn)品的實(shí)際 SOI 應(yīng)用,幫助讀者感性地理解 SOI。