Dipl. Ing. Armin Singer (BA) Geschäftsführer der Semantec GmbH Integration zwischen Oracle basierten Anwendungen und Business Rules.

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Prof. Dr. Dr. h.c. mult. August-Wilhelm Scheer
Design- und Entwicklungswerkzeuge
Datenbankzugriff im WWW (Kommerzielle Systeme)
eXist Open Source Native XML Database
Erweiterung B2B Usermanagement / LDAP-Anbindung
Objektrelationales Mapping mit JPA
ATHOS Benutzertreffen 12.November QUARTZ – Scheduling und Workflow Glashütten, 12. November 2008 HighQSoft GmbH, Karl Hildebrand
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil 5.
SoSe 2004 Spree Entwicklung einer Wissensbasis Aufgaben und Techniken.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
VFX 9.0 Teil 2 Diverse Prototypen und Ideen für die Weiterentwicklung von VFX.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Don`t make me think! A Common Sense Approach to Web Usability
SAP XI Autor: Matthias Robert Grünewald Datum:
SharePoint 2010 for Information Architects
Institut für Wirtschaftsinformatik und Anwendungssysteme
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Architekturen und Techniken für computergestützte Engineering Workbenches.
Version 2008 Team Foundation Version Control (TFVC) … ist eine vollständige Neuentwicklung … wurde für große Teams, die auch weltweit verteilt arbeiten,
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Sesame Florian Mayrhuber
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
CALPER Publications From Handouts to Pedagogical Materials.
Java Server Pages Sergej Keterling
1 Copyright 2005 SCADA SOFT AG WizReport XL Professional Version 6 Produkte Übersicht Peter Schöttli.
Datenanbindung in Webapplikationen
SQL Server nach MySQL Datenbank-Migration SQLWays – Software für Migration Präsentation Copyright (c) Ispirer Systems Ltd. Alle.
Thomas Schissler – artiso solutions GmbH Artur Speth – Microsoft Deutschland GmbH.
Software Architektur für on-premise und die Cloud Lösungen
Time and Dates. Telling time To ask: What time it is? Wie spät ist es? Wie viel Uhr ist es?
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Weg mit Fehlern, die kein Entwickler versteht …
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
Arbeiten in einem agilen Team mit VS & TFS 11
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Web Services als Remote Content Provider in Portalumgebungen Vorstellung und Diskussion des Themas Präsentation des Prototypen Konzeption und prototypische.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Montag den 8. Juni Lernziel:- To launch a project and receive results.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Kapitel 4: Mein Tag Sprache.
© 2004 softgate, Oracle 10g Überblick über Oracle 10g.
Oracle IFS Die Brücke zwischen Content Management System und einer Produktpräsentation im Internet.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Forms 9i - New FeaturesSeite 1 Forms 9i New Features Gerd Volberg OPITZ CONSULTING GmbH.
DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH
1 © Thales IS GmbH 2002 Thales Information Systems GmbH Im Team für Ihren Erfolg DOAG - Regionaltreffen Hannover Donnerstag, Oracle 9i XML Datenbank.
Indico Meeting Dennis Klein 4. August Übersicht  Korrespondenz CERN  Trouble Ticket Queue  Integration GSI-Accounts  Subversion & Wiki  Todo.
SOFTWARE POWERS THE INTERNET SM. Oracle9i Application Server Mathias Kaldenhoff Geschäftsstelle HH Leiter Systemberatung Oracle Deutschland GmbH
Software-Delivery auf Knopfdruck IBM Cloud & DevOps.
MOBILE HOT New Hardware, new Players 2.Omnichannel 3.Data Driven Business 4.Connected Touchpoints 5.Connected Screens 6.App Ecosystem 7.App.
Robotron – Titel der Präsentation Olaf Nowatzki Dresden,
Apache Camel Christian Schneider
1.Event Queue.
Investitionen sichern - wachse mit Forms in die neue Welt
Vorlesung #8 SQL (Teil 5).
Von Oracle Reports zum BI Publisher
Integrating Knowledge Discovery into Knowledge Management
- moodle – a internet based learning platform
 Präsentation transkript:

Dipl. Ing. Armin Singer (BA) Geschäftsführer der Semantec GmbH Integration zwischen Oracle basierten Anwendungen und Business Rules Engines Ein Vortrag für das DOAG Regionaltreffen 24. November 2004, Karlsruhe

Entwickler Projektleiter IT Experten Fachleute Business Entwicklungszyklus in IT IdeeAnalyse Grobspezifikation Feinspezifikation Pflichtenheft LastenheftMachbarkeitImplementierungUnittestIntegrationstestEndusertestInbetriebnahmeÄnderungs- wünsche Bugfixes Re-design Manager Analysten Konzeptionäre

Hoher Kommunikationsaufwand Hohe Durchlaufzeiten Risiko des Qualitätsverlustes Verständnis über die Anwendungen geht verloren Aufwändige Pflege

Mehrwert = Nutzen – Kosten Hohe Kosten in der IT Quelle: IDC

Software Evolution nach Gartner Applications DataRules Applications DataRules Applications Database Engine Operating Environment Applications DataRules Operating Environment 1970heute Applications Applications Applications Rules Engine Database Engine Operating Environment Process- management Applications Applications Applications Rules Engine Database Engine Operating Environment Rules Engine Database Engine Operating Environment Process- management Services im Entstehen >>zurück

Rule 1 Rule 2 Rule 3 Rule 4 Rule Base Application Data Base receive data 2. send query send data receive decision advice 4. send query 2. receive data send decision request Business Rules Operation Mode

Logist Knowledge Repository IIS Web Server ASPX Portal Web Forms LAPI COM+ Proxy J2EE Web Server JSP Portal TagLib Knowledge Builder Knowledge Batch Knowledge Admin LAPI Java Proxy Logist Server API (LAPI), Web Service Logist Knowledge Server LIF Logist Tools J2EE Portal.NET Portal.Net ServerJ2EE Server Listeners: Web Service (SOAP), XML API (TCP/IP), MQSeries * Agents: Inference Engine, Compiler, … RuleSets RTF Schema connectivity* XMI, XML Schemas Data connectivity XML, JDBC, ODBC Application connectivity MQSeries*, Web Services ApplinX* LIF sources Application DB Web Service Logist Architektur PL/SQL Library PL/SQL API XML

Welche Konzepte stecken hinter dem BRA? Deklarative Ansätze >>>> Separation of Concerns >> >> Vermeidung von Codierung-Decodierung >> >> Selbsterklärung von Anwendungen >> >>>> Einfache Bedienoberflächen >> >> Sicherheit durch Validierung und Verifizierung >> >> weiter

Deklarativ Chris Date, Mitbegründer der relationalen Datenbank- systeme über den Business Rules Ansatz "The great thing about this (BR-) technology is that it’s declarative and not procedural. In other words, you get things done by simply writing down what you want to be done — you don’t specify in detail how it is to be done." >>zurück

PL/SQL Code (1): PROCEDURE ICIS_Faell_datum_ermitteln ( p_vvs_begin IN DATE, /* Vertragsversionsbeginndatum */ p_aenderungstyp IN VARCHAR2, /* Änderungstyp der Deckung */ p_zws_code IN varchar2, /* Code für Zahlweise */ p_hauptfaelligkeit IN DATE, /* Hauptfälligkeit */ p_dpr_typ IN VARCHAR2, /* DPR-TYP */ p_datum_von IN DATE, /* Datum, ab dem erhoben wird */ p_datum_bis IN DATE, /* Datum, bis zu dem erhoben wird */ p_abr_in_monate IN NUMBER, /* Monatskennzeichen aus ZBD */ p_anz_monate IN NUMBER, /* Anzahl Monate gemäß p_zws_code (Falls 99 >> =0)*/ p_datum_faellig IN OUT DATE, /* Datum, an dem abgerechnet wird */ p_fpr_batch_entitaet IN OUT VARCHAR2, p_fpr_auspraegung IN OUT VARCHAR2, p_fpr_feh_fehlercode IN OUT VARCHAR2, p_fpr_fehlertext IN OUT VARCHAR2, p_returncode IN OUT NUMBER) IS /* Returncode der Prozedur */ /* Ermittlung des Fälligkeitsdatums gemäß Funktionsbeschreibung 9834a in der Fassung vom mw, mw, keine Sonderbehandlung für monatliche Zahlweise */ F_ORACLE CONSTANT NUMBER(1) := -2; F_SACH CONSTANT NUMBER(1) := -3; v_tagesdatum DATE; v_fr_erh_datum DATE; v_plus_monate NUMBER(2); BEGIN p_datum_faellig := TO_DATE (' ', 'dd.mm.yyyy'); p_returncode := 0; v_tagesdatum := sysd_te; IF ( p_zws_code IN ('0', '99') OR p_dpr_typ = 'EP') THEN -- Einmalprämie p_datum_faellig := v_tagesdatum;

ELSIF p_zws_code = '81' _029HK: Neue Zahlweise berücksichtigen THEN -- Projektprämie IF p_datum_von < v_tagesdatum THEN p_datum_faellig := v_tagesdatum; ELSE p_datum_faellig := p_datum_von; END IF; _029HK: THEN _029HK: -- monatliche Zahlweise _029HK: ELSIF p_zws_code = '88' _029HK: IF p_datum_von < v_tagesdatum _029HK: THEN _029HK: p_datum_faellig := v_tagesdatum; _029HK: ELSE _029HK: p_datum_faellig := p_datum_von; _029HK: END IF; ELSIF p_zws_code IN ('1', '2', '4', '12') THEN -- ganz-, halb, viertel-jährliche ZW v_plus_monate := ROUND (12 / p_anz_monate); IF p_aenderungstyp = '7' THEN -- Folge p_datum_faellig := ADD_MONTHS (p_datum_von, NVL(p_abr_in_monate, 0)); ELSE -- Neuanlage, Änderungen /* Ermittlung des frühesten Erhebungsdatums */ v_fr_erh_datum := TO_DATE (LTRIM (TO_CHAR (p_hauptfaelligkeit, 'DDMM')) || LTRIM (TO_CHAR (p_vvs_begin, 'YYYY')), 'DDMMYYYY'); -- HF im Versicherungsbeginnjahr IF v_fr_erh_datum > p_vvs_begin THEN v_fr_erh_datum := ADD_MONTHS (v_fr_erh_datum, -12); END IF; PL/SQL Code (2):

PL/SQL Code (3): WHILE v_fr_erh_datum <= ADD_MONTHS (p_vvs_begin, 0 - v_plus_monate) LOOP v_fr_erh_datum := ADD_MONTHS (v_fr_erh_datum, v_plus_monate); END LOOP; v_fr_erh_datum := ADD_MONTHS (v_fr_erh_datum, NVL(p_abr_in_monate,0)); IF p_datum_von < v_fr_erh_datum THEN IF v_fr_erh_datum > v_tagesdatum THEN p_datum_faellig := v_fr_erh_datum; ELSE p_datum_faellig := v_tagesdatum; END IF; ELSE IF p_datum_von > v_tagesdatum THEN p_datum_faellig := p_datum_von; ELSE p_datum_faellig := v_tagesdatum; END IF; ELSE p_returncode := F_SACH; p_fpr_batch_entitaet := 'Faelligkeitsdatum'; p_fpr_fehlertext := 'Zahlweise nicht definiert !'; RETURN; END IF; EXCEPTION WHEN OTHERS THEN p_returncode := F_ORACLE; p_fpr_batch_entitaet := 'Faelligkeitsdatum'; p_fpr_auspraegung := NULL; p_fpr_feh_fehlercode := 'ORA-' || to_char(SQLCODE); p_fpr_fehlertext := SQLERRM; RETURN; END ICIS_Faell_datum_ermitteln;

1.Programmcode analysieren 2.Entscheidungstabelle erstellen 3.Toolunterstützte Validierung&Verifizierung 4.Entscheidungsbaum erstellen (Tool) 5.Vergleich: Entscheidungsbaum - Code 6.Generierung und Optimierung der Regeln 7.Ersetzen des Codes durch einen Aufruf der Business Rules Engine Vorgehensweise

1. Analyze code Bedingungen Aktionen 1. Due today 2. Due latest among (today, charge_starting_date) 3. Due charge_starting_date + months_to_billing 4. Due latest among (today, charge_starting_date, next_periodic_date)

2. Entscheidungstabelle erstellen komplett optimiert

3. V & V Report

Entscheidungsbaum

6. Generate and optimize rules (a)

Wenn Deckungsart “Einzelprämie“ ist Dann setze Fälligkeitsdatum auf heute Wenn Zahlweise “einmalig“ ist Dann setze Fälligkeitsdatum auf heute Wenn Zahlweise “Projektprämie“ ist Dann setze Fälligkeitsdatum auf spätestes von (heute, Abrechnungsdatum) Wenn Zahlweise "periodisch” ist und Dynamic “automatisch” ist Dann setze Fälligkeitsdatum auf Abrechnungsdatum + Laufzeit Wenn Zahlweise "periodisch” ist und Dynamik nicht “automatisch” ist Dann setze Fälligkeitsdatum auf spätestes von (heute, Abrechnungsdatum, nächste_Zahlperiode + Laufzeit) 6. Generate and optimize rules (b)

6. Generate and optimize rules (c)

7. Aufrufende Prozedur ändern PROCEDURE ICIS_Faell_datum_ermitteln ( p_vvs_begin IN DATE, /* Vertragsversionsbeginndatum */ p_aenderungstyp IN VARCHAR2, /* Änderungstyp der Deckung */ p_zws_code IN varchar2, /* Code für Zahlweise */ p_hauptfaelligkeit IN DATE, /* Hauptfälligkeit */ p_dpr_typ IN VARCHAR2, /* DPR-TYP */ p_datum_von IN DATE, /* Datum, ab dem erhoben wird */ p_datum_bis IN DATE, /* Datum, bis zu dem erhoben wird */ p_abr_in_monate IN NUMBER, /* Monatskennzeichen aus ZBD */ p_anz_monate IN NUMBER, /* Anzahl Monate gemäß p_zws_code (Falls 99 >> =0)*/ p_datum_faellig IN OUT DATE, /* Datum, an dem abgerechnet wird */ p_fpr_batch_entitaet IN OUT VARCHAR2, p_fpr_auspraegung IN OUT VARCHAR2, p_fpr_feh_fehlercode IN OUT VARCHAR2, p_fpr_fehlertext IN OUT VARCHAR2, p_returncode IN OUT NUMBER) IS input_data = BR_interface.input_data; output_data = BR_interface.output_data; BEGIN BR_interface.Map_input_data (input_data "Contract", "beginning_of_new_version", p_vvs_begin, "automatic_change", p_aenderungstyp, "mode_of_billing", p_zws_code, "single_premium", p_dpr_typ, "beginning_of_new_version", p_datum_von, "months_to_billing", p_abr_in_monate, "next_periodic_date", v_fr_erh_datum); BR_Interface.DSR (input_data, output_data); BR_interface.Map_output_data (output_data, "Contract", "due_date", due_date); END ICIS_Faell_datum_ermitteln; >>zurück

Logist Knowledge Builder

The User Approach – Logist Tools Notes, Online Rule Development Design Knowledge Builder Execute Simulate & Test Production Knowledge Builder/ Knowledge Runner Knowledge Portal Components FeedBack >>zurück

Logist V&V

>>zurück

Zusammenfassung Das Trennen von Geschäftsregeln und Code ist eine folgerichtige Konsequenz des Prinzips „Separation of Concerns“ und ein nächster Schritt in der IT Evolution Business Rule Engines ermöglichen ein deklaratives Arbeiten mit Geschäftsregeln und führen diese aus. Eine Codierung/Decodierung von Geschäftsregeln in Programmcode entfällt Der BRA ersetzt NICHT die Anwendungsprogrammierung! Der BRA ist erprobt, gereift und einsatzbereit Semantec hilft Ihnen bei der Integration des BRA in Ihre Anwendungslandschaft und berät Sie zum Thema BRA

Dipl. Ing. Armin Singer (BA) Geschäftsführer der Semantec GmbH Reduzierung der IT Cost of Ownership durch die Trennung von Geschäftslogik und Anwendung Vielen Dank für Ihre Aufmerksamkeit!

Logist Knowledge Repository Logist Integration Framework (LIF) Logist Knowledge Server Application DB / XML Web Service Inference Engine Inference Engine Inference Engine Logist API - LAPI Knowledge Packages Logist Knowledge Portal Logist Knowledge Batch Processor Knowledge Operations Business Operations Logist Knowledge Builder Knowledge Engineers Logist Knowledge Administrator Knowledge Administrators Message Bus Logist Architektur

Logist Knowledge Repository IIS Web Server ASPX Portal Web Forms LAPI COM+ Proxy J2EE Web Server JSP Portal TagLib Knowledge Builder Knowledge Batch Knowledge Admin LAPI Java Proxy Logist Server API (LAPI), Web Service Logist Knowledge Server LIF Logist Tools J2EE Portal.NET Portal.Net ServerJ2EE Server Listeners: Web Service (SOAP), XML API (TCP/IP), MQSeries * Agents: Inference Engine, Compiler, … RuleSets RTF Schema connectivity* XMI, XML Schemas Data connectivity XML, JDBC, ODBC Application connectivity MQSeries*, Web Services ApplinX* LIF sources Application DB Web Service * Planned in next versions Logist Architektur