Example: tourism industry

Java Enterprise Edition - gibello.com

java EEJava Enterprise EditionPierre-Yves Gibello - jour : Septembre 2011)Ce document est couvert par la licence Creative Commons work is licensed under the Creative Commons Attribution-ShareAlike License. java EE - Objectifs Faciliter le d veloppement de nouvelles applications base de composants Int gration avec les syst mes d information existants Support pour les applications critiques de l entreprise Disponibilit , tol rance aux pannes, mont e en charge, securit .. java EE C est quoi? , J2EE (Java2 Enterprise Edition ) Sp cifications Mod le de programmation Impl mentation de r f rence Suite(s) de tests Label java EE Sun (qualification de plateformes) Offre commerciale Oracle WebLogic (haut de gamme) IBM Websphere (no 1) Oracle (Sun) Glassfish NEC WebOTX SAP NetWeaver TmaxSoft Jeus, Kingdee Apusic, TongTech TongWeb AS.

Java EE Java Enterprise Edition Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011) Ce document est couvert par la licence Creative Commons Attribution-ShareAlike.

Tags:

  Java

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Java Enterprise Edition - gibello.com

1 java EEJava Enterprise EditionPierre-Yves Gibello - jour : Septembre 2011)Ce document est couvert par la licence Creative Commons work is licensed under the Creative Commons Attribution-ShareAlike License. java EE - Objectifs Faciliter le d veloppement de nouvelles applications base de composants Int gration avec les syst mes d information existants Support pour les applications critiques de l entreprise Disponibilit , tol rance aux pannes, mont e en charge, securit .. java EE C est quoi? , J2EE (Java2 Enterprise Edition ) Sp cifications Mod le de programmation Impl mentation de r f rence Suite(s) de tests Label java EE Sun (qualification de plateformes) Offre commerciale Oracle WebLogic (haut de gamme) IBM Websphere (no 1) Oracle (Sun) Glassfish NEC WebOTX SAP NetWeaver TmaxSoft Jeus, Kingdee Apusic, TongTech TongWeb AS.

2 Offre open-source JBoss (no 1 en nombre de d ploiements) OW2 JOnAS Oracle (Sun) Glassfish ( Platform Edition ) Apache Geronimo ( Community Edition de IBM Websphere) openEjb .. java EE sous l il de Standard en volution depuis 1997 J2EE en 2003, Au d part, applications Web n-tiers Pr sentation (Servlets puis JSP), essentiellement HTTP Logique m tier : EJB Donn es : JDBC Puis infrastructure de support standard pour EAI Facteurs de rationnalisation majeurs (JTA, JMS, JCA, Web Services) Evolution de progiciels existants vers java EE java EE - ArchitectureServletsJSPsEJBsWEB ContainerEJB ContainerJava EE Application ServerDBEISB rowserJava static void main(.)

3 { Architecture multi-tiers Client L ger (Web, browser) Lourd (Application java , ) Architecture orient e service (Application r partie sans pr sentation) Serveur d applications Conteneur EJB + logique m tier Services non fonctionnels EIS ou Base de donn es Un serveur java EEEJB ContainerJOnAS java EE JOnAS java EE Server BeanEnterpriseJava BeanHomeinterfaceRemoteinterfaceEnterpri seJava BeandatabaseJDBC CallsDatabaseEJBRMI CallsJava ClientTransactionHTML ClientWeb ContainerWeb ServletsHTTPS ource : Bull/OW2 (JOnAS) Conteneur Web ServletsCode java ex cut sur le serveurEquivalent du CGIG n ration de contenu Web dynamique JSP: java Server PagesM lange de HTML/XML et de code javaLibrairies d extension ( taglibs )Pr compilation en servlet RMI Remote Method Invocation java seulement, mais passerelles RPC objet (appels sur objets distants) Service de nommage (RMI registry) S curit param trable (SecurityManager) Garbage Collection distribu e T l chargement de code Fonctions avanc es Activation d objets persistants, R plication JNDI Service de nommage / annuaire java Naming and Directory Interface API acc s aux annuaires Service Provider par annuaire cible (LDAP, NIS, RMI ) Utilisation avec les EJB Acc s au bean (stub ou interface locale)}

4 Pour initialiser Acc s diverses ressources (UserTransaction, Queues JMS, ) JMS java Messaging Service JMS Provider : inclus dans JavaEE Transport synchrone ou asynchrone, Garantie de livraison Messaging domains point point ou publish/subscribe Lien avec EJB : message-driven bean Pour changes asynchrones API JavaEE de transactions : JTA java Transaction API Package TransactionManager : begin( ), commit( ), rollback( ) .. Transaction : commit( ), rollback( ), enlistResource(XAResource), registerSynchronisation(Synchronization) .. Synchronization : beforeCompletion( ), afterCompletion(commit | rollback) JTA : Participants XAResource Conformes la sp cification XA Enregistrement avec ( ) Synchronization Pour les ressources non transactionnelles ( ) Participant averti des fronti res de transaction enregistrement : ( ) beforeCompletion( ) quivaut prepare( ) afterCompletion( tat = commit | rollback) quivaut commit | rollback API XA de JavaEE Package XAResource (prepare( ), commit( ), rollback( ).)

5 Xid (identifiant de transaction XA) Package Extension de JDBC (bases de donn es) XADataSource (getXAConnection( )) XAConnection (PooledConnection, avec getConnection( ) et getXAResource( )) JMX java Management eXtensions API unique pour applications de management Mbeans avec accesseurs get/set Typage faible, attributs nomm s Serveur JMX Enregistrement des Mbeans Les applis d administration dialoguent avec le serveur JMX Instrumenter un composant Fournir un ou des Mbeans Les enregistrer aupr s du serveur JMX JMX : Exemple d un serveur JavaEEJava EE ServerJava EE ServerServicesTransactionSecurityManagem ent EJBWeb Registry EAREJB ContainerAdminServletsWEB ContainerEJBsJMX ServerAdmin : OW2 JOnAS S curit : JAAS Authentification et autorisation Authentification : s'assurer que le client est bien celui qu'il pr tend tre.

