Business Process Simulation in Action

Die Seite wird erstellt Matthias Seidel
 
WEITER LESEN
Business Process Simulation in Action
SOA Center Business Process Simulation

           Business Process
           Simulation in Action
           In der letzten Ausgabe des Java Magazins wurden die Grundlagen zu Business
           Process Simulation (BPS) gelegt und gezeigt, wie ein entsprechendes Tool auf
           Basis von Open-Source-Komponenten entwickelt werden kann [1]. Dieser Artikel
           zeigt die Konfiguration und Verwendung dieses Tools anhand eines Beispiels.

           von Bernd Rücker

                     m den letzten Artikel knapp zu-    Bevor ein Event zur Ausführung               Das Prozess-Start-Event plant sich
                     sammenzufassen: BPS ermög-         kommt, wird die Modellzeit der Si-           daraufhin selbst für einen späteren
                     licht es, für neue oder überar-    mulationsuhr zu jBPM übertragen,             Zeitpunkt wieder ein. Wann genau,
           beitete Prozesse sowie für veränderte        da die Modellzeit nicht der realen           entscheidet wiederum eine Vertei-
           Rahmenbedingungen Vorhersagen                Zeit entspricht, man aber trotzdem           lungsfunktion.
           über Kosten bzw. Leistungsparameter          korrekte Logdaten in jBPM abfragen
           zu treffen. Dadurch ermöglicht Simu-         möchte.                                    Kurzüberblick JBoss jBPM und
           lation Prozesse besser zu verstehen,         Das Event, implementiert als Java-Ob-      jPDL
           bevor sie implementiert und produktiv        jekt, wird ausgeführt. Dies startet eine   Die Business Process Engine jBPM ent-
           gesetzt werden, was vielen Risiken ent-      neue Prozessinstanz in jBPM und der        hält innerlich keine Magie, letztendlich
           gegenwirkt. Das in [2] entwickelte Open      Prozessgraf wird bis zum ersten War-       bildet sie einen einfachen Zustands-
           Source Tool realisiert BPS, indem das        tezustand durchlaufen.                     grafen ab. Dabei gibt es, wie in Abbil-
           bestehende Discrete Event Simulation         Beim Erreichen des Wartezustands           dung 2 gezeigt, Nodes und Transitions,
           Framework DESMO-J [3], [4] mit der           wird ein Event erstellt und DESMO-J        wobei Letztere zwei Nodes miteinander
           Business Process Engine JBoss jBPM           übergeben. Dieses Event sorgt spä-         verbinden. Dieses Grundprinzip er-
           [5] verheiratet wird. Vereinfacht gesagt,    ter für die Beendigung des Warte-          möglicht es, Prozesse als freie Grafen zu
           funktioniert dies, indem das Simulati-       zustands. In diesem Fall wartet man        beschreiben, ist dafür aber auch bereits
           ons-Framework die Prozessmaschine            auf das Eintreffen des Pakets, also ein    ausreichend. Es gibt unterschiedliche
           steuert, welche ihrerseits Events erstel-    externes Event. Es könnte auch eine        Arten von Nodes, ich möchte an dieser
           len und der Simulation übergeben kann.       Aufgabe für einen Sachbearbeiter im        Stelle nur Wartezustände („state“) und
               Zur Verdeutlichung ist in Abbil-         Prozessablauf vorkommen, dann ent-         Aufgaben („task-node“) gesondert er-
           dung 1 ein beispielhafter Ablauf ge-         spräche das erstellte Event der erfolg-    wähnen. In beiden muss die Ausführung
           zeigt. Er illustriert das Abarbeiten eines   reichen Bearbeitung der Aufgabe.           des Prozessgrafen unterbrochen wer-
           Prozess-Start-Events durch die zentrale      Die Zeit, zu der das Ereignis eintreten    den, im ersten Fall, weil auf ein externes
           Steuereinheit in DESMO-J:                    soll, wird durch konfigurierte stati-      Ereignis gewartet wird und im zweiten
                                                        stische Verteilungsfunktionen ermit-       Fall, weil erst ein Bearbeiter seine Auf-
                                                        telt, da Paketlaufzeiten oder auch Be-     gabe erledigen muss. In Wartezuständen
            Den Quellcode zu diesem Artikel             arbeitungszeiten immer ein Stück weit      wird der Prozesszustand normalerweise
            finden Sie unter www.javamagazin.de         zufällig sind.                             persistiert. Es sei aber angemerkt, dass

        94 javamagazin 6|2008                                                                                             www.JAXenter.de
