Bkr Workflow Oeffentlich

  • 485 views
Uploaded on

english: (german see below) …

english: (german see below)
target of this bkr-workflow framework is to use a workflow based framework wiithin your java-programms (micro-workflow) to improve operation and maintenance of your software system, exspecially for long running complex projects, where your staff is replaced during project runtime.
We developed it in a real software project with a project runtime of 7 yaers.

deutsch:
Ziel des bkr-workflow framework ist es die Weiterentwicklung und Pflege von Java Programmen in komplexen Softwareprojekten durch Einsatz eines workflow-frameworks (micro-workflow) sicherzustellen und zu verbessern. Dieses Vorgehen ist besonders gut geeignet um gleichartige Programmstrukturen zu erzeigen, auch wenn während der Projektlaufzeit wesentliche Teile der Mitarbeiter ersetzt werden müssen. Das System wurde im Rahmen eines komplexen Softwareentwicklungsprojektes entwickelt und dabei erfolgreich eingesetzt.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
485
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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)
  • 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.
  •  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.
  • Haupt-Bestandteile eines OFD: Aktivitäten, Bedingungen, verarbeitete/erzeugte Objekte
  • Das Sourcforge Projekt von D.Manolescu war unvollständig implementiert.

Transcript

  • 1. bkr micro-workflow Mit einem workflow - orientierten Framework erfolgreich große JEE - Systeme realisieren von Ralf Ruethlein Sept. 2009
  • 2. Agenda
    • Projektumgebung, die zur Entwicklung des bkr micro - workflow Frameworks geführt hat.
      • Systemumgebung
      • Aufbau und Architektur
    • BKR Micro-workflow
      • Motivation
      • Analyse
      • Lösungsansatz
      • Vorteile
      • Definition und Bestandteile
      • Beispiel
    • Lessons Learned
    • Ausblick
    • Fragen / Diskussion
  • 3. Projektumgebung
    • Systemumgebung
    • Architektur der Anwendung
    • Backend Struktur
  • 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.
    • 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 „ Anwendungsworkflow “ auf
    • workflow:
      • auf den workflow block wird später genauer eingegangen. Zunächst folgt nun die Erklärung des bkr micro - workflow Systems.
    Technik – Aufbau und Architektur
  • 9. BKR Micro-workflow Framework zur Definition und Ausführung von Geschäftsprozessen
  • 10. Motivation
    • Wie können unterschiedliche „Programmierstile“ der einzelnen Entwickler verhindert, bzw. minimiert werden?
    BKR Micro-workflow
    • Wie kann eine vollständige Dokumentation des Gesamtsystems über die gesamte Laufzeit sichergestellt werden?
    • Wie kann ein einzelner „Action Code“ (workflow) über den gesamten Lebenszyklus vollständig richtig dokumentiert werden?
    • Wie kann die Einarbeitungszeit für neue MA minimiert werden?
  • 11.
    • Die Dynamik eines Action Codes soll in Form von OFDs (erweiterte Aktivitätsdiagramme) dargestellt werden. Eine Umsetzung in Programmcode soll analog des im OFD hinterlegten Ablaufs möglich sein.
    Analyse des Problems: BKR Micro-workflow
    • Mittelfristig soll das Generieren von Code aufgrund der hinterlegten OFDs ermöglicht werden.
    • Ganze OFDs oder auch Teile daraus sollen wiederverwendbar sein.
    • Ein Rahmen soll gesucht und erweitert werden, der eine 1:1 Umsetzung des OFD in Programmcode erlaubt
  • 12.
    • Schaffung einer Komponente, die einen Rahmen für OFDs zur Verfügung stellt.  bkr micro - workflow
    Lösungsansatz BKR Micro-workflow
    • basiert auf dem Micro-workflow Projekt von Dragos Manolescu (http://sourceforge.net/projects/micro-workflow)
    • Funktionsumfang der erweiterten Komponente:
      • Abbildung von Aktivitäten und Bedingungen.
      • Definition von Geschäftsprozessen/ Programmschritten.
      • Ausführung von Geschäftsprozessen/ Programmschritten.
      • Protokollierung der Ausführung.
  • 13.
    • modularer Aufbau des Codes möglich, führt zu größerer Wiederverwendbarkeit
    Vorteile: BKR Micro-workflow
    • Abläufe müssen vor Implementierung genau in einem OFD dokumentiert werden, führt zu exakter Dokumentation
    • kann über JUnit Testfälle geprüft werden, führt zu größerer Sicherheit bei Änderungen
    • kompakte Komponente, Programmierer muss sich mit nur wenigen neuen Klassen vertraut machen
  • 14. Workflow-Definition: Aktivitäten
    • Activity-Klassen-Hierarchie Mit diesen Klassen können die Aktivitäten des OFD nachgebildet werden:
      • Primitive: einzelne Aktivität
      • Sequence: Reihe von aneinanderhängenden Aktivitäten
      • Conditional: Bedingungen
      • While: Schleife
      • NullActivity: Beendet Ausführung des workflows
    • ein workflow wird durch eine Kette von Activity-Objekten definiert
    BKR Micro-workflow
  • 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. BKR Micro-workflow Verbindung Workflow/Logikschicht
    • der Workflow ist durch eine Kette von Activity-Objekten definiert
    • der Workflow steuert die Activity-Objekte an, der Pfad ergibt sich durch die Definition und die Ergebnisse der Bedingungen
    • einfache Aktivitäten eines OFD werden durch eine Instanz der Primitive-Activity dargestellt
    • hinter einer Primitive steht ein Performer -Objekt
    • ein Performer implementiert die Zugriffe auf die Logikschicht
  • 17. BKR Micro-workflow Performer
    • implementiert die Logik einer einfachen Aktivität
    • kann ggf. von mehreren Primitive Instanzen verwendet werden
    • ist von der abstrakten Basis-Klasse Performer abgeleitet
    • Beispiel-Implementierung:
    class MyPerformer extends Performer { public void execute() { // Logik der Aktivität } }
  • 18. BKR Micro-workflow Bedingungen im workflow:
    • werden durch Conditional Instanzen dargestellt
    • eine Conditional Instanz besteht aus:
      • einer TestCondition Instanz
      • einer then Activity Instanz (optional)
      • einer else Activity Instanz (optional)
    • TestCondition Klassen müssen eine evaluate Methode bereitstellen, diese Methode muss den Rückgabetyp boolean haben
    • der Rückgabewert entscheidet, ob mit der true oder der else Activity fortgesetzt wird
  • 19. BKR Micro-workflow TestCondition:
    • implementiert die Logik einer Bedingung
    • muss eine evaluate Methode bereitstellen, diese Methode muss den Rückgabetyp boolean haben
    • werden von der abstrakten Basis-Klasse TestCondition abgeleitet
    • Beispiel-Implementierung:
    public class MyCondition extends TestCondition { public boolean evaluate() { if (...) { return true ; } else { return false ; } } }
  • 20. BKR Micro-workflow
    • WorkflowContext-Klasse Container, der während des Ablaufs des workflows verwendet wird. Er beinhaltet:
      • durch Aktivitäten oder Bedingungen verarbeitete / erzeugte Objekte
      • Meldungen (Fehler, Warnungen, Infos) von Aktivitäten oder Bedingungen (siehe WorkflowMessages-Klasse)
      • Workflow-Call-Stack
      • Protokoll der Logging-Ereignisse (siehe LoggingStrategy-Klasse)
    weitere Bestandteile (1)
  • 21. BKR Micro-workflow weitere Bestandteile (2)
    • WorkflowMessages-Klasse Liste, in der alle Meldungen des Workflows gesammelt werden.
    • WorkflowMessages.Type-Klasse Definierte Meldungstypen: ERROR, WARN, INFO
    • WorkflowMessages.Entry-Klasse einzelner Meldungslisten-Eintrag: hat einen Typ, einen Code und einen Text
  • 22. BKR Micro-workflow weitere Bestandteile (3)
    • LoggingStrategy-Interface Während des Ablaufs des Workflows werden WorkflowEvents erzeugt. Diese Ereignisse können bei Bedarf protokolliert werden. Dazu wird eine Implementierung der LoggingStrategy an den WorkflowContext gehängt. Es wird eine DefaultLoggingStrategy bereitgestellt, die den Ablauf durch den Workflow hierarchisch darstellen kann.
  • 23. BKR Micro-workflow weitere Bestandteile (4)
    • WorkflowExecuter-Klasse Hilfsklasse zur Ausführung eines Workflows. Sie wird mit einem Workflow-Objekt und einem WorkflowContext-Objekt initialisiert. Sollten bei der Ausführung Fehler auftreten, werden diese vom WorkflowExecuter detailliert protokolliert.
  • 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. BKR Micro-workflow ja nein Ausführung eines Workflows (3) in
    • Die Aktivität / Bedingung kann auf Elemente im workflow-Context zugreifen.
    • Der workflow-Context stellt einen Container dar, der allen Aktivitäten / Bedingungen eines workflows während der Ausführung zur Verfügung steht.
    • Er stellt das Kommunikations-Medium zwischen den Aktivitäten / Bedingungen dar.
    • Die Benutzung ist vergleichbar mit einer Java Map: Elemente werden über Schlüssel abgelegt.
  • 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
  • 35. 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. Lessons Learned
    • Der Wildwuchs der Programme konnte gestoppt werden.
    • Neue Mitarbeiter können sich relativ schnell einarbeiten.
    • Der Überblick über das Gesamtsystem bleibt erhalten.
    • Die Wartbarkeit des Systems ist auch nach Einführung der 4. Stufe (nach insgesamt 5 Jahren Projekt) erhalten geblieben.
    • aber
    • Der Feinheitsgrad der einzelnen OFDs muss reglementiert werden.
    • Den Überblick über die bereits vorhandenen workflows zu behalten gestaltet sich nicht immer einfach.
  • 39. Ausblick
    • der nächste Schritt ist die Generierung des Programmcodes aus den OFDs heraus.
    • als Fernziel ist die Adaption des Frameworks in die .Net Welt angedacht.
  • 40. Offene Fragen? Interesse? für weitere Infos wenden Sie sich an: [email_address] oder [email_address]