• Aucun résultat trouvé

CHAPITRE

PROPOSITION

Nous proposons une approche dirigée par les modèles pour la construction d applications

flexibles et dynamiques par composition de services. Dans ce premier chapitre de la deuxième partie, nous présentons tout d abord la problématique liée à la construction d applications à services Après

d exposer les objectifs de cette thèse, nous présentons une vision globale de notre approche en mettant en évidence les aspects considérés pour sa mise en place, et en détaillant les trois parties que la constituent : conception, développement et exécution. Les détails sur notre approche sont présentés dans les chapitres suivants.

1 PROBLEMATIQUE

Dans les chapitres précédents nous nous sommes aperçus que l approche à services offre des

concepts particulièrement intéressants pour la construction d applications flexibles et dynamiques

Toutefois, nous avons identifié des besoins et des défis majeurs posés par les applications modernes, telles que les applications ubiquitaires et mobiles. Concrètement, nous avons fait les co nstatations suivantes :

les applications à services modernes doivent s exécuter de plus en plus dans des

contextes ouverts, dynamiques, hétérogènes et distribués. Dans de tels contextes aux caractéristiques techniques très différentes, la disponibilité des services et des dispositifs, les préférences et la localisation des utilisateurs peuvent varier de manière

imprévisible au cours de l exécution des applications

la variabilité des contextes d exécution rend complexes la conception le développement lexécution et le contrôle des applications à services. En effet, il est difficile, voire impossible, de connaître au moment de la conception et du développement

d une application, les dispositifs qui seront disponibles à l exécution les conditions

précises dans lesquelles l application sera utilisée et encore moins les réactions

appropriées pour l adapter à telles conditions

 dû à la variabilité des contextes d exécution l architecture d une application à services

ne peut plus être complètement figée avant son exécution. Elle doit être définie à

haut niveau d abstraction par des propriétés et des contraintes que les services

participant à la composition de l application doivent satisfaire afin de rendre cette définition indépendante des contextes d exécution.

les applications à services doivent pouvoir être composées graduellement avant et pendant leur exécution. Les services concrets participant à la composition d une

application doivent pouvoir être définis et assemblés lors du développement de

l application (composition statique), mais aussi pendant son exécution (composition dynamique) afin de considérer le contexte d exécution courant.

la conformité et la cohérence du développement et de l exécution d une application

vis-à-vis de son architecture de conception sont difficiles à vérifier et à garantir. La

discontinuité existante entre la conception le développement et l exécution d une

application rend difficile de vérifier et de garantir la conformité et la cohérence de son implémentation et de son exécution La définition abstraite d une application doit donc être utilisée comme cadre structurel et sémantique afin de guider l implémentation et l exécution de l application et d assurer ainsi la conformité et la cohérence.

les applications à services doivent pouvoir s adapter dynamiquement aux contextes d exécution Les applications doivent de plus en plus être disponibles de façon quasiment ininterrompue. Afin de faire face à la variabilité de leur contexte

d exécution elles doivent s adapter en cours d exécution et en conformité et cohérence avec leur définition abstraite.

les applications à services doivent pouvoir évoluer dynamiquement afin de corriger, améliorer, étendre ou réduire leurs fonctionnalités. La définition abstraite d une application doit être connue préservée à l exécution non seulement pour permettre de guider la composition dynamique de l application mais aussi pour pouvoir être modifiée et permettre ainsi l évolution dynamique de l application.

diverses approches abordent la construction d applications à services sous

différentes perspectives. Certaines approches proposent des modèles à composants pour le développement de services et/ou pour sa composition. Quelques -unes proposent des langages pour la description de l architecture des applications D autres offrent des

infrastructures pour supporter leur exécution. Cependant, en général, les approches supportant la composition ne supportent pas le dynamisme : la composition est statique empêchant toute sélection et substitution de composants à l exécution )nversement les

approches proposant des mécanismes de gestion du dynamisme ne proposent pas de

2.O

BJECTIFS

2 OBJECTIFS

En considérant les problèmes précédemment mentionnés, notre principal objectif est de faciliter la construction d applications flexibles et dynamiques à base de services en couvrant leur cycle de vie, de leur conception à leur exécution. De manière plus détaillée, nos objectifs sont les suivants :

 proposer un formalisme permettant de définir une application à services en intention, à partir de ses propriétés, ses contraintes et ses préférences de composition. Ce formalisme doit permettre de spécifier un cadre abstrait qui permette de guider la

composition de l application

 proposer des formalismes et des mécanismes permettant de réaliser la composition

d une application graduellement avant et pendant l exécution de l application. Les mécanismes de composition, présents tout au long du cycle de vie des applications, doivent vérifier et garantir la conformité et la cohérence de la composition des applications.

 proposer des formalismes et des mécanismes de déploiement et d exécution qui permettent et facilitent la mise à disposition l installation l activation la désactivation et la désinstallation d applications.

 proposer un formalisme permettant de représenter, de façon homogène, l état d exécution actuel d une application à services. Ce formalisme doit permettre de

contrôler l état d exécution de l application en conformité et cohérence avec sa définition.

fournir des environnements et des outils liés à chaque phase du cycle de vie des applications. En particulier, nous considérons des environnements et des outils pour la conception, le développement, le déploiement de services et l exécution d applications à services De tels environnements doivent être extensibles afin d ajouter, par exemple, des mécanismes supportant la définition et/ou la gestion de propriétés orthogonales à la fonctionnalité métier des applications.

Dans la section suivante, nous présentons notre approche mise en place pour répondre à ces objectifs.