Agent Building and Learning Environment ABLE 2.0 Overview Joe - - PowerPoint PPT Presentation

agent building and learning environment able 2 0 overview
SMART_READER_LITE
LIVE PREVIEW

Agent Building and Learning Environment ABLE 2.0 Overview Joe - - PowerPoint PPT Presentation

Agent Building and Learning Environment ABLE 2.0 Overview Joe Bigus, Ph.D. IBM T.J. Watson Research Center October, 29 2003 Outline ABLE Project overview Intelligent Agents ABLE Agent Framework ABLE Component Library


slide-1
SLIDE 1

Agent Building and Learning Environment ABLE 2.0 Overview

Joe Bigus, Ph.D. IBM T.J. Watson Research Center October, 29 2003

slide-2
SLIDE 2

5/12/2005 Able Overview 2

Outline

  • ABLE Project overview
  • Intelligent Agents
  • ABLE Agent Framework
  • ABLE Component Library
  • ABLE Rule Language
  • ABLE Agent Platform
  • ABLE Development Tools
  • Example Applications
  • Tutorial : Differentiated Quality of Service
slide-3
SLIDE 3

5/12/2005 Able Overview 3

What is ABLE?

  • A Java framework and toolkit for constructing hybrid

intelligent agents (1999)

  • A productivity toolkit for adding intelligent software

functions to Java applications (2000)

  • A toolkit for building multiagent intelligent autonomic

systems (2002)

  • A business rules and policy run-time framework
  • “A RAD environment for agents”
  • An Autonomic Computing core technology (2003)
  • A commercial multi-agent platform
slide-4
SLIDE 4

5/12/2005 Able Overview 4

ABLE Project Overview

ABLE Framework

Rules Data Mining Agents

Scripting Simple if-then rules Rete’ net Prolog Fuzzy systems Planning Event Correlation Templates Author/Debug tools Autonomous Asynchronous event processing Timer-based processing Distributed multi-agent platform and admin console Conversational support Author/Test/Debug tools Classification Clustering Prediction Optimization Neural Networks Decision Tree Naïve Bayes k-NN Genetic algorithms

slide-5
SLIDE 5

5/12/2005 Able Overview 5

Agents are active, persistent software components that perceive, reason, Agents are active, persistent software components that perceive, reason, act, and communicate. (Huhns and S ingh) act, and communicate. (Huhns and S ingh) Sof t ware t hat Sof t ware t hat assist s

assist s people and act s on t heir behalf

people and act s on t heir behalf Agent s can help Agent s can help people people and and processes processes Agent s are used f or aut omat ion and cont rol Agent s are used f or aut omat ion and cont rol

What Are I ntelligent Agents?

finding and filtering information personalizing your environment negotiating for services automating tedious tasks taking actions you delegate learning about you over time collaborating with other agents capturing individual and

  • rganizational knowledge

sharing knowledge

finding and fixing problems automating complex procedures finding "best fit" procedures pattern recognition and classification predictions and recommendations negotiate and cooperate with other

  • rganizations' agents
slide-6
SLIDE 6

5/12/2005 Able Overview 6

Environment Sensors Effectors Decision-making Behavior Perception Domain Knowledge Memory Attention Planning Learning Reasoning

Intelligent Agent - Abstract Architecture

slide-7
SLIDE 7

5/12/2005 Able Overview 7

What can ABLE do?

Describe autonomic manager behavior using rules Learn from experience and predict future states Analyze sensor data using classification and clustering algorithms to detect complex states and diagnose problems Have stateful conversations with other autonomic elements Interface with other autonomic components via web services Reason using domain-specific application objects Use boolean forward and backward chaining, predicates, fuzzy Have autonomous (proactive) behavior and goals Provide tooling to build, test, and debug these kinds of agents Plan sequences of actions for an autonomic manager Correlate events into situations, reason, and take actions

slide-8
SLIDE 8

5/12/2005 Able Overview 8

ABLE Agent Framework

slide-9
SLIDE 9

5/12/2005 Able Overview 9

AbleBeans – Java Agent Building Blocks

AbleBean

AbleBean

Dir ect met hod calls Not if icat ion Event s Act ion Event s

AbleEvent s

AbleBean, AbleRemoteBean: a Java interface (local and remote) AbleObject: AbleBean instantiation with autonomous thread Bean interactions: Direct method calls and event passing AbleEvents: Notification and Action events with synchronous and asynchronous event handling AbleBeanInfo and Customizer required for use in Agent Editor Set of core data access and algorithm beans supplied

