Dynamic software product lines for service-based applications
Ligne de produits dynamique pour les applications à services
Résumé
Application development by composition of dynamic and heterogeneous services, that is to say, implemented according to different technologies, is the main subject of this thesis. We believe, actually, that service-oriented approach brings considerable changes in software computing and can bring significant benefits in terms of cost reduction, quality improvement and compression of time-to-market. The service-based technologies have already penetrated in many industries sections and answered certain expectations they aroused. Application development by composing heterogeneous services is still very complex for several reasons. Firstly, the various existing technologies employ very different mechanisms for declaration, research and liaison. The services themselves are described following structures often different. Therefore, development and technical knowledge are necessary to correctly combine services using different technological bases. On the other hand, dynamism management is complex. The principle of the service-oriented approach is to allow late service binding and, in some cases, the change of bindings according to context evolution. This requires very precise synchronization algorithms and is difficult to develop and test. We are well aware that in many cases, the benefits of service-oriented approach are not fully achieved, lacking of appropriate dynamism management. Finally, services are essentially described using a logical syntax. Therefore, we cannot guarantee, in a general case, the compatibility of several services or, more simply, the correctness of their global behavior. This is even more difficult when services have complex interactions, not restricted to a single call to obtain information. In this thesis, we bring a domain-specific dimension into service composition. The domain definition allows restricting the possible compositions of services, both at technical and semantic level. Thus we have found great complementarities between software product lines approaches and service-oriented approaches. Dynamism is a natural characteristic of service-based technologies, that is to say, the ability to bind services as late as possible utile runtime. Software product-lines, in turn, define approaches for planned reuse. Specifically, this thesis provides a three-phase approach for development of service composition with tool support, namely: the definition of a domain in the form of services and reference architectures, the definition of application in the form of service-based architectures and the execution of autonomic applications following application architecture. This thesis is validated in a collaborative project in the home healthcare domain.
Le développement d'applications par composition de services dynamiques et hétérogènes, c'est-à-dire implantés suivant des technologies différentes, est le sujet principal de cette thèse. Nous pensons, en effet, que l'approche orientée service apporte des changements considérables dans le domaine du logiciel et peut amener des gains significatifs en termes de réduction des coûts, d'amélioration de la qualité et de compression des temps de mise sur le marché. Les technologies à services ont dors et déjà pénétré de nombreux secteurs d'activité et répondent à certaines des attentes qu'ils suscitaient. Le développement d'applications par composition de services hétérogènes demeure néanmoins très complexe pour plusieurs raisons. Tout d'abord, les diverses technologies existantes utilisent des mécanismes de déclaration, de recherche et de liaison très différents. Les services, eux-mêmes, sont décrits suivant des structures souvent éloignées. Des développements et des connaissances techniques très pointus sont ainsi nécessaires pour correctement associer des services utilisant des bases technologiques différentes. D'autre part, la gestion du dynamisme est complexe. Le principe de l'approche à service est de permettre la liaison retardée de service et, dans certains cas, le changement des liaisons en fonction de l'évolution du contexte. Cela demande des algorithmes de synchronisation très précis, difficiles à mettre au point et à tester. Nous nous sommes ainsi rendu compte que, dans de nombreux cas, les bénéfices de l'approche à service ne sont pas complètement obtenus, faute d'une gestion appropriée du dynamisme. Enfin, les services sont essentiellement décrits suivant une logique syntaxique. On ne peut donc pas garantir, dans un cas général, la compatibilité de plusieurs services ou, plus simplement, la correction de leur comportement global. Cela est d'autant plus difficile lorsque des services ont des interactions complexes, non limitées à un unique appel pour obtenir une information. Nous apportons, dans cette thèse, une dimension " domaine " à la composition de service. La définition d'un domaine permet de restreindre les compositions possibles, aussi bien au niveau technologique qu'au niveau sémantique. C'est ainsi que nous avons trouvé une grande complémentarité entre les approches à service et les approches à base de lignes de produits. Les technologies à service apportent de façon naturelle le dynamisme, c'est-à-dire la capacité à créer des liaisons entre services de façon retardée à l'exécution. Les lignes de produits, quant à elles, définissent un cadre de réutilisation anticipée et planifiée. De façon plus précise, cette thèse défend une démarche outillée de composition de services structurée en trois phases, à savoir : la définition d'un domaine sous forme de services et d'architectures de référence à services, la définition d'applications sous forme d'architectures à service, et l'exécution autonomique des applications en fonction de l'architecture applicative du contexte. Cette thèse est validée au sein d'un projet collaboratif dans le domaine de la santé dans l'habitat.
Loading...