Professional Documents
Culture Documents
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
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...
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
Entertainment
visual manifestation of agent properties e.g.s (life-like interactive animated characters): Creatures game [Grand and Cliff], Extempo, Microsofts Persona Project (3D, conversational parrot) believable agents - illusion of life for objects
Pilot Training
DSTO and AAIIs 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, ...
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 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
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
use.
FACT #1 : No different to allowing remote access or accepting email that contains active entities
MYTH #2: Mobile agent paradigm
FACT #2: Any technology needs time to mature. Several applications rather than one killer application can also contribute towards pushing this technology further
environments is unlikely to emerge. Because agents 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
FACT #3 : No Because JVMs and ORBs exist in each browser (most MA applications are developed in Java and the OMGs 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
FACT #4: Truebut the performance benefits associated with mobile agents can be higher
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
An Applet-like programming model for mobile agents Java (as many mobile agent toolkits are! ) Aglet = Agent + Applet Aglets API facilitates mobile technology Aglet: mobile java object that An Aglet = Instance of a Java class extending the Aglet Class
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
user
proxy aglet
proxy aglet
engine host
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
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
Concordia - Mitsubishi Electric Lab JSeal, Gypsy, Gossip Many, many more
Electronic Marketplace
Widely quoted application domain for mobile agents Electronic Marketplace: Suppliers, Dealers, Buyers and Brokers Buyers are generally the most benefited by mobile agents Transaction Phases
Information Phase buyer collects information from many prospective suppliers Negotiation Phase buyer and supplier negotiate the conditions of the transaction Execution Phase Actual exchange of goods
Electronic Marketplace
Market Structures Direct Search Markets
Buyer directly contacts different suppliers Buyer has to perform the entire information phase Time consuming and expensive Mobile Agents are ideally suited to perform the search
Electronic Marketplace
Brokered Markets Brokers perform the search for a certain fee Here brokers use mobile agents instead of the buyers
Dealer Markets
Dealers are required to buy products in advance and offer them at set prices to buyers Buyer asks different dealers for prices and immediately buys the product at the cheapest dealer Mobile agents can be used to find the cheapest price offered
Electronic Marketplace
Information Phase : Mobile agents are very useful and very easy to use, definite performance benefit Negotiation Phase : Mobile agents can be used to reduce traffic, but there is more complexity involved in negotiation than in mere searching. Intelligent Mobile Agents? Also increased security requirements Execution Phase : Mobile agents can be used if the transaction involves digital goods. However, agent needs to carry digital cash and sign on behalf of the user. How much do you trust your agent ?
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)