agenten-technologien in java

23
Bauer & Partner - The Business and Technology Group. © 2001 JFS2001 / Slide 1 Agenten-Technologien Agenten-Technologien in Java in Java Jochen Hiller [email protected] Java Forum Stuttgart, 28.06.2001

Upload: jenna-booth

Post on 02-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Agenten-Technologien in Java. Jochen Hiller [email protected] Java Forum Stuttgart, 28.06.2001. Agenten sind Software-Objekte, die sich eigene Modelle von Ihrer Umgebung bilden und aufgrund dieser Entscheidungen treffen, und Handlungen ausführen. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 1

Agenten-TechnologienAgenten-Technologienin Javain Java

Jochen [email protected]

Java Forum Stuttgart, 28.06.2001

Page 2: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 2

Was sind Software-Agenten ?Was sind Software-Agenten ?

Agenten sind Software-Objekte, die sich eigene Modelle von Ihrer

Umgebung bilden und aufgrund dieser Entscheidungen treffen, und

Handlungen ausführen.

Diese können zur Beschaffung und/oder Verarbeitung von Informationen

eingesetzt werden.

Software-Agenten sind: Autonom

Kommunikativ

Kooperativ

Können Wissen verarbeiten

Lernfähig

Mobil

Page 3: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 3

Modell eines AgentenModell eines Agenten

Plausibilität

Mo

del

le

Entscheidungen

Informationen

Handlungen

Page 4: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 4

Architektur eines AgentenArchitektur eines Agenten

SENSOR

AKTOR

Environment

Inferenz-maschine

• Ziele• Wünsche• Intentionen• Erfahrungen

Modell

Page 5: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 5

Agenten zur Entscheidungs-UnterstützungAgenten zur Entscheidungs-Unterstützung

Fil

tern

Informationen

Bes

chaf

fen

Mo

del

l-b

ild

un

g

Entscheidung

Fortschritt

Page 6: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 6

Was haben Software-Agenten mit OO / KI zu tun?Was haben Software-Agenten mit OO / KI zu tun?

Agententechnologien verbinden die Ideen der Künstlichen Intelligenz (KI) mit den Prinzipien der Objekt-Orientierung

Übertragen der realen Welt in ein Software-Paradigma: Einzelne agierende „Personen“ werden durch Agenten repräsentiert, die eigene Ziele verfolgen, ein Modell zugrunde liegen haben (z.B. Reise-Agent, Logistik-Agent, Trader)

Kapselung: Ein Agent kapselt seine eigenen Ziele und Regeln. Damit wird ein Agent zu einer in sich abgeschlossenen, übersichtlichen Einheit

Verteilung: Ein Agentensystem entsteht erst durch eine Reihe von kommunizierenden Agenten. Die Komplexität eines Gesamtsystems liegt dann in der Gesamtarchitektur und in dem entsprechenden „Agenten-Modell“.

Agenten sind in dem Sinne komplexere Objekte, mit eigenständigem, aktivem Verhalten und der Fähigkeit zum Lernen

Agenten werden heute mit OO Technologien implementiert.

Monolithische KI Systeme (wie Expertensysteme) werden mit Agententechnologien aufgebrochen, modularisiert.

Page 7: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 7

Warum werden Agenten-Technologien mit Java Warum werden Agenten-Technologien mit Java umgesetzt ?umgesetzt ?

Plattformunabhängigkeit: Ein Java-Agent kann auf einer beliebigen Java Plattform ablaufen

Netzwerk-zentriert: Java kann sowohl Daten wie auch Code sehr einfach im Netzwerk nutzen wie auch migrieren (Mobilität)

Security-Konzept: Java arbeitet in einer Sandbox. D.h. Agenten, die auf eine Plattform wechseln, haben eine definierte Laufzeitumgebung, ohne die Sandbox (ohne Rechte) verlassen zu können

Dynamisches Binden: Klassen werden erst zur Laufzeit gebunden. Damit hat man die notwendige Flexibilität, sehr dynamische Plattformen bereitzustellen

Reflection, Proxies: Erleichtern die Implementierung von Agenten-Plattformen.

Page 8: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 8

