SlideShare a Scribd company logo
Building a Web-bridge for JADE agents 
Florin Stoica 
  
Abstract — This paper presents the architectural design of 
a bridge between agent-oriented applications and web-based 
frontends. For this purpose the state-of-the-art JavaServer 
Faces (JSF) technology is connected with the JADE platform. 
The front-end is based on standard JSF components and the 
application tier is based on JADE agents. A simple web 
application scenario is implemented, to describe the technical 
challenges in developing such a system. 
Keywords — agents, JavaServer Faces, JADE. 
I. INTRODUCTION 
HE work presented in this paper was motivated by the 
recognition that JADE, as one of the most widely 
deployed open source agent systems, should have the 
capability of exposing agent services for consumption by 
Web clients. For this purpose, is provided a general 
method of how can be linked a JADE agent to a 
JavaServer Faces (JSF) component, to allow Web 
Applications to be interfaced with a Multi-Agent System. 
The testing example is inspired by the JADEServlet add-on 
developed by Fabien Gandon [1]. 
A. Jade agents 
JADE is a middleware that facilitates the development 
of multi-agent systems and applications conforming to 
FIPA standards for intelligent agents. It includes: 
· A runtime environment where JADE agents can “live” 
and that must be active on a given host before one or 
more agents can be executed on that host. 
· A library of classes that programmers have to/can use 
(directly or by specializing them) to develop their 
agents. 
· A suite of graphical tools that allows administrating 
and monitoring the activity of running agents. 
The Agent class represents a common base class for 
user defined agents. Therefore, from the programmer’s 
point of view, a JADE agent is simply an instance of a user 
defined Java class that extends the base Agent class, as 
shown in the code below: 
import jade.core.Agent; 
public class MyAgent extends Agent { 
protected void setup() { 
// Printout a welcome message 
System.out.println("Hello!"+ 
"The agent " + getAID().getName()+ 
" is ready!"); 
}} 
Florin Stoica is with the Faculty of Sciences, “Lucian Blaga” 
University of Sibiu, Romania (phone: 40/269/216062; e-mail: 
florin.stoica@ulbsibiu.ro). 
The computational model of an agent is multitask, where 
tasks (or behaviours) are executed concurrently. Each 
functionality/service provided by an agent should be 
implemented as one or more behaviours. A scheduler, 
internal to the base Agent class and hidden to the 
programmer, automatically manages the scheduling of 
behaviours. 
A behaviour represents a task that an agent can carry out 
and is implemented as an object of a class that extends 
jade.core.behaviours.Behaviour. In order to make 
an agent execute the task implemented by a behaviour 
object it is sufficient to add the behaviour to the agent by 
means of the addBehaviour() method of the Agent 
class. 
Each class extending Behaviour must implement the 
action() method, that actually defines the operations to 
be performed when the behaviour is in execution and the 
done() method (returns a boolean value), that specifies 
whether or not a behaviour has completed and have to be 
removed from the pool of behaviours an agent is carrying 
out. Is important to notice that scheduling of behaviours in 
an agent is not pre-emptive (as for Java threads) but 
cooperative. This means that when a behaviour is 
scheduled for execution its action() method is called 
and runs until it returns. 
The path of execution of the agent thread is showed in 
the following pseudocode: 
void AgentLifeCycle() { 
setup(); 
while (true) { 
if (was called doDelete()) { 
takeDown(); 
return; 
} 
Behaviour b = 
getNextActiveBehaviourFromSchedQueue(); 
b. action(); 
if (b.done() returns true) 
removeBehaviourFromSchedQueue(b); 
} 
} 
We can distinguish among three types of behaviour [2]: 
(a). “One-shot” behaviours that complete immediately 
and whose action() method is executed only once. 
The jade.core.behaviours.OneShotBehaviour 
already implements the done() method by returning true 
and can be conveniently extended to implement one-shot 
behaviours. 
public class MyOneShotBehaviour extends 
OneShotBehaviour { 
public void action() { 
// perform operation X 
} 
} 
T
Operation X is performed only once. 
(b). “Cyclic” behaviours that never complete and whose 
action() method executes the same operations each time 
it is called. 
The jade.core.behaviours.CyclicBehaviour 
already implements the done() method by returning false 
and can be conveniently extended to implement cyclic 
behaviours. 
public class MyCyclicBehaviour extends 
CyclicBehaviour { 
public void action() { 
// perform operation Y 
} 
} 
Operation Y is performed repetitively forever (until the 
agent carrying out the above behaviour terminates). 
(c). Generic behaviours that embeds a status and execute 
different operations depending on that status. They 
complete when a given condition is met. 
JADE provides the possibility of combining simple 
behaviours together to create complex behaviours. 
B. Java Server Faces Technology 
JavaServer Faces (JSF) is a new technology for rapidly 
building Web applications using Java technologies, with 
objective to create a standard framework for user interface 
components for web applications. JSF expedites the 
development process by providing the following features: 
standard and extensible user interface (UI) components (a 
rich component model with event handling and component 
rendering), easily configurable page navigation, 
components for input validation, automatic bean 
management, event-handling, easy error handling, 
embedded support for internationalization, and web 
application lifecycle management through a controller 
servlet. 
JavaServer Faces (JSF) is a technology that is being led 
by Sun Microsystems as JSR 127 under the Java 
Community Process (JCP). 
JavaServer Faces technology includes: 
· A set of APIs for representing UI components and 
managing their state, handling events and input 
validation, defining page navigation, and supporting 
internationalization and accessibility. 
· A JavaServer Pages (JSP) custom tag library for 
expressing a JavaServer Faces interface within a JSP 
page. 
A JSF application is just like any other Java technology-based 
web application; it runs in a Java servlet container, 
and contains: 
· JSP pages with JSF components representing the UI. 
· JavaBeans to hold the model data. 
· Application configuration files specifying the JSF 
controller servlet, managed beans, and navigation 
handles. 
JavaServer Faces technology is based on the Model 
View Controller (MVC) architecture for separating logic 
from presentation. This design enables each member of a 
web application development team to focus on his or her 
piece of the development process, and it also provides a 
simple programming model to link the pieces together. 
The example application was developed in Sun Java 
Studio Creator 2, an Integrated Development Environment 
(IDE) for developing state-of-the-art web applications. 
Based on JSF technology, this IDE simplifies writing Java 
code by providing well-defined event handlers for 
incorporating business logic, without requiring developers 
to manage details of transactions, persistence, and other 
complexities. In addition, it supports the web applications 
architecture as defined in the J2EE BluePrints [3]. 
Web applications in the Java Studio Creator 
development environment are supported by a set of 
JavaBean components, called managed beans, which 
provide the logic for initializing and controlling JSF 
components and for managing data across page requests (a 
single round trip between the client and server), user 
sessions, or the application as a whole. 
II. A JSF-JADE BRIDGE 
The following JSF application is deployed in Tomcat 
and is interfaced with a proxy-agent in JADE in order to 
retrieve and display the list of the agents advertising a 
service with the Directory Facilitator (DF) as defined in 
FIPA [4]. We suppose that before running the Tomcat 
server, a default JADE platform has been started on the 
same host, port 1099, with a main container. 
The main page of application, Page1.jsp, contains a 
table component used to display all registered agents 
within JADE platform advertising a service specified by 
the user. 
Each user’s request is linked to a behavior of the Proxy 
Agent in charge of handling the request; each instance of 
the behavior connect to the DF, retrieves the list of 
advertised agents, and update the UI through a data 
provider. This architecture allow the handling of multiple 
requests in parallel (requests are resolved by a multi-behavior 
Proxy Agent) and further customization of the 
behaviors to handle different types of requests in different 
ways. The architecture of the application is showed in Fig. 
1. 
JADE platform 
request 
Figure 1. Architecture of the example. 
Page1.jsp 
JSF Table component 
ObjectArrayDataProvider 
SessionBean1 
theProxyAgent (controller) 
AgentInfo [ ] 
ProxyAgent 
Directory Facilitator (DF)
Business Objects 
The following are the business objects used in the 
application: 
A. AgentInfo 
Encapsulates an agent ID retrieved from the Directory 
Facilitator (DF) agent, consisting from its name and its 
address. 
public class AgentInfo { 
public String name; 
public String address; 
//... 
} 
B. CondVar 
Simple class behaving as a Condition Variable, used in 
synchronization. 
public class CondVar { 
/** Constructor */ 
public CondVar() { 
} 
private boolean value = false; 
synchronized void waitOn() throws 
InterruptedException { 
while(!value) { 
wait(); 
} 
} 
synchronized void signal() { 
value = true; 
notifyAll(); 
} 
synchronized void reset() { 
value = false; 
} 
} 
C. HelloJADE 
Create a new non-main JADE container, then create a 
new instance of Proxy Agent in the StartProxyAgent 
method: 
synchronized public AgentController 
StartProxyAgent() { 
// Create a new non-main container 
try { 
sync.reset(); 
Runtime myJADERunTime = 
Runtime.instance(); 
Profile myJADEProfile = new 
ProfileImpl(); 
AgentContainer myNewContainer = 
myJADERunTime.createAgentContainer( 
myJADEProfile); 
// The sync Object is used to achieve 
// a startup synchronization 
theProxyAgent = 
myNewContainer.createNewAgent( 
"ProxyAgent", 
ProxyAgent.class.getName(), 
new Object[] { sync }); 
theProxyAgent.start(); 
// Wait for synchronization signal 
sync.waitOn(); 
} 
catch(Exception ex) { 
ex.printStackTrace(); 
} 
return theProxyAgent; 
} 
The StartProxyAgent method return an 
AgentController used to communicate with Proxy 
Agent. 
D. ProxyAgent 
Represent the bridge between Web application and 
JADE platform. Has a CyclicBehaviour, activated at 
each user request by launching a new 
OneShotBehaviour to resolve that request. This agent 
declares it accepts messages through the object to agent 
communication channel and dynamically creates behaviors 
(GetDFList) to handle each request that is received: 
public class ProxyAgent extends Agent { 
private CondVar sync; 
/** Constructor */ 
public ProxyAgent() { 
} 
public void setup() { 
// Accept objects through the object- 
// to-agent communication channel, 
// with a maximum size of 100 queued 
// objects 
this.setEnabledO2ACommunication(true, 
100); 
// Register the Proxy Agent with the 
// DF so that there is at least one 
// registered agent 
.... 
// Notify the HelloJADE that the 
// Proxy Agent is ready 
Object[] recvArgs = getArguments(); 
sync = (CondVar)(recvArgs[0]); 
sync.signal(); 
// Add a cyclic behaviour checking 
// the queue of objects 
this.addBehaviour(new 
CyclicBehaviour() { 
public void action() { 
Object recvObj = getO2AObject(); 
if(recvObj != null) { 
myAgent.addBehaviour(new 
GetDFList(myAgent, 
(SessionBean1)recvObj,sync)); 
} 
else block(); 
} 
}); 
} 
} 
The GetDFList retrieve the list of all registered agents 
advertising a service specified by the user. Then, update 
the property agents of SessionBean1 with results, and 
finally notify the Page1 bean the response is ready: 
class GetDFList extends OneShotBehaviour{ 
private AgentInfo[] agents; 
private CondVar sync; 
private SessionBean1 session; 
// Constructor 
public GetDFList(Agent agent, 
SessionBean1 session, 
CondVar sync) { 
super(agent); 
this.session = session; 
this.sync = sync; 
} 
public void action() { 
try {
DFAgentDescription template = new 
DFAgentDescription(); 
ServiceDescription sd = new 
ServiceDescription(); 
// retrieve the service from user 
if (session.getService().equals("all")) 
sd.setType(null); 
else 
sd.setType(session.getService()); 
template.addServices(sd); 
DFAgentDescription[] result = 
DFService.search(myAgent, template); 
if (result.length > 0) { 
String agentID; 
int p1, p2; 
agents = (AgentInfo []) 
Array.newInstance(AgentInfo.class, 
result.length); 
for(int count=0;count<result.length; 
count++) { 
agentID = 
result[count].getName().toString(); 
p1 =agentID.indexOf(":name"); 
p2 =agentID.indexOf(":addresses") ; 
Array.set(agents, count, 
new AgentInfo( 
agentID.substring(p1+5, p2-1), 
agentID.substring(p2+11, 
agentID.length()-1))); 
} 
} 
else { 
agents = (AgentInfo []) 
Array.newInstance(AgentInfo.class, 
1); 
Array.set(agents, 0, 
new AgentInfo("not found", 
"not found")); 
} 
session.setAgents(agents); 
sync.signal(); 
} 
catch(Exception ex) 
{ex.printStackTrace(); } 
} 
} 
In the following is explained the code of the standard 
managed beans. The method init() of the 
SessionBean1 contains the code for creating a new non-main 
JADE container and launching the Proxy Agent: 
sync = new CondVar(); 
if (theProxyAgent == null) 
theProxyAgent = new 
HelloJADE(sync).StartProxyAgent(); 
The sync object is passed to Proxy Agent and used at 
startup for waiting the complete initialization of the Proxy 
Agent and later for synchronization between user requests 
and associated Proxy Agent tasks. 
An user request is performed through selection of button 
labeled Find (with id button1): 
public String button1_action() { 
try { 
AgentController t = 
getSessionBean1().getTheProxyAgent(); 
CondVar sync = 
getSessionBean1().getSync(); 
sync.reset(); 
t.putO2AObject(getSessionBean1(), 
AgentController.ASYNC); 
sync.waitOn(); 
AgentInfo [] agents = 
getSessionBean1().getAgents(); 
// refresh table component 
getObjectArrayDataProvider1().setArray( 
agents); 
} 
catch(Exception ex) { 
ex.printStackTrace(); 
} 
return null; 
} 
The objectArrayDataProvider1 wraps the 
JavaBean component AgentInfo[] agents (property of 
SessionBean1) through its array property, which we can 
set in the Creator Properties window. In Fig. 2 is showed 
the running example discovering all “live” registered 
agents in the JADE platform depicted in Fig. 3. 
Figure 2. A JSF table component linked to a JADE agent 
III. CONCLUSION 
Data providers can be used to access the JavaBean 
components both in the Java page bean code and in the 
property binding dialogs of the Java Studio Creator IDE. 
The Web-bridge for JADE agents is based on data 
providers wrapping JavaBeans components which are 
updatable by JADE agents through the object to agent 
communication channel between agent controllers and 
JADE agents. Binding data provideres to JSF components, 
these are linked in fact to JADE agents. 
REFERENCES 
[1] Fabien Gandon, “Linking a servlet to a JADE agent”, JADE add-on, 
http://jade.tilab.com 
[2] F. Bellifemine, G. Caire, T. Trucco, G. Rimassa, JADE 
programmer's guide, http://jade.tilab.com 
[3] Java Studio Creator Field Guide, 2nd ed., Sun Microsystems 
(currently in development), 
http://developers.sun.com/prodtech/javatools/jscreator/learning/ 
bookshelf/index.html 
[4] The Foundation for Intelligent Physical Agents (FIPA), 
www.fipa.org 
[5] D. Geary, C. Horstmann, Core JavaServer Faces, Prentice Hall, 
2004, ch. 1-5.
Figure 3. A snapshot of the JADE platform with three registered agents

