ICS 121: Packaging and Deployment
Overview
- Why pacakge code?
- Deployment concerns
- Some packaging tools
- Some deployment tools
Why package code?
- After a software product is fully developed and tested, it must
be packaged so that it can be easily deployed and used.
- Packaged code is usually in just one or a few files, rather than
hundreds of .class or .o files. The package file is called an
"archive".
- The package itself adds additional information about the
product:
- Product name and version
- Package dependencies: other things that must be installed first
- Sometimes a brief description of the product
- Sometimes contact information for the author or vendor
- Cryptographic signature of author or vendor
Deployment concerns
- Deployment is the process of transfering packaged code to a
machine where it will run and installing it.
- Deployment may be explicit (e.g., I put a disk in the CDROM
drive) or implicit (e.g., I run a program and it checks if an
updated version is available then offers to download and install the
update).
- The correct version of the product must be selected for this
environment. Usually the latest version should be found and
deployed.
- An installer program does the work of installing the pacakged
code. Must detect any missing dependent packages. There must be
ways to upgrade or uninstall the product. A database of currently
installed software must be maintained.
- Users only want to deploy authentic products, not trojans or
viruses. Must check cryptographic signature.
- Licensing verification: how do you really know if the user is
licensed to run this software? CD key, product activation, license
server.
Some packaging tools and formats
- Jar/War/Ear: Java archive formats. These are just .zip files
with some extra files of meta-data.
- jarsigner: Java tool to cryptographically sign an archive
- RPM: The Redhat Package
Manager, a linux file format for software packages.
Some Deployment Tools
- InstallSheild: Popular installer program generator for Windows
- InstallAnywhere: Popular installer program generator for
Windows
- JavaWebStart: Automatically downloads, installs, upgrades, and
runs Java applications when the user clicks on a link.
example use case templatesample test plan templateProject plan template