Welche Java / XML Standards gibt es im Umfeld Welche Java / XML Standards gibt es im Umfeld Agententechnologien (Auszug) ?Agententechnologien (Auszug) ?

Object Management Group: Mobile Object Facility (MAF) Ergänzung der OMG Standards um die Mobilität von Agenten

Siehe http://www.omg.org/technology/documents/formal/mobile_agent_facility.htm

Foundation for Intelligent Physical Agents (FIPA) Organisation vergleichbar der OMG für Agenten-Technologien: http://www.fipa.org

Implementierung sind weitestgehend Java basierend. Es gibt Referenz-Installationen und Interoperabilitäts-Tests

SUN JSR 87: Java Agent Service (JAS) Siehe http://www.jcp.org/jsr/detail/87.jsp. Reservierter Namespace: javax.agent

Community Draft: Juli 2001

SUN JSR 94: Java Rules Engine API Siehe http://www.jcp.org/jsr/detail/94.jsp. Reservierter Namespace: javax.rules.

Public Draft angekündigt für April 2001, noch nicht verfügbar

RuleML: XML Sprache zur Repräsentation von Fakten/Regeln Siehe http://www.dfki.uni-kl.de/ruleml/. Erster RuleML Editor auf Basis von Mandarax

Page 9: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 9

FIPA – Referenz-ArchitekturFIPA – Referenz-Architektur

Agent

Directory Facilitator (DF)

Agent Management System

(AMS)

Message Transport Service

(MTS)

Z.B. über IIOP, RMI, HTTP

Agent Platform (AP)

Software

Page 10: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 10

Frei verfügbare Agenten-Plattformen (Auszug) Frei verfügbare Agenten-Plattformen (Auszug)

FIPA-OS (emorphia): http://fipa-os.sourceforge.net/

Comet Way JAK: http://www.cometway.com/jak

Aglets (IBM): http://www.trl.ibm.com/aglets/ IBM Agenten-Plattform

Seit kurzem auch OpenSource: http://aglets.sourceforge.net/

JADE (Telecom Italia Lab) http://sharon.cselt.it/projects/jade/ Java Agent DEvelopment Framework, FIPA compliant

Jackel (UMBC): http://jackal.cs.umbc.edu/

D‘Agents (Dartmouth College): http://agent.cs.dartmouth.edu/ Früher: Agent Tcl, eine der ersten Agenten-Plattformen

MOLE (Uni Stuttgart): http://mole.informatik.uni-stuttgart.de/

Page 11: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 11

Kommerzielle Agenten-Plattformen (Auszug) Kommerzielle Agenten-Plattformen (Auszug)

Living Systems: http://www.living-systems.com Anbieter von Martkplatz-Lösung auf Basis von Agententechnologien

Produkte: living agents, living markets

IKV++: GrassHopper Agent platform http://www.grasshopper.de Produkt: GrassHopper, WebHopper

OMG MASIF und FIPA-97 Add-on Komponenten

ObjectSpace: Voyager http://www.objectspace.com/ Product: Voyager ORB Professional, Object Mobility and Mobile Agents

J2EE kompatibler Application Server on top

Reticular: AgentBuilder: http://www.agentbuilder.com/ Toolset zur Konstruktion Intelligenter Software Agenten-Systeme

Page 12: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 12

Warum benötigt man Rule Engines ?Warum benötigt man Rule Engines ?

home brewedcode

EJBserver

..

transactionpersistency security ..

EJBserver

..

ruleengine

businesslogic

costs, risks

Page 13: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 13

Mandarax– Warum eine weitere Rule Engine ?Mandarax– Warum eine weitere Rule Engine ?

Die meisten Ansätze basieren auf Programmiersprachen wie Prolog und CLIPS

Es gibt sehr wenige OpenSource Implementierungen, und nur eine einzige Java basierende (JESS)

Java basierende Rule Engines müssen in heutige Architekturen integrierbar sein (z.B. EJB)

Siehe Architektur Vorschlag von SUN Engineers in JavaReport 07/2000

JSR 94: Java Rules Engine API

Grundsätzliche Idee: Transparente Integration von bestehenden Anwendungen über einfache Adapter / Connectoren Technologie

Direkte Nutzung des Objekt-Modelles als Wissensbasis für Fakten

