Outils De Dev Open Source 11

Post on 05-Dec-2014

5.537 views 1 download

description

Outils dedéveloppementet environnementslibres

Transcript of Outils De Dev Open Source 11

Khaled BEN DRISSConsultant/formateur

Ingénieur de l'Ecole Centrale de Lyon

Docteur de l’Université JIP'2006

Outils de développement et environnements

libres

Docteur de l’Université Paris VI (Pierre et Marie

Curie)

Khaled.bendriss@oxia-group.com

NetProgress est une SSLL qui maîtrise la fourniture autour des progiciels libres : - Architecture- Services liés d’installation & paramétrage, - Formation,

Professional Open Source

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

- Formation, - Évolution & maintenance, - jusqu’à la réalisation de développements complémentaires sur mesure.

NetProgress est spécialisée dans les technologies J2EE

Khaled BEN DRISSConsultant / Formateur J2EE

� Ingénieur de l'Ecole Centrale de Lyon

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Ingénieur de l'Ecole Centrale de Lyon� Docteur de l'Université Paris 6� Ancien Maître Assistant à l'EPT� Fondateur NetProgress�Architecte de Système d'Information

Objectifs

•Présenter des outils de développement, issu du monde open source, qui

Khaled.bendriss@net-progress.net

source, qui pourraient vous aider à augmenter votre productivité

Outils & processus

� Les outils de développement doivent être inscrits dans le cadre d'un processus de développement

� Il ne s'agit pas seulement des outils de "traitement de code" et compilation

� Les outils servent à – pour produire des logiciels de meilleur qualité

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

– pour produire des logiciels de meilleur qualité– à maîtriser le processus de développement– à mieux communiquer au sein d'une équipe de

développement

Besoin Nouveau système nouveauProcessus d'ingénierie

Un Processus ?

� Définit Qui fait Quoi, Quand le faire, et Commentatteindre un objectif.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Ou un changement ou mise à jour

Processus d'ingénierielogicielle

� Et aussi, un processus de développement doit préciser, – avec quoi ? (quel outil utiliser)

"Axes à outiller"

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test et suivi des bugs

Frameworks techniques

Environnement de développement

� Tout logiciel dont le code source est disponible pour les utilisateurs, qui peuvent l'étudier, le modifier, l'exécuter et le redistribuer librement

� il s'agit de solutions logicielles génériques (au sens

Logiciel libre : une définition

simplifiée

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� il s'agit de solutions logicielles génériques (au sens du terme utilisé dans le secteur médical)

� Rappel : Un Logiciel = Une licence– Pour le Libre : GPL, BSD, MPL,…

Les logiciels libres = quatre principes

Le logiciel libre garantit 4 libertés

L'utilisateur peut L'utilisateur n'a L'utilisateur L'utilisateur peut

Liberté d' exécuterun programme pour

tous les usages (privés ou

commerciaux)

Liberté d' examiner le fonctionnement

interne du programme et de le modifier

Liberté de redistribuerdes copies du programme,

commercialement ou non

Liberté de modifie r le

programme et de redistribuer

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

L'utilisateur peut améliorer le

programme et en redistribuer une nouvelle version

L'utilisateur n'a pas de

permission à demander pour

utiliser le programme

L'utilisateur dispose du code source, et non pas seulement

d'un exécutable

L'utilisateur peut distribuer des copies

du programme gratuitement ou en

les faisant payer

En rupture avec les logiciels propriétaires

L'utilisateur n'est pas obligé de

payer une licence d'utilisation

Le code source n'est plus

confidentiel

La distribution non autorisée n'est plus

un délit

Le créateur d'un logiciel n'a pas le monopole de son

amélioration

Axe : Développement

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

IDE : Integrated Development Environement

� Produire du code, déboguer, …� Le logiciel libre a consolidé sa

position dans ce domaine� Eclipse est le "Linux des IDE" un

concurrent de taille.

EclipseNetBeansJedit

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

concurrent de taille.� 2006 : Borland envisage

d'abandonner ses IDEs et cherche un repreneur pour jbuilder

