Introduction to Agent.GUI |
![]() |
![]() |
For those who want to understand our system in more detail we would like to introduce some basic concepts first. Naturally and hopefully this will result in the question, “Can we realize our ides with this system?” or “Is it possible to create a system, that … ?”. We would like to claim and simply say "Yes", which may, however, not always be true at this point in time, but it describes quite well our goal. It is also to understand as an invitation for you to join our group, with your experience or your requirements. What is Agent.GUI good for?It seems to be hard to understand what a “multi-agent system” is or can be, but it, actually, is not. Understanding this concept as an easy way for the division (decomposition) of a problem might help here as a first step. This division results to systems, which are consisting of independent units, which are embedded in an overall system, that we call “Environment”. To be a little more exemplary: Assume an overall system, where 22 entities are trying to get a small thing called ball, then you can imagine the overall system (or “Environment”) as a football field. Here the single player is called “Agent”, which has naturally different qualities and skills - the teams (with all players) can be titled as “Multi-Agent System” (MAS). This results in the fact, that we already have understood the basic concept of “Agents”, “MAS” and “Environment” now. Looking out of our window, we have to realize that most of the real world out there is like this: complex, distributed and depending on the interaction of independent participants. Examples can be found everywhere like in logistics, traffic, crisis management, in the energy market and so on. If you would like to build a system or a simulation, which addresses such (complex) correlations, we think that you are at the right place here. Because agent systems can be complex on their own, we don’t assume an expert from the logistics- or from the energy-domain will in-depth understand the underlying technology. Therefore Agent.GUI addresses especially the usage of distributed Multi-Agent Systems by using and extending the frameworks integrated graphical user interface. Relation between IDE and end-user applicationThe image below shows in which context Agent.GUI can be used for your individual agent project. Starting form the developer’s perspective (blue arrows), which means starting from a project in your IDE, you just have to bind the file AgentGui.jar to your project. Herewith all used resources of Agent.GUI will be also available in your own project, including JADE, Hyperic-SIGAR, JUNG, BATIC and so on. If necessary, you can add further jar-archives to your project as well and start with your developments. The final output of your project should be a jar-file, which can be added later on into Agent.GUI as an external resource. The second important step for using your agent-project with Agent.GUI is to start the end-user application (by executing the AgentGui.jar) and create a new project (see menu: 'Projects' => 'New project'). Doing this, the project window with its four main tabs will appear which allows at first the general project configuration and later on the usage of your agent system by the end user. To not explain everything here, we would like to point to the tab "Configuration" => "Resources". Among other, external resources can be configured there.
Such a bin-folder can just be selected as “External jar resource” as well, which simplifies the switching between IDE and a running agent system for testing and debugging tasks. In order to do such testing by using Agent.GUI, you have to configure a new “Java Application” in the “Run Configurations” of your IDE and set agentgui.core.application.Application as the Main class of your project. Additionally you can set "Program arguments" in the "Arguments"-tab. Here the setting "-project myproject" will directly open your project in the application window. The development of an agent project ends up with the final export of your projects jar-archive and a final configuration of your agent project in the application window of Agent.GUI. This will be described in the next section. Application functionalities for DeveloperThese kinds of functionalities are designed in order to pre-configure the visual application of Agent.GUI, so that developed Multi-Agent systems can be executed and used by end users. In detail, the following configurations can be defined in the main tab ‘Configuration’ of the projects front-end (see also the image gallery below):
Running through several cycles of testing, the above described functionalities will be - naturally - already used during the development phase of an agent project. If this testing and development is over, the agent project can be finalized and packed for end users, which can be done as follows
Your Multi-Agent system can now be used by end users.
Application functionalities for End userFor the end user, the project will appear now as shown in the next image gallery below (1st image). The ‘Configuration’ tab will be removed and only a 'Simulation-Setup' can be done. As the image shows, Agent.GUI provides the possibility to define several setups based on one available MAS-project. That means that the user can setup a number of agents now, which have to do their tasks during one execution. For this purpose agents can be selected out of the list of available agents and be added to the 'Start list' on the left. If the start arguments for an agent were configured before (see the description of the tab 'Agents' in the previous section and image no. 2 in the following image gallery), these start arguments can now be used within a simulation setup. With the selection of an agent, a form will be displayed that allows those configurations. Depending on the selected environment model, the main tab 'Simulation-Setup' will appear with a further tab called 'Simulation-Environment', which enables the user to configure an environment for a simulation setup. The images 4 and 5 are showing, examples of the environments for 'Graph or Network' and the 'Continuous 2D environment model'. The usage of such environment models can be configured in the Resource tab of the Configuration. |