A platform for Web service adaptation and substitution
Un canevas pour l'adaptation et la substitution de services Web
Résumé
Web services have emerged as a support for development and integration of applications and information systems. In this context, the interactions between two consumer and supplier applications, encapsulated by Web services are done by exchanging messages. These exchanges are based on the concept of interfaces, which describe the interactions in which a service can handle and dependencies between these interactions. In the current Web, it is very often that many services meet the same set of functional requirements. These services are often delivered through different interfaces. For many reasons, such as failure of the service provider, the consumer has to replace his usual supplier with another supplier that offers the same functionality. This substitution leads to incompatibilities between the interfaces of the service consumer and new service provider. This is because the customer service was not been developed according to the new service provider. The research we conduct in this thesis aims to solve the problem of incompatibility in the interaction between two services; consumer and new provider. In particular, our contribution extends both in theory and in practice. It is a part of a framework for the automatic generation of adapters for interactions between two services. On the other hand, we propose a multi-layer software architecture providing a framework for transparent and flexible substitution of a service provider by another with respect to an existed consumer. In our framework for automatic generation of adapters, services interfaces modeling using automata has been adopted. Then, a step of detecting incompatibilities between them is achieved. After that, an adapter of the interactions between the two services is generated automatically based on the detected incompatibilities. The generation of the adapter is based on the automata model. The generated adapter automaton contains a sufficient detail for the projected technology CEP (Complex Event Processing). This projection is performed using components templates that are implemented by us. Each template is designed to generate executable code (in terms of continuous requests) for the CEP technology. Our proposed architecture for the substitution of integrated Web services is an approach for deploying communities of Web services. A community promotes the dynamic binding of Web services through software named OSC (Open Service Connectivity). A community service is seen as a way to expose common descriptions of a desired functionality without explicitly referring to a specific service. OSC is a software component whose objective is to apply the principle of ODBC and JDBC in an environment based on Web services. Specifically, it is responsible for managing interactions between communities of consumers on the one hand and communities on the other hand, providing functions for the selection and substitution of services.
Les services Web ont émergé comme un support de développement et d'intégration d'applications ou de systèmes d'information. Dans ce cadre, les interactions entre deux applications consommateur et fournisseur, encapsulées par des services Web se font par échanges de messages. Ces échanges s'appuient sur la notion d'interfaces, qui décrivent les interactions dans lesquelles un service peut s'engager et les dépendances entre ces interactions. Dans le Web actuel, il arrive très fréquemment que de nombreux services répondent à un même ensemble de besoins fonctionnels. Ces services sont souvent offerts par le biais d'interfaces différentes. Des nombreuses raisons, telles que la panne du service fournisseur, peuvent amener un consommateur à substituer son fournisseur habituel par un autre fournisseur qui offre la même fonctionnalité. Cette substitution provoque des incompatibilités entre l' interface du service consommateur et celle du service fournisseur substitut. Cela est dû au fait que le service consommateur n'a pas été fait en fonction de ce nouveau service fournisseur. Les recherches que nous menons dans cette thèse visent à résoudre le problème des incompatibilités dans des interactions entre deux services consommateur et fournisseur substitut. En particulier, notre contribution s'étend, tant sur le plan théorique que sur le plan pratique. Il s'agit d'une part d'un canevas pour la génération automatique des adaptateurs des interactions entre deux services. D'autre part, nous proposons une architecture logicielle multicouche fournissant un cadre permettant une substitution transparente et flexible d'un service fournisseur par un autre service vis-à-vis du consommateur du premier. Dans notre canevas pour la génération automatique des adaptateurs, une modélisation des interfaces de services en des automates a été adoptée. Puis, une étape de détection des incompatibilités entre ceux-ci est réalisée. Ensuite, un adaptateur des interactions entre les deux services est généré automatiquement sur la base d'incompatibilités détectées. La génération de l'adaptateur est guidée par le modèle d' automates. Cela permet de modéliser l' adaptateur indépendamment de son implémentation cible, permettant ainsi une bonne réutilisation des modèles. Une fois généré, l'automate de l'adaptateur suffisamment détaillé est projeté sur la technologie CEP (Complexe Event Processing). Cette projection est réalisée à l'aide des composants cartouches (en anglais : Templates) que nous avons mis en œuvre. Chaque cartouche étant conçue pour générer du code exécutable (en termes de requêtes continues) pour la technologie CEP. Notre architecture proposée pour la substitution de services Web s'intègre d'une part la notion de communauté de services, et d'autre part un progiciel nommé OSC (Open Service Connectivity). Une communauté de service est perçue comme un moyen d'exposer des descriptions communes d'un caractère fonctionnel désiré sans explicitement se référer à un service spécifique. L'OSC est un composant logiciel dont l'objectif est d'appliquer le principe de pilotes ODBC et JDBC dans un environnement à base de services Web. Plus précisément, il est responsable de gérer les interactions entre les consommateurs des communautés d'une part et les communautés d'autre part, en fournissant des fonctions permettant la sélection et la substitution de services.
Loading...