Tools fehlen zum Bearbeiten von Wissensbasen und Fakten / Regeln Graphische Tools

Nutzung von offenen XML basierenden Standards zur Repräsentation

Page 14: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 14

Kernelemente der logischen Programmierung (am Kernelemente der logischen Programmierung (am Beispiel Prolog)Beispiel Prolog)

Fact Jens ist der Vater von Max.

Klaus ist der Vater von Jens.

father (Jens, Max). father (Klaus, Jens).

Rule Wenn X Vater von Z UND Z Vater von Y ist, dann ist X Grossvater von Z.

grandfather (X, Y) <- father (X,Z), father (Z,Y).

Query Ist Klaus Grossvater von Max ?

grandfather (Klaus, Max)?

Inference Engine Die Abstrakte Maschine, die die Fakten und Regeln auflöst, und Queries beantworten

kann.

Page 15: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 15

Klassische Implementierung von GeschäftslogikKlassische Implementierung von Geschäftslogik

If the value of all transactions of a customer is more than 100$ in

one year then he qualifies for a discount of 10%.

// Klassische Implementierung, // Geschäftsregeln sind hart codiert

public Discount getDiscount (Customer customer) {int turnover = customer.getTurnover (12);

// Regeln sind hier implementiert, // der Constructor fuer Discount// erzeugt einen prozentualen Discount von 10%if (turnover > 100) return new Discount (10, true);

if ..}

Page 16: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 16

Mandarax – Definition von Fakten / RegelnMandarax – Definition von Fakten / Regeln

// Instanzen werde mit einer Factory erzeugt, zusaetzlich wird eine weitere // Utility-Klasse benutzt, die das generieren von Objekten weiter vereinfactLogicFactory factory = LogicFactory.getDefaultFactory ();LogicFactorySupport factorySupport = new LogicFactorySupport (factory);

// Erzeuge Term fuer "a customer"Term aCustomer = factory.createVariableTerm ("aCustomer", Customer.class);// Erzeuge Term fuer "one year" (= 12 Monate)Term oneYear = factory.createConstantTerm (new Integer (12));

// Erzeuge Term fuer "the value of all transactions of a customer in one year". // new Integer(12) wird automatisch in einen constanten Term umbewandeltClass[] parameterTypes = {Integer.TYPE};Method aMethod = Customer.class.getMethod ("getTurnover", parameterTypes);Function turnover = new JFunction (aMethod);Term valueOfCustomer = factorySupport.cplx.(turnover, aCustomer, new Integer (12));

// Erzeuge Premisse. Das Standardpredikate > ist vordefiniertFact premisse = factorySupport.fact (IntArithmetic.GREATER_THAN, valueOfCustomer,

new Integer (100));// ...

If the value of all transactions of a customer is more than 100 $

in one year then he qualifies for a discount of 10%.

Page 17: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 17

Mandarax – Arbeiten mit Regeln / Inference EngineMandarax – Arbeiten mit Regeln / Inference Engine

// Implementierung mit Geschaeftsregelframeworkpublic Discount getDiscount (Customer customer) {

// Erzeuge AnfrageClass[] parameters = {Customer.class, Discount.class};Predicate getsDiscount = new SimplePredicate("get discount",parameters);Fact query = factorySupport.fact (getsDiscount, customer, "a discount");

// Anfrage stellenInferenceEngine ie = new ResolutionInferenceEngine ();KnowledgeBase kb = ..; // hier sind die Regeln gespeichertResult result = ie.query (query, kb);Replacement replaced = result.getReplacements ()[0];Discount discount4Customer = (Discount) replaced.replacement.getObject ();return discount4Customer;

}

Regeln werden in der Wissensbasis hinterlegt.

Mittels der Inference Engine kann eine Query auf die

Wissensbasis abgesetzt werden

Page 18: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 18

Mandarax – Integration von FaktenMandarax – Integration von Fakten

// DB ist hier eine Klasse die eine Datenbank simuliertAutoFacts af = new AutoFacts () {

public Collection getExtension (Class clazz) {if (clazz==Customer.class) return DB.getCustomers ().values ();if (clazz==Category.class) return DB.getCategories ().values ();if (clazz==KindOfPayment.class) return DB.getKindsOfPayment ().values ();return super.getExtension (clazz);

}};