� L'IDE d'IBM pour WebSphere est basé sur Eclipse (WSAD 5 basé sur Eclipse 2 et RAD 6 sur Eclipse 3)

Exemple : Eclipse� Le Numéro 1 des IDE open source (code original de

chez IBM)

� Codage� Débugage� Refactoring� Packaging� Versioning

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Versioning� …

Exemple : netBeans de Sun

� Le chalenger, IDE open source pour Java/J2EE de chez SUN

� Codage� Débugage� Refactoring

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Refactoring� Packaging� Versioning� Profiling� …

Modélisation : Manipuler des digrammes UML

� Produire des diagrammes UML

� Important dans un process de développement !

Omondo EclipseUML argoUMLPoseidon FujabaUmbrello UML Modeller

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Umbrello UML Modeller

Exemple : Umbrello UML Modeller

� Pour Linux� KDE

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : Fujaba Tool Suite -UML

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : ArgoUML

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Manipulation de base de données

� Très utile pour découvrir les schémas des SGBD

� Manipuler les structures des SGBD

� Tester les requêtes SQL

SQuirreLEclipse pluginsTORA

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Tester les requêtes SQL

TORA : Toolkit libre pour Oracle de chez Quest Software

http

://tora.so

urcefo

rge.n

et/

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

http

://tora.so

urcefo

rge.n

et/

SQuirreL : manipuler schémas & Sql

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Manipulation de LDAP� Très utile pour découvrir les

données dans un LDAP LDAP Browser/Editor

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Besoin particulier web : Manipulation HTML

� Nvu est la refonte du module d'édition HTML de Mozilla, il utilise le langage d'interface utilisateur multi-plateformes XUL.

� Concurent sérieux de DreamWeaver

NVU

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Contrôle et Gestion de version� Suivre les versions des

codes sources, …� Organiser les contributions

des groupes sur un même projet

� Suivre plusieurs versions d'une même application :

CVS & CvsNTSubversionViewCVSWinCvsTortoiseCVS

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

d'une même application : – Exemple : version 1.0.3

installé chez le client et version 2.0.0 en bêta Test …

TortoiseCVS

Exemple : CVS

� http://www.cvshome.org/� UN MUST� Disponible pour presque tous les OS.� Utilisé partout dans le monde.� Intégré dans la plupart des EDI

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Intégré dans la plupart des EDI� Version windows : cvsNT

� Si vous êtes nouveau : étudier l'apport du nouvel outil Subversion (le challenger), "on pense" qu'il va remplacer CVS …

CVS & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

CVS & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

CVS & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

ViewCVS

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

WinCVS

Gérer vos fichiers dans CVS indépendamment de l'IDE

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Intégration continue & "Build"

� Automatiser les opérations de compilation, de packaging, de test de non régression, de déploiement , de

Ant (J2EE)Nant (.Net)Maven

Anthill

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

déploiement , de création d'installation,…

� Construction en continue

AnthillCruiseControlLuntbuildDraco.NET (.net)

Exemple : Ant� Dans le monde Java, ANT est l’outil incontournable

pour automatiser des traitements répétitifs en modebatch : outil de build automatique.

� Il possède tous les atouts propres aux standards :– simple,– bâti sur des technologies ouvertes (Java et

XML), extensible,

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

– bâti sur des technologies ouvertes (Java etXML), extensible,

– et supporté par des acteurs stratégiques (dontIBM, SUN et BEA pour les sociétéscommerciales, mais aussi la grande majorité dela communauté Java OpenSource Eclipse …).

Exemple : Ant

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Ant & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Ant & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : Maven

