Architecture ouverte standards et logiciels ouverts by tsk11317

VIEWS: 0 PAGES: 37

									    Architecture ouverte:
standards et logiciels ouverts
           en Java
     Robert Gérin-Lajoie, Cirano
     http://www2.cirano.qc.ca/~gerinlar/fr/MaPagePublique/




      Présentation au DIRO
       12 décembre 2003
          Architecture ouverte
• Standards ouverts
• Logiciels et documents ouverts
• Les 2 produisent un écosystème
  –   Liberté
  –   Autonomie
  –   Choix
  –   Compétition

           Architecture ouverte: standards et logiciels ouverts en Java   2
                         Exemple
• Standard TCP/IP
• Logiciel libre TCP/IP avec BSD
• Maintenant intégré dans beaucoup de
  produits propriétaires
• Disponible avec les logiciels libres



          Architecture ouverte: standards et logiciels ouverts en Java   3
          Standards ouverts
• Spécifications techniques
• Implémentation de référence
• Tests de conformité




         Architecture ouverte: standards et logiciels ouverts en Java   4
       Logiciels libres et ouverts
• Voir définitions, 2 organismes
   – http://opensource.org/licenses/index.php
   – http://www.gnu.org/philosophy/free-sw.fr.html
• Résumé
   – La liberté d'exécuter le programme, pour tous les usages
   – La liberté d'étudier le fonctionnement du programme, et de
     l'adapter à vos besoins
       • Pour ceci l'accès au code source est une condition requise.
   – La liberté de redistribuer des copies.
   – La liberté d'améliorer le programme et de publier vos
     améliorations, pour en faire profiter toute la communauté

               Architecture ouverte: standards et logiciels ouverts en Java   5
             Point stratégique
– Les licences à la BSD et à la Apache
   • Les modifications aux codes sources peuvent rester
     propriétaires
   • Pour Apache, les droits d’auteurs sont transférés à la fondation
– Copyleft (sous gauche d’auteur)
   • Présent dans la licence GPL
   • Ceci veut dire que chaque copie du logiciel, même si elle a été
     modifiée, doit être un logiciel libre.
– GPL Vs LGPL
   • GPL oblige que toute l’application soit libre
   • LGPL permet la co-existance d’un composant libre avec un
     composant propriétaire

          Architecture ouverte: standards et logiciels ouverts en Java   6
        Comparaison




Architecture ouverte: standards et logiciels ouverts en Java   7
         Position de Tim O’Reilly
• Logiciel libre
   – Une vision plus philosophique sur les droits des développeurs et
     des utilisateurs
• Logiciel ouvert
   – Une vision plus centrée sur les bénéfices « économiques » du
     partage des codes sources et de la réutilisation des composants
• GNU.org Versus OpenSource.org
   –   http://www.oreilly.com/pub/a/oreilly/ask_tim/2003/gnusource_0703.html




                   Architecture ouverte: standards et logiciels ouverts en Java   8
                             Et Java?
• Java est un standard ouvert
   – Voir définition
      • Description, implémentation de référence et test
   – Contrôlé
      • Par Sun, IBM, BEA, Oracle et le Java Community Process
   – Modifications par plusieurs dizaines de comité
     d’experts
      • Java Specifications Request
      • Vendeurs, membres de la communauté des logiciels ouverts


             Architecture ouverte: standards et logiciels ouverts en Java   9
 Java n’est pas un « standard libre »
• Stabilité et évolution contrôlé
• Énorme avantage pour la communauté de logiciel
  libre
  – On peut bâtir sur des fondations stables
  – On peut entrelacer des composantes de diverses
    origines
• Avec la richesse des API de Java
  – Permettent des applications de haut niveau

           Architecture ouverte: standards et logiciels ouverts en Java   10
Logiciels libres et ouverts en Java
• Ils couvrent un large éventail de fonctionnalité
   – Outils développeurs
   – Infrastructures J2EE d’entreprise
   – Applications spécialisées
• Basés sur les standards de Java
• Open source threatens Java servers
   – http://news.zdnet.co.uk/software/developer/0,39020387,2130500,00.htm




               Architecture ouverte: standards et logiciels ouverts en Java   11
                                Quoi?
• Livre “Java Open Source Programming”
• Outils développeurs
   – JavaDoc, Xdoclet, Ant,
• Environnements de développement
   – Eclipse, Netbeans
• Outils UML
   – ArgoUML
• Outils de tests
   – Junit,
   – HttpUnit
            Architecture ouverte: standards et logiciels ouverts en Java   12
       Standards applicatifs
   Infrastructure basé sur J2EE
