含糊的技术名词和相似的内容往往使人感到无比的困惑。理解力较低之人如我,经常会把长相差不多的词语混在一起。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模块。