Forms, Agents and Channels: Defining Composition Abstraction with Style

Achermann, Franz (2002). Forms, Agents and Channels: Defining Composition Abstraction with Style. (Dissertation, University of Bern, Philosophisch-naturwissenschaftliche Fakultät)

[img] Text
acherman-phd.pdf - Published Version
Restricted to registered users only
Available under License Publisher holds Copyright.

Download (1MB)

Object-oriented technology and design is not the final answer to the recurrent problem of making systems, on one hand, more open and flexible and, on the other hand, more robust, safe, and fast. While object-oriented languages have a lot of success in implementing components, they have rather limited support for expressing composition abstractions. As such, the component-based software principle is only partially supported by the object-oriented approach. Component-based software development breaks down an application into stable parts, i.e., the components, and high-level abstractions for composing the components. Flexibility is provided by the possibility to recompose. How can we design a composition language to support this metaphor? What mechanisms are needed to encapsulate components, to make their contextual assumptions explicit, and to define composition abstractions in a compact way? We argue that we should seek the minimal kernel of mechanisms that allows us to define composition abstractions, instead of adding additional language constructs to the object-oriented paradigm. This is necessary in order to reason about these abstractions and derive properties of the composed application. In this thesis we propose Forms, Agents and Channels as this minimal set of abstractions. Forms are extensible records unified with services. They are primitive objects, act as explicit namespaces, and encapsulate arguments to invoke services. Agents are autonomous entities that exchange forms along channels. We show that this simple model is expressive enough to define high-level composition abstractions while being small enough to be mathematically tractable. We present the formal model of forms, agents and channels in terms of a composition calculus. We encode the composition calculus into the asynchronous pi-calculus and show the soundness of this encoding. We define the composition language Piccola on top of the composition calculus by adding some syntactic sugar and by defining a bridge to access external components. The usefulness of Piccola is demonstrated by defining composition abstractions and reasoning about them at the level of the language. We present several kinds of composition abstractions: wrappers to adapt components, connectors to implement composition styles, and coordination abstractions that cross-cut the functional decomposition of a system. We also demonstrate how to reason about composition and how to use glue code to detect and fix compositional mismatches.

Item Type:

Thesis (Dissertation)

Division/Institute:

08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued]

Language:

English

Submitter:

Anja Ebeling

Date Deposited:

29 Jan 2018 17:14

Last Modified:

11 Apr 2024 16:11

BORIS DOI:

10.7892/boris.104365

URI:

https://boris.unibe.ch/id/eprint/104365

Actions (login required)

Edit item Edit item
Provide Feedback