写点什么

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

2007 年 11 月 14 日

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

2007 年 11 月 14 日 01:50426

评论

发布
暂无评论
发现更多内容

亿级大表分库分表实战总结(万字干货,实战复盘)

比伯

Java 编程 程序员 架构 计算机

数字货币钱包开发费用,区块链钱包开发优势

13530558032

覆盖全网的阿里微服务架构有多牛:K8S+实战+笔记+项目教程

马士兵老师

Java 程序员 微服务 Spring Cloud 阿里云 K8S

Spring / Spring boot 异步任务编程 WebAsyncTask

Bruce Duan

异步任务编程 WebAsyncTask

影响王兴的一本书

池建强

读书笔记 无限游戏 王兴

数字货币交易所功能,场外OTC交易所开发公司

13530558032

关于linux操作系统中的buff/cache

程序员架构进阶

Linux cache buffer

SQL数据库:子查询和关联子查询

大规模数据处理学习者

SQL子查询 SQL关联查询

【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界

华为云开发者社区

华为 AI modelarts

从“小众”到“首选”,推动云原生产业落地华为云作用几何?

华为云开发者社区

云计算 架构 容器

遥感影像处理有高招,“专治”各类花式并发的述求!

华为云开发者社区

容器 k8s 遥感

MySQL全面瓦解—子查询和组合查询

比伯

Java 编程 程序员 架构 计算机

React Fiber 是什么?

局外人

react.js 前端 React

亿级大表分库分表实战总结(万字干货,实战复盘)

云流

学习 编程 架构 计算机网络

【涂鸦物联网足迹】涂鸦云平台标准指令集说明

IoT云工坊

人工智能 cpu 物联网 智能家居 指令集

快速理解二十三种设计模式(速记)

simon

设计模式 23种设计模式 Java设计模式

python+requests对app和微信小程序进行接口测试

测试人生路

Python 接口测试

云算力挖矿模式系统开发,云算力平台搭建

13530558032

下笔如有神:这是一个基于营销行业的 AI 技术实践

京东智联云开发者

人工智能 自然语言处理 nlp

anyRTC AI降噪|让声音更清晰

anyRTC开发者

人工智能 AI 音视频 WebRTC RTC

USDT币支付系统开发搭建,区块链承兑商支付平台

13530558032

多线程问的太深入不知道怎么回答,从volatile开始给你讲清楚

小Q

Java 学习 面试 volatile 多线程

完美!阿里P8仅用242页笔记,就由浅入深讲解了SQL概念

马士兵老师

Java sql 阿里巴巴 SQL语法 sql查询

成年人的世界都不容易-看看做到年薪50万的程序员,到底有多累?

Java架构师迁哥

拒招中国程序员后,开源平台 GitLab 又开始大规模封杀开发者账户

Java架构师迁哥

usdt区块链支付系统开发,承兑支付平台搭建

WX13823153201

usdt区块链支付系统开发

#不吐不快# IT职场里的奇葩经历

InfoQ写作平台官方

职场搞笑 活动专区 奇葩的经历

从红黑树的本质出发,彻底理解红黑树!

996小迁

Java 架构 面试 程序人生

在Android中使用DataBinding(Kotlin)

simon

android Android进阶 JetPack DataBinding 数据绑定

五面进军饿了么!复盘总结11月上半月大厂面试真题,押题命中率高达95%以上

Java架构追梦

Java 阿里巴巴 架构 面试经历 面试题总结

刷Github时发现了一本阿里大神的算法笔记!标星70.5K

Java架构师迁哥

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

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