developing a distributed dynamic intelligent agent framework based on the jini architecture
DESCRIPTION
Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture. Harry Chen Department of CSEE U. Of Maryland Baltimore County. Introduction. Developing a framework for dynamic distributed systems.. Ronin Agent Framework - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/1.jpg)
Developing a Distributed Dynamic Intelligent Agent Framework
Based on the Jini ArchitectureHarry Chen
Department of CSEE
U. Of Maryland Baltimore County
![Page 2: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/2.jpg)
Introduction
Developing a framework for dynamic distributed systems..
Ronin Agent Framework – Introduces a hybrid approach based on the agent-
oriented and service-oriented programming designs– deploys a dynamic distributed system with
“intelligence”. Ronin provides solutions for the problems
raised by the existing agent frameworks.
![Page 3: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/3.jpg)
Overview
Observations– The future computing trends.
Motivations for developing Ronin– The Jini architecture– Agent technology
The Ronin Agent Framework Agents2Go & Ronin
![Page 4: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/4.jpg)
Computers & devices are connected in networks.– Wireless connection is gaining its popularity.
Distributed computing is the trend of the future. – PDAs and cellular phones are now capable of doing
computation. People are spending more time with
computers.– Shopping, work, entertainment etc.
The Future Trends
![Page 5: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/5.jpg)
Observations
Networks are by nature dynamic.– “Things” come and go.– “Things” need to find each other.
“Things” are not homogeneous.– A laptop computer wants to talk to a web server as
well as a cellular phone. “Things” need to be smart!
- People can’t spend all of their learning and telling these “things” what to do everyday!!
![Page 6: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/6.jpg)
Observations
We need tools to develop flexible and robust distributed system with “intelligence”.
The Jini architecture seems to be a good framework for developing dynamic distributed systems. – Why is Jini good?– Is Jini the answer?
![Page 7: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/7.jpg)
The Jini Architecture
A simple Java-based infrastructure for providing services in a network.
Each Jini system is built around Lookup Services (LS). – Service client finds services through the LS.
Each service implements a set of well-known service interfaces.– Service client knows how use a service because of
the client knows how to use the interface!
![Page 8: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/8.jpg)
A Typical Jini Service
The Printing Service– Bob needs to print 1000 copies of color brochures
from his laptop.– Bob connects his computer to the network, specifies
a set of lookup attributes for finding a printer.– The LS returns a matched print service.– The client application invokes one of the print
service method, and the job is done!
![Page 9: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/9.jpg)
A Closer Look at the Jini Architecture
There is a catch with the Printing Service scenario.
Finding a good service match Bob has to know about all of the lookup attributes. – A service might have hundreds of attributes. Bob
might not understand all of the attributes.– Bob might not know his file must be printed on a
PostScript printer.
![Page 10: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/10.jpg)
A Closer Look at the Jini Architecture
How can we help Bob?– Give Bob a “smart” agent that can help Bob to make
decision.– The agent finds an appropriate printer for Bob
based on the properties of the print file and the user profile of the Bob.
No need for Bob to learn about the service detail
Reduce the chance of making human errors.
![Page 11: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/11.jpg)
What Can We Say About Jini
Jini is good.– Jini provides flexible and robust infrastructure for
deploying and finding services. – The service-oriented design provides an uniformed
infrastructure for distributed entities to interact. – Developing a Jini service is easy.
![Page 12: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/12.jpg)
What Else Can We Say About Jini
Jini alone is not the answer for everything. Developing a “smart” Jini service is hard.
– Why is it hard? To be adaptive, it needs to learn from the environment and
the past; it needs to cooperate with other services. To be autonomous, it needs to know how to make plans
and schedules; possibly it needs to know how to represent knowledge and reason.
And more …
![Page 13: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/13.jpg)
Searching for Answers
Software agent model contains the properties that we are looking for:– Agents are autonomous.– Agents can learn from the past.– Agents can cooperate with other agents.– Agents can adapt and react to their environment.
If we can model a Jini service to have the same properties as a software agent, then we are done!
![Page 14: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/14.jpg)
Software Agents
The key idea is that agents can act exactingly in order to accomplish tasks on the behalf of their users.
Software agents offer a new paradigm for very large scale distributed heterogeneous applications.
The paradigm focuses on the interactions of autonomous, cooperating processes which can adapt to humans and other agents.
![Page 15: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/15.jpg)
Software Agents DO Communicate
Software agents communicate with each other using Agent Communication Language, ACL.
ACL is important for agent paradigm, just as the development of human language was the key to the development of human intelligence and societies.
![Page 16: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/16.jpg)
Agent Communication Languages
Knowledge sharing approach– KQML, KIF, Ontologies
FIPA
Shared objects, procedure callsand data structures
Shared facts, rules, constraints, procedures and knowledge
Shared beliefs, plans, goals,and intentions
e.g., CORBA, RPC, RMI
e.g., KQML, FIPA, KIF, Aglets
e.g., ?
KnowledgeSharing
IntentionalSharing
?
ObjectSharing
![Page 17: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/17.jpg)
Building Software Agents
Building smart agents we need sophisticated tools, for example.– Agent Communication Languages (ACL).– Rule-based programming.– Domain knowledge representation and reasoning.– Constraint problem solving.– Planners.– And more depends on the domain problem.
![Page 18: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/18.jpg)
Problems Raised by the Existing Agent Frameworks
Lacking of sophisticated tools in Java. Restricted ACL for agent communications. Restricted network protocol. Difficult to integrate heterogeneous agents
systems.– Message representation are different.– Communication scheme are different.
![Page 19: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/19.jpg)
Task 1: Making sophisticated tools to be available for developing agents.
Task 2: Merge the agent architecture with the Jini architecture, taking advantage of the best parts of each.
Our Tasks
![Page 20: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/20.jpg)
Task 1: Making Tools Available
We can implement all of these sophisticated tools in Java. – Takes long time and it is not so trivial.
We can reuse the existing tools and create Java interface for agents to use. – Easy! Create Jini services for these sophisticated
tools.
![Page 21: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/21.jpg)
Making Prolog Available
Prolog engine is an excellent tool for building inference engine and knowledge base.
We have created a Jini service called Distributed Prolog KB (DPKB), to provide simple knowledge base operations for Jini enabled agents.
![Page 22: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/22.jpg)
Prolog Engine
SICStus Prolog– Jasper Java package
PrologEngine– Wrapper class for
SICStus prolog engine
SimplePrologKB– KB operations to
PrologEngine
![Page 23: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/23.jpg)
Jini Prolog KB Service - DPKB
Features.– Heavy-weighted Prolog Engine runs on the server
side. Clients do not have to install native Prolog code.
– Clients can have multiple KB through 1 DPKB service.
Each KB is identified by KB ID and KB password.
![Page 24: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/24.jpg)
Client only sees this
Runs on the server
![Page 25: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/25.jpg)
The Ronin Agent Framework is designed to aid in the development of dynamic distributed system with “intelligence”.
The Ronin Framework introduces a hybrid approach that is based on the composition of the agent-oriented and service-oriented programming design.
Task 2: Merging agent with Jini
![Page 26: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/26.jpg)
Ronin Design Goal
Promote generic agent attributes. Making knowledge sharing possible. Making basic communication negotiation
possible. Independent ACL and network protocol. Making the integration between heterogeneous
agents possible. Simplicity.
![Page 27: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/27.jpg)
Ronin Design
The Ronin Agent Framework defines an open framework that specifies the infrastructure requirements and interface guide line for the agent interaction and communication.
The standard interface and classes that are central (“core”) to the Ronin Agent Framework is called Core Ronin Agent Framework.
![Page 28: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/28.jpg)
Core Ronin Components
Envelope– A meta container for ACL messages.
Effect.– Provides an uniformed structure for delivering
messages. – No network protocol restriction is imposed.
![Page 29: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/29.jpg)
Core Ronin Components
Common Agent Attributes.– Describes agent features to distinguish one agent
from another in ways that are domain independent.– The attribute types and semantic meanings are
defined by Ronin in the domain independent fashion.
Effect– Allows agents to find each other in a domain
independent way, using the generic agent attributes.
![Page 30: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/30.jpg)
Ronin Components
Domain Agent Attributes.– Describes agent features to distinguish one agent
from another in ways that are domain dependent.– The framework does not define the types and
semantic meanings of the Domain Agent Attributes. Effect
– Allows agents to find each other using the domain knowledge as an alternative to the common agent attributes.
![Page 31: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/31.jpg)
Ronin Agent.– A specialized version of a Jini service with the
agent-oriented abstraction. – Provides services through agent communication.– Can be realized by either hardware or software.– Required to have at one Agent Deputy if it is
intended to be contacted by other agents.– Required to have a set of Agent Attributes and
Agent Domain Attributes.
Core Ronin Components
![Page 32: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/32.jpg)
Core Ronin Components
Ronin Agent Deputy.– A specialized version of a Jini service proxy object. – Responsible for handling the communication and
the interaction between its owner Ronin agent and other agents in the system.
![Page 33: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/33.jpg)
Core Ronin Components (Agent Deputy Cont.)
Effect– Provides a local agent representation. – The mobile front-end of the agent.– Hides the actual agent implementation from other
agents. – Making flexible and robust agent communication
possible. Using store-and-forward mechanism. Mailbox mechanism and more …
![Page 34: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/34.jpg)
Proxy Object
An object diagram of a proxy structure at runtime.
Client Proxy Print Server
![Page 35: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/35.jpg)
Core Ronin Components
Ronin Agent & Agent Deputy– Ronin agent owns one or many Agent Deputies. – Agent Deputy will register with Lookup Service
along with Agent’s attributes.– Agents communicate with other agents through their
Agent Deputies.– Agent Deputy is responsible for choose the right
communication scheme to delivery messages back to the owner agent.
![Page 36: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/36.jpg)
Core Ronin & Ronin Implementations
Core Ronin only defines interfaces and classes that are needed to get things to run.– The idea is similar to net.jini.core
Ronin Implementation ~= com.sun.jini Core Ronin has 3 packages
– edu.umbc.ronin.attributes– edu.umbc.ronin.deputy– edu.umbc.ronin.language
![Page 37: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/37.jpg)
Core Ronin
![Page 38: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/38.jpg)
Agent Group Ronin Implementation
Feature.– Ronin Agent/Jini Service Shell (template).
Jini join & lookup specific information can specified in a Java Properties.
Dynamically initialize Agent Attributes and Domain Attributes based on Properties file.
– Provides sufficient library for implementing agent-oriented Jini services.
– Guarantees that deploying Ronin agents is not harder than deploying traditional Jini services.
![Page 39: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/39.jpg)
Agent Group Ronin Implementation
5 Packages– edu.umbc.agent.ronin.agent
Ronin Agent Shell and Message Dispatching utilities.
– edu.umbc.agent.ronin.deputy AND edu.umbc.agent.ronin.deputy.transport
Out-of-box Agent Deputy implementation.
– edu.umbc.agent.ronin.lookup Customzied Lookup Tools for finding Ronin Agents.
– edu.umbc.agent.ronin.util Ronin Agent Shell Admin tools and misc. tools.
![Page 40: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/40.jpg)
Out-of-box Agent Deputy
Receive Remote Envelope
![Page 41: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/41.jpg)
A Smart Jini System
We have developed a distributed system based on the Ronin framework and DPKB to demonstrate their feasibility.
The system is called Agents2Go.
![Page 42: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/42.jpg)
Agents2Go
Components in the system:– An user with a PDA.– A Broker Agent.
Capable of making recommendations to users on local restaurants information.
– A DPKB service.– A number of restaurant agents.
Provides dynamic information about the restaurant, e.G. Wait time etc.
![Page 43: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/43.jpg)
Agents2Go
PDA finds the Broker Agent through Jini lookup service.
PDA submits recommendation request to the Broker with constraint and personal profile attached.
Broker preprocesses the request, constraints, and profile info, and then converts them into a number of queries in Prolog. It depends on the DPKB service for knowledge representation and reasoning.
![Page 44: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/44.jpg)
Agents2Go
If the Broker KB does not have sufficient knowledge to make a recommendation, then the Broker will try to discover and lookup local restaurant agents through the Jini lookup service.
Broker negotiates with these agents using descriptive agent communication language, KQML. Message content is expressed in Prolog.
![Page 45: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/45.jpg)
Agents2Go
After the Broker has received enough information, it restarts the recommendation inference process.
Broker replies the original request with the recommendation. The reply is expressed in the format that can be understood by the PDA.
![Page 46: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/46.jpg)
Screenshots
Netform is a Palm application.
Netform allows a user to find his/her favorite restaurants.
![Page 47: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/47.jpg)
Screenshots
User can specify various matching attributes.
We are looking for – Japanese cuisine– Has dinning in– Has reservation– Price range between $10
and $20.
![Page 48: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/48.jpg)
Screenshots
Making connection to the network.
Connecting the proxy on the network.
The proxy is responsible for contacting agents in the system.
![Page 49: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/49.jpg)
Screenshots
A matched result is send back from the proxy.
![Page 50: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/50.jpg)
Future Works
Make the specifications and the source code of Ronin framework to be available to the community.
Use BeamML for constructing Agent Deputy dynamically.
Add support for Java Servlet.
![Page 51: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/51.jpg)
Conclusion
Java + Jini provides an excellent platform for developing distributed system.
Java + Jini + Agent provides an excellent platform for developing intelligent distributes system.
Ronin framework provide a flexible and robust development platform for building dynamic distributed system with “intelligence”.
![Page 52: Developing a Distributed Dynamic Intelligent Agent Framework Based on the Jini Architecture](https://reader034.vdocument.in/reader034/viewer/2022051417/56814e7e550346895dbc1ae7/html5/thumbnails/52.jpg)
More Information
Harry Chen– University of Maryland Baltimore county– Email: [email protected]
Related project and URL– Dynamic Negotiating Agents (DNA)
http://www.cs.umbc.edu/dna
– Agent Web http://www.cs.umbc.edu/agents