|
ABSTRACT
Software deployment is a complex process, and industrial-strength frameworks such as .NET, Java, and CORBA all provide explicit support for component deployment. However, these frameworks are not built around fundamental principles as much as they are engineering efforts closely tied to particulars of the respective systems. Here we aim to elucidate the fundamental principles of software deployment, in a platform-independent manner. Issues that need to be addressed include deployment unit design, when, where and how to wire components together, versioning, version dependencies, and hot-deployment of components. We define the application buildbox as the place where software is developed and deployed, and define a formal Labeled Transition System (LTS) on the buildbox with transitions for deployment operations that include build, install, ship, and update. We establish formal properties of the LTS, including the fact that if a component is shipped with a certain version dependency, then at run time that dependency must be satisfied with a compatible version. Our treatment of deployment is both platform- and vendor-independent, and we show how it models the core mechanisms of the industrial-strength deployment frameworks.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Allen, E., Chase, D., Luchangco, V., Ryu, J. W. M. S., Steele, G., and Tobin-Hochstadt, S. The Fortress Language Specification (Version 0.618), April 2005.
|
 |
2
|
Ittai Balaban , Frank Tip , Robert Fuhrer, Refactoring support for class library migration, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
| |
3
|
The Scala Bazaar System, http://scala.epfl.ch/downloads/sbaz.html.
|
| |
4
|
BEA .BEA WebLogic Server Enterprise JavaBeans 1.1, http://www.weblogic.com/docs51/classdocs/API_ejb/.
|
| |
5
|
Buckley, A. A model of dynamic binding in .NET. In Proceedings of 3rd International Working Conference on Component Deployment (2005), pp. 149--163.
|
 |
6
|
|
| |
7
|
Chatley, R., Eisenbach, S., and Magee, J. Magicbeans: a platform for deploying plugin components. In Second International Working Conference on Component Deployment (2004), vol. 3083, pp. 97--112.
|
| |
8
|
Chen, X., and Simons, M. A component framework for dynamic reconfiguration of distributed systems. In Lecture Notes in Computer Science, Volume 2370 (Jan 2002), vol. 2370.
|
 |
9
|
John Corwin , David F. Bacon , David Grove , Chet Murthy, MJ: a rational module system for Java and its applications, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
10
|
Comprehensive perl archive network, http://www.cpan.org.
|
| |
11
|
Comprehensive tex archive network, http://www.ctan.org.
|
| |
12
|
Debian package management, http://www.debian.org.
|
| |
13
|
Drossopoulou, S., Lagorio, G., and Eisenbach, S. Flexible models for dynamic linking. In Proceedings of the 12th European Symposium on Programming (2003).
|
 |
14
|
|
| |
15
|
Eclipse, http://www.eclipse.org.
|
| |
16
|
ECMA. Standard ECMA -335: Common Language Infrastructure, 2002.
|
| |
17
|
EJB 3.0 Expert Group. JSR 220: Enterprise JavaBeans Version 3.0, June 2005.
|
| |
18
|
Ewing, M., and Troan, E. The RPM packaging system. In Proceedings of the 1st Conference on Freely Redistributable Software (1996).
|
 |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
 |
23
|
|
| |
24
|
|
| |
25
|
Installshield, http://www.installshield.com.
|
 |
26
|
|
| |
27
|
Liu, Y. D., and Smith, S. F. Modules With Interfaces for Dynamic Linking and Communication. In ECOOP'04 (2004), pp. 414--439.
|
 |
28
|
Yu David Liu , Scott F. Smith, Interaction-based programming with classages, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
| |
29
|
Liu, Y. D., and Smith, S. F. A Formal Framework for Component Deployment (Long Version), http://www.cs.jhu.edu/~yliu/deploy/. Tech. rep., The Johns Hopkins University, Baltimore, Maryland, March 2006.
|
| |
30
|
McCamant, S., and Ernst, M. D. Early identification of incompatibilities in multi-component upgrades. In Proceedings of the 18th ECOOP (2004), pp. 440--464.
|
 |
31
|
Sean McDirmid , Matthew Flatt , Wilson C. Hsieh, Jiazzi: new-age components for old-fasioned Java, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.211-222, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
32
|
Meijer, E., and Gough, J. Technical Overview of the Common Language Runtime, 2000.
|
| |
33
|
Microsoft. Component Object Model Technologies, http://www.microsoft.com/com/.
|
| |
34
|
Mono, http://www.mono-project.com.
|
| |
35
|
MSDN. Shared Source Common Language Infrastructure 1.0 R elease, http://msdn.microsoft.com/net/sscli/.
|
| |
36
|
Object Management Group. Deployment and Configuration of Component-based Distributed Applications Specification, July 2003.
|
| |
37
|
OSGi. Open services gateway initiative service platform, release 4 core, available at http://www.osgi.org, 2005.
|
| |
38
|
|
| |
39
|
Pietrek, M. Avoiding DLL hell: Introducing application metadata in the microsoft .NET framework. MSDN Magazine, available at http://msdn.microsoft.com/ (2000).
|
| |
40
|
Portage, http://www.gentoo.org.
|
| |
41
|
Reid, A., Flatt, M., Stoller, L., Lepreau, J., and Eide, E. Knit: Component composition for systems software. In Proc. of the 4th Operating Systems Design and Implementation (OSDI) (October 2000), pp. 347--360.
|
| |
42
|
|
| |
43
|
Rubygems, http://rubyforge.org/projects/rubygems/.
|
| |
44
|
|
|