Event-Based Execution Architectures for Dynamic
Software Systems
James Vera, Louis Perrochon, David C. Luckham
Computer Systems Laboratory
Stanford University
Stanford, CA 94305, USA
{vera,perrochon,dclj@pavg.stanford.edu
Key words: Evolutionary software architectures, software artifacts, component
engineering.
Abstract: Distributed systems' runtime behavior can be difficult to understand.
Concurrent, distributed activity make notions of global state difficult to grasp.
We focus on the runtime structure of a system, its execution architecture, and
propose representing its evolution as a partially ordered set of predefined
architectural event types. This representation allows a system's topology to be
visualized, analyzed and constrained. The use of a predefined event types
allows the execution architectures of different systems to be readily compared.
1. INTRODUCTION
Distributed software systems consist of computational components
interacting over a communications infrastructure. The executions of these
systems can be highly dynamic with components being created and
destroyed and the communications infrastructure undergoing continual
reconfiguration. We propose to represent the evolution of the structure of
such a running system, termed the execution architecture of the system, as a
set of events, partially ordered by time and causality. This partial order of
architectural events enables the precise analysis of the topological evolution
of a system, just as a partial order of behavioral events enables a precise
analysis of the functional activity of a system (Peled, Pratt et al. 1996).
The original version of this chapter was revised: The copyright line was incorrect. This has been
corrected. The Erratum to this chapter is available at DOI: 10.1007/978-0-387-35563-4 35
P. Donohoe (ed.), Software Architecture
©
IFIP International Federation for Information Processing 1999