论文部分内容阅读
面向服务的计算是一种新兴的主流分布式计算范型,强调使用具有良好定义和业务功能的服务作为系统的基础构建模块,利用服务组合和协作描述系统的行为,构造的系统具有松耦合、敏捷性和动态适应性等特点。面向服务的计算有许多新的问题需要解决,其中如何由小粒度的基本服务通过组合形成具有一定业务逻辑的大粒度服务是最核心的问题之一。论文通过对服务组合问题的深入分析,以服务组合模型为研究重点,结合服务组合多阶段、动态性和分布式的特点,采用组合服务建模、描述与执行相分离却又紧密联系的研究思路,提出了一种基于函数式编程风格和Monad结构的服务组合模型,设计并实现描述该模型的服务组合语言,并提出一种基于关键路径的组合服务分布式执行优化算法。这些模型、语言和算法都已经在函数式服务组合平台XDWSC(XiDian Web Service Compsition,西电Web服务组合)中实现。为了验证该解决方案的正确性、有效性以及相关综合性能,本文还对其进行了系统的实验研究。作者研究工作的具体内容包括:(1)定义面向服务的计算环境与服务组合参考模型在对面向服务的企业级计算框架进行分析与总结的基础上,定义与具体应用无关的面向服务的计算环境(包含服务运行层和服务组合层两个层次),并指出本文的研究重点在于服务组合层。总结归纳现有服务组合方法,抽象出通用的组合服务开发过程、常见的服务组合模型以及具有普遍意义的组合服务支撑功能,提出服务组合参考模型(Service Composition Reference Model,SCRM),SCRM为研究组合服务的分析、建模、部署、运行等提供了一致的可参考计算框架。(2)提出了一种基于函数式编程风格和Monad结构的服务组合模型FSCM(Functional Service Composition Model)随着企业级应用的不断发展,对于服务组合系统构建时的灵活性和运行时的并发性提出了更高的要求。经过对现有服务组合方法的比较与分析,参考服务组合参考模型SCRM,提出了一种基于函数式编程风格和Monad结构的服务组合方法,其核心是通过建立函数式的服务组合模型FSCM描述服务组合过程。FSCM利用函数式编程模型易于组合且具有无副作用这一特性,很容易地实现组合服务的并发优化及分布式部署与执行。(3)设计了函数式服务组合语言FSCL(Functional Service Composition Language),并基于C++语言对FSCL进行实现基于代码生成的思路,给出了一个实现函数式服务组合的框架,并重点讨论了采用面向对象计算模型实现函数式服务组合模型FSCM的方法。该方法支持组合服务设计者使用简单的服务组合语言FSCL描述组合服务的业务逻辑;基于该语言的组合服务描述将被映射为C++代码,在服务组合类库的支持下共同编译为可执行的组合服务模块,部署并运行在在项目组自主研发的模块化系统中。(4)提出了一种基于关键路径的组合服务分布式执行优化算法针对面向服务计算环境中对于灵活、高效组合服务执行模式的要求,提出“集中式建模,分布式执行”的思路,设计并实现一个将集中式组合服务模型转换为分布式执行模式的受限递归关键路径(restricted Recursive Critical Path,rRCP)算法。算法在给定集中式组合服务模型和实际运行环境的条件下,能够生成一个较优的组合服务分布式执行模式。(5)基于上述研究,论文以西安电子科技大学软件工程研究所REPACE研究中心的研究成果“系统设计工具集成环境”与“特定领域的总线”为依托对函数式服务组合支撑平台的实现技术进行研究,设计并实现了一个服务组合平台XDWSC。