From 20cfe2ee088e19cfaaa8dcb1f5eaabd9ed668b22 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 23 May 2018 16:07:44 +0200 Subject: [PATCH] Archi client serveur 5 --- .gitignore | 3 +- Cours Archi Client-Serveur/Cours 5.md | 81 +++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 Cours Archi Client-Serveur/Cours 5.md diff --git a/.gitignore b/.gitignore index 658a175..f4ac6ae 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ Projet trash Mémoire.md .owncloudsync.log -notes.sqlite \ No newline at end of file +notes.sqlite +offline diff --git a/Cours Archi Client-Serveur/Cours 5.md b/Cours Archi Client-Serveur/Cours 5.md new file mode 100644 index 0000000..c8ac1da --- /dev/null +++ b/Cours Archi Client-Serveur/Cours 5.md @@ -0,0 +1,81 @@ +Cours 5 +======================== + +Arrivé en retard, y a plein de trucs chelous marqués au tableau c'est flippant + +## JEE + +JEE est un srveur d'application (Apache TomCat) non pas un simple chef d'orchestre +On va se concentrer sur la partie EJB. + +JEE est une architecture, pas un langage. C'est du design pattern, une manière de développer et de penser ls choses (le langage rest du java) + +### EJB + +EJB = Java Bean + +Plusieurs formes d'EJB : + +* Session Beand (partie business/traitement) +* Entity Bean (partie données) + +#### Session Bean + +Deux types de session Bean : + +* Stateful (avec état) +* Stateless (sans état) + +Qu'est ce que ça veut dire ? Si le client se connecte à notre logiciel, est-ce qu'il a une version du catalogue (stateful) ou accès au seul et unique catalogue, unique pour tous (stateless) + +#### Entity Bean + +C'est la couche persistance est celle qui va communiquer avec la base de données. On ne fait plus de SQL, on passe par la couche persistance (ORM) +On trouve JPA (en ORM ?). +Chaque = une table en bdd (entity, comme dans symfony) + + +### Méthode travail + +#### Annotation + +Existe depuis version 5 + +annotation avec un "@" devant (comme dans symfony). Ca permet de définir les trucs,par exemple sateful : +@Stateful + +#### SessionBean + +Chaque SessionBean doit définir deux interfaces et une classe +Les deux interfacs sont remote et locale. En général, la locale hérite de la remote. On a ensuite une classe qui implémente les deux interfaces à la fois. + +Déclarer une interface : + + @Remote + public interface Icalc { + public double add ()(double a, double b); + ... + ... + } + +Pour la classe : + + @Stateful + public class Calc implements ICalc { + public double add(double a, double b) { + return a+b; + } + .... + ... + } + +# TP + +New > Project > enterprise application project +choisir un nom (ne pas mettre ejp ça fait planter eclipse) +Next +(on est en train de créer une appli avec les différentes couches qu'on peut avoir dans le serveur) +New module > on sélectionn les couches qui nous intéressent (ici tout sauf connector) +Puis finish deux fois. Ca crée automatiquement 4 projets : le principal et les couches. + +Dans rpojet EJB, clic droit > New > SessionBean. Mettre un nom d epackage \ No newline at end of file