Business Process Simulation in Action
Business Process Simulation SOA Center

Persistenz in der Simulation nicht von-     ist es ein Kompromiss zwischen Kosten
nöten ist, da die Simulation normaler-      und Durchlaufzeit.
weise am Stück ausgeführt wird, ohne             Statistische Zahlen zu Bearbei-
den Rechner zwischendurch abzuschal-        tungs- oder Wartezeiten stehen entwe-
ten. Dies wirkt sich dann positiv auf die   der als historische Logdaten in jBPM
Performance aus.                            zur Verfügung oder müssen manuell
    Die Prozessausführung wird durch        erstellt werden. In Abbildung 3 sind
ein Token-Objekt gesteuert, das durch       die durchschnittliche Bearbeitungszeit
den Prozessgrafen „wandert“, es ent-        sowie die Standardabweichung bereits
spricht also einer Prozessinstanz. Sind     eingetragen.
mehrere ausgehende Transitions an                Die Erstellung und Konfiguration
einem Node vorhanden, müssen jBPM-          eines Simulationsprojekts erfolgt für die
Informationen vorliegen, die eine Ent-      oben genannte Fragestellung etwa in fol-                  Abb. 1: Ablauf der Simulation
scheidung ermöglichen, ansonsten wird       genden Schritten:
die Standard-Transition verwendet.
                                             Erstellung des Prozesses in jBPM, falls
Beispielprozess und                          noch nicht vorhanden
Simulationsziel                              Erstellung einer Simulationskonfigu-
In der letzten Ausgabe wurde bereits         ration als XML, welche die ermittelten
ein Prozessbeispiel eingeführt, das als      statistischen Verteilungen berücksich-
Tutorial zum entwickelten Simulati-          tigt
ons-Tool online verfügbar ist [6]. Der       Definition von Szenarien mit un-
Prozess ist in Abbildung 3 grafisch dar-     terschiedlichen Resource Pools und
gestellt und schnell erklärt: Es handelt     eventuellen anderen Unterschieden                        Abb. 2: Interner Aufbau von jBPM
sich um die vereinfachte Abwicklung
von Retouren bei einem Webshop. Der
Shop prüft zurückkommende Ware in
einem Schnelltest auf Funktionstüch-
                                              Listing 1: jPDL-Quellcode des Beispielprozesses
tigkeit. Wird kein Fehler festgestellt,
so wird die Ware von einem Techniker                                     
eingehend unter die Lupe genommen.                             
Kann der Fehler nachvollzogen wer-                                                       
den, bekommt der Kunde sein Geld                                           
zurück. Funktioniert die Ware auch                                                                  

nach der zweiten Prüfung problemlos,                                                
                                                                       
wird die Retour abgelehnt und die Wa-
                                                                                                     
re zurückgesendet. Der Quellcode des
                                                                                       
Prozesses liegt als XML-Datei in der
                                                                          
Sprache jPDL (jBPM Process Defini-                                                                   
tion Language) vor und ist in Listing 1        
abgebildet.                                                            
    Erste Fragestellung an die Simu-                                                                 
lation ist die beste Personalplanung.                                                                          
So wird beispielsweise um die Weih-                                         
nachtszeit ein höheres Retouraufkom-           
                                                                                                  
einen stärkeren Personaleinsatz erfor-
                                                                                    
Simulation ist nun Folgende: Es wer-
                                                          
den Szenarien mit verschiedenen Per-                               
sonaleinsatzstrategien entwickelt und                                                               
durch die Simulation „getestet“, um so                               
das beste Szenario zu evaluieren. Wel-                                                  
Gewinners eingehen, ist von Projekt            
zu Projekt verschieden, normalerweise

