Regelgestütze Validierung

22
Reglements auf der Antragsstrecke Regelgestützte Validierung und Navigation mit JBoss Drools

description

Regelgestützte Validierung und Navigation mit JBoss Drools

Transcript of Regelgestütze Validierung

Page 1: Regelgestütze Validierung

Reglements auf der

Antragsstrecke

Regelgestützte

Validierung und Navigation mit JBoss

Drools

Page 2: Regelgestütze Validierung

Agenda

• Kurzportrait

• Vorstellung des Projektes

• Unterschiedliche Lösungsszenarien

• Einführung Regelbasierte Systeme

• Architektur

• Live Debug

• Erfahrungen

Page 3: Regelgestütze Validierung

Ihre Referenten

Page 4: Regelgestütze Validierung

COINOR

Kernfakten

Aktiengesellschaft in

Mitarbeiterbeteiligung

Grundkapital: 1,275 Mio. €

Gründung: Juli 2007

Branchenfokus Finanzindustrie

Auszug Kundenliste

Commerzbank AG

DWS Investments GmbH

Xchanging

FIDUCIA IT AG

ING DiBa AG

Landesbank Berlin AG

Union Investment Gruppe

Standorte

Berlin

Karlsruhe

München

Frankfurt

Festangestellte

Umsatz in Mio. €

Page 5: Regelgestütze Validierung

COINOR

COINOR unterstützt Deutschlands führende Finanzdienstleister bei der Verbesserung von

Geschäftsprozessen

Wir transportieren Strategien in Prozesse und implementieren diese Prozesse in der IT

Unser Erfolgskonzept ist dabei ganz besonders: Wir kombinieren hohe Fach- und

Technologiekompetenz mit den Methoden unseres Business Engineering Frameworks

Die einzigartige Bündelung dieser 3 Kompetenzen ermöglicht uns die effektive Entwicklung

von Konzepten, innovativen Architekturen und Technologien

Business Transformation

Prozess

Strategie

Implementierung

IT Trends

Business Trends

Open SourceSOACloud Computing…

KonsolidierungSpezialisierungGeschäftsmodelle…

Page 6: Regelgestütze Validierung

Das Projekt

– Erstellung einer Web-basierten Anwendung zur

Beantragung von Krediten

– Einsatz als White-Label-Produkt

Vermittler 1 / Autokredit

Vermittler 2 / Barkredit

Basis

Page 7: Regelgestütze Validierung

Anforderungen

Historisierte

Konfigurierbarkeit zur

Laufzeit

Stärkere Einbindung

des Fachbereiches

Flexible

Anpassbarkeit der

Logik

Time-To-Market

Mandantenfähigkeit

Online Krediterfassung

Page 8: Regelgestütze Validierung

LösungsansatzProperty File

minKredit=2500

maxKredit=100000

minAlter=18

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit zur

Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs?

BigDecimal minKredit = properties.get(“minKredit“, BigDecimal.class);

If (kreditbetrag < minKredit){

FacesMessages.instance().add(new FacesMessage(“Der Kreditbetrag

ist unter der minimalen Grenze von “ +minKredit));

}

Page 9: Regelgestütze Validierung

LösungsansatzKonfiguration in Datenbank

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit zur

Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs?

minKredit=2500

maxKredit=100000

minAlter=18

...

If (kreditbetrag < configEntity.getMinKredit()){

FacesMessages.instance().add(new FacesMessage(“Der Kreditbetrag

ist unter der minimalen Grenze von “ +

configEntity.getMinKredit()));

}

Page 10: Regelgestütze Validierung

Wartbarkeit

LösungsansatzKonfiguration in Datenbank

if (kredit > 3000) {

assert nextPage = "Gehaltsnachweis"

}

else {

assert nextPage = "Angebot"

}

if(kredit < 2500){

Fehlermeldung = "Der Kreditbetrag ist unter der

minimalen Grenze von 2500€“}

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit

zur Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs?

Page 11: Regelgestütze Validierung

Wartbarkeit

LösungsansatzKonfiguration in Datenbank II

GroovyClassLoader gcl = new GroovyClassLoader();

