vista soa services vista service assembler (vsa) conceptual and technical overview

26
VistA SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview VSA Development Team April 2014

Upload: lin

Post on 24-Feb-2016

97 views

Category:

Documents


0 download

DESCRIPTION

VistA SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview. VSA Development Team April 2014. The VSA “Narrow Focus”. “How is VistA supposed to integrate with external systems / applications in the Service Oriented Architecture (SOA) environment?”. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

 VistA SOA ServicesVistA Service Assembler (VSA)

Conceptual and Technical Overview

VSA Development TeamApril 2014

Page 2: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 2

The VSA “Narrow Focus”

“How is VistA supposed to integrate with external systems / applications in the Service Oriented Architecture (SOA) environment?”

Page 3: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 3

Common Legacy SOA Interpretations

– Major retooling and investment– Subjective interpretation– Inability to anticipate future 

consumers– Tendency to build too much, to 

build too little

– Perpetuates shortcomings and dependencies on legacy systems

– Inhibits individual application replacement

– Granular logic, “chatty” communications exacerbated by the middleware layer

VistA

HealtheVet VistANotes Service

Rx Service

Ordering Service CP&E 

ServiceConsumers

Atomization / Re-Hosting

Encapsulation / Encasement

MDWS/VIA

Consumers

VistANotes

RxOrdering

CP&E

Page 4: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 4

VSA precepts

VistA Service Assembler (VSA) is not an “adaptor”. It positions VistA as a direct provider of SOA web services. This is a paradigm shift in VistA system integration approach

VSA is not a collection of ‘services’, it is a set of utilities that facilitate the structured creation of VistA-based, SOA compatible services

With minimal technical orientation, VSA facilitates the automated creation of VistA based web services to support system integration and the implementation of SOA in the VA

Page 5: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 5

VSA Objectives and OutcomesTechnical—• Position VistA as a direct provider of SOA services

– Maintain/enhance existing security, auditing and role based access– Ensure implementation of the ‘user identity communication’ design pattern, 

generalizable for all VistA connectivity middleware solutions– Maintain VistA data integrity and VistA application-based provision/interpretation of data – Ensure SOA architectural principles (e.g. authoritative services, non-redundancy, loose 

coupling)– Standardize VistA SOA service design to support improved maintainability and 

sustainability

Organizational—• Facilitate effective and reliable VistA SOA development

– Simplify organizational orientation related to development that involves both legacy VistA and OO environments

– Facilitate VistA SOA service development efficiency through automation– Enable community development participation and VSA product utilization (e.g. ‘open 

source’)

Page 6: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 6

Major Elements of the VSA Solution

• VistA SOA service infrastructure– VistA Service Assembler Wizard– Service descriptors database– Federating platform and federating logic– M environment components for ‘service’ execution

• Definition of Policy and Process– VSA infrastructure distribution– VistA SOA service distribution

• External component integration and implementation**– VistA SOA ‘reference implementation’ services– VSA “Pre/Post” action logic components**Collaboration with/contribution by external groups

Page 7: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Enterprise Service Bus (ESB)

Registry and Repository(Websphere Registry and 

Repository)

Core ESB(Websphere Message 

Broker)

VistA

VistA SOA Federating Services Platform - Regional

(Java)MUMPS Hosting Platform (Intersystems Caché or Open Source 

Platform (ie. Graystone))

VistA Service Assembler (VSA) High Level

7

VistA Service Assembler Wizard

VistA SOA Service Registry Entries

VistA SOA Service Proxies

ConsumersConsuming Applications

‘Open Source’ connectivity

VA integration approach

VistA Service Assembler SOA Service Descriptors (generated by the Assembler 

Wizard)6

6a

1 A M Developer or System Integrator identifies existing or new M routine(s) to be called by a new or existing VistA SOA Service.

2 The M Developer  or System Integrator  executes the Assembler Wizard providing required information such as operation names, mumps routines to be called, and parameter mappings. 

3 A VistA SOA Service descriptor is generated and stored in the VistA SOA Federating Service Platform.

4 A new VistA SOA Service is auto-generated and published.

5 Organizations  using VSA as an ‘open source’ solution can engage VSA services directly if  SOA infrastructure (e.g. ESB) is not implemented.

VA integration  approach – ESB is deployed to production

Registry entries and service proxies created for the VistA SOA Services. 

6a

6b 66a

The Consuming Applications  integrate with the VistA SOA Service proxies published on the ESB and the direct connection to the VistA SOA Services published on VistA are retired.

6b

M Hosting Platforms (Intersystems Caché or open source platform (ie. GT.M), 130+ instances in 

production in VA)

M  Code and Data

All Other Packages

Routines

Site Specific VistA M Routine Calling Service 

(VMRCS)

13

2

VSA Package

Site Specific VistA M Routine Calling 

Adapter (VMRCA)VistA SOA Services(generated by the Assembler Wizard)

VistA SOA Services(generated by the Assembler Wizard)

4

5

Private Interface

Page 8: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Cons

umin

g Ap

plic

ation

s

VSA core logic

“Pre”logic

