解析在SOA中实现语义互操作性(2),

来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:23:43
解析在SOA中实现语义互操作性(2)
语义互操作性模式
可以采用很多模式在 SOA 中实现语义互操作性。可以将其大致分为以下几类:
模式一:点对点语义集成
在此模式中,每个数据源都有其专有的语义,而且采用点对点的方式进行语义转换。例如,需要集成两个数据源 A 和 B 时,A 组和 B 组分别打印出自己的 ER 关系图,然后分析数据元素的含义,再进行从数据源 A 到数据源 B 的直接映射。我们以前面的示例为例,可以将帐单编制应用中的“BALANCE”列直接映射到会计应用中的“REMAINDER”列。当集成的数据源扩展到 4 个时,需要进行 6 组映射。如果一个数据源中的数据定义被更改,对其他系统的影响就会加倍,而且通常很难预测。无论您选择的技术多么先进,都不起作用,这个语义集成模式是混乱的,而且当数据源增加时,维护工作会变成您的噩梦。因此,它得到一个绰号“毛团”。此外,这也不容易实现对 IT 资产的重用。无论相信与否,许多 ESB 和 EII 项目仍然在 SOA 中进行点对点的语义集成。尽管如此,点对点集成不一定就是坏事。选择性地利用点对点语义集成,不但可以确保高性能,并可以创建一条“捷径”。
模式二:轮辐式语义集成
每个系统都有其专有的语义,但是被映射到一个逻辑数据模型,可以将此模型实例化为一个物理联合模型或规范消息模型。企业内部的语义互操作性通过轮辐式拓扑来实现,此轮辐式拓扑减少了冗余,并且降低了点对点集成的维护成本。体系结构设计良好的 ESB 通常使用此模式将消息映射到规范消息模型,从而实现语义互操作性。
模式三:主数据管理 (MDM) 模式
MDM 作为一个语义互操性模式出现,与由部门解决方案产生的数据竖井相对应。今天,典型的企业管理系统内存在多个版本的“事实”。MDM 系统连接各个异类信息源,并产生关键信息的唯一事实版本,例如联机事务处理(Online Transaction Processing,OLTP)和操作数据存储(Operational Data Store,ODS)系统中的客户和产品信息。关键信息可能为数据实例(如特定的客户),也可能是元数据(如产品的规范)。MDM 系统使数据不再受单个业务应用或软件包供应商的约束,它是基于开放标准的系统。因此,会将数据完全作为公司资产对待并进行重用。MDM 系统的构建通常独立于现有系统,可降低对业务的显著影响;但是,遗留系统可能在经过一段时间后最终迁移到 MDM系统。MDM 模式与前两个模式之间有着明显的区别,因为 MDM 只保留一个版本的事实,而且有效地从逻辑和物理两个方面将各个不同的信息系统集成到了一起。利用 MDM 系统,各个公司可以获得切实的利益,如改善客户关系、减少新产品的上市时间、与遗留系统之间进行数据集成以及实现资产重用等。
模式四:行业信息模型
为了倡导行业内的语义互操作性,垂直行业标准化组织开发了行业特定的信息模型,其中通常包括 XML 消息和消息模式,也称为域信息模型(Domain Information Model,DIM);不过,也有些组织开发了关系数据模型。DIM 是典型的基于 XML 的模型,用于 B2B 环境中的信息交换。行业标准组织的成员都同意遵守这些规范,经常要求对规范的遵从性进行认证。例如,Association of Retail Technology Standards (ARTS) 针对零售行业,而 Agency Company Organization for Research and Development (ACORD) 则针对保险行业。DIM 提倡更高水平的语义互操作性,鼓励资产重用和公平的竞争环境,以便成员花费更少的时间、成本和精力来解决语义互操性问题。有些组织甚至采用行业标准模型作为其内部的企业逻辑模型和规范消息模型。
标准组织倾向于从水平和跨行业的角度来研究信息。例如,开放应用程序组(Open Applications Group,OAGi)是一个开放标准组织,负责构建用于 B2B 和应用程序到应用程序(Application-to-Application,A2A)集成的基于流程的 XML 标准,它的工作重点是如何改进应用集成的状态。另一个例子是 RosettaNet,它帮助各个行业的公司应对当今全球供应链的需求和挑战。它包括 RosettaNet 业务词典 (RosettaNet Business Dictionaries) 和 RosettaNet 技术词典 (RosettaNet Technical Dictionaries)。
模式五:语义 Web
语义 Web 跨越了应用、企业和行业之间的边界。语义 Web 将数据模型的各个元素链接和关联到一个通用的本体。它使用资源描述框架 (Resource Description Framework) 和 Web 本体语言 (Web Ontology Language),允许在 Web 上共享和重用数据。
模式总结
我们已经讨论了用于实现语义互操作性的多个不同模式。语义互操作性的范围可能包括各个业务单位、企业以及同一个行业或跨行业的各个企业。语义互操作性的范围越大,其成果的长远可重用性会越高,但是也更加难以协调和达成一致。此外,单个公司的控制权将会减少,在自定义重用资产来适应其独特的业务需求和确定想要的功能方面会有所羁绊。正是由于这些原因,一些公司使用内部专有的数据模型来进行内部集成,并且将行业标准模型用于 B2B。
企业应以平衡的观点来考虑采用不同的语义互操作性模式所带来的利弊。以下是一些需要考虑的重要问题:五年后我们的业务战略将会是什么样的?IT 如何支持我们的业务远景?IT 组织的业务和监管环境是什么样的?IT 如何应对(甚至利用)变更?IT 能否利用各种活动来促进更高水平的资产重用,并尽可能降低维护成本和分担开发成本?哪一个信息集成模式是某种特定情况的最佳方法——数据联合、数据整合还是 EAI?
最佳实践
最佳实践一:建立一个研究语义互操作性的核心业务部
如前面的“无控制语义混乱”反模式中所述,人们对于语义将不可避免地有不同的理解。强制要求对 EDM 或企业分类法达成一致是不可取的,与此相比,促进不同参与者之间的合作并且协调文档的不一致通常是更为有效的方法。许多协作工具,如 Wikis、博客工具和群组软件都是十分优秀的工具,如果出现不能达成一致的情况,人们可以使用这些工具软件公开发表观点,处理差异并加以记录。以一个实际的情况为例,Semantic Interoperability Community of Practice (SICoP) 是由 Federal CIO Council 建立的一个团体组织,目的是为了在美国政府中实现语义互操作性。在一个大型机构中,存在数以万计的数据库、数百万的数据元素和文档。要形成一致通常是不可行的,也是不可能的。SICoP 可帮助人们一起更有效地协作。
最佳实践二:胸怀长远目标,以增量方式向战略远景靠近
成功的语义集成的关键在于胸怀长远目标,然后以增量方式向战略远景靠近。“胸怀长远目标”表示要制定战略远景,并且尽可能利用各种不同的活动,如 SOA、数据仓库操作和法规遵从。这些活动通常要求多个业务单位之间进行协作,并要求进行企业级的文化变更。一个战略性的、共同认可的远景不仅给各个参与者带来实实在在的好处,而且可以帮助赢得绝对必不可少的支持者。“以增量方式向战略远景靠近”表示要制定增量式的计划以实现远景目标,并且需要制定数据控制流程,以迭代的方式交付切实可见的成果,评估进度和不断地修改执行计划。总而言之,战略远景和良好的执行都是十分关键。
当企业迁移到 SOA 时,无论他们是否进行自顶向下或自底向上的服务分析,如果迁移工作还没有开始,此时都是考虑是否包含 EDM 和 MDM 的合适时机。上面的两个模式都提高了语义互操作性和数据质量,可保证数据服务的服务水平协议(Service-Level Agreement,SLA),而且降低了总体拥有成本 (TCO)。它们可能对于实现 SOA 的承诺具有深远的影响;这个承诺即使用 IT 从长远的角度提高业务灵活性、增加收益和降低 TCO。
最佳实践三:重用语义集成资产
ESB 的一个主要功能是将消息从一种数据格式转换为另一种数据格式,以确保服务的使用者和服务的提供者能够互相通信。在 XSLT 文档中捕获的转换逻辑可以提供很多的重用好处。不仅可以供其他业务流程重用,ETL 和应用程序也可以对其进行重用。类似地,ETL 工具所使用的语义转换资产还可以公开为 Web 服务,以便由其他应用程序进行重用和调用。
最佳实践四:采用和参与行业标准
有许多处理语义互操作性的行业标准,其中包含了垂直行业和水平行业的数据和数据模型标准。采用和参与行业标准使公司能够利用整个行业的最佳实践,从而减少了语义互操作性的长期成本。
选择软件供应商时,一个重要的标准是确定其是否支持相应行业的 DIM、如何无缝地支持内部数据模型与 DIM 之间的集成以及如何管理后续的变更。为了促进更广泛的语义互操作性,IBM 已经成为各种行业标准的有力支持者。例如,2005 年 9 月,IBM 向 ACORD 无偿提供了 100 多个业务流程模型、模型定义以及其他行业信息。
结束语
IT 世界在不断地发生变化,因此,语义互操作性也是一个不断发展变化的目标。我们的第一个假设是,变化是不可避免的。业务方面永远不会出现一劳永逸的情况。业务始终需要对客户需求、趋势、经济情况、法律法规和竞争进行适应。我们的第二个假设是,我们处在一个信息时代,语义互操作性的挑战只会增加。除非我们确定了语义互操作性的反模式、模式和最佳实践,否则我们的决策就不能够有效地解决问题。我们的第三个假设是,世界是混乱的。我们力所能力的事情是创建或利用各种工具和方法,在一定范围内对混乱加以控制。语义互操作性实际只是一个秩序形式,我们将它运用于我们的世界,使我们能够控制混乱,并使普遍存在并不断增加的信息有意义。控制混乱还意味着我们需要清楚地理解我们的选项以及每个选项的成本和好处,并减少变更带来的不良后果。
希望本文所讨论的反模式、模式和最佳实践将帮助您为您的 SOA 工作选择合适的方法来实现语义互操作性。需要强调的是,使用单个模式、组或标准并不能解决语义互操作性中的所有问题。