SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Open eHealth Integration Platform (IPF)
ICW Developer Conference
Martin Krasser / May 5, 2009
ICW Developer ConferenceMay 5, 20092
Martin Krasser
Position
• Software architect and engineer
Focus
• Distributed systems
• Application integration
• Application security
• ...
Open source projects
• Open eHealth Integration Platform (Founder)
http://gforge.openehealth.org/gf/project/ipf
• Security Annotation Framework (Founder)
http://www.sourceforge.net/projects/safr
• Apache Camel (Contributor)
http://camel.apache.org
ICW Developer ConferenceMay 5, 20094
Agenda
Part 1
• IPF Introduction
• Programming IPF
• Demo
Part 2
• OSGi Support
• IPF Services
• Demos
Part 3
• Outlook
ICW Developer ConferenceMay 5, 20095
IPF Introduction (1/5)
Framework for implementing integration logic
• Healthcare domain
• General-purpose
Platform to deploy and run integration solutions
• OSGi-based with IPF services in service registry
• Embedded, standalone and distributed deployments
Based on Apache Camel
• Routing and mediation engine
• Enterprise Integration Patterns (EIPs)
• Domain-specific language (DSL)
ICW Developer ConferenceMay 5, 20096
IPF Introduction (2/5)
Project
• Hosted at the Open eHealth Foundation
• Open source under Apache License, Version 2
• Latest release – IPF 1.6.0 (April 2009)
• http://gforge.openehealth.org/gf/project/ipf/
- Subversion repository
- Release filesystem
- Issue tracker
- Mailing lists
• http://repo.openehealth.org
- Reference documentation
- Contribution guidelines
- Build server and build reports
- Maven and OSGi bundle repository
ICW Developer ConferenceMay 5, 20097
IPF Introduction (3/5)
Technologies
• Java and Groovy
• Springframework
• Apache ActiveMQ (optional)
• „Camel components“ (for connectivity)
Connectivity
• Protocols (HTTP, SOAP, FTP, SMTP, MLLP ...)
• Interfaces (JMS, JPA, JDBC ...)
• More than 70 Camel (connectivity) components!
ICW Developer ConferenceMay 5, 20098
IPF Introduction (4/5)
Development
• Focus on programming (internal DSL)
• DSL is easy to extend
• Platform is easy to extend
• No graphical route designer
• ...
IPF applications @ ICW
• Medical Service Bus (MSB)
• IHE profiles (PIX, PDQ, XDS)
• Device connectivity server (DCS)
• LifeSensor adapter (LSA)
• IPF inside eHF
• ...
ICW Developer ConferenceMay 5, 20099
IPF Introduction (5/5)
Apache Camel
IPF Core
HL7 support
CDA support
IHE support Code mapping
Large message support
Event infrastructure
OSGisupport
Developmenttools
Flow management
Managementconsoles
System overview
Core processors
Performance
testsupportPart of presentation and demos
ICW Developer ConferenceMay 5, 200910
Programming with Camel
Overview
• Components Connectivity to external systems or resources
• Endpoints Send/receive messages to/from external systems
• Processors Transform, validate, filter, route, etc. messages
• Routes Endpoints connected by processors using DSL
Route example
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
XPath
Filter
from("jetty:http://0.0.0.0:8090/subscribers") // inbound HTTP endpoint
.filter().xpath("/person[@name='Martin']") // XPath filter
.to("http://localhost:8080/log"); // outbound HTTP endpoint
Camel DSL (Java)
ICW Developer ConferenceMay 5, 200911
Programming with IPF
Overview
• All Camel features available
• Dynamic language support (Groovy)
• DSL extension mechanism (Groovy meta-programming)
• Predefined DSL extensions (Contribution from modules)
Route example
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
from('jetty:http://0.0.0.0:8090/admissions') // inbound HTTP endpoint
.unmarshal().ghl7() // HL7 parser
.validate().ghl7() // HL7 validator
.filter {it.in.body.PID[8].value == 'F'} // HL7 filter
.to('http://localhost:8080/log') // outbound HTTP endpoint
IPF DSL (Groovy)
ICW Developer ConferenceMay 5, 200912
Demo
Implement example route starting from scratch
• HTTP endpoints
• HL7 validation
• HL7 filtering
• HL7 transformation
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
HL7
Transformer
ICW Developer ConferenceMay 5, 200913
Agenda
Part 1
• IPF Introduction
• Programming IPF
• Demos
Part 2
• OSGi Support
• IPF Services
• Demos
Part 3
• Outlook
• Q&A
ICW Developer ConferenceMay 5, 200914
OSGi Support (1/3)
IPF components are OSGi bundles
• Deployable to any OSGi R4 platform
• Tested with Eclipse Equinox 3.4.1
IPF bundles register platform services
• Flow manager, mapping service ...
• Consumed by IPF applications
IPF extender bundles activate DSL extensions
• DSL extensions contributed by platform and application bundles
ICW Developer ConferenceMay 5, 200915
OSGi Support (2/3)
Technologies
• Eclipse Equinox 3.4.1
• Spring Dynamic Modules (DM)
Tooling
• maven-bundle-plugin to generate MANIFEST.MF
• Eclipse Plugin Development Environment (PDE)
ICW Developer ConferenceMay 5, 200916
OSGi Support (3/3)
IPF runtime
• OSGi platform for IPF applications
ICW Developer ConferenceMay 5, 200919
Implement example route as IPF OSGi application
• Two OSGi bundles
• Deploy to IPF runtime
• Change service implementation at runtime
OSGi Service
Registry
Demo
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
HL7
Transformer
Proxy
Processor
route
bundle
service
bundle
ICW Developer ConferenceMay 5, 200920
Flow management (1/2)
Purpose
• Monitor messages processed by IPF applications
• Support manual redelivery (replay) of messages
Monitoring
• Successful flows
• Failed flows
• Active flows
• Flow duration
• Message content
• ...
Replay
• Recovery from delivery failures
• Recovery from system failures
• Recovery of application state
• ...
Complements automated
(failure) recovery mechanisms
ICW Developer ConferenceMay 5, 200921
Flow management (2/2)
User interfaces
• Any JMX client
- JConsole
- ...
• Platform manager
- Eclipse RCP application
ICW Developer ConferenceMay 5, 200922
Enable flow management for example route
OSGi Service Registry
Demo
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
HL7
Transformer
Proxy
Processor
route
bundle
service
bundle
platform-camel-flow
bundle
Flow Manager
B E
Replay Strategy
Flow
Manager
D
ICW Developer ConferenceMay 5, 200923
Message Buffering for Delivery Failure Recovery
Compensate unavailability of destinations
• Automated redelivery of messages
• Number of redelivery attemps given by redelivery policy
Implemented with transacted JMS queue
• Transaction rolled back if destination unavailable
• Transaction rollback causes message redelivery
Manual replay of messages using flow manager
• When automated redelivery gives up
ICW Developer ConferenceMay 5, 200924
Add a message buffer to example route
OSGi Service Registry
Demo
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
HL7
Transformer
Proxy
Processor
route
bundle
service
bundle
platform-camel-flow
bundle
Flow Manager
B E
Replay Strategy
Flow
Manager
JMS Queue
camel-
activemq
JMS Component
Proxy
D
osgi-config-jms
bundle
ICW Developer ConferenceMay 5, 200925
Mapping Service
Mapping between codes from different code systems
• Often needed for HL7 message processing
• Gender codes, encounter type codes ...
Default mapping service
• Accessed via mapping DSL
• Configurable with mapping tables
ICW Developer ConferenceMay 5, 200926
Demo
mappings = {
gender (
F : 'W',
(ELSE) : { it }
)
}
// Extension to java.lang.String
assert 'F'.mapGender() == 'W'
// Extension to HL7 DSL
assert msg.PID[8].mapGender() == 'W'
Mapping definition Mapping service usage
Gender code mapping
ICW Developer ConferenceMay 5, 200927
Implement code mapping for example route
OSGi Service Registry
Demo
?
HTTP
Endpoint
(inbound)
HTTP
Endpoint
(outbound)
HL7
Filter
HL7
Validator
HL7
Transformer
Proxy
Processor
route
bundle
service
bundle
platform-camel-flow
bundle
Flow Manager
B E
Replay Strategy
Flow
Manager
JMS Queue
camel-
activemq
JMS Component
D
osgi-config-jms
bundle
Mapping
Service
Mapping
Definition
modules-hl7
bundle
Bidi
Mapping
Service
mapping
fragment
use via DSL
ICW Developer ConferenceMay 5, 200928
Resources
Demo source code
• http://repo.openehealth.org/sites/ipf/demo/20090505/demo-osgi.zip
IPF runtime with demo bundles
• http://repo.openehealth.org/sites/ipf/demo/20090505/demo-runtime.zip
ICW Developer ConferenceMay 5, 200929
Agenda
Part 1
• IPF Introduction
• Programming IPF
• Demos
Part 2
• OSGi Support
• IPF Services
• Demos
Part 3
• Outlook
• Q&A
ICW Developer ConferenceMay 5, 200930
Outlook (1/4)
DSL for HL7v3 messages and CDA/CCD documents
// Create a CDA builder
CDABuilder builder = new CDABuilder()
// Create a new CDA document
def document = builder.build {
clinicalDocument {
id(root:'2.16.840.1.113883.19.4', extension:'c266')
code(
code:'11488-4',
codeSystem:'2.16.840.1.113883.6.1',
...
)
title('Good Health Clinic Consultation Note')
recordTarget {
...
}
...
}
...
}
// Write document XML to stdout
System.out << document
ICW Developer ConferenceMay 5, 200931
Outlook (2/4)
DSL for implementing IHE actor interfaces and transactions
from('ihe:xds.b:iti-41?port=8080')
.process { exchange ->
def document = exchange.in.body
// do further document processing here ...
}
// communicate with your document management system
.to('http://...')
// notify about availability of new document
.to('ihe:nav:iti-25:?to=martin@openehealth.org')
ICW Developer ConferenceMay 5, 200932
Outlook (3/4)
IPF as a Service
• Central operation of IPF runtime and applications
• High-availability and scalability are part of service
• IPF application deployment via IPF Eclipse plugins
• Research in progress on scalable data stores
• Experiments with IPF on Google AppEngine
ICW Developer ConferenceMay 5, 200933
Outlook (4/4)
Performance testing framework
• Instrumentation DSL
• Processing statistics
Grails integration
• IPF plugin for Grails
IPF on ICW connector
• Prototype exists
Thank you for your attention!
martin.krasser@icw.de