6 Autorisation (ou habilitation ) : s'assurer qu'il d tient les droits de faire ce qu'il demande. Clients regroup s par roles ex. administrateur, d veloppeur, La gestion des associations nom/ mot de passe ou certificat / r le est sous-trait e un Realm (peut utiliser diff rentes techniques : fichier de conf, base de donn es, ) Int gr aux m canismes de s curit du conteneur Web Pour les clients lourds java , APIs clientes JAAS pour impl menter l'int raction avec l'utilisateur (ex. saisie du mot de ) EJB : Architecture JavaBeans pour l Enterprise Pas des JavaBeans (pas de repr sentation ) Logique m tier S appuie sur java SE et les APIs de java EE JNDI, JTA/JTS, JDBC, JMS , JAAS Gestion d clarative : personnalisation par annotations (ou sans toucher au code source : descripteur de d ploiement) Portable sur les diff rents conteneurs EJB EJB : Gamme de services implicites Gestion du cycle de vie Gestion de l tat S curit Transactions Persistance Localisation des composants transparente(comparable objets distribu s CORBA) R partition de charge, pooling=> Le d veloppeur se focalise sur les aspects m tier EJB EJBL ogique m tier.

7 +Callbacks .. +ic=new InitialContext();ds = (DataSource) ( java :comp/env/jdbc/MyDS );<resource-ref> <..name> <trans-attribute>RequiredDDComposantHomeClientInterface M tier:Remote(rmi) oulocalLifecycle interface- create- remove- findRemote(rmi) ouLocalImplement parle conteneurImplementation du composant:-logique m tier (code)-callbacks pour le conteneur(ejbCreate, ejbPassivate,ejbLoad, ..)Descripteur de d ploiement-comportement transactionnel (Tx attributes)-S curit (ACLs)-Persistance (entity beans)-Ressources (DataSources ..) EJB 3 Conteneur EJBL ogique m tier+ Annotations d ploiement EJB3+ Callbacks conteneurBusinessInterfaceClientInterfac e M tier:Remote(rmi/iiop)ou localSimplification : 1 classe, 1 ou 2 interfaces- L interface Home (cycle de vie) dispara tLe descripteur de d ploiement devient facultatif- Remplac par des annotations java dans le bean- Si pr sent tout de m me, priorit au DD sur les annotations EJB : Interface m tier Remote (RMI / IIOP) ou Local Vue client de l EJB Declare les m thodes m tier Implement e par les outils int gr s la plateforme EJB - au moment du d ploiement Exemple : interface m tier package facturation.

8 Public interface FacturationRemote {void init( );void creerFacture(String numfact, double montant);Facture getFacture(String numfact); // ..} EJB : Impl mentation du Bean Impl mente les m thodes de l interface m tier Peut h riter d un autre EJB, ou d un POJO Sp cifie ses caract ristiques de d ploiement par annotations Type de bean Comportement : transactions, s curit , Callbacks conteneur Exemple : Impl m. de Beanpackage facturation;@Stateful (mappedName= Facturation class FacturationBean implements FacturationRemote {void init( ) { // ..}Facture getFacture(String numfact) { // ..}// ..} EJB : Code clientContext ctx = new InitialContext();// appel JNDI pour obtenir une r f rence// l interfaceFacturationRemote fact = (FacturationRemote) ( Facturation );// appel m thode m tierFacture f = (numfact); EJB : Entit Repr sente des donn es dans la base de donn es Persistance g r e par le conteneur Pas d acc s BD dans le code.)

9 Pour les EJB3, utilisation de JPA ( java Persistence API) EJB : Bean Session Gestion des interactions entre beans entit ou session, acc s aux ressources, r alisation d actions sur demande du client Objets m tier non persistants Stateful ou Stateless - maintient ou pas un tat interne en m moire=> Un Bean Stateful encapsule la logique m tier et l tat specifiques un client EJB : Message Driven Bean Composant asynchrone Execution sur r ception d un message JMS M thode onMessage( ) Appels d autres beans, Descripteur de d ploiement / annotations Associations Bean / ressource JMS Ressources JMS (ex. Queue ou Topic) Message Driven Bean : exempleAdministrationJMSBDMDB StockHandlerMDB OrderEntity Bean StockTXServeur EJBA ppli :ClientJMSpublierEnvoi messageMise jourJNDIT opicQueuecr erbindQCFcr er Message Driven Bean : exemple (2)public class StockHandlerBean implements {.}

10 Public void onMessage(Message message) { .. sh = (StockHome) (" java :comp/env/ejb/Stock"); queue = (Queue) (" java :comp/env/jms/Orders"); .. MapMessage msg = (MapMessage)message; pid = ("ProductId"); qty = ( "Quantity"); cid = ("CustomerId"); Stock stock = (pid); (qty); .. qs = (queue); TextMessage tm = (); String m = "For CustomerId = "+cid+" ProductId= "+pid+" Quantity= "+qty; (m); (tm); .. }} MDB : Annotations@MessageDriven(activationConf ig = {@ActivationConfigProperty( propertyName= destination , propertyValue= SampleQueue ),@ActivationConfigProperty( propertyName= destinationType , propertyValue= )} EJB : Configuration & D ploiement Interface(s) (Remote et/ou Local), classe qui impl mente le Bean D ploiement : annotations dans le bean, et/ou descripteur de d ploiement (fichier XML)<ejb-jar> Description du Bean (Entity ou Session.))


Related search queries