WJAX 2012: Advanced Activiti

Post on 10-Dec-2014

1,557 views 1 download

description

Folien vom Talk von Bernd Rücker und Falko Menge von der WJAX 2012. Die Demo zum SOA-Teil findet sich hier: https://app.camunda.com/confluence/display/foxUserGuide/Bank+Account+Opening. Der Code für die Fehlerbehandlungsbeispiele hier: https://bitbucket.org/camunda/outer-space-demos/src/master/bank-account-opening-error-handling

transcript

BPMN 2.0 und Activiti für Fortgeschrittene

falko.menge@camunda.com

bernd.ruecker@camunda.com

Gehen wir richtig zur Sache… • EAI/SOA

• Testing

• Error-Handling & TX

• Mehr BPMN & Ausblick

• Q&A

Real-Life Beispiel: Kontoeröfnung

1.

2.

3.

Vereinfacht (für die Demo)

MQ

WS

EJB Service

Das Grundproblem

?

?

?

Eine Möglichkeit: Direkt aufrufen

Services & Resources

WS

Wiederverwendbarer Java Code?

WsDelegate

WS

Beispiel mit Apache CXF

Good idea?

ESB/Integrationsframework als Lösungsansatz

Service

WS JMS REST

Der Demo-Prozess

Demo

Konto- eröffnung

Was gibt’s zu sehen? BPMN 2.0, camunda fox, Mule / Camel Unit Testing

Message vs. process oriented

<serviceTask id="serviceTask1" ...

camel:send="log:test">

<extensionElements>

<camel:payload>

<![CDATA[

<customer><id>${execution.id}...

]]>

</camel:payload>

</extensionElements>

</serviceTask>

Framework vs. Server – auch auf Seite ESB

Application Server App Server Mule

camunda fox

Anwendung

camunda fox

Anwendung

mule

Variante 1: Mule Teil der Anwendung

Variante 3 Mule als Standalone Server

Application Server

camunda fox

Anwendung

mule

Variante 2 Mule Dienst des Application

Server

Demo

Error Handling

& TX

Was gibt’s zu sehen? Asynchronous Continuation BPMN Error Event …

Jobs and Asynchronous Continuations

= Transaction Boundaries

<serviceTask id="service1" name="Generate Invoice"

activiti:class="my.custom.Delegate"

activiti:async="true" />

taskService.complete(id)

1

2

1st TX 3rd TX 2nd TX

Activiti Job Executor Thread

3

Application / Client Thread

activiti:async=‘‘true“

Defa

ults

The JobExecutor

Job Acquisition

Thread

DB Job Runnable Thread

Job Runnable Thread

Job Runnable Thread

Job Runnable Thread

Job Runnable Thread

Job Execution Thread

maxJobsPerAcquisition = 3 waitTimeInMillis = 5 * 1000 lockTimeInMillis = 5 * 60 * 1000 queueSize = 5

corePoolSize = 3 maxPoolSize = 10

retrieve jobs

assign jobs

Executor Service

distribute

job queue

Spreading Process Execution accross multiple Nodes

DB

Activiti Engine

Job Executor

Activiti Engine

Job Executor

Clustering and Job distribution over the Cluster is supported

Transaktionen & Kompensation in BPMN 2.0

Process Engine Deployment

Es gibt noch viel mehr… • UI Mediator

• 4 Augen Prinzip

• Eskalation

• …

siehe Tutorials im

camunda fox user guide

Best of breed

Java EE 6 Persistenz (JPA), Transaktionen (JTA, EJB3), Clustering, Connectivity (JAX-WS, JAX-RS, JAX-B), UI (JSF), …

camunda fox Prozessautomatisierung, Monitoring, Operations, …

BPMN 2.0 Prozessmodellierung, fachliche Abstimmung, Roundtrip, …

You name it! Beliebige Komponenten aus dem (Java) Kosmos.

Download

Apache License

fox-engine

fox-platform community

fox-platform enterprise

fox-cycle

fox-modeler

fox-designer fox-cockpit

Getting Started

Anfangen!

www.camunda.com/fox/

https://github.com/camunda/

Projekt-unterstützung & Ressourcen, Partner

Stabilisierte Enterprise Edition Subscription & 24x7 Support

Und wir helfen auch gerne…

Proof Of Concept & Kompakt Workshops

Beispiel: 5 Tage

Training & Coaching

fox, Activiti, BPMN 2.0, …

Vielen Dank!

Vielen Dank! camunda services GmbH Zossener Str. 55-58 10961 Berlin

Telefon: +49 30 664 0409-00 Telefax: +49 30 664 0409-29

Email: info@camunda.com

www.bpm-guide.de Der Praxis-Blog zu BPM:

@camunda.com

Geschäftsführer

Bernd Rücker

bernd.ruecker

Advanced Activiti

München, 08.11.2012