La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Enterprise Java Bean X. Blanc Enterprise Java Bean Enterprise Java Bean EJB Xavier BLANC LIP6 Laboratoire informatique de Paris 6

Présentations similaires


Présentation au sujet: "Enterprise Java Bean X. Blanc Enterprise Java Bean Enterprise Java Bean EJB Xavier BLANC LIP6 Laboratoire informatique de Paris 6"— Transcription de la présentation:

1 Enterprise Java Bean X. Blanc Enterprise Java Bean Enterprise Java Bean EJB Xavier BLANC LIP6 Laboratoire informatique de Paris 6

2 Enterprise Java Bean X. Blanc Plan Vers les composants Les Beans (précurseur) Les Enterprise Java Beans –Bases –Architecture –Sécurité –Transaction –Déploiement Conclusion

3 Enterprise Java Bean X. Blanc Vers les composants Des procédures aux composants

4 Enterprise Java Bean X. Blanc Historique Logiciel 1980 paradigme procédural 1990 paradigme objet 2000 paradigme composant COMPLEXITE De lapplication SIMPLICITE Dutilisation

5 Enterprise Java Bean X. Blanc Quest ce quun Composant ?

6 Enterprise Java Bean X. Blanc Vers les composants Les avantages des composants: –Réutilisables (code, architecture, source) –Evolution de lapplication –Portabilité –Administration de lapplication –Tolérance aux pannes

7 Enterprise Java Bean X. Blanc Vers les composants Désavantages des composants: –Manque de plate-forme, de standard (trop ?) –Manque de maturité –Manque de contrôle –Composants liés, gros composant

8 Enterprise Java Bean X. Blanc Client / Serveur Client Serveur Données Centralisation / Répartition des données Centralisation / Répartition des traitements ARCHITECTURE

9 Enterprise Java Bean X. Blanc Le modèle 3 tiers Client Serveur Données

10 Enterprise Java Bean X. Blanc Le multi-tiers Client Serveur Données

11 Enterprise Java Bean X. Blanc Quest ce quun composant Entité indépendante(dune autre) Formatée selon un certain Style Une application est un assemblage de composants (plate-forme)

12 Enterprise Java Bean X. Blanc Les Beans ~ Client Bean Les précurseurs

13 Enterprise Java Bean X. Blanc Définition Les Java Beans ont été les premiers composant java. Ils posent les concepts du paradigme composant selon Java. A java bean is a reusable software component that can be manipulated visualy in a builder tool. Un java Bean peut être graphique.

14 Enterprise Java Bean X. Blanc Cycle de vie Write-once run anywhere –Outil de developpement –Application Design Time Run Time

15 Enterprise Java Bean X. Blanc Sémantique Essentiellement Graphique –Client Cependant, il existe des Beans « invisibles » –Serveur –Pas ou peu existant

16 Enterprise Java Bean X. Blanc Utilisations Java Bean Data Serveur Corba Serveur Java Serveur JDBCJDBC DataBase Protocol IIOP RMI

17 Enterprise Java Bean X. Blanc Caractèristiques Les Beans doivent supporter les fonctions suivantes: –Introspection –Customization –Events –Properties –Persistence

18 Enterprise Java Bean X. Blanc Introspection / Customization Arranger/ Déployer Notion de règles décriture Notion de reflection Notion de Bean Info

19 Enterprise Java Bean X. Blanc Event Les événements Java sont spécifiés dans Java Beans Les Java Beans communiquent par événement Notion du listener Notion de ladapteur

20 Enterprise Java Bean X. Blanc Properties / Persistence Stockage des Beans sur un support physique Notion de Serializable Stockage de létat courant Possibilité de rendre des attributs non sauvegardables

21 Enterprise Java Bean X. Blanc Conclusions Prototype (Java en construction) –Event –Serializable –Introspection Cycle de vie en 2 phases Notion de plate-forme dacceuil => Les Swings sont des Java Beans

22 Enterprise Java Bean X. Blanc Enterprise Java Bean Du coté du serveur

23 Enterprise Java Bean X. Blanc Définitions Enterprise JavaBean is an architecture for component based distributed computing Enterprise Beans are components of distributed transaction-oriented enterprise applications

24 Enterprise Java Bean X. Blanc Généralitées Standard proposé par Sun (et IBM) Standard de composant pour les applications réparties Simples dutilisation, indépendant des couches transaction et sécurité (plate-forme) « Write Once, Run Anywhere » Compatible avec les API Java Compatible avec les autres plate-forme (CORBA)

