530 likes | 646 Views
Agents – A new Paradigm for Distributed Computing. “agent-based computing has been hailed as the next significant breakthrough in software development” (Sargent, 1992) “the new revolution in software” (Ovum, 1994). NUST Institute of Information Technology Research Lab.
E N D
Agents – A new Paradigm for Distributed Computing “agent-based computing has been hailed as the next significant breakthrough in software development”(Sargent, 1992) “the new revolution in software”(Ovum, 1994) NUST Institute of Information Technology Research Lab
Network Computing Paradigms • Client Server • Domain Login Server • Yahoo Mail Server • Peer to Peer • Lime Wire • Hybrid (Client Server & P2P) • Napster • KaZaa
Sequence of Presentation • Introduction to the concept of an agent • Quick Start to programming agents • Agent Based Systems • Main application areas • DIAMOnDS (DIstributed Agents for MObile & Dynamic Services)
What are Agents ? • Potential for making software agents • Normally the agent refers to humans “one that acts or has the power or authority to act… or represent another.” • In computer world, "a software program that acts on a user’s behalf" • But agents sound just like computer programs. How are they different?
What exactly an agent is? • Why is it hard to know through literature what agents are ? • Each of definition grew directly out of the set of examples of agents that the definer had in mind. • "This FAQ will not attempt to provide an authoritative definition ..." The FAQ Agent [http://www.ee.mcgill.ca:80/~belmarc/agent_faq.html] • Each definer emphasize on the particular characteristic of agent he is working on.
In search of a mathematical definition • One who acts on behalf of others (real world) • Humans act, as do most other animals. Also, some autonomous mobile robots act. • What do they (Software+Real world) have in common ? • Each is situated in, and is a part on some environment. • Each senses its environment and act autonomously upon it. • No other entity is required to feed it input, or to interpret and use its output. • Each acts in pursuit of it's own agenda • Each acts so that its current actions may effect its later sensing, that is its actions effect its environment. • Finally, each acts continually over some period of time. • Lets formalize the common characteristics into a mathematical definition ………..
A Mathematical definition • An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future. • How a payroll program is not an agent • Its output would not effect what it senses later • It runs once and then goes into a coma, waiting to be called again (temporal continuity) • All software agents are programs, but not all programs are agents
Sequence of Presentation • Introduction to the concept of an agent • Quick Start to programming agents • Agent Based Systems • Main application areas • DIAMOnDS (Distributed Agents for MObile & Dynamic Services)
Agents Toolkit • “Any software package, application or development environment that provides agent builders with a sufficient level of abstraction to allow them to implement intelligent agents with desired attributes, features and rules." • Optional Features:- • A platform for agent development • Features for visual programming • An environment for monitoring, analyzing and testing agents • Its better not to reinvent the wheel
Four kinds of available toolkits • General Purpose Agent Toolkit • Mobile Agents • Intelligent Agents • Multi Agents
Sequence of Presentation • Introduction to the concept of an agent • Quick Start to programming agents • Agent Based Systems • Main application areas • DIAMOnDS (Distributed Agents for MObile & Dynamic Services)
Agent Based Systems • One in which the key abstraction used is that of an agent • Might be conceptualized in terms of agents • Analogy with OO Systems • A number of software tools exist that allow a user to implement software systems • as agents, • and as societies of cooperating agents
Agent Application Domain Characteristic • Solving new types of problems • Open Systems • Complex Systems • Ubiquitous Computing Systems • Improving efficiency of software development • Distribution of Data, Control, Expertise, or Resources • Natural Metaphor • Legacy Systems • The limitations of Agents based solution • No overall system controller. • No global perspective. • Trust and delegation.
Sequence of Presentation • Introduction to the concept of an agent • Quick Start to programming agents • Agent Based Systems • Main application areas • DIAMOnDS (Distributed Agents for MObile & Dynamic Services)
Application Areas • Industrial Applications • Process Control • Manufacturing • Air Traffic Control • Commercial Applications • Information Management • Information filtering • Information gathering • Electronic Commerce • Business Process Management • Medical Applications • Patient Monitoring • Health Care • Entertainment • Games • Interactive Theater and Cinema
Agent Based Solution for Japanese Bullet Train • The Japanese bullet train, is world-famous for • its speed, • reliability, • and safety. • Since the Central Japan Railway Company (CJR) introduced the Hikari and Kodama Super Expresses, these high-speed trains • have been perfectly punctual—within 15 to 30 seconds • with absolutely no passenger injuries • During peak hours, trains arrive and depart from the Tokyo station every 3.5 minutes, meaning as many as 130 may be running simultaneously.
OASIS – Air Traffic Management System • One Agent dedicated to each aircraft known to system. • Local Agents • Perform local computation or reasoning for each aircraft. • Global Agents • Handle global or inter-aircraft co-ordination. • perform the sequence optimization and manage wind information and user interaction.
OASIS – Air Traffic Management System - Features • Goal & Data oriented • Self-monitoring capability • Enables to adapt it's behavior as required according to prior performance • Dynamic environment • Enables to react to changes in weather and aircraft behavior as soon as they are observed • Developed on Unix system with X-Windows • Can handle in excess of one hundred aircraft agents
Soccer Game implemented as Agent Based Solution • Competition • Players from the red and the yellow team follow different objectives. • Cooperation • Players cooperate by passing the ball to others of their team. • Robustness • A team can still play with 10 or even 9 players. • Situated Behavior • Behavior is affected by the environment, i.e. the position of the ball and other players. • Behavior (e.g. shooting the ball) affects the environment. • Autonomous behavior • There is no central control. • A player does not follow commands of another player.
Sequence of Presentation • Introduction to the concept of an agent • Quick Start to programming agents • Agent Based Systems • Main application areas • DIAMOnDS (Distributed Agents for MObile & Dynamic Services)
Team Members Saad Liaquat Kiani Anjum Shehzad Umer Farooq Khalid Maria Riaz Afrasyab Bashir Aamir Shafi Supervisor Dr Arshad Ali
Features • A framework that provides a simple API to develop different types of mobile agent based applications. • Based on Service Oriented Architecture • Only Mobile Agents Framework which • Presents agents & their hosts as services • Allows remote monitoring and controlling of agents by providing remotely downloadable GUI • Provides agents as modern objects – they carry their GUI with themselves • Resilient to changes in the network • Allows agents to be started from the web
Benefits • Provides a basic agent implementation which takes care of all the problems regarding • Mobility • Security • Remote Administration • Network Uncertainty • A distributed application developer needs to focus only on application logic without worrying about the above concerns.
Why Mobile Agents ? • Reduce network load and overcome network latency. • Execute asynchronously and autonomously. • Naturally heterogeneous, adapt dynamically • Are fault-tolerant and allow disconnected operations
Service Oriented Architecture • Three basic entities • Service Provider • Service Registry • Service Requestor • Benefits • Loosely Coupled Services • Protocol Independence • Location Transparency • Time Independence
Modules • Agent Starter • Provides the facility to load an agent from a file into the JVM. • Agent Station • Host for agents – provides execution environment to the agent • Agents • Basic Service Agent • File Access Agent • Database Access Agent • Search / Information Retrieval Agent • Connectivity Test Agent • Client • Provides remote monitoring & controlling of services by downloading their GUIs
Lookup Service Lookup Service Lookup Services Discovery & Registration Execution Engine Agent Station Discovery Code Base Server Agent Starter Discovery Client Resources Agent UI DIAMOnDS Architecture
Basic DIAMOnDS Agent • Mobile • Can migrate between Agent Stations by • Name • IP • Random move • Predefined path • Mobility mechanism • Light HTTP server • Marshalling / Unmarshalling • Weak Mobility
Basic DIAMOnDS Agent • Transaction • ACID properties • Either agent moves successfully to destined station or remains on the same station • Service • Acts as an entity providing functionality to the users • Registers with the Registry Service • By providing Specific attributes • Can be discovered by other services using the published attributes • Provides remote GUI for administration and/or its specific operations
Agent Starter • The Agent Starter performs pre-functional initialization • Main Functions • Providing an interface for anyone interested to load their agents • Instantiation of Agents (Loading an agent from a jar file into the JVM) • Service Client • Hosting an HTTP server for providing code base for each type of agent
Agent Station • Acts as a JINI Service • Establishes a peer relationship with all stations • Provides registration, notification and discovery mechanism for agents • Execution Environment for the agents • Agent Starter sub module • Security sub module (based on PKI) • Trust Establishment with other services • Authenticating & validating incoming agents • Access rights management
Lookup DiscReg Agent Station Agent Station DiscReg Remote Notifications Registration DiscReg Agent Station Station-Station Agent Movement …Agent StationEstablishes p2p relationship with other stations
..Agent Station Services provided to the agent • Provides following services to the agents • Registration • Notification • Discovery • Execution environment • Access to Transaction Service • Access to Java Space Service
Client • User Module that • Discovers services • Using Discovery sub module • Enables user interaction with remote service and resources • Contacting service proxies through Lookup Service • Downloads Remote Service GUIs • Connectivity Test view • Remote Database view • Remote File Access • Searching remote data stores
Client - Web Accessibility • Web Interface to DIAMOnDS Framework • Compatible with Java WebStart Technology • User does not even need to install this module • All necessary files for client execution are downloaded from an HTTP server by a simple click from the user • Same client module either accessed from installed package or accessed from the Web through Java Web Start • Unique feature of the framework
Application Agents • All application agents exhibit properties of • Mobility • Transaction • Service • We have provided a toolkit and by using it other agents can be created. • Reusability • Four specific implementations of our toolkit are • File Access Agent • Database Agent • Data Search / Information retrieval Agent • Connectivity Test Agent
File Access Agent • Remote File Access Functionality • Exports file system of the host station to the client/user • File transfer over TCP sockets • Remote File edit/view • Secure Access to file system • Based on public/private key pairs
Connectivity Test Agent • A hopping agent that moves between all the stations that are online • It keeps a record of all its moves in the form of a log file with itself • Not on persistent storage • Shows station presence on a world map • Proof of Fault Tolerance Implemented • Scenario • This agent is about to move to a station that has just crashed • Conventional Applications might fail in such a scenario • No notification of the dynamic network • No intelligence • Conn. Test Agent’s behavior in this scenario • The agent will recognize this network change and will select a different station to move to. • Such fault tolerance measures are a must for Distributed Applications
Database Access Agent • Access to remote databases • Agent Station registers databases with itself, making the DBs accessible to hosted agents • Database can be queried/updated remotely through the agent GUI at client • RMI-JDBC
Data Search Agent • Visit different Agent Stations searching for given information • Word/Phrase to look for in files • User can select the locations to search • Steps • Moves to a site • Analyzes the stored documents • Records results (saves state) • Moves to the next site.