SOA中的数据服务:问题和可能的解决方案

在面向服务的架构中,不论其是用作何种目的的,如:主数据管理 (Master Data Management,MDM)、客户数据集成(Customer Data Integration,CDI) 或者作为核心的SalesForce.com的API(core SalesForce.com API),数据服务正在日益引起大家的关注。

WSO2在刚刚过去的夏季发布了作为它们的Web 服务应用服务器(Web Services Application Server,WSAS)组成部分的一个数据服务框架,以便让从SQL数据库创建数据服务的过程变得更加容易些。

上周,David Webber写了一篇关于OASIS 内容装配机制(Content Assembly Mechanism,CAM)规范及其相关联的数据服务的专栏文章 。正当大多数人放弃定义用于验证查询结果的XML Schema定义的时候,CAM为基于XML的交易的数据服务验证提供了定义模板。Dave补充说:

虽然现有使用W3C XSD shecma、命名空间、XSLT和其他工具(如Schematron and XMLBeans等)的技术已经存在了有些时日了,但它们提供更多的是以开发人员为中心的并且可能比较脆弱的设计选项。敏捷信息接口需要对业务上下文环境标准作出反应,而传统的Schema机制对此不能提供必需的帮助。

CAM可以在不使用XML Schema的情况下定义消息结构。CAM平台还有一个附加的特性,就是它提供一种可促进服务版本化和重用的机制。Dave解释说:

通过学习口碑不错且运行超过3年的AWS平台我们可以增长很多的见识……Amazon正在持续不断的改造其内容模型,而且这样做的一个结果是它们支持版本化的请求响应已经若干年了……Amazon使用一种自助版本方法:在这种方法中,请求的版本标识被包含到请求本身的语法中。

在Amazon销售的广泛的产品中混杂着问题:

每种产品类型拥有不同的信息模型(被广泛地显示在图中)。一个指定产品代码范围的查询将返回一个由不同部分组成的XML块。这些结构的一些细微差别大量体现在不同结构块中的XML元素标记和不同的关联元素中。不仅如此,每种商品项目(Item)拥有如单价、库存级别和除了Amazon.com本身之外的下游供应商的新的和可用的商品项目,以及那些供应商的评级(rank)。

Dave的主题文章重点对Amazon服务 的上下文驱动程序(context drivers for Amazon services )进行了分析,并总结说:

毫无疑问,当你查找W3C schema 和命名空间机制时,你会发现上面的这些上下文相关的行为都没有被支持。你能够看到只是可能出现的整体结构的总体布局。

Dave继而描述了CAM,它使用一系列的XPath 语句来描述灵活且上下文依赖的文档结构。CAM 共享了UN/CEFACT(核心组件技术规范,Core Component Technical Specification)的核心要素,但跟CCTS不同的是,CAM如今具有可操作性。jCAM(CAM的java 开源实现 )针对与SOA相关联的典型交互提供了3种不同的部署模式,包括Web服务、B2B和独立的本地模式(standalone local modes)。其Eclipse编辑器启用了使用了CAM模板的本地独立部署以支持SOA实现。

查看英文原文:Data Services in SOA: Issues and Possible Solutions SOA

你可能感兴趣的:(SOA中的数据服务:问题和可能的解决方案)