Checking Fractal Component Behavior Using Behavior Protocols ?

Building applications from of-the-shelf pieces, like libraries and components, is a promising approach to the future of software development. As such pieces are a subject to reuse, they have to have their interfaces and semantics clearly defined. To combine components from various vendors, one need a way to reason about component compatibility. Our experience with distributed component-based application has shown that reasoning about component compatibility based only on comparing component types (interface/method signatures) is not sufficient. Therefore, a kind of component semantic/behavioral specification is necessary. Fractal [1] provides a hierarchical component model, where components may be nested (forming composite components) and only the lowest-level (primitive) components are implemented in a programming language. The architecture of a component application is described in the Fractal Architecture Description Language (ADL). For each component, its behavioral specification may be stated in the application ADL file. In this paper, we describe results of the work on the “Component Reliability Extensions for Fractal Component Model” project [7] funded by France Telecom. The goal of the project is to extend the Fractal Component model and its Julia implementation with support for behavior protocols [8]. The paper is structured as follows: In Sect. 2, behavior protocols as a way of specifying component behavior are described, while Sect. 3 introduces various types of compatibility checks. Sect. 4 provides evaluation and concludes the paper.