技术开发 频道

面向数据是面向服务的基石

    【IT168 评论】

    现今大多数的SOA文献与实现都专注于定义业务对齐的服务,而很少讨论企业数据在SOA环境中扮演的角色与产生的影响。David Linthicum如是说:

    那些投向SOA的人们看似对于SOA中数据的使用颇为疑惑。虽然其中大部分将数据视为...其实,数据,在懂行的人看来,是SOA作为一个项目能够成功的战略部分,或者是说是整体性的架构战略。当所有的焦点都在SOA的“S”即服务上的时候,问题也就来了。那些负责构建架构与系统的人,往往只注意了将服务作为交付功能行为的主张,而忽视了管理底层数据的需要。在许多场合中,数据质量与一致性的问题很快就显现出来,而由于需要在底层数据的更改后直接修改服务,SOA的灵活性也大打折扣。

    David关于数据集成作为SOA基础的重要性这一观点,在Ash Parikh最近的文章里得到了进一步的阐述。

    (越来越明显的是,任何面向服务的基础设施努力都必须从认真的研究数据集成开始...“数据集成”对于任何想要以速度与灵活性架构基础设施的人来说,都必须摆在首位。所以,如果你想将你的基础设施面向服务化,我建议你首先面向数据化。检查以下这五点以保证其根基满足相应的能力:

    ·方便地访问所有相关的数据,包括新的和经常更新的数据源。

    ·批处理或实时的处理数据,包括处理大容量的大数据集。

    ·预先辨认与解决数据不准确与不一致。

    ·对数据应用复杂的数据变换。

    ·在需要数据的时候能精确地交付数据,要作为一项基于标准的服务。)

    在他接下来的文章里,Ash讨论了如何将面向服务的基础数据化的实用手段。他描述了几种规范的推荐纲要,为企业实现数据集成提供了整体的解决方案。

    ·由一个支持“标准化”访问所有企业数据源而无论其组织形式(结构化,非结构化,等)和访问方式(SQL,APIs,Web服务,等)的数据集成平台开始。保证该平台的扩展性——快速加入新的数据源或者修改现有的数据源的能力。

    ·确保所选择的平台可以有效地支持任选数据处理的延迟,不管是批处理,类实时,还是变更数据获取及实时。

    ·理解不同的数据访问模式,包括大容量的小数据集,大容量的大数据集,庞大(兆)数据集等等。并且保证它们都能被所选择的数据平台所支持。在需要的时候要有相应的附加技术作为补充。

    ·保证服务所消费和产生的数据在服务间的一致。许多数据平台能够提供集成的数据剖析,能够不考虑复杂性而预先地认定及修复问题。

    ·除了数据访问,一个数据平台通常还提供一个集中式的数据转换场所。如果是简单的格式转换,任一现代的数据集成平台都可以支持。然而,如果有复杂转换的需求,例如聚合,连接,查找,结构转换等等,你也许就需要更为 先进的平台。

    ·一个数据集成平台通常需要支持服务实现要求的多种访问机制,包括基于SQL的访问,Web及REST服务,等等。

    ·一个数据集成平台需要将服务实现与底层数据源分隔开。实际上,它需要引入一个抽象层,以允许数据层的更改而不影响服务实现或将这种影响降到最低。

    总的来说,一个数据平台

    .(..需要是一个单一的,能够交付这里列出的所有功能的集成平台。这是有道理的,因为所有这些推荐都是从时间和节省成本的角度考虑的。如果每一项功能都需要使用一项单独的技术,那么就违背了使用面向服务方案的初衷,即通过简洁性与灵活性以保持系统的机动能力...[这一]平台必须支持并驱动数据集成逻辑的重用。)

    随着SOA实现的范围从有限的部门解决方案延伸到企业级的实施,企业数据访问的问题很快就成为了实施过程中最重要的问题之一。如果不能一开始就正确地进行构架,企业数据访问将成为实施道路上的一个拦路虎。
 

0
相关文章