What is a container in JADE (Java Agent Development Framework)?

91 views Asked by At

I am currently starting to learn and work with JADE for a project at my university. Today I struggled with one terminology in the JADE documentation. It's the word "container". Sorry, if this is a dumb question, but I am a total beginner in this sector.

From the documentation: "1.1 Containers and Platforms Each running instance of the JADE runtime environment is called a Container as it can contain several agents. The set of active containers is called a Platform. A single special Main container must always be active in a platform and all other containers register with it as soon as they start. It follows that the first container to start in a platform must be a main container while all other containers must be “normal” (i.e. non-main) containers and must “be told” where to find (host and port) their main container (i.e. the main container to register with)."

My questions: Have these JADE containers anything in common with containers I know from Docker, Podman, LXC, and so on? Is there anything happening to encapsulate an application to avoid problems with dependencies or increase security? Anything with process trees, namespace, or something like that? Or is it just a structure to couple multiple agents that has nothing in common with docker and Co? I'm totally lost at this point... Thanks for your help!

Best regards, Markus

1

There are 1 answers

0
Dennis Maecker On

First off, I've been struggling at the same point recently.
From what I've understood (please correct me if I'm wrong) is that the containers are indeed different from what you know from Docker etc.
The JADE container are rather serving as an organizational unit for agents.
You can, for instance, start a container and run several agents in it, which can identify and communicate with each other. Another possibility is, as you already mentioned in your question, to start a main container and attach other non main-containers to it within the same JADE platform.
As a further step, you can also start two main containers on different machines, each runinng a separate platform and connect them as remote platforms (e.g, by using the MTP HTTP extension).
So, basically agents are organized in containers which are again organized in platforms.