02.04.2013 Views

CONTENTS

CONTENTS

CONTENTS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

COMDEVALCO FRAMEWORK 191<br />

3.1. Modeling language. The modeling language was improved in two different<br />

directions, by (1) including module and execution environment, and (2) extending its<br />

type system with structured types.<br />

In order to ease the process of implementing modular concepts, an adaptable<br />

infrastructure was created, based on a meta-model defining the concepts of module<br />

and execution environment.<br />

The module is considered in the general case, as a deployment unit, including<br />

either (a) several data types, functions, and procedures - as in the traditional modular<br />

programming model, or (b) several data types, including components - as in the case<br />

of component-based programming. There are dependency relations between modules,<br />

which must be specified during module definition phase and must be satisfied before<br />

module execution.<br />

Static execution environments load all modules of an application before starting<br />

its execution. The proposed model loads modules and starts their execution provided<br />

that all dependencies are solved. It also supports dynamic module load/unload facilities.<br />

Some of the existing execution environments have these features - like OSGi [11],<br />

which assembles Java applications from dynamic modules. Our proposal is described<br />

in [5].<br />

The initial modeling language used only primitive data types. Currently, its type<br />

system includes a new ArrayType class, and PAL grammar was changed to allow the<br />

definition of tables (vectors) and structured types, like lists. These achievements are<br />

described in detail in [9], which proposes an extensible data type hierarchy.<br />

3.2. Component repository. The interactions between component repositories, ComDe-<br />

ValCo workbench and client applications are described in [5, 8].<br />

The starting point in the work of providing a correct taxonomy for components<br />

was the establishment of classification criteria. Several concrete approaches were<br />

considered, including information domain and functionality. These criteria may be<br />

used in searching of components stored in the repositories. All these matters are<br />

discussed in great detail in [8].<br />

The root of all objects managed by the component repository is RegistryObject<br />

(see Figure 1), from which all components inherit (thru ExtrinsicObject class). In<br />

order to provide a great degree of flexibility, the hierarchy contains distinct classes<br />

for the two concepts: classification and classification scheme.<br />

In order to describe the representation of components in the repository, an object<br />

model was defined; it includes all component types covered by the modeling language<br />

and allows for adding new ones.<br />

Component representation format complies to OASIS RIM (Registry Information<br />

Model) standard [10]. To achieve this, the class ExtrinsicObject was extended<br />

by subclasses specific to component-based applications: DModule, DComponent,<br />

Capability - functionality, and Requirement - component dependencies .<br />

3.3. The toolset. The functionality of DEFCOMP and VALCOMP tools was extended<br />

to include module and execution environment concepts. Papers [5, 6] describe

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!