SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Oliver Marohn, Dr. Sven Jörges | IHK-GfI mbH
Real-Life-BPM mit Java EE
Ein Erfahrungsbericht
• IT-Tochtergesellschaft der deutschen
Industrie- und Handelskammern (IHKs)
und des Deutschen Industrie- und
Handelskammertages (DIHK)
• Seit mehr als 40 Jahren
Kunden
• Die 80 deutschen IHKs und der DIHK.
• Täglich bundesweit mehr als 8.000 IHK-
MitarbeiterInnen.
Software-Landschaft
Motivation: Prozesse
• insbes. im ERP-System EVA
generischer Aufbau
• Prozess-Know-how beim
Sachbearbeiter
• Idee: Führung des Sachbearbeiters
durch Prozesse – mehr Transparenz in
den Prozessen
Prozess-Management
Beispiel: Guthabenerstattung
(Ist-Zustand)
Beispiel: Guthabenerstattung
(mit Prozessunterstützung)
BPMN 2.0
SaaS
Mandantenfähigkeit
Performance und Verfügbarkeit
Support
Auswahl und PoC
Quelle:
Quelle:



 
Quelle:



 



Oracle BPM Suite
Bonita Open Solution
Activiti / camunda fox
IBM Business Process Manager
Intalio
activeVOS
jBPM
• Native BPMN Process Engine
• Open Source (Apache License 2.0)
• leichtgewichtig
Quelle: http://www.activiti.org/userguide/
Activiti
• Spezielle Unterstützung für JEE
• Zusätzliche Tools (Monitoring, Tasklist, …)
• Support durch camunda
camunda fox
Quelle:



 