More Related Content

What's hot

Jsf presentation
Jsf presentationJsf presentation
Jsf presentation
Ashish Gupta
 
A Complete Tour of JSF 2
A Complete Tour of JSF 2A Complete Tour of JSF 2
A Complete Tour of JSF 2
Jim Driscoll
 
TY.BSc.IT Java QB U4
TY.BSc.IT Java QB U4TY.BSc.IT Java QB U4
TY.BSc.IT Java QB U4
Lokesh Singrol
 
TY.BSc.IT Java QB U3
TY.BSc.IT Java QB U3TY.BSc.IT Java QB U3
TY.BSc.IT Java QB U3
Lokesh Singrol
 
Introduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring MvcIntroduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
Jsf
JsfJsf
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Kazuyuki Kawamura
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
Tuna Tore
 
Spring Portlet MVC
Spring Portlet MVCSpring Portlet MVC
Spring Portlet MVC
John Lewis
 
JSF Component Behaviors
JSF Component BehaviorsJSF Component Behaviors
JSF Component Behaviors
Andy Schwartz
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
zeeshanhanif
 
Sun JSF Presentation
Sun JSF PresentationSun JSF Presentation
Sun JSF PresentationGaurav Dighe
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
Guy Nir
 
EJB3 Advance Features
EJB3 Advance FeaturesEJB3 Advance Features
EJB3 Advance Features
Emprovise
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
yuvalb
 

