Upload
wso2
View
485
Download
1
Tags:
Embed Size (px)
Citation preview
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
How a complex Healthcare Protocol
can be Easily Handled by the WSO2 Platform
Alberto Lagna CTO Biznology srl
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
>apropos alberto.lagna
• Computer Science graduate, Telco master • CTO of Biznology • Working as software architect / team leader • Consulting on design and development of enterprise systems mainly
based on JavaEE and mobile • UML, XML, BPM expert • 20 years of working experience in Europe and USA • JUGTorino member • Promoting the use of free software and supporting the open source
movement
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
>apropos biznology.it
• Consulting Company • Defined a SOA at 360° approach:
– Methodology and tools – Reference Architecture – Communication – Integration and Program Management – Economical Goal and Result Measurement – Organization Model and Training Plans
• Because Applying the SOA approach is not ONLY using the right technology
Methodology and tools
Reference Architecture
Communication
Integration and Program Management
Economical Goal and
Result measurement
s
Organization Model and Training Plans
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Agenda
• Integration architecture • Description of the SOAP services • Same Business case on HL7 • Demo 1 • Need to have only 1 codeline • Solution • Demo2
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Adapter b
Adapter b
Adapter a
Integration Architecture
• Regional index for all the Health Record Systems of the hospitals
SOAP service A HL7 Service A
SOAP service B
SOAP service A
SOAP service B
Regional Index
��� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Intro to wso2 ESB and HL7
• Vanjikumaran Sivajothy of WSO2
*"
Glimpse of Modern Enterprises ๏ Disparate)Systems,)Services,)Protocols)
๏ Diverse)and)dynamic)business)requirements)
๏ No)single)vendor/solu;on))๏ On)premise/Cloud)solu;ons)))))
*"
*"
Point to Point/Spaghetti Integration
๏ Scalability,)maintainability,)troubleshoo;ng)nightmares.)))
*"
*"
ESB as the Integration Bus
๏ Conquering)integra;on)nightmares)with)WSO2)ESB)
*"
*"
Introducing WSO2 ESB
๏ A)lightweight,)high)performance)ESB)
๏ Comprehensive)REST,)SOAP,)WS+*)support))
๏ 100%)compliant)with)all)EIPs)(Enterprise)Integra;on)PaJerns))))
๏ Connectors)(Salesforce,)Twilio)and)many)more)))
๏ SAP,"FIX,"HL7)M)Domain)specific)solu;ons)
๏ Zero)Code/Configura;on)driven)))๏ Extensible)and)Scalable))
*"
*"
ESB Functional Components
*"
*"
Mediators
*"
*"
Sequences
*"
*"
Endpoints
*"
A)logical)en;ty)to)which)messages)can)be)sent)from)the)ESB)A)service)endpoint)reference)(EPR))A)JMS)queue)A)FIX)session)
))Various)opera;onal)and)QoS)constraints)can)be)engaged)on)an)endpoint)SOAP)version)WSMSecurity)
*"
Proxy Services
*"
*"
APIs
*"
*"
WSO2 ESB Architecture
*"
๏ A)messaging)standard)for)the)exchange,)integra;on,)sharing)and)retrieval)of)electronic)health)informa;on))
๏ Non)XML)๏ Human)readable)(ASCII))๏ Uses)segments)and)one)character)delimiters)๏ Widely)adopted)in)the)Health)Care)Informa;on)Services)Industry)
around)the)World))๏ Minimum)Lower)Layer)Protocol)
)
HL7"Message"Format"
๏ HL7)Feature)))๏ MLLP)based)Transport)))๏ HL7)Proxy)/)Endpoint))๏ Supports)HL7)2.x)Standard)Messages))๏ Transforma;on)
• HL7)EDI)(applica;on/ediMhl7))• XML)
)๏ HL7)Message)Valida;on)and)Conformance)Profile)Support)
HL7"Support"of"WSO2"ESB"
๏ HL7)Proxy))• MLLP)Transport))• Capable)of)listening)for)HL7)messages)
)๏ Incoming)messages)converted)into)SOAP)equivalent)
• Can)manipulate)HL7)message)using)all)available)ESB)mediators))๏ HL7)Endpoint))
• Capable)of)sending)messages)to)HL7)receivers))๏ Processing)HL7)messages)from)file)system)(using)VFS))
Exchanging"HL7"Messages"
��� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Complex Services
• A lot of services – Some of them deployed everywere – Some of them deployed only in some hospitals
• Some of them are really complex – With a LOT of information to exchange – With a LOT of (cross) check to be done
• To be sure that in the index we keep the right information associated to the right people
• To be sure that in the index we keep only right information
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Complex Services
• A lot of services
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Complex Services
• Some message payload is really complex
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Complex Services
• Some service business logic is really complex
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Complex Services
• Some service business logic is really complex
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Same Service on SOAP and HL7
• Some services need to be exposed using the SOAP or the HL7 protocol – Depending on the hospital preferred API – Carrying the same content – Implementing the same checks and business logic
• The solution: – Keep checks and business logic in the SOAP service – Keep only HL7 to SOAP (xsl) transformation in the HL7 service
Transformation logic Business logic
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Same Service on SOAP and HL7
• HL7 message
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Same Service on SOAP and HL7
• Equivalent SOAP message (automatically provided by wso2)
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Same Service on SOAP and HL7
• Transform HL7 XML into SOAP XML through XSL – See xsl
• Use xsl in proxy – See proxy code
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Demo
• in HL7 message => show steps through log • in soap message => show steps through log
���� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Adapter b
Adapter b
Adapter a
Integration Architecture
• Need to have only 1 codeline, 1 test env, regardless the deployment architecture
SOAP service A HL7 Service A
SOAP service B
SOAP service A
SOAP service B
Regional Index
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Test Adapter
Test environment
• Problem: – Need to have only 1 codeline, 1 test env, regardless the deployment
architecture
SOAP service A HL7 Service A
SOAP service B
Regional Index
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Test environment
• Solution: – Call ant script that does the replacements of placeholders
– Call pom to generate CARs
• 1 pom for every environment
service'
service'
val'x'placeholder'
val'x'placeholder'
service service'
service'
val'x'placeholder'
val'x'placeholder'
service
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Demo
• Create 1 CAR for a specific environment
����� ���#%!���� ��)� ��!�"��&�����%���#���#!%!�!����$��'��� ������'�%�����������%�!#��)���( !�!�'��%��
Questions and Answers
Alberto Lagna CTO Biznology srl [email protected]
• Thanks a lot