Folien von meinem Talk auf der WJAX 2012, der Code für das Beispiel befindet sich hier: https://bitbucket.org/camunda/outer-space-demos/src/master/wjax2012-bestellprozess?at=master
4. Eine ganz typische Java EE Anwendung
HTML 5
JSF REST / WS JAX-RS, JAX-WS, JSF, …
Order Bean EJB, CDI, JTA, …
Order
- customer
JPA
- state
- ...
Java EE Container
DB
5. Eine ganz normale Anforderung
„Wenn Ware nicht lieferbar ist dann soll der
Kunde angerufen werden um ihm was anderes
anzudrehen.
Das Ganze darf nicht länger als nen Tag dauern
– sonst ist der Kunde sauer!“
6. Ein ganz typischer Lösungsansatz
HTML 5
Neue Liste
für
Sachbearbeiter
JSF REST / WS JAX-RS, JAX-WS, JSF, …
Order Bean EJB, CDI, JTA, …
Neue Methode
Order Filter auf den
Status
- customer „nicht lieferbar“
JPA
- state
- ...
EJB 3 Timer
…
Polling-
Mechanismus
für Eskalation
Java EE Container
DB
11. fox-platform, z.B. auf JBoss 7.1
BPMN 2.0 Standard
Java / Java EE Standard
camunda fox
Application Application
1 n
...
fox-cockpit:
Monitoring &
Administration WAR
fox platform
fox engine
JBoss AS 7.1 DB (H2)
21. Some code CDI / Spring
(if you want)
@Inject
private ProcessEngine engine;
[…]
Deployment deployment = engine.getRepositoryService()
.createDeployment() Services to talk
.addClasspathResource("diagrams/fox-invoice.bpmn") to the engine
.deploy();
engine.getRuntimeService().startProcessInstanceByKey("fox-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)
22. Some code Process XML refers
CDI/Spring bean
or Java Class
<process ...>
<serviceTask activiti: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");
23. Best of breed
You name it!
Beliebige Komponenten aus dem (Java)
Kosmos.
camunda fox
Prozessautomatisierung,
Monitoring, Operations, …
BPMN 2.0
Java EE 6 Prozessmodellierung,
fachliche Abstimmung,
Persistenz (JPA), Transaktionen Roundtrip, …
(JTA, EJB3), Clustering,
Connectivity (JAX-WS, JAX-RS,
JAX-B), UI (JSF), …
28. Und wir helfen auch gerne…
Proof Of
Concept & Training &
Kompakt Coaching
Workshops
fox, Activiti,
Beispiel: 5 Tage BPMN 2.0, …
Stabilisierte
Enterprise Projekt-
Edition unterstützung &
Ressourcen,
Subscription & Partner
24x7 Support