Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Dipl. Ing. Armin Singer (BA) Geschäftsführer der Semantec GmbH Integration zwischen Oracle basierten Anwendungen und Business Rules."—  Präsentation transkript:

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

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

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

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

5 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

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

7 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

8 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

9 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

10 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 2.10.1997 mw, 6.10.1997 mw, 25.11.1997 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 ('01.01.1990', '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;

11 ELSIF p_zws_code = '81' --20020313_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; --20020313_029HK: THEN --20020313_029HK: -- monatliche Zahlweise --20020313_029HK: ELSIF p_zws_code = '88' --20020313_029HK: IF p_datum_von < v_tagesdatum --20020313_029HK: THEN --20020313_029HK: p_datum_faellig := v_tagesdatum; --20020313_029HK: ELSE --20020313_029HK: p_datum_faellig := p_datum_von; --20020313_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):

12 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;

13 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

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

15 2. Entscheidungstabelle erstellen komplett optimiert

16 3. V & V Report

17 4.+ 5. Entscheidungsbaum

18 6. Generate and optimize rules (a)

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

20 6. Generate and optimize rules (c)

21 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

22 Logist Knowledge Builder

23 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

24 Logist V&V

25 >>zurück

26 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

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

28 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

29 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


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

Ähnliche Präsentationen


Google-Anzeigen