SlideShare a Scribd company logo
1 of 33
Download to read offline
camunda BPM @ 1&1
Peter Hachenberger
Our Business
*Erwartet für 2014
2® 1&1 Gruppe 2014
Service and Process Platform (SPP)
® 1&1 Internet AG 2013 3
Tool chain for process automation
4
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
Modeling in Signavio
5
Process Cylce Plugin
6
PCP
Eclipse project from Archetype
7
 public API for process start
 facade for process start
 test
 java code
 transformed process
Archetype
Process Service Invocation (PSI)
8
Advanced
Correlation
Abstraction
from Engine
Service
Injection
Variable
Injection
PSI Configuration in Signavio
9
PSI: Used interfaces
10
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
11
implemented PSI
request interface
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
12
method called by camunda BPM / PSI
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
13
correlation constant
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
14
injection of generated UUID
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
15
injection of service proxy
PSI Request Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{
@Service(type="ejb3")
private HelloWorldBeanFacade externalService;
@Variable
private String callInfo;
@CorrelationId
private String correlationId;
@Override
public void callService() throws Exception {
externalService.doSth(callInfo, correlationId);
}
}
16
variable injected by PSI
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
17
implemented PSI
respone interface
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
18
method called by camunda BPM / PSI
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
19
same correlation constant
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
20
response injected by PSI
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
21
variable extracted by PSI
PSI Response Adapter
@Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION")
public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{
@Result
private String response;
@Variable
private String helloWorldResponse;
@AutoSetterVariable(type=SomeAutoSetter.class)
private String helloWorldResponseExternal;
@Override
public void processResponse() {
helloWorldResponseExternal = helloWorldResponse = response;
}
}
22
variable written to external context
AutoGetter
public class OuterAutoGetter implements AutoGetter<String> {
@Service(type="ejb3")
ExternalServiceBeanFacade externalService;
@Variable
String processVar;
@AutoGetterVariable(type = InnerAutoGetter.class)
String autoGetterValue;
@Override
public String get() {
InputDTO inputDto = InputDtoFactory.createInputDto(autoGetterValue);
ResultDTO resultDto = externalService.callSynchronously(inputDto, processVar);
return resultDto.getResultTextDetails();
}
}
Process Tooling
24
PIS
Developer Operator Process
manager
ICAT
Process Command Center (PCC)
25
Process Command Center (PCC)
Process sends events to PCC
Implementation with predefined Delegate
Error Categorization with iCat
Error Categorization (Business Errors)
Process Operating in PIS
(Process Information Service)
Multiple Business Keys
 Implementation
 postgres HSTORE
 Initialization
 process-start API
 in PSI adapter
 Operating
 fast search
 separate columns in views
Process Operating
Engine Modifications
 Retry behavior configurable
 number of retries
 time interval for each retry
 Id generator usind postgres sequence
 Multiple business keys
 Process starter API
 support of own business-key concept
 asynchronous start
 New commands
 clone/replace process instance
 move execution
 Extended REST-API
Questions

More Related Content

What's hot

Testing Java Code Effectively
Testing Java Code EffectivelyTesting Java Code Effectively
Testing Java Code EffectivelyAndres Almiray
 
Cloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovCloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovGlobalLogic Ukraine
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Sven Ruppert
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo Ali Parmaksiz
 
Spring Cloud Function — Going Serverless
Spring Cloud Function — Going ServerlessSpring Cloud Function — Going Serverless
Spring Cloud Function — Going ServerlessGlobalLogic Ukraine
 
Android Design Patterns
Android Design PatternsAndroid Design Patterns
Android Design PatternsGodfrey Nolan
 
Lessons Learned Implementing a GraphQL API
Lessons Learned Implementing a GraphQL APILessons Learned Implementing a GraphQL API
Lessons Learned Implementing a GraphQL APIDirk-Jan Rutten
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Daniele Pallastrelli
 