Weitere ähnliche Inhalte

Was ist angesagt?

OPNFV: Open Source Carrier Networking Panel
OPNFV: Open Source Carrier Networking PanelOPNFV: Open Source Carrier Networking Panel
OPNFV: Open Source Carrier Networking PanelOPNFV
 
Cloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsCloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsFlorian Feldhaus
 
What is OPNFV? An Introduction
What is OPNFV? An IntroductionWhat is OPNFV? An Introduction
What is OPNFV? An IntroductionOPNFV
 
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...Edge AI and Vision Alliance
 
OPNFV Overview
 OPNFV Overview  OPNFV Overview
OPNFV Overview OPNFV
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021Ieva Navickaite
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionTail-f Systems
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Tail-f Systems
 
Advancing OpenFabrics Interfaces
Advancing OpenFabrics InterfacesAdvancing OpenFabrics Interfaces
Advancing OpenFabrics Interfacesinside-BigData.com
 
DevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQDevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQStuart Feasey
 
Creating a Service Platform for .NET - Clément Escoffier, University of Grenoble
Creating a Service Platform for .NET - Clément Escoffier, University of GrenobleCreating a Service Platform for .NET - Clément Escoffier, University of Grenoble
Creating a Service Platform for .NET - Clément Escoffier, University of Grenoblemfrancis
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical IntroTail-f Systems
 
Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...Tail-f Systems
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot ComponentsBIOVIA
 
