260 likes | 397 Views
Software Agents. For Dynamic Java Enterprise Applications JavaZone 2005 – Jørn Ølmheim. About Me. Working for the Information Technology unit in Statoil ASA, the Norwegian state oil company, as senior developer/software architect. Worked with Java and J2EE for the last eight years
E N D
Software Agents For Dynamic Java Enterprise Applications JavaZone 2005 – Jørn Ølmheim
About Me • Working for the Information Technology unit in Statoil ASA, the Norwegian state oil company, as senior developer/software architect. • Worked with Java and J2EE for the last eight years • Web applications with EJBs • Swing applications with EJBs • Framework development • Spring Framework, JDO, Eclipse, JGoodies, Struts++ • Current focus includes: • Event Oriented Architecture • Software agents • Domain-Driven Design • Agile methods
Motivation and Goal ”Automating tasks and building dynamic process support is the key to modern enterprise applications” • Goals: • Demystify the concept of software agents • Show how software agents can be used to build more dynamic enterprise applications.
Outline • Software agents overview • Software agents in enterprise applications • Demo of process support using software agents
Key Properties of Software Agents1 • Autonomous • Reactive • Proactive • Flexible • Robust • Social 1 Adapted from “Developing Intelligent Agent Systems”, Padgham/Winikoff, 2004
Goal oriented agents – The BDI model • Agent theory grew from the Artificial-Intelligence community • The Belief-Desire-Intent model1 is used to model agent intelligence by mimicking human reasoning. 1 Michael Bratman, 1987 and, Rao and Georgeff, 1991/1992
Social Ability • Communication • Peer-to-peer model • Messages in the form of events • Some frameworks use JINI or JXTA for communication • Coordination of agents • Teams with roles
Intelligent Software Agents An Intelligent Agent is a piece of software that is • Situated – exists in an environment • Autonomous – independent, not controlled externally • Reactive – responds (in a timely manner!) to changes in the environment • Proactive – persistently pursues goal • Flexible – has multiple ways of achieving goals • Robust – recovers from failure • Social – interacts with other agents Source: “Developing Intelligent Agent Systems”, Padgham/Winikoff, 2004
Why are Software Agents useful? • No magic, but: • higher abstraction level than regular objects • reduced coupling • more dynamic system behavior
Java Agent Frameworks • JADE (Open source) • http://jade.tilab.com/ • Living Systems (Whitestein) • http://www.living-systems.com/ • Agentis (Agentis) • http://www.agentissoftware.com/ • JACK Intelligent Agents (AOS) • http://www.agent-software.com/ • For a more comprehensive list, see http://www.agentlink.org
Software Agents in Enterprise Applications • Application areas: • Information retrieval • Desktop assistants • Task Automation • Automated Control and Audit • Business Process support • Dynamic Planning and Optimization • Decision Support
Task automation • Increase efficiency of users by automating menial tasks • Produce semi-finished products for user verification • Essential for increased process support
Automated control and audit • New requirements for control and audit • Sarbanes Oxley act • Simplified implementation and maintenance of control points
Dynamic Planning and Optimization • Planning is inherently hard in changing environments • Number and frequency of changes make plans obsolete quickly • Humans have to spend considerable time in keeping plans up to date • Agents can update the plans automatically as changes happen • Examples: • Offshore lifting schedules • Refinery supply planning • Optimization of jetty utilization at storage terminals • Depot planning • Outside Statoil: Store supply operations (Truck fleet optimization)
Decision Support • Active way of providing timely information • Control information overflow • Alert of imminent crisis and suggest plan of action • Examples: • Oil Trading • Shipping Operations • Risk Management • Outside Statoil: Military Command and Control, Combat Radar Operators and London Underground Central Control
Credit Check Invoice Customer Order Entry Order Approval Order From Supplier Prepare Shipment Business Process Support • Business processes run in parallel and communicate • Communication between processes defined by “contracts”. • Contract defines information flow between business processes • Contracts become business events • BPM tools have been tried, but are generally too rigid
Event Oriented Architecture (EOA) • Mimics the event driven nature of business • Supports many-to-many connections • Has a flow of control that is determined by the recipient based on the message itself • Supports dynamic, parallel, asynchronous flows through a network of modules • Can react to new, external input that may arrive at unpredictable times Information System Architecture
Process Controller agents • Goal of completing the process with a given result • Uses different flows depending on situation • Example: Contract Generation for Deals Business rule: “When a new deal is created, a contract must be generated and approved within 24 hours”
Process Support Demo Scenario • Contract document generation for a new oil trade (Deal) • The trader has agreed on a sale or purchase of oil with a customer and entered it into the trading system • Business rule: A contract document must be generated, approved and sent to the customer within 24 hours • Steps: • Generate the contract document (Contract Responsible) • Acquire approval (Trader) • Send to the customer (not included in the demo)
Process Controller Agent • Watches the DealRepository and sees when a new deal is created • Goal: Contract sent to user within 24 hours of deal creation. • Options: • Automatic creation with user verification • Manual creation by user • Issues notice if task have not been handled within deadlines
Broker Agents • TaskBroker: • Responsible for distributing the manual tasks to the relevant user(s). This could be one user or a group of users with the same role. • Makes sure that only one user performs the task • Makes sure tasks are handled within their given deadline • InfrastructureBroker: • Keeps track of all process controller and user agents in the system • Provides a list of applicable user agents for a given task
User Agent • Maintains “Notification list” • Handles communication with Task Broker • When user starts to work on a task • On task completion • If Task Broker interrupts with a notice on incomplete tasks
Developing IntelligentAgent Systems: A Practical Guide, Lin Padgham and Michael Winikoff, John Wiley & Sons, 2004 Introduction to Multi-Agent Systems, Michael Wooldridge, John Wiley & Sons, 2001 AgentLink: http://www.agentlink.org Google – lots of great articles IEEE IExplore: http://ieeexplore.ieee.org/Xplore/guesthome.jsp (requires registration, some articles are members only) References and further reading