• Aucun résultat trouvé

II. VSoaML : Un profil UML de modélisation des systèmes orientés

II.5. Le profil VSoaML

II.5.1. Le profil VSoaML : Vue d‟ensemble

UML est un langage de modélisation à destination d‟un grand nombre de domaines d‟application et à tous types d‟applications logicielles. Cependant, chaque domaine a des notions particulières et des besoins spécifiques qu‟UML peut supporter par le biais de ses extensions, regroupées en «Profils UML ». Un profil UML est un moyen permettant de structurer les extensions apportées au langage standard UML via ses mécanismes d‟extension (tagged values, stereotypes et constraints).

Plusieurs profils UML ont été standardisés par l‟OMG tels que EDOC (Enterprise Distributed Object Computing) (OMG, 2002d) (OMG, 2005) ou UML pour CORBA (OMG, 2002c) ou UML pour le temps réel, ou encore UML pour les EJB (Enterprise Java Beans).

Un profil UML est une spécialisation du méta modèle UML pour un domaine d‟utilisation particulier. Il regroupe de manière cohérente des extensions du métamodèle UML et définit leurs règles de cohérence. Les profils UML peuvent hériter d‟autres profils, avoir des dépendances entre eux, ou encore être regroupés. Un modèle UML est construit sous un profil particulier,

c‟est à dire qu‟il est élaboré relativement à un contexte qui lui apporte une sémantique spécifique.

Figure 43–Stéréotypes de VSoaML et leurs métaclasses de base UML2.0

Comme nous l‟avons vu dans l‟état de l‟art, plusieurs profils ont été proposés pour la modélisation des applications SOA (Johnston et al., 2006) (Amir et al., 2004). Ces profils

Profil VSoaML <<stereotype>> Message <<metaclass>> Class <<metaclass>> Property <<stereotype>> Message Attachment <<metaclass>> Port <<stereotype>> Service <<stereotype>> MVService <<metaclass>> Port <<metaclass>> Connector <<stereotype>> Service Channel <<metaclass>> Collaboration <<stereotype>> Service Collaboration <<metaclass>> Package <<stereotype>> Service Domain <<stereotype>> MVServiceInterface <<metaclass>> Interface <<stereotype>> ViewServiceInterface <<stereotype>> BaseServiceInterface <<stereotype>> Specification <<stereotype>> MVServiceSpecification <<metaclass>> Artifact <<stereotype>> Service Provider <<stereotype>> Service Requester <<metaclass>> classifier

définissent un langage de haut niveau pour la modélisation des services. Néanmoins, ces profils n‟intègrent que tardivement l‟utilisateur final dans le cycle de développement des systèmes orientés services.

Dans le but de la prise en compte le plus tôt possible de l‟utilisateur final dans le cycle de développement des systèmes orientés services, nous proposons le profil VSoaML. Ce profil se base principalement sur le concept de service multivues présenté dans la section 3.

Le profil VSoaML définit un ensemble de stéréotypes. La définition de ces stéréotypes est inspirée des concepts de l‟architecture SOA ainsi que des profils UML définis pour la

modélisation des applications SOA (Johnston et al., 2006). La figure 43 illustre les différentsstéréotypes de ce profil ainsi que leurs métaclasses de base UML2.0. La figure 44 illustre le métamodèle du profil VSoaML.

Le tableau 8 présente succinctement les différents stéréotypes du profil VSoaML. Dans la première colonne, nous présentons chaque stéréotype du profil VSoaML. Dans la deuxième, nous présentons la métaclasse de base de ce stéréotype. La troisième colonne présente une description succincte de chaque stéréotype.

Stéréotype (VSoaML) Metaclasse (UML)

Description

Message Class

<<Message>> est un élément de modélisation qui définit les structures de données échangées. Il spécifie aussi la propriété “Encoding” pour spécifier l‟encodage SOAP ou RPC.

MessageAttachment Property

<<MessageAttachment>> est un élément de modélisation permettant d‟indiquer si le contenu d‟un message est un attachement ou pas

Service Port

<<Service>> est un élément de modélisation qui permet de représenter un point final de communication. Un service n‟identifie pas seulement ses interfaces fournies mais peut aussi identifier ses interfaces requises.

MVService Port

<< MVService>> est un élément de modélisation qui permet de représenter un service adaptable aux types de ses clients. La spécificité d‟un service multivues est qu‟il peut fournir comme il peut requérir des

interfaces qui s‟adaptent aux profils des utilisateurs.

Channel Connector

<<Channel>> est un élément de modélisation permettant de décrire une connexion entre services. Il spécifie les liaisons avec les protocoles de transport (SOAP, HTTP, JMS, etc.)

ServiceCollaboration Collaboration

<<ServiceCollaboration>> est un élément de modélisation qui spécifie le comportement d‟un ensemble de services ou de services multivues qui coopèrent

Requester Classifier <<Requester>> est un élément de modélisation qui représente un client de service

ServiceDomain Package

<<ServiceDomain>>définit un groupement logique

ou physique d‟un ensemble de services

Provider Class

<<Provider>> est un élément de modélisation permettant la représentation d‟un fournisseur d‟un ou de plusieurs services.

ServiceSpecification Artifact

<<ServiceSpecification>> est un élément de modélisation permettant la spécification des opérations et leurs messages associés qui définissent le service.

BaseServiceInterface Interface

<<BaseServiceInterface>> est un élément de modélisation qui représente un ensemble d‟opérations qui peuvent être invoquées par tous les

acteurs interagissant avec un service donné. <<BaseServiceInterface>> permet de modéliser les fonctionalités du service accessible à tous les clients de service.

ViewServiceInterface Interface

<<ViewServiceInterface>> permet de représenter une sorte d‟interface propres à un acteur donné interagissant avec le service. ViewServiceInterface permet de modéliser les capacités de services spécifiques à un acteur spécifique interagissant avec un service donné.

MVServiceInterface Package <<MVServiceInterface>> est un élément de modélisation étendant la métaclasse Package. Ce stéréotype permet de regrouper des fonctionnalités logiquement cohésives. Il se compose d‟une interface de service de base accessible à tous types de clients de services et un ensemble des interfaces de service vues accessibles uniquement par un type particulier de clients de service.

ServiceOperation Operation <<ServiceOperation>>permet de représenter une opération d‟un service modélisant une fonctionnalité fournie d‟un service donné. La spécificité de <<ServiceOperation>> est qu‟elle manipule des données de grosse granularité ayant une valeur dans

le cadre d‟un processus métier.

<<ServiceOperation>> manipule en entrée, en sortie ou en erreur des messages.

MVServiceSpecification Class <<MVServiceSpecification>> permet de décrire les

services multivues. Ainsi, chaque

interface de service de base accessible à tous les acteurs et il contient la description des interfaces vue associés à un type particulier d‟acteur.

<Include>> Dependency Le stéréotype <<include>> permet de décrire une relation d‟inclusion entre une interface de service vue (viewServiceInterface) et une interface de service de base (baseServiceInterface)

<<specify>> Dependency Le stéréotype <<specify>> permet de représenter une relation de spécification entre (Service,

Specification) et entre (MVService,

MVServiceSpecification).

Tableau 8–Stéréotypes du profil VSoaML