// benutze vordefiniertes Standardpraedikat aus dem org.mandarax.math packagePredicate[] predicates = {DoubleArithmetic.GREATER_THAN};af.setPredicates (predicates);

AutoFacts erleichtern die Integration von bestehenden

Datenbeständen, z.B. Datenbanken, Objects in Memory, EJB‘s

Die Implementierung basiert auf einem Iteratoren Konzept, wo

Fakten zur Laufzeit ausgewertet werden, und dann zur

Verfuegung stehen.

Page 19: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 19

Mandarax – Wissensbasis in RuleML (v0.8)Mandarax – Wissensbasis in RuleML (v0.8)

<?xml version="1.0" encoding="UTF-8"?><rulebase> <imp> <_head> <atom> <_opr> <rel>grandfather</rel> </_opr> <var>x</var> <var>z</var> </atom> </_head> <_body> <and> <atom> <_opr> <rel>father</rel> </_opr> <var>y</var> <var>z</var> </atom>

<atom> <_opr> <rel>father</rel> </_opr> <var>x</var> <var>y</var> </atom> </and> </_body> </imp> <fact> <_head> <atom> <_opr> <rel>father</rel> </_opr> <ind>Jens</ind> <ind>Max</ind> </atom> </_head> </fact></rulebase>

Mandarax ist der erste verfügbare Editor für RuleML basierende

Wissensbasen

Page 20: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 20

Welche Java Implementierungen von regelbasierten Welche Java Implementierungen von regelbasierten Systemen sind verfügbar ?Systemen sind verfügbar ?

Frei verfügbare Implementierungen: JESS: Java Expert System Shell

– Von sandia.gov, Ernest J. Friedman-Hill– Siehe http://herzberg.ca.sandia.gov/jess – (fast) CLIPS kompatible Expert Shell

Mandarax:– Siehe http://www.mandarax.org

Kommerzielle Produkte: ILOG: JRules 3.0

– Siehe http://www.ilog.com/products/rules/engines/jrules31/– Kommerzielles Produkt auf Basis der vorigen C++ Produkte– Integriert sich z.B. in die Portal-Technologien von BEA WebLogic

BlazeSoft (Brokat): Advisor Rule Server and Engine– Siehe http://www.blazesoft.com/products/advisor_server.html– Pure Java Lösung

Page 21: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 21

Oryx – Das Toolkit zu MandaraxOryx – Das Toolkit zu Mandarax

Wurde von Jens Dietrich ([email protected]) als

Add-On Tool zu Mandarax entwickelt

Siehe http://www.jbdietrich.de

Frei für den Unversitären Bereich

Kommerzielle Lizenzen bei Jens Dietrich erhältlich

Page 22: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 22

Oryx - FeaturesOryx - Features Oryx bietet Unterstützung für die persistente Ablage

Java Serialisierung

XML basierte Ablage (intern, RuleML v0.8 kompatibel)

Swing UI components Wissensbasis-Editor, Fakt und and Regel-Editor,

Ableitungsbäume, Ad-Hoc Queries

Blueprint support für Lesbare Regeln

Web UI components Umfangreicher support um JSP‘s zu entwerfen, basierend auf Tag-Libraries

Basiert auf dem MVC-Konzept, geringer Code im Controller

Vorgefertigte JSP‘s für den Wissensbasis, Fakt und Regel Editor

>30 unterschiedliche tags

Erweiterte Inference Engine Ermittlung von N Ergebnisse.

Die Anzahl der zu ermittelnden Ergebnisse kann bei der Query mitgegeben werden.

Page 23: Agenten-Technologien in Java

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 23

Sonstige Links / ResourcesSonstige Links / Resources

FIPA: Foundation for Intelligent Physical Agents,

http://www.fipa.org/

UMBS AgentWeb: http://agents.umbc.edu/

EU ESPRIT: http://www.agentlink.org/

Cetus-Links: http://www.cetus-links.org/oo_mobile_agents.html

Agenten in Raucherkinos. Grundlagen und Hintergründe Artikelreihe in Java Magazin, ab JavaMagazin 07/2001

Christian Dannegger, Dr. Klaus Dorer (living systems AG)