• Aucun résultat trouvé

CHAPITRE 02: MMSA UNE APPROCHE POUR LES APPLICATIONS MULTIMEDIA

3. Le méta modèle d’architecture logicielle MMSA

Dans notre approche, nous optons pour la catégorie explicite de connecteurs qui permet de proposer des connecteurs génériques et paramétrables. Ainsi, dans le méta-modèle MMSA, nous présentons un type explicite de connecteurs que le système peut spécialiser selon les besoins de l’architecture et des composants.

Page 73

Service quality

Action 2 1..* 0..* 1..* 1..2 Input Output To Use To Use Adaptation-Service Video-Port Image-Port

Configuration

Role

Connector

Connector-Interface Sound-Port Text-Port Text-Role Sound-Role Image-Role

Video-Role

Port

QoS-Manager

Adaptation-Glue Adaptation-Manager Communication-Manager

Component

Component-Interface

Service

Use Input Output Xor 1..* 1..* Xor 1..* 1..* 1 1 1 1 1..* 1 0..* 1 1 1 1 0..* 1..* 1..* 0..* Semantic adaptation Technical adaptation

Parameter

Possesses 0..* 1 0..1 0..*

Media

Attachment

Application

1 0..* 1..* 1..* 0..*

Figure 2.4. Diagramme de classes de l’architecture logicielle MMSA

Le problème de l’adaptation couvre plusieurs aspects. Parmi eux, l’hétérogénéité du contenu de l’information. Beaucoup de nouvelles fonctionnalités ont été intégrées avec de nouvelles techniques d’encodage. On trouve aujourd’hui du contenu sous forme d'images, de dessins vectoriels, d’animations, de vidéo, etc. Face au problème d’hétérogénéité provoqué par l’évolution qu’a connue le contenu de l’information, les concepteurs doivent réagir à un niveau plus abstrait, afin de proposer des solutions réutilisables et génériques permettant une bonne conception de l’architecture d’une application multimédia.

Un ADL pour les applications multimédia doit fournir des mécanismes et des techniques pour résoudre le problème de l’hétérogénéité des échanges de données entre composants, par exemple un composant qui traite des images au format JPEG alors qu’un autre fournit des images de format PNG. Les modèle de composants et les ADL qui existent jusqu’à maintenant ne prennent pas en considération cette dimension. MMSA décrit l’architecture logicielle d’un système comme une collection de composants

Page 74

(homogènes et hétérogènes) qui interagissent par l’intermédiaire de connecteurs. Les composants et les connecteurs ont le même niveau d’abstraction (un connecteur est un composant qui assure l’adaptation et la communication) et sont définis explicitement par la séparation de leurs interfaces et de leurs configurations internes.

Les concepts de base de l’architecture logicielle MMSA sont les mêmes que dans la plupart des architectures logicielles, à savoir : configurations, composants et connecteurs. Le modèle d’architecture logicielle MMSA est un modèle hybride basé sur

Un composant est une unité de calcul ou de stockage à laquelle est associée une unité d’implantation et posséde un état. Il peut être simple ou composé, on parle alors de composite [ACC02]. Les composants MMSA sont des abstractions qui encapsulent des services manipulant des médias dans plusieurs formats via des interfaces. On distingue deux types d’interfaces, celle de type « Output » qui exporte les données d’un composant, et celle de type « Input » qui importe les données au composant. L’interface décrit les informations nécessaires d’un composant y compris les points de connexion (ports). On définit un type de port par type de média identifié (cf. Tab2). Chacun fournit/requiert des médias de type correspondant. Cette distinction des ports par type de média (son, image, vidéo et texte) permet, dès la phase de conception, la vérification de l’assemblage et la simulation du comportement d’un composant à l’exécution afin de détecter les points d’hétérogénéité entre composants et de les traiter à ce niveau. Ceci apporte une meilleure vérification de la cohérence et de la validité des configurations des architectures logicielles.

les concepts d’architecture orientée composants (CBSE) et d’architecture orientée service (SOA). Un composant est défini par un ensemble de services interagissant pour remplir un rôle et communiquant avec l’environnement via deux interfaces (requise et fournie).

