网络环境下的新型软件开发方法——网构软件

时间:2022-09-10 12:45:32

网络环境下的新型软件开发方法——网构软件

网络环境下的新型软件开发方法——网构软件

随着internet的快速发展论文联盟与普及,软件agent、web services、分布式计算、云计算等先进技术和方法成为当前研究的热点,传统的软件开发方法也面临新的挑战。计算机软件开发在经历了面向结构、面向对象、面向构件的开发方法之后,又迎来新的生机。从以往的软件开发方法历史看,其粒度越来越大,封装的功能逐渐增多,接口的描述越来越重要。

1 新型软件支撑技术

1.1 internet的发展

internet是新型软件的理想运行环境,它作为不同于传统计算机的硬件平台,具有如下基本特征:无统一控制的真分布性;节点的高度自治性;节点连接的开放性和动态性;人、设备和软件的多重异构性;实体行为的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络连接环境的多样性[1]。以上特征为新型的软件技术创造了条件,但同时又提出了挑战,如何在internet环境下拥有动态协同、在线演化、环境感知和自主适应能力,成为新的课题。

1.2 软件构件技术的成熟

软件构件技术的概念诞生于20世纪60年代后期,omg组织、carnegie mellon大学软件工程研究所(sei)的bachman[2]、以及著名构件学者szypersk[3]等均对构件给出了定义。其中szyperski的定义:软件构件是一种用于组装的单元,它具有规范的接口规约和显示的上下文依赖,软件构件可以被独立部署并由第三方组装。

传统的软件构件技术是面向对象技术发展到高度集成阶段后发展起来的,在面向构件中,构件的主要形式是对相关类的封装,并能完成一个或多个的服务功能,同时为外界提供接口,方便组装。构件本身隐藏了实现的细节,只通过接口提供服务,因此,构件之间可以组合成粒度更大的新的构件。构件之间通过连接子进行连接,通过接口传递信息,构件内部是透明的,并可以通过网络连接运行在不同的机器上,不同的构件可以用不同的语言实现,只要服从相应的构件规范。

1.3 web service技术的提出

web service 是一种分布式的计算体系结构,是跨平台的通信服务技术,是一种网络上数据与信息集成的有效机制。w3c组织、ibm研究者、uddi协会等都给出相应的定义。其中,ibm研究者定义为:一个web service是定义了一组操作的一个接口,这组操作可通过网络用xml消息访问。web service由标准的xml语言进行描述,该描述覆盖了消息格式、传输协议和物理位置等传输服务所需的细节。web service具有非常强大的分布式计算能力[4-5]:

1)能够解决中间件跨防火墙通信时出现的问题,使分布在网络中的构件具有广泛的通用性,真正实现跨internet服务。

2)通过对服务的有效构件化、、查找和连接绑定机制将提供者所生产的服务通过uddi注册并,供用户选择重用。服务可对不同粒度的应用程序进行封装,实现了系统级的较大粒度重用,提高了软件开发效率。

3)使用soap中间件让所有的构件、语言、操作系统能够轻易的进行跨平台互操作,web service能较好的体现新型软件的本质特征。

1.4 软件agent技术的兴起

软件agent是近年兴起的一种技术,包括智能agent和移动agent等多个方面。对于智能agent的认识,wooldridge认为:“agent是这样的一个计算机系统,其位于某个环境中,且能在该环境中采取一定的自治动作以满足其设计目标” [6]。智能agent的主要特性包括:反应性,目标驱动性,社会性。所谓移动agent是运行于开放网络环境中的封装良好的计算实体,它可代表用户完成特定的任务,具有自主性、移动性、协作性、安全性和智能性等特性[7-8]。移动agent被认为是解决分布式系统的有效模式。

利用agent技术,可以解决对驻留环境进行感知、表示和分析的问题。我们将构件实体抽象和物化为具有ebdi[9] (electronic business document exchange)结构的软件agent,这主要是因为软件agent及其技术能够有效满足构件主体化和环境显式化的要求。这样,构件就能够感知环境并且自主地实施规划以完成目标,从而可以自然地描述复杂系统的分布控制。

2 新型软件—网构软件

2.1 网构软件的定义

由于新技术的发展与应用,新型软件开发方法学应运而生。新型的软件开发系统是运行在internet环境中的,以软件构件为基本实体,运用web service技术实现跨平台通信,以软件agent技术和演化技术等完成动态组装及演化功能的系统。

基于上述技术的成熟与发展,在系统分析以面向对象方法与技术为代表的经典软件方法与技术体系不足的基础上,从软件方法学及其技术支撑的角度,通过对软件技术发展趋势与挑战的思考与分析,北京大学杨芙清院士提出了网构软件这一概念:从技术的角度看,在面向对象、软件构件等技术支持下的软件实体以主体化的软件服务形式存在于internet的各个节点之上,各个软件实体相互间通过协同机制进行跨网络的互连、互通、协作和联盟,从而形成一种与www相类似的软件web(software web)。我们将这样一种internet环境下的新的软件形态称为网构软件(internetware)。

网构软件具有自主性、协同性、反应性、演化性和多态性等特征[10]。

2.2 网构软件的运行机制

