A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Type-safe linking and modular assembly language
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A conceptual foundation for component-based software deployment
Journal of Systems and Software
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
Type-Safe linking with recursive DLLs and shared libraries
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular Internet Programming with Cells
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Evaluating Software Deployment Languages and Schema
ICSM '98 Proceedings of the International Conference on Software Maintenance
.Net and COM Interoperability Handbook
.Net and COM Interoperability Handbook
MJ: a rational module system for Java and its applications
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
An Open Framework for Dynamic Reconfiguration
Proceedings of the 26th International Conference on Software Engineering
Interaction-based programming with classages
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Flexible models for dynamic linking
ESOP'03 Proceedings of the 12th European conference on Programming
A model of dynamic binding in .NET
CD'05 Proceedings of the Third international working conference on Component Deployment
A fault-tolerant approach to test control utilizing dual-redundant processors
Advances in Engineering Software
Ontology-Based Compatibility Checking for Web Service Configuration Management
ICSOC '08 Proceedings of the 6th International Conference on Service-Oriented Computing
WS-BPEL Extensions for Versioning
Information and Software Technology
WSDL and UDDI extensions for version support in web services
Journal of Systems and Software
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Toward a unified object model for cyber-physical systems
Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications
Toward a rewriting logic framework for safe and distributed component installation
VECoS'11 Proceedings of the Fifth international conference on Verification and Evaluation of Computer and Communication Systems
A goal-oriented programming framework for grid sensor networks with reconfigurable embedded nodes
ACM Transactions on Embedded Computing Systems (TECS)
Towards formalising installation and reconfiguration tasks of AADL architecture
International Journal of Communication Networks and Distributed Systems
A RT-Maude-based framework for component installation
International Journal of Critical Computer-Based Systems
Hi-index | 0.00 |
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.