• Aucun résultat trouvé

CHAPITRE 01 : LANGAGES DE DESCRIPTION D’ARCHITECTURE ET INGENIERIE DIRIGEE PAR

4. Kmelia

Kmelia est un modèle à composants basé sur les services. Il permet de définir un modèle simple d’architecture fondé sur la description des composants, des services et de leurs interactions ainsi que le raisonnement sur des modèles incomplets et le raffinement. Kmelia est un modèle de spécification de composants basé sur des descriptions de services complexes. Les composants sont abstraits, indépendants de leur environnement et, par conséquent, non exécutables.

Page 45

4.1.

Kmelia [AND05] sert à modéliser des architectures logicielles et leurs propriétés. Ces modèles peuvent ensuite être raffinés vers des plateformes d'exécution. Kmelia sert aussi de modèle commun pour l'étude de propriétés de modèles à composants et à services (abstraction, interopérabilité, composabilité). Les caractéristiques principales du modèle Kmelia sont : les composants, les services et les assemblages.

Méta-modèle Kmelia

Un composant est défini par un espace d’états, des services et une interface. L’espace d’état est un ensemble de constantes et de variables typées, contraintes par un invariant. Les services modélisent des fonctionnalités (offertes ou requises). Ils sont eux-mêmes constitués d’une interface (qui peut inclure des sous-services) et d’une description d’état et d’assertions (pré/post conditions). Le comportement (dynamique) d’un service offert est caractérisé par un automate qui précise les enchaînements d’actions autorisés. L’interface d’un composant indique les services qu’il propose et ceux qu’il requiert. Les composants peuvent être assemblés ou composés. Une composition est un assemblage encapsulé dans un composant. Dans un assemblage, les services des composants communiquent par échanges de messages sur des canaux. Les canaux sont point-à-point mais bidirectionnels.

4.2.

Dans Kmelia [AND07, 08, 09], les composants sont assemblés sur leurs services par des liens d’assemblage (les connecteurs) dans des assemblages (les configurations). Kmelia se différencie d’autres modèles d’architectures par un style architectural épuré, dans lequel les connecteurs sont simplement des liaisons et non pas des entités de première classe et par le fait que les services ne sont pas de simples opérations mais des entités de première classe avec des interfaces spécifiques.

Eléments de l’architecture logicielle

Dans un assemblage, un service joue aussi un rôle de port virtuel (appelé canal dans Kmelia) sur lequel circulent des messages. Les communications sont synchrones. Un composant décrit un état (ensemble de variables typées), un invariant d’état et différentes contraintes (sous forme de prédicats).

4.2.1. Composant

Un composant est défini par un espace d'états, des services et une interface. L'espace d'état est un ensemble de constantes et de variables typées. Dans l'interface d'un composant on distingue les services offerts (resp. requis) qui réalisent (resp. déclarent les besoins) des fonctionnalités. Les services sont eux- mêmes constitués d'une interface, d'une description d'état et d'assertions (pré/post conditions). Formellement, un service S est défini par un couple (Is; Bs) où Is est l'interface du service et Bs est un éventuel comportement dynamique.

Page 46

Figure 1.11. Représentation graphique et syntaxe d’un composant Kmelia [ATT06]

Dans le modèle Kmelia, un composant se caractérise par: un nom (l'identificateur de composant), un état (variables, prédicats et invariant), une interface pour les services et la description des services. L'interface spécifie les interactions entre les composants et leur environnement [ATT06]. Une interface d'un composant Kmelia présente les services fournis et les services requis.

4.2.2. Service

La hiérarchisation de services se base sur des opérateurs de composition (inclusion obligatoire ou facultative de services) et de délégation (services requis de différentes sources, services internes) qui autorisent une conception ascendante ou descendante.

La composition de services dans Kmelia se décline selon deux axes : La composition horizontale définit une relation de dépendance (utilisation) entre services. Elle est basée sur les appels de service et une bonne interaction entre services. Elle permet de définir la composition de composants. La composition verticale définit une relation de structuration hiérarchique (inclusion) qui permet de créer de nouveaux services à partir de services existants

4.3.

Kmelia présente l’avantage de mettre en avant la notion de service, ce qui procure un pont relativement naturel avec les architectures à services. Kmelia offre la possibilité d’exprimer finement des interfaces riches permettant d’étudier et de vérifier a priori la composabilité de composants.

Evaluation

La prise en compte des données dans les modèles à composants n’est pas nouvelle en revanche il est plus original de combiner données, contrats, dynamique et communications dans un langage intégré. Kmelia le fait à un niveau qui permet la vérification statique de propriétés relatives aux aspects structurels, dynamiques et fonctionnels.

En dépit des avantages que présente Kmelia, ce modèle montre tout de même certaines faiblesses. Tout d’abord, Kmelia fournit une description statique de l’architecture ; aucun ajout ni suppression ne sont autorisés après l’instanciation initiale des composants. D’autre part, les connecteurs de Kmelia se résument à des liens, autrement dit à des connecteurs qui font simplement une correspondance de noms.

Page 47

En fait un lien sert aussi de canal de communication dans les échanges entre services. Il n’y a pas de comportement spécifique associé à ces liens qui ne sont pas non plus des entités logicielles spécifiables.

Le tableau 1.4 résume les avantages et les inconvénients de l’ADL Kmelia :

Avantage

• Kmelia est un langage et un modèle à composants multi-service où les composants sont abstraits et formels de façon à pouvoir y exprimer des propriétés et les vérifier.

• Les services de Kmelia peuvent êtres paramétrés par des données et sont dotés d’assertions (pré/post-conditions opérant sur les données).

• La hiérarchisation des services et des composants est l’une des caractéristiques de Kmelia qui permet une bonne lisibilité, la flexibilité et une bonne traçabilité dans la conception des architectures.

• L’assertion permet la correction d’assemblages de composants après vérification d’une spécification Kmelia

Inconvénient

• Vérification manuelle des assemblages de composants impliquant des services avec des interfaces dotées de pré et post-conditions ;

• La distinction entre contraintes du fournisseur et du demandeur se fait d’un point de vue méthodologique et non syntaxique ;

• Absence de la notion de connecteur ;

• Non prise en compte de la vérification de la compatibilité entre composants lors de l’assemblage.

TABLE 1.4. AVANTAGES ET INCONVENIENTS DE KMELIA