SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
ing. S. van der Burg
Healthcare Systems Architecture/Delft University of Technology
September 16, 2008
Model-driven Distributed Software
Deployment
2Healthcare Systems Architecture/TU Delft, April 09, 2008
Outline
• Introduction
• SDS2
• Nix
• Disnix
• Conclusions
• Future work
• Demonstration
3Healthcare Systems Architecture/TU Delft, April 09, 2008
Introduction
• Software deployment is all of the activities that make a software system
available for use
– Install/Uninstall
– Update
– Release
– Activate/Deactivate
4Healthcare Systems Architecture/TU Delft, April 09, 2008
Introduction
• The software deployment process should be a simple problem, but it
turns out to be much more complex
– A software component is almost never self-contained
– A software system should be able to find its dependencies
– Some software components require specific hardware
– Uninstalling should be safe
– Keeping the system up to date should be safe and atomic
5Healthcare Systems Architecture/TU Delft, April 09, 2008
Introduction
• Distributed systems are systems that appear to a user as one logical
system
– Components are distributed across different systems in a network
and work together to reach a common goal
• The software deployment process of distributed systems is even more
difficult:
– Dependencies of components on the same systems (intra-
dependencies)
– Dependencies of components running on different systems (inter-
dependencies)
6Healthcare Systems Architecture/TU Delft, April 09, 2008
Introduction
• Information technology infrastructure of hospitals is heterogeneous
– Workstations
– Medical equipment (e.g. MRI scanners)
– Connected through wired and wireless network
7Healthcare Systems Architecture/TU Delft, April 09, 2008
Introduction
• The software deployment process in hospital environments is a semi-
automatic process
• Software deployment in such an environment requires
– Up-to-date documentation
– People with necessary skills
• A semi-automatic deployment process is
– Error prone
– Time consuming
– Costly
8Healthcare Systems Architecture/TU Delft, April 09, 2008
Vision
• The software deployment process should be a simple process, not a
complex one
• The software deployment process should be fully automatic, not semi-
automatic
• The configuration of a system should be captured in a model
9Healthcare Systems Architecture/TU Delft, April 09, 2008
Distributed Environment
10Healthcare Systems Architecture/TU Delft, April 09, 2008
Service Development Support System (SDS2)
• Developed here at HSA
• Asset management and utilization
services for mobile medical
equipment
• Service Oriented Architecture
– Information as a service
– Services could be distributed
across different machines
11Healthcare Systems Architecture/TU Delft, April 09, 2008
Components, Protocols & Technologies
XMPP server
equipment
logs
XMPP Logger
equipment
log
summaries
asset tracking
service
utilization
service
XMPP Generator
floor plan
SQL
XMPP
SOAP
Java
Axis2
ejabberd
smack
tomcat
mysql
GWT
12Healthcare Systems Architecture/TU Delft, April 09, 2008
Deployment View
Philips EnterprisePhilips Enterprise
HospitalHospital
XMPP server
TomCat server
equipment logs
XMPP Logger
TomCat server
equipment log
summaries
TomCat server
asset tracking
service
TomCat server
utilization
service
XMPP Generator
Mobile
Equipment
TomCat server
floor plan
component types
client
transformer
repository
TomCat server
communication
protocols
SQL
SOAP
XMPP
event busevent bus
13Healthcare Systems Architecture/TU Delft, April 09, 2008
Nix
• Nix is a purely functional package manger
• Installing/upgrading/removing package automatically (like others RPM,
dpkg etc.)
• Nix expression language, a domain specific language to describe how
components are built
• All dependencies are explicit, this yields:
– Multiple versions of a package to be installed side-by-side
– Ensures that dependency specifications are complete
– Supports atomic upgrades and rollbacks
– “Niks” + UNIX = Nix
• Nix deploys packages on local systems but not on distributed systems
though
14Healthcare Systems Architecture/TU Delft, April 09, 2008
Example Nix expression
{stdenv, fetchsvnssh, apacheAnt, jdk, mysql_jdbc, smack, config,
username, password }:
stdenv.mkDerivation {
name = "XMPPLogger";
src = fetchsvnssh {
url =
"gforge.natlab.research.philips.com/svnroot/public/sds2/branches/N
ixDeploy/SDS2Applications/XMPPLogger";
md5 = "62401d706079cb61d3b7e0badc818a1d";
inherit username;
inherit password;
};
builder = ./builder.sh;
inherit jdk mysql_jdbc smack config;
buildInputs = [apacheAnt jdk smack config];
}
15Healthcare Systems Architecture/TU Delft, April 09, 2008
Packages model
rec
{
username = “user”;
password = “secret”;
config = import ../config {
...
};
smack = ...;
stdenv = ...;
apacheAnt = ...;
XMPPLogger = import ../SDS2Applications/XMPPLogger {
inherit username password;
inherit stdenv fetchsvnssh apacheAnt jdk;
inherit smack mysql_jdbc;
inherit config;
};
...
}
Research / Healthcare Systems Architecture, September 3, 2008
Package Dependency Graph AssetTracker Service
17Healthcare Systems Architecture/TU Delft, April 09, 2008
Nix deployment operations
• Installing XMPP Logger:
– nix-env -f pkgs.nix -i XMPPLogger
• Uninstalling XMPP Logger:
– nix-env -f pkgs.nix -e XMPPLogger
• Upgrading XMPP Logger:
– nix-env -f pkgs.nix -u XMPPLogger
18Healthcare Systems Architecture/TU Delft, April 09, 2008
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
19Healthcare Systems Architecture/TU Delft, April 09, 2008
Disnix overview
20Healthcare Systems Architecture/TU Delft, April 09, 2008
Services model
ME2MSService = {
name = "ME2MSService";
pkg = pkgs.SDS2.webservices.ME2MSService;
dependsOn = [ MELogService FloorPlanService ];
};
MULogService = {
name = "MULogService";
pkg = pkgs.SDS2.webservices.MULogService;
dependsOn = [ ME2MSService ];
};
MELogService = {
name = “MELogService”;
pkg = pkgs.SDS2.webservices.MELogService;
dependsOn = [ ... ];
};
21Healthcare Systems Architecture/TU Delft, April 09, 2008
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;
};
}
22Healthcare Systems Architecture/TU Delft, April 09, 2008
Distribution model
{services, infrastructure}:
[
{ service = services.FloorPlanService; target = infrastructure.dtk15; }
{ service = services.ME2MSService; target = infrastructure.dtk15; }
{ service = services.MELogService; target = infrastructure.dt2d1; }
{ service = services.MULogService; target = infrastructure.dtk15; }
...
]
23Healthcare Systems Architecture/TU Delft, April 09, 2008
Distributed atomic commits
• Commit-request phase:
– Build all components on the coordinator machine
– Transfer the closures to the cohort machines through the
webservice interface
• Request phase, on each cohort:
– Install component in profile
– Activate the component
24Healthcare Systems Architecture/TU Delft, April 09, 2008
Conclusion
• We have adapted and modeled the SDS2 system in Nix expressions to
make it automatically deployable
• We extended the Nix approach of software deployment of single system
to distributed systems
• We have demonstrated that we can deploy SDS2 in a distributed
environment
25Healthcare Systems Architecture/TU Delft, April 09, 2008
Future work
• Dynamic distribution based on Quality of Service models
– Reliability by reducing the inter-dependencies
• Symmetric build and deliver parts
• Support for heterogeneous environments, example:
– Linux coordinator
– Windows/FreeBSD/Linux based network
• Support for other types of distributed systems with other protocols
• Investigate development constraints
Research / Healthcare Systems Architecture, September 3, 2008
MySQL database
SDS2AssetTracker
EMLogService
HIBService
MELogService
XMPPGenerator
XMPPLogger
Ejabberd
SDS2Utilisation
FloorplanService
ME2MSService
MULogService
EventMerger
DemoPortal
VirtualBox/NixOSVirtualBox/NixOS
nbu5
5
disnix
VirtualBox/NixOS
SDS2 Deployment Demo
Initial deployment
state
Deployment over two
machines
Garbage collect
to initial state
Model-driven Distributed Software Deployment

