3. Tool chain for process automation
3
Process
Modeling
Signavio
Process
Export
PCP
Process
Development
BuSyWizard,
PSI
Build RunPlan
Configuration
Management
Puppet
Operating
System
Unitix
Process
Execution
S+P Platform
Process
Monitoring
PCC
Process
Operating
PIS
Platform
Monitoring
RHQ &
Nimsoft
6. Eclipse project from Archetype
6
public API for process start
facade for process start
test
adaptors, java code
transformed process,
configuration
Archetype
7. Process Starter
public String startOrderService() {
final Map<String, Object> variables = new HashMap<String, Object>();
final Map<String, String> businessKeys = new HashMap<String, String>();
String processInstanceId =
ProcessStarter.startProcessInstance(„orderProcess_2_1, variables, businessKeys);
return processInstanceId;
}
7
Setzen von SPP Business Keys
Asynchroner Start
ExceptionHandling der Plattform vom ersten Knoten
8. Process Service Invocation (PSI)
8
Two-way
Correlation
Variable
Injection
Service
Injection
Abstraction
from Engine
24. Datenhandling
Fachliche Daten in fachliche DB – NICHT in Prozesskontext
Datenlast reduziert Performance
Prozesse sollten keine Monolithen sein
Effektivere Strukturierung der Daten
Bessere Kontrolle ueber Kundendaten (Legalitaet)
AutoGetter/AutoSetter
Einfache Einbindung von externen Daten
Business Keys
25. public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3")
ExternalServiceBeanFacade externalService;
@Variable
String processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)
String autoGetterValue;
@Override
public String get() {
…
}
}
AutoSetter
26. public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3")
ExternalServiceBeanFacade externalService;
@Variable
String processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)
String autoGetterValue;
@Override
public String get() {
…
}
}
AutoSetter
27. public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3")
ExternalServiceBeanFacade externalService;
@Variable
String processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)
String autoGetterValue;
@Override
public String get() {
…
}
}
AutoGetter
28. Datenhandling
Fachliche Daten in fachliche DB – NICHT in Prozesskontext
Datenlast reduziert Performance
Prozesse sollten keine Monolithen sein
Effektivere Strukturierung der Daten
Bessere Kontrolle ueber Kundendaten (Legalitaet)
AutoGetter/AutoSetter
Einfache Einbindung von externen Daten
Business Keys
camunda business key garantierte Eindeutigkeit von Prozessinstanz
SPP buisness keys liefern Corrleation per fachlichem Schluessel
SPP buisness keys liefern Transparenz im Operating
extra Spalte pro business key
schnelle Suche via business key
52. Zusammenfassung
Service- und Prozessplattform
Konfiguration und Installation
Toolchain: Plan – Build – Run
Consulting für Architektur und Umsetzung von Prozessen
SWIS
Service provider for teams that implement business processes
SWIStec: Toolchain for complete life-cycle of business processes
Full-fledge BPM modeler
PSI
Abstraction and correlation layer
Cooperation with camunda
adapter
Modell-ID (ID aus Browser-Zeile)
Maven plugin
Generates BPMN XML
Runs basic validation
Validation errors don‘t stop generation and are shown as warnings
Development (RUN) start
PCP generates process into WAR
PSI adapter in JAR
racing problem
correlation via
UUIDs
BusinessKey
EventId
Multi-EventIds
multiple responses
selection/filtering
tie-breaker
LIFO
FIFO
Adapter interfaces
Two-way correlation
Ejb
Webservice
REST
messaging
Die Variable aus dem Prozess Kontext die hier als einfacher String injiziert wird
Extraction as well
Alternative: business key
Process sends events to PCC
divide process into logical phases -> in PCC
Errors sorted by
- Process; node; error category
Technical errors -> exceptions
Business errors -> configurable
Business Errors
Process Instances / Executions
Complex queries
Variables
Jobs / Exceptions
Change retries
Move-Kommando
signal
Process Instances
Clone/Replace-Kommando
Executions
Move-Kommando
Change retries
signal
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.
Alle Kurzläufer in separate (Unter-) Prozesse.
Orchestrierende Schicht nach Möglichkeit nicht über Prozessengine, sondern separates System, dass Zustände der Hauptprozesse in DB speichert.