What's hot (20)

Jsf presentation
Jsf presentationJsf presentation
Jsf presentation
 
A Complete Tour of JSF 2
A Complete Tour of JSF 2A Complete Tour of JSF 2
A Complete Tour of JSF 2
 
TY.BSc.IT Java QB U4
TY.BSc.IT Java QB U4TY.BSc.IT Java QB U4
TY.BSc.IT Java QB U4
 
TY.BSc.IT Java QB U3
TY.BSc.IT Java QB U3TY.BSc.IT Java QB U3
TY.BSc.IT Java QB U3
 
Jsf intro
Jsf introJsf intro
Jsf intro
 
Exploring Maven SVN GIT
Exploring Maven SVN GITExploring Maven SVN GIT
Exploring Maven SVN GIT
 
Introduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring MvcIntroduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring Mvc
 
Jsf
JsfJsf
Jsf
 
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
 
Working with Servlets
Working with ServletsWorking with Servlets
Working with Servlets
 
Spring Portlet MVC
Spring Portlet MVCSpring Portlet MVC
Spring Portlet MVC
 
JSF Component Behaviors
JSF Component BehaviorsJSF Component Behaviors
JSF Component Behaviors
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
Sun JSF Presentation
Sun JSF PresentationSun JSF Presentation
Sun JSF Presentation
 
