EJB - MIS

publicité
Architecture des
systèmes d’information
répartis
Cours 2 : servlets et JSP, EJB
Sorina Ionica
1
Architecture multicouche J2EE
Couche client
Conteneur
d'applet
Applet
Couche Web
Couche métier
Conteneur Web
JSP
Conteneur d'EJB
Servlet
Client de
l'application
JDK
EJB
JDBC
Conteneur
du client de
l'application
JDBC
J2SE
J2EE
JDK
JDK
Couche SI
Base de
données
2
Conteneur Web
 Composants



web -Servlets et JSP
s’exécutant dans un conteneur web
Préparation dynamique du contenu
Traitement et formatage liés à la présentation
3
Example 1 : bonjour.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
charset=UTF-8">
content="text/html;
<title>Une première JSP</title>
</head>
<body>
<h1>Bonjour le monde !</h1>
</body>
</html>
4
Example 2 : page dynamique
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
...
<p>Trois fois <br>
<%
for (int i =
0 ; i <
3 ; i++) { %>
Bonjour le monde ! <br>
<% } %>
sans effort !</p>
….
</html>
5
Les Entreprise Java
Beans (EJB)
6
Les EJB - Présentation
 Modèle
de programmation pour des
composants distribués (accessibles à
distance) et couplés à un BD
 Composants Java portables, réutilisables et
déployables qui peuvent être assemblés pour
créer des applications.
7
Les EJB - Avantages

Le conteneur EJB fournit aux EJB des services





Les EJB contiennent la logique applicative


Gestion des transactions
Gestion des autorisations
Persistance
Gain de temps pour le développeur
Les clients ne gèrent plus les règles métiers
Les EJB sont portables


Réutilisation d’EJB existants
Déployable sur n’importe quel serveur compatible J2EE
8
Les EJB – Les serveurs
d’application EJB

Serveur d'applications




système hébergeant des EJB
respectant les spécifications EJB
intègre souvent un serveur web (Tomcat)
Serveurs d'applications existants



J2EE Sun Java 2 Enterprise Edition
commerciaux
 WebSphere (IBM), WebLogic (BEA), Sun ONE, Oracle App
Serv, …
gratuits

JBoss/WildFly, JOnAS, Glassfish, …
9
Les EJB – les différents types
 EJB

local vs remote
Local
Ne peut être invoqué que depuis une classe java
exécutée dans la même machine virtuelle java
 Exécution simple d'objets Java
 EJB sécurisés


Remote
Peut être invoqué depuis n'importe où
 Connexion au serveur + recherche de l'EJB dans
l'espace de nommage + RMI

10
EJB3 – Les EJB session
package hw;
import javax.ejb.Remote;
@Remote
public interface hello {
public String sayHello();
}
package hw;
public class helloBean implements hello {
@Override
public String sayHello() {
return "Hello world";
}
}
11
Les EJB – les EJB session
 EJB
session : chargé d’effectuer une tâche pour
un client

Avec etat
Un EJB est dédié à un client durant toute la vie de son
instanciation
 Toute invocation d’une méthode de l’EJB par le client
sera traitée par le même EJB

12
Les EJB – les EJB session
 EJB
session : chargé d’effectuer une tâche pour
un client

Sans état
pas de maintient de l’état conversationnel
 Peut repondre aux demandes de plusieurs clients

13
Les EJB – les EJB session
public class CartBean implements Cart {
private List products;
private void initializeBean(){
products = new ArrayList<>();
}
public void addProductToCart(Product product) {
products.add(product);
}
}
14
EJB3 – Les EJB session
 EJB3




Une interface business (local et remote)
La classe du bean
Des annotations @Remote, @Local, @stateless
ou @stateful
Un cycle de vie suivi par des méthodes de la
classe du bean taggées : @PostConstruct,
@PreDestroy, @PrePassivate, @PostActivate
15
EJB3 – Les EJB session
package hw;
import javax.ejb.Remote;
@Remote
public interface hello {
public String sayHello();
}
package hw;
import javax.ejb.Stateless;
@Stateless
public class helloBean implements hello {
@Override
public String sayHello() {
return "Hello world";
}
}
Context context=new InitialContext();
hello bean=(hello)context.lookup("helloBean/remote");
System.out.println(bean.sayHello());
16
Téléchargement