1. Model-driven Distributed Software Deployment
Sander van der Burg
Technische Universiteit Delft, EWI,
Afdeling Software Technologie
Philips Research, Healthcare Systems Architecture,
Eindhoven
17 Maart 2009
Sander van der Burg Model-driven Distributed Software Deployment
2. Introductie
“Model-driven Distributed Software Deployment”
Software Engineering
Software Deployment
Model-driven
Distributed systems
Sander van der Burg Model-driven Distributed Software Deployment
3. Software Engineering
“Discipline die zich bezighoudt met alle aspecten van het bouwen
van software systemen”
Sander van der Burg Model-driven Distributed Software Deployment
4. Software Engineering
Het bouwen van software systemen is complex:
Voldoet een softwaresysteem aan de gestelde eisen?
Hoe zijn we er zeker van dat een softwaresysteem werkt?
Hoe kunnen we het ontwikkelproces verbeteren?
Hoe kunnen we de kans op fouten verminderen?
Hoe kunnen we het ontwikkelproces sneller maken?
Hoe maken we een software systeem onderhoudbaar?
Sander van der Burg Model-driven Distributed Software Deployment
5. Software Deployment
Alle activiteiten die uitgevoerd moeten worden om een systeem
geschikt te maken voor gebruik:
Sander van der Burg Model-driven Distributed Software Deployment
6. Software Deployment
Alle activiteiten die uitgevoerd moeten worden om een systeem
geschikt te maken voor gebruik:
Bouwen van componenten van een softwaresysteem
Versturen van componenten van de producent naar de klant
Installeren van componenten
Activeren van software componenten
Upgraden van componenten
Sander van der Burg Model-driven Distributed Software Deployment
7. Software Deployment
Software deployment is complex:
Programma’s hebben afhankelijkheden op andere software, bv.
bibliotheken.
Nieuwe versies kunnen overschreven worden door oudere
versies en de software breken (DLL-hell)
Programma’s hebben soms afhankelijkheden op specifieke
versies/varianten van onderdelen
Nieuwere versies van componenten zijn niet altijd compatibel
met oudere versies
Internet Explorer 6 i.p.v. Internet Explorer 7
Sander van der Burg Model-driven Distributed Software Deployment
8. Software Deployment
Het deinstalleren of verwijderen van software is meestal
onveilig.
Hoe weet je zeker dat het niet meer in gebruik is of benodigd
is voor iets anders?
Upgraden is niet atomair. Als het uitvoeren van een upgrade
faalt kan het systeem niet meer werken.
Falende Windows Update: Herinstallatie nodig.
Sander van der Burg Model-driven Distributed Software Deployment
10. Model-driven
Om software deployment automatisch uit te voeren is een
specificatie nodig die beschrijft wat er gedaan moet worden.
De Nix package manager heeft een eigen taal om bouwacties
mee te beschrijven.
Sander van der Burg Model-driven Distributed Software Deployment
11. Distributed systems
Een systeem waarbij:
Onderdelen van het systeem zijn verspreid over meerdere
computers in een netwerk.
Onderdelen werken samen om een doel te bereiken
Ziet er voor de gebruiker uit als ´e´en systeem
Sander van der Burg Model-driven Distributed Software Deployment
12. Distributed systems
Het software deployment proces voor een gedistribueerd systeem is
moeilijker:
Kost veel tijd en is complex: op verschillende machines
moeten verschillende deployment stappen op de juiste manier
uitgevoerd worden
Kan niet atomair gebeuren. Tijdens het upgraden is het
systeem inconsistent.
Voorbeeld: Ziekenhuizen. Upgraden maar slechts een of twee
keer per jaar.
Sander van der Burg Model-driven Distributed Software Deployment
15. Model-driven Distributed Software Deployment
Nix package manager maakt software deployment makkelijker,
maar werkt met enkele systemen
Om een gedisitribueerd systeem te kunnen deployen moeten
we Nix uitbreiden; Disnix
Nieuwe modellen om eigenschappen van de deployment van
gedistribueerde systemen te beschrijven
Nieuwe tools om deployment stappen te kunnen uitvoeren
Met Disnix kunnen we automatisch SDS2 gedistribueerd
deployen
Sander van der Burg Model-driven Distributed Software Deployment