Mais conteúdo relacionado

Semelhante a Model-driven Distributed Software Deployment

Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor AppEmily Jiang
 
Introduction to Event Driven Architecture
Introduction to Event Driven ArchitectureIntroduction to Event Driven Architecture
Introduction to Event Driven ArchitectureCitiusTech
 
Parallex - The Supercomputer
Parallex - The SupercomputerParallex - The Supercomputer
Parallex - The SupercomputerAnkit Singh
 
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...IRJET Journal
 
Golden Gate - How to start such a project?
Golden Gate  - How to start such a project?Golden Gate  - How to start such a project?
Golden Gate - How to start such a project?Trivadis
 
1 r029g formation-ibm-cognos-icm-building-reports-v-8-1
1 r029g formation-ibm-cognos-icm-building-reports-v-8-11 r029g formation-ibm-cognos-icm-building-reports-v-8-1
1 r029g formation-ibm-cognos-icm-building-reports-v-8-1CERTyou Formation
 
Security and Advanced Automation in the Enterprise
Security and Advanced Automation in the EnterpriseSecurity and Advanced Automation in the Enterprise
Security and Advanced Automation in the EnterpriseAmazon Web Services
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
Automated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemAutomated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemSander van der Burg
 
MySQL Performance Schema : fossasia
MySQL Performance Schema : fossasiaMySQL Performance Schema : fossasia
MySQL Performance Schema : fossasiaMayank Prasad
 
