论文部分内容阅读
面向服务的计算(SOC)是一种新的计算范型,它利用服务作为基本的构造单元,支持异构环境下分布式应用的快速、低成本的组合式开发。Web服务技术由于具有语言无关、平台无关等特性,成为面向服务计算范型的一种主流实现方式。基于XML的SOAP协议是Web服务的核心标准之一,带来了消息层的互操作。在SOAP协议的实现中需要进行XML数据与程序设计语言相关的业务逻辑对象之间的数据模型转换。一方面,不同平台在处理数据模型转换时对SOAP消息中数据的编码方式不同,为Web服务的互操作性带来了问题;另一方面,数据模型转换的效率直接影响了Web服务的性能。
本文首先提出了一种新型的元模型映射机制,关注于对XML Schema规范的全面支持,弥合了XML数据模型与语言相关业务逻辑对象模型之间的差异。提高了SOAP引擎的互操作性。在关注互操作性的同时,该元模型映射机制允许用户通过自定义映射规则来控制数据模型转换的过程,并且支持自定义约束规则,提供了对数据完整性的验证,使用户更加关注业务逻辑的设计,提高了开发的效率。
此外,本文提出一种动态模板驱动的数据模型转换方法,通过采用动态提前绑定和Pull模式的XML解析技术,避免了Java反射操作的频繁使用,提高了数据模型转换的性能。同时,用上下文无关文法对数据模型转换进行了形式化描述,并基于LR(k)分析技术和语法树实现了动态数据映射模板。
最后,论文探讨了文中提出的元模型映射机制和动态模板驱动的数据模型转换方法在自主研发的新一代SOAP引擎SOAPExpress中的实现,并通过实验比较了SOAPExpress和开源SOAP引擎 Apache Axis1.x。实验数据表明,SOAPExpress在互操作性和性能方面比Apache Axis1.x均有显著提高。