通用信息模型,助你构建丰富语义的服务

成功实施SOA的必备要素之一是服务消息在语义上的互操作性。通常,为实现这一点,服务消息/接口应该基于行业相关的通用信息模型(Common Information Model,简称CIM)。因为CIM是抽象的,所以绝大多数情况下都需要对CIM进行扩展,其原因有很多,可能是出于整合的目的而加入某些附加的数据,也可能需要加入某些元素,让其承载服务组件的某些业务逻辑。Gandhi Sivakumar和Ram Viswanathan在DeveloperWorks的一篇新文章中介绍了3个典型的CIM层,并界定了它们各自的特性。

两位作者认为,核心CIM层是基础,它

……包括原始发布的行业模型,比如电信管理论坛为电信行业定义的共享信息数据模型(SID)和IBM为金融行业定义的IBM金融服务模型(又称IFW),它们包含一些抽象实体,它们的属性和关系。

这一层通常是预定义的,但是可以稍微对其进行客户化,如添加一些缺失的数据定义、关系和唯一命名标识等。这一层一般有其独立的命名空间,这样服务规范生成工具就可将它作为一个独立的基础层来维护,从而与其他CIM层相分离。

弱化CIM层是对核心CIM层的扩展,它:

……包括一些扩展的CIM实体,这些实体能够传达纯粹的业务语义……通常,除非在业务的角度有其他的方法保证这些元素的存在,并能进一步通过抽象术语来表示它们,不然,建模工具一定要为它们的声明实现可视化,以使它们可出现在服务接口中。

弱化CIM层是核心CIM层的扩展,它提供了更多的属性、对象、关系和接口。该层包含了大量的实现服务所需但在核心CIM中找不到的那些与业务相关的实体。一般来说,这一层是最动态的,而且随着服务中要求增加越来越多的功能,它也在不断地发展。

最后,最弱化CIM层

……包括纯粹为整合的目标所需的对象、属性、接口和方法。譬如,与实体相关的消息头、控制结果和连接服务操作以及弱化/核心CIM层所需的实体。需注意的是该层必须与弱化CIM和核心CIM层共存,而这两层又是通过服务操作连接起来。

此层的目的纯粹是提供为实现整合及控制功能所需的那些实体。

本文为在SOA实施中采用行业特定的CIM模型带来了一个良好定义的多层次的方法。文中提到的明确分离的核心、服务相关和整合相关的扩展,有利于更好地维护SOA的语义模型。

查看英文原文:Using the Common Information Model for Building Semantic Services

你可能感兴趣的:(通用信息模型,助你构建丰富语义的服务)