25 Enterprise Java Bean X. Blanc Exemple dutilisation JavaBeans client Java IDL client CORBA client Enterprise JavaBeans EJB Serveur IIOP

26 Enterprise Java Bean X. Blanc Cycle de Vie Un bean est construit puis packagé Un bean peut être arrangé lors du déploiement Un bean est déployé dans un EJB serveur Une instance de bean est créée et gérée par un container Les accès au Bean sont interceptés par le container

27 Enterprise Java Bean X. Blanc Types dutilisateurs EJB server provider EJB container provider Bean provider Application assembler Deployer System administrator EJB Architecture Application Administration

28 Enterprise Java Bean X. Blanc Vue Générale Enterprise bean instances Container component contract EJB Server Client deployment descriptor Client-view

29 Enterprise Java Bean X. Blanc Client-view Identité de du composant –Le container fournit une identité unique par composant Home interface –Le container fournit des opérations de gestion de composants : Create, Remove, Find … Invocation de Méthodes –Le container permet aux clients dinvoquer les méthodes du composants

30 Enterprise Java Bean X. Blanc Component contract Un bean doit toujours fournir une vue de son état. Le container doit pouvoir linterroger. Un container doit passer un contexte aux beans. Ce contexte permet aux beans davoir des informations sur le container et sur les clients. Un container doit gérer un ensemble de propriétés pour les beans (environement, transactions, sécurité, …)

31 Enterprise Java Bean X. Blanc Deployment descriptor Un ejb-jar est le format standard de packaging de beans Contient les classes du beans Contient un descripteur de déploiement (sous format XML)

32 Enterprise Java Bean X. Blanc Développement dun Bean 1.Création des classes du Bean. (Business, home, remote) 2.Arrangement du Bean. (Transaction, Sécurité, …) 3.Déploiement du Bean. 4.Exécution du Bean.

33 Enterprise Java Bean X. Blanc Session Bean Obligatoire dans EJB 1.0 Sexécute au nom dun client Peut être transactionnel Relativement de courte durée de vie Nest pas persistant

34 Enterprise Java Bean X. Blanc Entity Bean Obligatoire dans EJB 1.1 Représente une entité existante et stocké de façon persistante Est transactionnel Peut être partagé entre plusieurs client Persistant

35 Enterprise Java Bean X. Blanc Architecture Session et Entity

36 Enterprise Java Bean X. Blanc Vue client Session Bean Un client accède à un Bean à travers sa Remote Interface Un EJBObject implante la Remote Interface Un EJBObject existe dans un container Un EJBObject a une identité Un EJBObject nest pas persistant Plusieurs EJBObject peuvent exister dans un même container

37 Enterprise Java Bean X. Blanc Vue client Session Bean La création dun EJBObject se fait par lintermédiaire de la Home Interface Le container exporte la référence de la Home Interface grâce à JNDI La Home Interface permet de créer, supprimer les EJBObject

38 Enterprise Java Bean X. Blanc Vue Client Session Bean EJBObjectEJB Home EJB 1 EJBObjectEJB Home EJB 2 Client

39 Enterprise Java Bean X. Blanc Vue Client dun Session Bean Le client trouve la Home Interface (JNDI) Le client fait un Create() sur la Home Interface et obtient une référence sur un EJBObject Le client fait ensuite des appels sur lEJBObject qui transmet au bean

40 Enterprise Java Bean X. Blanc Contrat du container Une instance de Session Bean représente une session entre le client et lapplication. Ses champs contiennent létat de la session. Typiquement une instance de Session Bean lit et écrit des données dans une base de données. La vie de linstance de Session Bean correspond à la vie du client.

41 Enterprise Java Bean X. Blanc Contrat du Container Un container gère la mémoire de son environnement de travail. Pour cela, il peut stocker les beans sur un autre support. Chacun des bean doit donc implanter deux fonctions. –Une fonction passivate appelée lors du transfert du bean sur un autre support. –Une fonction activate appelée lors du transfert du bean vers le container.

42 Enterprise Java Bean X. Blanc Contrat du container Une Session Bean peut être de deux types: STATEFULL:Le bean sait dans quel état il se trouve. Il sait quelles sont les méthodes quil a effectué. STATELESS:Le bean ne sait pas dans quel état il est. Il ne sait pas quelles méthodes ont été appelées.

