going extreme for healthcare
DESCRIPTION
Presentation at Devoxx 2011 by Dirk Deridder and Koen Vanderkimpen, working for Smals (Belgium)TRANSCRIPT
Going Extreme for Health Care
Koen Vanderkimpen@koenvdk
Dirk Deridder@dirkderidder
When Security, Performance, Scalability, and Availabilityall want to be the star of the show
09/04/23
Smals
2
Dirk Deridder
Koen Vanderkimpen
Preferred ICT Partner of Social Security and Health CareInstitutions in Belgium
Smals Research Team
Dedicated to introducing innovative IT in e-GovernmentAnd solving clients' more abstract problems
1.5 years @ Smals, specializing in OO, software develop-ment, version control; implemented first demo of the PCS
1 year @ Smals, specializing in dynamic programming languages, software architecture, Agile and XTP
09/04/23
3
What Follows
1. The Project: which challenges?2. Security: Novel Approach using threshold
encryption3. Conflicting Challenges in a High-Risk Project4. Extreme Transaction Processing5. Conclusions6. Questions
09/04/23
4
Mission:
« Build a highly secure platform to exchange Patient Data between Healthcare actors within
Flanders/Be/EU/… »
1. The Project: A Primary Care Safe (PCS)
09/04/23
5
The "PCS manifesto":• Security, Privacy, Confidentiality• 24/7 always-on• Generic, Multi-Purpose, Shared
Thoroughly Patient-Centric Vision
• Ready for Growing Data & Usage
• Performant (4s response time)
Some NFR's…
09/04/23
6
Functionality
• PUT(a file, or part of it)
• GET• DELETE
Patient File
Medication
Parameters
Allergies
Journal
…
Anti-DiabeticalAnti-Aids
Blood Pressure
Heart Condition
Other
Pulse
Entries
Entry1
Entry2…
(Versioning)
(Fine-Grained DataModel)
09/04/23
7
(for Flanders)• Patients: 6.5 million• Users (medical professionals): 51000• File accesses per day/user: 7.2• Starting file size: 50K (towards 5M)
Some Figures
What if?• All of Belgium joins in?• Patients get access?• Mobile usage develops?
09/04/23
8
2. PCS – Novel Security Architecture
• "end-user eyes only"• "distributed trust"
File
(Only Encrypted Messages)
Alice Bob
PCSDokters OrgGov (ehealth)
host & control control
09/04/23
9
Symmetric Encryption
Message
Secret key Encrypted Message
Alice Bob
09/04/23
10
Assymmetric Encryption (Public Key)
Public KeyPrivate Key
= +
09/04/23
11
Primary Care Safe - PCS
Bob
PCS
Dokters.Org
09/04/23
12
Threshold Encryption (Public Key)
• Main Idea: a minimum number (= the threshold) of people needed to decrypt
1
2
1
2Public Key
Bob
Marc
Alice
Partial Decryption
Combination
09/04/23
13
Primary Care Safe - PCS
Dr. Bob
PCSDokters OrgGov (ehealth)
1
2
1 2
1
2
Patent Pending!
09/04/23
14
Fine-Grained Access Control
Patient File
Medication
Parameters
Allergies
Journal
…
Anti-DiabeticalAnti-Aids
Blood Pressure
Heart Condition
Other
Pulse
Entries
Entry1
Entry2…
09/04/23
15
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
3. Roundup: Primary Care Safe (PCS)
09/04/23
16
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
Availability
09/04/23
17
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
Availability
Scalability
09/04/23
18
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
Availability
Scalability
Flexibility
09/04/23
19
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
Availability
Scalability
Flexibility Security
09/04/23
20
• Exchange Platform for Medical Data• Eventually for 6500000 patients (all of
Flanders) – A few 1000 to startGrowing data (e.g. lifetime biometrics)
• For many different applications• Provided by the Government• Security + Fine-grained Access
Availability
Scalability Performance
Flexibility Security
09/04/23
21
Security
Availability
Scalability Performance
Flexibility
Challenge: Reconciling the NFR's
09/04/23
4. How to approach this?
• Programming language? Java @ Smals
• Software Architecture? N-Tier & SOA @ Smals
• Development approach? EUP @ Smals
22
?Will this work
Sure, but more geared towards « conventional » projects
Actually we weren’t « sure » so we investigated further …
09/04/23
XTP versus Traditional N-Tier Solution?
23
Business Processing Tier
Web Tier
Load Balancer
Database Tier
Primary
Primary
Primary
Backup
Backup
Backup
Primary
Primary
Backup
Backup
xx
Messaging Tier
Primary
Backup
Availability?
Scalability?
Elasticity?
Performance?
09/04/23
Looking for inspiration…
24
• Social Media• Stock exchange• Investment banks• Telecommunications• Retail Business• Web-commerce• Internet media• Factory automation• Aerospace industry• Online gaming• Big Data analysis• …
• Large number of users • High volume of requests• Very demanding availability (24/7)• Peak loads are a moving target• Challenging performance expectation• …
Some of our NFR’s are « easy » compared to their day-2-day operation
09/04/23
Extreme Transaction Processing
« An application style aimed at supporting
the design, development, deployment,
management and maintenance of
distributed TP applications
characterized by exceptionally demanding
performance, scalability, availability,
security, manageability,
and dependability requirements »
Everything we need « in a box »?25
09/04/23
Let’s get this « XTP solution in-a-box »!
26
Hypertable
BigTable
NoSQL
DevOps
MongoDB
MemcacheDB
Cassandra
CouchDB
Voldemort
Map/ReduceHadoop
Grid Computing
Space Based Architecture
Event Driven Architecture
Shared Nothing Architecture
Partitioning TerracottaAkka
Erlang
Actor Model
Scala
AmbientTalkNode.js
…
Async Flows
In-memory DBMaster/Worker
Task Execution
09/04/23
Today’s main focus: Support offered by an XTP middleware Platform
• Several solutions exist MaatG G Platform, GigaSpaces XAP, Appistry, Tibco
ActiveSpaces, Paremus Service Fabric, …• Currently establishing a position as CEAP’s / EAP’s
Good match with « cloud » requirements Fine-grained elastic scalability, Continuous availability & Non-stop operations Consistent performance
Still require additional work on multitenancy, billing, self provisioning, …
Not intrinsic to XTP (can be enablers) Traditional application servers will not meet future needs to
move to the cloud « … dinosaurs tiptoeing through a meteor storm… »
[M. Gualtieri, Forrester 2011]
27
09/04/23
XTP Platform characteristics enabling Extreme Availability
• Let it crash principle• Zero downtime failover management
Automated failover without side-effects E.g., handover from primary to backup with no manual intervention,
even between datacenters Automated self-healing without side-effects
E.g., creation of new backup nodes after failover with no manual intervention
Automated replication management E.g., keeping primaries/backups consistent, redo queues, …
• Transparent for client applications The client is unaware of « who » handles the request and is only
interested in getting a result Shield-off all complexity involved in guaranteeing high availability
• Application virtualisation and overall automation are key!
30
Availability
Availability
09/04/23
XTP Platform characteristics enabling Extreme Performance
• Improve response time by not moving data around Focus on data/processing affinity
Routing of requests to the location of the data Do not separate tiers physically
Work with an in-memory data grid Cf. caching, but not as an after-the-fact optimisation strategy Persistency as a service, not involved in servicing live requests
• Increase throughput Asynchronous processing flows
Give back control asap Make requests self-contained so they can
served by any « workers » that are available Work with a processing grid
Execute (parts of) requests in « parallel » Avoid relying on external systems Enforce strict internal / external SLA’s
31
Performance
Performance
09/04/23
XTP Platform characteristics enabling Extreme Scalability
• Principle of horizontal scaling Increase capacity by adding resources « on the fly » in an
automated fashion Elastic scaling, so capacity can be taken away easily Location-unaware applications
Transparent for client applications as well Capacity planning vs capacity management
• Application virtualisation and overall automation are key!
32
HORIZONTAL SCALING
Scalability
Scalability
09/04/23
Concrete XTP Platform XAP: Characteristics
• Space Based Architecture Based on Tuple Spaces [Gelernter & Carriero]
Cf JavaSpaces, but a lot more Technology arena: Java, Jini, JMS, Spring, Hibernate, … Data + Processing+ Messaging Grids
• SLA-driven application containers• Excellent enabler for implementing XTP
architectures Allowing you to focus on the « difficult part » by taking
care of the « hard part »
33
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer
ProgramProgram
MemoryMemory
Space Based Architecture
34
09/04/23
ServerServer
ProgramProgram
MemoryMemory
Space Based Architecture
35
ServerServer
Space
ProgramProgram
MemoryMemory
09/04/23
ServerServer
ProgramProgram
MemoryMemory
Processing UnitProcessing UnitProcessing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
36
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer ServerServer
Processing UnitProcessing UnitProcessing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
37
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer ServerServer ServerServer
Processing UnitProcessing Unit Processing UnitProcessing Unit Processing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
38
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer ServerServer ServerServer
Processing UnitProcessing Unit Processing UnitProcessing Unit Processing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
39
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer ServerServer
Processing UnitProcessing Unit Processing UnitProcessing Unit Processing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
40
09/04/23
ServerServer
ProgramProgram
MemoryMemory
ServerServer ServerServer ServerServer
Processing UnitProcessing Unit Processing UnitProcessing Unit Processing UnitProcessing Unit
Space
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
ProgramProgram
MemoryMemory
Space Based Architecture
41
Lots of flexibility and support « out of the box »for realizing an(y) XTP solution
09/04/23
42
XTP versus Traditional N-Tier Solution?
BusinessProcessing Units
(Data + Processing + Messaging)
AA BB CC
AA BB CC
AA BB CC
Web Processing
Units
Load Balancer
Persistencyas a Service
Persistencyas a Service
Database
09/04/23
Conclusions
• XTP is not just a technology or style of programming Impacts software architecture, development process, … An integrated approach / vision is required! Having an XTP platform is only a first step Think outside the traditional box
• Demands disciplined application of development practices Not only functional testing: NFR’s ! Automation is fundamental
• Updating applications with no downtime is an additional challenge Requires « next-release strategy » XTP platforms provide « patterns » to handle this
• Problems can still happen, be prepared! Cf. Recent Amazon / Microsoft /… outages (if the best fail, expect…)
• ROI analysis is absolutely necessary Not every application calls for a platinum-approach
But it never hurts to think about it ! Maximum ROI = Availability + Scalability + Performance
44
09/04/23
Going Extreme for Health Care
Koen Vanderkimpen@koenvdk
Dirk Deridder@dirkderidder
When Security, Performance, Scalability, and Availabilityall want to be the star of the show
Q&A