Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 1 Agenten-Technologien in Java Jochen Hiller

Ähnliche Präsentationen


Präsentation zum Thema: "Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 1 Agenten-Technologien in Java Jochen Hiller"—  Präsentation transkript:

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

2 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 2 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

3 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 3 Modell eines Agenten Plausibilität Modelle Entscheidungen Informationen Handlungen

4 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 4 Architektur eines Agenten SENSOR AKTOR Environment Inferenz- maschine Ziele Wünsche Intentionen Erfahrungen Modell

5 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 5 Agenten zur Entscheidungs-Unterstützung Filtern Informationen Beschaffen Modell- bildung Entscheidung Fortschritt

6 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 6 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.

7 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 7 Warum werden Agenten-Technologien mit Java 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.

8 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 8 Welche Java / XML Standards gibt es im Umfeld Agententechnologien (Auszug) ? Object Management Group: Mobile Object Facility (MAF) Ergänzung der OMG Standards um die Mobilität von Agenten Siehe Foundation for Intelligent Physical Agents (FIPA) Organisation vergleichbar der OMG für Agenten-Technologien: Implementierung sind weitestgehend Java basierend. Es gibt Referenz-Installationen und Interoperabilitäts-Tests SUN JSR 87: Java Agent Service (JAS) Siehe Reservierter Namespace: javax.agenthttp://www.jcp.org/jsr/detail/87.jsp Community Draft: Juli 2001 SUN JSR 94: Java Rules Engine API Siehe Reservierter Namespace: javax.rules.http://www.jcp.org/jsr/detail/94.jsp Public Draft angekündigt für April 2001, noch nicht verfügbar RuleML: XML Sprache zur Repräsentation von Fakten/Regeln Siehe Erster RuleML Editor auf Basis von Mandaraxhttp://www.dfki.uni-kl.de/ruleml/

9 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 9 FIPA – Referenz-Architektur Agent Directory Facilitator (DF) Agent Management System (AMS) Message Transport Service (MTS) Z.B. über IIOP, RMI, HTTP Agent Platform (AP) Software

10 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 10 Frei verfügbare Agenten-Plattformen (Auszug) FIPA-OS (emorphia): Comet Way JAK: Aglets (IBM): IBM Agenten-Plattform Seit kurzem auch OpenSource: JADE (Telecom Italia Lab) Java Agent DEvelopment Framework, FIPA compliant Jackel (UMBC): DAgents (Dartmouth College): Früher: Agent Tcl, eine der ersten Agenten-Plattformen MOLE (Uni Stuttgart):

11 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 11 Kommerzielle Agenten-Plattformen (Auszug) Living Systems: Anbieter von Martkplatz-Lösung auf Basis von Agententechnologien Produkte: living agents, living markets IKV++: GrassHopper Agent platform Produkt: GrassHopper, WebHopper OMG MASIF und FIPA-97 Add-on Komponenten ObjectSpace: Voyager Product: Voyager ORB Professional, Object Mobility and Mobile Agents J2EE kompatibler Application Server on top Reticular: AgentBuilder: Toolset zur Konstruktion Intelligenter Software Agenten-Systeme

12 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 12 Warum benötigt man Rule Engines ? home brewed code EJB server.. transaction persistency security.. EJB server.. rule engine business logic costs, risks

13 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 13 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

14 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 14 Kernelemente der logischen Programmierung (am 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.

15 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 15 Klassische 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.. }

16 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 16 Mandarax – Definition von Fakten / Regeln // Instanzen werde mit einer Factory erzeugt, zusaetzlich wird eine weitere // Utility-Klasse benutzt, die das generieren von Objekten weiter vereinfact LogicFactory 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 umbewandelt Class[] 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 vordefiniert Fact 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%.

17 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 17 Mandarax – Arbeiten mit Regeln / Inference Engine // Implementierung mit Geschaeftsregelframework public Discount getDiscount (Customer customer) { // Erzeuge Anfrage Class[] parameters = {Customer.class, Discount.class}; Predicate getsDiscount = new SimplePredicate("get discount",parameters); Fact query = factorySupport.fact (getsDiscount, customer, "a discount"); // Anfrage stellen InferenceEngine ie = new ResolutionInferenceEngine (); KnowledgeBase kb =..; // hier sind die Regeln gespeichert Result 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

18 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 18 Mandarax – Integration von Fakten // DB ist hier eine Klasse die eine Datenbank simuliert AutoFacts 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 package Predicate[] predicates = {DoubleArithmetic.GREATER_THAN}; af.setPredicates (predicates); AutoFacts erleichtern die Integration von bestehenden Datenbeständen, z.B. Datenbanken, Objects in Memory, EJBs Die Implementierung basiert auf einem Iteratoren Konzept, wo Fakten zur Laufzeit ausgewertet werden, und dann zur Verfuegung stehen.

19 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 19 Mandarax – Wissensbasis in RuleML (v0.8) grandfather x z father y z father x y father Jens Max Mandarax ist der erste verfügbare Editor für RuleML basierende Wissensbasen

20 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 20 Welche Java Implementierungen von regelbasierten Systemen sind verfügbar ? Frei verfügbare Implementierungen: JESS: Java Expert System Shell –Von sandia.gov, Ernest J. Friedman-Hill –Siehe –(fast) CLIPS kompatible Expert Shell Mandarax: –Siehe Kommerzielle Produkte: ILOG: JRules 3.0 –Siehe –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 –Pure Java Lösung

21 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 21 Oryx – Das Toolkit zu Mandarax Wurde von Jens Dietrich als Add-On Tool zu Mandarax Siehe Frei für den Unversitären Bereich Kommerzielle Lizenzen bei Jens Dietrich erhältlich

22 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 22 Oryx - 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 JSPs zu entwerfen, basierend auf Tag-Libraries Basiert auf dem MVC-Konzept, geringer Code im Controller Vorgefertigte JSPs 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.

23 Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 23 Sonstige Links / Resources FIPA: Foundation for Intelligent Physical Agents, UMBS AgentWeb: EU ESPRIT: Cetus-Links: Agenten in Raucherkinos. Grundlagen und Hintergründe Artikelreihe in Java Magazin, ab JavaMagazin 07/2001 Christian Dannegger, Dr. Klaus Dorer (living systems AG)


Herunterladen ppt "Bauer & Partner - The Business and Technology Group. © 2001JFS2001 / Slide 1 Agenten-Technologien in Java Jochen Hiller"

Ähnliche Präsentationen


Google-Anzeigen