www.JAXenter.de                                                                                                               javamagazin 6|2008 95
Business Process Simulation in Action
SOA Center Business Process Simulation

                        Definition von Datenquellen und              im Pool verfügbar, so muss der Prozess                  durch einen Bearbeiter in einer Aufgabe
                        -filtern (in diesem Artikel wird dies        auf sie warten. Dies entspricht der Rea-                simulieren.
                        nicht benötigt, siehe [6] für ein Bei-       lität: Hat niemand zur Bearbeitung ei-                      Wie in [1] beschrieben, will man in
                        spiel)                                       ner Aufgabe Zeit, so muss der Prozess                   der Simulation oft nicht alle Serviceauf-
                        Überprüfung aller Serviceaufrufe im          warten. Für Ressourcen wird dabei                       rufe normal durchführen, man möchte
                        Prozess und eventuelles Abschalten           auch definiert, welche Kosten sie verur-                sie manchmal ignorieren oder durch
                        oder Mocking                                 sachen (Costs-Per-Time-Unit) und wie                    einen Aufruf eines Mocks ersetzen. Das
                                                                     viel Prozent der Kosten in den Zeiten                   jBPM-Simulations-Tool ermöglicht dies
                      Konfigurationsparameter                        anfallen, in denen eine Ressource nicht                 durch einige Konfigurationsparameter
                      Für die Simulation werden zusätzliche          ausgelastet ist (Unutilized-Time-Cost-                  (Listing 3).
                      Informationen benötigt. Bereits ange-          Factor).
                      sprochen wurden Verteilungen für Be-                Interessant sind vor allem noch                    Konfiguration der Simulation
                      arbeitungs- und Wartezeiten. Ein wei-          Datenquellen und Datenfilter, wie in                    Die Konfiguration der Simulation kann
                      teres wichtiges Element sind Resource          Listing 2 gezeigt. Datenquellen können                  grundsätzlich auf zwei Arten gesche-
                      Pools. Diese geben die verfügbare An-          neue Daten in den simulierten Prozess                   hen. Erstens kann man die benötigten
                      zahl verschiedener Ressourcen an, jede         pumpen und Datenfilter können Da-                       Parameter direkt im jPDL-Quellcode
                      Ressource entspricht dann einem Pool.          ten verändern. Wird beispielsweise der                  des Prozesses einbetten. Dies ermög-
                      Wird während der Simulation eine Res-          Retourenprozess gestartet, so könnte                    licht es, einfach und schnell bestehen-
                      source beispielsweise zur Abarbeitung          eine Datenquelle Informationen zur                      de Prozesse zu simulieren. Die zweite
                      einer Aufgabe benötigt, so wird diese          Retoure als Prozessvariablen bereit-                    Möglichkeit ist die Verwendung einer
                      Ressource für die benötigte Zeit aus           stellen. Ein Datenfilter könnte dagegen                 eigenen XML-Konfigurationsdatei.
                      dem Pool entfernt. Ist keine Ressource         das Verändern der Fehlerbeschreibung                    Dies hat den Vorteil, dass der Prozess

 Listing 2: Konfiguration von Datenquellen und Filtern

 ...                                                                               
 
                                                                                   ...
                          
 Listing 3: Konfiguration von Serviceaufrufen im Prozess

                                              ...
   ...                                                     ...
                                                                          
   ...                                                     ...
                                                                          
   ...                                                   
  
                96 javamagazin 6|2008                                                                                                                   www.JAXenter.de