Class clazz = gcl.parseClass(new File(fileName));

Object aScript = clazz.newInstance();

Validator validator = (Validator) aScript;

validator.validate(entity);

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit

zur Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs?

Page 12: Regelgestütze Validierung

Wartbarkeit

LösungsansatzVerwendung von Geschäftsregeln

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit

zur Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs

when

Kredit > 3000

then

gehe zu Gehaltsnachweis

kredit.min=2500

kredit.max=100000

alter.min=18

...

when

Kredit <= 3000

then

gehe zu Angebot

Page 13: Regelgestütze Validierung

Wartbarkeit

LösungsansatzVerwendung von Geschäftsregeln II

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

kbuilder.add( ResourceFactory.newUrlResource( url ), ResourceType.DRL );

KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();

kbase.addKnowledgePackages( builder.getKnowledgePackages() );

StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession();

ksession.insert( entity);

ksession.fireAllRules();

• Mandanten-

• fähigkeit

Historisierte

Konfigurierbarkeit

zur Laufzeit

Flexible

Anpassbarkeit

der Logik

Stärkere

Einbindung des

Fachbereichs

Page 14: Regelgestütze Validierung

Regelbasierte Systeme

Überblick• Regelbasierte Systeme bestehen aus

– einer Datenbank von Fakten (Faktenbasis, bei uns Antragsdaten)

– (Geschäfts-)regeln (Regelbasis oder auch Rule-Repository)

– Kontrollsystem mit Regelinterpreter (Rule Engine)

• Regelbasierte Systeme arbeiten deklarativ

• Aufbau der Regeln: Wenn [Bedingung] dann [Aktion]

– Beispiel: Outlook

Page 15: Regelgestütze Validierung

ArchitekturÜberblick

Anwendung 1Layout, Navigation

Rule Cache

Rule Validator

Rule Repository

Rule Engine

Rule Navigator

Rule Loader

Navigation Validation Logic

Anwendung 2Layout, Navigation

Rule Repository

Anwendung nLayout, Navigation

Rule Repository

Basis Applikation

Mandant 1

Mandant 2

Mandant 1

Mandant 3

Mandant 4

Page 16: Regelgestütze Validierung

ArchitekturKlassenstruktur Regelintegration

Page 17: Regelgestütze Validierung

Sequenzdiagramm Validierungslogik

Page 18: Regelgestütze Validierung

Sequenzdiagramm Navigationslogik

Page 19: Regelgestütze Validierung

Live Debug

Stammdaten Gehaltsnachweis

Angebot

Ablehnung

Page 20: Regelgestütze Validierung

Unsere Erfahrungen

mit dem Einsatz von Geschäftsregeln

– Einfache Übersetzung Anforderungen

– Bessere Einbindung des Fachbereiches

– Gute Performance (Rete-Algorithmus)

– Höhere Flexibilität

– Unterschiedliche Lebenszyklen Regeln vs. Anwendung

– Erschwerung der Wartung

• Logik nicht an einer Stelle

• Debugging erschwert

– Zu Beginn „Berührungsängste“ Fachbereich

– Es besteht die Tendenz der „Überflexibilisierung“

– Einfache Übersetzung Anforderungen

– Bessere Einbindung des Fachbereiches

– Gute Performance (Rete-Algorithmus)

– Höhere Flexibilität

– Unterschiedliche Lebenszyklen Regeln vs. Anwendung

– Erschwerung der Wartung

• Logik nicht an einer Stelle

• Debugging erschwert

– Zu Beginn „Berührungsängste"

– Es besteht

Page 21: Regelgestütze Validierung

Reglements auf der

Antragsstrecke

Regelgestützte

Validierung und Navigation mit JBoss

Drools

Page 22: Regelgestütze Validierung

… und suchen ein paar der besten Arbeitnehmer!

COINOR bietet allen Mitarbeitern

Spannende Projekte

Individuelle Förderung

Die Möglichkeit, schnell Verantwortung zu übernehmen

Attraktive Vergütungsmodelle

Einen motivierenden Teamgeist

Wir gehören zu den 100 besten Arbeitgebern Deutschlands…