Spring MVC 3.0 Framework (sesson_2)
Spring MVC 3.0 Framework (sesson_2)Spring MVC 3.0 Framework (sesson_2)
Spring MVC 3.0 Framework (sesson_2)
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
 
EJB3 Advance Features
EJB3 Advance FeaturesEJB3 Advance Features
EJB3 Advance Features
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 

Viewers also liked

A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning AutomataA new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
infopapers
 
Generic Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their OptimizationGeneric Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their Optimization
infopapers
 
Intelligent agents in ontology-based applications
Intelligent agents in ontology-based applicationsIntelligent agents in ontology-based applications
Intelligent agents in ontology-based applications
infopapers
 
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis ModelUsing the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
infopapers
 
A general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernelsA general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernels
infopapers
 
A new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning AutomataA new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning Automata
infopapers
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checker
infopapers
 
Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...
infopapers
 
An Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine LanguageAn Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine Language
infopapers
 
Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Services
infopapers
 
An AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control SystemAn AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control System
infopapers
 
A new co-mutation genetic operator
A new co-mutation genetic operatorA new co-mutation genetic operator
A new co-mutation genetic operator
infopapers
 
Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applications
infopapers
 
Algebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model CheckerAlgebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model Checker
infopapers
 
Modeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI AgentModeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI Agent
infopapers
 
Implementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra conceptsImplementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra concepts
infopapers
 
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
infopapers
 
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithmOptimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
infopapers
 

Viewers also liked (18)

A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning AutomataA new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
A new Evolutionary Reinforcement Scheme for Stochastic Learning Automata
 
Generic Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their OptimizationGeneric Reinforcement Schemes and Their Optimization
Generic Reinforcement Schemes and Their Optimization
 
Intelligent agents in ontology-based applications
Intelligent agents in ontology-based applicationsIntelligent agents in ontology-based applications
Intelligent agents in ontology-based applications
 
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis ModelUsing the Breeder GA to Optimize a Multiple Regression Analysis Model
Using the Breeder GA to Optimize a Multiple Regression Analysis Model
 
A general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernelsA general frame for building optimal multiple SVM kernels
A general frame for building optimal multiple SVM kernels
 
A new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning AutomataA new Reinforcement Scheme for Stochastic Learning Automata
A new Reinforcement Scheme for Stochastic Learning Automata
 
A Distributed CTL Model Checker
A Distributed CTL Model CheckerA Distributed CTL Model Checker
A Distributed CTL Model Checker
 
Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...Using genetic algorithms and simulation as decision support in marketing stra...
Using genetic algorithms and simulation as decision support in marketing stra...
 
An Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine LanguageAn Executable Actor Model in Abstract State Machine Language
An Executable Actor Model in Abstract State Machine Language
 
Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Services
 
An AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control SystemAn AsmL model for an Intelligent Vehicle Control System
An AsmL model for an Intelligent Vehicle Control System
 
A new co-mutation genetic operator
A new co-mutation genetic operatorA new co-mutation genetic operator
A new co-mutation genetic operator
 
Deliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE ApplicationsDeliver Dynamic and Interactive Web Content in J2EE Applications
Deliver Dynamic and Interactive Web Content in J2EE Applications
 
Algebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model CheckerAlgebraic Approach to Implementing an ATL Model Checker
Algebraic Approach to Implementing an ATL Model Checker
 
Modeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI AgentModeling the Broker Behavior Using a BDI Agent
Modeling the Broker Behavior Using a BDI Agent
 
Implementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra conceptsImplementing an ATL Model Checker tool using Relational Algebra concepts
Implementing an ATL Model Checker tool using Relational Algebra concepts
 
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
Optimization of Complex SVM Kernels Using a Hybrid Algorithm Based on Wasp Be...
 
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithmOptimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
Optimizing a New Nonlinear Reinforcement Scheme with Breeder genetic algorithm
 

Similar to Building a Web-bridge for JADE agents

Jsf
JsfJsf
An Oracle ADF Introduction
An Oracle ADF IntroductionAn Oracle ADF Introduction
An Oracle ADF Introduction
Jean-Marc Desvaux
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
Jsf 2
Jsf 2Jsf 2
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBCJ2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
ChaithraCSHirematt
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
Prashant Seth
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
Hamid Ghorbani
 
Ijaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguruIjaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguru
ijaprr
 
Ijaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguruIjaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguru
ijaprr_editor
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
Alexander Zamkovyi
 
Mt ADF 001 adf-course outlines
Mt ADF 001 adf-course outlinesMt ADF 001 adf-course outlines
Mt ADF 001 adf-course outlines
Abbas Qureshi
 
Struts 1
Struts 1Struts 1
Struts 1
Lalit Garg
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
BG Java EE Course
 
Effective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsEffective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjects
Srikanth Shenoy
 
2014_report
2014_report2014_report
2014_reportK SEZER
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
Sandeep Rawat
 

Similar to Building a Web-bridge for JADE agents (20)

Jsf
JsfJsf
Jsf
 
An Oracle ADF Introduction
An Oracle ADF IntroductionAn Oracle ADF Introduction
An Oracle ADF Introduction
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Jsf 2
Jsf 2Jsf 2
Jsf 2
 
MVC
MVCMVC
MVC
 
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBCJ2EE Notes JDBC database Connectiviy and Programs related to JDBC
J2EE Notes JDBC database Connectiviy and Programs related to JDBC
 
Struts & spring framework issues
Struts & spring framework issuesStruts & spring framework issues
Struts & spring framework issues
 
Design patterns
Design patternsDesign patterns
Design patterns
 
KaranDeepSinghCV
KaranDeepSinghCVKaranDeepSinghCV
KaranDeepSinghCV
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Ijaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguruIjaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguru
 
Ijaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguruIjaprr vol1-3-10-14prajguru
Ijaprr vol1-3-10-14prajguru
 
Struts Ppt 1
Struts Ppt 1Struts Ppt 1
Struts Ppt 1
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
Mt ADF 001 adf-course outlines
Mt ADF 001 adf-course outlinesMt ADF 001 adf-course outlines
Mt ADF 001 adf-course outlines
 
Struts 1
Struts 1Struts 1
Struts 1
 
Java Server Faces (JSF) - Basics
Java Server Faces (JSF) - BasicsJava Server Faces (JSF) - Basics
Java Server Faces (JSF) - Basics
 
Effective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsEffective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjects
 
2014_report
2014_report2014_report
2014_report
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
 

More from infopapers

A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Tool
infopapers
 
CTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR ToolsCTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR Tools
infopapers
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specifications
infopapers
 
An evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernelsAn evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernels
infopapers
 
Evaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernelsEvaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernels
infopapers
 
Interoperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web ServicesInteroperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web Services
infopapers
 
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning SystemsUsing Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
infopapers
 
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
infopapers
 
An executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control SystemAn executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control System
infopapers
 
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning AutomataA New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
infopapers
 
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
infopapers
 

More from infopapers (11)

A New Model Checking Tool
A New Model Checking ToolA New Model Checking Tool
A New Model Checking Tool
 
CTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR ToolsCTL Model Update Implementation Using ANTLR Tools
CTL Model Update Implementation Using ANTLR Tools
 
Generating JADE agents from SDL specifications
Generating JADE agents from SDL specificationsGenerating JADE agents from SDL specifications
Generating JADE agents from SDL specifications
 
An evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernelsAn evolutionary method for constructing complex SVM kernels
An evolutionary method for constructing complex SVM kernels
 
Evaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernelsEvaluation of a hybrid method for constructing multiple SVM kernels
Evaluation of a hybrid method for constructing multiple SVM kernels
 
Interoperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web ServicesInteroperability issues in accessing databases through Web Services
Interoperability issues in accessing databases through Web Services
 
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning SystemsUsing Ontology in Electronic Evaluation for Personalization of eLearning Systems
Using Ontology in Electronic Evaluation for Personalization of eLearning Systems
 
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
Models for a Multi-Agent System Based on Wasp-Like Behaviour for Distributed ...
 
An executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control SystemAn executable model for an Intelligent Vehicle Control System
An executable model for an Intelligent Vehicle Control System
 
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning AutomataA New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
A New Nonlinear Reinforcement Scheme for Stochastic Learning Automata
 
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
Automatic control based on Wasp Behavioral Model and Stochastic Learning Auto...
 

Recently uploaded

Structural Classification Of Protein (SCOP)
Structural Classification Of Protein  (SCOP)Structural Classification Of Protein  (SCOP)
Structural Classification Of Protein (SCOP)
aishnasrivastava
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
anitaento25
 
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Ana Luísa Pinho
 
In silico drugs analogue design: novobiocin analogues.pptx
In silico drugs analogue design: novobiocin analogues.pptxIn silico drugs analogue design: novobiocin analogues.pptx
In silico drugs analogue design: novobiocin analogues.pptx
AlaminAfendy1
 
ESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptxESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptx
muralinath2
 
platelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptxplatelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptx
muralinath2
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerin
ossaicprecious19
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
Health Advances
 
SCHIZOPHRENIA Disorder/ Brain Disorder.pdf
SCHIZOPHRENIA Disorder/ Brain Disorder.pdfSCHIZOPHRENIA Disorder/ Brain Disorder.pdf
SCHIZOPHRENIA Disorder/ Brain Disorder.pdf
SELF-EXPLANATORY
 
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptxBody fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
muralinath2
 
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Sérgio Sacani
 
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Sérgio Sacani
 
filosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptxfilosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptx
IvanMallco1
 
