Implementierung vonEnterprise Integration Patterns            auf einem JBI ESB
Wer sind wir?                            • Softwarearchitekten                            • Entwicklung von               ...
Überblick                        Roter Faden         Beispiel: Kommunikation         Im Krankenhaus            Einsatzszen...
Kommunikation im Krankenhaus• Komplexe Domäne     –   Medizinische Dokumentation     –   Unterstützung von Routine-Arbeits...
Ereignisse im Krankenhaus      Krankenhaus-                                        PACS           RIS      Archiv   Inform...
Ereignisse im Krankenhaus      Krankenhaus-         Klinischer                                        PACS           RIS  ...
Ereignisse im Krankenhaus      Krankenhaus-         Klinischer                                        PACS           RIS  ...
Gründe für den Einsatz von               Interface Engines• Entkopplung von Anwendungen• Im Vergleich zu Point-to-Point: R...
Sektorenübergreifende                   Kommunikation   Master                               Interface          Verteilte ...
Anwendungsbeispiel                                 A              A‘   Master   Patient    Index                B         ...
Enterprise Service Bus• Kernfunktionalitäten     –   Messaging     –   Routing     –   Transformation     –   Protokollada...
Enterprise Service Bus• Plugin Architektur     –     Integrationskomponenten sind Plugins     –     Projektspezifische Kon...
Java Business Integration (JBI)• Java Standard zur Strukturierung von  Integrationssystemen     – Plugin Architektur für I...
Java Business Integration (JBI)  JBI Komponente (BC)         JBI Umgebung         JBI Komponente                          ...
Apache ServiceMix• Enterprise Service Bus auf JBI Basis     – Mehr als eine reine JBI Referenzimplementierung     – Cluste...
Apache ServiceMix                    sm-http         sm-jms       sm-file   …   Binding ComponentsJBIKomponenten          ...
sm-eip Service Engine• Enterprise Integration Patterns     –   Filter     –   Content-based Router     –   Recipient List ...
sm-eip Service Engine  • Implementierung von EIPs        –   Konfiguration mit Spring/XBean XML        –   Verpacken in Se...
Anwendungsbeispiel• Nachrichtenstandards, Formate und Transport                                    HL7 v2    HL7 v2‘      ...
Nachrichtenstandards                    in der Medizin• Das Schöne an Standards ist …     – HL7 v2     – HL7 v3     – EDIF...
HL7 v2•    „HL7 bietet Interoperabilität zwischen Krankenhausinformationssystemen     (KIS), Praxisverwaltungssystemen (PV...
HL7 v3• Modellierungs- und Entwicklungsprozesse sind  integraler Bestandteil• Reference Information Model ist Grundlage fü...
HL7 v3 Beispiel         <?xml version="1.0" encoding="UTF-8"?>         <PRPA_IN201101 ITSVersion="XML_1.0" xmlns="urn:hl7-...
HL7 Transformation• ServiceMix bietet „nur“ Basistechnologie  (z.B. XSLT)• Domänenspezifische Komponenten auf  höherem Abs...
ServiceMix Erweiterungen              …               sm-eip       sm-jms                   …                             ...
ServiceMix Erweiterungen• ext-hl7     – Domänenspezifische Implementierung von Patterns     – Konfiguration auf höherem Ab...
Herausforderungen• Wie macht man Nachrichtentransformation     – Skalierbar?     – Ausfallsicher?     – Wartbar?     – Nac...
Transformation ist auf den ersten            Blick einfach       D                                   D    HL7 V2          ...
… auf den zweiten Blick …       D                 ?                                                 D    HL7 V2           ...
… auf den dritten Blick …      D                                    D   HL7 v2                               HL7 v3Martin ...
Notation        Modell                          JBI        Beschreibung                                                   ...
Validierung                       File      D                 sm-file   HL7 V2                      HTTP                Va...
Transformation                                        V2_A01 to     Reference                                        Refer...
Auslieferung                  ?             Resequencer                                      Recipient                    ...
Erhaltung der Nachrichtensequenz• Zuweisung von Sequenznummern     – Berücksichtigung von Splits• Stream-Processing Resequ...
System Management  • Monitoring       – JMX Infrastruktur von ServiceMix und ActiveMQ  • Beispiel: JMS Queue (Auslieferung...
System Management• Auditing     – Speicherung eingehender und ausgehender Nachrichten• Statistik     – Verarbeitungsdauer,...
System Management   • Re-play von Nachrichten   • Filterung von DuplikatenAnwendung                                       ...
Bidirektionale Kommunikation• Wiederverwendung von Bausteinen, die nur  unidirektionale Kommunikation unterstützten• Neues...
Erfahrungen•   Anwendungsentwicklung     – 30% Konfiguration existierender JBI-Komponenten     – 70% Neu/Weiterentwicklung...
Vielen Dank für Ihre Aufmerksamkeit!                                        Fragen?                                       ...
Konsistente Datenhaltung•    Verteiltes Transaktionsmanagement      – Synchrone Kommunikation      – Asynchrone Kommunikat...
JBI Enterprise Service Bus•   Plugin Schnittstellen konform zu JBI                                                        ...
Weitere EIP Unterstützung     – Apache ODE          • Ausführung von WS-BPEL Prozessdefinitionen     – sm-drools          ...
Nächste SlideShare
Wird geladen in …5
×

Implementierung von Enterprise Integration Patterns auf einem JBI ESB

1.472 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.472
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Implementierung von Enterprise Integration Patterns auf einem JBI ESB

  1. 1. Implementierung vonEnterprise Integration Patterns auf einem JBI ESB
  2. 2. Wer sind wir? • Softwarearchitekten • Entwicklung von Integrationsplattformen und -lösungen martin.krasser@icw.de http://www.icw.de christian.ohr@icw.deMartin Krasser, Christian Ohr, ICW AG 2
  3. 3. Überblick Roter Faden Beispiel: Kommunikation Im Krankenhaus Einsatzszenario für einen Anwendungsbeispiel ESB für EIPs Herausforderungen + Lösungsansätze ESB und JBI Apache ServiceMix und EIPsDetail 0 min 60 min Martin Krasser, Christian Ohr, ICW AG 3
  4. 4. Kommunikation im Krankenhaus• Komplexe Domäne – Medizinische Dokumentation – Unterstützung von Routine-Arbeitsabläufen – Verwaltung + Abrechnung von Leistungen – Medizinische Spezialanwendungen• Hoher Spezialisierungsgrad der Anwendungen• Einsatz vieler unterschiedlicher Anwendungen• Lose Systemkopplung: Datenkommunikation erfolgt vorwiegend ereignisgetrieben• Seit ca. 1990 werden Kommunikationsserver (Interface Engines) eingesetztMartin Krasser, Christian Ohr, ICW AG 4
  5. 5. Ereignisse im Krankenhaus Krankenhaus- PACS RIS Archiv Informationssystem Labor Interface Küche Engine Aufnahme! Intensiv- Patienten- überwachung ManagementMartin Krasser, Christian Ohr, ICW AG 5
  6. 6. Ereignisse im Krankenhaus Krankenhaus- Klinischer PACS RIS Archiv Informationssystem Arbeitsplatz Auftrag Labor Interface Küche Engine Intensiv- Patienten- überwachung ManagementMartin Krasser, Christian Ohr, ICW AG 6
  7. 7. Ereignisse im Krankenhaus Krankenhaus- Klinischer PACS RIS Archiv Informationssystem Arbeitsplatz Labor Interface Küche Ergebnis Engine Intensiv- Patienten- überwachung ManagementMartin Krasser, Christian Ohr, ICW AG 7
  8. 8. Gründe für den Einsatz von Interface Engines• Entkopplung von Anwendungen• Im Vergleich zu Point-to-Point: Reduktion der Schnittstellen von n*(n-1) auf 2n• Zentrales Schnittstellenmanagement/- überwachung• Erleichtert die Migration von SchnittstellenMartin Krasser, Christian Ohr, ICW AG 8
  9. 9. Sektorenübergreifende Kommunikation Master Interface Verteilte Patient Engine Patientenakte Index Reha- Hausarzt Facharzt EinrichtungMartin Krasser, Christian Ohr, ICW AG 9
  10. 10. Anwendungsbeispiel A A‘ Master Patient Index B Enterprise Service Bus (ESB) … B‘ als Interface EngineMartin Krasser, Christian Ohr, ICW AG 10
  11. 11. Enterprise Service Bus• Kernfunktionalitäten – Messaging – Routing – Transformation – Protokolladapter – System Management und Monitoring – …• Weitere Funktionalitäten – Prozesssteuerung (BPM) – Complex Event Processing (CEP) – Event Stream Processing (ESP) – …Martin Krasser, Christian Ohr, ICW AG 11
  12. 12. Enterprise Service Bus• Plugin Architektur – Integrationskomponenten sind Plugins – Projektspezifische Konfiguration – Erweiterungsmechanismus – Java Business Integration (JSR 208)• Verteilte Bus-Architektur PluginsMartin Krasser, Christian Ohr, ICW AG 12
  13. 13. Java Business Integration (JBI)• Java Standard zur Strukturierung von Integrationssystemen – Plugin Architektur für Integrationskomponenten – Integrationskomponenten kommunizieren über standardisierte Schnittstellen• Interoperabilität zwischen Integrationskomponenten unterschiedlicher Hersteller• Richtet sich an Hersteller von Integrationsplattformen und IntegrationskomponentenMartin Krasser, Christian Ohr, ICW AG 13
  14. 14. Java Business Integration (JBI) JBI Komponente (BC) JBI Umgebung JBI Komponente • BC = Binding Component EP • SE = Service Engine WSDL DC EP Service Endpoint NMR Externer Service DC Message Exchange DC Delivery Channel EP EP WSDL WSDL JBI Komponente (SE) NMR Normalized Message RouterMartin Krasser, Christian Ohr, ICW AG 14
  15. 15. Apache ServiceMix• Enterprise Service Bus auf JBI Basis – Mehr als eine reine JBI Referenzimplementierung – Cluster Support, eigene JBI Komponenten … – Spezielle Unterstützung für Integration Patterns• Plattform zur Entwicklung von – Integrationslösungen (Anwendungs-Entwickler) – Integrationskomponenten (Plattform-Entwickler)• Apache Top Level Projekt – Aktuelle Version: 3.2 – Apache 2.0 LizenzMartin Krasser, Christian Ohr, ICW AG 15
  16. 16. Apache ServiceMix sm-http sm-jms sm-file … Binding ComponentsJBIKomponenten sm-eip sm-drools ODE … Service Engines Delivery ChannelJBI Umgebung ServiceMix Core Norm. Message Router Management (JMX) Message Broker ActiveMQ Cluster Support Martin Krasser, Christian Ohr, ICW AG 16
  17. 17. sm-eip Service Engine• Enterprise Integration Patterns – Filter – Content-based Router – Recipient List – Splitter and Aggregator – Content Enricher – Resequencer – …Martin Krasser, Christian Ohr, ICW AG 17
  18. 18. sm-eip Service Engine • Implementierung von EIPs – Konfiguration mit Spring/XBean XML – Verpacken in Service Unit bzw. Assembly – Deployment des Service Assembly – Spring Beans als JBI Service Endpoints erreichbar<eip:content-based-router service="msb:v3-router" ...> <eip:rules> <eip:routing-rule> sm-eip <eip:predicate> <<deploy>> <eip:xpath-predicate xpath="count(//items/item) > 0" /> </eip:predicate> Service <eip:target> Assembly <eip:exchange-target service="msb:MPI" /> </eip:target> </eip:routing-rule> </eip:rules></eip:content-based-router> maven-jbi-plugin Martin Krasser, Christian Ohr, ICW AG 18
  19. 19. Anwendungsbeispiel• Nachrichtenstandards, Formate und Transport HL7 v2 HL7 v2‘ FTP MLLP Master HL7 v3 Patient HTTP Index SOAP/ HTTP … HL7 v3‘Martin Krasser, Christian Ohr, ICW AG 19
  20. 20. Nachrichtenstandards in der Medizin• Das Schöne an Standards ist … – HL7 v2 – HL7 v3 – EDIFACT (§301 SGB V) – DICOM, ACR/NEMA – ADT, BDT, LDT – PapierMartin Krasser, Christian Ohr, ICW AG 20
  21. 21. HL7 v2• „HL7 bietet Interoperabilität zwischen Krankenhausinformationssystemen (KIS), Praxisverwaltungssystemen (PVS), Laborinformationsystemen (LIMS), Systemen zur Leistungsabrechnung sowie Systemen, die als Elektronische Patientenakte fungieren...“ (http://de.wikipedia.org/wiki/HL7)• Führend in krankenhausinterner Kommunikation MSH|^~&|SAP-ISH|ABC|||20040805152637||ADT^A01|123456|T|2.2|||ER ↵ EVN|A01|20040805152637 ↵ PID|1||79471||Müller^Hans|Müller|19400101|M|||Am Domplatz 1^^Köln^NW^57000^DE^H||+4962218725683|||S|||111-11-1111||||Köln ↵ NK1|1|Möller^Gudrun|EMC|Hauptstraße 23^^Köln^NW^57000^DE|+4922239834 ↵ PV1|1|I|ISKA^13^4|R||||823745217||||||||N||| 79237645|||||||||||||||||||||||||20040805000000 ↵ ZBE|79237645~001|20040805000000||INSERT ↵ http://www.hl7.de/standard/wasist_hl7.php Martin Krasser, Christian Ohr, ICW AG 21
  22. 22. HL7 v3• Modellierungs- und Entwicklungsprozesse sind integraler Bestandteil• Reference Information Model ist Grundlage für das Datenmodell• Konsistent, komplex, formal, erweiterbar• Syntaxunabhängige Modelle, XML ist bevorzugte Modellimplementierung• Immer noch ereignisgetriebenMartin Krasser, Christian Ohr, ICW AG 22
  23. 23. HL7 v3 Beispiel <?xml version="1.0" encoding="UTF-8"?> <PRPA_IN201101 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 PRPA_IN201101.xsd"> <realmCode code="DE"></realmCode> <id root="2.16.840.1.113883.3.37.4.1.1.2.411.4" extension="255166268"></id> <creationTime value="20060714140700"></creationTime> <versionCode code="V3-2006-05"></versionCode> <interactionId extension="PRPA_IN201101" root="2.16.840.1.113883.1.6"></interactionId> <processingCode code="P"></processingCode> <processingModeCode code="T"></processingModeCode> … ca. 100 Zeilen … <custodian> <assignedEntity> <id root="2.16.840.1.113883.3.37.4.1.1.2.411"></id> </assignedEntity> </custodian> </registrationEvent> </subject> </controlActProcess> </PRPA_IN201101>Martin Krasser, Christian Ohr, ICW AG 23
  24. 24. HL7 Transformation• ServiceMix bietet „nur“ Basistechnologie (z.B. XSLT)• Domänenspezifische Komponenten auf höherem Abstraktionsniveau notwendig – HL7 v2  HL7 v3 – MLLP-Protokoll ist HL7-spezifisch, daher ebenfalls keine Unterstützung• ServiceMix-Erweiterungen notwendigMartin Krasser, Christian Ohr, ICW AG 24
  25. 25. ServiceMix Erweiterungen … sm-eip sm-jms … ServiceMix - Abstract Router - Abstract Transformer - Resequencer ext-eip ext-jms ext-mllp - InOut/InOnly Bridge … - HL7 v2 Router - Transactional - MLLP Consumer Endpoint Consumer - MLLP Provider Endpoint - HL7 v2 Transformer ext-hl7 Enpoint … ErweiterungenMartin Krasser, Christian Ohr, ICW AG 25
  26. 26. ServiceMix Erweiterungen• ext-hl7 – Domänenspezifische Implementierung von Patterns – Konfiguration auf höherem Abstraktionsniveau – Verwendung alternativer Technologien (Velocity …)• ext-eip – JBI Abstraktionsschicht – Development Kit für Komponentenentwickler – Testumgebung für EIP-KomponentenMartin Krasser, Christian Ohr, ICW AG 26
  27. 27. Herausforderungen• Wie macht man Nachrichtentransformation – Skalierbar? – Ausfallsicher? – Wartbar? – Nachvollziehbar? – Flexibel?• d.h. geeignet für den Routineeinsatz?Martin Krasser, Christian Ohr, ICW AG 27
  28. 28. Transformation ist auf den ersten Blick einfach D D HL7 V2 HL7 V3Martin Krasser, Christian Ohr, ICW AG 28
  29. 29. … auf den zweiten Blick … D ? D HL7 V2 HL7 V3 Validierung Transformation AuslieferungMartin Krasser, Christian Ohr, ICW AG 29
  30. 30. … auf den dritten Blick … D D HL7 v2 HL7 v3Martin Krasser, Christian Ohr, ICW AG 30
  31. 31. Notation Modell JBI Beschreibung JBI Service Endpoint (Router, Transformer …) SE JBI Binding Endpoint (HTTP, JMS …) BC MessageExchange über NMR DC NMR DC Externer DienstMartin Krasser, Christian Ohr, ICW AG 31
  32. 32. Validierung File D sm-file HL7 V2 HTTP Validator ? D D sm-http ext-hl7 HL7 V2 HL7 V2 MLLP ! D ext-mllp Error log HL7 V2Martin Krasser, Christian Ohr, ICW AG 32
  33. 33. Transformation V2_A01 to Reference Reference to V3_A01 Content-based Router ext-hl7 ext-hl7 D D ext-hl7HL7 V2 HL7 V3 V2_A03 to Reference Reference to V3_A03 ! ! Error log Error logMartin Krasser, Christian Ohr, ICW AG 33
  34. 34. Auslieferung ? Resequencer Recipient List sync JMS sync HTTP sync sm-http D sm-eip ext-hl7 JMS SOAP/HTTPHL7 V3 sync sync sm-http Ext. JMS Queue JMS sync sync sm-jms ext-jmsMartin Krasser, Christian Ohr, ICW AG 34
  35. 35. Erhaltung der Nachrichtensequenz• Zuweisung von Sequenznummern – Berücksichtigung von Splits• Stream-Processing Resequencer – Keine Batch-Größen bekannt – Timeout-basierter Algorithmus (Zeitfenster)• Auslieferung – Synchron über NMR – Pufferung (JMS) unter Beibehaltung der Ordnung Parallele SEQ Verarbeitung SEQMartin Krasser, Christian Ohr, ICW AG 35
  36. 36. System Management • Monitoring – JMX Infrastruktur von ServiceMix und ActiveMQ • Beispiel: JMS Queue (Auslieferung)Enqueue Count Queue Size Martin Krasser, Christian Ohr, ICW AG 36
  37. 37. System Management• Auditing – Speicherung eingehender und ausgehender Nachrichten• Statistik – Verarbeitungsdauer, Nachrichtendurchsatz … Anwendung Wire Tap store confirm Message StoreMartin Krasser, Christian Ohr, ICW AG 37
  38. 38. System Management • Re-play von Nachrichten • Filterung von DuplikatenAnwendung Duplicate Filter status query store confirm Message Store Martin Krasser, Christian Ohr, ICW AG 38
  39. 39. Bidirektionale Kommunikation• Wiederverwendung von Bausteinen, die nur unidirektionale Kommunikation unterstützten• Neues Muster: InOut – InOnly Bridge InOnly InOnly … InOut InOut InOnly InOnly …Martin Krasser, Christian Ohr, ICW AG 39
  40. 40. Erfahrungen• Anwendungsentwicklung – 30% Konfiguration existierender JBI-Komponenten – 70% Neu/Weiterentwicklung von JBI-Komponenten – Bessere Wartbarkeit durch domänenspezifische Patterns• Komponentenentwicklung – Komplexität durch JBI API (4 MEPs, synchron, asynchron …) – JBI-Abstraktionsschicht zur Vermeidung häufiger Fehler• ServiceMix – Stabile und performante JBI Plattform – Unterstützung von Spring bzw. XBean – Mangelhafte Dokumentation• System Management – Gute JMX Infrastruktur von ServiceMix und ActiveMQ – Einfache und effiziente Möglichkeiten zur ErweiterungMartin Krasser, Christian Ohr, ICW AG 40
  41. 41. Vielen Dank für Ihre Aufmerksamkeit! Fragen? martin.krasser@icw.de christian.ohr@icw.deMartin Krasser, Christian Ohr, ICW AG 41
  42. 42. Konsistente Datenhaltung• Verteiltes Transaktionsmanagement – Synchrone Kommunikation – Asynchrone Kommunikation• Unterstützung durch ServiceMix – XA Transaktionsmanager (Geronimo) – NMR als XA Resource (ActiveMQ) XA Transaction synchron: NMR NMR NMR XA Transaction 1 XA Transaction 2asynchron: NMR NMR NMRMartin Krasser, Christian Ohr, ICW AG 42
  43. 43. JBI Enterprise Service Bus• Plugin Schnittstellen konform zu JBI Externer Dienst• Plugins sind – Service Engines Binding Component – Binding Components Delivery Channel• Nachrichtenaustausch über – NMR Normalized JBI ESB Message – Delivery Channel Router (NMR)• Verteilung wird von JBI nicht Service Engine behandeltMartin Krasser, Christian Ohr, ICW AG 43
  44. 44. Weitere EIP Unterstützung – Apache ODE • Ausführung von WS-BPEL Prozessdefinitionen – sm-drools • Routing mit JBoss Drools (Rule Engine)… – sm-bean • POJO ProgrammiermodellMartin Krasser, Christian Ohr, ICW AG 44

×