Class JadeGateway


  • public class JadeGateway
    extends Object
    This class provides a simple yet powerful gateway between some non-JADE code and a JADE based multi agent system. It is particularly suited to be used inside a Servlet or a JSP. The class maintains an internal JADE agent (of class GatewayAgent that acts as entry point in the JADE based system. The activation/termination of this agent (and its underlying container) are completely managed by the JadeGateway class and developers do not need to care about them. The suggested way of using the JadeGateway class is creating proper behaviours that perform the commands that the external system must issue to the JADE based system and pass them as parameters to the execute() method. When the execute() method returns the internal agent of the JadeGateway as completely executed the behaviour and outputs (if any) can be retrieved from the behaviour object using ad hoc methods as exemplified below.
    DoSomeActionBehaviour b = new DoSomeActionBehaviour(....);
    JadeGateway.execute(b); // At this point b has been completely executed --> we can get results
    result = b.getResult();

    When using the JadeGateway class as described above null should be passed as first parameter to the init() method.

    Alternatively programmers can

    • create an application-specific class that extends GatewayAgent, that redefine its method processCommand and that is the agent responsible for processing all command-requests
    • initialize this JadeGateway by calling its method init with the name of the class of the application-specific agent
    • finally, in order to request the processing of a Command, you must call the method JadeGateway.execute(Object command). This method will cause the callback of the method processCommand of the application-specific agent. The method execute will return only after the method GatewayAgent.releaseCommand(command) has been called by your application-specific agent.
    NOT available in MIDP
    Version:
    $Date$ $Revision$
    Author:
    Fabio Bellifemine, Telecom Italia LAB
    • Method Detail

      • getProfileProperty

        public static final String getProfileProperty​(String key,
                                                      String defaultValue)
        Searches for the property with the specified key in the JADE Platform Profile. The method returns the default value argument if the property is not found.
        Parameters:
        key - - the property key.
        defaultValue - - a default value
        Returns:
        the value with the specified key value
        See Also:
        Properties.getProperty(String, String)
      • init

        public static final void init​(String agentClassName,
                                      Object[] agentArgs,
                                      Properties jadeProfile)
        Initialize this gateway by passing the proper configuration parameters
        Parameters:
        agentClassName - is the fully-qualified class name of the JadeGateway internal agent. If null is passed the default class will be used.
        agentArgs - is the list of agent arguments
        jadeProfile - the properties that contain all parameters for running JADE (see jade.core.Profile). Typically these properties will have to be read from a JADE configuration file. If jadeProfile is null, then a JADE container attaching to a main on the local host is launched
      • init

        public static final void init​(String agentClassName,
                                      Properties jadeProfile)
      • shutdown

        public static final void shutdown()
        Kill the JADE Container in case it is running.
      • isGatewayActive

        public static final boolean isGatewayActive()
        Return the state of JadeGateway
        Returns:
        true if the container and the gateway agent are active, false otherwise