Why You Should Use TAPIs
Why You Should Use TAPIsWhy You Should Use TAPIs
Why You Should Use TAPIsJeffrey Kemp
 

What's hot (16)

Docker In Bank Unrated
Docker In Bank UnratedDocker In Bank Unrated
Docker In Bank Unrated
 
Testing Java Code Effectively
Testing Java Code EffectivelyTesting Java Code Effectively
Testing Java Code Effectively
 
Cloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovCloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan Gasimov
 
Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02Proxy Deep Dive JUG Saxony Day 2015-10-02
Proxy Deep Dive JUG Saxony Day 2015-10-02
 
Agile Android
Agile AndroidAgile Android
Agile Android
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
 
Spring Cloud Function — Going Serverless
Spring Cloud Function — Going ServerlessSpring Cloud Function — Going Serverless
Spring Cloud Function — Going Serverless
 
Tdd iPhone For Dummies
Tdd iPhone For DummiesTdd iPhone For Dummies
Tdd iPhone For Dummies
 
Android Design Patterns
Android Design PatternsAndroid Design Patterns
Android Design Patterns
 
Enter the gradle
Enter the gradleEnter the gradle
Enter the gradle
 
Lessons Learned Implementing a GraphQL API
Lessons Learned Implementing a GraphQL APILessons Learned Implementing a GraphQL API
Lessons Learned Implementing a GraphQL API
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++
 
Why You Should Use TAPIs
Why You Should Use TAPIsWhy You Should Use TAPIs
Why You Should Use TAPIs
 
neiljaysonching
neiljaysonchingneiljaysonching
neiljaysonching
 
Agile mobile
Agile mobileAgile mobile
Agile mobile
 
An intro to cqrs
An intro to cqrsAn intro to cqrs
An intro to cqrs
 

Similar to camunda BPM at 1&1

New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptxNew features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptxMuralidharan Deenathayalan
 
How to code to code less
How to code to code lessHow to code to code less
How to code to code lessAnton Novikau
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzgKristijan Jurković
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasyJBug Italy
 
Developing ASP.NET Applications Using the Model View Controller Pattern
Developing ASP.NET Applications Using the Model View Controller PatternDeveloping ASP.NET Applications Using the Model View Controller Pattern
Developing ASP.NET Applications Using the Model View Controller Patterngoodfriday
 
What's Coming in Spring 3.0
What's Coming in Spring 3.0What's Coming in Spring 3.0
What's Coming in Spring 3.0Matt Raible
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every dayVadym Khondar
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM ICF CIRCUIT
 
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinMarvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinJava User Group Latvia
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineRoman Kirillov
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANGCoreStack
 
ASP.Net 5 and C# 6
ASP.Net 5 and C# 6ASP.Net 5 and C# 6
ASP.Net 5 and C# 6Andy Butland
 
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)Amazon Web Services
 
Service Oriented Web Development with OSGi - C Ziegeler
Service Oriented Web Development with OSGi - C ZiegelerService Oriented Web Development with OSGi - C Ziegeler
Service Oriented Web Development with OSGi - C Ziegelermfrancis
 
Spring5 New Features
Spring5 New FeaturesSpring5 New Features
Spring5 New FeaturesJay Lee
 

Similar to camunda BPM at 1&1 (20)

New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptxNew features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
New features of Minimal APIs in .NET 7 -Muralidharan Deenathayalan.pptx
 
Rcp by example
Rcp by exampleRcp by example
Rcp by example
 
How to code to code less
How to code to code lessHow to code to code less
How to code to code less
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzg
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasy
 
Developing ASP.NET Applications Using the Model View Controller Pattern
Developing ASP.NET Applications Using the Model View Controller PatternDeveloping ASP.NET Applications Using the Model View Controller Pattern
Developing ASP.NET Applications Using the Model View Controller Pattern
 
