VistA Enterprise Refactoring

Download Report

Transcript VistA Enterprise Refactoring

VistA Service Backplane
Evolving VistA Open Architecture
Edward Ost
7/6/2015
Agenda
➜
Open Healthcare Platform
➜
VA Enterprise Architecture Alignment
➜
OSEHRA Reference Architecture
• Building upon VistA Evolution Plan
➜
Use Case Elaboration
© Talend 2013
Enterprise Transformation Strategy
➜
Apache OSS assures open architecture
➜
OSEHRA healthcare sponsors assures open marketplace
➜
Virtualized OSS integration layer and align refactoring to EA
Harness the power of the community with OSEHRA, Apache, and OIT EA
© Talend 2013
OSEHRA Roles
➜
VistA centric Platform
➜
Balanced Community
• Top-down governance – VA EA alignment
• Bottom-up collaboration - community driven projects
➜
Stewardship
➜
Market facilitator
© Talend 2013
Virtualize VistA with Apache
© Talend 2013
Harness and Focus the Community
➜
The community needs a reference implementation
and a reference architectures to drive adoption.
➜ The middleware for OSEHRA needs to be open source
in order to maximize its reach and enable community
and market dynamics.
➜ No runtime is specified for the VSB, just that it is Java
based. Suggest that VSB should use Apache OSS.
➜ The VistA Service Assembler (VSA) team has done the
background work and prototyping for tools which can
use Maven, Eclipse, and Spring XML to configure
Camel endpoints.
© Talend 2013
Collaboration Vehicles
➜
Policy Proposals
• Develop OSEHRA Reference Architecture
• Develop OSEHRA Reference Implementation
• Align RA and RI with VA EA
➜
Community Activities
•
•
•
•
Use Case Identification and Elaboration
Create projects for subsystems in OSEHRA GIT
VistA Service Backplane Reference Implementation
Components: VistA M Platform, EWD, Apache
© Talend 2013
VA Enterprise Architecture Alignment
© Talend 2013
Refactoring Benefits
Refactoring is undertaken in order to improve some of
the nonfunctional attributes of the software.
Advantages include improved code readability and
reduced complexity to improve the maintainability of
the source code, as well as a more expressive internal
architecture or object model to improve extensibility.
Wikipedia
Refactoring provides the stability necessary for innovation
© Talend 2013
Service Taxonomy
Business Process
VistA Service Backplane
Business Activity
Managed Service
Basic Service
Component API
Fallacies of Distributed Computing
➜ The network is reliable.
➜ Latency is zero.
➜ Bandwidth is infinite.
➜ The network is secure.
➜ Topology doesn't change.
➜ There is one administrator.
➜ Transport cost is zero.
➜ The network is homogeneous.
The term “Service” is overloaded.
Services exist at multiple levels of abstraction
© Talend 2013
Architecture – Layered Integration
➜
Process
• Human-in-the-loop, long running, asynchronous
• Orchestrates Business Activities
➜
Mediation
• Choreograph Managed Services into Business Activities
• Transform Events into Command Messages
• Correlate Events with Business Process
➜
Managed Services
• Adapt Basic Services to provide consistent integration semantics for
security, reliable messaging, and other cross-cutting concerns
• Enrich data messages into Events with Process Id for correlation
• Correlate requests-replies from Basic Services
➜
Basic Services
• Stateless business logic and data services
© Talend 2013
VA Enterprise Architecture Alignment
MedSphere
Scheduling Client
System
Layer Management
1
Service Contracts
Security &
Privacy
Virtual Stack
Vulnerability Detection
SOA Services Layer
Standard Headers
Enterprise Standard Message Layer
Transformation
Service Facade
Physical Stack
Legacy Systems
2
Network Latency
3
Application Firewalls
Encryption
Virtual Interface Layer
4
Performance Mgmt
Security Domains
COTS Software Environment
Service Facades
Physical COTS Environment
5
Performance Mgmt
Security Domains
Virtual Enterprise Software Environment
Configuration
Physical Middleware Environment
6
Data Replication
Data Access Controls
Virtual Data Layer
SQL
7
System Monitoring
Audit Logs
Virtual Management Environment
Provisioning
System Management and Control
8
Software Distribution
Encryption-Anti Virus
Virtual Hardware / OS Environment
Provisioning
Physical Hardware / OS Environment
oAuth
Syncope
WS-Security
12
© Talend 2011
Google Calendar API,
CIA, MDWS
Message Adapters
Message Adapters
RPC, CIA, HL7, iCal,
CalDav
Legacy Point-to-Point Communication
Physical Interface Layer
Physical Data Layer
GAE, GCE
Reference Architecture
© Talend 2013
VA VistA Evolution
Enterprise Service Bus (ESB)
Registry and Repository
Core ESB
(Websphere)
(Websphere)
VistA SOA Service
Registry Entries
VistA SOA Service
Proxies
VistA
VistA Service Backplane (VSB) - Regional
Derived from
VistA Service Assembler (VSA)
Conceptual and Technical Overview
Keith Cox & Travis Hilton
ESS AWG
OSEHRA AWG 8/27
Managed Services
SOA Service Descriptors
VistA SOA Services
Basic Services
M Platform
(Caché or open source platform (ie. GT.M), 130+ instances in production in VA)
VistA M Routine Calling Service (VMRCS)
Component API
VistA M Routine Calling Adapter (VMRCA)
All Other Packages
© Talend 2013
VA VistA Evolution
Enterprise Service Bus (ESB)
Registry and Repository
Core ESB
(Websphere)
(Websphere)
VistA SOA Service
Registry Entries
VistA SOA Service
Proxies
VistA
VistA Service Backplane (VSB) - Regional
SOA Service Descriptors
VistA SOA Services
Generated by
VistA Service
Assembler
(VSA) Wizard
M Platform
(Caché or open source platform (ie. GT.M), 130+ instances in production in VA)
VistA M Routine Calling Service (VMRCS)
Site
Specific
VistA M Routine Calling Adapter (VMRCA)
All Other Packages
© Talend 2013
OSEHRA Reference Implementation
VistA
VSB - Apache Camel, CXF, Karaf, ActiveMQ
SOA Service Descriptors (CXF, Camel)
VistA SOA Services
M Platform
(Caché or open source platform (ie. GT.M), 130+ instances in production in VA)
VMRCS – NodeJS (EWD), Backbone.js
VistA M Routine Calling Adapter (VMRCA)
All Other Packages
© Talend 2013
Camel & CXF
XML +
metadata
VSB Integration Routes
Message Adaptors
Security
Publish-Subscribe
Routing
ESB
(Websphere)
Event
VSB
SOAP
JMS
Endpoint
Validate
Splitter
Recipient Normalize
List
RPC
HTTPS / EWD
© Talend 2013
Command
Message
Transform
Enrichment
Routing
Slip
Aggregator
Message
Correlation
HL7
Apache Integration
Development - VSA
Eclipse STP/WTP
REST & Web Services
Runtime - VSB
Apache CXF
Apache ActiveMQ
REST & Web Services
Message Broker
Apache Maven
Apache Camel
Build & Deploy
Mediation
Apache Karaf
Eclipse Equinox
OSGi
OSGi
Apache Integration
Extensible Camel Adaptor Framework
Extensible
Component
Framework
© Talend 2013
RPC
HL7
REST
SOAP
JMS
Refactoring to VSB
➜
➜
➜
Refactor existing functionality (e.g. Ray Group / PWC)
Expose interfaces and Component API’s
Delegate responsibility to the VSB
•
•
•
•
➜
Security
Reliable Delivery
Composition
Transformation
Service Enable legacy technologies
• First class transport adaptors for performance (RPC)
• Standards based external transport (SOAP, JMS, MLLP)
• Standards based data protocols (HL7, iCal)
Virtualizing the integration layer minimizes disruption
© Talend 2013
Responsibility Driven Design – VSB
➜
Adapts interfaces to standards & specifications
➜ Message Exchange Patterns: req-reply and pub-sub
➜ Event driven loose coupling with callback support
➜ Value added mediation
➜ Manage both consumers and providers
➜ Standard invocation framework for composition
➜ Integration with other Services (OSEHRA)
21
© Talend 2011
Use Cases
© Talend 2013
Scenario Template
➜
Goal: provide sufficient descriptive and prescriptive
advice and examples for implementing integration use
cases with OSEHRA platform to enable healthcare
stakeholders to build application specific services that
are reliable, secure, flexible, extensible, and easily
composed.
➜ Sufficient to exercise essential complexity, bound risk,
and focus collaboration
➜ Not exhaustive, not comprehensive
➜ Informed by and illustrates reference architecture
© Talend 2013
Reference Architecture Principles
➜
Standards Based
•
•
•
•
HL7
SOAP
REST
JMS
➜
Separation of Concerns
➜ Support for REST and message centric architectures
➜ Event Driven
➜ Policy-centric Management
© Talend 2013
➜
Depth
Scenario Artifacts
Iterative and Incremental
➜ Use case description, wiki
➜ Sequence diagram, wiki
Breadth
➜ Design Analysis, wiki
➜ Example, working code in OSEHRA Git
➜ Test Driven, integration test routes as requirements in
OSEHRA Git
➜ YouTube, walkthrough
© Talend 2013
Integration Use Cases
1.
2.
3.
4.
5.
6.
7.
8.
Non-invasive mediation
Transport Mediation
Reliable Delivery
Federated Query
Federated Identity
Federated Security
Transport Security
Message Security
© Talend 2013
9.
10.
11.
12.
13.
14.
RPC Composition
Composite Services with Camel
Event Enablement
Subscription Management
Monitor and Manage
High Availability
Basic Mediation
NonInvasive
Mediation
© Talend 2013
Transport
Mediation
Reliable
Delivery
Composition
Federated
Query
© Talend 2013
RPC
Composition
Composite
Service
Security
Federated
Query
© Talend 2013
Federated
Identity
Federated
Security
Transport
Security
Message
Security
Event Driven
Event
Enablement
© Talend 2013
Subscription
Management
Enterprise
Monitor
© Talend 2013
Manage
High
Availability
Non-Invasive Refactoring
© Talend 2013
Transport Security
Legend
Service Backplane
© Talend 2013
Federated Query
Legend
Service Backplane
© Talend 2013
Federated Identity
➜
Identity Management
➜ Credentials
➜ Message
➜ Transport
© Talend 2013
Common Identity
© Talend 2013
Value Added Mediation – Security
➜
Security Profile Alternatives
•
•
•
•
•
➜
Transport layer security (SSL V3.0 and TLS V1.0)
SessionId and SSO at App transport layer for Server / Service
Per-message message-level security using WS-Security
Per-session message-level security using WS-Security
SecureConversation Message Layer for User or Service with
SAML x.509
Security Gateway Solution Pattern
• Connect to ESB using Transport Security
• Delegate message level security to ESB
Sample Basic Security Profile
Encryption
Server Auth
App Auth
User Auth
Data Authz
Human to
App
N/A
OS Login
OS Logic
App Login
App Logic
App to ESB
Transport
(HTTPS,
JMS/SSL)
HTTPS
SAML
N/A
N/A
ESB to VSB
Transport
(HTTPS,
JMS/SSL)
HTTPS
SAML
N/A
N/A
VSB to
VMRCS
Transport
(HTTPS)
HTTPS
Trusted
Basic Auth
N/A
VSB
Transform
VMRCS to
VMRCA
N/A
N/A
VistA or
M Kernel
N/A
VistA
* Not applicable for securing sensitive data at rest
© Talend 2013
Current Status

Contributing camel-rpc to OSEHRA
• Publicly available on Github
• Move to OSEHRA Git
• Harden implementation and unit test cases with community
input

Federated Query Scenario
➜
Explore re-using elements of BGS Security framework
➜ Standard build and CI environment
➜ Standard server configuration
© Talend 2013