论文部分内容阅读
随着Internet的发展,越来越多的软件系统运行和部署在网络环境上,软件形态逐渐由确定性目标转变为动态性目标,由基于实体驱动向基于协同驱动发展.软件系统越来越强调根据需求的变动不断进行演化,动态的调整软件系统的拓朴结构和行为。如何在开放,动态,难控的Internet环境下实现各类资源的共享和集成以及复杂软件系统的开发,已经成为计算机软件技术面临的一项挑战性研究课题.网构软件在这样的背景下提出,它是对开放,动态,难控网络环境下的分布式软件系统的一种抽象,包括一组分布于Internet环境下各个结点并且具有主体化特征的软件实体,并能为这些软件实体提供交互和协同.网构软件代表了一类具有主体性,系统性,反应性,自适应性,自演化性,多态性等特征的复杂系统。在当前应用领域中,面向服务的计算可以说是网构软件的一种典型的实现方式。
目前,研究者们从多个方面对网构软件进行了深入研究,取得了一系列研究成果,例如以软件体系结构为中心的网构软件开发方法,网构软件模型,网构软件的信任度量及演化模型等等。其中一个核心问题足网构软件实体如何针对给定需求实现聚集并通过合作满足用户需求,即软件实体的聚合。有效地软件实体聚合能充分降低需求的解决成本,同时重用已有软件实体。
在以往的网构软件研究以及面向服务的计算中提出了一些解决方法。如,南京大学吕建等提出基于Agent的网构软件模型,将由软件实体组合而成的网构软件看成一种可人工设计的软件系统,在给定参与聚合的软件实体后,通过第三方协同服务进行协同,并给出了一种面向体系结构的协同程序设计方法。在面向服务的计算中,较为类似的工作足针对特定需求的服务组合。其中主要有两个方向,其一是采用业内诸多基于XML的表示标准来形式化描述服务,服务组合流程,以及服务执行过程,组合方案由人工设计。其二是基于语义网(Semantic Web)的服务组合。后者采用本体精确定义术语以刻画服务的能力和效果,在此基础上通过推理获得服务资源间的依赖关系。而服务组合则被表示为一个面向目标的规划问题。这是一种能够动态适应需求和服务运行环境变化的有效方法。但不足之处足这种方法的计算时间代价较高,尤其是当参与的服务数量较大时,产生有效组合方案的时间代价通常足不可接受的。
我们认为网构软件实体应该具有相对独立性,主动性,和自适应性,具有感知外部系统运行和使用环境的能力,充分发挥网构软件实体的主动性优势将更有利于实现网构软件实体自动聚合。Agent因其具备自主性,反应性,能动性,和社会性等特征,足一种较能充分体现网构软件实体特性的软件形态。本文采用Agent技术为主动网构软件实体建模基础,提出了一种需求驱动的网构软件实体聚集模型。在该模型中,网构软件实体被看成为主动的Agent,可以称为软件实体Agent,这些Agent能够主动发现需求请求者提出的需求,并主动向需求聚集形成联盟.聚集起来的Agent通过机制设计,和协商形成能满足服务需求的多Agent系统,实现网构软件实体的按需聚合。
本文的主要贡献及创新点包括,第一,提出构建领域功能本体。该本体提供了一组公共的术语用于网构软件需求的功能描述和软件实体Agent的能力描述,据此Agent可以理解需求描述进而发现自己可参与的需求。第二,通过自动机制设计产生协作约束以避免软件实体Agent虚报信息和中途退出联盟,破坏联盟稳定性。第三,给出了两个群体决策模型一重心模型和议价模型,用于建立有效的软件实体Agent联盟,以及形成有效的协作方案。