JBoss ESB

4,944
-1

Published on

Vortrag auf W-Jax 2008

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,944
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
221
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

JBoss ESB

  1. 1. SOA mit dem JBoss ESB W-JAX 04.11.2008 bernd.ruecker@camunda.com
  2. 2. Bernd Rücker Wer bin ich? • 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
  3. 3. Agenda JBoss ESB • 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
  4. 4. Herausforderungen heute Everything is about integration…
  5. 5. Anforderungen an „Enterprise Applications“ Everything is about integration… • 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)
  6. 6. Integration - Technisch Everything is about integration… • File Transfer • Shared Database • Remote Procedure Invocation • Messaging Quelle: www.EnterpriseIntegrationPatterns.com
  7. 7. Message oriented Middleware (MOM) Messaging führt zu loser Kopplung Nachrichten Queue Sender/ Empfänger Nachrichten Sender/ Queue Empfänger  Loose Kopplung
  8. 8. Message oriented Middleware Vorteile • 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
  9. 9. Integrationsansätze Everything is about integration… Good Seperation between integration Traditional EAI ESB and application logic No Seperation Message oriented between integration Application Server Middleware (MOM) and application logic / Custom code Hub & Spoke Distributed Integration Integration Quelle: Chappell, „Enterprise Service Bus“
  10. 10. Enterprise Service Bus Was ist ein ESB? Kundendaten Kreditprozess Bonitätscheck Queuing Transport Routing Mapping Discovery Message Bus Unterschiedliche Protokolle Web-Service SAP werden unterstützt EJBs Server BPEL-Prozess Partner Web- service Mehrere ESBs werden „einfach“ ESB ESB verknüpft: EJB-Container .NET EJB JMS, …
  11. 11. Enterprise Service Bus Was ist ein ESB? 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 ;-) • …
  12. 12. BPM & SOA Quelle: Nicolai Josuttis
  13. 13. Service-Klassifizierung Was ist ein Service? Process Services Process • Geschäftsprozesse Services Composed Services Process- Composed enabled • Orchestrieren von Services Federated SOA Basic Services Basic SOA Fundamental Basic Services Services SOA • Kapselung von Backend- Funktionalität • Verstecken der Implementierungs- details • ACID Nach Nicolai Josuttis
  14. 14. BPM & SOA „Fully fledged“ Quelle: Nicolai Josuttis
  15. 15. Service Was ist ein Service? • 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
  16. 16. Der JBoss ESB Das Projekt • 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!
  17. 17. Enterprise Service Bus JBoss ESB
  18. 18. Services = Listener + Action Pipeline JBoss ESB normal ESB aware Message Message Provider Gateway Listener XML config ESB aware Message Action 1 Action 2 Action … Service public class MyEsbAction { public MyEsbAction(ConfigTree config) { // read stuff from configuration } public Message process(Message m) { ESB aware // do whatever you need to do Message return m; } }
  19. 19. ESB aware messages JBoss ESB Routing, Header Adressing, … Session, Context Security, Transactions order DEFAULT_BODY Body _LOCATION customer_id Payload Attachement ESB aware message Message Nachrichtenformat: XML oder Binär (Java) Datastore
  20. 20. Vorgefertigte Actions JBoss ESB • 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 • …
  21. 21. Content Based Routing JBoss ESB Achtung: Wie viel Business-Logik wollen Sie in der Infrastruktur?
  22. 22. Message Routing Patterns Unterstützt durch ESB Quelle: EnterpriseIntegrationPatterns
  23. 23. Provider JBoss ESB • JMS (JBossMQ, JBoss Messaging, ActiveMQ, MQSeries, Oracle AQ) • SOAP • HTTP • Database • (S)FTP • Shared file system • Email • …
  24. 24. Registry JBoss ESB • Services erhalten logischen Namen – Welcher ESB ist transparent – Protokoll & technische Details transparent • EndpointReference (EPR) wird in Registry eingetragen • Default: jUDDI • Austauschbar
  25. 25. Beispiel aus dem JavaMagazin JBoss ESB + JBoss jBPM Event (File) Case Management Tasklist JMS- Message Environment ESB JBoss jBPM
  26. 26. Notwendige Services im JBoss ESB JBoss ESB + JBoss jBPM create Event start message (File) process from file Create Case Service Case call Web prepare Management Service Parameter Case Mngt Legacy Service JMS- read signal Message message process Case Completion Service Environment JBoss ESB JBoss jBPM
  27. 27. Demo JBoss ESB + JBoss jBPM • 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
  28. 28. Live-Demo… normal ESB aware Message Message Provider Gateway Listener ESB aware Message Action 1 Action 2 Action … Service
  29. 29. Packaging JBoss ESB in Action Applications (EAR) Process Archive (par) JBoss … ESB Other classes & Applications META-INF/ jboss-esb.xml .ESB App-Server-Node
  30. 30. Packaging JBoss ESB in Action package Event (File) Create Case Service Case Case Management Management Legacy Service JMS- Case Completion Message Service deployed in engine JBoss jBPM ESB
  31. 31. Versionierung von Services und Prozessen Cutting Edge in der JBoss SOA Platform ;-) Version: 1.7 process-definition process-definition process-definition name: name: „OrderProcess_1.7“ name: Process Archive „OrderProcess_1.7“ other services „OrderProcess_1.7“ version: 3 .ESB version: 2 version: 2 (par) classes .ESB JBoss ESB Version: 1.8 Process Engine process-definition process-definition name: name: jbpm „OrderProcess_1.8“ Process Archive deployer „OrderProcess_1.8“ version: 2 version: 1 (par) jBPM classes .ESB jbpm Datasource
  32. 32. Classloading Magic: jBPM-Deployer Cutting Edge in der JBoss SOA Platform ;-) jbpm.deployer 3. register Prozess ClassLoader Deployer MBean classloader Case UCL@123 2. deploy Case UCL@889 changed query CL Order UCL@420 processes for process … … jbpm Process (jars, config) ClassLoader 1. pick up process Load classes from archives In-Memory ClassLoader classloader Repository Scoped jbpm-ds ClassLoader par par ESB / EAR / … App-Server-Node Siehe Blog: www.bpm-guide.de Feedback erwünscht!
  33. 33. Verwendete Software & Code JBoss ESB in Action • 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
  34. 34. Achtung SOA! Tücken im Detail
  35. 35. SOA fordert und fördert Asynchronität Tücken im Detail Quelle: Gregor Hohpe
  36. 36. Request-Response / 2 One-Way Messages Message Exchange Patterns (MEP) Quelle: Nicolai Josuttis
  37. 37. Mapping MEPs durch Infrastruktur Message Exchange Patterns (MEP) Consumer ESB Provider 1 Provider 2 synchron request request msg. response msg. request msg. response msg. synchron response
  38. 38. „The tale of the magic Bus“ Von Nicolai Josuttis Governance ESB ist Hilfsmittel, nicht Lösung! Aber Open Source ermöglicht Reinwachsen Zentraler Bus liefert Ansatzpunkte
  39. 39. Orchestrierung vs. Choreographie Tücken im Detail Orchestrierung • Zusammensetzen der Services zu neuen Services • Geordnet, Prozesse, Zentrale Orchestrierung Unternehmen A Steuerung Choreographie • Innerhalb des Unternehmens Orchestrierung Unternehmen B  Metapher: Ampel Choreographie • Keine zentrale Steuerung, Ad-Hoc • Oft zwischen Unternehmen  Metapher: Kreisverkehr
  40. 40. Choreographie statt Orchestrierung? Event Driven Architecture
  41. 41. Fazit JBoss ESB • JBoss ESB reift gerade aus (Version 4.4 schon sehr stabil) • Technische Grundlage ist gut • Erfahrungen im Bereich JBoss AS, Messaging & co kö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!
  42. 42. Fragen & Antworten Bernd Rücker Geschäftsführer Berater, Trainer & Coach bernd.ruecker@camunda.com +49 711 3278645 +49 171 1473461 Unsere Themen • Ganzheitliches BPM • Prozessautomatisierung • SOA, BPEL, XPDL, JBoss SOA Platform (jBPM, Drools, ESB) • BPMN • BPM-Toolauswahl Unsere Leistungen • Beratung • Seminare • Process Hosting
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×