260 likes | 276 Views
Learn about VistA Service Assembler (VSA) enabling seamless integration in SOA environments with a focus on structured services creation and sustainability. Key features and benefits outlined.
E N D
VistA SOA ServicesVistA Service Assembler (VSA)Conceptual and Technical Overview VSA Development Team April 2014
The VSA “Narrow Focus” “How is VistAsupposed to integrate with external systems / applications in the Service Oriented Architecture (SOA) environment?” VistA SOA Services
Common Legacy SOA Interpretations Encapsulation / Encasement • 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 Atomization / Re-Hosting MDWS/VIA VistA Notes Consumers Rx Ordering CP&E HealtheVet VistA VistA Rx Service Notes Service Consumers Ordering Service CP&E Service VistA SOA Services
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 VistA SOA Services
VSA Objectives and Outcomes Technical— • 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 VistAapplication-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’) VistA SOA Services
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 VistA SOA Services
VistA Service Assembler (VSA) High Level 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. 1 M Hosting Platforms (IntersystemsCaché or open source platform (ie. GT.M), 130+ instances in production in VA) VistA SOA Federating Services Platform - Regional (Java) MUMPS Hosting Platform (IntersystemsCaché or Open Source Platform (ie. Graystone)) 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. 2 2 VistA Service Assembler Wizard M Code and Data A VistA SOA Service descriptor is generated and stored in the VistA SOA Federating Service Platform. 3 All Other Packages 4 A new VistA SOA Service is auto-generated and published. 3 1 VistA Service Assembler SOA Service Descriptors (generated by the Assembler Wizard) Organizations using VSA as an ‘open source’ solution can engage VSA services directly if SOA infrastructure (e.g. ESB) is not implemented. 5 Routines VSA Package 6 Enterprise Service Bus (ESB) Site Specific VistA M Routine Calling Adapter (VMRCA) 4 VistA SOA Services (generated by the Assembler Wizard) VistA SOA Services (generated by the Assembler Wizard) Registry and Repository (Websphere Registry and Repository) Core ESB (Websphere Message Broker) 6a 6a Consuming Applications Site Specific VistA M Routine Calling Service (VMRCS) Consumers VistA SOA Service Proxies VistA SOA Service Registry Entries Private Interface VA integration approach 6b 6 5 VA integration approach – ESB is deployed to production Registry entries and service proxies created for the VistA SOA Services. ‘Open Source’ connectivity 6a 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
VSA “Pre/Post” Logic (Future Implementation) SOA Services Environment VistA M Environment “Pre” logic “Pre” logic 3. 4. 1. Consuming Applications ESB / eMI 5. 2. VSA core logic VistAs & RPCs 6. 9. 10. 7. 8. “Post” logic “Post” logic
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
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 VistA Service Assembler
Navigate to a directory location and select or create a Service Descriptor file.
Service Descriptor File <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <serviceDescriptorxmlns="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>
Questions / Comments VistA SOA Services
Backup Slides VistA SOA Services
Paradigm Shift:VistA as an SOA Service Provider Encased VistA is encased as a system to isolate and then replace in the future Leveraged VistA packages are leveraged and extended as building blocks for legitimate SOA services Adapter Integration ‘Consumer applications’ are integrated with adapters that encase VistA Service Integration ‘Consumer applications’ are integrated with SOA services exposed by ‘provider applications’ Rip and Replace Legacy VistA is encased with adaptors as a monolithic system, then replaced Plug and Play VistA applications expose SOA services, allowing application-by-application replacement Fine Grained Chattiness due to business logic in adaptors, fine grained VistA methods Coarse Grained All business logic positioned in VistA applications to produce coarse grained service logic modules Built from ‘scratch’ SOA services, environment and governance built “from the ground up” Built from existing components Existing VistA methods and data used to build SOA services, reducing development, testing, etc. VistA SOA Services
Consuming Applications Consumers VistA SOA Services Runtime View Site N Site 1 Enterprise Service Bus (ESB) VistA M Code and Data M Code and Data M Routines for Progress Notes M Routines for Progress Notes Registry and Repository (Websphere Registry and Repository) M Routines for Outpatient Meds M Routines for Outpatient Meds VistA SOA Federating Services Platform - Regional (Java) M Routines for Allergies M Routines for Allergies Progress Notes Service Registry Entry VMRCA VMRCA Outpatient Meds Service Registry Entry VMRCS VMRCS Progress Notes Service Allergies Service Registry Entry Outpatient Meds Service Core ESB (Websphere Message Broker) Allergies Service Progress Notes Service Proxy Outpatient Meds Service Proxy Allergies Service Proxy VistA Service Assembler
VSA National Production Deployment Configuration Region 2 RDC Region 3 RDC Region 4 RDC Region 1 RDC 2 2 2 2 Site 1 to M Site O+1 to P Site M+1 to N Site N+1 to O WSRR WSRR WSRR WSRR M Code and Data M Code and Data M Code and Data M Code and Data VistA SOA Service Registry Entries VistA SOA Service Registry Entries VistA SOA Service Registry Entries VistA SOA Service Registry Entries M Routines M Routines M Routines M Routines VMRCA VMRCA VMRCA VMRCA WMB WMB WMB WMB VMRCS VMRCS VMRCS VMRCS 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 1 1 VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services VistA SOA Services 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 Chatty communication within an RDC is optimized on high speed network. Federated VistA SOA Services communicate with each other to produce a national view of information. 2 1 VistA Service Assembler
VSA Security Integration VistA Site 1-N Enterprise Service Bus (ESB) M Code and Data Registry and Repository (Websphere Registry and Repository) M Routines Supporting VistA SOA Services Ensures user authentication and audit logging. Authorization is handled by application M routines. https VistA SOA Service Registry Entries VistA SOA Federating Services Platform Consuming Applications https Core ESB (Websphere Message Broker) VistA SOA Services https VistA SOA Service Proxies VMRCA https In process communication VMRCS VistA Service Assembler
VistA Service Assembler (VSA) High Level Component Descriptions VistA Service Assembler
VSA Deployment and Rollout VistA Service Assembler
VSA Technology Stack (VA vs. Open Source) VistA Service Assembler