CSC 405 Lecture Notes Week 3
Literature Survey of Software Deployment, Evolution, and Maintenance
- Introduction.
- We'll discuss 3 papers from the readings
- They're wide-ranging surveys.
Three papers chosen from the readings., cont'd
- The papers are
- "Software Deployment, Past, Present and Future", Alan Dearle, Proceedings of the 2007
Conference on the Future of Software Engineering, IEEE CS.
- "Software evolutionBackground, theory, practice", Meir M. Lehman, Juan F. Ramil,
Information Processing Letters 88 (2003), Elsevier.
- "25 Years of Software Maintenance", Scott Tilley, 2009 IEEE International Conference on
Software Maintenance,, IEEE CS.
The Deployment Paper
- What is it?
- Post-production activity.
- Performed by developers and/or customers.
- Has one or more of these steps:
-
What is it?, cont'd
- release
- configuration
CSC405-F10-L3 Slide 2
- installation
- activation
- monitoring
What is it?, cont'd
- updating
- reconfiguration
- redeploying
- deactivation
- undeploying
What Gets Deployed
- A formalized definition is UML Component
- Has "contractually specified interfaces and explicit context dependencies".
- Uses well-defined resources.
- Is versioned.
What Gets Deployed?, cont'd
- OMG defines domain to be the target environment.
- They define the inter-domain concepts of
- component discovery
- component binding
Six Case Studies
- Java Beans
- Linux
- .Net
- OMG, Corba
- Service-Oriented Computing
- Virtualization
Java Beans
- Standard for server-side components.
- Sun (now Oracle) defines process.
- Use jar files and XML descriptor files.
Java Beans, cont'd
- Issues:
No good "bean registry", making installation of new beans problematic
- Very language dependent.
- The "deploy with our free runtime" is an interesting model
CSC405-F10-L3 Slide 3
Linux
- RedHat Package Manager (RPM) is cited as most common method of deployment.
- Deploys in binary or source.
Linux, cont'd
- Question -- are these RPM packaging elements standard for Linae?
- lead
- signature
- header
- archive
Linux, cont'd
- Issues:
- OS platform dependent.
- Somewhat language independent (cf. Java Beans).
.Net
- Deployment unit is an Assembly.
- Includes name, version, and public key.
- Uses metadata manifests.
- Uses platform-specific Common Interface Language.
.Net, cont'd
- Issues:
- OS platform dependent.
- Somewhat more language independent (cf. Java Beans, Linux).
- Anyone here have experience with it?
OMG CORBA
- Ambitious attempt at platform independence.
- Uses 5-step process:
- installation
- configuration
- planning (for launch)
- preparation (for launch)
- launch
OMG CORBA, cont'd
- Uses various OMG models, e.g.,
CSC405-F10-L3 Slide 4
- Platform Independent Model (PIM).
- CORBA Component Model (
- Uses UML concepts, IDL mid-level definition, XML details.
OMG CORBA, cont'd Issues:
- Pretty darn complicated.
- Still, most complete attempt at a deployment standard.
- Service-Oriented Computing
- Examples include
- Apache Axis.
- Microsoft IIS
- Question: Anyone have experience with these?
Service-Oriented Computing, cont'd
- Issues:
- It has potential.
- Not clear yet if it's a money maker
- Virtualization
- Abstract platform dependencies into a generic layer.
- E.g., VMWare
Virtualization, cont'd
- Issues:
- Seems to have great potential.
- Dearle says potentially "profound implications"
.
Not in Dearle's List, but Worth Considering
- Debian, Fink and their ilk.
- COTS in various forms.
- App Stores, e.g., Apple and Android.
- Question: Anyone have experience with these?
Issues Revisited
- Binding
CSC405-F10-L3 Slide 5
- Runtime environments
- Light Weight Containers, e.g., J2EE Spring
- Change Management
- Metadata Config Files