What's Coming in Spring 3.0
What's Coming in Spring 3.0What's Coming in Spring 3.0
What's Coming in Spring 3.0
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every day
 
Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM Maximize the power of OSGi in AEM
Maximize the power of OSGi in AEM
 
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey BuzdinMarvel of Annotation Preprocessing in Java by Alexey Buzdin
Marvel of Annotation Preprocessing in Java by Alexey Buzdin
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
 
OpenDaylight and YANG
OpenDaylight and YANGOpenDaylight and YANG
OpenDaylight and YANG
 
ASP.Net 5 and C# 6
ASP.Net 5 and C# 6ASP.Net 5 and C# 6
ASP.Net 5 and C# 6
 
CDI @javaonehyderabad
CDI @javaonehyderabadCDI @javaonehyderabad
CDI @javaonehyderabad
 
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)
AWS re:Invent 2016: Chalice: A Serverless Microframework for Python (DEV308)
 
Building maintainable app
Building maintainable appBuilding maintainable app
Building maintainable app
 
Service Oriented Web Development with OSGi - C Ziegeler
Service Oriented Web Development with OSGi - C ZiegelerService Oriented Web Development with OSGi - C Ziegeler
Service Oriented Web Development with OSGi - C Ziegeler
 
Spring5 New Features
Spring5 New FeaturesSpring5 New Features
Spring5 New Features
 
Arquitecturas de microservicios - Medianet Software
Arquitecturas de microservicios   -  Medianet SoftwareArquitecturas de microservicios   -  Medianet Software
Arquitecturas de microservicios - Medianet Software
 

More from camunda services GmbH

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operatorscamunda services GmbH
 
Predictive Process Monitoring in Camunda
Predictive Process Monitoring in CamundaPredictive Process Monitoring in Camunda
Predictive Process Monitoring in Camundacamunda services GmbH
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automationcamunda services GmbH
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for productioncamunda services GmbH
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmencamunda services GmbH
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...camunda services GmbH
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...camunda services GmbH
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0camunda services GmbH
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...camunda services GmbH
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...camunda services GmbH
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankwarecamunda services GmbH
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Lifecamunda services GmbH
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITcamunda services GmbH
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisencamunda services GmbH
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGcamunda services GmbH
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native Worldcamunda services GmbH
 

More from camunda services GmbH (20)

Using Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through OperatorsUsing Camunda on Kubernetes through Operators
Using Camunda on Kubernetes through Operators
 
Predictive Process Monitoring in Camunda
Predictive Process Monitoring in CamundaPredictive Process Monitoring in Camunda
Predictive Process Monitoring in Camunda
 
Camunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process AutomationCamunda Product Update – The present and the future of Process Automation
Camunda Product Update – The present and the future of Process Automation
 
Tips on how to build Camunda Run for production
Tips on how to build Camunda Run for productionTips on how to build Camunda Run for production
Tips on how to build Camunda Run for production
 
Process Driven Customer Interaction
Process Driven Customer InteractionProcess Driven Customer Interaction
Process Driven Customer Interaction
 
Exploring Automation in Government
Exploring Automation in GovernmentExploring Automation in Government
Exploring Automation in Government
 
The Pulse of Process Automation
The Pulse of Process AutomationThe Pulse of Process Automation
The Pulse of Process Automation
 
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in UnternehmenBlitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
Blitzumfrage zur aktuellen Nutzung von Prozessautomatisierung in Unternehmen
 
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
Webinar - A Developer's Quick Start Guide to Open Source Process Automation U...
 
Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...Extending human workflow preparing people and processes for the digital era w...
Extending human workflow preparing people and processes for the digital era w...
 
Camunda BPM 7.13 Webinar
Camunda BPM 7.13 WebinarCamunda BPM 7.13 Webinar
Camunda BPM 7.13 Webinar
 
