版本控制
版本控制本身的困难使其从业务上下文参数管理中分离出来。这些困难可以总结为如下几条:
- schema版本变化后如何保证不会破坏本地验证?
- 在生产环境下如何快速适应规则变化?
- 怎样开发用户上下文驱动版本控制并支持子构件的重用?
- 如何通过提高故障修正流程的透明度和公开改动量来缩短并自动化版本测试周期,提高测试流程的速度。(能否提供对回归测试的支持?)
CAM在模板布局中有关于结构、规则和验证扩展的详细区域。在公开改动量的情况下这种透明度尤为重要。
在W3C schemas中这三个方面在语法上是混在一起的。这表示在不同的schema版本中使用软件工具(比如Text DIFF程序)会得到混乱的结果。 然而,CAM模板上的DIFF程序却可以将各方面单独列出来,这使得决定行为时会变得很简单。这个行为决定取决于这些改动的影响,以及它们是否重要,是否良性的,是否是可以考虑的新的功能部件。
CAM模板使用XPath语句描述结构中规则与目标物的联接。这些语句非常灵活,因为它们可以直接标记子元素路径,而不需要知道完整路径。这使得结构改动时可以不对规则产生任何影响,因为这些联接在改动后仍然匹配。
CAM模板的一项特别强大的功能是其对外部代码集合(事务处理中某个代码值相关的外部代码允许值的集合)的支持。比如美国各州代码、产品目录、货币代码、国家代码及度量衡等。OASIS开发了一种叫做Genericode的中性语义表示法处理这种码表。{0>Genericode itself is an abstract format.<}0{>Genericode本身是一种抽象的规范。要在CAM等工具中使用,必须赋予代码值,并将其储存在优化的布局中,以实现高速检索。CAM对响应检索表的转换与表达提供内置的支持。
CAM作为SOA实现的一部分
图4展示了在SOA环境中用CAM处理程序部署数据服务层的一个例子。这里使用jCAM(CAM的Java开源实现),针对与SOA相关联的典型交互提供了三种不同的部署模式,包括Web服务、B2B和独立的本地模式。
图4 CAM部署与应用模式样例
一般实现人员会根据他们的传输方式将现有的数据服务嵌入到自己的转换方法中。这其中包括可用做单独组件或调用服务的CAM处理程序。使用CAM开放标准模板的好处是,可以在第三方系统中自由共享规则与结构定义,当然厂商使用转换工具前需要先安装专有的软件工具。与此相似,内部转换规则却通常包含专用规则检查,并需连接到后端数据库对非共享的内容进行检索和评估。解决办法是将企业内容与结构检查分开整合到CAM模板中。
并且,实现人员可以用开源工具协助开发和集成第三方系统。jCAM实现为此提供了方便,因为它支持标准的Java API,并可以使用不会增加处理系统开销的XML DOM 指针交换处理内容和模板。如图5所示,jCAM开源实现也包含基于Eclipse的编辑工具。
图5 运行中的jCAM Eclipse编辑工具
Eclipse编辑器可以在本地独立运行CAM模板以支持SOA实现。通过SOA系统提供的传输方法可以在实际进行SOA业务交易前节省大量无效工作和时间。 对内容进行预测评估可使业务分析人员和软件开发人员更快速地进行交互微调,而无需等待信息周转。
这同样也会减少因使用无效的事务结构而返回混乱或冲突结果时第三方维护人员的查询请求。更常见的是这些无效事务在第三方系统中消失了,很少甚至没有服务请求方所需的反馈。这样,维护人员就需要在系统内部定位与分析问题时花费一些时间。这说明如果CAM模板可对大量的先决条件进行预测试,就能方便第三方SOA系统的快速集成。
这同样适应于SOA传输包封本身。比如,面向服务的解决方案可能依赖于使用包含SAML(安全断言标记语言)文件的SOAP(简单对象访问协议)标头的信息。使用CAM模板可以允许第三方为这些文件和标头内容进行传输设置的预测试。同样,对SOAP和ebXML(电子商务全球化标准)包封结构(角色、行为、事务细节及扩展,比如CPA ID值)的编排格式可以用CAM模板进行预检。
CAM模板另一个优点是引用和检索模板的广泛应用。这有利于SOA环境下的重用和灵活性。第三方系统可以在对库进行检索和引用时获得即时升级和更新,并应用到本地系统中。
结论
OASIS CAM技术标准为实现人员提供了极大的便利,使之获得了以前不可能在公开发行软件包中包含的SOA数据服务层。其中,最重要的是让业务分析人员参与到构建事务交互、文件编制和实现业务规则集的流程中,而非以往仅仅依靠软件开发人员。这将缩短测试和集成周期,获得更快的实现速度。
CAM规范下的jCAM开源实现为开发和测试模板提供了运行时部署引擎和交互可视化Eclipse编辑器。 Eclipse编辑器促进了企业领域共同开发事务与规则并共享文档和模板。使用jCAM编辑器产生规则和结构与传统业务分析人员制作数据表格形成鲜明对照。
SOA在商业上的成功取决于其对商业活动提供的便利和价值减去为此付出的代价。因此,OASIS CAM模板提供的企业标准技术能满足关键服务便利性的需求,在预定时间内构建、测试、部署并支持面向服务的解决方案。