Document 7236530

Download Report

Transcript Document 7236530

Agents &
Mobile Agents
Introduction – Agents & Mobile Agents
1
Agents - The Concept
 software system which acts “intelligently” on
your behalf
 convenient metaphor
 situated in an environment and exhibit
behaviour which can be viewed as:
pro-active, autonomous, communicative,
persistent, mobile, benevolent,
adaptive/learning, collaborative, reactive,
deliberative, ...
 stronger notions of agency: mentalistic notions
such as knowledge, beliefs, desire, intention,
goals, and a logic for reasoning with them
 Cutting out the hype – a kind of software and
an approach to software design
Agent Definitions
•
•
•
•
Mission Impossible 
No consensus on a single definition
New Buzzword
Everybody wants to call their software
“Agents”!
• Many synonyms – just to add to the
confusion 
• knowbots, softbots, personal assistants
What the Gurus Say…
• Wooldridge and Jennings
• A computer system situated in some
environment
• Capable of Autonomous Action to
meet its design objectives in this
environment
• Autonomy – ability to act without direct
human intervention
Objects and Agents – An
Analogy
• Objects encapsulate state, Agents
encapsulate state + execution behaviour
• Objects have no control over the
execution of methods
• Invocation of method m on object o –
involuntary – whether object o likes it or
not
Objects and Agents – An
Analogy
• Agents have control of whether or not to
perform any given action
• Request actions rather than invoke
methods
Agents - Current Research and
Industry
 theories, architectures, languages, systems
 agent (internal structure) and mult-agents
(collaboration, teamwork)
 still thriving research -> emerging industry
 >20 companies including IBM, BT, HP,
Microsoft, Fujitsu, AgentSoft, Verity, AOS,
Extempo, ...
 >40 books on “software agents” at Amazon
 >50 research laboratories worldwide
 organizations coordinating international agent
research:
Agent Society, AgentLink, Agents-inMelbourne
Agents - Applications
 many due to:
 appeal of the agent abstraction
 agent research spans disciplines:
artificial intelligence, distributed
computing, software engineering
(ABSE), sociology, psychology,
economics, object-oriented systems,
artificial life, game theory, ...
 a sampling...
The Internet and the
WWW
 impetus for information agents
 gathering, filtering, sharing, monitoring,
recommending, comparing information
 guiding Web surfers
 email filtering, autoresponders (e.g., Snoop,
Smartbot)
 technologies: NL processing, XML/HTML,
machine learning, knowledge engineering
 E.g.s: Verity, Autonomy, AgentSoft, CiFi, ...
Electronic Commerce
 automate CBB stages including
product advertising, product brokering,
merchant brokering, negotiation, purchase and
delivery, customer services
 examples for brokering and negotiation:
PersonaLogic, Firefly, BargainFinder, Jango,
Kasbah, AuctionBot, Tete-a-tete, ShopBot
 needs: standards for unambiguous definition of
commerce-related information such as goods,
services, customer and business profiles,
electronic forms
Business Process
Management
 streamline business processes in a more flexible
and robust manner
 e.g.: ADEPT [Jennings et al]
 agents representing entities negotiate for
services from each other
 negotiation rules
 applied to BT process for installing a network
at a customer’s premises
 prototypes based on mobile agents: intra- and
inter-organizational workflows, supply-chain
management in virtual enterprises, project
management
Entertainment
 visual manifestation of agent
properties
 e.g.s (life-like interactive animated
characters): Creatures game [Grand
and Cliff], Extempo, Microsoft’s
Persona Project (3D, conversational
parrot)
 believable agents - illusion of life for
objects
Pilot Training
 DSTO and AAII’s SWARMM
system
 agents model pilot reasoning and
tactics in air battle simulations
 plan and meta-plan language
Manufacturing
 agents systems for:
 controlling manufacturing robots
 managing factory production processes
 e.g.: YAMS
 each factory and factory component is
represented by an agent
 automates delegation of production
orders via bidding between agents
And More...
 agents for telecommunications:
network modelling and QoS
management
 medical informatics: e.g., multi-agent
based distributed health care systems
 communityware: agents represent
people in virtual communities
 distributed data mining
Agents - Standardization
 Agent Communication Languages:
 KQML, ...
 Agent Lifecycle Management, etc...
 Organizations creating specifications:
 FIPA: >40 participants including Alcatel,
BT, Hitachi, NEC, Siemens, IBM, Sun
Microsystems, Telia,...
 OMG: e.g. MASIF
Important Types of Agents
•
•
•
•
•
•
Collaborative
Interface
Mobile
Information / Internet
Others – Reactive, Hybrid, Smart
Many Classification Schemes &
Typologies exist => to come in the next
lecture
What is a Mobile Agent ?
 Software program
 Moves from machine to machine under its own
control….
 Suspend execution at any point in time,
transport itself to a new machine and resume
execution
 Once created, a mobile agent autonomously
decides which locations to visit and what
instructions to perform
 Continuous interaction with the agent’s
