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

Slides:



Advertisements
Ähnliche Präsentationen
Alexander Stuber & Partner
Advertisements

Copyright © Siemens Enterprise Communications GmbH & Co. KG All rights reserved. Siemens Enterprise Communications GmbH & Co. KG is a Trademark Licensee.
Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
Microsoft Referenzarchitekturen- Infrastruktur für Connected Systems
1 Sascha Michael Competence Manager Integration Umsetzung einer SOA-basierten Retail Plattform.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
DI Christian Donner cd (at) donners.com
Herzlich Willkommen zum Informations-Forum: SAP Interoperabilität
Dr. M. Schlottke Common Description of Web Services Source: P. Gerbert, 2002 Web Services allow to establish B2B e-commerce on the fly Web Services allow.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Java 2 Enterprise Edition (J2EE)
ATHOS Benutzertreffen 2007
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Dynamische Webseiten Java servlets.
Objektorientierte Programmierung JDK-Klassenbibliothek
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
Seminar SE: MDE 1 FG Software Engineering Software Engineering Seminar Model Driven Engineering Seminar des Fachgebiet Software Engineering Ruben Jubeh,
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
.NET – Quo Vadis? Dariusz Parys Developer Group Microsoft GmbH.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
01 Installation / Support. © beas group 2011 / Page 2 This documentation and training is provided to you by beas group AG. The documents are neither approved.
Status eSciDoc Malte Dreyer eSciDoc Hauptaktivitäten in 2006 Abstimmung mit den Zielgruppen Funktionale Anforderungserhebung mit.
© Zühlke 2011 Martin Kutz XingApp - Cross Platform Cross Platform Tests mit Mono am Beispiel der XING App 22. November 2011 Folie 1 von 14.
Formatvorlage des Untertitelmasters durch Klicken bearbeiten Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner: Web Content Management.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
OOD – Object Oriented Design II
Google App Engine Microsoft Windows Azure
VORBEREITUNG AUF DEN WANDEL
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
PHILIPP-SCHAFFNER.COM DrupalCamp Essen.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
SOA - Service-orientierte Architekturen
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Xenario IES Information Enterprise Server. Xenario Information Enterprise Server (IES) Die neue Architektur des Sitepark Information Enterprise Servers.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
Smalltalk-Anbieter Helge K. Nowak
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Architekturen und Techniken für computergestützte Engineering Workbenches.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
MVVM in Windows 8 und Windows Phone 8
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
2 Software Management SCRUM, Project Management, Quality Management, Business Analysis Innovation and Technology Management, Coaching, R&D Processes Quality.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
XML IV: Cocoon 2.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Web Application Engineering & Content Management.
SharePoint FIS HandsOn – out of the Box.
Java Server Pages Sergej Keterling
Office Business Anwendungen mit SharePoint 2010 Fabian Moritz SharePoint MVP.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
Digital Dashboard Toolkit 2001 SharePoint Portal Server released targeting portal market SharePoint Team Services (STS) released as free add-
© All rights reserved. Zend Technologies, Inc. Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer.
Informations-Forum: SAP Interoperabilität
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Aufbau der IDES-Modellunternehmung und deren Abbildung in SAP CRM
Developer Day Deep Dive into WinRT-Controls: FlipView, ListView, GridView and SemanticZoom Thomas Claudius Huber Principal Consultant, Trivadis AG
Einführung in Web Services Web Services in der Praxis
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner |
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Kooperative Nahfeld- Agenten-netzwerke Mathias Rieder.
Von Oracle Reports zum BI Publisher
 Präsentation transkript:

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

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

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

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

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

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.

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.

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:// Community Draft: Juli 2001 SUN JSR 94: Java Rules Engine API Siehe 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 Erster RuleML Editor auf Basis von Mandaraxhttp://

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

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):

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

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

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

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.

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.. }

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%.

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

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.

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

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

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

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.

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)