implementierung von enterprise integration patterns auf einem jbi esb

44
Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Upload: krasserm

Post on 30-Oct-2014

1.077 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Implementierung von Enterprise Integration Patterns

auf einem JBI ESB

Page 2: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 2

Wer sind wir?

• Softwarearchitekten • Entwicklung von

Integrationsplattformen und -lösungen

http://[email protected]@icw.de

Page 3: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 3

Roter FadenBeispiel: KommunikationIm Krankenhaus

Einsatzszenario für einen ESB

ESB und JBI

Apache ServiceMix und EIPs

Anwendungsbeispiel für EIPs

Herausforderungen + Lösungsansätze

60 min

Detail

Überblick

0 min

Page 4: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 5: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 5

Ereignisse im Krankenhaus

KücheKüche

ArchivArchiv

Patienten- ManagementPatienten-

Management

Krankenhaus-Informationssystem

Krankenhaus-Informationssystem

LaborLabor

PACSPACS RISRIS

InterfaceEngine

InterfaceEngine

Intensiv-überwachung

Intensiv-überwachung

Aufnahme!

Page 6: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 6

Ereignisse im Krankenhaus

KücheKüche

ArchivArchiv

Patienten- ManagementPatienten-

Management

KlinischerArbeitsplatzKlinischer

Arbeitsplatz

LaborLabor

PACSPACS RISRIS

InterfaceEngine

InterfaceEngine

Intensiv-überwachung

Intensiv-überwachung

Auftrag

Krankenhaus-Informationssystem

Krankenhaus-Informationssystem

Page 7: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 7

Ereignisse im Krankenhaus

KücheKüche

ArchivArchiv

Patienten- ManagementPatienten-

Management

KlinischerArbeitsplatzKlinischer

Arbeitsplatz

LaborLabor

PACSPACS RISRIS

InterfaceEngine

InterfaceEngine

Intensiv-überwachung

Intensiv-überwachung

Ergebnis

Krankenhaus-Informationssystem

Krankenhaus-Informationssystem

Page 8: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 9: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 9

Sektorenübergreifende Kommunikation

HausarztHausarzt FacharztFacharztReha-

EinrichtungReha-

Einrichtung

InterfaceEngine

InterfaceEngine

Verteilte Patientenakte

Verteilte Patientenakte

Master Patient Index

Master Patient Index

Page 10: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 10

Anwendungsbeispiel

Master Patient Index

Master Patient Index

A A‘

B

…… B‘Enterprise Service Bus (ESB) als Interface Engine

Page 11: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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)– …

Page 12: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 12

Enterprise Service Bus• Plugin Architektur

– Integrationskomponenten sind Plugins– Projektspezifische Konfiguration– Erweiterungsmechanismus– Java Business Integration (JSR 208)

• Verteilte Bus-Architektur

Plugins

Page 13: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 14: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 14

Java Business Integration (JBI)

JBI UmgebungJBI Komponente (BC)

NMR

DC

DC

JBI Komponente (SE)

Service Endpoint

Message Exchange

Externer Service

JBI Komponente• BC = Binding Component• SE = Service Engine

DC Delivery Channel

NMR Normalized Message Router

EP

EP EP

EP

WSDL

WSDL WSDL

Page 15: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 16: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 16

Apache ServiceMix

ActiveMQ

ServiceMix Core

…JBI Komponenten

Binding Components

Service Engines

JBI Umgebung

Message Broker Cluster Support

sm-http

Delivery Channel Norm. Message Router Management (JMX)

sm-jms sm-file

sm-eip sm-drools ODE

Page 17: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 17

sm-eip Service Engine• Enterprise Integration Patterns

– Filter– Content-based Router– Recipient List– Splitter and Aggregator– Content Enricher– Resequencer– …

Page 18: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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> <eip:predicate> <eip:xpath-predicate xpath="count(//items/item) > 0" /> </eip:predicate> <eip:target> <eip:exchange-target service="msb:MPI" /> </eip:target> </eip:routing-rule> </eip:rules> </eip:content-based-router>

sm-eip

<<deploy>>

Service Assembly

maven-jbi-plugin

Page 19: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 19

Anwendungsbeispiel• Nachrichtenstandards, Formate und Transport

Master Patient Index

Master Patient Index

……

HL7 v2FTP

HL7 v2‘MLLP