originating source is not required
 HOW?
 Implicitly specified through the agent code
 Specified through a run-time modifiable
itinerary
Evolution
 BOTTOMLINE: Mobile Agents are a distributed
computing paradigm
 End point in the incremental evolution of mobile
abstractions such as mobile code, mobile objects,
mobile processes.
 Mobile Code – transfers code
 Mobile Object – transfers code + data
 Mobile Process – transfers
code + data + thread state
 Mobile Agent – transfers
code + data + thread + authority of its
owner
RPC Vs Mobile Agents
 Remote Procedure Calls (RPC)
 One computer calls procedures on another
 Messages: Requests and Responses
 Procedure is “remote” – i.e. it is local to the
machine that performs it
 Client and Server agree in advance on the
protocol for communication
 Continuous on-going interaction and
communication between the client and server
CLIENT
network
SERVER
RPC Vs Mobile Agents
 Mobile Agents
 Instead of calling a procedure, supply the
procedure as well
 Messages: Mobile Agent ( procedure + data +
state)
 “Sending” computer may have begun the
procedure and the receiving computer will
continue the procedure
 On-going interaction, but NO on-going
communication
CLIENT
network
Mobile
Agent
Service
SERVER
Applets, Servlets and
Mobile Agents
 Applet – Downloaded from server to
client
 Servlet – Uploaded from client to
server
 Mobile Agents – Detached from
client, can have multiple hops
Advantages of the
Mobile Agent Paradigm
 reduce bandwidth consumption and network loads
 allow dynamic deployment of application components
to arbitrary network sites
 encapsulate protocols
 execute asynchronously and autonomously
 can adapt by moving
 run on heterogeneous platforms
 most distributed applications fit naturally into the
mobile agent model
 intuitively suitable for mobile users and disconnected
operations
 Mobile agents combine the strengths of techniques
such as RPC, java applets etc. into a single, convenient
framework
Mobile Agent Myths
 MYTH #1: Mobile agents are risky to
use.
FACT #1 : No different to allowing
remote access or accepting email that
contains active entities
 MYTH #2: Mobile agent paradigm
needs a killer application to survive
FACT #2: Any technology needs time
to mature. Several applications rather
than one killer application can also
contribute towards pushing this
technology further
Mobile Agent Myths
 MYTH #3: Wide deployment of agent
environments is unlikely to emerge….
 Because agent’s execute within a
given environment. It is unlikely for
such agent environments to be
available on a base of computers
world wide that is large enough to
make MA applications truly ubiquitous
Mobile Agent Myths
 FACT #3 : No …Because…
 JVM’s and ORB’s exist in each browser
(most MA applications are developed in Java
and the OMG’s MASIF standards rely on
CORBA compliant interfaces)
 Development of PUSH technology can
enable “uninvited” agents to execute on
servers that are willing to accept them
 MA toolkits are typically small in size and so
are easy and inexpensive to download them
on servers where they do not already exist
 Emerging standards are likely to lead to
“interoperable agent environments”
Mobile Agent Myths
 MYTH #4: Most things that
mobile agents can do, static
agents can do as well
 FACT #4: True…but the
performance benefits
associated with mobile agents
can be higher
Mobile Agent Myths
 MYTH #5: The Mobile Agent
paradigm can solve all distributed
computing issues
 FACT #5: NO! Mobile Agents are
not a substitute for client-server
techniques. The two techniques
augment each other and very often
a combination of the two is the
most appropriate.
Levels of Mobility
 Weak Mobility
 When moving a mobile agent
carries code + data state
 Data State - global or instance
variable
 On moving, execution has to start
from the beginning
Levels of Mobility
 Strong Mobility
 When moving a mobile agent carries
code + data state + execution
state
 Data State - global or instance
variable
 Execution State – local variables and
threads
 On moving, execution can continue
from the point it stopped on the
previous host
Mobile Agent Toolkits
 What a DBMS is to Data, a Mobile Agent
Toolkit is to Mobile Agents
 Provides the infrastructure for mobile agents:
 to interact with the underlying computer
system – provide a “home”, a “place”, a
“context” – for agents to reside in and
perform their tasks on a given host
 to move from host to host
 to communicate with each other, with users
and with host servers
 to maintain privacy and integrity (of agents
as well as hosts)
 Current trend: Java based
Java – Lingua Franca for
Mobile Agent Toolkits
 BENEFITS
 Platform independence
 Secure execution
 Dynamic class loading
 Multi-threaded programming
 Object serialisation
Java – Lingua Franca for
Mobile Agent Toolkits
 LIMITATIONS
 Inadequate support for resource
control
 No protected references – need
for a proxy object to shield
access to public methods
 No support for preservation and
resumption of execution state
IBM’s Aglet Toolkit
 An Applet-like programming model
for mobile agents
 Java (as many mobile agent toolkits
are! )
 Aglet = Agent + Applet
 Aglet’s API facilitates mobile
technology
 Aglet: mobile java object that
visits aglet enabled hosts in a
computer network
 An Aglet = Instance of a Java class
