论文部分内容阅读
随着Internet技术的发展,计算机软件的应用逐步由静态封闭转变为动态开放。Web服务技术和面向服务体系结构的发展为软件和应用的开发提供了一种新型模式,使开发不必从零开始,通过复用与组合可以开发出新的应用,从而提高开发效率、节约资源。随着Web服务功能的不断强大,单一服务功能的局限可以通过服务组合来解决。目前,服务组合技术得到迅猛发展,服务质量即服务的非功能性因素越来越受到人们的重视,人们不仅关心服务的功能性因素,也关心服务的非功能性因素。如何动态的从众多Web服务中,选择或通过组合得到在功能、非功能因素两方面都能满足用户需求的服务成为一研究热点。对于通过服务组合不能满足用户需求的情况,可以通过开发新的服务来解决。利用构件技术,采用基于构件技术进行应用的开发,从而提供所需服务,充实原有服务库。基于构件的开发是软件复用的一种形式,通过组装已有软件与应用来构造新应用,实现新的应用需求。随着复用技术的发展,在Internet中出现了许多商用与公用的软件构件库,它们各自具有不同的构件描述模型,如何在不同的构件库中实现透明的检索,方便查找到所需构件;如何将构件进行高效的组装以满足复杂应用需求,受到人们越来越多的关注。针对当前服务自动组合过程中涉及服务质量与处理组合失败的较少、构件多库检索不方便以及构件组装过程中大多未考虑构件间的非功能依赖的情况。本文提出一种QoS有保障的Web服务动态组合与开发方式,能在短时间内进行服务自动组合并对组合失败的情况进行处理,其思想是:根据需求和已有的服务建立完备回溯树,利用服务质量进行最优路径的选择,从而实现满足用户功能需求的同时考虑非功能需求,提高服务质量。对于不能通过服务组合而达到的服务需求,利用软件构件复用技术,基于构件进行开发。首先利用P2P技术与同义词词典在Internet构件库中进行构件的查找与检索,然后进行构件的组装。组装过程中对于具有相同功能与接口的构件根据构件QoS利用GODSS算法进行选择与组合,采用降低构件通信量的方式进行部署,最后将组合构件封装为Web服务并发布,从而将新开发出的服务提供给用户,满足用户服务需求,同时,更新服务库。通过运用此机制可以在实现Web服务高效动态组合的同时满足用户对非功能方面的需求,通过利用构件技术对Web服务进行开发,使得整个过程更加灵活。