510 likes | 646 Views
Kick Off Meeting Island of San Servolo - Venice, Italy 11th to 13th February 2008. Mobile Agents Jens Schumacher Mathias Rieder Thomas Bargetz. Agenda. What is a Software Agent Concepts of Mobile Agents Usage of Mobile Agent Systems Implementation. What is a software agent.
E N D
Kick Off MeetingIsland of San Servolo - Venice, Italy11th to 13th February 2008 Mobile Agents Jens Schumacher Mathias Rieder Thomas Bargetz
Agenda • What is a Software Agent • Concepts of Mobile Agents • Usage of Mobile Agent Systems • Implementation
What is a software agent • Software Agent • Definition • Features • Why agents
Definition of a software agent • [Jacques Ferber 1999]: • phsysical or virtual entity • is capable of acting in an environment • communicate directly with other agents • is driven by a set of tendencies • is capable of perceiving ist environment • possesses skills and can offer services • may be able to reproduce itself • [Shoham 1997]: • A software entity which functions continously and autonomously in a particular environment, often inhabited by other agents and processes
Features of a Software Agent • Piece of software • Fulfilling jobs for a user • Acts in the behalf of an agency • Uses services and resources on several hosts • Autonomy • Intelligence • Reactivity
Why Agents • The concepts relate to the way we naturally think about • complex tasks • Several small applications instead of one big • The system in whole is more fail-safe • System is easy to upgrade (new agent)
Why Agents • One application which does the whole job is like one • employee in a company does everything.
Why Agents • Solution: • More employees • One employee works only on a (small) part
Mobile Agent Systems Mobile Agents
Mobile Agent Systems • Massive distributed computation paradigm • Mobile agents • Software Agent which migrates between systems in a network
Comparison Moblie Agents – Client/Server architecture • Client/Server – concept: • e.g. Database-Server • Database-server offers services to access his data • Program-logic polls the data to compute them • Mobile Agents – concept • Instead of bringing the data to the logic – bring the logic to the data and send back the result network network result
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client Computers in the network
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client Server
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client not found Server
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client Server
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client not found Server
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client Server
Client Server Model versus Agent Model • Searching a file in a network (client server model): Client Found! Server
Client Server Model versus Agent Model • The client needed 10 steps to find the file (2 for every • request) • The client is blocks other operations, he can‘t do • anything else • Imagine a network with 500 computers!
Client Server Model versus Agent Model • Searching a file in a network with Agents: Client Client activates search agents
Client Server Model versus Agent Model • Searching a file in a network with Agents: Client
Client Server Model versus Agent Model • Searching a file in a network with Agents: Client Found!
Client Server Model versus Agent Model • Searching a file in a network with Agents: Found! Stop search! Client
Mobile Agent Systems • Agencyuser commissions agent to do a jobagent migrates to hosts offering the asked services and executes autonomously Do this & that for me
Mobile Agent Systems • Authonomy • Task selection • Priorization • Goal directed behaviour • Decision making... without human intervention
Mobile Agent Systems • Intelligence • Sensing the environment • self-adaptation • learning • Decision making
Mobile Agent Systems • Accomplish intelligence through: • Communication between agents • Communication between agent and platform • Acess to services (DB, Internet, …) • Sensor-Data • … • Autonomous decision making using rule-engines
Mobile Agent Systems • Reactivity • Perceive the context in which they operate • React to it appropriatelye.g. Migrate to other host if: • Ressources are not available • Host is busy • ...
Migration of Mobile Agents • Now we know what mobile agents are, but • how does the migration works?
Mobile Agent Systems - Migration • Agent (program) travels from host to host • Agent stops execution at a certain point • Serialization to a network stream • Another host receives agent • Agent continues work at same point this causes several problems network
Agent runs on different machines Agent runs on different platforms Programs written in C and C++ are not very portable Compiled code runs only on the compilation platform Problem of libraries, OS-specific calls, ... Hardware independent programming
Solution – use interpreted programming language (e.g. JAVA) JAVA Virtual Machine acts as an abstraction-layer to encapsulate the underlying platformall java-enabled plattforms can be used as hosts Hardware independent programming
There needs to be a widely accepted framework for executing mobile agents Agents run within a well defined runtime-environment (Container) These containers need to be installed on every host-machine Use Middleware (e.g. JADE) Middleware offers common services ... more on that later on Ubiquity-problem http://jade.tilab.com/
Security is a fundamental concern for a mobile agent system. Can you trust an agent? Agent Identification Who is the author of an agent? Can I trust an agent? Author certifies his/her Agents (digital signature) Integrity of Agent's code How to find corrupted/virual agents (code-manipulation during transmission) Agents use code-signatures (finger-prints/checksums) Security Issues – agent integrity
How to protect your sensitive data Host-Machines can grant/deny access to their resources/services Protect host-machine from virual agents use identification (discussed before) Sandbox model Agent can not leave defined sandbox Security Issues – sensitive data Host Machine Runtime container sandbox
Agents use secure (encrypted) communication channels - asymmetric public key encryption - also used for agent-transmission Security Issues – sensitive data network xx xx
Example This was a lot of theory, lets get on with an example
Observation of goods located on a truck - Traditional approach Example GPS 2. Truck keeps track of its own position 1. Truck is equiped with a GPS enabled device
Example • Observation of goods located on a truck - Traditional approach 3. Device periodically tramsmits it‘s location to the company‘s headquarter GSM 4. Headquarter observse the trucks location
1. Example • Observation of goods located on a truck – Mobile Agent approach Before the truck takes off Agent collects information - device features (GPS, temperature sensor, …) - type of goods - route information 2. Agent reports trucks state
Example • Observation of goods located on a truck – Mobile Agent approach Depending on the type of goods, the device‘s features and the route,different agents migrate to the truck‘s device Route-tracking agent Temperature-tracking agent …
Example • Observation of goods located on a truck – Mobile Agent approach Route-tracking agent • has a copy of the planned route • can check itself if the truck leaves the route, is late, … • decides itself whether to inform the driver, the headquarter, … Temperature-tracking agent • can access the trucks temperature-sensor • alarms the driver if sensor reaches critical value • …
Low communication bandwidth needed Instead of transferring the data to the processing-unit, send the processing-unit (agent) to the data. Agent decides when to communicate and when not Offline Execution Agent can handle conneciton-leaks Continue job Wait until connection is re-established keep logs … Mobile Agents – Pro's
Take advantage of spread resources idle CPUs local data-access for high-performance computation (instead of transferring data over the network) locally available resources (databases, internet-connection, external peripherals, …) Flexible and scalable functionality of an Agent Environment depends on the functionality of the single agents Solve new problems by implementing new agents The rest of the system is not affected Mobile Agents – Pro's
Security risks already discussed Additional software needed Middleware must be installed on all hosts Additional resources needed Agent Management Services consume additional resources. Is there a specification and does already exist a middleware? Mobile Agents – Con's
Foundation for Intelligent Physical Agents “FIPA is an IEEE Computer Society standards organization that promotes agent-based technology and the interoperability of its standards with other technologies.” Define a set of standards for AgentSystem - Middleware FIPA
FIPA - Agent Managment Service • Directory Facilitator • Component of an agent platform • Provides yellow pages service to other agents • Saves an accurate, complete and timely list of agents • Can form federations with other DFs
FIPA - Agent Managment Service • Agent Managment System • Mandatory component of the agent platform • Manages operations of an agent platform • Create / delete agent • Overseeing the migration of agents to and from the agent platform • Offers description of the agent platform • Is the managing authority of an agent platform
Java Agent Development http://jade.tilab.com/ Runtime environment Middleware Developed by Telecom Italia Lab Open Source (LGPL license) Conform to FIPA-Specifications JADE
JADE • Java Agent Development • Entirely written in JAVA • Runs on every JAVA-enabled platform/device • JADE LEAP • suitable for mobile lightweight Java environments down to JAVA MicroEdition-CLDC • Cheap JAVA-enabled mobile devices can be used