A Reference Architecture for Distributed Software Deployment

  title={A Reference Architecture for Distributed Software Deployment},
  author={Sander van der Burg},
Nowadays, software systems are bigger and more complicated than people may think. Apart from the fact that a system has to be correctly constructed and should meet the client's wishes, they also have to be made ready for use to end-users or in an isolated test environment. This process is known as the software deployment process. Due to various developments, e.g. increasing complexity of requirements to a system and new techniques that have been developed to support these, the software… 
Run-time resource management for component-based systems
This work introduces two novel resource models for capturing the resource utilization of a software component: a state-based and a mode-based resource model, and investigates the effect of a simple resource management policy that predicts a resource usage state for the next time slot based on the resource utilized state of the current time slot.
Web Service Growing Pains: Understanding Services and Their Clients
This thesis created and evaluated an implementation of a runtime topology (Serviz) which provides the system maintainer with an overview of which web services communicated with which other web services, and investigated whether web service providers have developed resilience against potentially unstable and frequently changing web services.
Towards a Theory of Packages
This work presents a package system that ensures installability and type-safety of packages by using interfaces for package metadata, by addressing linker insufficiencies and by imposing restrictions on repositories.
Software analysis methods for resource-sensitive systems
In his dissertation, Rody Kersten presents innovative analysis methods that go beyond the validation of input-output behaviour and concerns mostly non-functional properties of embedded systems, such as wireless sensor nodes.
Title: Combining Monitoring with Run-time Assertion Checking 1.1 Prevention, Isolation and Fixing Bugs Type-checking Static Verification
There is a trade-off between the expressiveness of the type system, and the degree of automation of the corresponding type checks, which focuses on finding more expressive typesystems which are also efficiently decidable.
Scalable multi-core model checking
The goal of the current thesis is to enable the full use of computational power of modern multi-core computers for model checking, and achieves efficient parallelization of a broad set of model checking problems in three steps.
JTorX: exploring model-based testing
The overall goal of the work described in this thesis is: "To design a flexible tool for state-of-the-art model-based derivation and automatic application of black-box tests for reactive systems,
Combining Monitoring with Run-Time Assertion Checking
This method described in this tutorial is based on automated run-time checking of a combination of protocol- and data-oriented properties of object-oriented programs.
Applying formal methods in software development
Using PVS (Prototype Verification System), it is proved that an industry designed scheduler for a smartcard personalization machine is safe and optimal and shows that theorem provers can be successfully used for industrial problems in cases where model checkers suffer from state explosion.
The process matters: cyber security in industrial control systems
relevant information describing process operation can be extracted and analysed from common system traces to improve the awareness of the detector about the process that is under the control of the ICS and lay the ground for detecting critical process attacks that cannot be addressed by the existing solutions.


Disnix: A toolset for distributed deployment
Deploying loosely coupled, component-based applications into distributed environments
A graph-based approach is presented that is not dependent on any specific component technology and does the deployment planning with respect to the communication resources required by application components and communication resources available on the hosts in the target environment.
A generic approach for deploying and upgrading mutable software components
  • S. V. D. Burg
  • Computer Science
    2012 4th International Workshop on Hot Topics in Software Upgrades (HotSWUp)
  • 2012
This paper analyses the properties of mutable components and proposes Dysnomia, a deployment extension for mutable component deployment in Nix, a purely functional package manager.
Service configuration management
This paper shows that build management, software deployment and service deployment can be integrated into a single formalism, and shows that its advantages --- co-existence of versions and variants, atomic upgrades and rollbacks, and component closure --- extend naturally to service deployment.
An Extensible Framework for Improving a Distributed Software System's Deployment Architecture
This paper presents and evaluates a framework aimed at finding the most appropriate deployment architecture for a distributed software system with respect to multiple, possibly conflicting QoS dimensions and provides a set of tailorable algorithms for improving a system's deployment.
Improving Availability in Large, Distributed Component-Based Systems Via Redeployment
In this paper, a fast approximative solution for deter-mining a software system's deployment that will maximize its availability is presented, and its performance is assessed.
Design recovery and maintenance of build systems
The design and implementation of a re(verse)-engineering framework for build systems named MAKAO is presented, which makes the build's dependency graph available in a tangible way and enables powerful querying of all build-related data.
Reliable Deployment of Component-based Applications into Distributed Environments
  • A. Heydarnoori, F. Mavaddat
  • Computer Science, Engineering
    Third International Conference on Information Technology: New Generations (ITNG'06)
  • 2006
A graph-based deployment planning approach is proposed for this purpose to increase the reliability of a distributed component-based application so that the communications among its components are done as local as possible.
Declarative testing and depolyment of distributed systems
This paper describes how networks of computer systems can be reproducibly and automatically deployed from declarative specifications, and instantiate machines from the specifications using NixOS, a Linux distribution built from a purely functional specification.
Automating experimentation on distributed testbeds
The approach is founded on a suite of models that characterize the distributed system under experimentation, the testbeds upon which the experiments are to be carried out, and the client behaviors that drive the experiments, and is a generic, programmable tool.