• Serveur Web léger
• Base de donnée
• Serveur J2EE complet (presque)




         Architecture ouverte: standards et logiciels ouverts en Java   13
  Serveur Web léger d’entreprise
• Standard Servlet et JSP
• Tomcat
   – Avec Apache
   – JBOSS ou autres




           Architecture ouverte: standards et logiciels ouverts en Java   14
                  Base de données
• Connecteurs basé sur le standard JDBC
   – Vers mySQL, PostgreSQL
   – Hypersonic SQL, une base de données SQL légère en
     Java
      • http://hsqldb.sourceforge.net/
• Traduction Objets-Relationnels et persitance
   – Hibernate
      • http://www.hibernate.org/



             Architecture ouverte: standards et logiciels ouverts en Java   15
            Contenants J2EE
– Jboss 3.1
   • http://www.jboss.org/index.html
– Jonas
   • Voir http://jonas.objectweb.org/
– OpenEJB
   • Voir http://openejb.org/
– Geronimo, de Jakarta
   • Départ en lion, disponible en 2004

          Architecture ouverte: standards et logiciels ouverts en Java   16
        Canevas applicatifs
• Modèles de présentation- MVC
• Applications légères
• Applications complexes




         Architecture ouverte: standards et logiciels ouverts en Java   17
         Modèles de présentation
•   Standard Java Server Pages et JSTL
•   Struts, Tiles
•   Velocity
•   WebWork, un canevas de présentation MVC
    – http://www.opensymphony.com/webwork
• Java Server Faces
    – Standard final très proche, en 2004,
        • encore en discussion
        • Version Open Source
    – Voir http://www.jsfcentral.com/

                Architecture ouverte: standards et logiciels ouverts en Java   18
       Canevas Java pour les
      applications Web simple
            d’entreprise
• OpenSymphony: un canevas réputé
  – Voir http://www.opensymphony.com/
• Expresso
  – Voir http://www.jcorporate.com/index.html
• Turbine
  – Voir http://jakarta.apache.org/turbine/




             Architecture ouverte: standards et logiciels ouverts en Java   19
                     Open symphony
•   Composants
    – WebWork
      An MVC framework that stresses simplicity and interoperability.
    – SiteMesh
      A page layout and decoration engine
    – OSCache
      A web-tier caching framework
    – OSWorkflow
      A flexible workflow engine that can be plugged in to almost any need or existing
      application.
    – OSUser
      A user and group management component with pluggable storage and application
      server integrations.
    – OSAccess
      An entitlement security engine for fine grain security access.

                  Architecture ouverte: standards et logiciels ouverts en Java           20
Applications spécialisées




   Architecture ouverte: standards et logiciels ouverts en Java   21
  Système de gestion de contenu
• Standards pertinents
  – JSR 168 - Portlet
  – JSR 170 – “Content Repository”




          Architecture ouverte: standards et logiciels ouverts en Java   22
 Publication Web et de cycle de
           mise à jour
• OpenCMS
  – http://www.opencms.org/opencms/en/
• Lutece
  – Mairie de Paris
• Red Hat CMS
  – http://www.redhat.com/pdf/rhea/Red_Hat_Ente
    rprise_Content_Management_System_Overvie
    w.pdf

           Architecture ouverte: standards et logiciels ouverts en Java   23
                               Portails
• Intégration de contenu provenant de sources diverses
• Personnalisation de la présentation selon l’utilisateur
• Récents standards
   – JSR 168 - Portlets
   – Web Services Remote Portlet (WSRP) de Oasis




              Architecture ouverte: standards et logiciels ouverts en Java   24
         Exemples de portails ouverts

• uPortal
   – Effort massif de collaboration inter-université
   – Repris par le projet MILLE
• Exo Platform
   – http://exo.sourceforge.net/
• Red Hat Portal
• Jetspeed 2.0 de Jakarta
   – Réalisation en conformité au standard futur




               Architecture ouverte: standards et logiciels ouverts en Java   25
         Indexation plein texte
•   Lucene de Jakarta
•   Voir jakarta.apache.org/lucene
•   Rapide, souple, sophistiqué
•   Meilleur que bien des outils commerciaux




           Architecture ouverte: standards et logiciels ouverts en Java   26
  Environnements collaboratifs