Le connecteur correspond à un élément d’architecture qui modélise de manière explicite les interactions entre un ou plusieurs composants, ceci par la définition des règles qui gouvernent ces interactions. Par exemple, un connecteur peut décrire des interactions simples de type appel de procédure ou accès à une variable partagée, mais aussi des interactions complexes tels que des protocoles d’accès à des bases de données avec gestion des transactions, la diffusion d’événements asynchrones ou encore l’échange de données sous forme de flux [ACC02]. Généralement, les connecteurs définissent des abstractions qui encapsulent les mécanismes de communication, de coordination et de conversion (les services de conversion permettent aux composants qui n'ont pas été spécialement conçus les uns pour les autres, d'établir et de mener des interactions). Un connecteur est représenté par une interface et une «glu» [GOU03, SYL07]. Cette description considère le connecteur comme un médiateur entre composants, ce qui limite son rôle à la communication. La spécification d’une glu décrit la fonctionnalité qui est attendue du connecteur. Elle représente la partie cachée du connecteur.

Page 75

Un connecteur MMSA est représenté par une glu et deux interfaces (fournie et requise), La glu peut être un simple composant de communication liant les composants de l’application ou un composite de trois composants assurant la communication, l’adaptation et le contrôle de QdS.

Exemple 1 :

Figure 2.5. Connecteur de communication

Exemple 2 : « MMSAGlu » Communication G Ad GQoS Component 2 Component 1 « MMSAGlu » Communicatio G Ad GQoS

Figure 2.6. Connecteurs de transcodage d’image JPEG TO BMP To PNG

Dans le premier exemple, les composants échangent le même type et format des données. Ils ont besoin d'un connecteur de communication, mais pas d'adaptation. C’est pourquoi, le gestionnaire d'adaptation et le gestionnaire de QoS sont désactivés (en gris). Alors que le deuxième exemple montre la possibilité de connecter deux composants hétérogènes (un composant qui fournit une image JPEG, à un qui requiert une image PNG). Cela nécessite une adaptation assurée par un ou plusieurs connecteurs en fonction de la complexité de l'adaptation. Dans cet exemple, elle est assurée par deux connecteurs (JpegToBmp et BmpToPNG).

Les composants constituant la glu peuvent être des composants non-MMSA. La glu gère le transfert des donné es entre composants et permet de faire les adaptations. Une interface requise/fournie d’un connecteur se compose d’un ensemble de rôles. Chaque rôle sert de point par lequel le connecteur est relié à un composant.

L’attachement est un lien de communication entre un port d’un composant et un rôle d’un connecteur (un port de type « Output » doit être lié seulement avec un rôle de type « Input », un port de

type « Input » doit être lié seulement avec un rôle de type « Output »). Un connecteur est un composant

qui assure la correspondance entre deux composants dans une configuration. Il peut être simple (un seul

connecteur) ou complexe (plusieurs connecteurs reliés entre eux). Dans notre solution deux composants

Cette distinction par rapport aux composants est exprimée par le fait que deux composants ne peuvent être liés que par un connecteur, alors que deux connecteurs peuvent être liés directement. Composant 2 « MMSAGlu » Communication Composant 1 Composant 2 Composant 1

Page 76

peuvent être reliés par un ou plusieurs connecteurs, cette exigence correspond au fait qu’un composant ait besoin d’un connecteur au minimum pour communiquer avec un autre composant, et puisse utiliser plus d’un connecteur suivant la complexité de la tâche d’adaptation (cf. figure 2.7).

Figure 2.7. Des connecteurs qui travaillent en parallèle et en séquence

La figure 2.7 présente une adaptation qui fait intervenir plusieurs connecteurs, il s’agit d’une adaptation de vidéo (son et image) vers une vidéo (image et texte) en passant par trois connecteurs d’adaptation (VidéoToSon+Image, SonToTexte et Son+ImageToImage).

Une liaison est un lien entre un composant MMSA et un composant non-MMSA, ce type de lien permet de faire intervenir des services proposés par des composants non-MMSA dans la tâche d’adaptation et de profiter du choix de services disponibles sur internet pour avoir une meilleure qualité de service.

Une configuration est une interconnexion de composants et de connecteurs via des interfaces. Des contraintes sont nécessaires pour décrire les dépendances entre composants et connecteurs au sein d’une configuration. Le but des configurations est de faire abstraction des détails des différents composants et connecteurs (encapsulation des constituants assurée par restriction de l’accès à travers les interfaces). Une configuration possède un nom et peut avoir une interface (représentée par les interfaces des composants qui fournissent/requièrent des flux à/de l’environnement extérieur) et un ensemble de services (encapsulés dans les composants). La configuration est définie par des composants, des attachements, des liaisons et des connecteurs qui permettent les interactions entre les composants.