论文部分内容阅读
随着编程范型(Programming Paradigm)、分布式计算(Distributed Computing)以及业务计算(Business Computing)这三个领域的技术发展,面向服务的体系结构SOA(Service-Oriented Architecture)和面向服务的计算SOC(Service-OrientedComputing)得到了学界和业界广泛的关注和发展。SOA提出了一种松耦合的、基于服务来组织计算资源的软件系统架构风格。目前,在分布式计算领域,诸如分布式计算环境DCE、公共对象请求代理体系结构CORBA、分布式对象组件模型DCOM、EJB/J2EE以及Web服务等都正在朝基于“服务”的方向实现跨架构和跨企业的业务集成,以求使得各种异构系统能够在统一的“服务”平台上实现互操作(interoperation),也使得各遗留系统(Legacy System)可以继续得到应用,但是目前尚没有出现能够有效支持面向服务的操作系统。本论文首先针对现有SOA应用的体系结构进行了分析。分析表明,目前“服务”抽象是在SOA应用体系结构中较为中间的层次实现的,其底层却仍然依赖于传统的进程/线程抽象,不能直接有效地支持基于SOA的应用。针对这一现象,本论文提出如下问题:能否使操作系统或者分布式操作系统直接以“面向服务”这个统一的概念来实现它们之间或者与已有的分布式计算系统之间的互操作?针对这个问题,本论文对建立一种面向服务的分布式操作系统进行了系统、深入的研究与实践。建立面向服务的操作系统(无论是单机操作系统还是分布式操作系统)最关键也是最基本的问题是要给出服务在操作系统级上的抽象。本论文将服务的概念引入操作系统的基本抽象中,对本实验室提出的服务体/执行流模型进行了概念上的扩展,并依此提出了面向服务的操作系统的基本结构。在扩展后的服务体/执行流模型中,服务体是服务的载体,端口是服务通信和访问的接口,而小端口则是服务的实例。对于面向服务的分布式操作系统SODOS,本论文对如下几个方面的关键技术进行了深入的研究与探讨,主要包括SODOS的体系结构、具有单一系统映像的服务界面、服务的发布、远程服务请求的代理、命名和名字服务、多执行流调度、服务副本和服务实例迁移以及一致性维护等。从面向服务应用的需求看,除了要有一个面向服务的分布式操作系统来提供服务的发布与发现以及服务通信之外,还必须为SOA应用提供基础服务的部署方案,并为它提供服务组合路径优化方法。然而在这两个方面现有的研究大多是针对大规模网络的,如Internet、服务网格以及服务覆盖网络等,而不是针对局部密集服务环境的。在局部密集服务环境中,无论是服务部署还是服务通信,其系统特征都有别于上述大规模网络。据此,本论文对服务的部署和服务组合的路径优化问题分别进行了深入研究,提出了相应的算法并进行了模拟实验。本论文研究中所做出的新贡献如下:1)首次将“服务”这一概念引入到操作系统的基本抽象中,并对服务体/执行流模型SEFM进行了概念上的扩展,使其能够有效支持面向服务的计算;2)首次提出面向服务的分布式操作系统的概念,并对此进行了总体设计,深入研究了其中的透明的远程服务请求技术、位置无关的服务命名方法、名字空间的组织与管理等关键技术,并给出了解决方案;3)针对局部密集服务环境下所特有的服务局部分布特性和密集分布特性,本论文提出了一种静态的服务部署方法,该方法依次考虑了网络流量最小化、负载平衡以及服务最小分布这三个约束条件。4)针对局域分布式系统中节点间通信距离近似相等的特征,本文提出了一种服务组合路径优化算法。与大规模网络环境下不同,在局部密集环境中,服务组合路径的长度不再大于成员服务的个数,为此引入了两个新的参数来调整服务节点的选择,从而减少了服务路径的长度,进一步降低了系统的网络流量。