43 Enterprise Java Bean X. Blanc Création dune Instance de Session Bean Statefull Client EJB Home EJB Object Context Instance Create(args) new setSessionContext() ejbCreate(args)

44 Enterprise Java Bean X. Blanc Création dune Instance de Session Bean Stateless (1/2) Client EJB Home EJB Object Context Instance Create() new

45 Enterprise Java Bean X. Blanc Création dune Instance de Session Bean Stateless (2/2) Container Context Instance new setSessionContext() ejbCreate()

46 Enterprise Java Bean X. Blanc The Bean Provider Le constructeur de Bean doit fournir la classe du Bean. –Elle doit implanter javax.ejb.SessionBean. –Elle doit être public et pas abstract. –Elle doit implanter les méthodes ejbCreate(). Celles-ci doivent être public, retourner void, conforme RMI, renvoyer lexception javax.ejb.CreateException. Chacune des méthodes ejbCreate() doit avoir une méthode create() équivalente dans la home interface –Elle possède des méthodes business. Public et conforme à RMI.

47 Enterprise Java Bean X. Blanc The Bean Provider La remote interface du bean: –hériter de javax.ejb.EJBObject –Conforme aux interfaces RMI –Signatures des méthodes de business de la classe du bean

48 Enterprise Java Bean X. Blanc The Bean Provider La Home interface du bean: –Hériter de javax.ejb.EJBHome –Conforme aux interfaces RMI –Pour chaque méthode ejbCreate() de la classe du bean il faut une interface create() –Ces méthodes doivent retourner lexception javax.ejb.CreateException

49 Enterprise Java Bean X. Blanc Généralités Entity Quasiment équivalent que pour Session –Remote & Home interface Entity bean sont persistant –Lien avec un support de stockage Durée de vie infini

50 Enterprise Java Bean X. Blanc Architecture EJBObjectEJB Home EJB 1 EJBObjectEJB Home EJB 2 Client

51 Enterprise Java Bean X. Blanc Home interface Créer un nouveau EJBObject (idem que Session) Supprimer un EJBObject() Rechercher un EJBObject existant. La Home interface propose un ensemble de méthode find()

52 Enterprise Java Bean X. Blanc Vie dun Entity Bean does not exist and not referenced does not exist and referenced exist and not referenced exists and referenced home.create(..) release reference home.find(…) direct delete or home.remove(…) release reference direct insert object.remove() or home.remove(…) or direct remove

53 Enterprise Java Bean X. Blanc Persistance Persistance Serveur / Bean Persistance Serveur. Le container stocke le bean sur un support physique lors des appels aux méthodes ejbCreate(), ejbRemove(), ejbLoad(), … Le Bean peut gérer lui-même la persistance

54 Enterprise Java Bean X. Blanc Accès partagés Un entity bean est accessible de manière concurrente par des clients, cest au serveur de gérer ces accès concurrents. Pour cela, deux stratégies sont proposées –De faire une copie de chaque entity bean pour chacune de transactions concurrentes. Ainsi la gestion de la concurrence est déléguée à la base de donnée sur laquelle seront faite les modifications. –De géré la concurrence à laide de verrou sur les entity bean

55 Enterprise Java Bean X. Blanc Bean Provider Quasiment identique que pour Session La classe du bean hérite de java.ejb.EntityBean La Home interface La Remote interface

56 Enterprise Java Bean X. Blanc Descripteur & ejb-jar Les constructeurs de Bean proposent leurs beans aux constructeurs dapplications –Archive ejb-jar (enterprise-beans) Les constructeurs dapplications passent les applications pour quelles soient déployées –Archive ejb-jar (assembly-descriptor)

57 Enterprise Java Bean X. Blanc Bean Provider Home, Remote et Bean Autres classe Descripteur de bean : ejb-jar.xml –Nom du Bean –Nom des classes (Home, Remote et Bean) –Type du Bean (Session / Entity) –Environnement –…

58 Enterprise Java Bean X. Blanc Application Assembler Tous les Beans Descripteur dapplication : ejb-jar.xml –Noms des beans –Environnement –Liens entre les beans –Security –Transaction

59 Enterprise Java Bean X. Blanc Sécurité

