Conception et construction de fédérations de progiciels

L’informatique au sein des organisations durant ces dernières années a été marquée par l’apparition de technologies nouvelles alors que s’exprimaient des besoins de plus en plus importants des utilisateurs.

L’arrivée de grands progiciels de gestion intégrée, dotés de nombreuses fonctionnalités qui supportent les besoins des utilisateurs et la diversité des fonctions des entreprises, constituent le cœur des systèmes d’information. Parallèlement, les applications logicielles peuvent désormais communiquer, coopérer, grâce à l’émergence de nouvelles technologies permettant par la même occasion de franchir les portes et les frontières des organisations.

Enfin, l’attrait pour Internet, passant du statut de simple média au rang de support « universel », et qui permet d’intégrer et d’offrir des services aux utilisateurs, d’avoir un rôle d’intégrateur d’applications…

La refonte des systèmes d’information des entreprises s’inscrit dans ce contexte, au milieu des paradoxes, des antagonismes, voire, des leurres technologiques. Deux tendances se dessinent cependant et s’affrontent [ICSSEA 2001]. La première est de choisir un éditeur et de s’y tenir. Un éditeur important, dont le comportement parfois hégémonique et duquel dépendent les clients peut parfois conduire à l’impasse ou à des situations de blocage. La seconde est de diversifier ses choix. Cette dernière s’accompagne généralement de contraintes techniques fortes. Mis dans le contexte des applications d’entreprises (notamment les Progiciels de Gestion Intégré – PGI), un éditeur unique semble avoir beaucoup de mal à couvrir l’ensemble des fonctions métiers des entreprises et propose des applications souvent moins bonnes que les éditeurs, spécialistes métiers, et que les applications développées en interne. D’autre part, sachant que certains spécialistes de la relation client ou de la chaîne logistique ont des solutions adaptées aux besoins, les utilisateurs poussent les éditeurs de PGI à s’ouvrir. C’est dans ce contexte, et dans le cadre des relations intra ou/et inter entreprises que se situe notre problématique. Disposant d’outils divers, les groupements d’entités (entreprises réseaux, entreprises virtuelles, etc. [Favrel 1998, AMA 1991, Sandoval 1995]) tentent de mettre en place des systèmes d’information transversaux à la fois entre les services et entre les entreprises ; le but étant de pouvoir interconnecter un ensemble d’applications, un ensemble de services afin de répondre aux attentes des utilisateurs et aux nouveaux modes d’organisation [Reix 1986, Morton 1991, Reix 1995, Morton 1995] tout en gardant une certaine flexibilité. En effet, ces inévitables rapprochements, partages, communications, ne doivent pas se faire au détriment de l’autonomie de chaque unités, de chaque utilisateur, de  chaque outil mis dans un certain contexte. Forts de ces constatations, plusieurs groupes de travail se sont constitués ayant pour objectif de proposer des spécifications, des standards, des normes que ce soient sur les échanges informatisés, les technologies pour le Web et les bus logiciels. Pourtant, si certaines de ces propositions semblent s’imposer (XML par exemple), d’autres rentrent en concurrence et tendent à se complexifier (CORBA et Java/RMI, EJB, CCM, .NET, etc.). De nombreux travaux se sont focalisés sur cette problématique : l’intégration d’outils. Cela part de la programmation classique où un programme est « découpé » en opérations, à la programmation orientée objet où on parle de classes, de paquetages à la prise en compte d’applications réparties. Différentes technologies ont été proposées pour mettre en synergie les applications et les utilisateurs [Fuggetta 1993, Totland et Conradi 1995] :
· les collecticiels,
· les outils de workflow,
· le génie logiciel,
· l’ingénierie des systèmes d’information,
· la modélisation d’entreprise,
· la conception des organisations,
· l’ingénierie concurrente,
· les Environnements de Génie Logiciel Centrés Processus.

Pourtant, peu de travaux ont mis l’accent sur l’assemblage d’applications hétérogènes et existantes, si ce n’est, ces dernières années, les approches dans le domaine de l’EAI (Enterprise Application Integration). Malgré tout et comme nous le verrons dans les chapitres suivants, ces technologies n’ont pas permis de couvrir l’étendue des besoins, pas plus qu’elles ne permettent de s’adapter aux changements.

L’idée de départ est de considérer que les applications logicielles de demain seront davantage des assemblages de composants logiciels déjà existants (prêts à l’emploi) aux seins des entreprises plutôt que de nouveaux produits issus de longs processus de développement. Nous partons du principe que la plupart des fonctionnalités requises existent déjà sous forme d’outils logiciels qu’il faut pouvoir intégrer.