Jaya Sindhura_Resume_Datastage
Jaya Sindhura_Resume_DatastageJaya Sindhura_Resume_Datastage
Jaya Sindhura_Resume_DatastageSindhura Reddy
 
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation PlatformFPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation PlatformFlexTiles Team
 
LRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationLRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationSteve Nisbet
 
Connect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo EuropeConnect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo Europewallyqs
 
Developing, testing and distributing elasticsearch beats in a complex, heter...
Developing, testing and distributing elasticsearch beats in  a complex, heter...Developing, testing and distributing elasticsearch beats in  a complex, heter...
Developing, testing and distributing elasticsearch beats in a complex, heter...Jesper Agerled Wermuth
 
Building 12 factor apps with ASP.NET Core, Сергій Калинець
Building 12 factor apps with ASP.NET Core, Сергій КалинецьBuilding 12 factor apps with ASP.NET Core, Сергій Калинець
Building 12 factor apps with ASP.NET Core, Сергій КалинецьSigma Software
 
MOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMonica Li
 
MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMonica Li
 

Semelhante a Model-driven Distributed Software Deployment (20)

Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor App
 
Introduction to Event Driven Architecture
Introduction to Event Driven ArchitectureIntroduction to Event Driven Architecture
Introduction to Event Driven Architecture
 
Parallex - The Supercomputer
Parallex - The SupercomputerParallex - The Supercomputer
Parallex - The Supercomputer
 
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...
IRJET- Usage of Multiple Clouds for Storing and Securing Data through Identit...
 
Golden Gate - How to start such a project?
Golden Gate  - How to start such a project?Golden Gate  - How to start such a project?
Golden Gate - How to start such a project?
 
1 r029g formation-ibm-cognos-icm-building-reports-v-8-1
1 r029g formation-ibm-cognos-icm-building-reports-v-8-11 r029g formation-ibm-cognos-icm-building-reports-v-8-1
1 r029g formation-ibm-cognos-icm-building-reports-v-8-1
 
Security and Advanced Automation in the Enterprise
Security and Advanced Automation in the EnterpriseSecurity and Advanced Automation in the Enterprise
Security and Advanced Automation in the Enterprise
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
Automated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemAutomated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented System
 
MySQL Performance Schema : fossasia
MySQL Performance Schema : fossasiaMySQL Performance Schema : fossasia
MySQL Performance Schema : fossasia
 
Jaya Sindhura_Resume_Datastage
Jaya Sindhura_Resume_DatastageJaya Sindhura_Resume_Datastage
Jaya Sindhura_Resume_Datastage
 
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation PlatformFPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform
FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform
 
LRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf PresentationLRT MoodleMootUK11 Unconf Presentation
LRT MoodleMootUK11 Unconf Presentation
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 
Connect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo EuropeConnect Everything with NATS - Cloud Expo Europe
Connect Everything with NATS - Cloud Expo Europe
 
JESSIESEMANA_CV_1
JESSIESEMANA_CV_1JESSIESEMANA_CV_1
JESSIESEMANA_CV_1
 
Developing, testing and distributing elasticsearch beats in a complex, heter...
Developing, testing and distributing elasticsearch beats in  a complex, heter...Developing, testing and distributing elasticsearch beats in  a complex, heter...
Developing, testing and distributing elasticsearch beats in a complex, heter...
 
Building 12 factor apps with ASP.NET Core, Сергій Калинець
Building 12 factor apps with ASP.NET Core, Сергій КалинецьBuilding 12 factor apps with ASP.NET Core, Сергій Калинець
Building 12 factor apps with ASP.NET Core, Сергій Калинець
 
MOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical ExamplesMOUG17: SQLT Utility for Tuning - Practical Examples
MOUG17: SQLT Utility for Tuning - Practical Examples
 
MOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your DataMOUG17: DB Security; Secure your Data
MOUG17: DB Security; Secure your Data
 

Mais de Sander van der Burg

nix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworkSander van der Burg
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
Dysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentDysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentSander van der Burg
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with NixSander van der Burg
 
Deploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package managerDeploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package managerSander van der Burg
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelySander van der Burg
 
Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with DisnixSander van der Burg
 
Hydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The BasicsHydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The BasicsSander van der Burg
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentSander van der Burg
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentSander van der Burg
 
Techniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesSander van der Burg
 
A Generic Approach for Deploying and Upgrading Mutable Software Components
A Generic Approach for Deploying and Upgrading Mutable Software ComponentsA Generic Approach for Deploying and Upgrading Mutable Software Components
A Generic Approach for Deploying and Upgrading Mutable Software ComponentsSander van der Burg
 
Deploying .NET services with Disnix
Deploying .NET services with DisnixDeploying .NET services with Disnix
Deploying .NET services with DisnixSander van der Burg
 
A Self-Adaptive Deployment Framework for Service-Oriented Systems
A Self-Adaptive Deployment Framework for Service-Oriented SystemsA Self-Adaptive Deployment Framework for Service-Oriented Systems
A Self-Adaptive Deployment Framework for Service-Oriented SystemsSander van der Burg
 
Using NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testingUsing NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testingSander van der Burg
 
Disnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentDisnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentSander van der Burg
 

Mais de Sander van der Burg (20)

The Monitoring Playground
The Monitoring PlaygroundThe Monitoring Playground
The Monitoring Playground
 
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
Dysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentDysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deployment
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
 
Deploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package managerDeploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package manager
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declaratively
 
Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with Disnix
 
Hydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The BasicsHydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The Basics
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
 
Techniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processes
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
A Generic Approach for Deploying and Upgrading Mutable Software Components
A Generic Approach for Deploying and Upgrading Mutable Software ComponentsA Generic Approach for Deploying and Upgrading Mutable Software Components
A Generic Approach for Deploying and Upgrading Mutable Software Components
 
Deploying .NET services with Disnix
Deploying .NET services with DisnixDeploying .NET services with Disnix
Deploying .NET services with Disnix
 
A Self-Adaptive Deployment Framework for Service-Oriented Systems
A Self-Adaptive Deployment Framework for Service-Oriented SystemsA Self-Adaptive Deployment Framework for Service-Oriented Systems
A Self-Adaptive Deployment Framework for Service-Oriented Systems
 
Using NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testingUsing NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testing
 
Pull Deployment of Services
Pull Deployment of ServicesPull Deployment of Services
Pull Deployment of Services
 
Disnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentDisnix: A toolset for distributed deployment
Disnix: A toolset for distributed deployment
 

Último

Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencySheetal Arora
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSarthak Sekhar Mondal
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Lokesh Kothari
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bSérgio Sacani
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
GBSN - Microbiology (Unit 1)
GBSN - Microbiology (Unit 1)GBSN - Microbiology (Unit 1)
GBSN - Microbiology (Unit 1)Areesha Ahmad
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...RohitNehra6
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡anilsa9823
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfSumit Kumar yadav
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTSérgio Sacani
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )aarthirajkumar25
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRDelhi Call girls
 
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxPhysiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxAArockiyaNisha
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)Areesha Ahmad
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfSumit Kumar yadav
 

