skip to main content
10.1145/1167473.1167502acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

A formal framework for component deployment

Published:16 October 2006Publication History

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

  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.]]Google ScholarGoogle Scholar
  2. Balaban, I., Tip, F., and Fuhrer, R. Refactoring Support for Class Library Migration. In OOPSLA '05 (2005), pp. 265--279.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. The Scala Bazaar System, http://scala.epfl.ch/downloads/sbaz.html.]]Google ScholarGoogle Scholar
  4. BEA .BEA WebLogic Server Enterprise JavaBeans 1.1, http://www.weblogic.com/docs51/classdocs/API_ejb/.]]Google ScholarGoogle Scholar
  5. Buckley, A. A model of dynamic binding in .NET. In Proceedings of 3rd International Working Conference on Component Deployment (2005), pp. 149--163.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cardelli, L. Program fragments, linking, and modularization. In POPL'97 (1997), pp. 266--277.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.]]Google ScholarGoogle ScholarCross RefCross Ref
  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.]]Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Comprehensive perl archive network, http://www.cpan.org.]]Google ScholarGoogle Scholar
  11. Comprehensive tex archive network, http://www.ctan.org.]]Google ScholarGoogle Scholar
  12. Debian package management, http://www.debian.org.]]Google ScholarGoogle Scholar
  13. Drossopoulou, S., Lagorio, G., and Eisenbach, S. Flexible models for dynamic linking. In Proceedings of the 12th European Symposium on Programming (2003).]]Google ScholarGoogle ScholarCross RefCross Ref
  14. Duggan, D. Type-safe linking with recursive DLLs and shared libraries. ACM Transactions on Programming Languages and Systems 24, 6 (2002), 711--804.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Eclipse, http://www.eclipse.org.]]Google ScholarGoogle Scholar
  16. ECMA. Standard ECMA -335: Common Language Infrastructure, 2002.]]Google ScholarGoogle Scholar
  17. EJB 3.0 Expert Group. JSR 220: Enterprise JavaBeans Version 3.0, June 2005.]]Google ScholarGoogle Scholar
  18. Ewing, M., and Troan, E. The RPM packaging system. In Proceedings of the 1st Conference on Freely Redistributable Software (1996).]]Google ScholarGoogle Scholar
  19. Flatt, M., and Felleisen, M. Units: Cool modules for HOT languages. In PLDI'98 (1998), pp. 236--248.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Glew, N., and Morrisett, G. Type-safe linking and modular assembly language. In POPL'99 (1999), pp. 250--261.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Gordon, A. The .NET and COM Interoperability Handbook. Pearson Education, Inc., Upper Saddle River, NJ, USA, 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Hicks, M. W., Moore, J. T., and Nettles, S. Dynamic software updating. In PLDI'01 (2001), pp. 13--23.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Hillman, J., and Warren, I. An Open Framework for Dynamic Reconfiguration. In ICSE'04 (2004), pp. 594--603.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Installshield, http://www.installshield.com.]]Google ScholarGoogle Scholar
  26. Liskov, B., and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16, 6 (Nov. 1994), 1811--1841.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Liu, Y. D., and Smith, S. F. Modules With Interfaces for Dynamic Linking and Communication. In ECOOP'04 (2004), pp. 414--439.]]Google ScholarGoogle Scholar
  28. Liu, Y. D., and Smith, S. F. Interaction-based Programming with Classages. In OOPSLA '05 (2005), pp. 191--209.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.]]Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle ScholarCross RefCross Ref
  31. McDirmid, S., Flatt, M., and Hsieh, W. Jiazzi: New-Age Components for Old-Fashioned Java. In OOPSLA'01 (2001), pp. 211--222.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Meijer, E., and Gough, J. Technical Overview of the Common Language Runtime, 2000.]]Google ScholarGoogle Scholar
  33. Microsoft. Component Object Model Technologies, http://www.microsoft.com/com/.]]Google ScholarGoogle Scholar
  34. Mono, http://www.mono-project.com.]]Google ScholarGoogle Scholar
  35. MSDN. Shared Source Common Language Infrastructure 1.0 R elease, http://msdn.microsoft.com/net/sscli/.]]Google ScholarGoogle Scholar
  36. Object Management Group. Deployment and Configuration of Component-based Distributed Applications Specification, July 2003.]]Google ScholarGoogle Scholar
  37. OSGi. Open services gateway initiative service platform, release 4 core, available at http://www.osgi.org, 2005.]]Google ScholarGoogle Scholar
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. Pietrek, M. Avoiding DLL hell: Introducing application metadata in the microsoft .NET framework. MSDN Magazine, available at http://msdn.microsoft.com/ (2000).]]Google ScholarGoogle Scholar
  40. Portage, http://www.gentoo.org.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Rinat, R., and Smith, S. F. Modular internet programming with cells. In Proceedings of the 16th ECOOP (2002), pp. 257--280.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Rubygems, http://rubyforge.org/projects/rubygems/.]]Google ScholarGoogle Scholar
  44. Szyperski, C. Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A formal framework for component deployment

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!