从构成来看,网构软件由三部分组成,他们分别是分布在internet环境下的各个节点,具有主体化特征的软件实体和一些用于支持软件实体交换的连接子。网构软件在感知外部环境改变的情况下,通过增加、减少软件实体与连接子个数,改变系统拓扑结构,进行系统演变等一系列体系结构演化方法来适应外部环境的改变,从而使得系统上下文相关联,满足用户多样性需求的目标。简言之,网构软件就是在当今开放、动态、难控的网络大环境下,对分布式软件体系的一中抽象,其概念框架如图1所示。

转贴于论文联盟

在可信保障机制下,探测器(可以由移动agent在网络上动态搜索完成)搜索网络环境中软件构件,探测器完成搜索后得到若干构件实体,这些构件实体按照其实现的功能或性能进行排序得到兴趣事件列表,完成对环境的感知;根据用户的需求,对本体构件重构,应用软件系统演化技术,从而达到演化的目的;演化部分结束后论文联盟得到目标系统,通过连接子可以反作用环境部分。经过一系列的演化和一定时间的运行,使internet环境下的网构软件开发系统不断优化,最终得到比较高效的软件。

2.3 网构软件的研究进展与不足

2.3.1 构件技术

随着对网构软件研究工作的进展,研究者们开始把工作领域扩展到构建应用领域,omg组织、microsoft公司、sun公司都加入了该项研究,并取得了一系列成果,比较有代表性的如omg组织的corba/ccm系列[11],sun公司的j2ee/ejb系列[12],微软公司的com/dcom/com+等系列产品[13]。在构件的接口方面,com/dcom技术中com构件通过microsoft idl来定义,corba技术中则用idl来定义ccm构件应用编程接口;在构件组装方面,j2ee/ejb中采用远程方法调用(rmi)机制,dcom采用基于dce的远程过程调用(rpc)机制;在构件容器方面,在构件容器方面,ejb中提供的ejb容器,corba的ccm中提供的相关构件容器等。虽然目前基于构件的技术层出不穷,但在工程实践中主流技术对构件的支撑还较为有限,主要是在工程实践中应用,没有上升到方法学、语义学层面。

2.1.2 软件agent

从智能agent内部结构与运行机制角度看,bdi是一种比较成熟的智能agent模型,bdi将信念、知识、意图、期望、目标、规划等因素引入智能agent体系结构之中,并设计运行规范。因为社会性是agent的主要特性之一,所以目前的只要研究工作包括信息交互和协同机制等层面,主要研究工作有role模型[14],fipa 的acl[15],tota,mars,kqml,jade和compose等。在移动agent方面,出现了许多具有代表性的系统,如aglets,ctelescript,oncordia,ordyssey,agent tcl,voyager等,有关标准也在制定之中。

在平台层面上,由于现有agent平台对主流构件技术的支持较少,我们仍然需要结合现有的agent技术与构件技术来完善dagent-internetware支撑平台。在方法层面上,需要提供较为完整的方法学以支持基于dagent的网构软件开发,并结合软件体系结构技术,对网构软件系统的整体演化行为提供支持。在应用层面上,希望能够开发更多的应用案例,并在较大规模的网络环境下对以dagent为构件的网构软件进行检验。

2.1.3 自演化系统

从内部组成的角度,自演化的软件系统通常包括四方面要素:情景要素,感知要素,决策要素,演化要素。它们相互关联,通过前馈(feed forward)或反馈(feed back)机制形成闭环,彼此影响,从而使软件系统在宏观上表现出自适应行为。

构造能够热演化或自演化的软件系统难度是非常大的。许多部门进行了大量的研究,包括cmu的garlan[16]等学者提出的rainbow是一种自演化形式的软件系统模型,采用外置运行时体系结构, 通过配置管理工具对构件系统进行有效控制,模型包括3个层次: 体系结构层(architecture layer), 翻译层(translation layer), 系统层(system layer);都柏林大学jim dowling等人提出的k-component系统框架,试图将演化逻辑与业务逻辑分离[17-19];加州大学irvin分校的taylor教授研究的archstudio系统[20-21],试图采用软件体系结构的途径对自演化进行支持,但必须增加一个管理系统将上层体系结构对应底层的运行对象,archstudio系统对情境信息建模的支持度也有欠缺;欧盟资助的arch-ware项目[22]也是演化系统的研究成果之一,但同样缺少对情境的显式支持;南京大学开发的artemis-mac系统采用rdf对情境进行建模,从而为后续的感知与演化等提供了一个统一的语义基础;并开发出了自演化软件支撑平台artemis-mac,其中采用了rdf/owl技术对情境进行建模,较大程度上地减少了高层体系结构与底层运行系统的映射和一致性维护负担。如表1。

3 总结

internet的发展为新的软件开发方法提供了平台,网构软件正是在开放、动态、难控的internet环境下对软件理论、方法和技术的挑战。本文从近年新技术层出不穷的角度,简要介绍网构软件的基本概念及运行机制,通过分析国内外网构软件支撑技术研究现状,找出不足。进一步的工作主要是完善以软件体系结构为中心的网构软件技术体系,重点突破网构软件的基础构件标准制定、网构中间件自治管理技术以及网构软件开发方法的自演化程度。 转贴于论文联盟

上一篇:网络通信安全及安全防御措施 下一篇:液氩探测器