“Post”logic

“Pre”logic

“Post”logic

ESB /

eMI

VistAs&

RPCs

SOA Services Environment VistA M Environment

VSA “Pre/Post” Logic (Future Implementation)

5.1.3.

2.4.

6.7.8.

9.10.

Page 9: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 9

Solution Attributes• Cost Effective

– Able to rapidly expose broad VistA functionality as ‘services’– Rapid development and incremental approach– Minimal retooling of VistA applications or retraining developers– Low impact organizationally 

• Addresses SOA objectives– Security and system performance– Semantic and syntactic compatibility– Reusability and non-redundancy– System maintainability, sustainability and replaceability– Provides value before full SOA infrastructure is in place– Complete integration and compliance with SOA architecture

• Enables major consumers (e.g. mobile computing) • Alleviates ‘vendor dependence’ concerns while exponentially 

expanding VistA extensibility and ‘open source’ product development opportunities

Page 10: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA Service Assembler 10

Current Status• VSA ‘proof of concept’ delivered December 2014• VSA ‘design time’/’run time’ components are operational, 

development underway to complete “essential” functionality features and prototype deployment

• Major dependencies include ESB/eMI implementation, ‘user identity’ design pattern (incl. ‘user provisioning’), multiple “user” types, ‘consuming application’ authentication, service consumption governance, etc.

• VSA Phase II (Feb. – January 2015)—• Increment 1 – Development focused, initial implementation• Increment 2 – Implementation focused, remaining development

• Collaboration with ConnectedHealth effort• Implementation of actual business use cases related to VPS Kiosk, etc.• Non-production/”production ready” implementation of VSA ‘run time’ capabilities 

targeted NLT summer 2014

Page 11: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Navigate to a directory location and select or create a Service Descriptor file.

Page 12: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview
Page 13: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview
Page 14: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Service Descriptor File<?xml version="1.0" encoding="UTF-8" standalone="yes"?><serviceDescriptor xmlns="http://vsa.med.va.gov/schema/service-descriptor-0.0.1">    <serviceName>ZzMkoMyService</serviceName>    <serviceType>soap</serviceType>     <version>1.0.1</version>    <serviceNamespace>http://gov.va.med.zzmko</serviceNamespace>    <javaPackage>zzmko.med.va.gov</javaPackage>     <operation>        <name>tiuLongListClinprocTitles</name>        <rpcName>TIU LONG LIST CLINPROC TITLES</rpcName>        <responseType>json</responseType>        <parameter>            <name>from</name>            <type>string</type>        </parameter>        <parameter>            <name>dir</name>            <type>string</type>        </parameter>    </operation></serviceDescriptor>

Page 15: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Testing the Deployed Service

Page 16: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Test Results

Page 17: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Example of a RESTful service invoking the same RPC

Page 18: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 18

Questions / Comments 

Page 19: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA SOA Services 19

Backup Slides

Page 20: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

Paradigm Shift:VistA as an SOA Service Provider

VistA SOA Services 20

EncasedVistA is encased as a system to isolate and then replace in the future

Adapter Integration‘Consumer applications’ are integrated with adapters that encase VistA 

Fine GrainedChattiness due to business logic in adaptors, fine grained VistA methods

Built from ‘scratch’SOA services, environment and governance built “from the ground up”

Rip and ReplaceLegacy VistA is encased with adaptors as a monolithic system, then replaced

LeveragedVistA packages are leveraged and extended as building blocks for legitimate SOA services 

Service Integration‘Consumer applications’ are integrated with SOA services exposed by ‘provider applications’

Coarse GrainedAll business logic positioned in VistA applications to produce coarse grained service logic modules 

Built from existing componentsExisting VistA methods and data used to build SOA services, reducing development, testing, etc.

Plug and PlayVistA applications expose SOA services, allowing application-by-application replacement

Page 21: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA Service Assembler 21

VistA SOA Services Runtime ViewEnterprise Service Bus (ESB)

Registry and Repository(Websphere Registry and 

Repository)

Core ESB(Websphere Message Broker)

Progress Notes ServiceRegistry Entry

Progress Notes Service Proxy

ConsumersConsuming Applications

Outpatient Meds ServiceRegistry Entry

Allergies ServiceRegistry Entry

Outpatient Meds Service Proxy

Allergies ServiceProxy

VistA

VistA SOA Federating Services Platform - 

Regional(Java)

Progress Notes Service

Outpatient Meds Service

Allergies Service

Site 1

M  Code and DataM Routines  for Progress Notes

VMRCS

VMRCA

M Routines  for Outpatient Meds

M Routines  for Allergies

Site N

M  Code and DataM Routines  for Progress Notes

VMRCS

VMRCA

M Routines  for Outpatient Meds

M Routines  for Allergies

Page 22: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VSA National Production Deployment Configuration

VistA Service Assembler

1 Federated VistA  SOA Services communicate with each other to produce a national view of information.

2 Chatty communication within an RDC is optimized on high speed network. 22

