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.
- 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.]]Google Scholar
- Balaban, I., Tip, F., and Fuhrer, R. Refactoring Support for Class Library Migration. In OOPSLA '05 (2005), pp. 265--279.]] Google Scholar
Digital Library
- The Scala Bazaar System, http://scala.epfl.ch/downloads/sbaz.html.]]Google Scholar
- BEA .BEA WebLogic Server Enterprise JavaBeans 1.1, http://www.weblogic.com/docs51/classdocs/API_ejb/.]]Google Scholar
- Buckley, A. A model of dynamic binding in .NET. In Proceedings of 3rd International Working Conference on Component Deployment (2005), pp. 149--163.]] Google Scholar
Digital Library
- Cardelli, L. Program fragments, linking, and modularization. In POPL'97 (1997), pp. 266--277.]] Google Scholar
Digital Library
- 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.]]Google Scholar
Cross Ref
- 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.]]Google Scholar
- Corwin, J., Bacon, D. F., Grove, D., and Murthy, C. MJ: a rational module system for java and its applications. In OOPSLA'03 (2003), pp. 241--254.]] Google Scholar
Digital Library
- Comprehensive perl archive network, http://www.cpan.org.]]Google Scholar
- Comprehensive tex archive network, http://www.ctan.org.]]Google Scholar
- Debian package management, http://www.debian.org.]]Google Scholar
- Drossopoulou, S., Lagorio, G., and Eisenbach, S. Flexible models for dynamic linking. In Proceedings of the 12th European Symposium on Programming (2003).]]Google Scholar
Cross Ref
- Duggan, D. Type-safe linking with recursive DLLs and shared libraries. ACM Transactions on Programming Languages and Systems 24, 6 (2002), 711--804.]] Google Scholar
Digital Library
- Eclipse, http://www.eclipse.org.]]Google Scholar
- ECMA. Standard ECMA -335: Common Language Infrastructure, 2002.]]Google Scholar
- EJB 3.0 Expert Group. JSR 220: Enterprise JavaBeans Version 3.0, June 2005.]]Google Scholar
- Ewing, M., and Troan, E. The RPM packaging system. In Proceedings of the 1st Conference on Freely Redistributable Software (1996).]]Google Scholar
- Flatt, M., and Felleisen, M. Units: Cool modules for HOT languages. In PLDI'98 (1998), pp. 236--248.]] Google Scholar
Digital Library
- Glew, N., and Morrisett, G. Type-safe linking and modular assembly language. In POPL'99 (1999), pp. 250--261.]] Google Scholar
Digital Library
- Gordon, A. The .NET and COM Interoperability Handbook. Pearson Education, Inc., Upper Saddle River, NJ, USA, 2003.]] Google Scholar
Digital Library
- Hall, R. S., Heimbigner, D. M., and Wolf, A. L. Evaluating software deployment languages and schema. In ICSM '98: Proceedings of the International Conference on Software Maintenance (Washington, DC, USA, 1998), IEEE Computer Society, p. 177.]] Google Scholar
Digital Library
- Hicks, M. W., Moore, J. T., and Nettles, S. Dynamic software updating. In PLDI'01 (2001), pp. 13--23.]] Google Scholar
Digital Library
- Hillman, J., and Warren, I. An Open Framework for Dynamic Reconfiguration. In ICSE'04 (2004), pp. 594--603.]] Google Scholar
Digital Library
- Installshield, http://www.installshield.com.]]Google Scholar
- Liskov, B., and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16, 6 (Nov. 1994), 1811--1841.]] Google Scholar
Digital Library
- Liu, Y. D., and Smith, S. F. Modules With Interfaces for Dynamic Linking and Communication. In ECOOP'04 (2004), pp. 414--439.]]Google Scholar
- Liu, Y. D., and Smith, S. F. Interaction-based Programming with Classages. In OOPSLA '05 (2005), pp. 191--209.]] Google Scholar
Digital Library
- 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.]]Google Scholar
- McCamant, S., and Ernst, M. D. Early identification of incompatibilities in multi-component upgrades. In Proceedings of the 18th ECOOP (2004), pp. 440--464.]]Google Scholar
Cross Ref
- McDirmid, S., Flatt, M., and Hsieh, W. Jiazzi: New-Age Components for Old-Fashioned Java. In OOPSLA'01 (2001), pp. 211--222.]] Google Scholar
Digital Library
- Meijer, E., and Gough, J. Technical Overview of the Common Language Runtime, 2000.]]Google Scholar
- Microsoft. Component Object Model Technologies, http://www.microsoft.com/com/.]]Google Scholar
- Mono, http://www.mono-project.com.]]Google Scholar
- MSDN. Shared Source Common Language Infrastructure 1.0 R elease, http://msdn.microsoft.com/net/sscli/.]]Google Scholar
- Object Management Group. Deployment and Configuration of Component-based Distributed Applications Specification, July 2003.]]Google Scholar
- OSGi. Open services gateway initiative service platform, release 4 core, available at http://www.osgi.org, 2005.]]Google Scholar
- Parrish, A., Dixon, B., and Cordes, D. A conceptual foundation for component-based software deployment. Journal of Systems and Software 57, 3 (2001), 193--200.]] Google Scholar
Digital Library
- Pietrek, M. Avoiding DLL hell: Introducing application metadata in the microsoft .NET framework. MSDN Magazine, available at http://msdn.microsoft.com/ (2000).]]Google Scholar
- Portage, http://www.gentoo.org.]]Google Scholar
- 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.]] Google Scholar
Digital Library
- Rinat, R., and Smith, S. F. Modular internet programming with cells. In Proceedings of the 16th ECOOP (2002), pp. 257--280.]] Google Scholar
Digital Library
- Rubygems, http://rubyforge.org/projects/rubygems/.]]Google Scholar
- Szyperski, C. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002.]] Google Scholar
Digital Library
Index Terms
A formal framework for component deployment
Recommendations
A formal framework for component deployment
Proceedings of the 2006 OOPSLA ConferenceSoftware 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 ...
Deployment challenges in log-based PKI enhancements
EuroSec '15: Proceedings of the Eighth European Workshop on System SecurityLog-based PKI enhancements propose to improve the current TLS PKI by creating public logs to monitor CA operations, thus providing transparency and accountability. In this paper we take the first steps in studying the deployment process of log-based PKI ...
Decentralized Cross-organizational Application Deployment Automation: An Approach for Generating Deployment Choreographies Based on Declarative Deployment Models
Advanced Information Systems EngineeringAbstractVarious technologies have been developed to automate the deployment of applications. Although most of them are not limited to a specific infrastructure and able to manage multi-cloud applications, they all require a central orchestrator that ...







Comments