10.07.2015 Views

pdf - 395 K - Ecole des mines de Nantes

pdf - 395 K - Ecole des mines de Nantes

pdf - 395 K - Ecole des mines de Nantes

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 4: Implementation1 Implementation strategyThe application has been <strong><strong>de</strong>s</strong>igned as a multiagent system. Agents need an infrastructure thatenables them to live and interact. On top of that layer, an agent framework provi<strong><strong>de</strong>s</strong> an agent<strong><strong>de</strong>s</strong>ign and tools for implementing agents. Both layers together can be called the AgentSystem.ApplicationAgent FrameworkAgent InfrastructureAgent SystemImplementation layersTherefore, the Agent System must be obtained first. Generic, mature agent systems alreadyexist and are freely available. However, a constraint on the application is that it runs un<strong>de</strong>r theMicrosoft .Net environment.A good solution for rapid prototyping is to use an already existing platform and tools.However, as .Net is very recent, no agent platform has been found that has been created for.Net. Almost all the existing agent platforms are implemented in Java. A strategy has thus tobe chosen for solving the problem.- A first strategy consists in keeping the Java co<strong>de</strong> and try to run it un<strong>de</strong>r .Net. The J#plugin for VisualStudio makes it possible to execute J# co<strong>de</strong> un<strong>de</strong>r .Net. Microsoft J#is very close to Sun’s Java language, however it is not compatible with features laterthan JDK 1.1.4. Among the agent platforms, only FIPA-OS is provi<strong>de</strong>d as a JDK1.1.xcompliantversion. Although its source co<strong>de</strong> is compatible with J# .Net, it makes useof 7 external Java libraries (e.g. Xerces, Swing, Java2 Collections) that have to beincorporated as source co<strong>de</strong> as well, which sometimes requires to <strong>de</strong>compile byteco<strong>de</strong>(e.g. with JAD [79]). Finally, in addition to <strong>de</strong>compiling problems, it appears that sucha .Net project cannot work because of the absence of RMI in J#.- Another strategy is to convert all the Java co<strong>de</strong> to C# using Microsoft’s JUMP pack.However, the current version of JUMP is Beta 2 at this time and it is not completeenough to provi<strong>de</strong> a satisfactory solution.- A third possibility is to make .Net cooperate with a Java Virtual Machine at run-time.This can be done by using web services and exchanging XML or by wrapping Javaobjects into COM components by the mean of tools like J-Integra [80]. Nonetheless,in addition to being complicated, this solution allows only for the exchange of data orobjects and not the reuse of classes.MSc EMOOSE Thesis – http://www.emn.fr/EMOOSE 38

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!