Introduction au développement avec des composants logiciels



Documents pareils
Programmation par composants (1/3) Programmation par composants (2/3)

Plan. Department of Informatics

Cedric Dumoulin (C) The Java EE 7 Tutorial

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Nouveautés Ignition v7.7

COMPUTING. Jeudi 23 juin CLOUD COMPUTING I PRESENTATION

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Architecture Orientée Service, JSON et API REST

Nous ne doutons pas que vous prendrez plaisir à essayer Siebel CRM On Demand d Oracle!

Serveur d'application à la juste taille

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

Mise en œuvre des serveurs d application

Module BD et sites WEB

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

Bacula. It comes by night and sucks the vital essence from your computers. Guillaume Arcas

Fédération : une architecture logicielle pour la construction d applications dirigée par les modèles

SysFera. Benjamin Depardon

IBM WebSphere Application Server 5.0 : Administration avancée

WEBSPHERE & RATIONAL. Jacques Rage

TP Administration Oracle

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Déploiement OOo en environnement Windows Terminal Server

Prise en compte des ressources dans les composants logiciels parallèles

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

«Clustering» et «Load balancing» avec Zope et ZEO

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Composants Logiciels. Le modèle de composant de CORBA. Plan

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Architectures Ouvertes pour l Adaptation des Logiciels

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

Le cadre des Web Services Partie 1 : Introduction

DocForum 18 Juin Réussites d un projet Big Data Les incontournables

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Le génie logiciel. maintenance de logiciels.

Le Cloud: Mythe ou Réalité?

Forthcoming Database

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

WebObjects : des applications dynamiques pour Internet et Intranet. Approche technologique

Fiche produit ifinance v4

Introduction au Déploiement

Guide d installation de ArcGIS server 9.3.1

Compte Rendu d intégration d application

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

Robot WIFIBOT Lab V4. Lab V4.

Pourquoi R devient incontournable en recherche, enseignement et développement

DIRAC : cadre et composants pour créer des systèmes de calcul distribués

Les nouvelles architectures des SI : Etat de l Art

Messagerie & Groupeware. augmentez l expertise de votre capital humain

DOCUMENTATION - FRANCAIS... 2

JOnAS 5 Enterprise OSGi javaee compliant

Annexe : La Programmation Informatique

PostgreSQL, le cœur d un système critique

Architecture distribuée

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Déploiement de SAS Foundation

11 Février 2014 Paris nidays.fr. ni.com

Insérer des images dans Base

Focus sur. métiers du numérique. métiers. les. Contexte régional. La piste. des

Refonte front-office / back-office - Architecture & Conception -

Éléments de programmation et introduction à Java

Hébergement de sites Web

Un environnement de déploiement automatique pour les applications à base de composants

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

Monitor LRD. Table des matières

Simulation de systèmes. Logiciel de simulation

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Vanilla : Virtual Box

KIT DE DÉMARRAGE SHAREPOINT DANS MICROSOFT AZURE

Les différents parcours en S4

Logiciels Open Sources et le Secteur Privé

SHAREPOINT PORTAL SERVER 2013

FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)

VERSION 64 BITS DE SAS ET VOS FICHIERS MICROSOFT OFFICE 32-BITS

Vulgarisation Java EE Java EE, c est quoi?

Big Data et Graphes : Quelques pistes de recherche

Big data et données géospatiales : Enjeux et défis pour la géomatique. Thierry Badard, PhD, ing. jr Centre de Recherche en Géomatique

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Once the installation is complete, you can delete the temporary Zip files..

Intranet / Groupware LORIA - Université d automne Intranet/Groupware - L. Mirtain 1

Évaluation et implémentation des langages

TP1. Outils Java Eléments de correction

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Bluetooth pour Windows

Netdays Comprendre et prévenir les risques liés aux codes malicieux

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

PIB : Définition : mesure de l activité économique réalisée à l échelle d une nation sur une période donnée.

Prise en main rapide

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Modelio by Modeliosoft

RAPID Prenez le contrôle sur vos données

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Transcription:

ENVOL 2012 Introduction au développement avec des composants logiciels Jean-Christophe Souplet jcsouplet@lri.fr Licence CC BY-NC-SA 3.0

Constat Lors d un développement beaucoup de développeurs partent de zéro Or il existe de nombreux codes accessibles et très souvent réutilisables Alors : pourquoi réinventer la roue? ENVOL 2012 JC Souplet - Développer avec des composants logiciels 2

Les composants logiciels Tout élément logiciel pouvant être inclus dans des applications. Le lien entre l application et le composant se fait en passant par une interface qui doit être définie. Exemples obibliothèques logicielles, exécutables, bases de données, Objectifs oréutiliser du code : nombreux atouts (cf. ci-après) ofacilité les collaborations : chacun pouvant être responsable de sa brique logicielle, son rôle peut être mieux défini ovaloriser (au sens large) : le partage de plusieurs composants ne se fait pas forcement à l identique Toutefois opas de consensus strict sur la définition oici : cadre plus large e.g. réutilisation de code source ENVOL 2012 JC Souplet - Développer avec des composants logiciels 3

Des définitions Lamure Maxime / Raugi Romain (2003) o «A software component is a static abstraction with plugs» Nierstraz et Tsichritzis(95). o «A component is a piece of software small enough to create and maintain, big enough to deploy and support, and with standard interfaces for interoperability» Harris (95). o «Software component are defined as prefabricated, pretested, self-contained, reusable software modules that perform specific functions» MetaGroup (94). o «A software component is a unit of composition with contractually specified interfaces and explicit context dependencies. Software component can be deployed independently and is subject to composition by 3rd parties» Participant 1er Workshop Component Oriented Programming(97). Pascal Fradet, Alain Girault, Gregor Goessler - INRIA Rhône-Alpes o Programme informatique encapsulé dans une interface ENVOL 2012 JC Souplet - Développer avec des composants logiciels 4

Composant?? Objet Oui, c est différent o Un composant peut être programmé sans programmation orientée objet o Modifier un composant recompiler l exécutable global sauf en cas de modification de l interface o Un composant = un objet mais au niveau de l architecture du logiciel o Avantages : réutilisation du code, facilité de production, de déploiement, o Mais attention à la maintenance ENVOL 2012 JC Souplet - Développer avec des composants logiciels 5

Propriétés d un composant Sont variables o Taille : on peut presque dire d'une variable à une application o Langage : pas forcement identique à celui des autres composants de l application o Fonctions techniques : éléments d interfaces, d interconnexion,... représentatifs : description des structures à analyser, applicatifs : traitements des données (souvent propres à l application) ENVOL 2012 JC Souplet - Développer avec des composants logiciels 6

Ce que doit être un composant Documenté : la fonction rendue par le composant ET son interface d utilisation doivent être connues et décrites Fiable et robuste : le comportement doit être celui décrit (on attend aucun bogue) Générique : fonction rendue suffisamment fine et programmable (e.g. choix de paramètres) pour une adaptation rapide Abstrait : on ne doit pas avoir besoin d accéder au code du composant Il doit être Réutilisable ENVOL 2012 JC Souplet - Développer avec des composants logiciels 7

Dessine moi un composant PARAMETRES ENTREES SYNC ASYNC NOM DESCRIPTION CONTRAINTES SYNC ASYNC SORTIES Présence de documentation? Limites d utilisation connues? Si oui, qu elles sont-elles? Limites d utilisation technique (OS, langage, )? Il y a-t-il une communauté s en servant? La fiabilité est-elle assurée? ENVOL 2012 JC Souplet - Développer avec des composants logiciels 8

Les composants, 1 langage? Les composants peuvent être regroupés dans un catalogue La programmation devient o Prendre un composant et le relier aux autres o On fait de «l assemblage» Eventuellement, o Développement de nouveaux composants o Adaptation des anciens à la problématique visée ENVOL 2012 JC Souplet - Développer avec des composants logiciels 9

Les composants, 1 langage? Modèles de programmation o Java Beans composants client/ihm (assemblage visuel) Tutoriel sur : http://docs.oracle.com/javase/tutorial/javabeans/toc.html o EJB (Enterprise Java Beans) Serveur à composants Distribué / Interopérabilité o Matlab/Simulink Source : http://www.mathworks.com o CORBA components De l OGM (Object Management Group, 2002) o OLE/ActiveX, COM et.net (Microsoft) o Etc ENVOL 2012 JC Souplet - Développer avec des composants logiciels 10

La recherche de composants Je veux développer un logiciel! Où puis-je trouver les briques pour ma construction? ENVOL 2012 JC Souplet - Développer avec des composants logiciels

Les matériaux En Interne o Vous, Collègues, équipe, labo Communauté de l ESR (via PLUME) o Version classique o Fiches devesr en Licence libre Recherches Internet o Sites de développeurs Attention aux licences!!!! o Sites Catalogues (suivant communauté, e.g. dépôts Maven, plateforme CPAM, ) Création d une base? cf. liste jointe ENVOL 2012 JC Souplet - Développer avec des composants logiciels 12

