SlideShare ist ein Scribd-Unternehmen logo
1 von 40
bkr micro-workflow Mit einem workflow - orientierten Framework erfolgreich große  JEE - Systeme realisieren von Ralf Ruethlein  Sept. 2009
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Projektumgebung ,[object Object],[object Object],[object Object]
Systemumgebung Clients z. Bsp.: - Java-Swing-GUI, - JSF … Anwendungs-Server z. Bsp.:  JBOSS … Datenbank-Server z. Bsp.:  Oracle …  Host z. Bsp.: s390 … LAN / VPN Projektumgebung
Architektur der Anwendung: TIER Daten-banken EJB EJB EJB EJB Java Klassen Application Server TIER TIER TIER Java Klassen Java Klassen Projektumgebung Servlet Bean HTTP Server / Servlet Engine  JSP Login Passwort
Technik   – Aufbau und Architektur Backend-Struktur -- Anwendungsverteilung *) DTO = Data Transfer Object  Anwendung A  (ear, war) Application Server Anwendung B WEB-Server Anwendungsverteiler JobCard (mit DTO*) Anwendungs Liste (XML) JobCard
Anwendung (Ear) Backend-Struktur Technik   – Aufbau und Architektur ac workflow ac ac ac acexecute acexecute acexecute acexecute av services bl db sv MainController (EJB) SchadenEJB ZahlungEJB VertragEJB … App Controller.XML ApplikationsKontrolle
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Technik   – Aufbau und Architektur
BKR Micro-workflow Framework zur Definition und Ausführung von Geschäftsprozessen
Motivation ,[object Object],BKR  Micro-workflow ,[object Object],[object Object],[object Object]
[object Object],Analyse des Problems: BKR  Micro-workflow ,[object Object],[object Object],[object Object]
[object Object],Lösungsansatz BKR  Micro-workflow ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Vorteile: BKR  Micro-workflow ,[object Object],[object Object],[object Object]
Workflow-Definition: Aktivitäten ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BKR  Micro-workflow
BKR  Micro-workflow Activity- Klassen-Hierarchie Activity CompositeActivity Sequence Conditional NullActivity Primitive While = Bedingung = Schleife = einfache Aktivität = Beendigung des WF = Reihe von A.
BKR  Micro-workflow Verbindung Workflow/Logikschicht ,[object Object],[object Object],[object Object],[object Object],[object Object]
BKR  Micro-workflow Performer ,[object Object],[object Object],[object Object],[object Object],class  MyPerformer  extends  Performer { public void  execute() { // Logik der Aktivität } }
BKR  Micro-workflow Bedingungen im workflow: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BKR  Micro-workflow TestCondition: ,[object Object],[object Object],[object Object],[object Object],public class  MyCondition  extends  TestCondition { public boolean  evaluate() { if   (...) { return true ; } else  { return false ; } } }
BKR  Micro-workflow ,[object Object],[object Object],[object Object],[object Object],[object Object],weitere Bestandteile (1)
BKR  Micro-workflow weitere Bestandteile (2) ,[object Object],[object Object],[object Object]
BKR  Micro-workflow weitere Bestandteile (3) ,[object Object]
BKR  Micro-workflow weitere Bestandteile (4) ,[object Object]
BKR  Micro-workflow Ausführung eines Workflows (1) eine Aktivität    Primitive-Instanz mit Performer-Instanz eine Bedingung    Conditional-Instanz mit TestCondition-Instanz Primitive: Baustein des definierten Workflows, diesem Baustein kann für den Workflow ein  Identifizierer (wichtig für Protokollierung, Fehlerbehandlung, ...) zugewiesen werden. Conditional: Baustein des definierten Workflows, diesem Baustein kann für den Workflow ein Identifizierer (wichtig für Protokollierung, Fehlerbehandlung, ...) zugewiesen werden. Performer: Baustein, der die Logik der Aktivität implementiert. Dieser Baustein kann ggf. von mehreren Aktivitäten / Primitive-Instanzen verwendet werden. TestCondition: Baustein, der die Logik der Bedingung implementiert.  Dieser Baustein kann ggf. von mehreren Conditional-Instanzen verwendet werden. ja nein
BKR  Micro-workflow ja nein Die Ausführung beginnt... der Workflow steuert die erste  Aktivität / Bedingung an. Ausführung eines Workflows (2) class  MyPerformer  extends  Performer { public void  execute() { // Logik der Aktivität } }
BKR  Micro-workflow ja nein Ausführung eines Workflows (3) in ,[object Object],[object Object],[object Object],[object Object]
BKR  Micro-workflow ja nein Ausführung eines Workflows (4) out in Eine Aktivität kann bestehende Einträge im workflow-Context auslesen und ggf. verändern. Zudem kann sie neue Einträge im workflow-Context ablegen.
BKR  Micro-workflow ja nein Ausführung eines Workflows (5) Wenn die Ausführung einer Aktivität beendet ist, steuert der Workflow automatisch die nächste Aktivität / Bedingung an.
BKR  Micro-workflow Ausführung eines Workflows (6) ja nein Wenn die Ausführung eine Bedingung erreicht, ist der weitere Weg durch den Workflow  abhängig vom Ergebnis dieser Bedingung.  public class  MyCondition  extends  TestCondition { public boolean  evaluate() { if   (...) { return true ; } else  { return false ; } } }
ActionControl: für jeden ac existiert ein UML Activity Diagramm existiert je ActionCode genau einmal. DataSet    Modell    DataSet ruft acexecute auf  ruft workflow - services auf Beispiel: auf Anfrage Backend-Struktur BKR  Micro-workflow workflow ac ac ac ac workflow
ActionControl - Execute: für jeden acexecute existiert ein UML Activity Diagramm modifiziert/validiert das Modell (Schadenmodell, Schadenaufnahmemodell) ist  mehrfach  verwendbar ruft workflow - services auf Beispiel:  auf Anfrage BKR  Micro-workflow Backend-Struktur ac workflow ac ac ac acexecute acexecute acexecute acexecute
workflow - Service: Eigenschaften wie acexecute stellt wiederverwendbare Teile eines acexecute dar  BKR  Micro-workflow Backend-Struktur ac workflow ac ac ac acexecute acexecute acexecute acexecute av services bl db sv
workflow Diagramm BKR  Micro-workflow
workflow Diagramm Die workflow Activity P1 ……… Wird in Java – Code umgesetzt…….. BKR  Micro-workflow
BKR  Micro-workflow
Der Kontrollfluss des Diagramms wird 1:1 umgesetzt…. BKR  Micro-workflow
bkr micro - workflow: Vorteile für Fachbereich, Planer und Entwickler: Für jeden ActionCode existiert ein Activity Diagramm Hoher Dokumentationswert. Framework erzwingt „geregelte“ Programmierung Einarbeitung ist zu jeder Entwicklungsstufe des Systems möglich Die Anwendung bleibt auch in Zukunft wartbar Kann auch für andere Anwendungssysteme verwendet werden BKR  Micro-workflow
Lessons Learned ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ausblick ,[object Object],[object Object]
Offene Fragen? Interesse? für weitere Infos wenden Sie sich an: [email_address] oder  [email_address]

Weitere ähnliche Inhalte

Ähnlich wie Bkr Workflow Oeffentlich

MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
PAVONE Espresso Workflow für Java EE
PAVONE Espresso Workflow für Java EEPAVONE Espresso Workflow für Java EE
PAVONE Espresso Workflow für Java EEUdo Sill
 
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesZeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesBATbern
 
Reactive Framework (Rx)
Reactive Framework (Rx)Reactive Framework (Rx)
Reactive Framework (Rx)Martin Hey
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Make it simple! Mit automatisierten workflows aus der Cloud
Make it simple! Mit automatisierten workflows aus der CloudMake it simple! Mit automatisierten workflows aus der Cloud
Make it simple! Mit automatisierten workflows aus der Cloudproficom
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJSSebastian Springer
 
Regelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsRegelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsAndreas Schreiber
 
130605 blog - drools
130605   blog - drools130605   blog - drools
130605 blog - droolsjava-pe
 
Magento: Event/Observer
Magento: Event/ObserverMagento: Event/Observer
Magento: Event/Observertherouv
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.David Jardin
 
PAVONElive und PAVONE PCS für Java EE
PAVONElive und PAVONE PCS für Java EEPAVONElive und PAVONE PCS für Java EE
PAVONElive und PAVONE PCS für Java EEBjoern Reinhold
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Bernd Zuther
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Digicomp Academy AG
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Ralf Sigmund
 
batbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice Architekturenbatbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice ArchitekturenBATbern
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumTorsten Fink
 

Ähnlich wie Bkr Workflow Oeffentlich (20)

MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
PAVONE Espresso Workflow für Java EE
PAVONE Espresso Workflow für Java EEPAVONE Espresso Workflow für Java EE
PAVONE Espresso Workflow für Java EE
 
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature TogglesZeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
Zeitnahe Reaktion auf Verordnungsänderungen mit Feature Toggles
 
Reactive Framework (Rx)
Reactive Framework (Rx)Reactive Framework (Rx)
Reactive Framework (Rx)
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Powershell 3.0
Powershell 3.0Powershell 3.0
Powershell 3.0
 
Make it simple! Mit automatisierten workflows aus der Cloud
Make it simple! Mit automatisierten workflows aus der CloudMake it simple! Mit automatisierten workflows aus der Cloud
Make it simple! Mit automatisierten workflows aus der Cloud
 
Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Regelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss DroolsRegelbasierte Systeme mit JBoss Drools
Regelbasierte Systeme mit JBoss Drools
 
130605 blog - drools
130605   blog - drools130605   blog - drools
130605 blog - drools
 
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-TestsIks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
Iks Sonderdruck Eclipse Magazin Mai 2010: Automatisierte SWTBot-Tests
 
Magento: Event/Observer
Magento: Event/ObserverMagento: Event/Observer
Magento: Event/Observer
 
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
Nooku, Molajo & Co - Joomla! Distributionen. Oder Forks.
 
PAVONElive und PAVONE PCS für Java EE
PAVONElive und PAVONE PCS für Java EEPAVONElive und PAVONE PCS für Java EE
PAVONElive und PAVONE PCS für Java EE
 
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
Java Aktuell Bernd Zuther Canary Releases mit der Very Awesome Microservices ...
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
 
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
Wjax integrationsprojekte auf dem weg zur continuous delivery 2011 11-10
 
batbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice Architekturenbatbern43 Command & Events Divide and conquer in Microservice Architekturen
batbern43 Command & Events Divide and conquer in Microservice Architekturen
 
Funktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit SodiumFunktionale Reaktive Programmierung mit Sodium
Funktionale Reaktive Programmierung mit Sodium
 

Bkr Workflow Oeffentlich

  • 1. bkr micro-workflow Mit einem workflow - orientierten Framework erfolgreich große JEE - Systeme realisieren von Ralf Ruethlein Sept. 2009
  • 2.
  • 3.
  • 4. Systemumgebung Clients z. Bsp.: - Java-Swing-GUI, - JSF … Anwendungs-Server z. Bsp.: JBOSS … Datenbank-Server z. Bsp.: Oracle … Host z. Bsp.: s390 … LAN / VPN Projektumgebung
  • 5. Architektur der Anwendung: TIER Daten-banken EJB EJB EJB EJB Java Klassen Application Server TIER TIER TIER Java Klassen Java Klassen Projektumgebung Servlet Bean HTTP Server / Servlet Engine JSP Login Passwort
  • 6. Technik – Aufbau und Architektur Backend-Struktur -- Anwendungsverteilung *) DTO = Data Transfer Object Anwendung A (ear, war) Application Server Anwendung B WEB-Server Anwendungsverteiler JobCard (mit DTO*) Anwendungs Liste (XML) JobCard
  • 7. Anwendung (Ear) Backend-Struktur Technik – Aufbau und Architektur ac workflow ac ac ac acexecute acexecute acexecute acexecute av services bl db sv MainController (EJB) SchadenEJB ZahlungEJB VertragEJB … App Controller.XML ApplikationsKontrolle
  • 8.
  • 9. BKR Micro-workflow Framework zur Definition und Ausführung von Geschäftsprozessen
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. BKR Micro-workflow Activity- Klassen-Hierarchie Activity CompositeActivity Sequence Conditional NullActivity Primitive While = Bedingung = Schleife = einfache Aktivität = Beendigung des WF = Reihe von A.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. BKR Micro-workflow Ausführung eines Workflows (1) eine Aktivität  Primitive-Instanz mit Performer-Instanz eine Bedingung  Conditional-Instanz mit TestCondition-Instanz Primitive: Baustein des definierten Workflows, diesem Baustein kann für den Workflow ein Identifizierer (wichtig für Protokollierung, Fehlerbehandlung, ...) zugewiesen werden. Conditional: Baustein des definierten Workflows, diesem Baustein kann für den Workflow ein Identifizierer (wichtig für Protokollierung, Fehlerbehandlung, ...) zugewiesen werden. Performer: Baustein, der die Logik der Aktivität implementiert. Dieser Baustein kann ggf. von mehreren Aktivitäten / Primitive-Instanzen verwendet werden. TestCondition: Baustein, der die Logik der Bedingung implementiert. Dieser Baustein kann ggf. von mehreren Conditional-Instanzen verwendet werden. ja nein
  • 25. BKR Micro-workflow ja nein Die Ausführung beginnt... der Workflow steuert die erste Aktivität / Bedingung an. Ausführung eines Workflows (2) class MyPerformer extends Performer { public void execute() { // Logik der Aktivität } }
  • 26.
  • 27. BKR Micro-workflow ja nein Ausführung eines Workflows (4) out in Eine Aktivität kann bestehende Einträge im workflow-Context auslesen und ggf. verändern. Zudem kann sie neue Einträge im workflow-Context ablegen.
  • 28. BKR Micro-workflow ja nein Ausführung eines Workflows (5) Wenn die Ausführung einer Aktivität beendet ist, steuert der Workflow automatisch die nächste Aktivität / Bedingung an.
  • 29. BKR Micro-workflow Ausführung eines Workflows (6) ja nein Wenn die Ausführung eine Bedingung erreicht, ist der weitere Weg durch den Workflow abhängig vom Ergebnis dieser Bedingung. public class MyCondition extends TestCondition { public boolean evaluate() { if (...) { return true ; } else { return false ; } } }
  • 30. ActionControl: für jeden ac existiert ein UML Activity Diagramm existiert je ActionCode genau einmal. DataSet  Modell  DataSet ruft acexecute auf ruft workflow - services auf Beispiel: auf Anfrage Backend-Struktur BKR Micro-workflow workflow ac ac ac ac workflow
  • 31. ActionControl - Execute: für jeden acexecute existiert ein UML Activity Diagramm modifiziert/validiert das Modell (Schadenmodell, Schadenaufnahmemodell) ist mehrfach verwendbar ruft workflow - services auf Beispiel: auf Anfrage BKR Micro-workflow Backend-Struktur ac workflow ac ac ac acexecute acexecute acexecute acexecute
  • 32. workflow - Service: Eigenschaften wie acexecute stellt wiederverwendbare Teile eines acexecute dar BKR Micro-workflow Backend-Struktur ac workflow ac ac ac acexecute acexecute acexecute acexecute av services bl db sv
  • 33. workflow Diagramm BKR Micro-workflow
  • 34. workflow Diagramm Die workflow Activity P1 ……… Wird in Java – Code umgesetzt…….. BKR Micro-workflow
  • 36. Der Kontrollfluss des Diagramms wird 1:1 umgesetzt…. BKR Micro-workflow
  • 37. bkr micro - workflow: Vorteile für Fachbereich, Planer und Entwickler: Für jeden ActionCode existiert ein Activity Diagramm Hoher Dokumentationswert. Framework erzwingt „geregelte“ Programmierung Einarbeitung ist zu jeder Entwicklungsstufe des Systems möglich Die Anwendung bleibt auch in Zukunft wartbar Kann auch für andere Anwendungssysteme verwendet werden BKR Micro-workflow
  • 38.
  • 39.
  • 40. Offene Fragen? Interesse? für weitere Infos wenden Sie sich an: [email_address] oder [email_address]

Hinweis der Redaktion

  1. Frontend/Client: Java Swing GUI als sog. „Rich Client“ als Web Start Anwendung. Backend: Anwendungsverteiler als Servlet, Anwendungslogik als EJB und Java Klassen. Kommunikation Frontend/ Backend: Transfer-Objekte Datenbank: Oracle 9 oder 10; Zugriff über eigenen OR – Mapper (JRF - Framework)
  2. ApplikationsKontrolle : nimmt Anfragen vom Anwendungsverteiler entgegen analysiert mit Hilfe des ActionCodes welche UseCase EJB (SchadenEJB, VertragEJB) aufgerufen wird ruft beim Berechtigungssystem die Rechte des Benutzers ab analysiert welche xml - Struktur für den ActionCode gilt und setzt den Datenstrom in ein DTO um ruft den zuständigen Anwendungs - Workflow auf workflow: auf den workflow block wird später genauer eingegangen. Zunächst folgt nun die Erklärung des bkr micro - workflow Systems.
  3.  Viele Entwickler innerhalb eines Projekts entwickeln ihren eigenen Stil. Dies hat oft zur Folge, dass die Wartung und Pflege einzelner Themenbereiche mehr oder weniger stark von einzelnen Entwicklern abhängt.  Lange Projektlaufzeit führ unweigerlich zu Anpassungen bereits realisierter Anwendungsteile. Manchmal auch ohne die Planung anzupassen. Die Gefahr dabei: die Dokumentation des Systems weicht vom produktiven System ab.
  4. Haupt-Bestandteile eines OFD: Aktivitäten, Bedingungen, verarbeitete/erzeugte Objekte
  5. Das Sourcforge Projekt von D.Manolescu war unvollständig implementiert.