1 / 37

Présentation au DIRO 1 2 décembre 2003

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 1 2 décembre 2003. Architecture ouverte. Standards ouverts Logiciels et documents ouverts Les 2 produisent un écosystème

shelly
Download Presentation

Présentation au DIRO 1 2 décembre 2003

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architecture ouverte:standards et logiciels ouvertsen JavaRobert Gérin-Lajoie, Ciranohttp://www2.cirano.qc.ca/~gerinlar/fr/MaPagePublique/ Présentation au DIRO 12 décembre 2003

  2. 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

  3. 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

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

  5. 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

  6. 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

  7. Comparaison Architecture ouverte: standards et logiciels ouverts en Java

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. Standards applicatifsInfrastructure basé sur J2EE • Serveur Web léger • Base de donnée • Serveur J2EE complet (presque) Architecture ouverte: standards et logiciels ouverts en Java

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

  15. 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

  16. 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

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

  18. 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

  19. 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

  20. Open symphony • Composants • WebWorkAn MVC framework that stresses simplicity and interoperability. • SiteMeshA page layout and decoration engine • OSCacheA web-tier caching framework • OSWorkflowA flexible workflow engine that can be plugged in to almost any need or existing application. • OSUserA user and group management component with pluggable storage and application server integrations. • OSAccessAn entitlement security engine for fine grain security access. Architecture ouverte: standards et logiciels ouverts en Java

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

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

  23. 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_Enterprise_Content_Management_System_Overview.pdf Architecture ouverte: standards et logiciels ouverts en Java

  24. 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

  25. 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

  26. 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

  27. 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

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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

More Related