CN431258/TPISSN1007130XCOMPUTERENGINEERING&SCIENCE2011336Vol33,No6,2011:1007130X(2011)06007207Agent*AgentOrientedSoftwareDesignPatterns,MAOXinjun,CHANGZhiming(,410073)(SchoolofComputerScience,NationalUniversityofDefenseTechnology,Changsha410073,China):设计模式针对一类在特定上下文中反复出现的问题给出了通用解决方案,模式的提取和重用有助于提高软件开发的效率和质量,其思想和方法已在面向对象软件工程中得到广泛应用和验证我们认为同一问题采用不同的实现技术往往具有不同的设计形态,不同软件开发范型也有其各自不同的设计模式作为一种新颖的软件开发范型,近年来面向Agent软件工程的研究取得了长足进展,如何提高软件Agent技术实用性,发挥其技术潜力,扩大其应用范围成为当前人们关注的焦点本文将模式思想引入到面向Agent软件工程,针对软件Agent技术的特点,从组织结构交互协作和个体Agent体系结构三个视点提出了一组面向Agent的软件设计模式,以支持多Agent系统的设计;并进一步给出了面向Agent设计模式的描述框架,进行了典型设计模式和应用案例的分析Abstract:Designpatterngivesgeneralsolutionstotherepeatedlyoccuringproblemsoncertaincontexts.Ithasbeenwidelyusedinobjectorientedsoftwareengineeringandprovedtobehelpfultoimprovethequalityandefficiencyofsoftwaredevelopment.Webelieve,thesamedesignpatternwillhavevariousdesigndetailswhenadoptingdifferentimplementationtechniques,anddifferentsoftwaredevelopmentparadigmshavetheirdesignpatterns.Asanovelparadigm,agentorientedsoftwareengineeringhasmadegreatprogress.Nowadays,manyfocuseshavebeenputonhowtoimproveitspracticesandtoextenditsapplications.Inthispaper,patternapproachisintegratedwithagentorientedsoftwareengineering.Basedonthecharacteristicsoftheagenttechnology,anumberofagentorienteddesignpatternshavebeenpresentedfrommultipleviewpointssuchasstructure,collaborationandagentarchitecture.Adescriptionframeworkforagentorienteddesignpatternispresented.Ananalysisofthetypicalagentorienteddesignpatternanditsapplicationcaseisconducted.:Agent;设计模式;多Agent系统;面向Agent软件工程Keywords:agent;designpattern;multiagentsystem;agentorientedsoftwareengineeringdoi:10.3969/j.issn.1007130X.2011.06.015:TP311:A72*:20090520;:20091026:(60773018):410073Address:SchoolofComputerScience,NationalUniversityofDefenseTechnology,Changsha,Hunan410073,P.R.China1,Agent,Agent[1],Agent,AgentAgent,Agent,,(MDA)AgentAgent[1]:Agent,,[2],,,AgentAgent,Agent;AgentAgent,AgentAgent,[3],,,Agent,,:(1)Gof23,Agent,,,,,Agent(2)Agent,,,,Agent,,Agent,Agent,2AgentAgent(Autonomous)(Flexible)[4],Agent,,AgentAgent,Agent,AgentAgentAgent,,1Agent1AgentAgentAgentAlexander:,,73[3],,Agent,Agent,,,Agent:(1):Agent:,Agent,Agent,,Agent,Agent,Agent,(2):1,Agent,,::Agent,[4,5]Agent:,Agent,,,:;Agent,,Agent():,;Agent,,(3):;Agent,,(4):,Agent,3AgentAgent,(2),,:(1):Agent,Agent[1],Agent:;;AgentAgent(2):Agent,Agent,Agent,,,Agent,;Agent(3)Agent:Agent,Agent;;Agent742AgentAgentAgent3.1(1):Agent,Agent,Agent,,Agent;,,Agent,,,Agent,Agent,,,Agent,,,(2):AgentAgent,,FIPAACLKQML,Agent,Agent,AgentAgent(3):AgentAgent,,,AgentAgentAgent,,Agent,AgentAgent3.2(1):Agent,AgentAgent,,Agent,Agent,,(2):Agent5.1(3)[6]:,AgentAgentAgent,AgentAgent,AgentAgent,Agent,Agent(4):Agent,,,,,,AgentAgent,:;;,,;,,;;,,,;,,,75(5)[4,7]:,AgentAgent,(),(6):AgentAgent,AgentAgent,Agent,AgentAgentGof3.3Agent(1):AgentAgent:Agent,Agent;AgentAgent,Agent,,Agent(2)[3]:AgentAgent,Agent,(3)[3]:Agent,Agent,,AgentAgent,Agent,Agent4Agent,,,,,3Agent3(),53,,,5.1:[7,8]::Agent:Agent,Agent,Agent,:(1),,,;(2)Agent:AgentAgentIDManagerAgentIDManagerAgentAgent76ID,AgentAgentIDAgenAgent,IDAgent(1):11(2):IDAgent:AgentID;Agent:ID,AgentAgent;Agent:;Agent:(3)(2):Agent:IDManagerAgentID;IDAgent;ID;2:(1):,,(2):Agent,AgentID,Agent(3),Agent,Agent5.2Agent:;;,,;;,:(1);(2)(1),,:,,,,:,,,,,(2),,,CFP,,(),6Agent,,:77AridorY[6]Agent,AgentAgentKolpAgent,Tropos,AgentPairMediation[7],Jorge[9]7Agent,,AgentAgent,Agent,:(1);(2);(3),Agent,Agent,,,,:[1],,,.Agent:[J].,2006,43(10):17821789.[2]SauvageS.AgentOrientedDesignPatterns:ACaseStudy[C]ProcofAAMAS04,2004:14961497.[3]GammaE,HelmR,JohnsonR,etal.DesignPatterns:ElementsofReusableObjectOrientedSoftware[M].AddisonWesley,1995.[4].[M].:,2005.[5],,.Agent[J].,2000,11(3):315321.[6]AridorY,LangeDB.AgentDesignPattern:ElementsofAgentApplicationDesign[C]Procofthe2ndIntlConfonAutonomousAgents(Agents98),1998:108115.[7]KolpM,DoTT,FaulknerS,etal.IntrospectingAgentOrientedDesignPatterns[C]AdvancesinSoftwareEngineeringandKnowledgeEngineering,VolIII,2005:151175.[8].Agent[M].:,2009.[9]GonzalezPalaciosJ,LuckM.AFrameworkforPatternsinGaia:ACaseStudywithOrganisations[C]ProcofAOSE04,2004:124.[10]LindJ.PatternsinAgentOrientedSoftwareEngineering[C]Procofthe3rdIntlWorkshoponAgentOrientedSoftwareEngineering(AOSE2002),2003:4758.[11]HilaireV,KoukamA,RodrigueS.AnAdaptativeAgentArchitectureforHolonicMultiagentSystems[J].ACMTransonAutonomAdaptSyst,2008,3(1):124.[12],.Agent[J].,2002,29(1):8789.[13],,.Agent[J].,2001,28(5):7780.[14]WeynsD,OmiciniA,OdellJ.EnvironmentasaFirstClassAbstractioninMultiagentSystems[C]ProcofAAMAS07,2007:4960.[15]OluyomiA,KarunasekeraS,SterlingL.AComprehensiveViewofAgentOrientedPatterns[J].AutonomousAgentsandMultiAgentSystems,2007,15(3):337377.[16]KolpM,GiorginiP,MylopoulosJ.MultiAgentArchitecturesasOrganizationalStructures[J].AutonomousAgentsandMultiAgentSystems,2006,13(1):325.[17]WooldridgeM.AnIntroductiontoMultiAgentSystems[M].Chichester:JohnWiley&Sons,2002.[18]ZambonelliF,OmiciniA.ChallengesandResearchDirectionsinAgentOrientedSoftwareEngineering[J].Auton