Upload
camunda-services-gmbh
View
8.617
Download
6
Tags:
Embed Size (px)
DESCRIPTION
Vortrag auf W-Jax 2008
Citation preview
• Berater, Trainer, Coach
• Softwareentwickler
• Committer im JBoss jBPM-Projekt
• Themen:
– BPM & SOA
– Process Execution (jPDL, BPEL, XPDL, …)
– JBoss SOA Platform (jBPM, ESB, Drools, …)
– Enterprise Anwendungen mit Java EE
• Siehe www.camunda.com
• Blog www.bpm-guide.de
Bernd RückerWer bin ich?
• Kurze Einführung SOA & ESB
• Der JBoss ESB
– Überblick & Laufzeitumgebung
– Services
– Messages
– Vorgefertigte Funktionalität & unterstützte Protokolle
• Beispiel
• Deployment in der SOA-Platform
• Vorsicht: Asynchronität
AgendaJBoss ESB
• Integration vorhandener Systeme
• Verteilte Systeme
• Vielzahl heterogener Systeme
• Skalierbarkeit & Performance
• Ständige Veränderung & technologischer Fortschritt
Stetig wachsende Komplexität
Was hat nicht funktioniert?
• Homogenisierung der IT-Landschaft
• Redundanzfreiheit der Datenbasis
• (EAI-Projekte)
Anforderungen an „Enterprise Applications“Everything is about integration…
• File Transfer
• Shared Database
• Remote Procedure Invocation
• Messaging
Integration - TechnischEverything is about integration…
Quelle: www.EnterpriseIntegrationPatterns.com
Message oriented Middleware (MOM)Messaging führt zu loser Kopplung
Sender/
Empfänger
Sender/
Empfänger
Queue
Queue
Nachrichten
Nachrichten
Loose Kopplung
• Lose Kopplung– Funktionale Indirektion: Sender und Empfänger müssen
sich nicht kennen
– Zeitliche Indirektion: Sender und Empfänger müssen nicht gleichzeitig laufen, Auslieferung von Nachrichten wird durch Middleware garantiert
• Flexibilität– Nachrichten können an einen anderen Empfänger
geroutet werden
– Nachrichten können vor Auslieferung überarbeitet werden
• Anbindung unterschiedlicher Protokolle und Systemumgebungen
Message oriented MiddlewareVorteile
IntegrationsansätzeEverything is about integration…
Traditional EAI ESB
Application Server
Message oriented
Middleware (MOM)
/ Custom code
Hub & Spoke
Integration
Distributed
Integration
Good Seperation
between integration
and application logic
No Seperation
between integration
and application logic
Quelle: Chappell, „Enterprise Service Bus“
Enterprise Service BusWas ist ein ESB?
Message Bus
BonitätscheckKundendaten
Web-Service EJBs SAP
Server
TransportQueuing Routing Discovery Mapping
Kreditprozess
BPEL-Prozess
.NET
Partner
Web-
service
ESB ESB
EJB-Container
JMS, …EJB
Mehrere ESBs
werden „einfach“
verknüpft:
Unterschiedliche Protokolle
werden unterstützt
Funktionalität
• Messaging
• Intelligentes Routing
• Tools für Transformation
• Abstraktion von Protokollen
• Vorgefertigte Adapter
Vorteile
• Virtualisierung (welche Services laufen wo und wie)
• Zentralisierung von Aspekten (Security, Management, Policy-Überwachung, …)
• „Zwang“ zu Asynchronität ;-)
• …
Enterprise Service BusWas ist ein ESB?
Process Services
• Geschäftsprozesse
Composed Services
• Orchestrieren von
Basic Services
Basic Services
• Kapselung von
Backend-
Funktionalität
• Verstecken der
Implementierungs-
details
• ACID
Service-KlassifizierungWas ist ein Service?
Process
Services
Composed
Services
Basic
ServicesFundamental
SOA
Federated
SOA
Process-
enabled
SOA
Nach Nicolai Josuttis
• Services kapseln Geschäftsfunktionalität
• Möglichst unabhängig
• Möglichst Zustandslos
• Orientiert an Geschäftsfunktionalität („Bridging the
Business-IT-Gap“)
• Dokumentiert und Managed Governance
• Technische Implementierung zweitrangig
– Nach Möglichkeit plattformunabhängig
ServiceWas ist ein Service?
• JBoss-Projekt, Open Source (LGPL)
• Teil der JBoss SOA Platform
• Lauffähig auf JBoss AS (oder Standalone)
• Aktuell Version 4.4
• Entwickelt als Rosetta ESB bei Aviva Canada
(Große Versicherung)
• Große Community
• Umfangreiche & gute Dokumentation!
Der JBoss ESBDas Projekt
Service
Services = Listener + Action PipelineJBoss ESB
Listener
ESB aware
Message Action 2Action 1 Action …
public class MyEsbAction {
public MyEsbAction(ConfigTree config) {
// read stuff from configuration
}
public Message process(Message m) {
// do whatever you need to do
return m;
}
}
ESB aware
Message
Provider
Gateway
normal
Message
ESB aware
Message
XML
config
ESB aware message
Nachrichtenformat: XML oder Binär (Java)
ESB aware messagesJBoss ESB
Body
Context
Header
Attachement
Message
Datastore
order
DEFAULT_BODY
_LOCATION
customer_id
Routing,
Adressing,
…
Session,
Security,
Transactions
Payload
• Transformationen & Konverter, z.B.– XStream
– Smooks
• BPM-Integration (aktuell jBPM)
• Skripting (z.B. Groovy)
• Routing– siehe Enterprise Integration Patterns
– Content Based Routing über Drools
• Adapter, z.B.– SOAP
– EJB 3
• …
Vorgefertigte ActionsJBoss ESB
• JMS (JBossMQ, JBoss Messaging, ActiveMQ,
MQSeries, Oracle AQ)
• SOAP
• HTTP
• Database
• (S)FTP
• Shared file system
• …
ProviderJBoss ESB
• Services erhalten logischen Namen
– Welcher ESB ist transparent
– Protokoll & technische Details transparent
• EndpointReference (EPR) wird in Registry
eingetragen
• Default: jUDDI
• Austauschbar
RegistryJBoss ESB
Beispiel aus dem JavaMagazinJBoss ESB + JBoss jBPM
Environment JBoss jBPMESB
Event
(File)
Case
Management
JMS-
Message
Tasklist
Notwendige Services im JBoss ESBJBoss ESB + JBoss jBPM
Environment JBoss jBPMJBoss ESB
Case Mngt Legacy Service
Create Case Service
start
process
prepare
Parameter
call Web
Service
create
message
from file
Event
(File)
Case Completion Service
signal
process
read
message
Case
Management
JMS-
Message
• Create Case Service
– Datei einlesen
– Starten jBPM Prozess zur Orchestrierung
• Case Management Legacy Service
– WebService ansprechen
• Case Completion Service
– JMS-Nachricht entgegennehmen
– Korrelation zu jBPM herstellen und Prozess triggern
DemoJBoss ESB + JBoss jBPM
Live-Demo…
Service
Action 2Action 1
Provider
Listener
Action …
Gateway
ESB aware
Message
normal
Message
ESB aware
Message
PackagingJBoss ESB in Action
.ESB
Process Archive
(par)
…
Other classes &
Applications
JBoss
ESB
App-Server-Node
Applications
(EAR)
META-INF/
jboss-esb.xml
PackagingJBoss ESB in Action
Create Case Service
Case Management
Legacy Service
Event
(File)
Case Completion
Service
Case
Management
JMS-
Message
JBoss
ESBjBPM
package
deployed in
engine
Versionierung von Services und ProzessenCutting Edge in der JBoss SOA Platform ;-)
.ESB
Process Archive
(par)
classes
jBPM
Process Engine
JBoss
ESB
Version: 1.7
.ESB
Process Archive
(par)
classes
process-definition
name:
„OrderProcess_1.8“
version: 1
Version: 1.8
process-definition
name:
„OrderProcess_1.8“
version: 2
process-definition
name:
„OrderProcess_1.7“
version: 2
process-definition
name:
„OrderProcess_1.7“
version: 2
process-definition
name:
„OrderProcess_1.7“
version: 3
jbpm Datasource
.ESBother services
jbpm
deployer
Classloading Magic: jBPM-DeployerCutting Edge in der JBoss SOA Platform ;-)
jbpm.deployer
ESB / EAR / …
jbpm-ds
par
ProcessClassLoader
Deployer MBean
ScopedClassLoader
App-Server-Node
ProzessCaseCase
Order…
ClassLoaderUCL@123UCL@889UCL@420
…
In-Memory ClassLoaderRepository
jbpm(jars, config)
2. deploychangedprocesses
par
1. pick upprocessarchives
3. registerclassloader
query CL for process
Load classes fromclassloader
Siehe Blog:
www.bpm-guide.de
Feedback erwünscht!
• JBoss ESB 4.4
• jBPM 3.3 GA (cooming soon)
• Spezieller jbpm.deployer (optional)
• Beispiel-Code sowie Beschreibung jbpm.deployer
auf camunda-Blog verfügbar (ASAP ;-)):
www.bpm-guide.de
Verwendete Software & CodeJBoss ESB in Action
Mapping MEPs durch InfrastrukturMessage Exchange Patterns (MEP)
synchron request
request msg.
synchron response
request msg.
Consumer ESB Provider 1 Provider 2
response msg.
response msg.
„The tale of the magic Bus“Von Nicolai Josuttis
GovernanceESB ist Hilfsmittel, nicht Lösung! Aber
Open Source ermöglicht Reinwachsen
Zentraler Bus liefert Ansatzpunkte
Orchestrierung vs. Choreographie
Orchestrierung
• Zusammensetzen der Services zu neuen Services
• Geordnet, Prozesse, Zentrale Steuerung
• Innerhalb des Unternehmens
Metapher: Ampel
Choreographie
• Keine zentrale Steuerung, Ad-Hoc
• Oft zwischen Unternehmen
Metapher: Kreisverkehr
Tücken im Detail
Orchestrierung Unternehmen B
Orchestrierung Unternehmen A
Choreographie
• JBoss ESB reift gerade aus (Version 4.4 schon sehr stabil)
• Technische Grundlage ist gut
• Erfahrungen im Bereich JBoss AS, Messaging & cokönnen wieder verwendet werden
• Einige vorgefertigte Integrationen / Adaptoren / Provider
• Kein wirkliches Tooling
• Hilfestellungen im Bereich Governance fehlen noch, in Zukunft JBoss SOA-G, JBoss ON, …?
• JBoss SOA Platform 5 wird spannend!
• Achtung: ESB heißt evtl. auch SOA ;-)
• Viele „Quickstarts“, also: Ausprobieren!
FazitJBoss ESB
Fragen & Antworten
Unsere Themen
• Ganzheitliches BPM
• Prozessautomatisierung
• SOA, BPEL, XPDL, JBoss SOA Platform(jBPM, Drools, ESB)
• BPMN
• BPM-Toolauswahl
Unsere Leistungen
• Beratung
• Seminare
• Process Hosting
Bernd Rücker
Geschäftsführer
Berater, Trainer & Coach
+49 711 3278645
+49 171 1473461