260 likes | 432 Vues
This presentation, by Jørn Ølmheim at JavaZone 2005, explores the transformative role of software agents in enterprise applications. With a focus on automation and dynamic process support, it delves into event-oriented architecture, domain-driven design, and agile methodologies to enhance application flexibility and interaction. Attendees will gain insights into how intelligent agents can automate tasks, improve efficiency, and adapt swiftly to changing requirements, showcasing practical applications in business processes and decision support systems.
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