software deployment in a dynamic cloud

24
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

Upload: sander-van-der-burg

Post on 27-Jun-2015

174 views

Category:

Science


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Software Deployment in a Dynamic Cloud

Software Deployment in a Dynamic CloudFrom Device to Service Orientation in a Hospital Environment

Sander van der Burg Eelco Dolstra Merijn de JongeEelco 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

Page 2: Software Deployment in a Dynamic Cloud

Hospital environments

Hospitals are complex organizations:

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 3: Software Deployment in a Dynamic Cloud

Device orientation

The IT infrastructure of hospitals is mostly device oriented.Examples:

Dedicated workstations are needed to access patient recordsand images

Workstations with powerful graphics cards are needed torender 3D objects

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 4: Software Deployment in a Dynamic Cloud

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

Page 5: Software Deployment in a Dynamic Cloud

Service orientation

The medical world is changing to a service-oriented environment:

Access to services is decoupled from the physical access toparticular devices

Users should be able to access data and performcomputations from:

Where they areOn any device

Example: Any device could be used to access patient recordsand images

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 6: Software Deployment in a Dynamic Cloud

Service orientation

Hospital environments are heterogeneous:

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 7: Software Deployment in a Dynamic Cloud

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

Page 8: Software Deployment in a Dynamic Cloud

Requirements

To support running services in a heterogeneous environment wehave to treat the hospital infrastructure as a cloud.

Components implementing a service are automaticallydeployed 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

Page 9: Software Deployment in a Dynamic Cloud

Requirements

Design services in a way that allows them to be distributeddynamically.

Workstation: fat clientPDA: thin client

Deploy each component to a selected machine in the network:

Usually an ad-hoc process (semi automatic with humanintervention).Needs to be automatic and reliable.

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 10: Software Deployment in a Dynamic Cloud

Approach

Existing research:

Nix. Automatic software deployment tool.

Disnix. Extension for Nix that supports distributed systems.

SDS2. Experimental hospital system developed by PhilipsResearch.

Goal:

Extend the design of services and the Disnix deploymentsystem

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 11: Software Deployment in a Dynamic Cloud

Designing services

We want to access every service from every device in ahospital environment

It is not feasable to perform all computations on a client or allcomputations on remote servers.

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 12: Software Deployment in a Dynamic Cloud

Designing services

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 13: Software Deployment in a Dynamic Cloud

Designing services

Variants of services introduce several software deploymentscenarios

Software deployment is usually a labour intensivesemi-automatic process

Software deployment should be an automatic processcapturing the deployment in models

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 14: Software Deployment in a Dynamic Cloud

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

Page 15: Software Deployment in a Dynamic Cloud

The Nix store

/nix/storel9w6773m1msy...-openssh-4.6p1

bin

ssh

sbin

sshdsmkabrbibqv7...-openssl-0.9.8e

lib

libssl.so.0.9.8c6jbqm2mc0a7...-zlib-1.2.3

lib

libz.so.1.2.3im276akmsrhv...-glibc-2.5

lib

libc.so.6

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 16: Software Deployment in a Dynamic Cloud

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

Page 17: Software Deployment in a Dynamic Cloud

Disnix

An extension to Nix to allow distributed software deploymenttasks

A webservice interface which allows remote access to the Nixstore and Nix profiles

Introduces three model types to model a distributed system:

Services modelInfrastructure modelDistribution model

Uses a variant of the two-phase commit algorithm to allowdistributed atomic commits

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 18: Software Deployment in a Dynamic Cloud

Disnix Overview

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 19: Software Deployment in a Dynamic Cloud

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

Page 20: Software Deployment in a Dynamic Cloud

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

Page 21: Software Deployment in a Dynamic Cloud

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

Page 22: Software Deployment in a Dynamic Cloud

Conclusions and Future work

We have outlined a possible architecture for distributeddeployment of services in a cloud with some tool support.

Nix/Disnix tools should be extended with new features tomake dynamic distributed software deployment possible.

Service and infrastructure models should take quality ofservice 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

Page 23: Software Deployment in a Dynamic Cloud

Conlusion and Future work

Machines should be auto-discovered instead of specifiedmanually.

Components implementing a service can be linked together invarious ways, some of them could be sub-optimal.

Thin client: SOAP connectionFat client: Linking libraries

Privacy of data should be taken into account.

During the upgrade phase, blocking the system should beavoided

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

Page 24: Software Deployment in a Dynamic Cloud

Questions

S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud