CSC 405 Lecture Notes Week 3 Literature Survey of Software Deployment, Evolution, and Maintenance

  1. Introduction.
    1. We'll discuss 3 papers from the readings
    2. They're wide-ranging surveys. Three papers chosen from the readings., cont'd
    3. The papers are
      1. "Software Deployment, Past, Present and Future", Alan Dearle, Proceedings of the 2007 Conference on the Future of Software Engineering, IEEE CS.
      2. "Software evolutionBackground, theory, practice", Meir M. Lehman, Juan F. Ramil, Information Processing Letters 88 (2003), Elsevier.
      3. "25 Years of Software Maintenance", Scott Tilley, 2009 IEEE International Conference on Software Maintenance,, IEEE CS.

    The Deployment Paper

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