extending the Aglet Class
IBM’s Aglet Toolkit
 An Aglet =
Aglet state (values in
variables)
+
Aglet code (class
implementation)
 Autonomous – runs its own thread
after arriving at a host
 Reactive – responds to incoming
messages
 Weak Mobility
IBM’s Aglet Mobile Agent
System
 System elements: host, engine,
context, proxy, aglet
 Aglet Transfer Protocol e.g.
“atp://hostname:port/context/”
 AgletID: system-given globally
unique identifier for life
IBM’s Aglet Mobile Agent
System
user
proxy aglet
proxy aglet
context
proxy aglet
context
proxy aglet
engine
host
IBM’s Aglet System
 Proxy: representative of an aglet.
 Shields and protects an aglet from direct
access to its public methods
 Provides location transparency for the
object
Context: an aglet’s work place.
 A server can have several contexts.
 Named
 Stationary
Message: objects exchanged between aglets
 Synchronous and Asynchronous messaging
(using FUTURE REPLY)
The Aglet Model
 Operations on aglets:
 creation – within a context. Assign id,
initialise and execute.
 run
 cloning – identical copy in the same
context. Different id and execution
thread
 dispatching – move from one context
to another where execution will restart (i.e. threads do not migrate)
 retraction – pull from current
context and insert into the context
from which retraction was requested
The Aglet Model
 activation & deactivation –
temporary halt and store in
secondary storage
 disposal – halt execution and remove
from current context
 Event-based control via user-defined
methods: onCreation, onDisposing,
onCloning, onDispatching, onReverting,
onArrival, onActivation,
onDeactivating,…
 Messaging between aglets: messaging via
proxy, a message invokes a method
Several Other
Toolkits





Gossip - Tryllian
Grasshopper – IKV++ Technologies
D’Agents - Dartmouth University
Voyager - ObjectSpace
MOA - Mobile Objects and Agents - The Open
Group Research Institute
 Concordia - Mitsubishi Electric Lab
 JSeal, Gypsy, Gossip – Many, many more…
Why Mobile Agents for
Ubiquitous Environments

The Metaphor of an Agent

Mobility, Frequent Disconnections and Resource Limitations




Dynamic environment: computational resources, battery power,
memory, bandwidth (with frequent disconnections) limited and
varying for the same computer and across computers; set of
computers in a domain varying
move/off-load (multiple) computations to other sites (e.g.,
processing at database, Web and WAP servers): no need to
maintain connection, depleting resources, move to discovered
resources
software components only when and where needed: cope with
limited memory, zero-maintenance mobile computers, different
versions for different hardware characteristics
BUT…the issues are


The need for mobility to be integrated with reasoning, proactivity and
autonomy
Trade-offs of intelligence vs. computational efficiency
Mobile Agent Toolkits for
Ubiquitous Environments









Grasshopper
JADE-Leap
Mobile Agent Environment (MAE)
AbiMA
AgentFactory & WAY
MyCampus
JAM
Nuin
CALMA
Mobile Agent Toolkits for
Ubiquitous Environments
MSN Messenger 6.0.lnk
BDI/Intellige
nt Agent
Mobile
Agent
JAM
BDI
√
AbiMA
BDI
Nuin
MyCampus
Agent
Factory &
WAY
BDI
Relies on
features
available on
the selected
underlying
agent
platform
Intelligent
BDI
√
Context
Awarenes
s
Support for
Semantic
Web and
Web Services
Support
Agent
Applications
on Mobile
and Small
Devices
√
√
√
√
√
√
√
√
√
√
√
CALMA – Context-Aware Light
Weight Mobile BDI Agents
Agent Applications in
Ubiquitous Environments
 Ubiquitous Data Analysis
 Interactions with Web Services or Web
Applications
 Delivering Services to Mobile Users
 User’s service environment can follow user’s
mobile device (e.g., VHE, NetChaser)
 Agents move to mobile devices to perform
tasks (e.g., monitor and gather information
from deployed mobile devices)
Other Mobile Agent
Applications
 WWW Information Retrieval
 Electronic Marketplaces
 Distributed Data Intensive
Applications
 Space Presence 
 Others – Network Management,
Distributed Database Access
Current Areas of Work
 mobile agent theories: Pi-calculus extensions,
Mobile Ambients, Agent Itineraries
 mobile agent model: some component-based,
AI-based
 mobile agent infrastructure: environment
supporting mobile agents - security, naming,
domain crossing, etc
 mobile agent programming: languages, toolkits,
abstractions
 mobile agent applications: mobile agent
standards: OMG’s MASIF, FIPA
Research Issues
 Security: protect host from agents, protect agents
from agents, protect agents from host
 Performance: if Java or Python, performance
penalities with interpretation (esp. for performance
critical applications), but not for long?
 Strong mobility: move full execution state (stacks
etc), stacks not accessible with current Java?
 MA management:
 how control and manage deployed agents
 issues: fault tolerance (e.g., agent fails, host
fails), recalling agents, tracking agents, servicing
agents (esp. longer living agents)