2. Wer sind wir?
• Softwarearchitekten
• Entwicklung von
Integrationsplattformen
und -lösungen
martin.krasser@icw.de
http://www.icw.de christian.ohr@icw.de
Martin Krasser, Christian Ohr, ICW AG 2
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
EIPs
Detail
0 min 60 min
Martin Krasser, Christian Ohr, ICW AG 3
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) eingesetzt
Martin Krasser, Christian Ohr, ICW AG 4
5. Ereignisse im Krankenhaus
Krankenhaus-
PACS RIS Archiv
Informationssystem
Labor Interface Küche
Engine
Aufnahme!
Intensiv- Patienten-
überwachung Management
Martin Krasser, Christian Ohr, ICW AG 5
6. Ereignisse im Krankenhaus
Krankenhaus-
Klinischer
PACS RIS Archiv
Informationssystem
Arbeitsplatz
Auftrag
Labor Interface Küche
Engine
Intensiv- Patienten-
überwachung Management
Martin Krasser, Christian Ohr, ICW AG 6
7. Ereignisse im Krankenhaus
Krankenhaus-
Klinischer
PACS RIS Archiv
Informationssystem
Arbeitsplatz
Labor Interface Küche
Ergebnis Engine
Intensiv- Patienten-
überwachung Management
Martin Krasser, Christian Ohr, ICW AG 7
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 Schnittstellen
Martin Krasser, Christian Ohr, ICW AG 8
9. Sektorenübergreifende
Kommunikation
Master Interface Verteilte
Patient Engine Patientenakte
Index
Reha-
Hausarzt Facharzt
Einrichtung
Martin Krasser, Christian Ohr, ICW AG 9
10. Anwendungsbeispiel
A A‘
Master
Patient
Index B
Enterprise Service Bus (ESB)
… B‘ als Interface Engine
Martin Krasser, Christian Ohr, ICW AG 10
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. Enterprise Service Bus
• Plugin Architektur
– Integrationskomponenten sind Plugins
– Projektspezifische Konfiguration
– Erweiterungsmechanismus
– Java Business Integration (JSR 208)
• Verteilte Bus-Architektur
Plugins
Martin Krasser, Christian Ohr, ICW AG 12
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 Integrationskomponenten
Martin Krasser, Christian Ohr, ICW AG 13
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 Router
Martin Krasser, Christian Ohr, ICW AG 14
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 Lizenz
Martin Krasser, Christian Ohr, ICW AG 15
16. Apache ServiceMix
sm-http sm-jms sm-file … Binding Components
JBI
Komponenten
sm-eip sm-drools ODE … Service Engines
Delivery Channel
JBI Umgebung ServiceMix Core Norm. Message
Router Management
(JMX)
Message Broker
ActiveMQ Cluster Support
Martin Krasser, Christian Ohr, ICW AG 16
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. 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
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
– Papier
Martin Krasser, Christian Ohr, ICW AG 20
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. 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 ereignisgetrieben
Martin Krasser, Christian Ohr, ICW AG 22
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-Komponenten
Martin Krasser, Christian Ohr, ICW AG 26
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. Transformation ist auf den ersten
Blick einfach
D D
HL7 V2 HL7 V3
Martin Krasser, Christian Ohr, ICW AG 28
29. … auf den zweiten Blick …
D ? D
HL7 V2 HL7 V3
Validierung Transformation Auslieferung
Martin Krasser, Christian Ohr, ICW AG 29
30. … auf den dritten Blick …
D D
HL7 v2 HL7 v3
Martin Krasser, Christian Ohr, ICW AG 30
31. Notation
Modell JBI Beschreibung
JBI Service Endpoint
(Router, Transformer …)
SE
JBI Binding Endpoint
(HTTP, JMS …)
BC
MessageExchange über NMR
DC
NMR
DC
Externer Dienst
Martin Krasser, Christian Ohr, ICW AG 31
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 V2
Martin Krasser, Christian Ohr, ICW AG 32
33. Transformation
V2_A01 to Reference
Reference to V3_A01
Content-based
Router
ext-hl7 ext-hl7
D D
ext-hl7
HL7 V2 HL7 V3
V2_A03 to Reference
Reference to V3_A03
! !
Error log Error log
Martin Krasser, Christian Ohr, ICW AG 33
34. Auslieferung
?
Resequencer
Recipient
List
sync
JMS sync
HTTP
sync sm-http
D
sm-eip ext-hl7 JMS SOAP/HTTP
HL7 V3 sync sync
sm-http
Ext.
JMS Queue JMS
sync sync
sm-jms ext-jms
Martin Krasser, Christian Ohr, ICW AG 34
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 SEQ
Martin Krasser, Christian Ohr, ICW AG 35
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. System Management
• Auditing
– Speicherung eingehender und ausgehender Nachrichten
• Statistik
– Verarbeitungsdauer, Nachrichtendurchsatz …
Anwendung
Wire Tap
store confirm
Message Store
Martin Krasser, Christian Ohr, ICW AG 37
38. System Management
• Re-play von Nachrichten
• Filterung von Duplikaten
Anwendung
Duplicate
Filter
status query
store
confirm
Message Store
Martin Krasser, Christian Ohr, ICW AG 38
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. 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 Erweiterung
Martin Krasser, Christian Ohr, ICW AG 40
41. Vielen Dank für Ihre Aufmerksamkeit!
Fragen?
martin.krasser@icw.de
christian.ohr@icw.de
Martin Krasser, Christian Ohr, ICW AG 41
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 2
asynchron: NMR NMR NMR
Martin Krasser, Christian Ohr, ICW AG 42
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
behandelt
Martin Krasser, Christian Ohr, ICW AG 43
44. Weitere EIP Unterstützung
– Apache ODE
• Ausführung von WS-BPEL Prozessdefinitionen
– sm-drools
• Routing mit JBoss Drools (Rule Engine)
… – sm-bean
• POJO Programmiermodell
Martin Krasser, Christian Ohr, ICW AG 44