Présentation
EnglishAuteur(s)
-
Michel RIVEILL : Professeur à l’université de Nice-Sophia-Antipolis
-
Philippe MERLE : Maître de conférences à l’université des sciences et technologies de Lille - Laboratoire d’informatique fondamentale de Lille (LIFL)
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleINTRODUCTION
Parmi les principaux phénomènes qui révolutionnent l’industrie du logiciel, nous constatons que les applications deviennent de plus en plus grosses et de plus en plus complexes et que les technologies orientées objets font une percée irréversible sur le marché, introduisant dans les méthodes de développement logiciel une flexibilité nouvelle. Ainsi , les technologies de développement du logiciel ont un poids de plus en plus important dans l’économie. Face à la difficulté de maîtriser le développement du logiciel, le succès de nombreux projets repose sur le respect d’un petit nombre de règles clés :
-
gérer les besoins : les besoins métiers changent tous les jours et leur gestion formelle est une activité indispensable qui permet de s’assurer que le système final répond bien à ce que les utilisateurs en attendent. Cette gestion doit recouvrir la formalisation, la documentation, l’organisation et le suivi des changements des besoins ;
-
employer des architectures à base de composants : une des évolutions technologiques majeures en matière de développement logiciel est l’avènement des composants. Les architectures à base de composants constituent la seule réponse à l’évolutivité nécessaire et permanente des systèmes d’information ;
-
modéliser visuellement l’architecture : il est impossible d’appréhender la complexité et de communiquer efficacement à tous les membres d’une équipe les aspects d’architecture et de comportement d’un système sans une modélisation visuelle et graphique. L’avènement d’un standard tel que UML représente une avancée majeure dans ce domaine ;
-
développer de manière itérative : étant donnée la sophistication des systèmes actuels, il n’est plus possible de se contenter de mettre en série les activités de définition, de conception, de développement et de test. Les nombreux échecs enregistrés récemment dans de grands programmes en sont une preuve évidente. Une approche itérative fournit une plus grande flexibilité car elle permet de prendre en compte rapidement de nouveaux besoins ou des changements tactiques, et d’identifier et de résoudre les risques au plus tôt ;
-
vérifier la qualité : du fait du rôle fondamental des systèmes dans la vie de l’entreprise, leur qualité doit être irréprochable. Celle-ci n’est pas l’affaire de personnes extérieures, mais résulte de l’activité quotidienne de tous les membres de l’équipe de développement. La vérification permanente de la qualité (adéquation, fiabilité, performance) est essentielle. Elle repose sur trois principes fondamentaux : tester tôt, tester souvent, tester automatiquement ;
-
gérer les changements : le succès du développement itératif et du développement parallèle repose sur la capacité à gérer les évolutions et les changements qui surviendront inévitablement pendant le développement, et à maîtriser les activités quotidiennes du développement liées à la multiplicité des intervenants.
Ces principes doivent constituer la base de toute démarche de développement moderne qui repose, en outre, sur l’automatisation des activités. Celle-ci permet d’augmenter la productivité des équipes de développement, de garantir le respect des procédures et de minimiser les risques d’erreurs.
Parmi les nouveaux concepts logiciels, l’approche composant doit permettre de trouver une structure globale, manipulable par des gens dont le métier est de composer des structures plutôt que d’inventer des éléments permettant de construire des structures. Un système fabriqué avec des objets, par exemple une comptabilité, une messagerie, peut comporter de 400 à 1 000 classes, alors qu’en le structurant en composants, on peut ramener à 10 ou 20 le nombre de briques manipulées. L’objet, au sens traditionnel du terme, évolue vers une structure à base de composants et cette problématique se retrouve dans la fabrication des logiciels, les middlewares, les systèmes de gestion de base de données (SGBD), etc.
Si construire une application est un processus complexe, il n’est pas possible de trouver un qualificatif pour l’ingénierie des applications distribuées. Différentes technologies sont aujourd’hui proposées pour permettre l’accès à des données distantes ou l’exécution à distance de programmes. Ces technologies reposent sur l’ajout à un système d’exploitation existant d’une couche logicielle appelée « middleware », comme par exemple les courtiers d’objets (ORB) ou les bus de messages. Les applications sont construites comme une collection de composants logiciels indépendants, interconnectés à l’aide de ces « middlewares ». Pour mettre en évidence la structure des applications, ces assemblages peuvent être décrits à l’aide d’ADL (Architecture Description Language) qui permettent la mise en œuvre des différents composants de l’application par des langages de programmation différents, et l’intégration de ceux-ci à travers différents modèles d’exécution ou de communication reposant sur un ou plusieurs middlewares (interaction client/serveur pour les ORB ou modèle événement/réaction dans le cas des bus de messages).
Cet article présente les principaux éléments de la technologie composant, tels qu’ils se discutent dans les différents consortiums industriels, c’est-à-dire les Java Beans, les Enterprise Java Beans (EJB), les composants OMG (Object Management Group) et la vision Microsoft. Finalement, nous discutons des langages de description d’architectures (ADL) à travers une présentation synthétique du projet Olan mené par l’équipe SIRAC (Systèmes informatiques répartis pour applications coopératives) de l’Institut national de la recherche en informatique et automatique (INRIA).
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
4. Conclusion
La première partie de cet article a dressé un tableau des enjeux et des concepts-clés de la programmation par composants : cette partie explique en quoi le passage aux composants est capital pour bâtir de complexes applications réparties pour les entreprises. Dans un deuxième temps, les principales technologies industrielles (Java Beans, EJB, CCM, Microsoft) autour des composants ont été passées en revue. Pour chacune d’entre elles, nous avons mis l’accent sur leurs points originaux : la communication événementielle et l’assemblage graphique avec les Java Beans, la description des propriétés systèmes (transactions, persistance et sécurité) et les serveurs d’accueil de composants avec les Enterprise Java Beans, le nouveau OMG IDL et le déploiement de packages de composants OMG, et la vision globale de Microsoft à travers ses diverses technologies (COM, DCOM, COM+, MTS, MSMQ et ASP). Finalement, nous avons présenté le projet OLAN illustrant la mise en œuvre des langages de description d’architecture (ADL) pour bâtir des appli-cations à base de composants répartis.
Notre objectif n’était pas de mettre en opposition ces différentes approches afin d’élire la meilleure. Nous avons plutôt voulu montrer les différents aspects intéressants devant être pris en compte par un environnement pour la programmation par composants. Ainsi, aucune des solutions présentées n’est totalement satisfaisante : la « bonne » approche est celle qui intégrera au moins toutes les fonctionnalités techniques présentées ici. Mais au-delà des briques techniques, le futur environnement idéal pour les composants devra offrir une vision globale.
-
Sur le plan de la conception des applications, il devra fournir :
-
un UML pour composants pour modéliser graphiquement les aspects spécifiques aux composants tels que la séparation des propriétés fonctionnelles et non fonctionnelles, la composition de composants ou la notion d’usine/maison à composants. Le groupe de travail de l’OMG sur la révision d’UML a commencé des études dans ce sens. Ainsi, nous pouvons espérer que d’ici 2002, les ateliers UML intégreront ces nouvelles notations orientées composants ;
-
un ADL pour composants pour capturer l’architecture logicielle des applications à base de composants répartis. Ce type de langage existe déjà mais reste principalement « caché » au sein des laboratoires...
-
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Conclusion
BIBLIOGRAPHIE
-
(1) - MEYER (B.) - Conception et programmation par objets. - 1990, InterEditions, Paris, France.
-
(2) - CHAUVET (J.-M.) - Comprendre l’architecture des serveurs d’applications. - 1999, Eyrolles.
-
(3) - BRETHES (T.), HISQUIN (F.), PEZZIARDI (P.) - Serveurs d’applications. - 2000, Eyrolles.
-
(4) - Livre blanc sur l’Entreprise Application Integration (EAI). - 1999, Octo Technology. www.octo.fr
-
(5) - ROGERSON (D.) - Inside COM. - 1997, Microsoft Press, Redmond WA, États-Unis.
-
(6) - EDDON (G.), EDDON (H.) - Au cœur de Distributed COM. - 1998, Microsoft press, les Ulis.
-
(7)...
ANNEXES
FABRESSE (L.) - Proposition d'un langage de programmation à base de composants logiciels interfaçables et application à la génération semi-automatisée d'IHM. - Université des sciences et techniques du Languedoc (2003).
COURBIS (C.) - Contribution à la programmation générative : application dans le générateur SmartTools, technologies XML, programmation par aspects et composants. - Université de Nice-Sophia Antipolis (2002).
SY (O.) - Spécification comportementale de composants CORBA. - Université des sciences sociales (Toulouse) (2001).
CHORFI (H.) - Développement d'un composant java permettant de tracer des courbes. - Université Montpellier II Sciences et Techniques du Languedoc (2000).
HAUT DE PAGE
###
* - SIRAC http://sardes.inrialpes.fr/sirac/
* - ExperShop http://www.experlog.com/
* - Microsoft Internet Information Server http://www.microsoft.com/France/iis
Composants Java
* - http://java.sun.com/products/javabeans/
QUINN (A.) - JavaBeans : Components for the Java Platform. - http://java.sun.com/docs/books/tutorial/javabeans/index.html
DESOTO (A.) - Using the Beans Development Kit - a tutorial. - Novembre 1997. http://java.sun.com/beans/docs/Tutorial-Nov97.pdf
PELEGRI-LLOPART...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(240 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive