Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Software Deployment in a Dynamic Cloud
From Device to Service Orientation in a Hospital Environment
Sander van der Burg Ee...
Hospital environments
Hospitals are complex organizations:
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software De...
Device orientation
The IT infrastructure of hospitals is mostly device oriented.
Examples:
Dedicated workstations are need...
Device orientation
Disadvantages:
Overcapacity due to suboptimal usage of resources
Inflexibility in reacting to events
Req...
Service orientation
The medical world is changing to a service-oriented environment:
Access to services is decoupled from ...
Service orientation
Hospital environments are heterogeneous:
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software ...
Problem statement
How can we support such services in a heterogeneous environment?
S. van der Burg, E. Dolstra, M. de Jong...
Requirements
To support running services in a heterogeneous environment we
have to treat the hospital infrastructure as a ...
Requirements
Design services in a way that allows them to be distributed
dynamically.
Workstation: fat client
PDA: thin cl...
Approach
Existing research:
Nix. Automatic software deployment tool.
Disnix. Extension for Nix that supports distributed s...
Designing services
We want to access every service from every device in a
hospital environment
It is not feasable to perfo...
Designing services
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Designing services
Variants of services introduce several software deployment
scenarios
Software deployment is usually a l...
Deploying services
Nix Deployment System:
Is a package manager, like RPM
Builds packages from Nix expressions
Stores compo...
The Nix store
/nix/store
l9w6773m1msy...-openssh-4.6p1
bin
ssh
sbin
sshd
smkabrbibqv7...-openssl-0.9.8e
lib
libssl.so.0.9....
Nix expressions
rec {
XMPPLogger = derivation {
name = "XMPPLogger-1.0";
src = fetchurl {
url = http://nixos.org/.../XMPPL...
Disnix
An extension to Nix to allow distributed software deployment
tasks
A webservice interface which allows remote acces...
Disnix Overview
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Services model
let pkgs = ../top-level/pkgs.nix;
in
{
XMPPLogger = {
name = "XMPPLogger";
pkg = pkgs.SDS2.webservices.XMPP...
Infrastructure model
{
dtk15 = {
hostname = "dtk15";
targetEPR = http://dtk15:8080/axis2/services/DisnixService;
tomcatPor...
Distribution model
{services, infrastructure}:
[
{ service = services.FloorPlanService;
target = infrastructure.dtk15; }
{...
Conclusions and Future work
We have outlined a possible architecture for distributed
deployment of services in a cloud wit...
Conlusion and Future work
Machines should be auto-discovered instead of specified
manually.
Components implementing a servi...
Questions
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Upcoming SlideShare
Loading in …5
×

Software Deployment in a Dynamic Cloud

585 views

Published on

Presentation given at ICSE 2009 CLOUD workshop in Vancouver, British Columbia, Canada

Published in: Science
  • Be the first to comment

Software Deployment in a Dynamic Cloud

  1. 1. Software Deployment in a Dynamic Cloud From Device to Service Orientation in a Hospital Environment Sander van der Burg Eelco Dolstra Merijn de Jonge Eelco Visser Delft University of Technology, EEMCS, Department of Software Technology Philips Research, Healthcare Systems Architecture, Eindhoven May 23, 2009 Sander van der Burg, Eelco Dolstra, Merijn de Jonge, Eelco Visser Software Deployment in a Dynamic Cloud
  2. 2. Hospital environments Hospitals are complex organizations: S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  3. 3. Device orientation The IT infrastructure of hospitals is mostly device oriented. Examples: Dedicated workstations are needed to access patient records and images Workstations with powerful graphics cards are needed to render 3D objects S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  4. 4. Device orientation Disadvantages: Overcapacity due to suboptimal usage of resources Inflexibility in reacting to events Requires users to go to a device for a particular task S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  5. 5. Service orientation The medical world is changing to a service-oriented environment: Access to services is decoupled from the physical access to particular devices Users should be able to access data and perform computations from: Where they are On any device Example: Any device could be used to access patient records and images S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  6. 6. Service orientation Hospital environments are heterogeneous: S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  7. 7. Problem statement How can we support such services in a heterogeneous environment? S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  8. 8. Requirements To support running services in a heterogeneous environment we have to treat the hospital infrastructure as a cloud. Components implementing a service are automatically deployed on machines in the cloud. To machines with the required capabilities and connectivity. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  9. 9. Requirements Design services in a way that allows them to be distributed dynamically. Workstation: fat client PDA: thin client Deploy each component to a selected machine in the network: Usually an ad-hoc process (semi automatic with human intervention). Needs to be automatic and reliable. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  10. 10. Approach Existing research: Nix. Automatic software deployment tool. Disnix. Extension for Nix that supports distributed systems. SDS2. Experimental hospital system developed by Philips Research. Goal: Extend the design of services and the Disnix deployment system S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  11. 11. Designing services We want to access every service from every device in a hospital environment It is not feasable to perform all computations on a client or all computations on remote servers. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  12. 12. Designing services S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  13. 13. Designing services Variants of services introduce several software deployment scenarios Software deployment is usually a labour intensive semi-automatic process Software deployment should be an automatic process capturing the deployment in models S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  14. 14. Deploying services Nix Deployment System: Is a package manager, like RPM Builds packages from Nix expressions Stores components in isolation in a Nix store Upgrading is atomic Deals with single systems S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  15. 15. The Nix store /nix/store l9w6773m1msy...-openssh-4.6p1 bin ssh sbin sshd smkabrbibqv7...-openssl-0.9.8e lib libssl.so.0.9.8 c6jbqm2mc0a7...-zlib-1.2.3 lib libz.so.1.2.3 im276akmsrhv...-glibc-2.5 lib libc.so.6 S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  16. 16. Nix expressions rec { XMPPLogger = derivation { name = "XMPPLogger-1.0"; src = fetchurl { url = http://nixos.org/.../XMPPLogger-1.0.tar.gz; md5 = "de3187eac06baf5f0506c06935a1fd29"; }; buildInputs = [ant jdk axis2]; builder = ./builder.sh; }; DemoPortal = derivation { ... }; stdenv = ... firefox = import ... ... # other package definitions } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  17. 17. Disnix An extension to Nix to allow distributed software deployment tasks A webservice interface which allows remote access to the Nix store and Nix profiles Introduces three model types to model a distributed system: Services model Infrastructure model Distribution model Uses a variant of the two-phase commit algorithm to allow distributed atomic commits S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  18. 18. Disnix Overview S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  19. 19. Services model let pkgs = ../top-level/pkgs.nix; in { XMPPLogger = { name = "XMPPLogger"; pkg = pkgs.SDS2.webservices.XMPPLogger; dependsOn = [ EjabberdService MySQLService ]; }; MULogService = { name = "MULogService"; pkg = pkgs.SDS2.webservices.MULogService; dependsOn = [ ME2MSService ]; }; ... } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  20. 20. Infrastructure model { dtk15 = { hostname = "dtk15"; targetEPR = http://dtk15:8080/axis2/services/DisnixService; tomcatPort = 8080; }; dt2d1 = { hostname = "dt2d1"; targetEPR = http://dt2d1:8080/axis2/services/DisnixService; tomcatPort = 8080; mysqlPort = 3306; }; } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  21. 21. Distribution model {services, infrastructure}: [ { service = services.FloorPlanService; target = infrastructure.dtk15; } { service = services.ME2MSService; target = infrastructure.dtk15; } { service = services.MELogService; target = infrastructure.dt2d1; } { service = services.XMPPLogger; target = infrastructure.dtk15; } ... ] S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  22. 22. Conclusions and Future work We have outlined a possible architecture for distributed deployment of services in a cloud with some tool support. Nix/Disnix tools should be extended with new features to make dynamic distributed software deployment possible. Service and infrastructure models should take quality of service attributes into account. Mapping of components should be done dynamically. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  23. 23. Conlusion and Future work Machines should be auto-discovered instead of specified manually. Components implementing a service can be linked together in various ways, some of them could be sub-optimal. Thin client: SOAP connection Fat client: Linking libraries Privacy of data should be taken into account. During the upgrade phase, blocking the system should be avoided S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  24. 24. Questions S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

×