构件技术与软件Agent技术研究 构件技术与软件Agent技术研究

构件技术与软件Agent技术研究

  • 期刊名字:计算机安全
  • 文件大小:594kb
  • 论文作者:陈晓湘
  • 作者单位:湖南涉外经济学院
  • 更新时间:2020-10-26
  • 下载次数:
论文简介

构件技术与软件Agent技术研究陈晓湘(湖南涉外经济学院,长沙湖南410205)摘要:构件技术的提出对软件重用和软件开发效率的提高具有非常重要的意义。而软件Agent 技术的提出为复杂问题的求解找到了很好的办法。首先分析了组件技术和软件Agent技术的主要内容,然后提出将构件技术与软件Agent技术相融合可以有效地提高软件的重用性、灵活性及适应性等,最后分析了组件技术和软件agent技术在软件开发中的应用。关键词:组件;软件Agent; 软件重用;软件体系结构Research on Component Technique and Software AgentCHEN Xiao- -xiang(Ceartnent of Computer Science and tehokgy, Himan mtenatona/ Economies Iniersit, Chansa, Human 410205, Chia)Abtact: It is very important t0 present the concept of compoent techniune for improving software reuse and deloment eficiece. And it isa good method to pesent agent- bsed teholoy for soving complex and dstrbuted polems. Firstly, the main content of component techrieand software Agent are analyzed . Then ,t is presented to combine compoent techmipe and software Agent may improve software reuse,flxble and adapter etc, Lastly ,opications by compoent tehnine and soft ware Agent in large- -cale software dvelopment are itroduled .Key words: Component; Software Agent; Software Reuse; Software Architeture1引言将组件技术和软件Agent技术相结合可以有效地提高软在面向对象技术给解决软件危机带来曙光之时,分布件的重用性、灵活性及适应性,有利于大型分布式软件系式网络设计又给软件开发提出了新的要求"。新的分布式统的开发等。计算要求软件能实现跨空间、跨时间、跨设备、跨用户的共享,从而导致了软件在规模、复杂度、功能、性能上的2软件构件极大提高,并能支持异构协同工作、各层次面上的集成.构件(Component) 是可复用的软件组成部分”,可重用。为了实现软件的这种新需求,新的软件开发模式必被用来构造其他软件,是指应用系统中可以明确辩识的构须支持分布式计算、浏览器/服务器结构、模块化和构成成分。它可以是被封装的对象、类.类树、一些功能模件化集成,使软件类似硬件-样,可用不同的标准结构拼块、软件框架(或体系结构).文档、分析件、设计模式装而成。这种软件行业的工业化趋势导致了软件构件的产等。构件分为构件类和构件实例,通过给出构件类参数,生和迅速发展,并成为当今软件工程讨论的焦点技术,不生成实例,通过实例的组装和控制来构造相应的应用软件。仅影响着软件本身的质量和成本,也改变了软件产业的价按多个侧面对构件分类。值链和产业结构。可以说,软件构件技术的出现是对软件(1)开发过程:分析件、设计件.程序件和数据件。开发过程的一次质的变革。软件工程的进步主要靠不断产(2)功能:基础层为基本的数据构件和系统支撑构件;生新的抽象方法来实现复杂系统,如过程抽象、抽象数据中间层为各种通用的中间件;顶层为针对领域的专用构件类型、面向对象技术等,都是使软件远离面向机器, 而向或子系统构件。从粒度上看,通常底层的粒度较少,而顶人们理解世界的方法靠近;而面向对象方法在解决复杂分层的粒度较大。布式现实问题时就非常困难,Agent技术的提出为这类复中国煤化工杂分布式问题的求解找到了办法,它是人工智能与计算机FYHCNM H多个构件案集的组科学新的结合,用于解决复杂分布的现实问题,开发处于合构件。动态的,不确定环境中的、健壮的、大规模的软件系统。(5)开发方式:软件公司以开发软件部件为主要业务,70计兰活2009.2,方数据提供规格化的软件部件。系统集成商则汇总总部件,组合化:构件模型的标准化和构件库系统的标准化。成完成不同功能的软件构件,将自己的核心技术构件化。3.2基于复用构件的软件开发技术由于软件开发模式多种多样,因此复用的方式也不尽3软件构件技术及其开发相同。基于复用构件的软件开发主要分为开发可复用构件3.1软件构件技术和基于可复用构件开发两个生命周期。软件构件技术[I是以面向对象技术为基础,以嵌入后(1)开发可复用构件马上可以使用的即插即用型构件为中心,通过构件的组合软件复用有三个问题,一是必须有可以复用的对象;来建立应用的技术体系,是通过构件组合支持应用的开发二是所复用的对象必须是有用的,三是复用者需要知道如环境和系统的总称。因此,要实现构件技术必须具有下述何去使用被复用的对象。开发可复用性构件是指将过去的几个条件:软件产品改造成或直接开发出可复用的构件),这些构件(1)有标准软件体系结构,保证构件通信协议统- ,应具有较高的质量和较好的可复用价值,可复用构件开发实现同步与异步操作控制,突破本地空间限制,充分利用流程如图1所示。网络环境:(2)构件有标准接口,保证系统可分解成多个功能独需来分析和票城分析立单元,用构件组装而成:|:(3)构件提供版本兼容语言来实现应用系统的扩展和更新。构件技术其主要研究内容:围1可复用构件的开发流程(1)构件获取:指有目的的构件生产和从已有系统中(2)基于可复用构件的软件开发挖掘提出构件;基于可复用构件的软件开发是指在已有的可复用构件(2)构件模型:研究构件的本质特征及构件之间的关的基础上构成应用系统。当完成了可复用构件的开发后,或系。目前,学术界和产业界已提出了许多构件模型,典者说当用有了一定规模的构件库后,就可进行基于可复用型模型有: 3C模型、REBOOT模型、CORBA模型、构件的软件开发。基于可复用构件的软件开发人员的任务OLE/COM模型。不是从头编写程序代码,而是按照领域架构确定本系统需(3)构件描述语言:以构件模型为基础,解决构件的要哪些可用构件,根据本系统的特殊需求对构件进行特殊精确描述、理解及组装问题。对构件的描述可用系统化和化,通过从构件库中选取恰当的构件及其修改以及对本系标准化的用语,也可用自然语言表示。描述语言格式一般统的专用构件开发,然后将领域构架、领域构件和系统专由两部分组成:1)构件类型信息说明,包括构件功能类型、用构件组装成-一个完整的系统,具体开发流程如图2所示。目标对象、源对象、中间对象、系统类型、活动类型和应系块蓄求分析构件华改.用类型等。2)构件的实现说明及配置特征,包括接口信领域构架物贷物件美交息及使用方法说明、核心算法说明、实现语言、开发方法.赞<重运算环境、构件版本号、制作时间、关联构件和参考构件掏件库等。构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支持构件的有效管理。构件的梅架实侧化成用系绕检索技术在很大程度上依赖于构件的表示方法,目前所提专用构件开发构件组装]-[系使费试出的检索方法,根据表示方法的不同可分为以下五类:基图2基于构件的软件系统开发流程于表达式规约表示的规约匹配,基于接口规约表示的签名匹配,基于编目术语的特征轮廓匹配,基于构件行为的采4轧中国煤化工样匹配,基于知识表示的人工智能检索方法。构件复合组4.1装:在构件模型的基础上研究构件的组装机制,包括原代*THCNMH Gnt给出一一个明确的定码级组装和基于构件对象互操作性的运行级组装,标准义形式是十分困难的。CarlHew itt 在DAI研究报告中2002啦刘指出:什么是一个Agent的问题对于基于Agent的计算统的程序设计中,较为常见的是数据驱动或者消息驱动。领域与提出什么是人工智能的问题是同样困难的。在此,数据驱动最常见于管理信息系统,系统所涉及的一切操作我们首先从讨论Agent的性质人手。软件Agent首先应或者动作均是由于数据而引发,系统本身也可以表示为一该满足以下三个条件。个或者多个数据流网络。消息驱动则最常见于W indows(1)它是一个运行于计算机之上的一个程序;操作系统及其应用,系统中的功能或者动作均是基于对消(2)它为用户完成有用的任务,息的监控并激发。而在软件A gent的设计和实现中,则(3)它可以充分聪明。是以任务/目标为基础,软件Agent的动作始于用户的上述三个条件是-一个软件Agent所必须的,但不是需求。充分条件。从本质上看,软件Agent应该具有下述的4.1.3自主可控性 (Autonomous & Contollable)三个本质属性,即交互协作性质、目标/任务驱动性质.软件Agent的自主性是指软件Agent可以在不需要自主可控性质。人为直接干预的条件下进行运作,并具有对其内在状态和4.1.1交互协作性 ( Interactive)动作进行控制的能力。这意味着软件Agent具有知识和任何一个软件Agent必须具有交互协作性质。这里能力。软件Agent所具有的知识-般以知识库的形式表示。所说的交互协作性包含两个方面的内容: Agent与人的.知识库中的知识一般包括Agent自身状态、运行环境状交互协作和Agent与Agent的交互协作。Agent 与人的态、推理知识和动作知识等。在这里,我们将软件Agent交互协作常见于Interface Intelligent Agent。 这类软件的推理机制分为两个部分:即知识和能力。推理机制中的Agent主要通过Agent与人的交互界面,对于用户提出知识包括软件Agent进行推理所需要的状态知识、规则的需求给予反馈,或帮助用户完成复杂、费时的任务。它知识、判断知识等,而能力则指的是软件Agent根据已们一般具有学习功能,即能够模仿用户的操作习惯或者满有的知识和状态进行推理的能力。- -般而言,Agent 大都足用户的兴趣爱好:另一种交互是Agent与Agent的交具有学习能力,即知识库可以变动,能力可以增强或者减互协作。这类经常存在于Multi Agent System中,不同弱。目前,常见的专家系统严格来讲不具有学习能力。关的Agent之间通过协商或者竞争方式达到对问题的求解。于可控性,人们曾经担心,由于软件Agent的学习能力, .-般地,完成Agent与Agent之间的交互协作需要具备是否存在软件Agent可能变得不受控制等问题。软件三个内容: Agent通讯语言、Agent 定义语言和MAS系Agent由于其实现手段和运行硬件环境等因素,可能在某统架构。Agent定义语言和通讯语言最早见于Shoham提些方面变得聪明,如软件Agent可以解决复杂的规划问出的AOP方法。AOP 是相对于00P提出的,两者都是题等,但从软件Agent本质上来讲,软件Agent所具有面向对象的程序设计方法(Agent是一种特殊的对象),都支的知识和能力均基于客观形式的内在状态和外界环境状持消息机制。但两者的不同在于,Agent作为对象本身具态,显然这些状态是可控的。在W oodridge和Jennings有心智状态、信念和能力等,另外AOP的消息是独立于的综述报告中提到,软件Agent的本质属性应该包括反Agent的,对于MAS中的每-一个Agent而言具有相同的应性质(Reactivity)。本文认为:反应性质不能作为软语义,而OOP中的对象是针对每一一个对象而言的,同一件Agent的本质属性。主要原因在于并不是所有的软件个消息对于不同的对象而言可能具有不同的语义。目前Agent都具有实时反应能力,如WebMate等-系列用户关于已经存在了多种Agent的定义语言和通讯语言。在界面,Agent并不能实时对网络资源的变动做出反应。MAS体系结构方面,主要包含两种方式,直接通讯方式基于上面的讨论,我们沿用历史上软件Agent的定和协调通讯方式,这两种方式在Genesereth &Ketchpel义方法,为软件Agent形式化定义如下:软件Agent是的"SoftwareAgent: An Overview ”中有较为详细的运行于计算机上为用户完成有用任务的对象,它必须具有论述。以下本质属性: (1) 交互协作性质: (2) 目标0任务驱动性4.1.2任务/目标驱动性质(Task/Goal Driven)质;(中国煤化工上述条件的对象均可任何一个软件Agent都是为了满足用户完成某一类以称之1HCN M H c还可能具有其他许多有用的任务而设计和实现的。它的基本运行机制为任务性质,如moonlty、veraclly 寺,这与软件Agent的分/目标驱动。这与传统的程序设计思想有所不同:在传类有关。72计国事20092方数据4.2软件Agent技术特点(3) Agent接口的设计。Agent 接口的设计非常关键,软件Agent技术可以看作是软件开发的又一重大突它往往影响系统的性能,这既要考虑Agent间的交互方破,这是因为它不仅能够以一种自然、高效的方式解决传式,又要考虑Agent与非Agent部分的交互方式。统软件业中存在的问题,而且还能为解决目前其他技术难(4)Agent的详细设计和实例化。首先要了解目前已有以解决的问题提供了-一个理想的途径。软件Agent与其的Agent平台能做什么,不能做什么,它们各有什么优他软件技术相比,在解决传统软件业中存在的问题时具有缺点↓然后根据系统的需要选择合适的代理平台;接着进如下优点1041:行详细设计和具体的编码、调试工作,从而实现整个系统。(1)系统的数据、控制、专家知识和资源可以分布存(5)Agent的运行与维护。运行维护基于Agent技术储处理。的应用系统,及时发现和解决实际运行过程中遇到的问题。(2)对Agent组成的系统可以进行自然的描述,有利总之 ,任何系统的设计都要综合应用多方面的因素,根据于各有关人员对软件系统的理解。实际情况而定。(3)Agent软件系统具有灵活性,有利于现有软件的集成。5软件Agent技术的融合(4)具有开放性和复杂性。InternetPIntranet 的发展5.1 软件重用方式的融合对软件的开发提出了新的问题,高度开放的计算机网络是软件重用是指在两次或多次不同的软件开发过程中-一个松散耦合的软件环境,软件生产所面临的难题是系统使用相同或相似软件元素的过程。软件元素包括程序代具有高度的开放性和复杂性,而软件Agent为解决这两码、软件体系结构、测试用例、设计文档、设计过程、需个问题提供了独特的思路:求分析文档甚至领域知识。现阶段的软件重用仍然停留在1)开放性:在以网络( InternetPIntranet) 为中心的“静态软件重用”阶段,主要表现为重用对象是一些静态计算环境中,用户预先无法得知与其交互的各种资源情的,缺乏灵活性的软部件,软件重用活动由开发人员来完况,而Agent软件系统具备这种高度的灵活性和坚固性。成,可重用资源比较有限。文献[7]中提出了“动态软件2)复杂性:问题领域的广泛性、复杂性和不可预测重用”的思想,重用的对象是一些高度自治, 具有特定功性,使得通用应用系统的开发是不可行的,惟一的解决途能和能力的动态软件系统,重用对对象表现出较强的灵活径是开发一些能够解决特定应用领城的专用模块化构件.性,由软件系统动态地完成重用活动,重用的内容是开放而Agent的应激性和主动性使得它既能对环境变化做出的:这种动态软件重用的思想与现阶段软件开发的状况和反应,又能根据目标主动规划自己的行为。趋势是相适应的。在面向构件的编程模式下,程序要素从4.3基于 Agent的软件开发对象变为构件,所重用的是构件,实现的是静态的软件重基于Agent技术的应用开发可以按照下述步骤进行”。用, 在面向Agent的编程模式下,所重用的不仅仅是功能,(1)分析系统的特点,选择合适的实现技术。在进行更重要的是继承了知识,因为每个Agent都具有自己的应用开发时,首先应根据实际情况决定应采取何种技术实只是积累与学习能力,实现的可以是动态的软件重用。基现。一般而言,当应用需要具有跨平台、跨网络、跨地城于Agent的软件重用方法核心事以动态的软件重用为目甚至跨行业的互操作性以及较高的个人化、智能化时可标,用Agent抽象概念和基于Agent 系统方法来概念化、以考虑采用Agent技术。这里并不排除以多种技术实现刻画、描述、设计和构造可重用软部件。随着软件技术的应用系统的可能性。在确定以Agent技术实现应用系统发展,我们应该将Agent重用技术和构件重用技术结合后,应当具体分析应用所涉及的各个对象,决定哪些采用起来,即实现静态软件重用和动态软件重用相融合,为复Agent实现,哪些采用其他方法实现。杂分布式问题的求解获取更高的效率。(2)Agent的功能设计。确定系统采用Agent技术实5.2构件标准规范和软件Agent合成机制的融合现部分的数据和功能。Agent间明确分工后,应当根据各中国煤化工合方式,而Agent自功能确定内部数据。此外,还要考虑Agent的种类:之间YHC NMH G方式,构件模型是移动Agent还是静态Agent。另外,移动Agent的内部描述可重用构件和这些构件之间如何相互作用的规数据应尽可能的少,以减少移动带来的网络负担。范。尽管目前软件构件技术已经在软件重用中呈现出巨(下转第80页)20092能正全73)报警信息的关联关系,选取多长时间内的报警信息进行操实现[U].计算机应用研究,2004, 21 (8): 95- 98.作,满足怎样的条件才能确定关联关系的成立等。●[6]郭帆,余敏,叶继华.一种基于分类和相似度的报警聚合方法[U.计算机应用,2007, 27 (10): 2446 - 2449. .参考文献:[7] 穆成坡,黄厚宽,田盛丰。入侵检测系统报警信息聚[1]R0ESCHM. Snortusermanual2 .6.0 [EB/0L]. http:/ /www . snort.合与关联技术研究综述[J].计算机研究与发展,2006,org/docs/ snort. htmanuals /htmanua_ 261/ ,2006-05-23.43(1):1-8.[2]VALDESA, SINNER K Pbiliti alert Crlaton(C]/Proceedingsg[8] 穆成坡,黄厚寬,田盛丰,林友芳。基于模糊综合of 4th International Symposium on Recent Advance in Intrusion评判的入侵检测报警信息处理[J].计算机研究与发展,Detection (RAD) 2001, Lecture Notes in Computer Sclence2212.2005: 42(10): 1679-1685.Berin: Srigr2erlag, 54-68.作者简介:胡振华,男,山东师范大学,硕士研究生,研究[3] P Ning . Y Cui. An Intrusion Alert Crrelator Based on方向:网络信息安全,入侵检测张永胜,男,山东师范大学,Prerequstes of Itrusions[R]. Submitted for Publication. Technical Report副教授,研究方向:软件工程与数据库技术、Internet/IntranetTR2002-01,Department of Computer Science, North Carlina State工程;逯义军,男,山东师范大学,硕士研究生,研究方向:University, 2002物流管理徐震,男,山东师范大学,硕士研究生,研究方向[4]陶利民, 廖新飞.XML 在入侵检测規則中的应用研究[J].入侵检测。计算机系统应用,2006.(6):250 - 253.收稿日期: 2008-09-22[5]郑挺,胡华平.入侵检测系统报譬信息融合模型的设计与(上接第73页)大的优势,但时至今日,软件构件本身的标准和规范尚未统一和完整性的定义。在实际应用中,目前只用[1]SOAP. Simple 0bject Acces Proto[1] W3C DOCUMENT[2IM.OMG , CORBA,Microsoft/ COM/DCOM/COM+, SUNJAVABEAN/EJB这三种比较成熟的占主导地位的构件[)Miliet Reusing Software lsues and research drectin[J], IEEE技术,三种构件技术都有其优点,为了更好地服务于软件Trans on Software开发利用,这三种技术也正在向紧密结合的方向发展。多ngeeing, 1995,21(6).[3]蔡 梦。软件构件技术[M].西安:西北工业出版社,2002.Agent系统的协作求解问题的能力超过单个Agent,依赖[4]杨芙清.软件重用与软件构件技术[J].电子学报,Agent构造及软件体系结构特性,可将多Agent系统作199(2).为一种新的软件体系结构风格进行研究。就这类系统构件[5]冯冲,江贺,冯静芳.软件体系结构理论与实践[M.北要素一Agent来说,它是一种有别于以往任何系统的构京:人民邮电出版社,2004.件类型。尽量在系统实现中, Agent或多或少与对象、控[6]孙志勇.多Agent系统体系结构及建模方法研究[D].合肥:制过程等传统的体系结构要素联系起来。但是,就Agent合肥工业大学,2004.本身而言,其所用的自主性、智能性、交互性等特性是对[门主映辉,冯德民。大规模软件构架技术[M .北京:科学象所不具备的。将Agent看作一种特殊的构件,利用成出版社,2003.熟的构件技术实现Agent的合成具有现实的意义。[8]李淑平.软件Agent技术研究的现状及展望[J].太原科技,2002,(6):40-41.6结束语[0]樊玮,朱军.软件Agent技术的研究[J].航空计算技软件系统往往由许多组件组合而成,当软件系统逐渐术,1999 ,29(4) :34 - 37.扩大到- -定程度,可能超过入的理解能力时,需要- -种能作者简介:陈晓湘(1968-), 男,湖南涉外经济学院计算机够自动组织组件的方法,而组件技术、软件体系结构、软中国煤化工研究方向:计算机应件Agent技术在重用方面有着很强的互补性,充分利用用技术:Y HCNMHG各|自的优势,实现强有力的结合,为软件开发提供更好的收稿日期: 2008-07-28方法是今后要研究的主要问题。自(80计算聪铮20092h5方数据

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