组件技术与软件Agent技术 组件技术与软件Agent技术

组件技术与软件Agent技术

  • 期刊名字:巢湖学院学报
  • 文件大小:670kb
  • 论文作者:王一宾,昌杰
  • 作者单位:安庆师范学院,巢湖学院
  • 更新时间:2020-10-26
  • 下载次数:
论文简介

2005年第7卷第3期.巢湖学院学报No. 3.. Vol.7. 2005总第7 2期Joumal of Chaohu collegeGeneral Serial No. 72组件技术与软件Agent技术王一宾',昌杰2(1安庆师范学院计算机与信息学院,安徽安庆246011)(2巢湖学院数学计算机系,安徽巢湖238000)摘要:组件技术的提出对软件重用和软件开发效率的提高具有非常重要的意义;而软件Agent技术的提出为复杂分布式问题的求解找到了很好的办法。文中首先分析了组件技术和软件Agent技术的主要内容,然后提出将组件技术与软件Agent技术相融合可以有效地提高软件的重用性、灵活性及适应性等,最后简述了组件技术和软件Agent技术在大型软件开发中的应用等。关键词:组件;软件Agent;软件重用;软件体系结构中图分类号: TP311文献标识码: A文章编号:1672- -2868(2005)03 -0078 03Component Technique and Software Agent TechniqueWANG Yi-bin', CHANG Jice'(1.. . School of Computer Science and Information Engineering, Anqing Teachers College, Anqing 246011, China)(2. Department of Computer Science ,Chaohu College, Chaohu 238000 China)Abstract: It is very important to present the concept of component technique for improvingsoftware reuse and development efficiency. And it is a good method to present agent-basedtechnology for solving complex and distributed problems. Firstly, the main content of componenttechnique and software agent are analyzed. Then, it is presented to combine component techniqueand software agent may improve software reuse, flexible and adapter etc. Lastly, appl icat ionsby component technique and software agent in large - -scale software developnent are introduced.Key words: Component; Software Agent; Software Reuse; Sof tware Architecture组件及组件软件工程概念的提出有利于提高软件开发速度、降低软件开发成本和软件维护成本,有利于提高软件的重用性,有利于解决软件危机等,组件软件工程的出现改变了软件开发的各个环节,它是软件生产技术的巨大进步"。软件工程的进步主要靠不断产生新的抽象方法来实现复杂系统,如过程抽象、抽象数据类型、面向对象技术,都是使软件远离面向机器的观点,而向人们理解世界的方法靠近,面向Agent技术的提出为复杂分布式问题的求解找到了很好的办法,它是人工智能与计算机科学新的结合,用于解决复杂分布的现实问题,开发处于动态的、不确定环境中的、健壮的、大规模的软件系统”。将组件技术与软件Agent 技术相结合可以有效地提高软件的重用性、灵活性及适应性,有利于大型分布式软件系统的开发等。一、与组件技术1.1组件的主要概念组件是具有-定的功能,能够独立工作或能同其它组件装配起来协调工作的程序体,组件的使用同它的开发、生产无关"。如果把软件系统看成是组件的集合,那么从组件的外部形态来看,构成- -个系统的组件可分为独立而成熟的组件、有限制的组件、适应性的组件、装配的组件、可修改的组件五大类。1.2组件技术的特点组件往往是开发后经过编译成为二进制代码,才进行发布使用,与开发工具语言无关,能够实现即插即用,井中国煤化工收稿日期: 2005- -2- -18基金项目:安庆师范学院科研基金资助(2003y1y06)MYHCNMHG作者简介: 1.王一宾 (1970-), 兄安徽安庆人,合肥工业大学计算机与信息学院在职研究生。2.昌杰(1979-),男巢湖学院数学系讲师.78且通过接口有效地保证组件的重用性,可以通过市场销售和分发。组件软件工程可以看作是在一定组件模型的支持下,重用组件库中的一-个或多个软件组件,通过组合手段高效率、高质量地构造应用软件系统的过程。目前,有多个组织和公司为组件、组件框架和接口建立了模型和技术规范,其中OMG CORBA, Microsoft COM/DC0M/COM+, SUNJavaBean/EJB占主导地位。组件技术具有以下优点": (1) 从根本上改变软件生产方式,提高软件开发速度(2)提高软件的重用率,保护已有的投资,降低软件开发成本(3) 使开发出的系统更加灵活,便于维护和升级,可以降低维护费用(4)使开发者将更多的注意力放到业务流程和业务规则上去,降低对系统开发者的要求等。所以,组件技术可以使原来周期较长的、复杂的软件开发工作变得简单、快速并且成本低廉。1.3基于组件的软件开发基于组件的软件开发是当前的一个研究热点,对该领域贡献最大的是软件体系结构理论,所有软件开发方法都要解决从需求到实现之间的转换问题。基于组件的软件开发就像搭积木- -样容易, 主要包括组件的开发和应用程序的开发,可分为需求分析、组件收集、基于组件的设计、组件装配、测试、运行与维护等六个主要阶段,如图1所示。需求分析阶段是分析用户的需求,了解“做什么”:组件收集是依赖于需求分析的结果,收集相应的组件,部分组件的收集工作可以与需求分析阶段并行进行,这样也有利于节省时间,提高开发需求分析组件收集效率;基于组件的设计是在没有现成组件的情况下深入进行领域分析,确定组件功能,规划对外接口实现组件的设计:组件装配是将收集的组件或开发的组件按照一定 的组件模型进行组件的组装集成;测基于组件的设计试主要是集成测试和系统测试,因单元测试主要是在组件开发阶段进行;运行与维护是投入运行,并且为了满足用户对已开发产品的性能与运行环境提高的要求,为延长软件寿命进行的一系列活动。2、Agent 技术组件装配2.1软件Agent的定义及主要特性什么是软件Agent?由于软件Agent的研究者来自许多不同的领域,使得软件Agent的含义也具有多重性。归纳起来,Agent可定义测‘试为“一个能够根据它对其环境的感知,主动采取决策和行为的软件实体”0。Agent的关键属性主要有自主性、交互性、适应性、智能性、运行与维护协同性、移动性等,自主性表示没有外部直接千涉能够根据自身经验进行行动;交互性表示与环境及其它Agent交流;适应性表示在某种图1基于组件的软件开发程度上能够响应其它Agent或环境;智能性是由知识所形式化的状态与其它Agent使用符号语言交互;协同性是指Agent能在多Agent 系统环境中协同工作,以执行和完成一些相互受益的复杂任务;移动性表示能够将自己从一个环境转移到另- -个环境。 事实上,很难看到-一个Agent都具有上述特性,一般认为,前三项是必需的。2.2软件Agent技术的特点软件Agent 技术可以看作是软件开发的又一-重大突破, 这是因为它不仅能够以-种自然、高效的方式解决传统软件业中存在的问题,而且还能为解决目前软件发展中其他技术难以解决的问题提供了-一个理想的途径。软件Agent与其他软件技术相比较,在解决传统软件业中存在的问题时具有如下优点0!: (1) 系统的数据、控制、专家知识和资源可以分布存储处理。(2) 对Agent 组成的系统可以进行自然的描述,有利于各有关人员对软件系统的理解。(3) Agent 软件系统具有灵活性,有利于现有软件的集成。(4)开放性和复杂性Internet/ Intranet的发展对软件的开发提出了新的问题,高度开放的计算机网络是一一个松散耦合的软件环境,软件生产所面临的难题是系统具有高度的开放性和复杂性,而软件Agent为解决这两个问题提供了独特的思路: Agent软件系统具备高度的灵活性和坚固性解决开放性问题:开发-些能够解决特定应用领域的专用模块化构件解决复杂性问题,而Agent 的应激性和主动性使得它既能对环境变化做出反应,又能根据目标主动规划自己的行为。可见,软件Agent更能解决复杂的问题。2.3基于Agent的软件开发基于Agent技术的应用开发可以按照下述步骤进行: (1) 分析系统的特点,选择合适的实现技术。当应用需要具有跨平台、跨网络、跨地域甚至跨行业的互操作性以及较高的个人化、智能化时可以考虑采用Agent技术。这里并不排除以多种技术实现应用系统的可能性。在确定以Agent技术实中国煤化工应用所涉及的各个对象,决定哪些采用Agent实现,哪些采用其他方法实现。(2) AgYHCNMHGt的种类:移动.二用Agent 技术实现部分的数据和功能。Agent 间明确分工后,应当根据各自功能确定Agent还是静态Agent. (3) Agent接口的设计。Agent 接口的设计非常关键,它往往影响系统的性能。这是既要考虑Agent间的交互方式,又要考虑Agent与非Agent部分的交互方式。(4) Agent 的详细设计和实例化。首先要了79解日前已有的Agent平台能做什么,不能做什么,它们各有什么优缺点。然后根据系统的需要选择合适的代理平台。接着进行详细设计和具体的编码、调试工作,从而实现整个系统。(5) Agent的运行与维护。运行维护基于Agent技术的应用系统,及时发现和解决实际运行过程中遇到的问题。总之,任何系统的设计都要综合应用多方面的因素,根据实际情况而定。3、软件Agent技术的融合3.1软件重用方式的融合软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、软件体系结构、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。现阶段的软件重用仍然停留在“静态软件重用”阶段,主要表现为重用对象是一些静态的、缺乏灵活性的软部件,软件重用活动由开发人员来完成,可重用资源比较有限。文献[7]中提出了“动态软件重用”的思想,重用的对象是一一些高度自治、具有特定功能和能力的动态软件系统,重用对象表现出较强的灵活性,由软件系统动态地完成重用活动,重用的内容是开放的:这种动态软件重用的思想与现阶段软件开发的状况和趋势是相适应的。在面向组件的编程模式下,程序要素从对象变为组件,所重用的是组件,实现的是静态软件重用。在面向Agent的编程模式下,程序要素是Agent,在这种模式下,所重用的不仅仅是功能,更重要的是继承了知识,因为每个Agent都具有自己的知识积累与学习能力,实现的可以是动态软件重用。基于Agent的软件重用方法核心是以动态软件重用为目标,用Agent抽象概念和基于Agent系统方法来概念化、刻画、描述、设计和构造可重用软部件。随着软件技术的发展,我们应该将Agent重用技术和组件重用技术结合起来,即实现静态软件重用和动态软件重用相融合,为复杂分布式问题的求解获取更高的效率。3.2红件标准规范与软件Agent合成机制的融合组件之间的连接是一种松散的耦合方式,而Agent之间的合成也往往采用松散的耦合方式。组件模型是描述可重用组件和这些组件之间如何相互作用的规范。尽管目前软件组件技术已经在软件重用中呈现出巨大的优势,但时至今日,软件组件本身的标准和规范尚未统- -和完整性的定义"。在实际应用中,目前只有OMG CORBA,MicrosoftCOM/DCOM/CoM+ SUN JavaBean/EJB这三种比较成熟的占主导地位的组件技术。三种组件技术都有其优点,为了更好地服务于软件开发利用,这三种技术也正在向紧密结合的方向发展。多Agent 系统的协作求解问题的能力超过单个Agent,依据Agent构造及软件体系结构特性,可将多Agent系统作为一种新的软件体系结构风格进行研究"。就这类系统组件要素一-Agent 来说,它是一-种有别于以往任何系统的组件类型。尽管在系统实现中,Agent或多或少与对象、控制过程等传统的体系结构要素联系起来。但是,就Agent本身而言,其所具有的自主性、智能性、交互性等特性是对象所不具备的。将Agent看作- -种特殊的组件,利用成熟的组件技术实现Agent的合成具有现实意义。3.3分布式软件开发中的应用由于计算机网络技术的飞速发展,现在的软件开发利用,往往是基于网络上的开发利用。在分析了组件技术和软件Agent的主要特性之后,我们认识到软件Agent技术可以为组件的动态连接提供基础,组件技术为软件Agent的合成提供重要的理论指导。可利用组件与Agent技术构造应用系统框架,为特定领域的软件开发提供良好的方法。在软件开发生命周期中,-般而言,进行需求分析时,当应用需要具有跨平台、跨网络、跨地域甚至跨行业的互操作性以及较高的个人化、智能化时可以考虑采用Agent技术。将组件技术与软件Agent技术相结合,充分利用软件重用机制的融合,充分利用组件标准规范与软件Agent合成机制的融合,取长补短:还可利用软件体系结构理论,使用需求分析和领城驱动相结合的体系结构设计方法来实现软件开发,这种方法将在未来的分布式系统的开发中具有非常重要的意义。它的适用范围将相当广泛,主要包括现代教育系统、电子商务、商业和工业过程的管理、信息管理和检索等等.4.结束语软件系统往往由许多组件组合而成,当软件系统逐渐扩大到- -定程度, 可能超过人的理解能力,这时需要- -种能够自动组织组件的方法,组件技术和软件Agent技术都拥有一定的优势。如何实现两者更紧密的结合,如何将软件体系结构的有关理论结合进来,为软件开发提供更好的方法是我们将要研究的主要方向。参考文献[I]Alan w .Brown, Kurt C.Wallnau.The Current State of CBEUJ-.EEE sofware , 1998.10(9):37-46.[2Uennings N R. On agent - based software engineeringU]. Arificial Inelligence,2000[3]唐胜群,唐涛洲.软件体系结构与组件软件工程0] .计算机工程,1998(8),32- -35.[4]周之英.现代软件工程[M] .北京:科学出版社,2000[5]刘大有,杨鲲等.Agent研究现状与发展趋势[门.软件学报2000(3):6]王映辉,冯德民编著.大规模软件构架技术[M] .北京:科学出版中国煤化工[7]毛新军,徐锡山等.基于Agent的软件重用D].计算机工程与科学:TYHCNMHG[8]邱岩.组件技术及其分析比较[J].计算机工程与设计,2003(7),13-17[9]孙志勇.多Agent系统体系结构及建模方法研究[D:博士学位论文]合肥工业大学,2004.责任编辑:开斌80

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。