您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Advanced Programming Languages
page1ACOMPARISONANDREVIEWOFJAVABASEDMOBILEAGENTDEVELOPMENTFRAMEWORKSGlennHuebscherDecember4,1997AdvancedProgrammingLanguagesABSTRACTThewidespreadacceptanceofSunMicrosystem’sJava(tm)languageprovidestheessentialgroundworkuponwhichanagentbasedframeworkcanbebuilt.ThreesuchframeworksareIBMAglets(tm)Workbench,GeneralMagicOdyssey(tm)andMitsubishiElectric’sConcordia.Eachframeworkpromotesadifferentconceptinagentprogramming.Theuseofabstractionsvaries,aswellastheactualcapabilitiesprovidedbyeachclasslibrary.Thebenefitsofsomeoftheseabstractionsandcapabilitiesarearguable.Acomparisonofthesedifferencesprovidesageneralpictureoflow-levelagentapplicationimplementationissues.page2INTRODUCTIONTOMOBILEAGENTSAsoftwareagentinageneralsenseisasoftwareprogramcapableofperformingactionsonbehalfofitsuser.Typically,theactionsareperformedwithlittleuserinteractionexceptfordefiningthetaskstheagentistoperform,theproceduresitistofollow,andareviewoftheagent’sperformanceandresults.Inasinglemachineenvironment,theagent’sactivitieswouldincludemachinemaintenance,batchprocessing,dataanalysis,andothersimilartasksinwhichtheinformationrequiredtocompletethetaskislocaltothemachineandimmediatelyavailable.Inanetworkedenvironment,theagentcouldalsoperforminformationqueriesonremotemachinesandusedistantresourcesusingcommonremoteprocedurecallprotocols.However,theinteractionswithremotemachinesusingtypicalnetworkclient/serverarchitecturespresentsseveraldrawbacksparticularlyconcerningtheissuesofnetworkreliabilityandthroughput.MitsubishiElectric’swhitepaperMobileAgentComputing[1]providesfurtherdiscussiononthelimitationsoftheclient/serverarchitecture.Animprovementtotheefficiencyofsoftwareagentactivitiesistoaddthecapabilityofmovement;thusmakingthesoftwareagentamobileagent.Mobilityallowstheagenttoactautonomously,followingitsownsetofinstructionsandtogowherethenecessarydataandresourcesarelocated.Asynchronousoperationwiththebasehostbecomesthenorm,therebyfreeingbasehostresourceswhiletheagentworkselsewhere.Sinceanetworkconnectionisonlyrequiredwhentheagenttravels,thequalityoftheconnectionisoflessimportance.Thispaperexaminesthecapabilitiesandconceptsofthreecommerciallyavailableandpotentiallyviablemobileagentsystemsandtheirassociatedinterfacelanguages.TheselectedsystemsareIBMAglets(tm),GeneralMagic’sOdyssey(tm)andMitsubishiElectric’sConcordia(tm).Severalcommonelementsdistinguishthesesystems:*EachiscompletelyimplementedinJavaasasetofJavaclasslibraries.ThelanguageassociatedwiththesesystemsisJavaextendedwiththemethodsoftheagentclasslibraries.*Theagentsaremobileandcanrelocatethemselvestoanymachinehostingasuitableagentserver.*Anagentcaninteractwithotheragents.*Eachsystemhascommercialbacking.Eachofthesesystemsisavailableforfreedownloadforacademicuse,referencestotheirwebsitesaregivenattheendofthisdocument.page3AGENTSYSTEMARCHITECTUREAtypicaldeployedagentsystemconsistsofanetworkedcollectionofagentservers.EachserverisaJavaruntimewithinwhichexecuteJavaobjectsdefiningtheserver’sservicesandfunctionality.Likewise,anagent’sapplicationcode,whichisalsoaJavaobject,executeswithinthesameJavaruntime.Ahostmachinemayhaveasingleagentserverinstalledonitormultipleagentservers.Locally,throughtheserverapplication’suserinterface,theservercanbemonitoredandmaintained,agentservicesaddedorremovedandagentscreatedanddestroyed.Theserveralsoincludesasetofdaemonsormanagersthatmonitorthemachine’sportsforincomingrequests.Theserequestscanincludemessagestocreateanewagent,sendanagenttoanotherlocation,disableanagent,createacopyofanagent,getinformationabouttheserver,etc.Therequestsmustbephrasedinasuitableprotocol.Severalprotocolshavebeendevelopedandarecurrentlybeingexperimentedwith.Forexample,IBMAgletsuseaprotocolcalledATP(AgentTransferProtocol),whichissimilarinconcepttoHTTP(HypertextTransferProtocol).[2]Essentially,itisacontaineridentifyingaspectsabouttherequest,suchasitssize,itsidentification,andabytearrayoftherequestcontent.Thecontentmaysimplybeamessageoritcanbeaserializedobject,suchastheclassdefinitionsanddataofatravellingagent.Anindustrywidestandardizationofacommonagenttransferprotocolisyettoexistandeachofthesystemsinvestigatedimplementstheirownprotocol.Sinceagentstravel,specializedclassloadersareimplementedtodownloadclasslibrariesfromtheagent’ssource.Anagent’scodewillincludereferencestostandardJavaandagentserverclassesresidentonthehostmachine.However,theagentwillalsohavereferencestoitsowncustomizedclassdefinitions.Theseclassesmayormaynottravelwiththeagentdependingupontheagentsystemimplementation.Thusinsomecases,theclassdefinitionoftheagentmayneedtobedownloadedfromitssourcehostmachine,orinotherwords,itscodebase.Alternatively,allclassdefinitionsmaytravelwiththeagent.Eveninthiscase,optimizationispossiblebyhavingaclassloadercachedownloadedclasses.Whenanewclassisreferenced,theclassloadercanchecktoseeifitwaspreviouslydownloaded.Ifso,thecachedcopycanbeusedinsteadofdownloadingitagain.TheIBMAgletsclassloadersworkinthismanner.[2]Theagletclassloaderattemptstoensurethattheclasseshandledinthismannerarecompatiblebetweenthecach
本文标题:Advanced Programming Languages
链接地址:https://www.777doc.com/doc-4409038 .html