含糊的技術(shù)名詞和相似的內(nèi)容往往使人感到無(wú)比的困惑。理解力較低之人如我,經(jīng)常會(huì)把長(zhǎng)相差不多的詞語(yǔ)混在一起。IBM SOA參考架構(gòu)中業(yè)務(wù)功能和信息服務(wù)就是很好的例子。今天要發(fā)揮考據(jù)學(xué)派的精神,試圖澄清兩者的概念。
具體的參考鏈接如下:
http://www.51cto.com/html/2006/0315/23858.htm
http://www.51cto.com/html/2006/0315/23858_1.htm
雖然不是IBM dw上的文章,但作者貌似是IBM SOA中心的老大:-)
這兩個(gè)模塊讓人困惑的首要原因是翻譯問(wèn)題。其實(shí),業(yè)務(wù)流程和業(yè)務(wù)功能是Process Services的兩個(gè)部分,而信息服務(wù)則是Information access service。在SOA架構(gòu)里,Interaction services, process services和information services共同組成了control service。一翻譯到中文,就讓人感覺(jué)異常詭異。
Information service的功能主要是數(shù)據(jù)整合。企業(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ù)(Information service)提供集成數(shù)據(jù)的能力,目前主要包括如下集中信息服務(wù)(Information service):
* 聯(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ù)。
至于業(yè)務(wù)功能,舉個(gè)例子:
Cendant公司的旅游銷(xiāo)售服務(wù)(TDS)部門(mén)使用IBM技術(shù)開(kāi)發(fā)了SOA,系統(tǒng)地整合多個(gè)旅游網(wǎng)站的功能。例如,在將提供低價(jià)機(jī)票銷(xiāo)售確認(rèn)為幾個(gè)網(wǎng)站共有的業(yè)務(wù)功能后,Cendant TDS開(kāi)發(fā)了一個(gè)創(chuàng)新性的定制化SOA應(yīng)用來(lái)針對(duì)此項(xiàng)業(yè)務(wù)功能。通過(guò)SOA把這一業(yè)務(wù)功能變成一個(gè)單一,可重復(fù)使用的服務(wù)(組件),并建立了一個(gè)系統(tǒng)環(huán)境,在這里,多個(gè)網(wǎng)站可以訪問(wèn)同一低價(jià)機(jī)票銷(xiāo)售服務(wù)(組件),從而節(jié)約了成本。
這個(gè)例子里沒(méi)有業(yè)務(wù)功能的定義,但是我們足以看到,業(yè)務(wù)功能就是一個(gè)商業(yè)上的功能模塊。這類(lèi)服務(wù)會(huì)完成一些具體的商業(yè)操作,也會(huì)被更上層的商業(yè)服務(wù)調(diào)用,不過(guò)大多數(shù)情況下這類(lèi)服務(wù)不會(huì)暴露給外部用戶(hù)直接調(diào)用,比如說(shuō)檢索用戶(hù)帳戶(hù)信息,存儲(chǔ)用戶(hù)信息等。
我猜想,我們?cè)谠O(shè)計(jì)中可以把一個(gè)業(yè)務(wù)功能抽象為一個(gè)SCA模塊。