open source bpm - iteratec architekturtag
DESCRIPTION
Vortrag über leichtgewichtiges BPM mit BPMN 2.0 und Java auf dem iteratec Architekturtag am 20.11.2013TRANSCRIPT
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