� Le challenger, l'outil qui avance …� "On parle" même du "remplacent de ANT"

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : CruiseControl� Outil d’intégration continue (chère aux adeptes d'XP).� Se base sur Ant. � une version pour .Net existe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Génération de codes� Très utile pour automatiser

la génération de code usuel � Impose de fixer l'architecture

de l'application à développer et déterminer le code à générer

� La tendance : exploiter une

AndroMDAopenMDXJAGopenXavia

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� La tendance : exploiter une approche basée sur MDA

� Visitez– http://www.codegeneration.net

openXaviaXdocletMiddlegenopenMDXJunoMDA (php)

Exemple : AndroMDA

� Génération d'application à partir d'un modèle UML (principe de MDA)

� Les cartouches de génération

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

génération existantes sont dédiées à J2EE, d'autres type de code est possible

� Exploite Maven

Exemple : JAG� Java Application Generator

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Outil de reporting

� Réaliser des rapports et les publier dans projets Web JasperReports

BIRT (eclipse)DatavisionJFreeReport

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

JFreeReportJFreeChart

Exemple : JasperReports

� Outil de reporting Java : numéro 1

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : JFreeChart

� Génération de graphes

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Contrôle de qualité de code

� Fixer un standard de codage

� Automatiser les opérations contrôle et de revue de code …

CheckStylePMDHammurapi

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

et de revue de code …

Exemple : CheckStyle dans Eclipse !!

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : CheckStyle dans Eclipse !!

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : CheckStyle dans Eclipse !!

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Installateurs� Créer une installation

automatisée � Assiste le processus

d'installation et désinstallation, ses outils n'existe pas par défaut dans les IDE JAVA

IzPack

Packlet

VAInstall

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

dans les IDE JAVA� Se base souvent sur un

script ANT …� Crée des Jar Exécutable

Exemple : IzPack

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Axe : Test, tuning et suivi des bugs

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

JunitNunitCactus DBUnitTestNGWSunit

Tests unitaires Tests de recette

Test Unitaire

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Tests unitaires Tests de recette

Ecrits par... Les développeurs Le client ou son représentant

Portent sur... Des méthodes unitaires

L'ensemble de l'application

Approche... Boîte blanche Boîte noire

Concernent le client

Non Oui

Exemple : Junit

� Origine– framework de test écrit en Java par E. Gamma et

K. Beck (2 des Gof)– open source: www.junit.org

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

– open source: www.junit.org – version 3.8.1 (V4.0 pour Java 5 en mars 2006)

� Objectifs– test des applications Java– faciliter la création des tests– tests de non régression

Exemple de code avec Junit

public class Jip2006Test extends TestCase {ClasseMetier classeAtester ;protected void setUp() {// préparer les ressources

//… }protected void tearDown() {// libèrer les ressources

// …. } Valeur calculé

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

} public testCalclul1() { /// les opérations de test

assertEquals( valeurAttendu1, classeAtester.calcul1()); }}

public testCalclul2() {/// les opérations de test /// les opérations de test

assertEquals( valeurAttendu2, classeAtester.calcul1()); }

}

Valeur calculé

Junit & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Junit & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Junit & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Junit & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Le squelette de la classe de test est généré par Eclipse, – à vous d'écrire le code des tests

Junit & Ant & Eclipse : intégration parfaite

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Junit : Exemple de résultat

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Junit : Exemple de résultat

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

WSUnit - The Web Services Testing Tool

� Et oui, même les Web Services doivent être testés automatiquement

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test de charge (Load testing)

� Tester la montée en charge d'une application, par simulation d'un nombre croissant d'utilisateurs simultanés

JMeterJWebUnitCI ToolsGrinderopenSTA

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

openSTAIDX-Tsunami Jcrawler

Jmeter de Apache

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

JCrawler

� Donner à cet outil un ensemble d'URLs, un objectif de charge (hits/sec) et il va se lancer

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

objectif de charge (hits/sec) et il va se lancer à la simulation d'un test de charge sur tous les liens qu'il trouve sur sa route …

� Pour vous s'assurer que votre site est capable de tenir la charge, c'est l'outil qu'il vous faut!

� À utiliser périodiquement

Test de conformité du site � MaxQ enregistre votre utilisation d'un site web, il traduit les

liens et les entrées en un script Python, � Ce script est qui utilisable pour

– Vérifier que votre site web continue à fonctionner (test de non régression) .

– Vérifier que votre site produit un HTML valide

MAXQ

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test d'intégration & Suivi des bugs

