语义互操作性模式
可以采用很多模式在SOA中实现语义互操作性。可以将其大致分为以下几类:
模式一:点对点语义集成
在此模式中,每个数据源都有其专有的语义,而且采用点对点的方式进行语义转换。例如,需要集成两个数据源A和B时,A组和B组分别打印出自己的ER关系图,然后分析数据元素的含义,再进行从数据源A到数据源B的直接映射。我们以前面的示例为例,可以将帐单编制应用中的“BALANCE”列直接映射到会计应用中的“REMAINDER”列。当集成的数据源扩展到4个时,需要进行6组映射。如果一个数据源中的数据定义被更改,对其他系统的影响就会加倍,而且通常很难预测。无论您选择的技术多么先进,都不起作用,这个语义集成模式是混乱的,而且当数据源增加时,维护工作会变成您的噩梦。因此,它得到一个绰号“毛团”。此外,这也不容易实现对IT资产的重用。无论相信与否,许多ESB和EII项目仍然在SOA中进行点对点的语义集成。尽管如此,点对点集成不一定就是坏事。选择性地利用点对点语义集成,不但可以确保高性能,并可以创建一条“捷径”。
模式二:轮辐式语义集成
每个系统都有其专有的语义,但是被映射到一个逻辑数据模型,可以将此模型实例化为一个物理联合模型或规范消息模型。企业内部的语义互操作性通过轮辐式拓扑来实现,此轮辐式拓扑减少了冗余,并且降低了点对点集成的维护成本。体系结构设计良好的ESB通常使用此模式将消息映射到规范消息模型,从而实现语义互操作性。
模式三:主数据管理(MDM)模式
MDM作为一个语义互操性模式出现,与由部门解决方案产生的数据竖井相对应。今天,典型的企业管理系统内存在多个版本的“事实”。MDM系统连接各个异类信息源,并产生关键信息的唯一事实版本,例如联机事务处理(OnlineTransactionProcessing,OLTP)和操作数据存储(OperationalDataStore,ODS)系统中的客户和产品信息。关键信息可能为数据实例(如特定的客户),也可能是元数据(如产品的规范)。MDM系统使数据不再受单个业务应用或软件包供应商的约束,它是基于开放标准的系统。因此,会将数据完全作为公司资产对待并进行重用。MDM系统的构建通常独立于现有系统,可降低对业务的显著影响;但是,遗留系统可能在经过一段时间后最终迁移到MDM系统。MDM模式与前两个模式之间有着明显的区别,因为MDM只保留一个版本的事实,而且有效地从逻辑和物理两个方面将各个不同的信息系统集成到了一起。利用MDM系统,各个公司可以获得切实的利益,如改善客户关系、减少新产品的上市时间、与遗留系统之间进行数据集成以及实现资产重用等。
模式四:行业信息模型
为了倡导行业内的语义互操作性,垂直行业标准化组织开发了行业特定的信息模型,其中通常包括XML消息和消息模式,也称为域信息模型(DomainInformationModel,DIM);不过,也有些组织开发了关系数据模型。DIM是典型的基于XML的模型,用于B2B环境中的信息交换。行业标准组织的成员都同意遵守这些规范,经常要求对规范的遵从性进行认证。例如,AssociationofRetailTechnologyStandards(ARTS)针对零售行业,而AgencyCompanyOrganizationforResearchandDevelopment(ACORD)则针对保险行业。DIM提倡更高水平的语义互操作性,鼓励资产重用和公平的竞争环境,以便成员花费更少的时间、成本和精力来解决语义互操性问题。有些组织甚至采用行业标准模型作为其内部的企业逻辑模型和规范消息模型。
标准组织倾向于从水平和跨行业的角度来研究信息。例如,开放应用程序组(OpenApplicationsGroup,OAGi)是一个开放标准组织,负责构建用于B2B和应用程序到应用程序(Application-to-Application,A2A)集成的基于流程的XML标准,它的工作重点是如何改进应用集成的状态。另一个例子是RosettaNet,它帮助各个行业的公司应对当今全球供应链的需求和挑战。它包括RosettaNet业务词典(RosettaNetBusinessDictionaries)和RosettaNet技术词典(RosettaNetTechnicalDictionaries)。
模式五:语义Web
语义Web跨越了应用、企业和行业之间的边界。语义Web将数据模型的各个元素链接和关联到一个通用的本体。它使用资源描述框架(ResourceDescriptionFramework)和Web本体语言(WebOntologyLanguage),允许在Web上共享和重用数据。