含糊的技術名詞和相似的內容往往使人感到無比的困惑。理解力較低之人如我,經常會把長相差不多的詞語混在一起。IBM SOA參考架構中業務功能和信息服務就是很好的例子。今天要發揮考據學派的精神,試圖澄清兩者的概念。
具體的參考鏈接如下:
http://www.51cto.com/html/2006/0315/23858.htm
http://www.51cto.com/html/2006/0315/23858_1.htm
雖然不是IBM dw上的文章,但作者貌似是IBM SOA中心的老大:-)
這兩個模塊讓人困惑的首要原因是翻譯問題。其實,業務流程和業務功能是Process Services的兩個部分,而信息服務則是Information access service。在SOA架構里,Interaction services, process services和information services共同組成了control service。一翻譯到中文,就讓人感覺異常詭異。
Information service的功能主要是數據整合。企業數據的分布性和異構性是應用系統方便訪問企業數據和在企業數據之上提供增值服務的主要障礙。數據集成和聚合技術在這種背景下誕生,用于提供對分布式數據和異構數據的透明訪問。
以服務為中心的企業集成通過信息服務(Information service)提供集成數據的能力,目前主要包括如下集中信息服務(Information service):
* 聯邦服務(Federation Service): 聯邦服務提供將各種類型的數據聚合的能力,它既支持關系型數據,也支持象XML數據、文本數據和內容數據等非關系型數據。同時,所有的數據仍然在自己本身的方式管理。
* 復制服務(Replication Service):復制服務提供遠程數據的本地訪問能力,它通過自動的實時復制和數據轉換,在本地維護一個數據源的副本。本地數據和數據源在技術實現上可以是獨立的。
* 轉換服務(Transformation Service):轉換服務用于數據源格式到目標格式的轉換,可以是批量的,或者是基于記錄的。
* 搜索服務(Search Service):提供對企業數據的查詢和檢索服務,既支持數據庫等結構化數據,也支持象PDF等非結構化數據。
至于業務功能,舉個例子:
Cendant公司的旅游銷售服務(TDS)部門使用IBM技術開發了SOA,系統地整合多個旅游網站的功能。例如,在將提供低價機票銷售確認為幾個網站共有的業務功能后,Cendant TDS開發了一個創新性的定制化SOA應用來針對此項業務功能。通過SOA把這一業務功能變成一個單一,可重復使用的服務(組件),并建立了一個系統環境,在這里,多個網站可以訪問同一低價機票銷售服務(組件),從而節約了成本。
這個例子里沒有業務功能的定義,但是我們足以看到,業務功能就是一個商業上的功能模塊。這類服務會完成一些具體的商業操作,也會被更上層的商業服務調用,不過大多數情況下這類服務不會暴露給外部用戶直接調用,比如說檢索用戶帳戶信息,存儲用戶信息等。
我猜想,我們在設計中可以把一個業務功能抽象為一個SCA模塊。