Download - Camunda@1&1
![Page 1: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/1.jpg)
camunda BPM @ 1&1
Philipp Grimm, Peter Hachenberger
![Page 2: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/2.jpg)
Service and Process Platform (SPP)
® 1&1 Internet AG 2013 2
![Page 3: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/3.jpg)
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
![Page 4: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/4.jpg)
Modeling in Signavio
4
![Page 5: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/5.jpg)
Process Cylce Plugin
5
PC
P
![Page 6: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/6.jpg)
Eclipse project from Archetype
6
public API for process start
facade for process start
test
adaptors, java code
transformed process,
configuration
Archetype
![Page 7: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/7.jpg)
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
![Page 8: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/8.jpg)
Process Service Invocation (PSI)
8
Two-way
Correlation
Variable Injection
Service Injection
Abstraction from Engine
![Page 9: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/9.jpg)
PSI: Used interfaces
9
![Page 10: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/10.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}10
implemented PSI
request interface
![Page 11: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/11.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}11
correlation
![Page 12: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/12.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}12
injection of service proxy
![Page 13: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/13.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}13
variable injected by PSI
![Page 14: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/14.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}14
injection of generated UUID
![Page 15: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/15.jpg)
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3") private HelloWorldBeanFacade externalService;
@Variableprivate String callInfo;
@CorrelationIdprivate String correlationId;
@Overridepublic void callService() throws Exception {
externalService.doSth(callInfo, correlationId);}
}15
method called by camunda / PSI
![Page 16: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/16.jpg)
Process Tooling
16
PIS
Developer Operator Process
manager
ICAT
![Page 17: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/17.jpg)
Process Command Center (PCC)
Configurable KPI Range
Implementation with predefined Delegate
![Page 18: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/18.jpg)
Process Command Center (PCC)
18
![Page 19: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/19.jpg)
Error Categorization with iCat
![Page 20: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/20.jpg)
Error Categorization (Business Errors)
![Page 21: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/21.jpg)
Process Operating
![Page 22: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/22.jpg)
Process Operating
![Page 23: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/23.jpg)
Zwei vieldiskutierte Themen
Datenhaltung / -handling
Migration von Prozess-Versionen
![Page 24: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/24.jpg)
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
![Page 25: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/25.jpg)
public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3") ExternalServiceBeanFacade externalService;
@VariableString processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)String autoGetterValue;
@Overridepublic String get() {
…}
}
AutoSetter
![Page 26: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/26.jpg)
public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3") ExternalServiceBeanFacade externalService;
@VariableString processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)String autoGetterValue;
@Overridepublic String get() {
…}
}
AutoSetter
![Page 27: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/27.jpg)
public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3") ExternalServiceBeanFacade externalService;
@VariableString processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)String autoGetterValue;
@Overridepublic String get() {
…}
}
AutoGetter
![Page 28: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/28.jpg)
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
![Page 29: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/29.jpg)
Process Operating
![Page 30: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/30.jpg)
Migration von Prozess-Versionen
Scenario
Prozess-Definition muss angepasst werden
Laufende Prozess-Instanzen müssen migriert werden
![Page 31: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/31.jpg)
id_ proc_inst_id_ parent_id_ act_id_
79 79 null Verifyaddress
act_ru_execution
79
Migrationsproblematik
![Page 32: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/32.jpg)
Migrationsproblematik
![Page 33: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/33.jpg)
id_ proc_inst_id_ parent_id_ act_id_
91 91 null parallelGateway
95 91 91 VerifyAddress
96 91 91 null
98 91 96 intermediateCatchEvent
act_ru_execution
91
95
96
98
Migrationsproblematik
![Page 34: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/34.jpg)
Mögliche Migrationsprobleme
1. gleicher Ablauf
2. Daten
3. Struktur-Änderung
einfach
mittelschwer
sehr schwer
![Page 35: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/35.jpg)
Migration von Prozessversionen
Kurzläufer
Prozessdefinition suspendieren
warten bis alle Instanzen durchgelaufen
Deployment von neuer Version
Prozessdefinition aktivieren
Langläufer
benutze fachliche Datenbank
modelliere kurzlaufende Subprozesse
realisiere Hauptprozess ohne Prozess-Engine
![Page 36: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/36.jpg)
Langläufer
fachlicheDB
![Page 37: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/37.jpg)
Langläufer
Ereignis
Empfänger
1. Event,
BusinessKey fachlicheDB
![Page 38: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/38.jpg)
Langläufer
Ereignis
Empfängerfachliche
DB
1. Event,
BusinessKey
2. Event,
BusinessKey
![Page 39: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/39.jpg)
Langläufer
Ereignis
Empfängerfachliche
DB
1. Event,
BusinessKey
2. Event,
BusinessKey
3. nächster Schritt
![Page 40: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/40.jpg)
Langläufer
Ereignis
Empfänger
Process
instanz
fachlicheDB
1. Event,
BusinessKey
2. Event,
BusinessKey
3. nächster Schritt
4. Starte Prozessinstanz,
BusinessKey
![Page 41: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/41.jpg)
Langläufer
Ereignis
Empfänger
Process
instanz
fachlicheDB
Zustands-
Änderungs-
Fassade
1. Event,
BusinessKey
2. Event,
BusinessKey
3. nächster Schritt
4. Starte Prozessinstanz,
BusinessKey
5. Prozess beendet,
BusinessKey
![Page 42: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/42.jpg)
Langläufer
Ereignis
Empfänger
Process
instanz
fachlicheDB
Zustands-
Änderungs-
Fassade
1. Event,
BusinessKey
2. Event,
BusinessKey
3. nächster Schritt
4. Starte Prozessinstanz,
BusinessKey
5. Prozess beendet,
BusinessKey
6. neuer Zustand,
BusinessKey
![Page 43: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/43.jpg)
Langläufer
Ereignis
Empfänger
Process
instanz
fachlicheDB
Zustands-
Änderungs-
Fassade
1. Event,
BusinessKey
2. Event,
BusinessKey
3. nächster Schritt
4. Starte Prozessinstanz,
BusinessKey
5. Prozess beendet,
BusinessKey
(7. sende Event, BusinessKey) 6. neuer Zustand,
BusinessKey
![Page 44: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/44.jpg)
Fachlicher Prozesskontext
Ereignis
Empfänger
Process
instanz
fachlicheDB
Zustands-
Änderungs-
Fassade
![Page 45: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/45.jpg)
Migrations-Alternativen
Scenario
Prozess-Definition muss angepasst werden
Laufende Prozess-Instanzen müssen migriert werden
![Page 46: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/46.jpg)
Einfügen von Wartepunkten
![Page 47: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/47.jpg)
Einfügen von Wartepunkten
![Page 48: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/48.jpg)
Einfügen von Wartepunkten
![Page 49: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/49.jpg)
Explizite Modellierung
![Page 50: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/50.jpg)
Explizite Modellierung
![Page 51: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/51.jpg)
Explizite Modellierung
![Page 52: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/52.jpg)
Zusammenfassung
Service- und Prozessplattform
Konfiguration und Installation
Toolchain: Plan – Build – Run
Consulting für Architektur und Umsetzung von Prozessen
![Page 53: Camunda@1&1](https://reader034.vdocument.in/reader034/viewer/2022042614/55a466341a28ab0f0d8b460f/html5/thumbnails/53.jpg)
Questions