[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0[Webinar] Camunda Optimize Release 3.0
[Webinar] Camunda Optimize Release 3.0
 
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
Webinar: Monitoring & Orchestrating Your Microservices Landscape using Workfl...
 
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
Process Automation Forum, Processautomatisierung neu gedacht für das digitale...
 
Process Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG BankwareProcess Automation Forum Zurich, finnova AG Bankware
Process Automation Forum Zurich, finnova AG Bankware
 
Process Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss LifeProcess Automation Forum Munich, Swiss Life
Process Automation Forum Munich, Swiss Life
 
Process Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-ITProcess Automation Forum Vienna, A1 & J-IT
Process Automation Forum Vienna, A1 & J-IT
 
Process Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, RaiffeisenProcess Automation Forum Vienna, Raiffeisen
Process Automation Forum Vienna, Raiffeisen
 
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AGProcess Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
Process Automation Forum Düsseldorf, Provinzial Rheinland Versicherung AG
 
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
[Webinar] BPM Renaissance: 5 Tips to Thrive in a Cloud-Native World
 

Recently uploaded

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 

camunda BPM at 1&1

  • 1. camunda BPM @ 1&1 Peter Hachenberger
  • 2. Our Business *Erwartet für 2014 2® 1&1 Gruppe 2014
  • 3. Service and Process Platform (SPP) ® 1&1 Internet AG 2013 3
  • 4. Tool chain for process automation 4 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
  • 7. Eclipse project from Archetype 7  public API for process start  facade for process start  test  java code  transformed process Archetype
  • 8. Process Service Invocation (PSI) 8 Advanced Correlation Abstraction from Engine Service Injection Variable Injection
  • 9. PSI Configuration in Signavio 9
  • 11. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 11 implemented PSI request interface
  • 12. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 12 method called by camunda BPM / PSI
  • 13. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 13 correlation constant
  • 14. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 14 injection of generated UUID
  • 15. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 15 injection of service proxy
  • 16. PSI Request Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldRequestAdapter implements ServiceRequestAdapter{ @Service(type="ejb3") private HelloWorldBeanFacade externalService; @Variable private String callInfo; @CorrelationId private String correlationId; @Override public void callService() throws Exception { externalService.doSth(callInfo, correlationId); } } 16 variable injected by PSI
  • 17. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 17 implemented PSI respone interface
  • 18. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 18 method called by camunda BPM / PSI
  • 19. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 19 same correlation constant
  • 20. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 20 response injected by PSI
  • 21. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 21 variable extracted by PSI
  • 22. PSI Response Adapter @Correlation(correlationIdReference = "HELLO_WORLD_CORRELATION") public class CheckHelloWorldResponseAdapter implements ServiceResponseAdapter{ @Result private String response; @Variable private String helloWorldResponse; @AutoSetterVariable(type=SomeAutoSetter.class) private String helloWorldResponseExternal; @Override public void processResponse() { helloWorldResponseExternal = helloWorldResponse = response; } } 22 variable written to external context
  • 23. AutoGetter public class OuterAutoGetter implements AutoGetter<String> { @Service(type="ejb3") ExternalServiceBeanFacade externalService; @Variable String processVar; @AutoGetterVariable(type = InnerAutoGetter.class) String autoGetterValue; @Override public String get() { InputDTO inputDto = InputDtoFactory.createInputDto(autoGetterValue); ResultDTO resultDto = externalService.callSynchronously(inputDto, processVar); return resultDto.getResultTextDetails(); } }
  • 26. Process Command Center (PCC) Process sends events to PCC Implementation with predefined Delegate
  • 29. Process Operating in PIS (Process Information Service)
  • 30. Multiple Business Keys  Implementation  postgres HSTORE  Initialization  process-start API  in PSI adapter  Operating  fast search  separate columns in views
  • 32. Engine Modifications  Retry behavior configurable  number of retries  time interval for each retry  Id generator usind postgres sequence  Multiple business keys  Process starter API  support of own business-key concept  asynchronous start  New commands  clone/replace process instance  move execution  Extended REST-API