role of pramana in research.pptx in science
role of pramana in research.pptx in sciencerole of pramana in research.pptx in science
role of pramana in research.pptx in science
sonaliswain16
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
NathanBaughman3
 
GBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram StainingGBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram Staining
Areesha Ahmad
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate Pathway
AADYARAJPANDEY1
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
moosaasad1975
 
general properties of oerganologametal.ppt
general properties of oerganologametal.pptgeneral properties of oerganologametal.ppt
general properties of oerganologametal.ppt
IqrimaNabilatulhusni
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
Columbia Weather Systems
 

Recently uploaded (20)

Structural Classification Of Protein (SCOP)
Structural Classification Of Protein  (SCOP)Structural Classification Of Protein  (SCOP)
Structural Classification Of Protein (SCOP)
 
insect taxonomy importance systematics and classification
insect taxonomy importance systematics and classificationinsect taxonomy importance systematics and classification
insect taxonomy importance systematics and classification
 
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
Deep Behavioral Phenotyping in Systems Neuroscience for Functional Atlasing a...
 
In silico drugs analogue design: novobiocin analogues.pptx
In silico drugs analogue design: novobiocin analogues.pptxIn silico drugs analogue design: novobiocin analogues.pptx
In silico drugs analogue design: novobiocin analogues.pptx
 
ESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptxESR_factors_affect-clinic significance-Pathysiology.pptx
ESR_factors_affect-clinic significance-Pathysiology.pptx
 
platelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptxplatelets- lifespan -Clot retraction-disorders.pptx
platelets- lifespan -Clot retraction-disorders.pptx
 
Lab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerinLab report on liquid viscosity of glycerin
Lab report on liquid viscosity of glycerin
 
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...The ASGCT Annual Meeting was packed with exciting progress in the field advan...
The ASGCT Annual Meeting was packed with exciting progress in the field advan...
 
SCHIZOPHRENIA Disorder/ Brain Disorder.pdf
SCHIZOPHRENIA Disorder/ Brain Disorder.pdfSCHIZOPHRENIA Disorder/ Brain Disorder.pdf
SCHIZOPHRENIA Disorder/ Brain Disorder.pdf
 
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptxBody fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
Body fluids_tonicity_dehydration_hypovolemia_hypervolemia.pptx
 
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
Observation of Io’s Resurfacing via Plume Deposition Using Ground-based Adapt...
 
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...
 
filosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptxfilosofia boliviana introducción jsjdjd.pptx
filosofia boliviana introducción jsjdjd.pptx
 
role of pramana in research.pptx in science
role of pramana in research.pptx in sciencerole of pramana in research.pptx in science
role of pramana in research.pptx in science
 
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
Astronomy Update- Curiosity’s exploration of Mars _ Local Briefs _ leadertele...
 
GBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram StainingGBSN- Microbiology (Lab 3) Gram Staining
GBSN- Microbiology (Lab 3) Gram Staining
 
Cancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate PathwayCancer cell metabolism: special Reference to Lactate Pathway
Cancer cell metabolism: special Reference to Lactate Pathway
 
What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.What is greenhouse gasses and how many gasses are there to affect the Earth.
What is greenhouse gasses and how many gasses are there to affect the Earth.
 
general properties of oerganologametal.ppt
general properties of oerganologametal.pptgeneral properties of oerganologametal.ppt
general properties of oerganologametal.ppt
 
Orion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWSOrion Air Quality Monitoring Systems - CWS
Orion Air Quality Monitoring Systems - CWS
 