• Communautés virtuelles
  – SnipSnap: Blog et Wiki dans un!
     • http://snipsnap.org/space/start
  – Javalobby Community Platform (JLCP)
     • http://www.jlcp.org/index.do, version 0.5
  – Nuke sur JBoss



           Architecture ouverte: standards et logiciels ouverts en Java   27
      Un canevas d’entreprise
• Riche et complexe
• Open for Business Project
  – http://www.ofbiz.org/




          Architecture ouverte: standards et logiciels ouverts en Java   28
                   Flux de tâches
• Permet d’externaliser le séquencement des opérations et
  des événements sur de longue période (heures, jours,
  semaines)
• « Workflow » d’exécution des composants
• Caractéristiques souhaitées
   – Standardisation des descriptions de workflow (XPDL, WfXML)
   – Interface pour la création et l’édition des workflows
   – Mécanisme de persistence de l’état des workflows (Mémoire,
     Sérialization, JDBC, EJB)
• Exemple:
   – OS Workflow
   – OfBiz Workflow
             Architecture ouverte: standards et logiciels ouverts en Java   29
                Règles d’entreprises
• Les règles d’entreprises permettent d’externaliser la logique
  d’affaire et de l’enlever du code
• Les moteurs de règles,
    – héritiers des systèmes experts des années 80,
    – sont la technologie appropriée pour encoder les règles d’affaires
• Critères propres aux moteurs de règles
    –   Résolution par chaînage avant ou chaînage arrière
    –   Performance
    –   Standardisation du langage de définition de règles (RuleML)
    –   Compatibilité avec le JSR94
    –   Type de langage de définition de règles (ex: XML, Lisp-like)
    –   Interface pour la création et l’édition des règles

                  Architecture ouverte: standards et logiciels ouverts en Java   30
Outils ouverts et spécialisés pour
      les moteurs de règles
• Drools
  – Chaînage avant
  – Voir http://www.drools.org/
• Mandarax
  – Chaînage arrière
  – http://mandarax.org/
• Bien d’autres, plus des outils de recherche
  – Rules ML
           Architecture ouverte: standards et logiciels ouverts en Java   31
    Application de gestion
d’entreprise et de relation client
 – Compiere
    • http://www.compiere.org/
 – Offre ces fonctions de base
    •   Quote to Cash
    •   Requisition to Pay
    •   Customer Relations Management
    •   Partner Relations Management
    •   Supply Chain Management
    •   Performance Analysis
    •   Web Store

            Architecture ouverte: standards et logiciels ouverts en Java   32
               Comment choisir?
   Critères de sélection et d’évaluation de la technologie « Open-
     Source »
• Type de license (p. ex. Apache, LGPL, GPL, etc.)
• Compagnie(s) supportant(s) le projet
   – Prix du support externe
• Qualité de la documentation
   – Coût de compréhension
   – (démo en-ligne, exemple(s) de code, FAQ, guide de l’utilisateur,
     javadoc en-ligne, tutoriel, livre(s))
       • pour le développeur
       • pour l’administrateur
       • pour l’opérateur

               Architecture ouverte: standards et logiciels ouverts en Java   33
Qualité intrinsèque du projet
• Nombre de committers
• Trafic sur les principaux mailing lists
• Références sur des sites reconnus
   – (ex: JavaWorld, OnJava.com, TheServerSide.com)
• Dépendances
   – Nombre de jars externes requis
• Facilité d’installation
• Extensibilité
• Flexibilité

              Architecture ouverte: standards et logiciels ouverts en Java   34
                                Qui?
• Communauté Jakarta de Apache
  – Financé par IBM, Sun, et autres
  – Soutenu par une communauté de développeurs
• Entrepreneurs offrant un service en
  complément à leur logiciel ouvert
  – Sourceforge
• Bien d’autres

          Architecture ouverte: standards et logiciels ouverts en Java   35
  Acteurs de la communauté des
        logiciels ouverts
• Utilisateurs
   –   personnel
   –   PME
   –   Grande entreprise
   –   Gouvernements
• Développeurs
   – solutions génériques
   – services clefs en main
• Opérateurs de services

              Architecture ouverte: standards et logiciels ouverts en Java   36
             Modèles commerciaux
•   Distribution
•   Intégration du logiciel
•   Intégration du matériel (IBM, ventes 1.5 Milliard)
•   Support
•   Publications
     – (O’Reilly)
• Contrats de développement
• Version à valeur ajoutée commerciale
     – OpenOffice Vs StarOffice
• Licenses doubles
• Produits spécialisés
     – (Firewall basé sur Linux)

                 Architecture ouverte: standards et logiciels ouverts en Java   37

								
To top