BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! [email protected] Bernd Rücker camunda services GmbH Was ist Prozessautomatisierung? … Das Ganze ist ein BPMN Prozess Aber auch (und vor allem) Kernprozesse Zum Beispiel: Versicherung: Schadensregulierung Telco: DSL-Bestellung Bank: Kontoeröffnung Onlinehandel: Bestellprozess Medien: Medienaufbereitung Öffentlich: Patentantrag … Prozessautomatisierung mit Process Engine <process id="invoice" isExecutable="true"> <startEvent name="Rechnung eingegangen" /> <userTask name="Rechnung freigeben" /> <exclusiveGateway name="Freigabe erfolgt?" ... Monitoring und Reporting Ausführbares Prozessmodell Process Engine Messung der Durchlaufzeit Human Workflow Management AufgabenZuweisung Service-Call Service-Call AufgabenZuweisung Service Orchestration Prozessbeteiligter IT-System IT-System Prozessbeteiligter BPMN Process Engines sind mächtig Wartezustände Timer (incl. Parallelisierung) Human Tasks Der Prozess wird sichtbar …im Fachbereich… …im Code… Der Reflex… The Magic Process Engine? Das funktioniert leider nicht* * Für Kernprozesse Zero Code Layer kompliziert eingeschränkt eingeschränkt proprietär Fachbereich Software Entwickler Unsere Vision BPM + Java IDE Integration BPMN 2.0 for Business-IT-Alignment My BPMN 2.0 Modeler Denn was wir nicht mehr wollen: Ich Kunde, Du Knecht! Fachkonzept Denk doch mal mit! BPMN 2.0 Methodik 1 Biz IT 2 3a 3b 4 BPMN-Methodik (c) camunda services GmbH Anwender Technischer Prozess Anwender Auch die IT darf mitmachen! Mit camunda BPM können wir unser vorhandenes Java Knowhow nutzen um schnell und einfach leichtgewichtige Prozesslösungen zu bauen. (Mahmut Izci, Technische Leitung IT, freenet.de GmbH) Embeddable Process Engine @Inject ProcessEngine engine; Embeddable Engine CDI / Spring (if you want) @Inject private ProcessEngine engine; […] Deployment deployment = engine.getRepositoryService() .createDeployment() .addClasspathResource("invoice.bpmn") .deploy(); Services to talk to the engine 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); Use TX / JTA / EJB (if you want) Some code Process XML refers CDI/Spring bean or Java Class <process ...> <serviceTask camunda:delegateExpression="#{svnService}" name="PDF in SVN ablegen"> Code is executed when process 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 My process application1 Java Classes BPMN 2.0 Processes process engine (jar) … My process application2 Java Classes BPMN 2.0 Processes process engine (jar) … My process application1 My process application2 Java Classes Java Classes BPMN 2.0 Processes BPMN 2.0 Processes Process Engine JPA, EJB, JTA … … Container Websphere, WebLogic, … Problems of existing BPM-Suites Your IT Infrastructure BPM Suite Flexibilität und Integration ist gefragt camunda BPM Your IT Infrastructure camunda BPM • • • • • • • Components (BPM, ESB, BRM etc.) Technologies (UI, Persistence etc.) Programming Model (Java EE, Spring, REST etc.) Test Automation (JUnit, Atmosphere etc.) Continues Integration (Jenkins etc.) Runtime Container (Tomcat, JBoss, WAS etc.) IDE (Eclipse, etc.) Zum Beispiel Remoting/WebService Integration ESB + z.B, Apache CXF Generic Implemenation Ein spannender Indikator: Anzahl Mitarbeiter 500.000 IBM Oracle SAP camunda Quelle: Wikipedia Die Skala geändert Die wollen wir bei BPM mitnehmen! 10.000.000 IBM Oracle SAP camunda Java Quelle: Wikipedia OSS BPM camunda BPM Activiti JBoss jBPM Bonita … Loslegen! www.camunda.org enterprise ready Learn BPM and BPMN Open Source (Apache License) Based on Standards GET IT NOW! camunda BPM Komponenten WebLogic WebSphere Glassfish Tomcat JBoss Am Ball bleiben auf www.camunda.org Twitter #camunda @camundabpm Mitmachen! Wer macht sowas schon heute? …und viele mehr… Produktisierung Why BPMN belongs in the toolbox of every Java developer X it‘s easy it‘s visible it connects Quelle: Zitty, Berlin Vielen Dank! camunda services GmbH Zossener Str. 55-58 10961 Berlin Vielen Dank! Telefon: +49 30 664 0409-00 Telefax: +49 30 664 0409-29 Email: [email protected] Bernd Rücker Geschäftsführer BPMN 2.0 gehört in den Werkzeugkasten JEDES Java Entwicklers! [email protected] Karlsruhe, 06.06.2013 Der Praxis-Blog zu BPM: www.bpm-guide.de