Business Process Simulation in Action
Business Process Simulation SOA Center

   selbst nicht verändert werden muss
   und dass in einer Simulation verschie-
   dene Prozesse angesprochen werden
   können. Auch ermöglicht es die eigene
   Konfiguration, unterschiedliche Szena-
   rien für den gleichen Prozess zu definie-
   ren. Dies wird im Beispiel für die unter-
   schiedlichen Personaleinsatzstrategien
   benötigt. Daher ist meist die Lösung
   mit einer eigenen Konfiguration vorzu-
   ziehen. Es ist jedoch auch eine Misch-
   form zulässig, wobei die Einstellungen
   im Prozess bei Bedarf überschrieben
   werden. Die Konfiguration für unseren
   Simulations-Use-Case ist in Listing 4
   zu sehen. Es wurde ein Experiment mit
   drei Szenarien definiert:

    christmas
    christmas_normal_case
    christmas_worst_case                       Abb. 3: Der Beispielprozess inklusive statistischer Kennzahlen

   Ein Experiment kann beliebig viele
   Szenarien enthalten und definiert eini-            Generierung der Simulationskonfiguration aus Logdaten
   ge globale Parameter (wie die Laufzeit
   über das Attribut run-time). Die Simu-             Die Daten konnten in dem entwickelten Tool recht einfach aus den Logdateien
   lation aller Szenarien des Experiments             gelesen werden, hierfür steht ein jBPM-Befehl als Command-Objekt zur Verfü-
   wird dabei immer als eine Einheit                  gung (das Command Pattern in jBPM abstrahiert Logik von der Umgebung, in
                                                      der sie aufgerufen wird [7]. In diesem Fall wird die Umgebung als jbpmContext-
   ausgeführt. Bei den Szenarien ist zu
                                                      Objekt erzeugt und übergeben):
   sehen, dass sie nicht zwangsläufig aus-
   geführt werden müssen (execute=false)
                                                      BamSimulationProposal proposal = (BamSimulationProposal)
   und von Basisszenarien erben können                 new GetSimulationInputCommand(processName).execute(jbpmContext);
   (base-scenario=christmas). Dies ermög-             proposal.createScenarioConfigurationXml();
   licht eine einfache Vererbung ähnlich
   abstrakter Klassen in Java, ist jedoch             Dieses Command erstellt einen Vorschlag für eine Simulationskonfiguration, die
   momentan auf eine Hierarchieebene                  bei statischen Eingangsdaten Werte aus der Historie erschließt. Dabei muss man
                                                      in der aktuellen Version noch aufpassen, da lediglich Standardverteilungen ver-
   beschränkt.                                        wendet werden, was nicht in jedem Fall die beste Lösung darstellt. Daher kann es
       Verteilungen und Resource Pools                nicht schaden, mit einem Statistikprogramm wie GSTAT2 [8] zu arbeiten, um aus
   müssen einerseits definiert werden,                historischen Daten Verteilungsfunktionen zu ermitteln..
   wie in Listing 4 zu sehen ist (Element

Das neue Portal für Java , Eclipse, Enterprise Architekturen, SOA.
                                                     TM

   www.JAXenter.de
                                                                                                                 www.jaxenter.de
                                                                                                                  javamagazin 6 2008 97
                                                                                                                                   |
SOA Center Business Process Simulation

                     distribution), andererseits muss die                   geordnet und auch ein Resource Pool                 verhalten (also beispielsweise die Stan-
                     Verwendung dieser Elemente konfigu-                    gleichen Namens konfiguriert, so wird               dard-Transition verwenden).
                     riert werden. Dies wird erreicht, indem                dieser Pool automatisch verwendet. Im
                     man die benannten Verteilungen dem                     Beispiel unterscheiden sich die zwei                Ausführung der Simulation
                     Prozess selbst (für die Zeitabstände                   ausgeführten Szenarien übrigens nur                 Hat man die Konfiguration erstellt, muss
                     zwischen Prozessstarts), Wartezustän-                  durch die Konfiguration der Resource                die Simulation ausgeführt werden. Bei
                     den oder Aufgaben zuweist (z.B.                                  
                                                                                           
               98 javamagazin 6|2008                                                                                                                         www.JAXenter.de
SOA Center Business Process Simulation

           sind. Momentan muss die Ausführung
           der Simulation über ein Stückchen Java-
           Code gestartet werden:

           new JbpmSimulationExperimentRunner().run(
            “/org/jbpm/sim/tutorial/business/
                                 simulationExperiment.xml“);

           Eine Möglichkeit, die Experimentkon-
           figuration direkt per Eclipse-Run as zu
           starten, ist allerdings im Rahmen des
           jBPM-Plug-ins geplant.
               Abbildung 4 und 5 zeigen beispielhaft
           Diagramme aus dem grafischen Report.                Abb. 4: Wartezeit vor Quick Test als Simulationsergebnis
           Erstere zeigt die Verteilung der Warte-
           zeit auf freiwerdende Ressourcen (in
           diesem Fall der „Tester“ vor der Aufgabe
           Quick Test). Die zweite Abbildung zeigt
           dagegen die Auslastung der Resource-
           „Tester“ für die verschiedenen Szenari-
           en. Aus Platzgründen ist für das gesamte
           Simulationsergebnis auf [2] oder [6] ver-
           wiesen, am besten lädt man sich das Tu-
           torial herunter und spielt selbst ein biss-
           chen damit. Es enthält auch noch einen
                                                               Abb. 5: Auslastung des Testers als Simulationsergebnis
           weiteren Simulations-Use-Case, in dem
           Prozessalternativen evaluiert werden.
                                                               deutig darauf, einen ersten stabilen Kern      werden später folgen, dann sollten auch
           Zusammenfassung                                     zu entwickeln, der die mathematische           mehr Erfahrungen mit dem Einsatz des
           Das gezeigte Tool ist im Rahmen einer               Theorie hinter BPS korrekt abbildet.           Tools vorliegen. Feedback, Kritik oder
           Master Thesis entstanden und nun Teil               Dieses Ziel konnte erreicht werden.            Erfahrungsberichte sind dabei übrigens
           von jBPM. Es erfüllt die grundlegenden              Erweiterungen und Verbesserungen               sehr willkommen!
           Anforderungen an ein Business Process
           Simulation Tool und zeigt, dass BPS auch                          Bernd Rücker ist Berater, Coach und Geschäftsführer bei der camunda
           mit einfachen Mitteln und ohne teure                              GmbH. Sein besonderes Interesse liegt dabei im Bereich BPM und SOA
                                                                             sowie deren praktische Umsetzung, gerne auch mit Open Source. Er hat
           Tools umgesetzt werden kann. Trotzdem
                                                                             berufsbegleitend sein Studium als Master of Science in Software Techno-
           sind BPS-Projekte leider noch kein Kin-                           logy erfolgreich abgeschlossen, in diesem Rahmen ist die angesprochene
           derspiel. Prozessoptimierung wird noch                            Master Thesis entstanden. Kontakt: bernd.ruecker@camunda.com
           nicht unterstützt. Prototypisch wurde
           es mit einem simplen Algorithmus aber
           bereits umgesetzt. Wünschenswert wäre                 Links & Literatur
           hier eine bessere Unterstützung durch                 [1] Bernd Rücker: Business Process Simulation selbst gemacht, in:
           das Tool und die Verwendung von leis-                     Java Magazin 05.2008, S. 20–25
           tungsfähigen Algorithmen, beispiels-                  [2] Master Thesis Bernd Rücker: www.camunda.com/content/publikationen/
                                                                     bernd-ruecker-business-process-simulation-with-jbpm.pdf
           weise könnten genetische Algorithmen
                                                                 [3] DESMO-J: www.desmoj.de
           zum Einsatz kommen. Für dieses Thema
                                                                 [4] Bernd Page and Wolfgang Kreutzer: The Java Simulation Handbook. Simulating
           soll eventuell eine zweite Masterarbeit
                                                                     Discrete Event Systems with UML and Java, Shaker Verlag, 2005
           ausgeschrieben werden.
                                                                 [5] JBoss jBPM: labs.jboss.com/jbossjbpm/
               Offiziell wird das Tool mit der nächs-
                                                                 [6] jBPM Simulation Tutorial:
           ten jBPM-Version (3.2.3) released. Mo-                    www.camunda.com/jbpm_simulation/jbpm_simulation_tutorial.html
           mentan werden noch nicht alle Features                [7] JbpmCommands: wiki.jboss.org/wiki/Wiki.jsp?page=JbpmCommands
           von jBPM unterstützt, es fehlen bei-                  [8] GSTAT2: www.statoek.wiso.uni-goettingen.de/user/fred/gstat2.htm
           spielsweise Subprozesse, Super-States                 [9] JasperReports: www.jasperforge.org/jaspersoft/opensource/business_intelligence/
           und Timer. Auch gibt es noch kein GUI.                    jasperreports/
           Der Fokus lag in der ersten Version ein-

       100 javamagazin 6|2008                                                                                                        www.JAXenter.de
Sie können auch lesen