Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT...

21
www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc

Transcript of Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT...

Page 1: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com

1

XML Web ServicesPractical Implementations

Bob SteemsonProduct Architect

iSOFT plc

Page 2: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com2

THE HEALTH iNNOVATOR

Introduction

i.Express Systems Integration (ESI)

i.Express CHI Interface

National Programme for Information Technology

Questions

Page 3: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com3

THE HEALTH iNNOVATOR

i.Express Systems Integration

Modern external interface to i.Express

Based on XML and Web Services

Builds on existing i.Express business objects and Systems Integration Toolkit (SIT)

Allow services to be added incrementally

Flexible configuration (based on XML)

Page 4: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com4

THE HEALTH iNNOVATOR

Support for Trigger Messages

“Pull” service available now

“Push” service under development (v12)

Two possible data formats– Current data at the time of requesting– Before and after images of data at the time of event– Both utilise same code as related enquiry services

Page 5: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com5

THE HEALTH iNNOVATOR

Web Server(IIS)

RequestHandlers

Express Systems Integration Architecture

DatabaseVB

ObjectsASP

PagesBrowser(IE5.5)

ESIFramework

RequestHandlersRequest

HandlersSOAP

3rd PartyApplication

Trigger LogLog

Handler

Page 6: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com6

THE HEALTH iNNOVATOR

ESI Architecture ESI Framework

– Single Entry Point passing credentials, target account, interface name and request type

– Input and output data transmitted as XML– Security, Validation, Transformations, Lookups, Exceptions– Dynamically Configured using XML Files

Request Handlers– Called from framework using exposed interfaces – Tightly coupled to Express Business Objects– Handlers can call other services internally– New services added as required– Special handler for trigger log messages

ESI Unit Test Suite– Tests all ESI services with a single report produced– Tests configured using XML files

Page 7: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com7

THE HEALTH iNNOVATOR

Schemas

Services use proprietary (iSOFT) schemas– Aligns services to the Express data set– Avoids issues with reference files and coded fields

Similar to NHSiS Schemas– Can use XSLT to match NHSiS schemas exactly

Many services are already available

Further services are being developed as required– i.Express v12 will integrate iSOFT Clinical Manager

Page 8: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com8

THE HEALTH iNNOVATOR

Tools Used

Developed using Visual Basic 6– MSXML v4 (Validating Parser, DOM, XSLT)– MS SOAP Toolkit v2 (ISAPI, WSDL, test clients)

ESI Web Services– Configuration held as XML documents

Interactive Test Program– Load a request document from disk– Edit request document if necessary– Call service and display response

Integrated Test suite– Tests defined as XML documents– Tests may be constructed from sub-tests

Page 9: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com9

THE HEALTH iNNOVATOR

What would I change?

Pass request and response documents as DOM elements rather than strings

Further separate security credentials from other parameters

Develop a GUI configuration utility

Page 10: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com10

THE HEALTH iNNOVATOR

i.Express CHI Interface

Web Service client to access external Web Service

Web Service proxy accessed from ASP pages

Maintains configuration and logon state information on host database

Automatically logs on as required

Page 11: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com11

THE HEALTH iNNOVATOR

i.Express CHI InterfaceArchitecture

ASPPage

Configuration“Factory”

Creates Configuration& State

Information

Reads

RequestMessage

Write

s

ConfigurationObjects

Creates

CHI Proxy

ResponseMessage

Reads

SOAP Toolkit CHI ServiceNHS Net

NHS Net

Page 12: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com12

THE HEALTH iNNOVATOR

Tools Used

Developed using Visual Basic 6 and ASP– MSXML v4 (Validating Parser, DOM, XSLT)– MS SOAP Toolkit v3 (SOAP client)

Uses XSLT to convert from and to external XML– Simplifies serialisation and deserialisation

Simple Emulator for test purposes– Written using VB6 and MS SOAP Toolkit– .NET wrapper to solve namespace issues

Database components written in Data/Basic

Configuration using ASP pages

Page 13: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com13

THE HEALTH iNNOVATOR

What would I change?

Should have tested over HTTPS in-house– Everything worked, except that the server certificate

was loaded in the wrong store– Difficult to diagnose on-site

Emulator was a bit too simple– Namespaces issue was only apparent late in

development

Page 14: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com14

THE HEALTH iNNOVATOR

National Program for IT - Requirements

Interfaces to existing laboratory application

Connect to integration hub using web services

Supports HL7 v3 (XML) messaging

Applications use “flat file” interface

Needed yesterday!

Page 15: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com15

THE HEALTH iNNOVATOR

National Programme for IT - Solution

.NET Web service to accept request from hub with HL7 message and write details as flat file

.NET NT service to monitor for flat file, convert data to HL7 results message and pass to hub web service

Make use of .NET XML Support where possible– Automatic creation of classes from XSD Schema– Object serialisation and de-serialisation using

XmlSerializer class– Builds on ideas developed for CHI Interface

Page 16: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com16

THE HEALTH iNNOVATOR

Laboratory SystemWrappers

IntegrationHub

.NET WebService

.NET NTService

OrderFile

ResultsFile

LaboratorySystem

XMLOrder

XMLOrder

SOAP

FlatFileOrder

FlatFileOrder

Writes FlatFileOrder

FlatFileOrder

Reads

FlatFileResults

FlatFileResults

Write

sFlatFileResults

FlatFileResults

ReadsXMLResults

XMLResults

SOAP

Page 17: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com17

THE HEALTH iNNOVATOR

Development – Order Message

Start with HL7 v3 message specified by NHS IA

Create XSL to extract relevant data into a flatter XML document with no namespaces

Create an XSD schema to describe XSL output

XSD.EXE creates C# message classes from the XSD

Write additional C# code:– Apply XSLT to input document– Use XmlSerializer to read transformed XML into

message– Extract data from message objects and write to flat file

Page 18: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com18

THE HEALTH iNNOVATOR

Development – Results Message

Create XSD schema for flatter XML document with results data

Create XSL to transform this into HL7 v3 format specified by NHS IA

XSD.EXE creates C# message classes from the XSD

Write C# code– Read data and initialise message objects– Use XmlSerializer to serialise these as XML– Apply XSLT to generate HL7 v3 output

Page 19: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com19

THE HEALTH iNNOVATOR

Tools Used

Visual Studio .NET 2003– C# programming language - could have used VB.NET– Standard web service support– Standard web services client– XSD.EXE to generate message classes– Standard XML support classes including

XmlSerializer

XSLT Used to transform to and from HL7 v3– Internal “flatter” XML that can be automatically

serialised and deserialised

Page 20: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com20

THE HEALTH iNNOVATOR

Summary

Three different implementations of web services

Show both server and client ends

Both VB6 and .NET (C#) development

ESI – designed for future extensibility

CHI Interface – limited scope to handle small number of request types

NPfIT – rapid development requirements

Page 21: Www.isoftplc.com 1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.

www.isoftplc.com21

THE HEALTH iNNOVATOR

Questions

Contact Details

[email protected]