VistA SOA Services VistA Service Assembler (VSA) Conceptual and Technical Overview ESS Architecture Workgroup August 2013 VA Healthcare SOA “One of the major focuses of VA system integration is the healthcare domain.” “The majority of VA healthcare computing involves VistA and applications integrated with VistA.” • The VA healthcare SOA challenge— – Efficiently expose existing VistA methods and data – Decouple consuming systems from the implementation details of VistA – Solve the “organizational gap” of coding multiple technologies VistA SOA Services 2 Common Legacy SOA Interpretations VistA Encapsulation / Encasement HealtheVet VistA Notes Service Ordering Service Rx Service CP&E Service Consumers Atomization / Re-Hosting – 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 through middleware layer MDWS/VIA VistA Notes Rx Ordering Consumers CP&E VistA SOA Services 3 Providing a Better Way: VistA as an SOA service provider • Leverage proven assets – Existing application methods, data, application integration methods and governance – ‘Provider application’ SME and technical knowledge and documentation • Improve management of the IT solution (development and sustainment) • VistA applications and services become – Economically extensible, maintainable and individually replaceable – VSA generated VistA SOA services are fully compliant with SOA architecture and compatible with VA SOA infrastructure VistA SOA Services 4 VistA SOA Service Formats • Legacy VistA SOA compatible service designs – HL7 messaging • Mature VA implementation • Data model driven – Web Services • Offer various efficiencies • Suitable for certain integrations • “Composable” as coarse grained functionality VSA is focused on the creation of VistA based web services to support the implementation of SOA VistA SOA Services 5 The VistA Service Assembler (VSA) Solution • Provides both a technical and organizational solution – Technical solution • • • • Legacy VistA integration compatibility Technical abstraction across disparate technical environments SOA implementation integration and compliance Leveraging of existing VistA “service assets” – Organizational solution • • • • • A solution that crosses technical boundaries Accommodates staff skill set / technical orientation limitations Provides standardized SOA implementation direction Reduces investment, improves ‘time to market’ Minimizes organizational impact related to SOA implementation VistA SOA Services 6 Paradigm Shift: VistA as an SOA Service Provider Encased Leveraged VistA is encased as a system to isolate and then replace in the future VistA packages are leveraged and extended as building blocks for legitimate SOA services Adapter Integration Service Integration ‘Consumer applications’ are integrated with adapters that encase VistA ‘Consumer applications’ are integrated with SOA services exposed by ‘provider applications’ Rip and Replace Plug and Play Legacy VistA is encased with adaptors as a monolithic system, then replaced VistA applications expose SOA services, allowing application-by-application replacement Fine Grained Coarse Grained Chattiness due to business logic in adaptors, fine grained VistA methods All business logic positioned in VistA applications to produce coarse grained service logic modules Built from ‘scratch’ Built from existing components SOA services, environment and governance built “from the ground up” Existing VistA methods and data used to build SOA services, reducing development, testing, etc. VistA SOA Services 7 Major Elements of the Solution • VistA SOA service infrastructure – – – – VistA Service Assembler Wizard Service descriptors database M environment components for ‘service’ execution Federating platform and federating logic • VistA SOA ‘reference implementation’ services – Per ‘service needs’ of VA stakeholder initiatives • Definition of Policy and Process – VSA infrastructure distribution – VistA SOA service distribution VistA SOA Services 8 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 VistA SOA Services 9 VistA Service Assembler (VSA) High Level 1 2 VistA A M Developer or System Integrator identifies existing or new M routine(s) to be called by a new or existing VistA SOA Service. 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 4 A new VistA SOA Service is auto-generated and published. 5 Consuming Applications can interface with the new VistA SOA Service directly (NEAR TERM ONLY). VistA SOA Federating Services Platform - Regional (Java) 2 VistA Service Assembler Wizard A VistA SOA Service descriptor is generated and stored in the VistA SOA Federating Service Platform. 3 4 VistA Service Assembler SOA Service Descriptors VSA Package Site Specific VistA M Routine Calling Adapter (VMRCA) Core ESB VistA SOA Services VistA SOAbyServices (generated the (Websphere Registry and Repository) (Websphere Message Broker) (generated by the Assembler Wizard) Assembler Wizard) VistA SOA Service Registry Entries VistA SOA Service Proxies To-be Integration 6b Consuming Applications Consumers 6a 5 Near Term Integration Routines (generated by the Assembler Wizard) Registry and Repository 6a M Code and Data All Other Packages 6 Enterprise Service Bus (ESB) M Hosting Platforms MUMPS Caché Hosting Platform (Intersystems or open source (Intersystems or Open platform (ie. GT.M),Caché 130+ instances Source Platform (ie. in production in Graystone)) VA) Private Interface Site Specific VistA M Routine Calling Service (VMRCS) 6 TO BE – The ESB is deployed to production 6a Registry entries and service proxies created for the VistA SOA Services. 6b 1 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. 10 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. VistA Service Assembler 11 VistA Service Assembler Wizard • • • • • • • Web application accessible via browser Define Service name Define Operations Federation Site lookup is selectable Used in design and development sandbox VistA SOA Service operation payload transformations include XML, JSON transforms VistA Service Assembler 12 VistA SOA Services Runtime View Enterprise Service Bus (ESB) VistA Site 1 M Code and Data M Routines for Progress Notes Registry and Repository (Websphere Registry and Repository) Progress Notes Service Registry Entry Outpatient Meds Service Registry Entry Allergies Service Registry Entry VistA SOA Federating Services Platform Regional (Java) Progress Notes Service Outpatient Meds Service Consuming Consumers Applications Core ESB (Websphere Message Broker) Allergies Service M Routines for Outpatient Meds M Routines for Allergies VMRCA VMRCS Site N M Code and Data M Routines for Progress Notes M Routines for Outpatient Meds Progress Notes Service Proxy M Routines for Allergies Outpatient Meds Service Proxy VMRCA Allergies Service Proxy VMRCS VistA Service Assembler 13 VSA National Production Deployment Configuration Region 1 RDC 2 Region 2 RDC 2 Region 3 RDC Region 4 RDC WSRR WSRR WSRR WSRR VistA SOA Service Registry Entries VistA SOA Service Registry Entries VistA SOA Service Registry Entries VistA SOA Service Registry Entries WMB WMB WMB WMB VistA SOA Service Proxies VistA SOA Service Proxies VistA SOA Service Proxies VistA SOA Service Proxies VistA VistA VistA VistA VistA SOA Federating Services Platform VistA SOA Federating Services Platform VistA SOA Federating Services Platform VistA SOA Federating Services Platform 1 VistA SOA Services VistA SOA Services 1 2 VistA SOA Services VistA SOA Services 1 1 VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services Site 1 to M Site M+1 to N Site N+1 to O Site O+1 to P M Code and Data M Routines M Code and Data M Routines M Code and Data M Routines M Code and Data M Routines VMRCA VMRCA VMRCA VMRCA VMRCS VMRCS VMRCS VMRCS Federated VistA SOA Services communicate with each other to produce a national view of information. WSRR = WebSphere Registry and Repository WMB = WebSphere Message Broker ESB = Enterprise Service Bus SOA = Service Oriented Architecture VMRCA = Site Specific Generic Mumps Routine Calling Adapter VMRCS = Site Specific Generic Mumps Routine Calling Service VistA Service Assembler 2 2 Chatty communication within an RDC is optimized on high speed network. 14 VSA Deployment and Rollout System Component VA Deployment and Rollout Mechanism 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 No Issues Foreseen 15 VSA Security Integration VistA Site 1-N Enterprise Service Bus (ESB) M Code and Data M Routines Supporting VistA SOA Services Registry and Repository (Websphere Registry and Repository) https Ensures user authentication and audit logging. VistA SOA Service Registry Entries VistA SOA Federating Services Platform Consuming Applications Core ESB https (Websphere Message Broker) https VistA SOA Services VistA SOA Service Proxies https Authorization is handled by application M routines. VMRCA In process communication VMRCS VistA Service Assembler 16 VA/Open Source Integration • VA to Open Source Release • Open Source Integration into VA – VistA SOA Service artifacts released to OSEHRA – M patches including VMRCA released to OSEHRA – VMRCS code released to OSEHRA VistA SOA Services – Open Source VistA SOA Service artifacts validated and approved by VA – M patches are validated and approved by VA – OSEHRA governs name spacing 17 VSA Technology Stack (VA vs. Open Source) System Component VA Technology Stack Open Source Technology Stack 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 VistA Service Assembler VA/Open Source Integration Issues? 18 Summary • VSA solution is cost effective – VSA Wizard enables rapid assembly of existing VistA functionality as SOA compliant “services” by non-programmers – Provides a rapid development and incremental approach • VSA solution has low organizational impact – Crosses technical boundaries (i.e. MUMPS and Java) – Accommodates current staff skill set/technical orientation limitations • VSA solution has minimal vendor dependence – Expands VistA extensibility and ‘open source’ product development opportunities. – Enables open source technology integration (Java Spring Framework and GT.M). A minimal Caché dependent gateway implementation can be ported to EWD in support of the open source community. When EWD is deemed TRM compliant in the future that implementation can ported within the VA to EWD. VistA Service Assembler 19 Current Status • High level architectural design artifacts have been created and reviewed by ASD architects and the VSA development team. • Initial development of VSA tooling (service generation wizard) is underway. • Roadmap and schedule for VSA releases is being developed. VistA Service Assembler 20 Questions / Comments VistA SOA Services 21