page1
Logiciel libre
Open Source
Cours technique
Les outils logiciels libres
Java Platform, Enterprise Edition
page2
page3
Panorama des différentes distributions GNU-Linux (1)
page4
Panorama des différentes distributions GNU-Linux (2)
Mandriva :
RedHat, Fedora :
page5
Panorama des différentes distributions GNU-Linux (3)
page6
Panorama des différentes distributions GNU-Linux (4)
page7
Les distributions *BSD
Linux est le clone d'Unix libre le plus célèbre,
mais ce n'est pas le seul disponible.
Il y a aussi les distributions *BSD :
page8
Panorama des logiciels libres phares (1) : briques de base
Linux : noyau Unix
Knoppix : distribution de programmes exécutables sans installation (CD vif ou Live CD)
GCC, Perl, Python, Ruby on Rails : plateformes de programmation, compilation et exécution
VIM, Emacs, Eclipse : éditeurs de texte, environnements de développement
KDE, GNOME : bureaux graphiques
CVS, SVN : gestion de versions, gestion de sources
page9
Panorama des logiciels libres phares (2) : bureautique
Firefox : navigateur Web
Thunderbird : applications courriel
XUL : plateforme générique de création d'applications graphiques, notamment utilisée par Firefox et Thunderbird ainsi que les extensions (.xpi)
OpenOffice.org : traitement de texte, tableur, présentation et dessin vectoriel
page10
Panorama des logiciels libres phares (3) : multimédia
VLC : lecteur multimédia
GIMP : dessin 2D
Inkscape : dessin vectoriel
Scribus : PAO
Blender : dessin et animation 3D
Audacity : manipulation de données audio numériques
page11
Panorama des logiciels libres phares (4) : côté serveur
Apache httpd : serveur Web
Samba : partage de fichiers et d'imprimantes SMB pour dialogue avec le monde Microsoft Windows
PHP : langage de scripts, langage de programmation et plateforme web
page12
Panorama des logiciels libres phares (5) : App + ECM
Tomcat : serveur d'application Java (servlets et JSP)
GlassFish : serveur d'application Java EE
JBoss : serveur d'application Java EE,
longtemps le plus rapide et le plus facile à utiliser
JOnAS : serveur d'application Java EE
de l'écosystème OW2
Nuxeo : plus haut niveau encore, gestion de contenu
(Enterprise Content Management, ECM)
page13
Les certifications Linux / Logiciels libres
page14
page15
Les programmes d'automatisation de tâches
page16
page17
page18
page19
Ant (2)
Désavantages :
Avantages :
Orientation métier Java : commandes facilitant la réalisation de tâches spécifiques Java (compilation de fichiers source .java, création de JAR, génération de JavaDoc, etc.)
page20
Maven (1)
Maven est un outil de plus haut niveau que Make et Ant. C'est un outil de structuration de projet qui impose une structure normative et une manière de travailler.
Alors qu'avec Make et Ant les fichiers utilisés sont procéduraux, avec Maven on décrit des projets avec leurs dépendances au lieu de décrire des actions. Avec Maven on décrit un Project Object Model (POM).
La description des actions se met dans un fichier pom.xml.
page21
page22
Maven (3)
Avantages :
Orienté projet, il suffit de décrire les dépendances des projets les uns par rapport aux autres et Maven se charge de générer tous les fichiers JAR, WAR, EAR nécessaires.
page23
Les systèmes libres
de gestion de version
CVS : système centralisé, ancien et avec ses défauts
Subversion (SVN) : le jeune cousin de CVS,
le système centralisé presque parfait
Les nouveaux systèmes décentralisés :
page24
page25
Plateforme Java
contre .NET (1)
page26
Plateforme Java
contre .NET (2)
La date null n'existe pas dans .NET. Les dates sont calculées à partir de la date 1900-01-01.
Il y a la possibilité de mettre des contournements mais c'est sale et cela peut disqualifier l'utilisation de la plateforme .NET pour certains usages.
page27
page28
La plateforme Java (2) : Open Source JDK, logiciel libre
Les derniers gros changements ont été introduits avec Java 5.
C'est seulement la version Java 7 qui est un logiciel libre (avec l'exception classpath).
Open Source JDK ou plus communément appelé OpenJDK http://openjdk.java.net/
Normalement le JDK 6 devait être libre mais il faudra attendre le JDK 7 car le JDK 6 est déjà en production et que cela aurait des impacts.
https://jdk7.dev.java.net/
http://community.java.net/openjdk/opensource/
page29
La plateforme Java (3) : les différentes distributions
On peut télécharger les 3 types d'ensemble Java chez Sun sur http://java.sun.com/ :
Quand on parle du JDK,
c'est le plus souvent le JDK de Java SE
page30
Architecture distribuée : définition (1)
page31
Architecture distribuée : définition (2)
Nous allons aborder différents types d'architectures distribuées : 2-tier, 3-tier, N-tier
tier : terme anglais signifiant étage ou niveau.
Une architecture N-tier est une architecture
à N étages, pas une fraction N/3.
page32
Architecture distribuée : architecture 2-tier
page33
Architecture distribuée : architecture 3-tier
page34
Architecture distribuée : architecture N-tier
page35
page36
Les formats de distribution Java
page37
Déploiement dans les serveurs d'application
Simple copie de fichiers dans un répertoire
Il y a généralement un répertoire deploy ou autodeploy. Il suffit de copier les fichiers .jar, .war ou .ear dedans.
page38
page39
Eclipse (2)
Désavantages :
Avantages :
page40
page41
Les Enterprise JavaBeans
Enterprise JavaBeans ou EJB
Composant pouvant se multiplier
« Bean » dans « Enterprise JavaBean » parce que les composants ont des getters et des setters :
getValueA(), setValueA(a),
getValueB(), setValueB(b)
Plusieurs familles d'EJB en fonction des besoins
Utilisation des annotations (nouveauté de Java 5) pour les définitions des EJB 3.0 et les injections
page42
Entity (1) :
présentation
Pour gérer la persistance
Lien fort avec le modèle de base de données relationnelles
Fichier de configuration : persistence.xml
La persistance des EJB3 est basée (sous-ensemble) sur Hibernate, infrastructure de gestion de la persistance des objets dans des bases relationnelles. Il existe également l'infrastructure JDO (Java Data Object) mais apparemment en perte de vitesse de par le succès de Hibernate. JDO est connu pour le fonctionnement avec des bases objets.
page43
Entity (2) :
code
@Entity
public class Ticket implements Serializable {
private int id;
@Id
public int getId() {
return id;
}
}
La clé primaire peut être autre chose qu'un int,
par exemple une String.
page44
page45
page46
Session Beans (2) : Stateless
page47
Session Beans (3) : Stateful
page48
Message Driven Beans
Message Driven Beans ou MDB
EJB réagissant à des messages
Deux types de Message Driven Beans :
page49
Empaquetage et déploiement
Un EJB est défini par plusieurs classes.
Tous les fichiers nécessaires (.class, éventuels fichiers de configuration : persistence.xml, etc.) doivent être mis dans un JAR à déployer dans le serveur d'application.
Les métadonnées des EJB sont à mettre soit sous forme d'annotations (recommandé), soit dans un descripteur de déploiement.
Le nom du JAR est sans importance.
On peut mettre les définitions de plusieurs EJB différents dans un JAR.
page50
page51
Les Web Services
Web services = XML,
mais plusieurs familles (XML-RPC et SOAP).
Java EE propose des Web services en SOAP
Seuls les Stateless Session Beans peuvent implémenter un Web service
Méthodes interopérables, indépendantes de la plateforme, peut-être la seule possibilité pour interconnecter des plateformes hétérogènes
Mauvaises performances comparées aux méthodes et appels classiques, binaires
page52