Quelle:



 
fox cockpit
Activiti
Drools
Aufbau der Process Engine
Deployment
EJB
JAX-WS, XIHK
Beispiel-Client: EVA
Stolpersteine
BPMN 2.0
SaaS
Mandantenfähigkeit
Performance und Verfügbarkeit
Support
Mandant aus Benutzername ableitbar:
101joerges
Mandant aus Benutzername ableitbar:
101joerges
Lösung:
Konfiguration von DB-Schema-Präfixen in Activiti (ACT-565), seit
Activiti 5.10
<!-- Kammer 101 -->
<bean id="processEngineConfiguration101" class=… >
<property name="processEngineName" value="101" />
<property name="dataSource" ref="containerDataSource" />
…
<property name="databaseTablePrefix" value="ACT101_04." />
</bean>
<!-- Kammer 106 -->
<bean id="processEngineConfiguration106" class=…>
<property name="processEngineName" value="106" />
<property name="dataSource" ref="containerDataSource" />
…
<property name="databaseTablePrefix" value="ACT106_04." />
</bean>
activiti.cfg.xml:
ProcessEngineConfiguration config =
ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource(
"activiti.cfg.xml",
"processEngineConfiguration101");
ProcessEngine engine101 = config.buildProcessEngine();
BPMN 2.0
SaaS
Mandantenfähigkeit
Performance und Verfügbarkeit
Support
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
Problem:
„Query-API“ von Activiti
für unsere Anforderungen unzureichend
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
Problem:
„Query-API“ von Activiti
für unsere Anforderungen unzureichend
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskOwner("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskOwner("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskOwner("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskOwner("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
Lösung:
Eigene Queries mittels MyBatis
taskService.createTaskQuery()
.taskAssignee("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
taskService.createTaskQuery()
.taskOwner("101joerges")
.taskPriority(50)
.orderByDueDate()
.asc()
.list()
Lösung:
Eigene Queries mittels MyBatis
BPMN 2.0
SaaS
Mandantenfähigkeit
Performance und Verfügbarkeit
Support
<userTask activiti:formKey="Dummy“ …>
<extensionElements>
<activiti:formProperty id="nichtLesbaresProperty"
name="Nicht lesbar" readable="false"/>
<activiti:formProperty id="nichtSchreibbaresProperty"
name="Nicht schreibbar" writable="false"/>
<activiti:formProperty id="schreibbaresProperty"
name="Schreibbar" writable="true"/>
<activiti:formProperty id="schreibbaresMussProperty"
name="Schreibbar und Muss" required="true" writable="true"/>
</extensionElements>
…
</userTask>
<userTask activiti:formKey="Dummy“ …>
<extensionElements>
<activiti:formProperty id="nichtLesbaresProperty"
name="Nicht lesbar" readable="false"/>
<activiti:formProperty id="nichtSchreibbaresProperty"
name="Nicht schreibbar" writable="false"/>
<activiti:formProperty id="schreibbaresProperty"
name="Schreibbar" writable="true"/>
<activiti:formProperty id="schreibbaresMussProperty"
name="Schreibbar und Muss" required="true" writable="true"/>
</extensionElements>
…
</userTask>
Quelle: http://www.activiti.org/userguide/
<userTask activiti:formKey="Dummy“ …>
<extensionElements>
<activiti:formProperty id="nichtLesbaresProperty"
name="Nicht lesbar" readable="false"/>
<activiti:formProperty id="nichtSchreibbaresProperty"
name="Nicht schreibbar" writable="false"/>
<activiti:formProperty id="schreibbaresProperty"
name="Schreibbar" writable="true"/>
<activiti:formProperty id="schreibbaresMussProperty"
name="Schreibbar und Muss" required="true" writable="true"/>
</extensionElements>
…
</userTask>
<userTask activiti:formKey="Dummy“ …>
<extensionElements>
<activiti:formProperty id="nichtLesbaresProperty"
name="Nicht lesbar" readable="false"/>
<activiti:formProperty id="nichtSchreibbaresProperty"
name="Nicht schreibbar" writable="false"/>
<activiti:formProperty id="schreibbaresProperty"
name="Schreibbar" writable="true"/>
<activiti:formProperty id="schreibbaresMussProperty"
name="Schreibbar und Muss" required="true" writable="true"/>
</extensionElements>
…
</userTask>
{
“actionId“ : “Bankverbindung“,
“actionName“ : “Bankverbindung pflegen…“,
“tabName“ : “Bankverbindung“
}
Was kommt noch?
Maskengenerierung
Form Properties
UI-Description
DSL(s)
„Versionshölle“
Fazit
Activiti + JEE =
Process Engine
auf Enterprise-
Niveau
Erfolgsfaktor Open Source
Do it yourself! Frage die Community!
Contribute!
E-Mail: marohn@gfi.ihk.de, joerges@gfi.ihk.de
Website: www.ihk-gfi.de
Twitter: http://www.twitter.com/ihkgfi/
Facebook: http://www.facebook.com/ihkgfi
IHK Gesellschaft für
Informationsverarbeitung mbH
Emil-Figge-Str. 86
44227 Dortmund
Fon: 0231 / 9746 – 0
Fax: 0231 / 9746 – 111
E-Mail: info@gfi.ihk.de

Weitere ähnliche Inhalte

Ähnlich wie Real-Life-BPM mit Java EE: Ein Erfahrungsbericht

(Schon wieder) Legacy – und nun?
(Schon wieder) Legacy – und nun?(Schon wieder) Legacy – und nun?
(Schon wieder) Legacy – und nun?OPEN KNOWLEDGE GmbH
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtagcamunda services GmbH
 
Jakob Freund @ BPMN 2010
Jakob Freund @ BPMN 2010Jakob Freund @ BPMN 2010
Jakob Freund @ BPMN 2010bpmn2010
 
Helmuth Rath (proALPHA)
Helmuth Rath (proALPHA)Helmuth Rath (proALPHA)
Helmuth Rath (proALPHA)Praxistage
 
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...Business Intelligence Research
 
C5 Mettenmeier Lotusday2007
C5 Mettenmeier Lotusday2007C5 Mettenmeier Lotusday2007
C5 Mettenmeier Lotusday2007Andreas Schulte
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)soreco
 
Mobiles Workflowmanagementsystem key2operate
Mobiles Workflowmanagementsystem key2operateMobiles Workflowmanagementsystem key2operate
Mobiles Workflowmanagementsystem key2operateadvenco Consulting GmbH
 
Web Data Management Final Presentation
Web Data Management Final PresentationWeb Data Management Final Presentation
Web Data Management Final PresentationMarcel Neidinger
 
ecspand SAP Eingangsrechnungsverarbeitung
ecspand SAP Eingangsrechnungsverarbeitungecspand SAP Eingangsrechnungsverarbeitung
ecspand SAP EingangsrechnungsverarbeitungFLorian Laumer
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Digicomp Academy AG
 
Basta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudBasta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudMarc Müller
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsFabian Niesen
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Die Zukunft der Webstandards - Webinale 31.05.2010
Die Zukunft der Webstandards - Webinale 31.05.2010Die Zukunft der Webstandards - Webinale 31.05.2010
Die Zukunft der Webstandards - Webinale 31.05.2010Patrick Lauke
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?adesso AG
 
Siegfried Klug (automationX)
Siegfried Klug (automationX)Siegfried Klug (automationX)
Siegfried Klug (automationX)Praxistage
 
Workflow Tool für den SAP Workflow Engine Produktpräsentation
Workflow Tool für den SAP Workflow Engine Produktpräsentation Workflow Tool für den SAP Workflow Engine Produktpräsentation
Workflow Tool für den SAP Workflow Engine Produktpräsentation inPuncto GmbH
 

Ähnlich wie Real-Life-BPM mit Java EE: Ein Erfahrungsbericht (20)

(Schon wieder) Legacy – und nun?
(Schon wieder) Legacy – und nun?(Schon wieder) Legacy – und nun?
(Schon wieder) Legacy – und nun?
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtag
 
Jakob Freund @ BPMN 2010
Jakob Freund @ BPMN 2010Jakob Freund @ BPMN 2010
Jakob Freund @ BPMN 2010
 
Helmuth Rath (proALPHA)
Helmuth Rath (proALPHA)Helmuth Rath (proALPHA)
Helmuth Rath (proALPHA)
 
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...
Beyond SAP - Effektive Nutzung von Business Content durch In-Memory-OLAP und ...
 
C5 Mettenmeier Lotusday2007
C5 Mettenmeier Lotusday2007C5 Mettenmeier Lotusday2007
C5 Mettenmeier Lotusday2007
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)
 
It-Umstellungen als Wettbewerbsfaktor
It-Umstellungen als WettbewerbsfaktorIt-Umstellungen als Wettbewerbsfaktor
It-Umstellungen als Wettbewerbsfaktor
 
Mobiles Workflowmanagementsystem key2operate
Mobiles Workflowmanagementsystem key2operateMobiles Workflowmanagementsystem key2operate
Mobiles Workflowmanagementsystem key2operate
 
Web Data Management Final Presentation
Web Data Management Final PresentationWeb Data Management Final Presentation
Web Data Management Final Presentation
 
ecspand SAP Eingangsrechnungsverarbeitung
ecspand SAP Eingangsrechnungsverarbeitungecspand SAP Eingangsrechnungsverarbeitung
ecspand SAP Eingangsrechnungsverarbeitung
 
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
Erfolgreiche ITIL-Tool-Implementierung in der Praxis, am Beispiel o2
 
Basta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der CloudBasta 2016 - Test- und Releaseumgebungen in der Cloud
Basta 2016 - Test- und Releaseumgebungen in der Cloud
 
JBoss jBPM
JBoss jBPMJBoss jBPM
JBoss jBPM
 
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop AnalyticsWindows as a Service - Herausforderungen ohne Windows Desktop Analytics
Windows as a Service - Herausforderungen ohne Windows Desktop Analytics
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Die Zukunft der Webstandards - Webinale 31.05.2010
Die Zukunft der Webstandards - Webinale 31.05.2010Die Zukunft der Webstandards - Webinale 31.05.2010
Die Zukunft der Webstandards - Webinale 31.05.2010
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 
Siegfried Klug (automationX)
Siegfried Klug (automationX)Siegfried Klug (automationX)
Siegfried Klug (automationX)
 
Workflow Tool für den SAP Workflow Engine Produktpräsentation
Workflow Tool für den SAP Workflow Engine Produktpräsentation Workflow Tool für den SAP Workflow Engine Produktpräsentation
Workflow Tool für den SAP Workflow Engine Produktpräsentation
 

Real-Life-BPM mit Java EE: Ein Erfahrungsbericht