Implementierung von Enterprise Integration Patterns auf einem JBI ESB

K
Implementierung von
Enterprise Integration Patterns
            auf einem JBI ESB
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
Ü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
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
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
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
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
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
Sektorenübergreifende
                   Kommunikation




   Master                               Interface          Verteilte
   Patient                               Engine          Patientenakte
    Index



                                                      Reha-
             Hausarzt                   Facharzt
                                                    Einrichtung

Martin Krasser, Christian Ohr, ICW AG                                    9
Anwendungsbeispiel

                                 A              A‘




   Master
   Patient
    Index                B


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


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

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


Martin Krasser, Christian Ohr, ICW AG                                                25
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
Herausforderungen
• Wie macht man Nachrichtentransformation
     – Skalierbar?
     – Ausfallsicher?
     – Wartbar?
     – Nachvollziehbar?
     – Flexibel?


• d.h. geeignet für den Routineeinsatz?
Martin Krasser, Christian Ohr, ICW AG     27
Transformation ist auf den ersten
            Blick einfach



       D                                   D

    HL7 V2                              HL7 V3




Martin Krasser, Christian Ohr, ICW AG            28
… auf den zweiten Blick …



       D                 ?                                                 D

    HL7 V2                                                              HL7 V3
                    Validierung         Transformation   Auslieferung




Martin Krasser, Christian Ohr, ICW AG                                            29
… auf den dritten Blick …



      D                                    D

   HL7 v2                               HL7 v3




Martin Krasser, Christian Ohr, ICW AG          30
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
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
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
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
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
System Management
  • Monitoring
       – JMX Infrastruktur von ServiceMix und ActiveMQ
  • Beispiel: JMS Queue (Auslieferung)


Enqueue Count                                            Queue Size




  Martin Krasser, Christian Ohr, ICW AG                      36
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
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
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
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
Vielen Dank für Ihre Aufmerksamkeit!

                                        Fragen?


                                             martin.krasser@icw.de
                                             christian.ohr@icw.de



Martin Krasser, Christian Ohr, ICW AG                                41
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
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
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
1 von 44

Recomendados

Die Open eHealth Integration Platform von
Die Open eHealth Integration PlatformDie Open eHealth Integration Platform
Die Open eHealth Integration Platformkrasserm
1.3K views25 Folien
Scala cheatsheet von
Scala cheatsheetScala cheatsheet
Scala cheatsheetArduino Aficionado
3.3K views2 Folien
The Open eHealth Integration Platform von
The Open eHealth Integration PlatformThe Open eHealth Integration Platform
The Open eHealth Integration Platformkrasserm
3.7K views31 Folien
System Integration with Akka and Apache Camel von
System Integration with Akka and Apache CamelSystem Integration with Akka and Apache Camel
System Integration with Akka and Apache Camelkrasserm
13.5K views56 Folien
Best of bowers & wilkins - février von
Best of    bowers & wilkins - févrierBest of    bowers & wilkins - février
Best of bowers & wilkins - févrierB&W Group France
469 views5 Folien
Note de Conjoncture Mars 2012 von
Note de Conjoncture Mars 2012Note de Conjoncture Mars 2012
Note de Conjoncture Mars 2012JLL France
672 views8 Folien

Más contenido relacionado

Destacado

Présentation What Heroes Wear - Paris Dauphine von
Présentation What Heroes Wear - Paris DauphinePrésentation What Heroes Wear - Paris Dauphine
Présentation What Heroes Wear - Paris DauphineNathanaël Ghisalberti
721 views55 Folien
Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd... von
Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...
Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...co2online gem. GmbH
1.2K views18 Folien
Extranas Imagenes von
Extranas ImagenesExtranas Imagenes
Extranas ImagenesOscar revoltoso
253 views20 Folien
Martin Schmitt von
Martin SchmittMartin Schmitt
Martin Schmittguest0c632c
2K views6 Folien
Pages From 51 62 von
Pages From 51 62Pages From 51 62
Pages From 51 62guest6b685
655 views12 Folien
Islam i Europa - en trussel mod det europæiske demokrati? von
Islam i Europa - en trussel mod det europæiske demokrati?Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?Rasmus Aage
345 views83 Folien

