Going Extreme for Health Care Koen Vanderkimpen @koenvdk Dirk Deridder @dirkderidder When  Security ,  Performance ,  Scal...
Smals Dirk Deridder Koen Vanderkimpen Preferred ICT Partner of Social Security and Health Care Institutions in Belgium Sma...
What Follows <ul><li>The Project: which challenges? </li></ul><ul><li>Security: Novel Approach using threshold encryption ...
<ul><li>Mission: </li></ul><ul><li>« Build a highly secure platform to exchange Patient Data between Healthcare actors wit...
<ul><li>The &quot;PCS manifesto&quot;: </li></ul><ul><li>Security, Privacy, Confidentiality </li></ul><ul><li>24/7 always-...
Functionality  <ul><li>PUT </li></ul><ul><ul><li>(a file, or part of it) </li></ul></ul><ul><li>GET </li></ul><ul><li>DELE...
<ul><li>(for Flanders) </li></ul><ul><li>Patients: 6.5 million </li></ul><ul><li>Users (medical professionals): 51000 </li...
2. PCS – Novel Security Architecture <ul><li>&quot;end-user eyes only&quot; </li></ul><ul><li>&quot;distributed trust&quot...
Symmetric Encryption Message Secret key Encrypted Message Alice Bob
Assymmetric Encryption (Public Key) Public Key Private Key = +
Primary Care Safe - PCS Bob PCS Dokters.Org
Threshold Encryption (Public Key) <ul><li>Main Idea: a minimum number (= the threshold) of people needed to decrypt </li><...
Primary Care Safe - PCS Dr. Bob PCS Dokters Org Gov (ehealth) Patent Pending! 1 2 1 2 1 2
Fine-Grained Access Control Patient File Medication Parameters Allergies Journal … Anti-Diabetical Anti-Aids Blood Pressur...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
<ul><li>Exchange Platform for Medical Data </li></ul><ul><li>Eventually for 6500000 patients (all of Flanders) – A few 100...
Security Availability Scalability Performance Flexibility Challenge: Reconciling the NFR's
4. How to approach this? <ul><li>Programming language? </li></ul><ul><ul><li>Java   @ Smals </li></ul></ul><ul><li>Softwar...
XTP versus Traditional N-Tier Solution? Business  Processing Tier Web Tier Database Tier Primary Primary Backup Backup x M...
Looking for inspiration… <ul><li>Social Media </li></ul><ul><li>Stock exchange </li></ul><ul><li>Investment banks </li></u...
Extreme Transaction Processing « An  application style  aimed at supporting  the  design ,  development ,  deployment ,  m...
Let’s get this « XTP solution in-a-box »! Hypertable BigTable NoSQL DevOps MongoDB MemcacheDB Cassandra CouchDB Voldemort ...
Today’s main focus: Support offered by an XTP middleware Platform <ul><li>Several solutions exist </li></ul><ul><ul><li>Ma...
Extreme Availability? In an ideal world  100% In reality, aim at &quot;100%&quot;    cost/benefit analysis of 24/7
Extreme Availability? Note: Planned downtime is typically not included!    Difference between continuous operation and hi...
XTP Platform characteristics enabling  Extreme Availability <ul><li>Let it crash principle </li></ul><ul><li>Zero downtime...
XTP Platform characteristics enabling  Extreme Performance <ul><li>Improve response time  by not  moving data  around </li...
XTP Platform characteristics enabling  Extreme Scalability <ul><li>Principle of horizontal scaling </li></ul><ul><ul><li>I...
Concrete XTP Platform   XAP: Characteristics <ul><li>Space Based Architecture </li></ul><ul><ul><li>Based on Tuple Spaces ...
Space Based Architecture Server Program Memory Server Program Memory
Space Based Architecture Server Program Memory Server Space Program Memory
Space Based Architecture Server Program Memory Processing Unit Processing Unit Space Program Memory Program Memory
Space Based Architecture Server Program Memory Server Server Processing Unit Processing Unit Space Program Memory Program ...
Space Based Architecture Server Program Memory Server Server Server Processing Unit Processing Unit Processing Unit Space ...
Space Based Architecture Server Program Memory Server Server Server Processing Unit Processing Unit Processing Unit Space ...
Space Based Architecture Server Program Memory Server Server Processing Unit Processing Unit Processing Unit Space Program...
Space Based Architecture Server Program Memory Server Server Server Processing Unit Processing Unit Processing Unit Space ...
XTP versus Traditional N-Tier Solution? Business Processing Units (Data + Processing + Messaging) A B C A B C A B C Web Pr...
Illustration Availability?  Scalability?  Elasticity?  Performance?
Conclusions <ul><li>XTP is not just a technology or style of programming </li></ul><ul><ul><li>Impacts software architectu...
Going Extreme for Health Care Koen Vanderkimpen @koenvdk Dirk Deridder @dirkderidder When  Security ,  Performance ,  Scal...
Prochain SlideShare
Chargement dans…5
×

Going eXtreme for Healthcare

3 444 vues

Publié le

Presentation at Devoxx 2011 by Dirk Deridder and Koen Vanderkimpen, working for Smals (Belgium)

Publié dans : Technologie, Business
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 444
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2 004
Actions
Partages
0
Téléchargements
24
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Gartner: Cloud Enabled Application Platforms Forrester: Elastic Application Platforms
  • Going eXtreme for Healthcare

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

    ×