Exemples Outils d analyses d images IRM cérébrale o Version recherche o Version pour diffusion Réutilisation de ces briques pour d autres applications en imagerie osseuse Prise en main très aisée d un outil de programmation d un robot ENVOL 2012 JC Souplet - Développer avec des composants logiciels 13

Introduction : segmentation de lésions Travaux de thèse effectué dans l ep Asclepios INRIA Sophia-Antipolis SEP: Maladie chronique invalidante o 2,5 millions malades (monde) Dégénérescence de la gaine de myéline Apparence des lésions ENVOL 2012 JC Souplet - Développer avec des composants logiciels 14

Très nombreuses étapes Paramètres EM Labellisation De très nombreux outils logiciels. Tous issus de travaux de thèses précédentes. Chacun résolvant une des étapes de la chaîne de traitement. ENVOL 2012 JC Souplet - Développer avec des composants logiciels 15

Script : Chaîne de traitement Chacun des outils (exécutable, scripts Matlab, scripts python, scripts perl) est issu de travaux de recherche extérieurs On peut les voir comme des composants ayant chacun leurs paramètres, leurs entrées et leurs sorties Union au sein d un script bash 750 lignes Très modulaire mais très peu diffusable et même maintenable ENVOL 2012 JC Souplet - Développer avec des composants logiciels 16

En parallèle : MedINRIA Travail par un autre thésard : Pierre Fillard Visualisation faite Menu Module (souslogiciels dans une fenêtre globale) Hello world existant Source : http://www-sop.inria.fr/asclepios/software/medinria/ ENVOL 2012 JC Souplet - Développer avec des composants logiciels 17

SepINRIA Réutilisation du cadre MedINRIA en sous package SepINRIA Création de nouveaux modules (chacun avec leur propre interface, exécutable seul ou au sein de la plateforme) Réutilisation de code (e.g. visualisation) d un module à l autre ENVOL 2012 JC Souplet - Développer avec des composants logiciels 18

SepINRIA ENVOL 2012 JC Souplet - Développer avec des composants logiciels 19

SepINRIA Chaque module est un composant de la plateforme globale Chaque module est lui-même basé sur l union de plusieurs composantsbibliothèques (externes ou internes) ENVOL 2012 JC Souplet - Développer avec des composants logiciels 20

Introduction Imagerie osseuse Travaux de post-doc Unité INSERM U658 Orléans Réutilisation des composants précédents pour développer de nouveaux logiciels Analyse de la morphologie cellulaire Analyse macroscopique du fémur Logiciel MafINSERM ENVOL 2012 JC Souplet - Développer avec des composants logiciels 21

ENVOL 2012 JC Souplet - Développer avec des composants logiciels 22

Les composants, 1 langage? Robot Nao : logiciel Choregraphe ENVOL 2012 JC Souplet - Développer avec des composants logiciels 23

Les composants, 1 langage? ENVOL 2012 JC Souplet - Développer avec des composants logiciels 24

Les composants, 1 langage? 1 composant o Des sous-composants o Eux-mêmes programmables o Eux-mêmes groupables ENVOL 2012 JC Souplet - Développer avec des composants logiciels 25

Conclusion Réutilisation de code = gain o De temps o Mais aussi de robustesse La POC = «de la POO architecturale» Important o Documentation et clarté de l interface o Limites, présence d une communauté, Existence d outils de programmation basés sur la composition de composants TP : création et utilisation de composants à l aide de l outil CMake (niveau débutant) ENVOL 2012 JC Souplet - Développer avec des composants logiciels 26

Références Compléments POO : Programmation orientée composants, Stéphane Frénot, INSA de Lyon, http://perso.citi.insa-lyon.fr/sfrenot/ Programmation par composants, Frédéric Fürst, Univ. De Picardie http://www.u-picardie.fr/~furst Introduction à la programmation par composants, Lamure Maxime et Raugi Romain, http://deptinfo.unice.fr/twiki/pub/linfo/planningdesso utenances2002/lamure-raugi.pdf Modèles et langages pour la programmation par composants, Pascal Fradet, Alain Girault et Gregor Goessler, INRIA Rhône-Alpes, http://wwwverimag.imag.fr/projects/synchrone/alidecs/r eunion1/r1-girault.pdf ENVOL 2012 JC Souplet - Développer avec des composants logiciels 27