Upload
camunda-services-gmbh
View
438
Download
5
Embed Size (px)
DESCRIPTION
Vortrag über leichtgewichtiges BPM mit BPMN 2.0 und Java auf dem iteratec Architekturtag am 20.11.2013
Citation preview
Open Source BPM mit BPMN 2.0 und Java
Publikationen Mitgliedschaften
[email protected]://twitter.com/berndruecker
Consultants | Software Developers
www.camunda.com/jobs
Abends bei nem Bier… Warum macht Ihr eigentlich so ein
Alte-Männer-Themawie BPM?
Skalierung durch Automatisierung der Kernprozesse
Skalierbarkeit durch BPM
OhneAutomatisierung
MitAutomatisierung
BPM Missverständnisse & Fehler
Fehler: Prozess verstecken! …im Code…
…imFachbereich…
Fehler: Mauern einziehen
• EPK• Flowchart-Like• „BPMN-But“
Prozess-Konzeption
Prozess-Umsetzung
EPK, Flowchart-Like, BPMN-But
Antragprüfen
OK Nicht OK
> 5h
real BPMN
Antragprüfen
OK
Nicht OK
5h
BPMN steht für ein höheres Kommunikationsniveau
• EPK• Flowchart-Like• „BPMN-But“
„real“ BPMN
BPMN-Prozessmodelle sind für BEIDE Fraktionen
Business IT
Das operative Prozessmodell gemeinsam entwickeln
EntwicklerFach-
anwender
Organisatoren / Business Analysten
Architekten &Zentralbereiche
Beispielprozess
Menschlicher und technischer Fluss vermischt
Besser: Saubere Trennung!
Anwender
Anwender
TechnischerProzess
Typische BPM-Architektur mit BPMN 2.0
(KPI)Reporting
Rule Engine
Process Engine
ESBTaskLists /
Portal / Mobile / etc.
Legacy / Backendintern / extern
ProcessParticipants
(KPI) Monitoring
ProcessAnalyst
ProcessEngineer
<xml>
<asass>sddsd</sdsd>
<sdds>sdsds</sdsds>
<sdd>
<sddsds>sddsd</fff>
</sdd>
</ffdfsdf>
BPMN 2.0
auch BPMN 2.0
Speichern
Execution
ProcessAdministrator
ProcessManager
BPEL
etc.
Live Demo:
BPMN 2.0
Workflow-Engine
Shiny BPM Suites?
BPM-Suite
Der Nutzen entsteht erst durch die Anwendung
BPM-Suite
+ Software-Entwicklung =
Prozess-Anwendung
Das große Versprechen
Fach-anwender
SoftwareEntwickler
BPM-Suite
+ Software-Entwicklung =
Prozess-Anwendung
Ein fundamental falscher Ansatz*
kompliziertrestriktiv
SoftwareEntwickler
restriktivproprietär
* zur Umsetzung individueller Prozessanwendungen
Fachanwender
BPM-Suite
Und die Suiten?
Prozesse
Integration
Rules
GUI
Reporting
Dokumente
und ich brauch noch...
Ham wa nich!
1. Hartcodierte / versteckte Prozesse
2. Allmächtige (vernagelte) „Zero Code BPM Suiten“
3. Graben zwischen Business & IT / „BPMN but“
4. Mapping im Roundtrip (BPEL, XPDL, proprietär, …)
5. Selbstgeschriebene Workflow-Engines
BPM TOP 5 Missverständnisse & Fehler
Ein anderer Ansatz
2 31 4
camunda BPM:www.camunda.org
Ausgewählte Referenzanwender
Embeddable Process Engine
@Inject
ProcessEngine engine;
Embeddable Engine
@Inject
private ProcessEngine engine;
[…]
Deployment deployment = engine.getRepositoryService()
.createDeployment()
.addClasspathResource("invoice.bpmn")
.deploy();
engine.getRuntimeService().startProcessInstanceByKey("invoice");
List<Task> list = engine.getTaskService().createTaskQuery().list();
HashMap<String, Object> variables = new HashMap<String, Object>();
variables.put("approver", "bernd");
engine.getTaskService().complete(list.get(0).getId(), variables);
CDI / Spring(if you want)
Services to talkto the engine
Use TX / JTA / EJB
(if you want)
Some code
<process ...>
<serviceTask camunda:delegateExpression="#{svnService}"
name="PDF in SVN ablegen">
Process XML refersCDI/Spring bean
or Java Class
Code is executed whenprocess instances runs
through
@Named("svnService")
public class StorePDFDelegate implements JavaDelegate {
public void execute(DelegateExecution execution) throws Exception {
String someData = (String) execution.getVariable("someData");
Process Engine = Infrastruktur
Process Engine
Container
My processapplication2
Java Classes
BPMN 2.0 Processes
JPA, EJB, JTA …
My processapplication1
Java Classes
BPMN 2.0 Processes
…
My process application1
processengine (jar)
Java Classes
BPMN 2.0 Processes
…
My process application2
processengine (jar)
Java Classes
BPMN 2.0 Processes
…
Websphere, WebLogic, …
Best of Breed
Integration
• Apache CXF
• Apache Camel
• Mule ESB
• Talend ESB
• IBM ESB
• Apache CMIS
• ...
GUI
• HTML 5, PHP
• JSF, Vaadin, GWT
• xyz Portal Server
• Swing
• Orbeon
• ...
Prozesse
camunda BPM
+Reporting
• Jasper
• BIRT
• ...
Rules
• JBoss Drools
• IBM ILOG
• ...
Documents
• Alfresco ECM
• ...
...what ever!
• Java
• ... (REST)
“Die offene Plattform erlaubt
uns die Abbildung unserer individuellen Anforderungen mit einer Konsequenz, die geschlossene BPM-Suiten nicht erreichen können.“
(Marko Lehn, Teamlead Software Engineering, ZalandoGmbH)
Die zwei Dimensionen
Maturity
Completeness
“Habe Mut, dich deines eigenen
Verstandes zu bedienen.
Immanuel Kant
Vielen Dank! Fragen?
[email protected]://twitter.com/berndruecker