Regelgestütze Validierung

Post on 05-Dec-2014

663 views 6 download

description

Regelgestützte Validierung und Navigation mit JBoss Drools

Transcript of Regelgestütze Validierung

Reglements auf der

Antragsstrecke

Regelgestützte

Validierung und Navigation mit JBoss

Drools

Agenda

• Kurzportrait

• Vorstellung des Projektes

• Unterschiedliche Lösungsszenarien

• Einführung Regelbasierte Systeme

• Architektur

• Live Debug

• Erfahrungen

Ihre Referenten

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

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…

Das Projekt

– Erstellung einer Web-basierten Anwendung zur

Beantragung von Krediten

– Einsatz als White-Label-Produkt

Vermittler 1 / Autokredit

Vermittler 2 / Barkredit

Basis

Anforderungen

Historisierte

Konfigurierbarkeit zur

Laufzeit

Stärkere Einbindung

des Fachbereiches

Flexible

Anpassbarkeit der

Logik

Time-To-Market

Mandantenfähigkeit

Online Krediterfassung

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

}

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()));

}

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?

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?

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

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

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

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

ArchitekturKlassenstruktur Regelintegration

Sequenzdiagramm Validierungslogik

Sequenzdiagramm Navigationslogik

Live Debug

Stammdaten Gehaltsnachweis

Angebot

Ablehnung

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

Reglements auf der

Antragsstrecke

Regelgestützte

Validierung und Navigation mit JBoss

Drools

… 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…