architecture ouverte: standards et logiciels ouverts en java robert gérin-lajoie, cirano...

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

Upload: theophile-quentin

Post on 04-Apr-2015

113 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte:standards et logiciels ouverts

en JavaRobert Gérin-Lajoie, Cirano http://www2.cirano.qc.ca/~gerinlar/fr/MaPagePublique/

Présentation au DIRO

12 décembre 2003

Page 2: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 2

Architecture ouverte

• Standards ouverts

• Logiciels et documents ouverts

• Les 2 produisent un écosystème– Liberté– Autonomie– Choix– Compétition

Page 3: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 4: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 4

Standards ouverts

• Spécifications techniques

• Implémentation de référence

• Tests de conformité

Page 5: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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é

Page 6: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 7: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 7

Comparaison

Page 8: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 9: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 10: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 11: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 12: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 13: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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)

Page 14: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 15: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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/

Page 16: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 17: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 17

Canevas applicatifs

• Modèles de présentation- MVC

• Applications légères

• Applications complexes

Page 18: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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/

Page 19: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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/

Page 20: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 20

Open symphony

• Composants– WebWork

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

Page 21: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 21

Applications spécialisées

Page 22: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 22

Système de gestion de contenu

• Standards pertinents– JSR 168 - Portlet– JSR 170 – “Content Repository”

Page 23: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 24: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 25: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 26: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 27: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 28: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

Architecture ouverte: standards et logiciels ouverts en Java 28

Un canevas d’entreprise

• Riche et complexe

• Open for Business Project– http://www.ofbiz.org/

Page 29: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 30: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 31: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 32: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 33: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 34: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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é

Page 35: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 36: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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

Page 37: Architecture ouverte: standards et logiciels ouverts en Java Robert Gérin-Lajoie, Cirano gerinlar/fr/MaPagePublique/ Présentation

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)