Building a Web-bridge for JADE agents

  • 1. Building a Web-bridge for JADE agents Florin Stoica Abstract — This paper presents the architectural design of a bridge between agent-oriented applications and web-based frontends. For this purpose the state-of-the-art JavaServer Faces (JSF) technology is connected with the JADE platform. The front-end is based on standard JSF components and the application tier is based on JADE agents. A simple web application scenario is implemented, to describe the technical challenges in developing such a system. Keywords — agents, JavaServer Faces, JADE. I. INTRODUCTION HE work presented in this paper was motivated by the recognition that JADE, as one of the most widely deployed open source agent systems, should have the capability of exposing agent services for consumption by Web clients. For this purpose, is provided a general method of how can be linked a JADE agent to a JavaServer Faces (JSF) component, to allow Web Applications to be interfaced with a Multi-Agent System. The testing example is inspired by the JADEServlet add-on developed by Fabien Gandon [1]. A. Jade agents JADE is a middleware that facilitates the development of multi-agent systems and applications conforming to FIPA standards for intelligent agents. It includes: · A runtime environment where JADE agents can “live” and that must be active on a given host before one or more agents can be executed on that host. · A library of classes that programmers have to/can use (directly or by specializing them) to develop their agents. · A suite of graphical tools that allows administrating and monitoring the activity of running agents. The Agent class represents a common base class for user defined agents. Therefore, from the programmer’s point of view, a JADE agent is simply an instance of a user defined Java class that extends the base Agent class, as shown in the code below: import jade.core.Agent; public class MyAgent extends Agent { protected void setup() { // Printout a welcome message System.out.println("Hello!"+ "The agent " + getAID().getName()+ " is ready!"); }} Florin Stoica is with the Faculty of Sciences, “Lucian Blaga” University of Sibiu, Romania (phone: 40/269/216062; e-mail: florin.stoica@ulbsibiu.ro). The computational model of an agent is multitask, where tasks (or behaviours) are executed concurrently. Each functionality/service provided by an agent should be implemented as one or more behaviours. A scheduler, internal to the base Agent class and hidden to the programmer, automatically manages the scheduling of behaviours. A behaviour represents a task that an agent can carry out and is implemented as an object of a class that extends jade.core.behaviours.Behaviour. In order to make an agent execute the task implemented by a behaviour object it is sufficient to add the behaviour to the agent by means of the addBehaviour() method of the Agent class. Each class extending Behaviour must implement the action() method, that actually defines the operations to be performed when the behaviour is in execution and the done() method (returns a boolean value), that specifies whether or not a behaviour has completed and have to be removed from the pool of behaviours an agent is carrying out. Is important to notice that scheduling of behaviours in an agent is not pre-emptive (as for Java threads) but cooperative. This means that when a behaviour is scheduled for execution its action() method is called and runs until it returns. The path of execution of the agent thread is showed in the following pseudocode: void AgentLifeCycle() { setup(); while (true) { if (was called doDelete()) { takeDown(); return; } Behaviour b = getNextActiveBehaviourFromSchedQueue(); b. action(); if (b.done() returns true) removeBehaviourFromSchedQueue(b); } } We can distinguish among three types of behaviour [2]: (a). “One-shot” behaviours that complete immediately and whose action() method is executed only once. The jade.core.behaviours.OneShotBehaviour already implements the done() method by returning true and can be conveniently extended to implement one-shot behaviours. public class MyOneShotBehaviour extends OneShotBehaviour { public void action() { // perform operation X } } T
  • 2. Operation X is performed only once. (b). “Cyclic” behaviours that never complete and whose action() method executes the same operations each time it is called. The jade.core.behaviours.CyclicBehaviour already implements the done() method by returning false and can be conveniently extended to implement cyclic behaviours. public class MyCyclicBehaviour extends CyclicBehaviour { public void action() { // perform operation Y } } Operation Y is performed repetitively forever (until the agent carrying out the above behaviour terminates). (c). Generic behaviours that embeds a status and execute different operations depending on that status. They complete when a given condition is met. JADE provides the possibility of combining simple behaviours together to create complex behaviours. B. Java Server Faces Technology JavaServer Faces (JSF) is a new technology for rapidly building Web applications using Java technologies, with objective to create a standard framework for user interface components for web applications. JSF expedites the development process by providing the following features: standard and extensible user interface (UI) components (a rich component model with event handling and component rendering), easily configurable page navigation, components for input validation, automatic bean management, event-handling, easy error handling, embedded support for internationalization, and web application lifecycle management through a controller servlet. JavaServer Faces (JSF) is a technology that is being led by Sun Microsystems as JSR 127 under the Java Community Process (JCP). JavaServer Faces technology includes: · A set of APIs for representing UI components and managing their state, handling events and input validation, defining page navigation, and supporting internationalization and accessibility. · A JavaServer Pages (JSP) custom tag library for expressing a JavaServer Faces interface within a JSP page. A JSF application is just like any other Java technology-based web application; it runs in a Java servlet container, and contains: · JSP pages with JSF components representing the UI. · JavaBeans to hold the model data. · Application configuration files specifying the JSF controller servlet, managed beans, and navigation handles. JavaServer Faces technology is based on the Model View Controller (MVC) architecture for separating logic from presentation. This design enables each member of a web application development team to focus on his or her piece of the development process, and it also provides a simple programming model to link the pieces together. The example application was developed in Sun Java Studio Creator 2, an Integrated Development Environment (IDE) for developing state-of-the-art web applications. Based on JSF technology, this IDE simplifies writing Java code by providing well-defined event handlers for incorporating business logic, without requiring developers to manage details of transactions, persistence, and other complexities. In addition, it supports the web applications architecture as defined in the J2EE BluePrints [3]. Web applications in the Java Studio Creator development environment are supported by a set of JavaBean components, called managed beans, which provide the logic for initializing and controlling JSF components and for managing data across page requests (a single round trip between the client and server), user sessions, or the application as a whole. II. A JSF-JADE BRIDGE The following JSF application is deployed in Tomcat and is interfaced with a proxy-agent in JADE in order to retrieve and display the list of the agents advertising a service with the Directory Facilitator (DF) as defined in FIPA [4]. We suppose that before running the Tomcat server, a default JADE platform has been started on the same host, port 1099, with a main container. The main page of application, Page1.jsp, contains a table component used to display all registered agents within JADE platform advertising a service specified by the user. Each user’s request is linked to a behavior of the Proxy Agent in charge of handling the request; each instance of the behavior connect to the DF, retrieves the list of advertised agents, and update the UI through a data provider. This architecture allow the handling of multiple requests in parallel (requests are resolved by a multi-behavior Proxy Agent) and further customization of the behaviors to handle different types of requests in different ways. The architecture of the application is showed in Fig. 1. JADE platform request Figure 1. Architecture of the example. Page1.jsp JSF Table component ObjectArrayDataProvider SessionBean1 theProxyAgent (controller) AgentInfo [ ] ProxyAgent Directory Facilitator (DF)
  • 3. Business Objects The following are the business objects used in the application: A. AgentInfo Encapsulates an agent ID retrieved from the Directory Facilitator (DF) agent, consisting from its name and its address. public class AgentInfo { public String name; public String address; //... } B. CondVar Simple class behaving as a Condition Variable, used in synchronization. public class CondVar { /** Constructor */ public CondVar() { } private boolean value = false; synchronized void waitOn() throws InterruptedException { while(!value) { wait(); } } synchronized void signal() { value = true; notifyAll(); } synchronized void reset() { value = false; } } C. HelloJADE Create a new non-main JADE container, then create a new instance of Proxy Agent in the StartProxyAgent method: synchronized public AgentController StartProxyAgent() { // Create a new non-main container try { sync.reset(); Runtime myJADERunTime = Runtime.instance(); Profile myJADEProfile = new ProfileImpl(); AgentContainer myNewContainer = myJADERunTime.createAgentContainer( myJADEProfile); // The sync Object is used to achieve // a startup synchronization theProxyAgent = myNewContainer.createNewAgent( "ProxyAgent", ProxyAgent.class.getName(), new Object[] { sync }); theProxyAgent.start(); // Wait for synchronization signal sync.waitOn(); } catch(Exception ex) { ex.printStackTrace(); } return theProxyAgent; } The StartProxyAgent method return an AgentController used to communicate with Proxy Agent. D. ProxyAgent Represent the bridge between Web application and JADE platform. Has a CyclicBehaviour, activated at each user request by launching a new OneShotBehaviour to resolve that request. This agent declares it accepts messages through the object to agent communication channel and dynamically creates behaviors (GetDFList) to handle each request that is received: public class ProxyAgent extends Agent { private CondVar sync; /** Constructor */ public ProxyAgent() { } public void setup() { // Accept objects through the object- // to-agent communication channel, // with a maximum size of 100 queued // objects this.setEnabledO2ACommunication(true, 100); // Register the Proxy Agent with the // DF so that there is at least one // registered agent .... // Notify the HelloJADE that the // Proxy Agent is ready Object[] recvArgs = getArguments(); sync = (CondVar)(recvArgs[0]); sync.signal(); // Add a cyclic behaviour checking // the queue of objects this.addBehaviour(new CyclicBehaviour() { public void action() { Object recvObj = getO2AObject(); if(recvObj != null) { myAgent.addBehaviour(new GetDFList(myAgent, (SessionBean1)recvObj,sync)); } else block(); } }); } } The GetDFList retrieve the list of all registered agents advertising a service specified by the user. Then, update the property agents of SessionBean1 with results, and finally notify the Page1 bean the response is ready: class GetDFList extends OneShotBehaviour{ private AgentInfo[] agents; private CondVar sync; private SessionBean1 session; // Constructor public GetDFList(Agent agent, SessionBean1 session, CondVar sync) { super(agent); this.session = session; this.sync = sync; } public void action() { try {
  • 4. DFAgentDescription template = new DFAgentDescription(); ServiceDescription sd = new ServiceDescription(); // retrieve the service from user if (session.getService().equals("all")) sd.setType(null); else sd.setType(session.getService()); template.addServices(sd); DFAgentDescription[] result = DFService.search(myAgent, template); if (result.length > 0) { String agentID; int p1, p2; agents = (AgentInfo []) Array.newInstance(AgentInfo.class, result.length); for(int count=0;count<result.length; count++) { agentID = result[count].getName().toString(); p1 =agentID.indexOf(":name"); p2 =agentID.indexOf(":addresses") ; Array.set(agents, count, new AgentInfo( agentID.substring(p1+5, p2-1), agentID.substring(p2+11, agentID.length()-1))); } } else { agents = (AgentInfo []) Array.newInstance(AgentInfo.class, 1); Array.set(agents, 0, new AgentInfo("not found", "not found")); } session.setAgents(agents); sync.signal(); } catch(Exception ex) {ex.printStackTrace(); } } } In the following is explained the code of the standard managed beans. The method init() of the SessionBean1 contains the code for creating a new non-main JADE container and launching the Proxy Agent: sync = new CondVar(); if (theProxyAgent == null) theProxyAgent = new HelloJADE(sync).StartProxyAgent(); The sync object is passed to Proxy Agent and used at startup for waiting the complete initialization of the Proxy Agent and later for synchronization between user requests and associated Proxy Agent tasks. An user request is performed through selection of button labeled Find (with id button1): public String button1_action() { try { AgentController t = getSessionBean1().getTheProxyAgent(); CondVar sync = getSessionBean1().getSync(); sync.reset(); t.putO2AObject(getSessionBean1(), AgentController.ASYNC); sync.waitOn(); AgentInfo [] agents = getSessionBean1().getAgents(); // refresh table component getObjectArrayDataProvider1().setArray( agents); } catch(Exception ex) { ex.printStackTrace(); } return null; } The objectArrayDataProvider1 wraps the JavaBean component AgentInfo[] agents (property of SessionBean1) through its array property, which we can set in the Creator Properties window. In Fig. 2 is showed the running example discovering all “live” registered agents in the JADE platform depicted in Fig. 3. Figure 2. A JSF table component linked to a JADE agent III. CONCLUSION Data providers can be used to access the JavaBean components both in the Java page bean code and in the property binding dialogs of the Java Studio Creator IDE. The Web-bridge for JADE agents is based on data providers wrapping JavaBeans components which are updatable by JADE agents through the object to agent communication channel between agent controllers and JADE agents. Binding data provideres to JSF components, these are linked in fact to JADE agents. REFERENCES [1] Fabien Gandon, “Linking a servlet to a JADE agent”, JADE add-on, http://jade.tilab.com [2] F. Bellifemine, G. Caire, T. Trucco, G. Rimassa, JADE programmer's guide, http://jade.tilab.com [3] Java Studio Creator Field Guide, 2nd ed., Sun Microsystems (currently in development), http://developers.sun.com/prodtech/javatools/jscreator/learning/ bookshelf/index.html [4] The Foundation for Intelligent Physical Agents (FIPA), www.fipa.org [5] D. Geary, C. Horstmann, Core JavaServer Faces, Prentice Hall, 2004, ch. 1-5.
  • 5. Figure 3. A snapshot of the JADE platform with three registered agents