• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
JBoss ESB
 

JBoss ESB

on

  • 8,352 views

Vortrag auf W-Jax 2008

Vortrag auf W-Jax 2008

Statistics

Views

Total Views
8,352
Views on SlideShare
8,264
Embed Views
88

Actions

Likes
5
Downloads
210
Comments
0

2 Embeds 88

http://www.bpm-guide.de 58
http://www.slideshare.net 30

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    JBoss ESB JBoss ESB Presentation Transcript

    • SOA mit dem JBoss ESB W-JAX 04.11.2008 bernd.ruecker@camunda.com
    • 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
    • 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
    • Herausforderungen heute Everything is about integration…
    • 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)
    • Integration - Technisch Everything is about integration… • File Transfer • Shared Database • Remote Procedure Invocation • Messaging Quelle: www.EnterpriseIntegrationPatterns.com
    • Message oriented Middleware (MOM) Messaging führt zu loser Kopplung Nachrichten Queue Sender/ Empfänger Nachrichten Sender/ Queue Empfänger  Loose Kopplung
    • 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
    • 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“
    • 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, …
    • 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 ;-) • …
    • BPM & SOA Quelle: Nicolai Josuttis
    • 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
    • BPM & SOA „Fully fledged“ Quelle: Nicolai Josuttis
    • 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
    • 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!
    • Enterprise Service Bus JBoss ESB
    • 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; } }
    • 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
    • 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 • …
    • Content Based Routing JBoss ESB Achtung: Wie viel Business-Logik wollen Sie in der Infrastruktur?
    • Message Routing Patterns Unterstützt durch ESB Quelle: EnterpriseIntegrationPatterns
    • Provider JBoss ESB • JMS (JBossMQ, JBoss Messaging, ActiveMQ, MQSeries, Oracle AQ) • SOAP • HTTP • Database • (S)FTP • Shared file system • Email • …
    • Registry JBoss ESB • Services erhalten logischen Namen – Welcher ESB ist transparent – Protokoll & technische Details transparent • EndpointReference (EPR) wird in Registry eingetragen • Default: jUDDI • Austauschbar
    • Beispiel aus dem JavaMagazin JBoss ESB + JBoss jBPM Event (File) Case Management Tasklist JMS- Message Environment ESB JBoss jBPM
    • 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
    • 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
    • Live-Demo… normal ESB aware Message Message Provider Gateway Listener ESB aware Message Action 1 Action 2 Action … Service
    • Packaging JBoss ESB in Action Applications (EAR) Process Archive (par) JBoss … ESB Other classes & Applications META-INF/ jboss-esb.xml .ESB App-Server-Node
    • 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
    • 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
    • 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!
    • 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
    • Achtung SOA! Tücken im Detail
    • SOA fordert und fördert Asynchronität Tücken im Detail Quelle: Gregor Hohpe
    • Request-Response / 2 One-Way Messages Message Exchange Patterns (MEP) Quelle: Nicolai Josuttis
    • 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
    • „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
    • 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
    • Choreographie statt Orchestrierung? Event Driven Architecture
    • 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!
    • 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