60 Enterprise Java Bean X. Blanc La Sécurité dans EJB Larchitecture de lEntreprise de Java Bean permet de transférer la gestion de la sécurité au niveau du serveur. La sécurité au sein des Java Bean inclus: –Un accès à lAPI de sécurité de Java (java.security) pour gérer localement la sécurité. –Une description aux niveau de larchive (XML) pour que le serveur gère la sécurité.

61 Enterprise Java Bean X. Blanc La Sécurité dans EJB Larchitecture Entreprise Java Bean utilise le package de sécurité du langage Java : java.security. Le package nest pas décrit dans la norme, celle-ci nous renvoie à Java. La classe java.security.Principal est plus précisément utilisée pour identifier un client.

62 Enterprise Java Bean X. Blanc La Sécurité locale Un bean a accès aux informations du serveur via son contexte. Celui-ci offre donc deux fonctions pour permettre à un bean dobtenir lidentité dun client. –getCallerPrincipal() –IsCallerInRole(String role_name)

63 Enterprise Java Bean X. Blanc Sécurité par le Container Il est possible de spécifier des règles daccès pour chacune des méthodes. Ceci se fait par lintermédiaire du descripteur XML –Description de rôles –Description des règles de sécurités

64 Enterprise Java Bean X. Blanc Déclaration XML de rôle blabla employe …

65 Enterprise Java Bean X. Blanc Déclaration XML de règles employe EmployeServ *

66 Enterprise Java Bean X. Blanc Les transactions

67 Enterprise Java Bean X. Blanc Les transactions dans EJB Le support des transactions réparties est une caractéristique principale de larchitecture EJB. Les entity bean et les session bean statefull peuvent être transactionnel. Les aspects transactionnels sont soit gérés par le serveur EJB soit par le bean lui même. La gestion par le serveur EJB est totalement transparent.

68 Enterprise Java Bean X. Blanc gérée par le Bean Utilisation de javax.transaction.UserTransaction Programmation classique –Commit –RollBack –…

69 Enterprise Java Bean X. Blanc gérée par le Serveur Spécification des caractéristiques transactionnelles dans le descripteur XML javax.ejb.SessionSynchronization Javax.ejb.EJBContext. –setRollbackOnly() –getRollbackOnly()

70 Enterprise Java Bean X. Blanc Descripteur XML Cinq aspects transactionnel –NotSupported –Required –Supports –RequiresNew –Mandatory –Never

71 Enterprise Java Bean X. Blanc Descripteur XML EmployeRecord * Required

72 Enterprise Java Bean X. Blanc Conclusion Et les autres plate-forme

73 Enterprise Java Bean X. Blanc Exemple de Bean Classe du Bean public class ExampleBean implementjavax.ejb.SessionBean{ int solde; public void credit(int val) { solde +=val; } public void debit(int val) { solde -=val; } public int solde() { return solde; } public ejbCreate(int val) { solde = val; }

74 Enterprise Java Bean X. Blanc Exemple de Bean javax.ejb.Sessioncontext ctx; public void ejbActivate() { } public void ejbPassivate() { } public void ejbRemove() { } public setSessionContext(javax.ejb.SessionContext ctx) this.ctx = ctx; } public exampleBean() { }

75 Enterprise Java Bean X. Blanc Exemple de Bean Home Interface public interface ExampleHome extends javax.ejb.EJBHome { Javax.ejb.EJBObject create(int val) throws java.rmi.RemoteException }

76 Enterprise Java Bean X. Blanc Exemple de Bean Remote Interface Public interface exampleRemote extends javax.ejb.EJBObject { public void credit(int val) throws java.rmi.RemoteException; public void debit(int val) throws java.rmi.remoteException; public int solde() throws java.rmi.RemoteException; }

77 Enterprise Java Bean X. Blanc EJB 1.1 Composant orientés Serveur Un seul type de communication Domaine dapplication restreint Beaucoup plus stable que EJB 1.0 Ouverture vers CORBA Nombreuses plate-forme –BEA WebLogic, BullSoft, IONA, Inprise

78 Enterprise Java Bean X. Blanc Et le futur ? Quest ce quun composant ? CCM Corba Composant Model DCOM


Télécharger ppt "Enterprise Java Bean X. Blanc Enterprise Java Bean Enterprise Java Bean EJB Xavier BLANC LIP6 Laboratoire informatique de Paris 6"

Présentations similaires


Annonces Google