• Aucun résultat trouvé

Concept d‟adaptation : la variabilité de service

I. Etat de l’art

I.4. SOS : Concepts d‟adaptation

I.4.2. Concept d‟adaptation : la variabilité de service

I.4.2.1

Description de l’approche

Pour développer des services adaptables aux clients de service, (Chang et al., 2007b) proposent une approche se basant sur le principe de la variabilité de service. Cette approche définit les types de variabilité de service ainsi qu‟un processus d‟Analyse/Conception permettant de développer des services adaptables en se basant sur le concept de variabilité. Ce concept est largement utilisé dans les PLE (Product Line Engineering). La variabilité se définit en terme de point de variation et de variant. Un point de variation est un emplacement dans le logiciel où un changement peut survenir. Le variant est la valeur ou l‟instance qui s‟associe à un point de variation. La figure 10 illustre les différents types de variabilité ainsi que les différentes couches logicielles d‟une application SOA concernées (processus métier, services unitaires, interface de service et les composants de services) :

Globalement, quatre types de variabilité de services ont été définis comme le montre la figure 10 : la variabilité de Workflow, la variabilité de composition, la variabilité de l‟interface et la variabilité de la logique.

La variabilité de workflow : Un processus business est réalisé à travers une séquence de services unitaires, appelée Workflow. Une partie de cette séquence peut ne pas être utilisée par certains consommateurs de services. Aussi, une partie de la séquence d‟activités peut varier d‟un consommateur à un autre. Ainsi, La variabilité de Workflow est définie comme étant la variation des workflows des processus business.

La variabilité de la composition : Un processus métier fait la composition de plusieurs services unitaires (chaque service unitaire réalise une activité donnée) pour répondre aux besoins des

utilisateurs finals. Pour un service unitaire donné, plusieurs interfaces de services peuvent être découvertes. Dans ce cas, la variation consiste dans le bon choix de l‟interface qui correspond aux profils des clients de services. L‟interface choisie dépend des besoins du client de services interagissant avec le service.

Figure 10–Types de variabilité de services (Chang et al., 2007b)

La variabilité de l‟interface : La variabilité de l‟interface se manifeste lorsque l‟interface du service unitaire ne correspond pas à la description de l‟interface de service publiée dans un annuaire de service tel que UDDI. Les descriptions de services publiées dans l‟annuaire sont généralement des descriptions générées à partir des composant services qui sont des implémentations des services avec des langages donnés (C #, Java, etc.). La variabilité de l‟interface peut concerner le nom des opérations de services, les types des entrées/sorties, le type de retour, etc.

La variabilité de la logique : Le composant service contient l‟implémentation des opérations de service qui réalisent les fonctionnalités du service unitaire. L‟algorithme ou la procédure de l‟opération peut varier suivant les requêtes des clients. Cette variation est appelée la variabilité

Business Process Layer Unit Service Layer service Component Layer Business Process Business Process Business Process Unit Service <<Service Componentt>> <<Service Componentt>> <<Service Componentt>> Unit Service Unit Service Interface Variability Composition Variability Logic Variability Workflow Variability Interface Layer

de la logique.

En se basant sur les types de variabilité définis, Kim et al. (Chang et al., 2007a) définissent un processus de développement des services adaptables. Le processus définit un ensemble de phases, d‟activités et d‟artéfacts clés pour le développement des systèmes orientés services adaptables en tenant compte les utilisateurs finals. Globalement, ce processus définit les phases suivantes :

Phase 1 : La définition des services cibles

L‟objectif de cette phase est l‟analyse des exigences métiers pour pouvoir définir les processus métiers qui permettent de répondre aux besoins des utilisateurs finals. Cette phase est réalisée en trois étapes : l‟acquisition des exigences de services, l‟identification des services cibles et la définition des workflows des différents processus business. L‟objectif de cette phase est la production de la spécification des services cibles comme un artéfact caractérisant cette phase. Cette spécification contient la liste des services cibles, la description des business process et leurs Worflows associés. Dans cette phase, une variabilité de workflow est associée.

Phase 2 : La définition des services unitaires

L‟objectif principal de cette phase est la conception des services unitaires à partir de l‟artefact de la phase précédente. La première étape de cette phase consiste à définir les caractéristiques des services en se basant sur les critères de réutilisation et de cohésion. La deuxième étape de cette phase est la définition des interfaces des services. Dans cette phase, une spécification de la variabilité est effectuée.

Phase 3 : la planification de l‟acquisition des composants service

Cette phase a pour finalité la planification de l‟acquisition des implémentations de services. Pour cela trois scénarios ont été adoptés : l‟utilisation des services publiés dans l‟annuaire, l‟adaptation des applications traditionnelles ou le développement de nouveaux services. Cette phase est concernée par deux types de variabilité : la variabilité de la composition et la variabilité de l‟interface.

Phase 4 : l‟acquisition des composants services :

L‟objectif de cette phase est de préparer les services web en tenant compte des services découverts, des services adaptés à partir des applications existantes ou des nouveaux services web développés. Dans cette phase, la variabilité de la logique est associée aussi bien au niveau de l‟analyse qu‟au niveau de la conception.

Phase 5 : la composition de services

L‟objectif principal de cette phase est la définition de la composition de services. Cette composition est dérivée à partir des artefacts des phases précédentes et elle est représentée par le langage de spécification de composition BPEL. Dans cette phase, la variabilité est affinée ainsi que la finalisation de l‟architecture globale du système.

I.4.2.2

Discussion

Chang et al.(Chang et al., 2007a) proposent le concept de la variabilité de service pour le développement des service personnalisables et adaptables aux différents profils des clients de services. Chang et al. définissent un processus de développement définissant activités, phases et artefacts permettant l‟identification, la spécification et l‟implémentation des services en prenant en compte la variabilité de services tout au long du cycle de vie de développement d‟un SOS. L‟approche permet une meilleure séparation des préoccupations fonctionnelles entre les différents clients de service et une prise en compte de la diversité des profils des utilisateurs interagissant avec le service. Cependant, cette approche ne définit ni une notation ni un outil logiciel associé en vue de rendre productif et rationnel l‟activité du développement des systèmes orientés services adaptables.