Último (20)

Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
 
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 bAsymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
Asymmetry in the atmosphere of the ultra-hot Jupiter WASP-76 b
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
GBSN - Microbiology (Unit 1)
GBSN - Microbiology (Unit 1)GBSN - Microbiology (Unit 1)
GBSN - Microbiology (Unit 1)
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service  🪡
CALL ON ➥8923113531 🔝Call Girls Kesar Bagh Lucknow best Night Fun service 🪡
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 
Botany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdfBotany 4th semester file By Sumit Kumar yadav.pdf
Botany 4th semester file By Sumit Kumar yadav.pdf
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
CELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdfCELL -Structural and Functional unit of life.pdf
CELL -Structural and Functional unit of life.pdf
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCRStunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
 
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxPhysiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
 
GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)GBSN - Biochemistry (Unit 1)
GBSN - Biochemistry (Unit 1)
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 

Model-driven Distributed Software Deployment

  • 1. ing. S. van der Burg Healthcare Systems Architecture/Delft University of Technology September 16, 2008 Model-driven Distributed Software Deployment
  • 2. 2Healthcare Systems Architecture/TU Delft, April 09, 2008 Outline • Introduction • SDS2 • Nix • Disnix • Conclusions • Future work • Demonstration
  • 3. 3Healthcare Systems Architecture/TU Delft, April 09, 2008 Introduction • Software deployment is all of the activities that make a software system available for use – Install/Uninstall – Update – Release – Activate/Deactivate
  • 4. 4Healthcare Systems Architecture/TU Delft, April 09, 2008 Introduction • The software deployment process should be a simple problem, but it turns out to be much more complex – A software component is almost never self-contained – A software system should be able to find its dependencies – Some software components require specific hardware – Uninstalling should be safe – Keeping the system up to date should be safe and atomic
  • 5. 5Healthcare Systems Architecture/TU Delft, April 09, 2008 Introduction • Distributed systems are systems that appear to a user as one logical system – Components are distributed across different systems in a network and work together to reach a common goal • The software deployment process of distributed systems is even more difficult: – Dependencies of components on the same systems (intra- dependencies) – Dependencies of components running on different systems (inter- dependencies)
  • 6. 6Healthcare Systems Architecture/TU Delft, April 09, 2008 Introduction • Information technology infrastructure of hospitals is heterogeneous – Workstations – Medical equipment (e.g. MRI scanners) – Connected through wired and wireless network
  • 7. 7Healthcare Systems Architecture/TU Delft, April 09, 2008 Introduction • The software deployment process in hospital environments is a semi- automatic process • Software deployment in such an environment requires – Up-to-date documentation – People with necessary skills • A semi-automatic deployment process is – Error prone – Time consuming – Costly
  • 8. 8Healthcare Systems Architecture/TU Delft, April 09, 2008 Vision • The software deployment process should be a simple process, not a complex one • The software deployment process should be fully automatic, not semi- automatic • The configuration of a system should be captured in a model
  • 9. 9Healthcare Systems Architecture/TU Delft, April 09, 2008 Distributed Environment
  • 10. 10Healthcare Systems Architecture/TU Delft, April 09, 2008 Service Development Support System (SDS2) • Developed here at HSA • Asset management and utilization services for mobile medical equipment • Service Oriented Architecture – Information as a service – Services could be distributed across different machines
  • 11. 11Healthcare Systems Architecture/TU Delft, April 09, 2008 Components, Protocols & Technologies XMPP server equipment logs XMPP Logger equipment log summaries asset tracking service utilization service XMPP Generator floor plan SQL XMPP SOAP Java Axis2 ejabberd smack tomcat mysql GWT
  • 12. 12Healthcare Systems Architecture/TU Delft, April 09, 2008 Deployment View Philips EnterprisePhilips Enterprise HospitalHospital XMPP server TomCat server equipment logs XMPP Logger TomCat server equipment log summaries TomCat server asset tracking service TomCat server utilization service XMPP Generator Mobile Equipment TomCat server floor plan component types client transformer repository TomCat server communication protocols SQL SOAP XMPP event busevent bus
  • 13. 13Healthcare Systems Architecture/TU Delft, April 09, 2008 Nix • Nix is a purely functional package manger • Installing/upgrading/removing package automatically (like others RPM, dpkg etc.) • Nix expression language, a domain specific language to describe how components are built • All dependencies are explicit, this yields: – Multiple versions of a package to be installed side-by-side – Ensures that dependency specifications are complete – Supports atomic upgrades and rollbacks – “Niks” + UNIX = Nix • Nix deploys packages on local systems but not on distributed systems though
  • 14. 14Healthcare Systems Architecture/TU Delft, April 09, 2008 Example Nix expression {stdenv, fetchsvnssh, apacheAnt, jdk, mysql_jdbc, smack, config, username, password }: stdenv.mkDerivation { name = "XMPPLogger"; src = fetchsvnssh { url = "gforge.natlab.research.philips.com/svnroot/public/sds2/branches/N ixDeploy/SDS2Applications/XMPPLogger"; md5 = "62401d706079cb61d3b7e0badc818a1d"; inherit username; inherit password; }; builder = ./builder.sh; inherit jdk mysql_jdbc smack config; buildInputs = [apacheAnt jdk smack config]; }
  • 15. 15Healthcare Systems Architecture/TU Delft, April 09, 2008 Packages model rec { username = “user”; password = “secret”; config = import ../config { ... }; smack = ...; stdenv = ...; apacheAnt = ...; XMPPLogger = import ../SDS2Applications/XMPPLogger { inherit username password; inherit stdenv fetchsvnssh apacheAnt jdk; inherit smack mysql_jdbc; inherit config; }; ... }
  • 16. Research / Healthcare Systems Architecture, September 3, 2008 Package Dependency Graph AssetTracker Service
  • 17. 17Healthcare Systems Architecture/TU Delft, April 09, 2008 Nix deployment operations • Installing XMPP Logger: – nix-env -f pkgs.nix -i XMPPLogger • Uninstalling XMPP Logger: – nix-env -f pkgs.nix -e XMPPLogger • Upgrading XMPP Logger: – nix-env -f pkgs.nix -u XMPPLogger
  • 18. 18Healthcare Systems Architecture/TU Delft, April 09, 2008 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
  • 19. 19Healthcare Systems Architecture/TU Delft, April 09, 2008 Disnix overview
  • 20. 20Healthcare Systems Architecture/TU Delft, April 09, 2008 Services model ME2MSService = { name = "ME2MSService"; pkg = pkgs.SDS2.webservices.ME2MSService; dependsOn = [ MELogService FloorPlanService ]; }; MULogService = { name = "MULogService"; pkg = pkgs.SDS2.webservices.MULogService; dependsOn = [ ME2MSService ]; }; MELogService = { name = “MELogService”; pkg = pkgs.SDS2.webservices.MELogService; dependsOn = [ ... ]; };
  • 21. 21Healthcare Systems Architecture/TU Delft, April 09, 2008 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; }; }
  • 22. 22Healthcare Systems Architecture/TU Delft, April 09, 2008 Distribution model {services, infrastructure}: [ { service = services.FloorPlanService; target = infrastructure.dtk15; } { service = services.ME2MSService; target = infrastructure.dtk15; } { service = services.MELogService; target = infrastructure.dt2d1; } { service = services.MULogService; target = infrastructure.dtk15; } ... ]
  • 23. 23Healthcare Systems Architecture/TU Delft, April 09, 2008 Distributed atomic commits • Commit-request phase: – Build all components on the coordinator machine – Transfer the closures to the cohort machines through the webservice interface • Request phase, on each cohort: – Install component in profile – Activate the component
  • 24. 24Healthcare Systems Architecture/TU Delft, April 09, 2008 Conclusion • We have adapted and modeled the SDS2 system in Nix expressions to make it automatically deployable • We extended the Nix approach of software deployment of single system to distributed systems • We have demonstrated that we can deploy SDS2 in a distributed environment
  • 25. 25Healthcare Systems Architecture/TU Delft, April 09, 2008 Future work • Dynamic distribution based on Quality of Service models – Reliability by reducing the inter-dependencies • Symmetric build and deliver parts • Support for heterogeneous environments, example: – Linux coordinator – Windows/FreeBSD/Linux based network • Support for other types of distributed systems with other protocols • Investigate development constraints
  • 26. Research / Healthcare Systems Architecture, September 3, 2008 MySQL database SDS2AssetTracker EMLogService HIBService MELogService XMPPGenerator XMPPLogger Ejabberd SDS2Utilisation FloorplanService ME2MSService MULogService EventMerger DemoPortal VirtualBox/NixOSVirtualBox/NixOS nbu5 5 disnix VirtualBox/NixOS SDS2 Deployment Demo Initial deployment state Deployment over two machines Garbage collect to initial state