Destacado(19)

Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd... von co2online gem. GmbH
Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...
Servicemanagementsysteme in der Kältetechnik (Dipl.-Ing. Gunter Schill, Dresd...
co2online gem. GmbH1.2K views
Pages From 51 62 von guest6b685
Pages From 51 62Pages From 51 62
Pages From 51 62
guest6b685655 views
Islam i Europa - en trussel mod det europæiske demokrati? von Rasmus Aage
Islam i Europa - en trussel mod det europæiske demokrati?Islam i Europa - en trussel mod det europæiske demokrati?
Islam i Europa - en trussel mod det europæiske demokrati?
Rasmus Aage345 views
Pulse - Le Secteur des SSII von JLL France
Pulse - Le Secteur des SSIIPulse - Le Secteur des SSII
Pulse - Le Secteur des SSII
JLL France807 views
Boostez votre developpement avec les reseaux sociaux von Catherine Epstein
Boostez votre developpement avec les reseaux sociauxBoostez votre developpement avec les reseaux sociaux
Boostez votre developpement avec les reseaux sociaux
Catherine Epstein775 views
Tpe Vorstellung De von luisdiddl
Tpe Vorstellung DeTpe Vorstellung De
Tpe Vorstellung De
luisdiddl613 views
Christoph Tschohl - Open Government Data aus Menschenrechtsperspektive von Semantic Web Company
Christoph Tschohl - Open Government Data aus MenschenrechtsperspektiveChristoph Tschohl - Open Government Data aus Menschenrechtsperspektive
Christoph Tschohl - Open Government Data aus Menschenrechtsperspektive
Content Marketing Tuesday: Dein Content knallt, doch keiner hörts - Erfolgsme... von Turbine Kreuzberg GmbH
Content Marketing Tuesday: Dein Content knallt, doch keiner hörts - Erfolgsme...Content Marketing Tuesday: Dein Content knallt, doch keiner hörts - Erfolgsme...
Content Marketing Tuesday: Dein Content knallt, doch keiner hörts - Erfolgsme...
Compte rendu du conseil municipal du 19 février 2015 von villedebegles
Compte rendu du conseil municipal du 19 février 2015Compte rendu du conseil municipal du 19 février 2015
Compte rendu du conseil municipal du 19 février 2015
villedebegles980 views
Hymnes orphiques (traduction leconte de lisle) - http://www.projethomere.com von Hélène Kémiktsi
Hymnes orphiques (traduction leconte de lisle) - http://www.projethomere.comHymnes orphiques (traduction leconte de lisle) - http://www.projethomere.com
Hymnes orphiques (traduction leconte de lisle) - http://www.projethomere.com
Hélène Kémiktsi820 views

Similar a Implementierung von Enterprise Integration Patterns auf einem JBI ESB

Innovation in der Instandhaltung - Motor für die Zukunft von
Innovation in der Instandhaltung - Motor für die ZukunftInnovation in der Instandhaltung - Motor für die Zukunft
Innovation in der Instandhaltung - Motor für die ZukunftSalzburg Research Forschungsgesellschaft mbH
793 views22 Folien
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ... von
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...NETWAYS
43 views32 Folien
Data Is The New Oil von
Data Is The New OilData Is The New Oil
Data Is The New OilParStream
449 views5 Folien
ISD2016_SolutionC_Erwin_Ochsner von
ISD2016_SolutionC_Erwin_OchsnerISD2016_SolutionC_Erwin_Ochsner
ISD2016_SolutionC_Erwin_OchsnerInfoSocietyDays
221 views17 Folien
ISD2016_SolutionC_Erwin_Ochsner von
ISD2016_SolutionC_Erwin_OchsnerISD2016_SolutionC_Erwin_Ochsner
ISD2016_SolutionC_Erwin_OchsnerInfoSocietyDays
355 views17 Folien
imatics & ModelLabs Integration von
imatics & ModelLabs Integrationimatics & ModelLabs Integration
imatics & ModelLabs Integrationimatics Software GmbH
340 views11 Folien

Similar a Implementierung von Enterprise Integration Patterns auf einem JBI ESB(20)

OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ... von NETWAYS
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
OSMC 2013 | Enterprise Platforms Monitoring at s IT Solutions AT by Johannes ...
NETWAYS43 views
Data Is The New Oil von ParStream
Data Is The New OilData Is The New Oil
Data Is The New Oil
ParStream449 views
Pragmatic SOA - Beschränken auf das Wesentliche von 1&1
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
1&11.9K views
Microservices - Was EAs zu Microservices wissen sollten von Jan Thielscher
Microservices - Was EAs zu Microservices wissen solltenMicroservices - Was EAs zu Microservices wissen sollten
Microservices - Was EAs zu Microservices wissen sollten
Jan Thielscher240 views
BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge... von BATbern
BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge...BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge...
BAT40 Mobiliar Koller Mösching AI@Mobiliar Wie AI-Services in der Mobiliar ge...
BATbern448 views
Green IT BB Award 2012 - Bundesagentur für Arbeit - RZ-Konsolidierung von Netzwerk GreenIT-BB
Green IT BB Award 2012 - Bundesagentur für Arbeit - RZ-KonsolidierungGreen IT BB Award 2012 - Bundesagentur für Arbeit - RZ-Konsolidierung
Green IT BB Award 2012 - Bundesagentur für Arbeit - RZ-Konsolidierung
Die Bedeutung der Diagnose in der Fahrzeugentwicklung von Schleissheimer GmbH
Die Bedeutung der Diagnose in der FahrzeugentwicklungDie Bedeutung der Diagnose in der Fahrzeugentwicklung
Die Bedeutung der Diagnose in der Fahrzeugentwicklung
Schleissheimer GmbH1.6K views
Fraunhofer AISEC - Mit Sicherheit innovativ von Fraunhofer AISEC
Fraunhofer AISEC - Mit Sicherheit innovativFraunhofer AISEC - Mit Sicherheit innovativ
Fraunhofer AISEC - Mit Sicherheit innovativ
Fraunhofer AISEC973 views
Überblick zum Industrial Data Space von Boris Otto
Überblick zum Industrial Data SpaceÜberblick zum Industrial Data Space
Überblick zum Industrial Data Space
Boris Otto3.3K views
OSMC 2011 | Monitoring "wer kennt wen" mit free and open source software by J... von NETWAYS
OSMC 2011 | Monitoring "wer kennt wen" mit free and open source software by J...OSMC 2011 | Monitoring "wer kennt wen" mit free and open source software by J...
OSMC 2011 | Monitoring "wer kennt wen" mit free and open source software by J...
NETWAYS45 views

Implementierung von Enterprise Integration Patterns auf einem JBI ESB

  • 1. Implementierung von Enterprise Integration Patterns auf einem JBI ESB
  • 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
  • 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. 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
  • 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. 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 Martin Krasser, Christian Ohr, ICW AG 24
  • 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 … Erweiterungen Martin Krasser, Christian Ohr, ICW AG 25
  • 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