Successfully reported this slideshow.
Your SlideShare is downloading. ×

Software Deployment in a Dynamic Cloud

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 24 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to Software Deployment in a Dynamic Cloud (20)

Advertisement

More from Sander van der Burg (20)

Recently uploaded (20)

Advertisement

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

×