slide-10
SLIDE 10

5/12/2005 Able Overview 10

AbleAgent

Sensor Ef f ect or get app data call app action

AbleBean A AbleBean C AbleBean B

App/ Service 1

App/ Service 2

AbleAgent, AbleRemoteAgent: a Java interface (extends AbleBean) Composable: can contain other AbleBeans and AbleAgents Sensors and Effectors: Allow agents to interface with apps Can be distributed, synchronous or asynchronous (autonomous)

AbleAgents – Intelligent JavaBeans

slide-11
SLIDE 11

5/12/2005 Able Overview 11

AbleBean Source File

import com.ibm.able.*; public class SampleAbleBean extends AbleObject implements Serializable { public SampleAbleBean() throws RemoteException { this("SampleBean"); } public void init() throws RemoteException { // need to initialize state of this bean, algorithm vars, etc. -- do ONE TIME initializations // initialize asynchronous Timer (if used) and define Event processing behavior } public void process() throws RemoteException { // perform synchronous processing on caller's thread } public void processTimerEvent() throws RemoteException { // perform autonomous (asynchronous) processing on own thread } }

slide-12
SLIDE 12

5/12/2005 Able Overview 12

ABLE Component Library

slide-13
SLIDE 13

5/12/2005 Able Overview 13

ABLE Component Library

Machine Learning Machine Reasoning Agents Da ta Access/Analysis Back propagation Self organizing maps Radial Basis Functions TD-Lambda Decision Trees Naive Bayes Script (procedures) Forward / Backward chaining Predicate logic (Prolog) Rete'-based pattern match Fuzzy systems Planning (STRIPS) Text/DB read/write Cache, Filter, Transform Statistical routines Genetic algorithms

  • ther math analysis

Classification Autotune (closed loop control) Clustering Storage manager (multiple QoS) Prediction

slide-14
SLIDE 14

5/12/2005 Able Overview 14

ABLE Applicat ion Design

ABLE Cor e Beans Cust om Beans (domain-specif ic) Applicat ion Agent ABLE Libr ar y

slide-15
SLIDE 15

5/12/2005 Able Overview 15

AbleBean W r apper Design Pat t er n

my A l gor i t h mBean my A l gor i t h mCust omi z er my A l gor i t h mBeanI nf o t heA l gor i t hm

i ni t () my A l gor i t h mBean( ) pr ocess( ) set t er s( ) get t er s( ) t h eA l gor i t h m( ) init () pr ocess( ) get t er s( ) set t er s( ) pr ocessT i mer Event ( )

i n s t a n c e

A l l ows easy i nt egr at i on of ex i st i ng J ava al gor i t hms i nt o t he A b l e envi r onment Requi r es cr eat i on of 3 J ava cl asses, Bean wr apper , BeanI nf o and Cust omi z er Bean cont ai ns an i nst ance of t he al gor i t hm and cal l s met hod s on i t N o ( or mi ni mal ) sour ce changes r equi r ed i n t he al gor i t hm cl ass

slide-16
SLIDE 16

5/12/2005 Able Overview 16

ABLE Rule Language

slide-17
SLIDE 17

5/12/2005 Able Overview 17

Rule Logic Partitioning Tracing/Logging Debugging Tools Testing Tools Authoring Tools Scalable Run-Time Easy to Integrate Powerful Inference Algorithms Extensible Flexibility: Choice of Rule Engines Machine Learning Optimization Algorithms Procedural Scripting Templates

Ingredients of a Modern Rules Environment

slide-18
SLIDE 18

5/12/2005 Able Overview 18

  • A scripting language for AbleBeans and AbleAgents
  • A business rule and policy specification language
  • Very tight integration with Java objects and code
  • Allow mix of procedural scripting and declarative

inferencing as required

  • Rich set of inferencing algorithm support
  • Pluggable inference engines – optimized for run-time

requirements

  • Java-like text syntax and XML Schema representation

ARL Design Objectives

slide-19
SLIDE 19

5/12/2005 Able Overview 19

RuleBlock Rules Inference Engine Clauses Variables

ARL Parser

RuleBlocks

ARML Parser Rule APIs

Literals Inference Engine Inference Engine Application program Expressions

...

Text Ruleset XML Ruleset

XML Schema

Functions Java classes Methods

Text Grammar

Working Memory

Working Memory

AbleRuleSet bean Pluggable engines

ABLE Rules Architecture

slide-20
SLIDE 20

5/12/2005 Able Overview 20

Language Concepts

  • import and use Java classes, fields, methods
  • Domain-specific user-defined function libraries
  • Global variables, input/output variable lists
  • Rules: assertions, if-then, if-then-else, when-do, while-

do, for-loop, predicates

  • Rule blocks – sets of rules and inference engines
  • “Pluggable” Inference Engines – control algorithms
  • Working Memory
  • AbleRuleSet bean is run-time object
slide-21
SLIDE 21

5/12/2005 Able Overview 21

import <package>.class; library <package>.class; variables { } ; inputs{}; outputs{}; init() ruleblock preProcess() ruleblock process() ruleblock <myName>() ruleblock

  • Inf. Engine & controls
  • Inf. Engine & controls
  • Inf. Engine & controls
  • Inf. Engine & controls

D A T A R U L E S

import <package>.class; library <package>.class; variables { } ; predicates{} ; functions{} ; inputs{}; outputs{}; init() ruleblock preProcess() ruleblock process() ruleblock <myName>() ruleblock

D A T A R U L E S

catch() ruleblock processAbleEvent() ruleblock processTimerEvent() ruleblock <myName..N>() ruleblock

postProcess() ruleblock finally() ruleblock

ARL RuleSet Structure

slide-22
SLIDE 22

5/12/2005 Able Overview 22

ABLE RuleSet Example

ruleset SimpleBusinessRuleExample1 { import com.ibm.able.examples.rules.Customer ; variables { Customer customer ; Boolean seniorCitizen = false ; } inputs { customer };

  • utputs { seniorCitizen };

void process() using Script { SeniorTest: if (customer.age > 55) then seniorCitizen = true ; } }

slide-23
SLIDE 23

5/12/2005 Able Overview 23

  • Script - procedural
  • Fuzzy – forward chaining using Fuzzy logic
  • Forward – data-driven inferencing
  • Backward – goal-driven inferencing
  • PatternMatch - Forward with working memory
  • PatternMatchRete - Forward with Rete’ network
  • Predicate – backchaining with backtracking
  • Planning – classical AI planning engine (STRIPS)

ABLE Inference Engines

slide-24
SLIDE 24

5/12/2005 Able Overview 24

Built-in Data Types

  • Boolean – Java boolean
  • Byte/Short/Integer/Long – Java byte/short/int/long
  • Character – Java char (unicode value)
  • Double/Float – Java double/float
  • String – Java String
  • Object – java Object
  • Categorical/Discrete – set of Java Strings/doubles
  • Continuous – double with min/max limits
  • Fuzzy – linguistic variable with FuzzySets
  • TimeStamp – Java Calendar date/time object
  • TimePeriod – IETF compliant TimePeriod Conditions
  • Selector – query with constraints
  • Expression – holds a logical or math expression for use in rules
slide-25
SLIDE 25

5/12/2005 Able Overview 25

Rule Blocks

<type> <name>() using <engine> { ruleList } ;

  • Semantically equivalent to Java methods
  • Can specify a return data type
  • Can use pre-defined or user-defined name
  • No formal parameter lists, use global vars
  • Specify inference engine via using <engine> clause
  • <engine> can be any AbleInferenceEngine Java subclass
  • Body of ruleblock contains one or more Rules
  • Use setControlParameter() built-in function to set goals,
  • ptions, etc.
  • Ruleblock can have local or shared working memory
slide-26
SLIDE 26

5/12/2005 Able Overview 26

ARL Rule Syntax

<ruleLabel> { preConditions } [priority] : <ruleBody>;

  • ruleLabel – unique identifier in ruleset
  • preConditions – list of Java objects (e.g.TimePeriods)
  • priority – used in conflict resolution during inferencing
  • Rule body must be one of the ARL rule types
  • myRule { weekdaysOnly } [ 3.0 ] : println(“wow”);
slide-27
SLIDE 27

5/12/2005 Able Overview 27

ABLE Rule Templates

Allow IT Developer or Programmer to create rulesets and templates using WSAD editor Minimize external meta-data or artifacts Business user can create rules from templates using web-based UI Allow easy parameterization of rules and rule logic, with constraints on parameter values Reuse existing ABLE data types and ARL syntax Allow users to customize rule templates and create new rules Variable values are constrained based on ruleset author constraints Can generate individual rules or entire rulesets via templates Can edit generated rules using same authoring environment

slide-28
SLIDE 28

5/12/2005 Able Overview 28

ARL Rule Template Syntax

Ruleset myRuleTemplateExample { import com.ibm.myclass.Customer; variables { Customer customer = new Customer() ; // myclass type template Categorical customerLevel = new Categorical("gold", "silver", "platinum"); template String salesMsg = new String("Thank you for shopping IBM"); // example msg template Continuous discountValue = new Continuous(0.01, 0.50); // allow range from 1% to 50% Double discount = new Double(0.0) ; } inputs { customer } ;

  • utputs { discount } ;

void process() { Rule1: if (a > b) then println("regular old rule") ; Rule2: if (a <= b) then println("another regular old rule") ; template myRuleTemplate1: if ( customer.level == customerLevel ) // NOTE: Rule is a template then { discount = discountValue ; println( salesMsg ) ; } } }

slide-29
SLIDE 29

5/12/2005 Able Overview 29

slide-30
SLIDE 30

5/12/2005 Able Overview 30

Web-based UI for ABLE Rule Templates

slide-31
SLIDE 31

5/12/2005 Able Overview 31

slide-32
SLIDE 32

5/12/2005 Able Overview 32

ABLE Agent Platform

slide-33
SLIDE 33

5/12/2005 Able Overview 33

Agent A

Agent Directory Entry*

register() search() Agent B

send() receive()

( direct interaction )

Agent C

Agent Cloud

Agent E

Console

createAgentName()

Agent D

Service Root

getServiceRoot()

Platform Properties File

create() suspend() resume() etc

Naming Service Life Cycle Service Transport Service Agent Directory Service AbleJas Platform Support Logging Service

log activity() log problem() etc.

ABLE Distributed Agent Platform

slide-34
SLIDE 34

5/12/2005 Able Overview 34

Example agent platform

System1 Host1: 5001 Host3: 5003 Host2: 5002 System2 System3 Physical system JVM (separate job/process) Platform service Agent ADS Agent 1 LCS Host4:5001 Host6:5002 Host5:5001 ALS Agent 6 ANS Agent 8

Key

Agent 2 Agent 3 Agent 7 Agent 5 Agent 4 MTS EJS

slide-35
SLIDE 35

5/12/2005 Able Overview 35

Administrative Console

  • Manage agents running on remote

systems

  • Tool for administrator to manage or
  • versee many agents running on the

distributed platform.

  • View all agents by type, system, or

domain

  • View agent requests
  • Set level of autonomy for each agent
slide-36
SLIDE 36

5/12/2005 Able Overview 36

Hierarchical Peer-to-Peer

Autonomic Agents

slide-37
SLIDE 37

5/12/2005 Able Overview 37

Hierarchical Peer-to-Peer

Autonomic Agents

slide-38
SLIDE 38

5/12/2005 Able Overview 38

ABLE Development Tools

slide-39
SLIDE 39

5/12/2005 Able Overview 39

ABLE Rule Language Source Level Debugger in Eclipse

slide-40
SLIDE 40

5/12/2005 Able Overview 40

Step Cycle Run Halt

Canvas area Canvas contents Bean palette Serialized file name Process buttons Container agent name Bean tree Status line Bean

Connection State indicator

Swing Agent Editor

slide-41
SLIDE 41

5/12/2005 Able Overview 41

ABLE Agent Editor in Eclipse using GEF

slide-42
SLIDE 42

5/12/2005 Able Overview 42

ABLE Applications

slide-43
SLIDE 43

5/12/2005 Able Overview 43

WebSphere Health DB2 Health Servlet/EJB JVM Health Apache Health num threads num conx'ns num queries num GCs CPU Util num hits

... ...

AbleFuzzyRuleSets

System Health Monitoring using Fuzzy Rules System Health Monitoring using Fuzzy Rules

slide-44
SLIDE 44

5/12/2005 Able Overview 44

Agent- Based Diagnostics Agent- Based Diagnostics

New Case

Agents

Case Retrieval

Case Base

Case Modification Diagnostic Manager Agent-Vehicle Dialog Mgr Case Learning Diagnostic Agents Diagnostic Agents Diagnostic Agents

slide-45
SLIDE 45

5/12/2005 Able Overview 45

Agent Properties

  • Flexible
  • Autonomic
  • Generic
  • KeepAlive
  • MaxClients
  • CPU
  • MEM

Users Apache Web Server

Desired Utilization Level

AutoTune Agent

  • Modeling
  • Run-time Control

Autotune Agent Web-Tuning Scenario

slide-46
SLIDE 46

5/12/2005 Able Overview 46

Design Phase I: System Modeling

slide-47
SLIDE 47

5/12/2005 Able Overview 47 Director Resource Monitor

Manager

(job failure)

Task

(msg analysis)

Manager

(comm failure)

Task

(Comm Trace Taker)

Task

(Gross Comm Trace Analyzer)

Task

(Fine Comm Trace Analyzer)

Manager

(PTFanalysis)

Task

(PTF Finder)

Task

(PTF Installer)

Task

(System Data)

iSeries

Task

(event analysis)

eSupport Intelligent Agent - phase n (IAn)

IBM Service Engineer (or customer)

slide-48
SLIDE 48

5/12/2005 Able Overview 48

SysAdminBrain RuleSet SysAdminActions RuleSet

CPUW atcher

FindLargeObjects findDuplcateJ

  • bs

Cleanup FindRunawayJobs DiskWatcher DiskPredictor NOJ Watcher

iSer ies Syst em Adminst r at ion using ABLE

S ysAdmin Agent Task/Info Agents Action Agents

slide-49
SLIDE 49

5/12/2005 Able Overview 49

Perf ormance Predict ion using Neural Net works Perf ormance Predict ion using Neural Net works

Monit or Dat a Neur al Pr edict ionAgent W ebSer ver r unning on W indows 2000 Hit wit h var iable wor kload, seasonalit y Capt ur e Per f or mance Monit or Dat a Tr ain neur al net wor k t o pr edict f ut ur e r esponse t ime

slide-50
SLIDE 50

5/12/2005 Able Overview 50

For More Information

  • ABLE 2.0.1 driver posted to alphaWorks in October
  • ABLE toolkit drivers and on-line info available at IBM alphaworks:

www.alphaworks.ibm.com/tech/able

  • IBM external project page at:

www.research.ibm.com/able

  • Recent ABLE IBM Systems Journal Article at:

http://researchweb.watson.ibm.com/journal/sj/413/bigus.html

  • Recent Autotune IBM Systems Journal Article at:

http://www.research.ibm.com/journal/sj/421/diao.pdf

  • Java Agent Services (JAS) webpage: http://www.java-agent.org/
  • FIPA webpage: http://www.fipa.org/
slide-51
SLIDE 51

5/12/2005 Able Overview 51

ABLE Tutorial

slide-52
SLIDE 52

5/12/2005 Able Overview 52

Differentiated Quality of Service

Silver Customer Gold Customer Platinum Customer SAN Manager Silver Policy Gold Policy Platinum Policy SAN Storage

slide-53
SLIDE 53

5/12/2005 Able Overview 53

SAN Manager Scenario Overview

Uses new AbleRuleAgent as rules-based policy manager Models multiple quality of service levels (represented by rule sets) N systems are defined, each with associated QoS levels Requests include system identifier and current utilization The SAN Manager: Looks up QoS for that system Invokes the corresponding QoS rule set Rule sets make recommendations that allocations are either unchanged, increased or decreased SAN Manager evaluates recommendations and changes allocations based on total capacity limit

slide-54
SLIDE 54

5/12/2005 Able Overview 54

Platinum QoS RuleSet

// Low allocation : if Allocation is Low and Utilization is Low then RecommendedAction = NoAction; : if Allocation is Low and Utilization is Normal then RecommendedAction = NoAction; : if Allocation is Low and Utilization is High then RecommendedAction = IncreaseAllocation; // Normal allocation : if Allocation is Normal and Utilization is Low then RecommendedAction = DecreaseAllocation; : if Allocation is Normal and Utilization is Normal then RecommendedAction = NoAction; : if Allocation is Normal and Utilization is High then RecommendedAction = IncreaseAllocation; // High allocation : if Allocation is High and Utilization is Low then RecommendedAction = DecreaseAllocation; : if Allocation is High and Utilization is Normal then RecommendedAction = DecreaseAllocation; : if Allocation is High and Utilization is High then RecommendedAction = Send.Warning_LowMem; : if Allocation is positively High and Utilization is positively High then RecommendedAction = Send.Warning_CritMem;

slide-55
SLIDE 55

5/12/2005 Able Overview 55