ebook img

Agent-Oriented Software Engineering: Reflections on Architectures PDF

331 Pages·2014·4.939 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Agent-Oriented Software Engineering: Reflections on Architectures

Onn Shehory · Arnon Sturm Editors Agent-Oriented Software Engineering Refl ections on Architectures, Methodologies, Languages, and Frameworks Agent-Oriented Software Engineering Onn Shehory • Arnon Sturm Editors Agent-Oriented Software Engineering Reflections on Architectures, Methodologies, Languages, and Frameworks 123 Editors OnnShehory ArnonSturm IBMHaifaResearchLaboratory Ben-GurionUniversityoftheNegev Haifa Beer-Sheva Israel Israel ISBN978-3-642-54431-6 ISBN978-3-642-54432-3(eBook) DOI10.1007/978-3-642-54432-3 SpringerBerlinHeidelbergNewYorkDordrechtLondon LibraryofCongressControlNumber:2014940795 ©Springer-VerlagBerlinHeidelberg2014 Thisworkissubjecttocopyright.AllrightsarereservedbythePublisher,whetherthewholeorpartof thematerialisconcerned,specificallytherightsoftranslation,reprinting,reuseofillustrations,recitation, broadcasting,reproductiononmicrofilmsorinanyotherphysicalway,andtransmissionorinformation storageandretrieval,electronicadaptation,computersoftware,orbysimilarordissimilarmethodology nowknownorhereafterdeveloped.Exemptedfromthislegalreservationarebriefexcerptsinconnection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’slocation,initscurrentversion,andpermissionforusemustalwaysbeobtainedfromSpringer. PermissionsforusemaybeobtainedthroughRightsLinkattheCopyrightClearanceCenter.Violations areliabletoprosecutionundertherespectiveCopyrightLaw. Theuseofgeneraldescriptivenames,registerednames,trademarks,servicemarks,etc.inthispublication doesnotimply,evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfromtherelevant protectivelawsandregulationsandthereforefreeforgeneraluse. While the advice and information in this book are believed to be true and accurate at the date of publication,neithertheauthorsnortheeditorsnorthepublishercanacceptanylegalresponsibilityfor anyerrorsoromissionsthatmaybemade.Thepublishermakesnowarranty,expressorimplied,with respecttothematerialcontainedherein. Printedonacid-freepaper SpringerispartofSpringerScience+BusinessMedia(www.springer.com) Foreword In the late 1960s, computing practitioners began to realize that the rapid devel- opments in computer hardware—making computers cheaper, faster, smaller, and morereliable—werenotbeingmatchedby comparabledevelopmentsin software. Onthecontrary,itwasrealizedthatdevelopingcorrect,efficient,reliablesoftware was much harder than had been generally anticipated. The situation was brought intocrispfocusbyastreamofhigh-profile(andhighlyexpensive)softwareproject failures. The term “software crisis” was coined to describe this dismal state of affairs, and thus was born the discipline of software engineering. Describing the software development process as “engineering” made plain the aspirations of the new discipline. The idea was that, ultimately, software development should be an engineering discipline as robust and well understood as other engineering disciplines.Thus,buildingalargesoftwaresystemshouldbenomorechallenging than a civil engineering project such as building a bridge: complex, certainly, but manageableandpredictablenonetheless.Ofcourse,thingshaven’tquiteturnedout thatway,or atleastnotyet.In the45yearssincethe softwarecrisis, we have,for sure,learnedahugeamountaboutthenatureofsoftwareandsoftwaredevelopment, andtheeverydaysoftwareapplicationswetakeforgrantedwouldsurelyberegarded as miraculous by the early software engineering pioneers. But this undoubted successmasksadisappointingtruth:softwareremainshardtodevelop,andsoftware projectfailuresarefarfromuncommon.Poorlydesigned,poorlyimplemented,and error-pronesoftwareisalltoocommon.Thedisciplineofsoftwareengineeringthus remainsasrelevantandcentraltocomputerscienceasitwasin1970. Contemporary software engineering encompasses a wide range of computa- tionalparadigms:proceduralprogramming,object-orientedprogramming,service- oriented programming, aspect-oriented programming, functional programming, logicprogramming,andsoon.Eachdifferentparadigmencouragesustothinkabout computationina differentway,andeachcomeswithits owncollectionofmodels and development techniques and its own design aesthetic. Logic programming, for example, promotes the idea of computation as automated deduction, while service-orientedcomputingadopts the idea of programsas service providers.The multi-agent systems research domain, which emerged largely as a subfield of v vi Foreword artificialintelligenceinthe1990s,isconcernedwithbuildingcomputersystemsthat caneffectivelycooperatewitheachother,andinthe1990s,anumberofresearchers, myselfincluded,begantothinkaboutagentsasasoftwareengineeringparadigm.If thebannercarriedbythelogicprogrammingcommunitycarriestheslogan“compu- tationasdeduction,”thenthebannercarriedbythemulti-agentsystemscommunity mightread“computationascooperation,”orperhaps“computationasinteraction.” Adopting an agent-orientedview of software engineeringimplies conceptualizing computer systems as consisting of collections of interacting (semi)autonomous agents:theagentsareseenasactingindependentlyinpursuitofgoalsdelegatedto thembyusers.Theargumentsinsupportofanagent-orientedsoftwareengineering viewpointarewellknown,andIwon’trehashthemhere:forme,thekeypointisthat themostnaturalwayofconceptualizingcertainsystemsisassocietiesofinteracting, semiautonomousagents.Indeed,inasystemwherecontrolisinherentlydistributed overmultiplestakeholderswithpotentiallycompetinginterests,itishardtoimagine anyotherreasonableconceptualization.Ifyouacceptthis,thenwhatfollowsisthe paradigmofagent-orientedsoftwareengineering. If we hope to put agent-oriented software engineering on a par with other software engineering paradigms, then there are a whole raft of issues we need to address. First, and most fundamentally, we need to develop the right conceptual toolkit:What are the key conceptsin agent-orientedsoftware engineeringthat we use in the analysis and design of systems? These concepts will then underpin methodologies for the analysis and design of multi-agent systems, programming languagesand developmentplatformsfor building and deployingsystems, and so on. There have been substantial developments in all of these areas since agent- orientedsoftwareengineeringwasfirstmootedinthe1990s. Thepresentvolumeisastate-of-the-artcollectionofchaptersonagent-oriented software engineering. The chapters presented herein address all the issues that I mentionedabove,frommethodologiestoprogramminglanguagesanddevelopment platforms.While thisvolumedoesnotmarktheendofthestoryofagent-oriented software development, it does, I think, represent an important milestone in the historyofthefieldandwillsurelypromptmuchfutureresearchanddevelopment. Oxford,UK MichaelWooldridge Spring2014 Preface Agent-based systems have evolved significantly during the last two decades. The development of such systems involves, among others, artificial intelligence, distributed systems, and software engineering.In this book, we focus on the soft- ware engineering facet of agent-based systems, namely, Agent-Oriented Software Engineering(AOSE).Inparticular,thebookconsistsofacollectionofstate-of-the- art studies in the AOSE domain. The chapters are organized in five parts: Part I introducestheAOSEdomain;PartIIreferstothegeneralaspectsofAOSE;PartIII deals with AOSE methodologies; Part IV addresses agent-oriented programming languages; and finally Part V presents studies related to the implementation of agentsandmulti-agentsystems. Part I Introduction ThispartincludesChaps.1,2,and3andintroducesAOSEasdetailedbelow. Chapter 1 introduces the notion of software agents with an emphasis on core design and engineering aspects. It elaborates on agent propertiesand dimensions, emphasizingthenovelconceptsandabstractionsintroducedbyagent-basedsystems tosoftwaresystems’designandimplementation. In Chap. 2, we attempt at defining what AOSE is, make the case for its emergence,andreviewitsevolutionthroughouttheyears.Wealsoprovideinsights intothecurrentstatusoftheAOSEdomainandpointoutfutureresearchdirections. Chapter 3, written by Jörg Müller and Klaus Fischer, examines the practical applicationof multi-agentsystemsandtechnologies.The examinationis based on acomprehensivesurveyofMASdeploymentsandchecksthematurity,ownership, applicationdomains,programminglanguages,andplatformsofthesedeployments. The chapter concludesthat MAS applicationshave been successfully deployedin asignificantnumberofapplicationsandwerefoundtobeusefulinvariousmarket sectors. vii viii Preface Part II Aspects ofAgent-Oriented Software Engineering ThispartincludesChaps.4,5,and6anddiscussesthegeneralaspectsofAOSE. In Chap. 4, we discuss the notion of multi-agent architectures and address the meritsofagentsandmulti-agentsystemsasasoftwarearchitecturestyle. Chapter5,writtenbyJoannaJuziuk,DannyWeyns,andTomHolvoet,provides areviewoftheusageofdesignpatternsthatarerelatedtoMAS.Overall,theauthors foundthatalthoughmanypatternsexist,thesearenotwelldocumented,organized, andlinked.Thus,theauthorsprovideguidelinesfortherequiredeffortsinorderto increasetheusageofsuchpatterns. Chapter 6, written by Marc-Philippe Huget, overviews the landscape of MAS communication as a major means for applying MAS. In particular, the chapter discusses agent communicationlanguages, ontologies, protocols, dialogue games, argumentationsystems,andmultipartycommunication. Part III Agent-Oriented Software Engineering Methodologies ThispartincludesChaps.7,8,9,and10andintroducesAOSEmethodologies. In Chap. 7, we discussagent-orientedmethodologies,their desiredcharacteris- tics, and the extentto which they addressthese properties.In addition, we review researcheffortsrelatedtoAOSEmethodologies. InChap.8,writtenbyLinPadgham,JohnThangarajah,andMichaelWinikoff, the authorsdiscuss Prometheus,a well-established and widely used methodology. Inparticular,theystresstheimportanceoftestingwithinthedevelopmentofMAS andthechallengesthatexistinthisrespect. InChap.9,writtenbyScottDeLoach,theneedforpractical,industrialstrengthof agent-orientedmethodologiesisemphasized.Inthisrespect,thechapterintroduces acustomizablemethodologythatcanbeadaptedandextendedforawidevarietyof uses. In Chap. 10, by Jorge Gomez-Sanz, the evolution of INGENIAS (a MAS methodology) is described. In particular, the chapter emphasizes the engineering aspectofdesigningthemethodologyanditssupportingtools. Part IV Agent-Oriented Programming Languages ThispartincludesChaps.11,12,and13andpresentsagent-orientedprogramming languages. In Chap. 11, by Mehdi Dastani, a survey of the multi-agent programming researchfieldispresented.Inparticular,itdefinestheconceptsandabstractionsused Preface ix inmulti-agentsystemsandthewaytheseareintegratedintotheagentprogramming languagesandframeworks. Chapter12,byKoenHindriksandJürgenDix,introducesaBDI-basedMASpro- gramminglanguagethatincorporatesSEprinciples.Thechapteralsodemonstrates theuseofthelanguageanditssuccesswithinanexplorationgame. Chapter 13, by Olivier Boissier, Rafael Bordini, Jomi Hübner, and Alessandro Ricci, introduces JaCaMo, a platform for multi-agent-oriented programming that incorporatesabstractionsrelatedtoagents,organizations,andenvironments,which areessentialpartsofMASs. Part V Multi-agentSystems Implementation ThispartincludesChaps.14,15,and16andfocusesonmulti-agentimplementation. In Chap. 14, we survey MAS platforms and frameworks that facilitate MAS implementation. We introduce the reader to a variety of tools and analyze their suitabilityforMASimplementationneeds.Theanalysisrevealsthatalthoughmany toolsweredevelopedovertheyears,onlyafewofthosearecontinuallybeingused; ithasalsobecomeapparentthattheevaluationsofthesetoolsareratherlimited. Chapter15,byRenatoLevyandGoutamSatapathy,discussesdesignconsider- ations of very large agent-based systems as applied to an energy distribution use case. They further explore the nuances of the implementation of this use case in CybelePro—an agent infrastructure—and stress the importance of verifying the propertiesofsuchsystems. Chapter16,byBennyLutati,InnaGontmakher,MichaelLando,ArnonNetzer, Amnon Meisels, and Alon Grubshtein, introducesa frameworkfor agent-oriented programming for distributed constraint reasoning. The framework facilitates the programming of such agents, the simulation of such systems, and the evaluation ofthesystem’sperformance. Inthisbook,weaimtoexposethereadertovariousfacetsofAOSE.Wetherefore provide a collection of state-of-the-art studies in this field. We believe that the studies in this book are of interest to researchers, practitioners, and students who areinterestedinexploringtheagentparadigmfordevelopingsoftwaresystems.We notethatalthoughmanyresearcheffortshavebeenmadeinthisarea,therearemany openissuesandchallengesthatneedtobeaddressedandexplored. Beer-Sheva,Israel ArnonSturm Haifa,Israel OnnShehory

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.