The State of libfabric in Open MPI
The State of libfabric in Open MPIThe State of libfabric in Open MPI
The State of libfabric in Open MPIJeff Squyres
 
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZEJeff Squyres
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Systems
 

Was ist angesagt? (20)

OPNFV: Open Source Carrier Networking Panel
OPNFV: Open Source Carrier Networking PanelOPNFV: Open Source Carrier Networking Panel
OPNFV: Open Source Carrier Networking Panel
 
Cloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementationsCloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementations
 
What is OPNFV? An Introduction
What is OPNFV? An IntroductionWhat is OPNFV? An Introduction
What is OPNFV? An Introduction
 
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...
“OpenVX 1.3: An Open Standard for Computer Vision Software Acceleration,” a P...
 
OPNFV Overview
 OPNFV Overview  OPNFV Overview
OPNFV Overview
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
Module 1: ConfD Technical Introduction
Module 1: ConfD Technical IntroductionModule 1: ConfD Technical Introduction
Module 1: ConfD Technical Introduction
 
Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial Module 4: NETCONF Tutorial
Module 4: NETCONF Tutorial
 
Advancing OpenFabrics Interfaces
Advancing OpenFabrics InterfacesAdvancing OpenFabrics Interfaces
Advancing OpenFabrics Interfaces
 
DevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQDevOps & Continuous Test for IIB and IBM MQ
DevOps & Continuous Test for IIB and IBM MQ
 
Creating a Service Platform for .NET - Clément Escoffier, University of Grenoble
Creating a Service Platform for .NET - Clément Escoffier, University of GrenobleCreating a Service Platform for .NET - Clément Escoffier, University of Grenoble
Creating a Service Platform for .NET - Clément Escoffier, University of Grenoble
 
Module 9: CDB Technical Intro
 Module 9: CDB Technical Intro Module 9: CDB Technical Intro
Module 9: CDB Technical Intro
 
What will be new in HDF5?
What will be new in HDF5?What will be new in HDF5?
What will be new in HDF5?
 
Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...Dynamic Service Configuration and Automated Network Configuration with NETCON...
Dynamic Service Configuration and Automated Network Configuration with NETCON...
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components
 
The State of libfabric in Open MPI
The State of libfabric in Open MPIThe State of libfabric in Open MPI
The State of libfabric in Open MPI
 
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE
(Very) Loose proposal to revamp MPI_INIT and MPI_FINALIZE
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
 
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANGTail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
Tail-f Webinar OpenFlow Switch Management Using NETCONF and YANG
 

Ähnlich wie The Open eHealth Integration Platform

IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxGeorg Ember
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...WSO2
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"Volker Linz
 
Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Capgemini
 
Apache conna2010 os-gi_flex-fornaciari
Apache conna2010 os-gi_flex-fornaciariApache conna2010 os-gi_flex-fornaciari
Apache conna2010 os-gi_flex-fornaciariZenika
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps JourneyMicro Focus
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixYunong Xiao
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyftmarkgrover
 
Mobility and federation of Cloud computing
Mobility and federation of Cloud computingMobility and federation of Cloud computing
Mobility and federation of Cloud computingDavid Wallom
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 
FluentD for end to end monitoring
FluentD for end to end monitoringFluentD for end to end monitoring
FluentD for end to end monitoringPhil Wilkins
 
OCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchOCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchPT Datacomm Diangraha
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NETYaniv Uriel
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinarseanhefty
 
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMUsing OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMmfrancis
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18Xiaoli Liang
 

Ähnlich wie The Open eHealth Integration Platform (20)

IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
 
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
[WSO2 Integration Summit Nairobi 2019] Role of Integration in an API Driven W...
 
"Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?""Wie passen Serverless & Autonomous zusammen?"
"Wie passen Serverless & Autonomous zusammen?"
 
Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0Cwin16 tls-a micro-service deployment - v1.0
Cwin16 tls-a micro-service deployment - v1.0
 
Apache conna2010 os-gi_flex-fornaciari
Apache conna2010 os-gi_flex-fornaciariApache conna2010 os-gi_flex-fornaciari
Apache conna2010 os-gi_flex-fornaciari
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
Going FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at NetflixGoing FaaSter, Functions as a Service at Netflix
Going FaaSter, Functions as a Service at Netflix
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
Mobility and federation of Cloud computing
Mobility and federation of Cloud computingMobility and federation of Cloud computing
Mobility and federation of Cloud computing
 
Madrid meetup #7 deployment models
Madrid meetup #7   deployment modelsMadrid meetup #7   deployment models
Madrid meetup #7 deployment models
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
FluentD for end to end monitoring
FluentD for end to end monitoringFluentD for end to end monitoring
FluentD for end to end monitoring
 
OCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes LaunchOCP Datacomm RedHat - Kubernetes Launch
OCP Datacomm RedHat - Kubernetes Launch
 
SDN and metrics from the SDOs
SDN and metrics from the SDOsSDN and metrics from the SDOs
SDN and metrics from the SDOs
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinar
 
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMUsing OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBM
 
IJTC ServiceMix 4
IJTC   ServiceMix 4IJTC   ServiceMix 4
IJTC ServiceMix 4
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 

Kürzlich hochgeladen

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Kürzlich hochgeladen (20)

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