Nous nous intéressons aux systèmes qui sont construits à partir de composants existants. Ces composants sont majoritairement de deux types :
· les composants disponibles sur le marché (appelés « COTS »),
· les composants disponibles et développés au sein des organisations (appelés
composants, applications ou systèmes « patrimoines »). Dans le premier cas, les composants sont autonomes puisqu’ils peuvent s’exécuter en dehors du contexte du système qu’ils intègrent. Ils disposent, pour la plupart, de ressources locales, d’un modèle de fonctionnement interne (décrit par le code du composant). Dans les deux cas, il est souvent intéressant d’adopter une approche de type « boîte noire » dans la mesure où :
· le code est indisponible pour les composants de type COTS ;
· le code est souvent difficile à maintenir, à faire évoluer pour les composants patrimoines. Ainsi, nous partons du principe selon lequel nous ne pouvons pas, en règle générale, modifier le comportement intrinsèque du composant. Ces composants sont donc :
· autonomes,
· hétérogènes,
· distribués sur un réseau et potentiellement sur plusieurs sites géographiquement éloignés.

L’objectif est de mettre ensemble des composants, des outils logiciels, pour permettre d’unifier les possibilités et les fonctionnalités des outils, et proposer un « tout » cohérent, aussi complet que possible au sein d’un système qui va permettre d’automatiser certaines tâches. La raison de la construction d’un tel système est de proposer aux utilisateurs une application (qui, par définition, propose un certain nombre de services), composée d’outils hétérogènes, dont le fonctionnement soit comparable (en termes de services rendus aux utilisateurs) à une application logicielle classique. Sachant que les outils logiciels doivent ensemble satisfaire les objectifs de l’application, ils forment ce que nous appelons une organisation (une communauté d’intérêts). Cette organisation sera régie par un mode (ou politique, ou stratégie…) de fonctionnement qui déterminera son comportement au cours du temps et donc, le comportement de chaque outil à l’intérieur de l’organisation. Ainsi, les organisations de composants qui nous intéressent ont deux caractéristiques importantes qu’il faudra étudier :
1. les artefacts partagés (tout ou partie) de l’application ;
2. le fonctionnement commun du système.

Les travaux de cette thèse ont eu lieu dans le cadre du projet ESPRIT IV LTR PIE (Process Instance Evolution). Les partenaires de ce projet sont l’Université Joseph Fourier (Adèle/LSR-IMAG), l’Université de Savoie (LLP/CESALP), le Centre de Recherche Européenne de Xerox, Dassault Système (France), The Victoria University of Manchester, Teamware Group Ltd (Royaume Uni), Universitaet Dortmund (Allemagne) et Politecnico di Milano (Italie). Le projet aborde le problème de l’évolution en-ligne des processus logiciels. L’évolution du processus est faite à travers un système de rétroaction, contenant des supports pour le monitoring, la prise de décision, le changement ainsi qu’un support pour la stratégie d’évolution [Cunin 2000, Alloui et al. 2000, Greenwood et al. 2000, Cîmpan 2000]. L’ensemble de ces outils, de ces systèmes forme ce que nous avons qualifié de fédérations d’outils dont le but (l’application) est l’évolution du processus sujet. Les travaux de cette thèse se placent dans la définition, la construction et la mise en oeuvre de la fédération d’outils [Estublier et Verjus 1999, Cugola et al. 2000b, Estublier et al. 2001a, Estublier et al. 2001b, Estublier et al. 2001c].

Table des matières

