Le développement avec le modèle Fractal permet l'écriture de composants et des
liaisons pour la communication entre composants.
2.2 Composant Fractal
Un composant Fractal est une entité d'exécution définie par une ou plusieurs interfaces.
Une interface implémente un type d'interface spécifiant ses fonctionnalités. Deux
catégories d'interfaces sont présentes :
- les interfaces décrivant les services fournis par le composant, appelées interfaces
serveurs,
- les interfaces décrivant les services requis par le composant, appelées interfaces
clients.
De plus, un composant Fractal est défini en deux parties :
- une partie possédant des interfaces fonctionnelles et des interfaces pour l'introspection
et la configuration, appelée membrane,
- l'autre constituée d'un ensemble fini de sous-composants, appelée contenu.
Les interfaces de la membrane d'un composant peuvent être internes (accessibles par ses
sous-composants) ou externes (accessibles depuis l'extérieur du composant).
Le modèle Fractal fournit deux moyens de spécifier l'architecture de l'application :
- l'imbrication de sous-composants au sein de composants composites,
- la liaison, permettant aux composants de communiquer, qui peut être soit primitive,
soit composite.
Lorsqu'un lien est établi entre une interface serveur d'un composant et une interface
client d'un second composant, il s'agit d'une liaison primitive. Une liaison composite est
quant à elle représentée par un chemin complexe entre deux interfaces et est composée
d'un ensemble de composants de liaisons reliés entre eux par des liaisons primitives.
La spécification Fractal définit un certain nombre de niveaux de contrôles pour la
définition d'un composant :
- la membrane du composant défini peut ne posséder aucun contrôleur (les capacités
d'introspection et d'intercession ne sont donc pas présentes),
- au second niveau de contrôle suivant, une interface Component est fournie et donne
accès aux interfaces clients et serveurs du composant,
- au niveau de contrôleur supérieur, le composant possède des interfaces réifiant sa
structure interne et permettant de contrôler son exécution.
Plusieurs types de contrôleurs sont définis dans la spécification du modèle Fractal :
- les contrôleurs d'attributs du composant,
- les contrôleurs de liaisons (gestion des liaisons primitives entre deux interfaces de
composants),
- les contrôleurs de contenu (gestion des sous-composants d'un composant composite),
- les contrôleurs de cycle de vie (gestion des phases comportementales d'un composant:
démarrer ou arrêter l'exécution d'un composant par exemple).
De plus, des contrôleurs spécifiques peuvent être implémentés pour étendre ou
spécialiser les capacités d'un composant.