� Outil indispensable, mais souvent négligé

� Il est utilisable :– En cours de développement, par

l'équipe de test (interne) des

Bugzilla, itracker Scarab, JIRATrakcItissue-tracker

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

l'équipe de test (interne) des SSII

– Chez le client final , en phase de réception par l'équipe de test

– Chez les SSII qui offrent le service "béta testeur"

issue-tracker

Exemple : BugZilla

� Le plus célèbre

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Cycle de vie d'un bug dans Bugzilla, est ce que c'est suffisant ?

http://www.bugzilla.org/docs/2.22/html/lifecycle.html

Exemple : iTracker

� itracker est développé en J2EE

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Instrumentation Bytecode ou utilisation de l'interface standard JVMPI, pour avoir des information sur l'utilisation mémoire et CPU d'une application

Eclipse ProfilerJMemProfCougaar ProfilerJTreeProfilerEclipse TPTP

Profiling

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

applicationEclipse TPTP

Exemple : Eclipse Profiler

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Cougaar Profiler

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

JMemProf

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Axe : Gestion de projet

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Planning� Solutions de gestion de

planning – Définition des tâches et des

ressources.– Dépendances entre les

tâches.– Affichage du chemin

critique.

Gantt ProjectOpenWorkbench(Windows)

Imendio PlannerTaskjuggler (Linux)

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

critique.– Diagramme de Gantt.– Édition des calendriers :

global et par ressource.– Vue d'ensemble sur

l'utilisation des ressources.– Disponibilité des ressources

inutilisées..

Planning� Solutions de gestion de

planning – Gantt Project: interface très

facile à utiliser avec les fonctionnalités de base.

– Open Workbench: solution solide avec le plus de fonctionnalités et de rapports.

Gantt ProjectOpenWorkbench(Windows)

Imendio PlannerTaskjuggler (Linux)

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

fonctionnalités et de rapports.

– Imendio Planner: interface très facile à utiliser avec les fonctionnalités de base.

– Taskjuggler: pour aller plus loin dans la gestion de projets, demande un effort initial pour maîtriser l'outil.

Exemple : Gantt Project

� Gantt Project est une solution de gestion de projets très prometteuse. Développé en Java (donc multiplateformes), riche d'une très large communauté, ce logiciel offre les fonctionnalités de base requises pour la gestion de projets. Il s'agit d'une solution idéale pour la gestion de

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Il s'agit d'une solution idéale pour la gestion de projets de petites et moyennes entreprises (PME).

� Conçu avec une interface très simple et intuitive, il permet à un utilisateur peu expérimenté dans la gestion de projets de maîtriser rapidement l'outil et ses fonctionnalités.

Exemple : Gantt Project

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : Open Workbench

� Open Workbench est une solution de gestion de projets visant à directement concurrencer Microsoft Project.

� Développé en C++ (Windows), il s'agit de la solution la plus solide et la plus complète en termes de fonctionnalités et de rapports.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

solution la plus solide et la plus complète en termes de fonctionnalités et de rapports.

� Solutions de suivi de projet – dotProject: bon outil pour la

coordination des équipes de développement.

– phpCollab: idéal pour intégrer l'équipe de développement du client avec les ressources de l'entreprise.

– Tiny ERP et Compiere:

Suivi des projets

dotProjectphpCollabXplannerTiny ERPCompiereWorkeffort

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

– Tiny ERP et Compiere: intégration GRC et PGI (CRM et ERP) dans la même solution.

– Xplanner : idéal pour les adéptesdu processus XP

WorkeffortJIRA

� Workeffort : facilite le suivi effective des durées des tâches par ressources (gestion des "TimeSheet")

Exemple : Xplanner

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Exemple : Xplanner

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Communication entre les membres d'une équipe

� Des équipes de développement "distribuées"

� Le email bien sûre� L'Instant Messaging (IM)� Tous les outils peuvent être

sécurisé via SSL

Wiki (MoinMoin, …)E-List (MailMan, …)IM (Jabber, …)WebMail (SquirrelMail)

OpenGroupware.org

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Tous les outils peuvent être sécurisé via SSL

