数据、数据模型和数据管理是SOA成功的基础

      当信息在不同系统间移动,而这些系统信息组织方式又不同的时候,一个系统产生的表示法必须被转换成另一个系统的表示法。如果这种转换是必需的,你就面临着一个设计抉择:是简单地将这个信息直接由一个系统格式转换成另外一个?还是先把它转换成一个系统独立的格式?对于企业级的信息整合,其答案是不言而喻的。这种系统中立的格式通常被称为公共数据模型(common data model)。

       公共数据模型,即这种逻辑层面上的数据建模的目标是建立企业标准化的数据视图,也是抽象、集成、规范和管理一个或多个物理数据服务的集合。面向服务的设计的最佳方法都是规定通过服务编排的业务流程只能看到一种数据模型。这可以是来自业务应用实例中的一个独特的模型,也可以是以前创建的权威的模型。只要业务流程看到一种数据模型,数据模型的来源没有关系,因此有效地应用SOA需要在物理和逻辑层有一个设计良好的数据模型。

       规则和规则的处理决定了数据是怎样变成信息的。它们在数据服务层提供了关系、语义和行为。管理规则给出利用物理数据层的系统和数据资源的各种要求和/或限制。数据规则提供验证、一致性、反复确认和其它与数据准确性和一致性相关的规则。这类的规则包括元数据、数据元素标准、信息分类编码标准等。

       如果在SOA中没有企业数据服务层,每个应用服务很可能将被迫开发成特定于每一个应用程序的专用“点”或者一次性解决方案。几乎没有通用性,几乎没有共享的服务定义、重用和一致性,规范的数据模型的定义也会变得难懂。如果认识到SOA的优点,则会逐渐认识到它的众多优势。我们很可能都看到过这样的统计信息:企业应用程序软件开发的50%到80%的项目资源消耗在数据集成任务上。这一“事实”应该足以确定在任何SOA实现中数据服务层是必不可少的一部分。企业软件解决方案的主要设计目标是数据处理,结合这一概念, SOA 中数据的价值应该非常明显。

       由形式模式定义所支持的公共数据模型风格数据表示法是面向服务架构的基础核心。即能规定所有的可接收数据结构,又能独立验证任何给定数据结构是否符合规范,这让它完全可以独立任何特定实现完整来定义一个接口。

       公共数据模型的真正受益是它给整个企业架构带来的灵活性。它使信息可以被更广泛地获取,并使观察驱动业务的事件成为可能,降低了适应参与者数据结构中将来变化的成本。只要能获得一个随时间变化相对稳定的公共数据模型(相对于参与者的数据结构的变化率),那么在系统的信息交换中使用公共数据模型就是一个好的实践。

       关于公共数据模型的使用,企业架构小组应该建立涵盖如下的策略:
       
1. 应该使用公共数据模型的环境,以及适合它使用的地方。
       2.实现公共数据模型的首选方法和可接受方案,以及在具体条件下决定使用何种方法的标准
       3.变更公共数据模型的运营方法。该策略必须考虑如何平滑的向新格式转换,而不影响所有组件的“爆炸式”更新。
       4.谁来定义公共数据模型(通常是企业架构小组)
       5.定义公共数据模型及记录它们与领域模型关系的机制
       6.公共数据模型定义保存的位置和访问它们的方式。