14. Logik
Typische Anforderung
Oberfläche
JSF REST (JAX-RS)
HTML5 (JS)
Services (Session Beans)
incl. EJB/JTA/CDI
DB
Entitäten (JPA)
„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!“
15. Logik
Eingriff an viele Stellen Logik im Code verteilt
Oberfläche
JSF REST (JAX-RS)
HTML5 (JS)
Services (Session Beans)
incl. EJB/JTA/CDI
Neue Liste
für
Sachbearbeiter
Neue Methode
DB
Entitäten (JPA)
Filter auf den
Status
„nicht lieferbar“
Polling-
Mechanismus
für Eskalation
19. Spring Framework & Java EE 6
inject Process Engine Services
into Spring / CDI / EJB Beans
run in EJB environment if required
Shared Transactions (JTA)
23. Process Engine = Infrastruktur
Process Engine
Container
My process
application2
Java
Classes
BPMN 2.0
Processes
JPA, EJB, JTA …
My process
application1
Java
Classes
BPMN 2.0
Processes
…
My process application1
process
engine (jar)
Java
Classes
BPMN 2.0
Processes
…
My process application2
process
engine (jar)
Java
Classes
BPMN 2.0
Processes
…
Websphere,
WebLogic,
…
JMX
29. camunda BPM REST API
Process Engine
REST API (war)
tasklist
(HTML5)
cockpit
(HTML5)
Container (Tomcat, JBoss, Glassfish, …)
JAX-RS
(Resteasy,
Jersey, …)
30. REST API als Bibliothek
Eigene JAX-RS Implementierung
Erweiterung/Einschränkung der
Ressourcen möglich
REST API einbetten & erweitern
My process application
REST API (jar)
My JAX-RS web
application
My favorite JAX-RS
implementation