论文部分内容阅读
软件在线演化技术正成为当今软件维护领域的一个重要研究课题。而软件的动态更新技术动态软件更新方法由于其更新粒度小、更新成本低、操作灵活等优点,成为软件在线演化技术中的一个热点。本文主要研究,动态更新中基于服务的构件分布式系统的模型及其部署问题、动态更新过程中服务依赖性管理问题。本文提出了基于OSGi的两层服务模型,解决了分布式环境中基于服务的动态更新系统的部署问题;并将Service Binder引入到两层模型中,解决了分布式环境中服务依赖性的管理问题。由于在动态性和互换性等方面的优势,很多现在非常流行的技术都以面向服务构件模型为基础;OSGi便是其中的一个。R-OSGi将非分布式的OSGi平台所提供的服务扩展到了分布式环境中;然而采用生产者-消费者模式调用远程服务的R-OSGi,不仅会增加每个系统OSGi的工作负载,同时对网络资源的消耗也很大,更无法对远程服务进行统一的管理。基于OSGi的两层服务模型正是针对R-OSGi这些的缺点,从一种新的视角来看待分布式环境中的OSGi平台,将每一个独立的OSGi平台视为一个能够提供远程服务并可能要获取其它远程服务的构件,使用面向服务的构件模型的方式,来解决分布式环境中远程服务的发布和获取的问题。本文提出了基于OSGi的两层服务模型,并详细介绍了其工作原理、流程及相关问题,同时介绍了该模型的主要特点。Service Binder是一种面向服务构件模型中一种自动管理服务依赖的机制,它将把服务依赖性的管理逻辑从Bundle内部转移到了执行环境中,有效的减轻了程序开发者的在进行依赖性管理时的负担。本文论述了,引入Service Binder到两层服务模型中解决基于OSGi的两层服务模型中的服务依赖性管理,特别是远程服务的管理问题的可行性;并详细介绍引入Service Binder之后,服务的管理流程,特别是远程服务依赖性管理的流程;并给出了引入Service Binder以后两层服务模型的体系架构和相关实现。