InfoQ

新闻

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

作者 Jean-Jacques Dubray译者 孙向晖 发布于 2007年11月14日 上午1时50分

社区
SOA
主题
Web服务,
REST
标签
Web服务,
WSO2,
XML Schema

在面向服务的架构中,不论其是用作何种目的的,如:主数据管理 (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

没有回复

回复

独家内容

从卓越工程角度看微软中国开发团队的成长

开发团队的成长离不开优秀的人才,简捷有效的流程和高效率工具这三个卓越工程系统中的重要因素。本文作者从这三个因素分析了微软中国开发团队是如何“从优秀到卓越”的。

利用Ruby简化你的Java测试

本文是Productive Java with Ruby系列文章的第一篇,我将从单元测试这个话题开始,让Java的开发人员能够在实际工作中利用Ruby提高工作效率。

与赵进聊SaaS

InfoQ中文站有幸与阿里软件的首席架构师赵进在一起探讨了SaaS的相关话题,包括SOA和ASP与SaaS的异同、云计算、SaaS的前景、它的关键技术、技术瓶颈等等。

在ESB中选择路由还是编配?

在这篇文章中,Adrien Louis和Marc Dutoo在一个典型的ESB场景中讨论了编配和路由的区别和优缺点。他们讨论了几种连接服务的方法,从使用如自定义路由这样的低级别方法,到使用如工作流和编配这样面向业务的高级别方式,并总结说不存在“一边倒”的解决方案。

分布式系统中的一致性和可用性

本文是根据7月26日InfoQ中文站在杭州举行的QClub活动(第三期)后半程小组讨论总结而成。主要内容包括如何在SOA系统中实现服务编排,如何保证分布式系统中的一致性和可用性,以及如何在实施SOA的过程中控制接口的粒度等。

虚拟化导论

人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。

用户故事估算技巧

作为开发者,同时也是ThoughtWorks的咨询师,Jay Fields总结了自己估算用户故事的有效技巧。

InfoQ案例研究:纳斯达克市场回放

在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。