The Open eHealth Integration Platform

  • 1. Open eHealth Integration Platform (IPF) ICW Developer Conference Martin Krasser / May 5, 2009
  • 2. ICW Developer ConferenceMay 5, 20092 Martin Krasser Position • Software architect and engineer Focus • Distributed systems • Application integration • Application security • ... Open source projects • Open eHealth Integration Platform (Founder) http://gforge.openehealth.org/gf/project/ipf • Security Annotation Framework (Founder) http://www.sourceforge.net/projects/safr • Apache Camel (Contributor) http://camel.apache.org
  • 3. ICW Developer ConferenceMay 5, 20094 Agenda Part 1 • IPF Introduction • Programming IPF • Demo Part 2 • OSGi Support • IPF Services • Demos Part 3 • Outlook
  • 4. ICW Developer ConferenceMay 5, 20095 IPF Introduction (1/5) Framework for implementing integration logic • Healthcare domain • General-purpose Platform to deploy and run integration solutions • OSGi-based with IPF services in service registry • Embedded, standalone and distributed deployments Based on Apache Camel • Routing and mediation engine • Enterprise Integration Patterns (EIPs) • Domain-specific language (DSL)
  • 5. ICW Developer ConferenceMay 5, 20096 IPF Introduction (2/5) Project • Hosted at the Open eHealth Foundation • Open source under Apache License, Version 2 • Latest release – IPF 1.6.0 (April 2009) • http://gforge.openehealth.org/gf/project/ipf/ - Subversion repository - Release filesystem - Issue tracker - Mailing lists • http://repo.openehealth.org - Reference documentation - Contribution guidelines - Build server and build reports - Maven and OSGi bundle repository
  • 6. ICW Developer ConferenceMay 5, 20097 IPF Introduction (3/5) Technologies • Java and Groovy • Springframework • Apache ActiveMQ (optional) • „Camel components“ (for connectivity) Connectivity • Protocols (HTTP, SOAP, FTP, SMTP, MLLP ...) • Interfaces (JMS, JPA, JDBC ...) • More than 70 Camel (connectivity) components!
  • 7. ICW Developer ConferenceMay 5, 20098 IPF Introduction (4/5) Development • Focus on programming (internal DSL) • DSL is easy to extend • Platform is easy to extend • No graphical route designer • ... IPF applications @ ICW • Medical Service Bus (MSB) • IHE profiles (PIX, PDQ, XDS) • Device connectivity server (DCS) • LifeSensor adapter (LSA) • IPF inside eHF • ...
  • 8. ICW Developer ConferenceMay 5, 20099 IPF Introduction (5/5) Apache Camel IPF Core HL7 support CDA support IHE support Code mapping Large message support Event infrastructure OSGisupport Developmenttools Flow management Managementconsoles System overview Core processors Performance testsupportPart of presentation and demos
  • 9. ICW Developer ConferenceMay 5, 200910 Programming with Camel Overview • Components Connectivity to external systems or resources • Endpoints Send/receive messages to/from external systems • Processors Transform, validate, filter, route, etc. messages • Routes Endpoints connected by processors using DSL Route example HTTP Endpoint (inbound) HTTP Endpoint (outbound) XPath Filter from("jetty:http://0.0.0.0:8090/subscribers") // inbound HTTP endpoint .filter().xpath("/person[@name='Martin']") // XPath filter .to("http://localhost:8080/log"); // outbound HTTP endpoint Camel DSL (Java)
  • 10. ICW Developer ConferenceMay 5, 200911 Programming with IPF Overview • All Camel features available • Dynamic language support (Groovy) • DSL extension mechanism (Groovy meta-programming) • Predefined DSL extensions (Contribution from modules) Route example ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator from('jetty:http://0.0.0.0:8090/admissions') // inbound HTTP endpoint .unmarshal().ghl7() // HL7 parser .validate().ghl7() // HL7 validator .filter {it.in.body.PID[8].value == 'F'} // HL7 filter .to('http://localhost:8080/log') // outbound HTTP endpoint IPF DSL (Groovy)
  • 11. ICW Developer ConferenceMay 5, 200912 Demo Implement example route starting from scratch • HTTP endpoints • HL7 validation • HL7 filtering • HL7 transformation ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator HL7 Transformer
  • 12. ICW Developer ConferenceMay 5, 200913 Agenda Part 1 • IPF Introduction • Programming IPF • Demos Part 2 • OSGi Support • IPF Services • Demos Part 3 • Outlook • Q&A
  • 13. ICW Developer ConferenceMay 5, 200914 OSGi Support (1/3) IPF components are OSGi bundles • Deployable to any OSGi R4 platform • Tested with Eclipse Equinox 3.4.1 IPF bundles register platform services • Flow manager, mapping service ... • Consumed by IPF applications IPF extender bundles activate DSL extensions • DSL extensions contributed by platform and application bundles
  • 14. ICW Developer ConferenceMay 5, 200915 OSGi Support (2/3) Technologies • Eclipse Equinox 3.4.1 • Spring Dynamic Modules (DM) Tooling • maven-bundle-plugin to generate MANIFEST.MF • Eclipse Plugin Development Environment (PDE)
  • 15. ICW Developer ConferenceMay 5, 200916 OSGi Support (3/3) IPF runtime • OSGi platform for IPF applications
  • 16. ICW Developer ConferenceMay 5, 200919 Implement example route as IPF OSGi application • Two OSGi bundles • Deploy to IPF runtime • Change service implementation at runtime OSGi Service Registry Demo ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator HL7 Transformer Proxy Processor route bundle service bundle
  • 17. ICW Developer ConferenceMay 5, 200920 Flow management (1/2) Purpose • Monitor messages processed by IPF applications • Support manual redelivery (replay) of messages Monitoring • Successful flows • Failed flows • Active flows • Flow duration • Message content • ... Replay • Recovery from delivery failures • Recovery from system failures • Recovery of application state • ... Complements automated (failure) recovery mechanisms
  • 18. ICW Developer ConferenceMay 5, 200921 Flow management (2/2) User interfaces • Any JMX client - JConsole - ... • Platform manager - Eclipse RCP application
  • 19. ICW Developer ConferenceMay 5, 200922 Enable flow management for example route OSGi Service Registry Demo ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator HL7 Transformer Proxy Processor route bundle service bundle platform-camel-flow bundle Flow Manager B E Replay Strategy Flow Manager D
  • 20. ICW Developer ConferenceMay 5, 200923 Message Buffering for Delivery Failure Recovery Compensate unavailability of destinations • Automated redelivery of messages • Number of redelivery attemps given by redelivery policy Implemented with transacted JMS queue • Transaction rolled back if destination unavailable • Transaction rollback causes message redelivery Manual replay of messages using flow manager • When automated redelivery gives up
  • 21. ICW Developer ConferenceMay 5, 200924 Add a message buffer to example route OSGi Service Registry Demo ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator HL7 Transformer Proxy Processor route bundle service bundle platform-camel-flow bundle Flow Manager B E Replay Strategy Flow Manager JMS Queue camel- activemq JMS Component Proxy D osgi-config-jms bundle
  • 22. ICW Developer ConferenceMay 5, 200925 Mapping Service Mapping between codes from different code systems • Often needed for HL7 message processing • Gender codes, encounter type codes ... Default mapping service • Accessed via mapping DSL • Configurable with mapping tables
  • 23. ICW Developer ConferenceMay 5, 200926 Demo mappings = { gender ( F : 'W', (ELSE) : { it } ) } // Extension to java.lang.String assert 'F'.mapGender() == 'W' // Extension to HL7 DSL assert msg.PID[8].mapGender() == 'W' Mapping definition Mapping service usage Gender code mapping
  • 24. ICW Developer ConferenceMay 5, 200927 Implement code mapping for example route OSGi Service Registry Demo ? HTTP Endpoint (inbound) HTTP Endpoint (outbound) HL7 Filter HL7 Validator HL7 Transformer Proxy Processor route bundle service bundle platform-camel-flow bundle Flow Manager B E Replay Strategy Flow Manager JMS Queue camel- activemq JMS Component D osgi-config-jms bundle Mapping Service Mapping Definition modules-hl7 bundle Bidi Mapping Service mapping fragment use via DSL
  • 25. ICW Developer ConferenceMay 5, 200928 Resources Demo source code • http://repo.openehealth.org/sites/ipf/demo/20090505/demo-osgi.zip IPF runtime with demo bundles • http://repo.openehealth.org/sites/ipf/demo/20090505/demo-runtime.zip
  • 26. ICW Developer ConferenceMay 5, 200929 Agenda Part 1 • IPF Introduction • Programming IPF • Demos Part 2 • OSGi Support • IPF Services • Demos Part 3 • Outlook • Q&A
  • 27. ICW Developer ConferenceMay 5, 200930 Outlook (1/4) DSL for HL7v3 messages and CDA/CCD documents // Create a CDA builder CDABuilder builder = new CDABuilder() // Create a new CDA document def document = builder.build { clinicalDocument { id(root:'2.16.840.1.113883.19.4', extension:'c266') code( code:'11488-4', codeSystem:'2.16.840.1.113883.6.1', ... ) title('Good Health Clinic Consultation Note') recordTarget { ... } ... } ... } // Write document XML to stdout System.out << document
  • 28. ICW Developer ConferenceMay 5, 200931 Outlook (2/4) DSL for implementing IHE actor interfaces and transactions from('ihe:xds.b:iti-41?port=8080') .process { exchange -> def document = exchange.in.body // do further document processing here ... } // communicate with your document management system .to('http://...') // notify about availability of new document .to('ihe:nav:iti-25:?to=martin@openehealth.org')
  • 29. ICW Developer ConferenceMay 5, 200932 Outlook (3/4) IPF as a Service • Central operation of IPF runtime and applications • High-availability and scalability are part of service • IPF application deployment via IPF Eclipse plugins • Research in progress on scalable data stores • Experiments with IPF on Google AppEngine
  • 30. ICW Developer ConferenceMay 5, 200933 Outlook (4/4) Performance testing framework • Instrumentation DSL • Processing statistics Grails integration • IPF plugin for Grails IPF on ICW connector • Prototype exists
  • 31. Thank you for your attention! martin.krasser@icw.de