HL7 v3

HTTP

HL7 v3‘

SOAP/ HTTP

Page 20: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 21: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 22: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 23: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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>

Page 24: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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 notwendig

Page 25: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 25

Erweiterungen

ServiceMix

ServiceMix Erweiterungen

sm-jmssm-eip

ext-jmsext-eip ext-mllp

ext-hl7

- Abstract Router- Abstract Transformer- Resequencer- InOut/InOnly Bridge…

- HL7 v2 Router- HL7 v2 Transformer…

… …

- Transactional Consumer Enpoint

- MLLP Consumer Endpoint- MLLP Provider Endpoint

Page 26: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 27: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 27

Herausforderungen• Wie macht man Nachrichtentransformation

– Skalierbar?– Ausfallsicher?– Wartbar?– Nachvollziehbar?– Flexibel?

• d.h. geeignet für den Routineeinsatz?

Page 28: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 28

Transformation ist auf den ersten Blick einfach

D

HL7 V2

D

HL7 V3

Page 29: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 29

… auf den zweiten Blick …

D

HL7 V2

D

HL7 V3Validierung Transformation Auslieferung

?

Page 30: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 30

… auf den dritten Blick …

D

HL7 v3

D

HL7 v2

Page 31: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 31

NotationModell JBI Beschreibung

JBI Service Endpoint(Router, Transformer …)

JBI Binding Endpoint(HTTP, JMS …)

MessageExchange über NMR

Externer Dienst

BC

SE

NMRDC

DC

Page 32: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 32

ext-hl7

ext-mllp

sm-http

sm-file

Validierung

D

HL7 V2

D

HL7 V2

D

HL7 V2

File

HTTP

MLLP

Error log!

?

D

HL7 V2

Validator

Page 33: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 33

ext-hl7

ext-hl7

ext-hl7

Transformation

D

HL7 V2

Content-basedRouter

V2_A01 to Reference

V2_A03 to Reference

Reference to V3_A01

Reference to V3_A03

D

HL7 V3

Error log!

Error log!

Page 34: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 34

sm-http

sm-http

sm-jms ext-jms

ext-hl7sm-eip

Auslieferung

D

HL7 V3

Resequencer Recipient List

sync

sync

sync

SOAP/HTTP

JMS HTTPsync

syncJMS

?

Ext. Queue

sync syncJMS JMS

Page 35: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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 Verarbeitung SEQ

SEQ

Page 36: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 36

System Management• Monitoring

– JMX Infrastruktur von ServiceMix und ActiveMQ• Beispiel: JMS Queue (Auslieferung)

Enqueue Count Queue Size

Page 37: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 37

System Management• Auditing

– Speicherung eingehender und ausgehender Nachrichten

• Statistik– Verarbeitungsdauer, Nachrichtendurchsatz …

Anwendung

Message Store

store confirm

Wire Tap

Page 38: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 38

System Management• Re-play von Nachrichten• Filterung von Duplikaten

Duplicate Filter

status query

Anwendung

storeconfirm

Message Store

Page 39: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 39

Bidirektionale Kommunikation• Wiederverwendung von Bausteinen, die nur

unidirektionale Kommunikation unterstützten• Neues Muster: InOut – InOnly Bridge

InOnly InOnly

InOnly InOnly

InOut InOut

Page 40: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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

Page 41: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 41

Vielen Dank für Ihre Aufmerksamkeit!

Fragen?

[email protected]@icw.de

Page 42: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 42

Konsistente Datenhaltung• Verteiltes Transaktionsmanagement

– Synchrone Kommunikation– Asynchrone Kommunikation

• Unterstützung durch ServiceMix– XA Transaktionsmanager (Geronimo)– NMR als XA Resource (ActiveMQ)

NMRXA Transaction 1

NMRXA Transaction 2

NMR

NMR

XA Transaction

NMR NMRsynchron:

asynchron:

Page 43: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 43

JBI Enterprise Service Bus• Plugin Schnittstellen konform zu JBI

• Plugins sind– Service Engines– Binding Components

• Nachrichtenaustausch über– NMR– Delivery Channel

• Verteilung wird von JBI nicht behandelt

Service Engine

Binding Component

Externer Dienst

Delivery Channel

Normalized Message Router (NMR)

JBI ESB

Page 44: Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Martin Krasser, Christian Ohr, ICW AG 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