� Wikis interface simple pour créer, éditer, commenter des contenus en mode group

� Des sites de download type sourceForge

Wiki : pour créer la documentation en mode groups

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Wiki : les outils gèrent même les versions

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Axe : Frameworks techniques (en bref)

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Framework : définition !!

• Un framework est un ensemble de classes et de collaborations entre les instances de ces classes.

• Charpente d'une application

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

• Charpente d'une application

Framework Web

� MVC� Struts : Numéro 1 (pas du

point de vue technique, mais en open source, le volet technique n'est pas le seul )

Struts

WebWork

Barracuda

SpringMVC

Tapestry

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

volet technique n'est pas le seul )

� SpringMVC le ChallengerTapestry

Framework de persitance

� Mapping Objet/relationnel� Numéro 1 : Hibernate

(pierre angulaire de la plate-forme Jboss)

� Utiliser SpringDAO pour

Hibernate

SpringJDBC

Batik

Castor JDO

Apache OJB

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Utiliser SpringDAO pour inverser le control et rester indépendant du choix du framework

Apache OJB

Framework de sécurité

� Simplifier la sécurisation d'application Web

� Numéro 1 : Acegi (sous projet Spring)

� Autorisation &

Acegi for Spring

Seraph

Jguard

WebAuth

ClickStream

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Autorisation & Authentification

� Intégration avec SSL

ClickStream

Axe : Environnement libres

Développement

Gestion de projet et

communication au sein de l'équipe

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Systèmes d’exploitation libres

Systèmes dérivés d’Unix BSD

NetBSD OpenBSD FreeBSD Noyau Apple OSX

Exemple: GNU/Linux

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Systèmes GNUHURD Linux

� Licence : GPL� Nombre d’utilisateurs estimé : 8 000 000� Nombre de développeurs permanents : 500 � Sociétés impliquées : IBM, HP, Oracle, Red-

Hat, Connectiva, etc.� Évolution parts de marché 2002: + 212 %� Domaines : serveurs (web, messagerie, DNS,

annuaires, etc.), bases de données, calculs scientifique, traitement images, systèmes haute disponibilités, etc.

Service réseau: web

Le serveur Apache� Evolution du serveur web originel (a patchy server)� Serveur web le plus utilisé� Architecture modulaire� Supporté par de nombreuses plate-formes: Unix (Linux, *BSD,

Solaris, etc), NT, etc.� Support de nombreux langages serveur side: PHP, TCL, Java, C# /

ASP.NET, SSI, etc.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

ASP.NET, SSI, etc. � Sécurisation basée sur OpenSSL (Apache-ssl, mod_ssl)� Base fondatrice de nombreux projets: Jakarta, Coccon, Ant, etc.

Service réseau: Messagerie

Les serveurs de messagerie

Postfix� Licence : IBM Public Licence� Caractéristiques: légèreté, facilité de configuration� Part de marché estimée : 4 %� Sociétés impliquées : IBM.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Sendmail� Licence: Sendmail� Caractéristiques: Serveur de messagerie le plus utilisé, grande puiss ance de

traitement� Plate-formes: Linux, *BSD, AIX, HP-UX, Solaris, NT, etc.� Part de marché estimée: ~70 %� Sociétés dirigeant les développements: Sendmail Inc.

Service réseau : LDAP

OpenLDAP

� Fonctionnalités d’annuaire, gestion hiérarchisées des habilitations� Support des standards LDAP v2 et v3� Possibilité de couplage avec de nombreux services: web,

messagerie, transferts de fichiers, comptes d’accès, forums usenet, etc.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

etc.� Sécurisation (TLS) via OpenSSL� Base pour solutions PKI ou SSO� Licence: OpenLDAP Public Licence� Caractéristiques: rapidité, simplicité d’implémentation, � Plate-formes: Linux, *BSD, AIX, HP-UX, Solaris, etc.� Sociétés dirigeant les développements: OpenLDAP Foundation

Les serveurs d’application Java EE

JBoss� Licence : LGPL� Caractéristiques: Plate-forme EJB implémentant 100% des spécifications J2EE� Développement dirigés par : JBoss Inc.

Tomcat� Licence : Apache� Caractéristiques: projet Jakarta, moteur de servlets� Développements conduits par: Apache Foundation� Sociétés impliquées : IBM.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Développement dirigés par : JBoss Inc.JOnAS� Licence : LGPL� Caractéristiques: Implémentation opensource des spécifications

J2EE � Développement dirigés par : ObjectWeb

Nouveau

Autres types de Serveurs d’application

dotGNU� Licence : GPL� Caractéristiques: Compatibilité avec le framework .Net, support des

Zope� Licence : GPL� Caractéristiques: Serveur d’application python� Développement conduit par: Zope Corp.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Caractéristiques: Compatibilité avec le framework .Net, support des langages C#, Java, python, perl et PHP.

� Développement dirigés par : GNU / FSF

Mono� Licence : LGPL� Caractéristiques: Framework .NET et module pour Apache 2

(ASP.NET, VB.NET, C#, ADO.NET)� Développement dirigés par : Ximian Inc.

Sécurité: SSL/TLS

OpenSSL

� Bibliothèque de chiffrement� Base de nombreux services ou outils: Apache-SSL, OpenSSH, OpenLDAP,

Mozilla, etc.� Implémente les protocoles SSL (v2 et v3) et TLS (v1)� Implémentes (entre autres) les algorithmes de chiffrement blowfish, des, aes,

idea, rc4, rc5, dsa, rsa, les fonctions de hachage md5, sha et permet la gestion des certificats X509v3

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

OpenSSL� Licence : type Apache� Support et contributeur : Linux4biz et Levitte Programming

GNU TLS� Licence : GPL� Caractéristiques: Implémentation des protocoles SSL v3 et TLS v1, supporte

les certificats X509v3 et les clés OpenPGP et les algorithmes Rijndael (aes) et Twofish

� Développement dirigés par : GNU / FSF

Sécurité : PKIIDX-PKI

� Implémentation d’une infrastructure à clé publique conforme aux recommandations PKIX de l’IETF

� Génération de certificats et de clefs pour navigateurs, jetons de sécurité (cartes à puce, dongle USB, etc.), services réseaux (VPN IPSec, serveurs HTTP/S, etc.)

� Authorité de certification: gestion des certificats (demandes de

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Authorité de certification: gestion des certificats (demandes de certificat, révocations, extensions de droits, ré-attribution, etc.

� API HTTP: API standardisée grâce à laquelle les applications requièrent les services de la PKI

� En production au CEA, à l’INSERM, DGI, GAN Partimoine, Auchan, etc.

� Licence : GPL2� Développements dirigés par : IDEALX

Bases de données

MySQL

PostgreSQL� Base de données Open Source la plus accomplie. Représente 15 années de

développement� Support de bases très importante. Concurrence de DB2 ou Oracle� Très grande qualité du SQL, complet en terme de fonctionnalités

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

MySQL� Base de données libre la plus utilisée dans le monde� Extrêmement rapide, facile d’administration et de configuration� Manque de fonctionnalités (encours de développement) : support transactionnel, clefs

étrangères, vues, procédures stockés, triggers, etc.

SAP DB� Coeur du logiciel SAP� Base de données très peu connue� Outils d’administration très complet (Database Manager, SQL Studio, Db Loader, etc.)

Portail J2EE � Liferay� Jetspeed� uPortal

� Cocoon Portal� eXo

� Pour le développent de Portlet � Environnement de déploiement complet� Privilégier les portail compatible JSR 168

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Privilégier les portail compatible JSR 168

SPIP, OpenCMS, Typo3, Claroline, ATutor ...

CMS Site Web : Blog Site Web : CMS Site Web : E-learning Site Web : Forums Site Web : Galerie Site Web : Groupware Site Web : SPIP Site Web : Wiki

et les autres

Liferay

•le numéro 1 des portails J2EE compatible JSR168

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Cocoon Portal

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Clusters

OpenMosix� Extension du noyau Linux ajoutant des fonctionnalités de clustering (type

load balancing)� Co-développé par L’université de Tel Aviv, Intel, AMD, Myrinet et la NASA� Cluster de calcul, système de fichiers distribué, etc.

Beowulf� Clusters de type HPC (High Performance Computing)

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Clusters de type HPC (High Performance Computing)� Co-développé avec AMD, HP, LANL, etc.� Une dizaine de clusters Beowulf figurent parmis le Top200 des

supercalculateurs� Utilisé intensément par l’industrie cinamétographique

Linux-HA� Cluster et outils pour haute disponibilité (cluster type Fail-Over)� Co-développé avec IBM, Intel, Connectiva, SGI, etc.� Collaboration possible avec Linux Virtual Server (Load Balancer)

Systèmes embarqués et temps réels

� L’utilisation de composants OpenSource se généralise dans le monde des systèmes embarques et des systèmes temps réels

� Distributions GNU/Linux spécialisés (Montavista, FSM Lab RTLinux, etc.)

� Utilisation de Linux dans les PDA (Sharp avec le Zaurus) et les équipements AudioVisuels de dernière génération (Sony, Panasonic, TiVo, etc.) : enregistrements sur disques durs,

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Panasonic, TiVo, etc.) : enregistrements sur disques durs, connections réseau, équipement Wi-Fi, etc.

� Utilisation de Linux comme système d’exploitation de l’ensemble des nouveaux téléphones portables Motorala (logiciels écrit en Java, en collaboration avec MontaVista)

Autres outils Libres à utiliser dans un processus

de développement

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Les logiciels dédiés au poste de travail

BUREAUTIQUETraitement de texte

TableurPublication HTMLBase de données

INTERNETNavigateur

Gestionnaire de courrierAnti-virus

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

GRAPHISME & MEDIARetouche d’image

Montage vidéoEncodage et lecture audio

Schémas techniques

UTILITAIRESDocuments PDF

VisionneusesGestion de fichiers

Logiciel libre : Rédiger vos spécifications fonctionelles avec openOffice!

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

OpenOffice.org 2.0

� un traitement de texte (Writer)� un tableur (Calc)� un logiciel de présentation (Impress)� un logiciel de dessin vectoriel et de PAO (Draw) � un éditeur de pages web� un module de création et de gestion des bases de

données

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

données

� Disponible pour Windows, Linux, Macintosh…� Compatible en lecture et en modification avec les fichiers issus de

Microsoft Office version XP (et des versions antérieures 2000, 97...). � Format de fichier ouvert et basé sur le XML = garantie de pérennité,

d’indépendance, d’interopérabilité et d’accès à l’information pour tous les utilisateurs.

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Gestion du courrier électronique

� Thunderbird : mailer de Mozilla Firefox

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Un comparatif :http://www.arobase.org/softs/choisir.htm

Pensez à relever vos mails en mode web

Retouche d’images The GIMP

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

http://www.01net.com/telecharger/windows/Multimedia /creation_graphique/fiches/5245.html

Retouche d’image PhotoFiltre

Simple

Léger (moins de 2 Mo)

Rapide

L’essentiel des besoins

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

L’essentiel des besoins courants

http://www.01net.com/telecharger/windows/Multimedia /photo_numerique/fiches/21756.html

conclusion

� Beaucoup d'outils,� Manque d'intégration (pour le moment)� L'utilisation d'un outil doit être inscrite dans un

processus (penser CMM)� Le future des IDEs

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

� Le future des IDEs – C'est le PLM– Eclipse est sur la route

Les annuaires de logiciels libres

3 annuaires incontournables

•http://helioss.logiciellibre.net/

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

•http://sourceforge.net/

•http://www.framasoft.net/

Khaled BEN DRISSArchitecte de Système d'InformationNetProgressGSM : (216) 98 33 46 17Tél : (216) 71 72 49 05

Merci

Khaled.bendriss@oxia-group.com Outils de développement et environnements libres JIP'2006

Tél : (216) 71 72 49 05

Khaled.bendriss@net-progress.net