Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SOA oder so

904 views

Published on

  • Be the first to comment

  • Be the first to like this

SOA oder so

  1. 1. SOA SOA oder so ESB für Querdenker Produktlinien-Design mit ESB Peter Klotz Chief Architekt blue elephant systems GmbH (peter.klotz@blue-elephant-systems.com)
  2. 2. Agenda ● SOA & ESB ● Apache Servicemix & JBI ● ESB-Architektur & Mechanismen ● Design-Beispiele ● Erfahrungen im Produkt-Einsatz ● Fragen
  3. 3. SOA ● Aufbau von Applikationen aus Services ● Interaktion über Protokolle statt Methoden (XML, SOAP, MOM) ● Schnittstellen Metadata (WSDL) ● Service Orchestrierung ● Loose Coupling ● SOA ist ein Architektur-Prinzip ● ESB als SOA Infrastruktur/Implementierung
  4. 4. Integration Information Projekte Integration Integration Technology Integration Produkte
  5. 5. Main und andere Ströme Spring REST Main Stream J2EE SOAP ESB POJO JBI OSGi
  6. 6. Enterprise Service Bus ● Invocation: Synchrone and asynchrone Transport Protokolle Service Mapping (locating and binding) ● Routing: Addressierung, statisches/deterministisches, Content-based, Rules-based, Policy-based Routing ● Mediation: Adaptoren, Protokoll Transformation, Service Mapping ● Messaging: Message Processing, Message Transformation und Enhancement ● Process Choreography: Komplexe Business Prozesse ● Service Orchestration: Koordination mehrerer Implementation-Services als ein einziger aggregierter Service ● Complex Event Processing: Event Interpretation, Korrelation, Pattern-Matching ● Quality of Service: Security (Encryption und Signing), Zuverlässiger Transport, Transaction Management ● Management: Monitoring, Auditing, Logging, Metering, BAM
  7. 7. ESB Implementierungen ● Open-Source – Servicemix (www.servicemix.org) – OpenESB (open-esb.dev.java.net) – Mule (mule.mulesource.org) – JBoss ESB – ... ● Kommerziell – BEA AquaLogic – Oracle ESB – ...
  8. 8. Java Business Integration JBI (JSR-208) ● Normalized Message Router (NMR) ● Binding Component und Service Engine ● Container of Containers Container z.B. Spring HTTP B CE P EP SE SOAP B CE P N EP SE M Email R FTP B CE P ESB Platform JMS
  9. 9. JBI Deployment SU = Service Unit Servicemix: SU Bean Bean Spring Container SA= Service Assembly Bean Bean SU1 SU2 SA LWC wrapper SU3 SU4 Deploy ● Zukunft: OSGi Bundles JBI Container SU1 SU2 SU3 SU4 ● Keine SU- Zersplitterung JBI Komponenten LW C EIP HTTP
  10. 10. Message Exchange Patterns ● JBI Message Exchange Patterns (MEP) – In-Out – In-Only – Robust-In-Only – In-Optional-Out ● Binding Components definieren MEP ● Fehler-anfällig – insb. In-Out async – done() vergessen
  11. 11. Messaging ● Payload: XML ● Attachments (MIME-Messages) ● Standardisierte Formate (z.B. WS-Notification) ● Addressierung – Protokoll-Header z.B. SOAP-Action, Properties, WS-A Protokoll-Envelope (e.g. SOAP) – Request/Response Request/Response- Envelope Envelope Payload
  12. 12. ESB-Verteilung Node 1 Node 2 ESB BC BC ESB Instanz Instanz RDBMS BC XMLDB Node 3 Kopplung ESB BC ● Via NMR Instanz z.B. JMS-Flow FS ● Via Binding Components & Routing
  13. 13. Extern vs. Intern ESB Web Service B HTTP EP EP oder C SOAP Web Applikation ESB Externes EP EP Adaptor System z.B. Legacy
  14. 14. Deployment vs. CIs Service Assembly SU SA Deploy SU Service ESB Platform SU Deployment Unit Configuration Änderung Änderung SU SA Configuration SU DB ESB Platform SU Layer Configuration File
  15. 15. Realtime & Polling ● Realtime MOM ● Lokale Files oder FTP Polling und Writer SOAP HTTP B B WS WA C ESB C File Poller B SE B File Writer C C
  16. 16. ESB & Web Container Klassisch: ESB in Web Web Container ESB Container z.B. JBoss Anders: Web Container Web in ESB ESB Container z.B. Jetty in SM
  17. 17. Web Services & ESB ● SOAP Binding Component ● WSDL Generierung ● ESB als WS vs. einzelne Komponenten als WS Routing SOAP Authentication Adaptor BC Authorization Adaptor Komponente WSDL
  18. 18. Orchestrierung/Routing ● Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services. ● Statisch ● Java-Code ● Scripting (Groovy) ● Enterprise Integration Patterns (EIP) (Servicemix EIP, Apache Camel) ● Rules (Drools) ● Business Prozesse (BPM)
  19. 19. Routing ● Statisch: Routing an Komponenten ● EIP: Nur Routing ● BPEL: Routing + Daten Transformation EIP SU Components SU Service Helper Camel SU BC SU
  20. 20. Enterprise Integration Patterns ● http://www.enterpriseintegrationpatterns.com/ ● Achtung: einige nur In-Out oder nur In-Only ● Vorsicht beim Einsatz mancher Patterns z.B. Content Enricher Content-based Router Content Enricher Message Filter Transformer Recipient List Splitter/Aggregator Routing Slip Wire Tap
  21. 21. Beispiel: Wire Tap Haupt- In-Out Pipeline Service Requests/Responses (In-Only) Custom SU Dead End File Writer Audit Request Logs
  22. 22. Authentifizierung ● Client-Authentifizierung nicht NUR für GUIs! ● Nutzung der ESB-Mechanismen ● Single Sign-On Frameworks versagen ESB EP LDAP XML Request EP PA M auth Routing proprietär EP
  23. 23. Programming in the Large ● Programm = Adaptors + Routing ● UNIX-Prinzip: 1 Tool pro Zweck ● Beispiel: Compare/Diff mit EIP Content='' Resolver Content!='' Transformer Objectclass is group Differ Objectclass is primitive
  24. 24. Beispiel II ● Beispiel: Indexing mit EIP Mass-Indexing (In-Out) Content='' Resolver Transformer A Content!='' Transformer B Delta-Indexing (In-Only) Indexer
  25. 25. Scripting ● Script-Komponenten – Compilierung bei Deployment – Spring Script Support z.B. auto script reload ● Scripts als ESB-Client ● Scripting für Routing ● Groovy: XML Slurper, Builder, GPath ● JSR-223: JRuby, JavaScript ● Issues: Deployment Cycle, Debugging
  26. 26. BPM & ESB ● Reines WS-BPEL: Web Service Orchestrierung ● Standardisiert (vs. EIP) ● BPEL Editoren (BPMN) ● ESB-basiertes BPM: Orchestrierung ohne Einschränkungen Web SOAP Business Process SOAP Web Service Service Legacy
  27. 27. BPM mit ESB Web Web Service Business Prozess Service PL PL PL ODE SU Spring Legacy Service ftp, http, file,...
  28. 28. Sync & Async ● Kernsystem: In-Out Synchron ● Custom-Orchestrierung: WS-BPEL Asynchron Async In-Only/ Orchestrierung Prozess Robust-In-Only System Sync Request/Response System In-Out oder EP Adaptor In-Only Sollte alle MEP handeln
  29. 29. Skalierbarkeit ● Große XML Dokumente vermeiden ● Streaming (Stax, kein DOM) ● Software-Loadbalancing z.B. mehrere Jetty-SUs, mehrfache Pipelines ● Prozeß-Split – Pipeline Server – Compute Server ● Daemon-Wrapper für Auto-Restart
  30. 30. Multi-Instanz-Installation JMS NMR Servicemix Servicemix Servicemix Instanz 1 Instanz 2 Instanz 3 1 Installation Per-Instanz Konfiguration Shared Konfiguration
  31. 31. Produkt mit ESB ● Additive Service-Assemblies (Core + Produkt, Backend + Webapp) ● benowa, wanobe SAs ● Installer deployed Service-Assemblies Webapp (WA) Backend (BE) Produkt Y WA Y SA BE Y SA WA X SA BE X SA Produkt X WA Core SA BE Core SA
  32. 32. Fazit ● Geniale Modularisierung ● Lausige Kopplung ● Obacht auf Performance und Memory ● Komplexität
  33. 33. Fragen Fragen?

×