WSRR = WebSphere Registry and RepositoryWMB = WebSphere Message BrokerESB = Enterprise Service BusSOA = Service Oriented ArchitectureVMRCA = Site Specific Generic Mumps Routine Calling AdapterVMRCS = Site Specific Generic Mumps Routine Calling Service

Region 1 RDC

VistA

WSRR

VistA SOA Service Registry Entries

WMBVistA SOA Service 

Proxies

2

VistA SOA Federating Services Platform

VistA SOA ServicesVistA SOA Services

Site 1 to M

M  Code and DataM Routines

VMRCS

VMRCA

Region 2 RDC

VistA

WSRR

VistA SOA Service Registry Entries

WMBVistA SOA Service 

Proxies

2

VistA SOA Federating Services Platform

VistA SOA ServicesVistA SOA Services

Site M+1 to N

M  Code and DataM Routines

VMRCS

VMRCA

Region 3 RDC

VistA

WSRR

VistA SOA Service Registry Entries

WMBVistA SOA Service 

Proxies

2

VistA SOA Federating Services Platform

VistA SOA ServicesVistA SOA Services

Site N+1 to O 

M  Code and DataM Routines

VMRCS

VMRCA

Region 4 RDC

VistA

WSRR

VistA SOA Service Registry Entries

WMBVistA SOA Service 

Proxies

2

VistA SOA Federating Services Platform

VistA SOA ServicesVistA SOA Services

Site O+1 to P

M  Code and DataM Routines

VMRCS

VMRCA

1 1 1

Page 23: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA Service Assembler 23

VSA Security Integration

Enterprise Service Bus (ESB)

Registry and Repository

(Websphere Registry and Repository)

Core ESB(Websphere Message 

Broker)

VistA SOA Service Registry Entries

VistA SOA Service Proxies

Consuming Applications

VistA

VistA SOA Federating Services Platform

VistA SOA Services

Site 1-N

M  Code and Data

VMRCS

VMRCA

M Routines Supporting VistA SOA Services

https

httpshttps

https

Ensures user authentication and audit logging.

Authorization is handled by application M routines.

In process communication

Page 24: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA Service Assembler 24

VistA Service Assembler (VSA) High Level Component Descriptions

VSA Component Description

VistA Service Assembler Wizard Java web application - auto generates VistA SOA Services

VistA SOA Federating Services Platform Java application server such as Tomcat or WebLogic, to which VistA SOA Services are deployed

M Hosting Platform A runtime system supporting ANSI standard M such as Intersytems Caché or GT.M

VistA SOA Service An SOA compliant service generated by the VistA Service Assembler Wizard with  federating capabilities. Implemented in the Java Spring Framework.

VistA Service Assembler SOA Service Descriptors 

Meta data XML document created by the VistA Service Assembler Wizard used to auto generate VistA SOA Services

Site Specific VistA M Routine Calling Service (VMRCS)

A REST/SOAP web service deployed to each site that delegates requests to run M routines to VMRCA. Implemented in vendor specific technologies..

Site Specific VistA M Routine Calling Adapter (VMRCA)

VSA M routines that handle M routine calling

VistA SOA Service Registry Entry Entry in the Registry and Repository used to govern a specific VistA SOA Service

VistA SOA Service Proxy Proxy on the ESB used to abstract the service endpoint.

Page 25: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VSA Deployment and RolloutSystem Component VA Deployment and Rollout Mechanism No Issues Foreseen

Site Specific VistA M Routine Calling Adapter (VMRCA)

Standard VA M patch release process via KIDS VSA Site Specific Generic Mumps Routine Calling Service (VMRCS)

VMRCS is deployed in its own Caché database file at each site deployed to a region. 

M routines from other packages

Standard VA M patch release process via KIDS VistA Service Assembler Wizard and Service Descriptors

Deployed to development and not production. Service descriptors are versioned in source control.

VistA SOA Services Each service is packaged as a WAR file. The service provider promotes a service  through development, test and production environments.

Service Registry Entries and Proxies

ESB registry entry and proxy creation processes defined by operations are followed.

VistA Service Assembler 25

Page 26: VistA  SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview

VistA Service Assembler

VSA Technology Stack (VA vs. Open Source)System Component VA Technology Stack Open Source Technology Stack VA/Open Source 

Integration Issues?

VSA Site Specific Generic Mumps Routine Calling Adapter (VMRCA)

ANSI Standard MUMPS hosted on Caché 

ANSI Standard MUMPS hosted on Caché or GT.M

M routines from other packages

ANSI Standard MUMPS hosted on Caché 

ANSI Standard MUMPS hosted on Caché or GT.M

VistA SOA Services, VistA Service Assembler Wizard and Service Descriptors

Java/Spring Framework/Open Source Web Technologies deployed to WebLogic

Java/Spring Framework/Open Source Web Technologies deployed to Tomcat or JBoss

VSA Site Specific Generic Mumps Routine Calling Service (VMRCS)

Caché Server Pages (CSP) and Caché Objects hosted on Caché, CSP Gateway hosted on IIS

Enterprise Web Developer (EWD) hosted on Apache/IIS/CSP and Caché stack or on Node.js and GT.M stack

26