CHAPITRE I INTRODUCTION
I.1 INTRODUCTION A LA PROBLEMATIQUE
I.2 POURQUOI DES FEDERATIONS ? LES HYPOTHESES
I.2.1 L’autonomie
I.2.2 Une communauté… d’intérêts
I.2.3 Notion de fédération
I.3 CADRE DE LA THESE
I.4 ORGANISATION DU DOCUMENT
CHAPITRE II LES ENVIRONNEMENTS DE GENIE LOGICIEL CENTRES PROCESSUS ET LES PROCESSUS LOGICIELS
II.1 LES PROCESSUS LOGICIELS
II.1.1 Introduction
II.1.2 Les processus logiciels
II.1.3 Les modèles de cycle de vie
II.1.4 La maîtrise des processus, la qualité du logiciel
II.1.5 Les environnements intégrés de génie logiciel
II.2 LES ENVIRONNEMENTS DE GENIE LOGICIEL CENTRES PROCESSUS
II.2.1 Qu’est-ce qu’un EGLCP ?
II.2.2 Les différents formalismes
II.2.3 Formalisation du processus
II.3 VERS DES EGLCP FEDERES
II.3.1 La réutilisation de composants dans les EGLCP
II.3.1.1 Leu
II.3.1.2 Peace, Peace+
II.3.1.3 Provence
II.3.1.4 Endeavour
II.3.2 Vers des fédérations de composants inter-opérables pour les EGLCP
II.3.2.1 Oz
II.3.2.2 Modéliser des fédérations d’EGLCP
II.3.2.3 APELv4 et PIE
II.4 BILAN ET CONCLUSION
II.4.1 Les apports du domaine des EGLCP
II.4.2 Les limitations
II.4.3 Conclusion
CHAPITRE III FEDERATION D’OUTILS : CADRE, TERMINOLOGIE ET ETAT DE L’ART
III.1 BESOINS POUR LES FEDERATIONS
III.1.1 Introduction
III.1.2 Construire des fédérations
III.1.3 Pourquoi une nouvelle architecture ?
III.2 L’INGENIERIE DES SYSTEMES A BASE DE COMPOSANTS
III.2.1 Le phénomène « composant » et les systèmes à base de composants
III.2.1.1 Des « briques » de base…aux composants
III.2.1.2 La vision des composants
III.2.1.3 Les « Java Beans »
III.2.1.4 Les « Enterprise Java Beans »
III.2.1.5 Le modèle de composant COM/DCOM
III.2.1.6 Objets métiers CORBA et modèle de composant CORBA
III.2.1.7 Evaluation
III.2.2 Les architectures logicielles
III.2.2.1 Les entités conceptuelles
III.2.2.2 Les formalismes
III.2.2.3 Evaluation
III.2.3 Des composants aux COTS
III.2.3.1 Définition des composants issus du marché (COTS)
III.2.3.2 Un nouveau processus de développement ?
III.2.4 Le développement de systèmes à base de COTS
III.2.4.1 L’évaluation et la qualification des composants
III.2.4.2 L’adaptation…souvent nécessaire
III.2.4.3 L’activité d’assemblage de composants
III.2.4.4 L’évolution des systèmes à base de COTS
III.2.4.5 Evaluation
III.3 L’INTEGRATION D’APPLICATIONS D’ENTREPRISE (EAI)
III.3.1 Les objectifs
III.3.2 Un modèle de « maturité » pour l’intégration d’applications
III.3.3 Des stratégies d’intégration
III.3.4 Les modèles d’architectures proposés
III.3.5 Différentes technologies pour l’intégration
III.3.6 Evaluation
III.3.6.1 Bilan
III.3.6.2 L’EAI : une infrastructure
III.3.6.3 Positionnement
III.4 INTEROPERABILITE, ASSEMBLAGE, COOPERATION D’OUTILS
III.4.1 De l’intégration à l’interopérabilité
III.4.1.1 Diverses propositions pour interopérer
III.4.1.2 Les « niveaux » d’interopérabilité
III.4.1.3 La gestion du contrôle
III.4.1.4 Evaluation
III.4.2 Approches et paradigmes permettant l’assemblage d’outils
III.4.2.1 Le modèle de l’adaptateur
III.4.2.2 Le modèle du messager
III.4.2.3 Le modèle de la façade
III.4.2.4 Le modèle du médiateur
III.4.2.5 Le modèle de l’automate du processus
III.4.2.6 Evaluation des modèles
III.4.2.7 Les architectures
III.4.3 La coopération d’agents dans les SMA
III.4.3.1 La coordination dans les approches issues de l’Intelligence Artificielle Distribuée
III.4.3.2 Systèmes à base de lois : du contrôle pour les agents
III.4.3.3 Evaluation
III.5 VERS DES FEDERATIONS
III.5.1 Les systèmes fédérés
III.5.1.1 Introduction
III.5.1.2 L’autonomie
III.5.1.3 L’hétérogénéité
III.5.1.4 La distribution
III.5.1.5 Classification des systèmes
III.5.1.6 Les systèmes d’information fédérés
III.5.1.7 Deux types de systèmes fédérés
III.5.1.8 Le modèle de données dans un SIF
III.5.2 Les bases de données fédérées
III.5.3 Les outils de workflow fédérés et systèmes coopératifs
III.5.4 Evaluation
CONCLUSION

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *