Enterprise Refactoring with Apache
Evolving VistA Open Architecture
Edward Ost
Agenda
➜
Enterprise Refactoring Strategy
➜
Apache Solution Architecture
➜
Refactoring Use Cases
•
HL7 Event Subscription
•
Security
•
Value Added Mediation
➜
Q&A
Enterprise Refactoring Strategy
Refactoring Definition
Refactoring is a disciplined technique for restructuring an existing
body of code, altering its internal structure without changing its
external behavior.
•
Its heart is a series of small behavior preserving transformations.
•
Each transformation (called a 'refactoring') does little, but a sequence of
transformations can produce a significant restructuring.
•
Since each refactoring is small, it's less likely to go wrong.
•
The system is also kept fully working after each small refactoring,
reducing the chances that a system can get seriously broken during the
restructuring.
© 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
© Talend 2013
Refactoring in an OSEHRA Context
➜
Refactoring assures stakeholder investments will be preserved
➜
Refactor to ease the introduction of new features without
disrupting existing functionality
➜
Refactoring combined with Continuous Integration and Test
Driven SOA allow teams to work in parallel
➜
Refactoring enables market driven innovation while providing
structure and stability necessary for community
Enterprise Architecture Alignment
Definition of Layers
➜
Only a small part of the stack is built by traditional application development
groups
➜
Security will be implemented by multiple groups in accordance with security
policies and procedures
8 7 6 5 4
Layer
2 1 3Virtual Hardware / OS Environment Provisioning Physical Hardware / OS Environment Virtual Management Environment Provisioning System Management and Control
Virtual Data Layer SQL Physical Data Layer
Encryption-Anti Virus Audit Logs Data Access Controls
Software Distribution System Monitoring
Data Replication
Virtual Enterprise Software Environment Configuration Physical Middleware Environment Security Domains
Performance Mgmt
COTS Software Environment Service Facades Physical COTS Environment Security Domains
Performance Mgmt
System
Management
Security &
Privacy
Virtual Stack
Transformation
Physical Stack
Enterprise Standard Message Layer Message Adapters Legacy Point-to-Point Communication SOA Services Layer Service Facade Legacy Systems
Standard Headers Vulnerability Detection
Network Latency Service Contracts
Virtual Interface Layer Message Adapters Physical Interface Layer Encryption
Application Firewalls
Overview of the VA Target Enterprise Application Architecture (EAA)
OpenMash Layer Mapping
9
© Talend 2011
8 7 6 5 4Layer
2 1 3Virtual Hardware / OS Environment Provisioning Physical Hardware / OS Environment Virtual Management Environment Provisioning System Management and Control
Virtual Data Layer SQL Physical Data Layer
Encryption-Anti Virus Audit Logs Data Access Controls
Software Distribution System Monitoring
Data Replication
Virtual Enterprise Software Environment Configuration Physical Middleware Environment Security Domains
Performance Mgmt
COTS Software Environment Service Facades Physical COTS Environment Security Domains
Performance Mgmt
System
Management
Security &
Privacy
Virtual Stack
Transformation
Physical Stack
Enterprise Standard Message Layer Message Adapters Legacy Point-to-Point Communication SOA Services Layer Service Facade Legacy Systems
Standard Headers Vulnerability Detection
Network Latency Service Contracts
Virtual Interface Layer Message Adapters Physical Interface Layer Encryption
Application Firewalls