Rapport de projet de fin d études

Dimension: px
Commencer à balayer dès la page:

Download "Rapport de projet de fin d études"

Transcription

1 TELECOM SUDPARIS VAP : ARCHITECTE DE SERVICES EN RESEAU Rapport de projet de fin d études Comparaison et évaluation de serveurs d'applications Java Sarafou BALDE Muqiu ZHENG Encadrante: Mme Sophie CHABRIDON Le 26 Janvier 2011

2 Sommaire I. Introduction... 3 II. Etude et mise en œuvre de la spécification des EJB Quelques éléments sur les EJB Quelles sont les évolutions apportées par les EJB La mise en œuvre des EJB : les serveurs d applications... 5 III. L application Mailbox Description de l'architecture de l'application Mailbox Mise en œuvre de la solution... 7 IV. Déploiement sous Glassfish... 9 V. Déploiement sous JonAS Le serveur Jonas Installation et configuration de JonAS Développement du Mailbox sous JonAS VI. Déploiement sous SPRING Introduction au Spring Framework Solutions proposées de déploiement VII. Comparaison de performances Glassfish VS Jonas Spring VS EJB VIII. Management de Projet IX. Bilan X. Références

3 I. Introduction Les serveurs d applications Java EE ont eu un grand succès ces dernières années notamment dans le monde professionnel. Ils occupent une place de choix dans les systèmes d information des entreprises. Ce succès est dû à plusieurs raisons : Le langage JAVA s est peu à peu imposé comme un langage robuste et facile à maintenir Les systèmes d informations devenant de plus en plus complexes, les communications inter-applications s accroissent, d où un fort besoin d intégration La centralisation de la «logique» métier facilite les mises à jour et garantit la même version applicative à tous les utilisateurs (pas de risque de vieilles versions de données ou de codes sources pouvant amener une incompatibilité entre les applications) Le découpage des applications en plusieurs «couches» permet d augmenter la sécurité. Ainsi les accès sont gérés de manière centrale et les clients n accèdent pas directement à la couche de données. Les serveurs d applications proposent également une bonne gestion de charge. En effet ils offrent une souplesse dans la répartition et la gestion des traitements avec notamment la possibilité de déployer les traitements dans un environnement distribué. Surfant sur cette vague plusieurs acteurs se sont lancés dans le développement de serveurs d applications Java EE. Les éditeurs absents sur ce créneau tentent aujourd hui de combler leur retard en orientant une partie de leur stratégie vers la proposition de solutions de cloud computing et de virtualisation. C est ainsi que nous avons assisté récemment à la transformation du marché des serveurs d'applications Java EE qui mettent en œuvre la spécification des EJB 3.0. Avec le rachat de SUN par Oracle, le serveur d applications Glassfish a ainsi changé de mains. Du coté de l Open source, il y a également des avancées avec la solution JonAS du consortium OW2 qui enrichit son offre en intégration et architecture orientée services. Les «concurrents» de la spécification des EJB3 ne sont pas en reste avec le rachat de SpringSource, fournisseur de la plate-forme Spring, par VMWare à l'été Notre projet de fin d études s inscrit dans ce cadre et a plusieurs objectifs, qui sont : Etudier la spécification des EJB 3.0 Prendre la main sur les serveurs d application Java EE Glassfish et Jonas ainsi que le Framework Spring 3

4 Spécifier une application de taille significative et la développer sur chacune des ces trois plates formes Faire une comparaison qualitative et quantitative entre les trois plates formes (Glassfish, Jonas et Spring) II. Etude et mise en œuvre de la spécification des EJB 3.0 Dans cette partie nous présentons les plus importantes évolutions de la spécification des EJB (2.0 vers 3.0). Avant d aborder ces évolutions, nous allons répondre à la question : C est quoi un EJB? 1. Quelques éléments sur les EJB La technique Enterprise JavaBeans (EJB) est une architecture de composants logiciels côté serveur pour la plateforme de développement Java EE. Cette architecture propose un cadre pour créer des composants distribués (c est-à-dire déployés sur des serveurs distants) écrit en langage de programmation Java et hébergés au sein d'un serveur applicatif permettant de représenter des données (EJB dit entité), de proposer des services avec ou sans conservation d'état entre les appels (EJB dit session), ou encore d'accomplir des tâches de manière asynchrone (EJB dit message). Tous les EJB peuvent évoluer dans un contexte transactionnel 1. Les EJB permettent aux développeurs d éviter à se préoccuper de tout ce qui a trait au système (transactions, sécurité, persistance, ). Pour être déployés, les EJB ont besoin d un conteneur qui est souvent intégré dans les serveurs d applications. Les EJB représentent une brique maîtresse de la plate-forme Java EE. Figure 1 - Architecture 3 tiers 1 4

5 2. Quelles sont les évolutions apportées par les EJB 3.0 La version 3.0 de la spécification des EJB ont apporté une révolution dans la manière de développer des applications Java EE par rapport aux versions précédentes. Nous allons citer quelques unes parmi les plus importantes. a) La gestion des EJB de type Session Les EJB de type Session, conçus pour encapsuler le logique métier, constituent l un des deux types d EJB. La gestion des EJB de type Session (Stateless et Stateful) se faisait au travers de fichiers XML, grâce à l apparition des annotations dans Java EE 5, cette gestion se fait de manière très simple (utilisation des b) La persistance L une des critiques les plus virulentes sur les EJB 1 et EJB 2 est la complexité de la gestion de la persistance. La persistance consiste à associer un objet à un modèle relationnel dans une base de données 2. Les EJB 3 ont apporté une solution à ce problème avec la spécification JPA (Java Persistance API) qui remplace avantageusement CMP (Container Managed Persistence) qui était la solution sous EJB 2.0. Cette API a plusieurs implémentations dont la plus connue est Hibernate. L permet de spécifier qu une classe doit être persistée par JPA. 3. La mise en œuvre des EJB : les serveurs d applications Nous avons vu que pour fonctionner, les EJB ont besoin d'un conteneur qui est généralement intégré dans un serveur d'applications. La figure 2 montre l'architecture d'un serveur d'application. Le serveur d'applications est un logiciel d'infrastructure offrant un contexte d'exécution pour des composants applicatifs 3. Ils implémentent: la logique métier de l'application grâce aux EJB Une couche de persistance (JPA,...) Un moteur de servlets des composants de connexions et de communication (JNDI, JDBC, JMS, Java RMI, Java IDL...)

6 Figure 2 Serveur d'applications III. L application Mailbox L'un des objectifs du projet est de développer une application de taille significative sur trois plateformes. L'application que nous avons développé un gestionnaire de mail (Mailbox manager). Cette application doit pouvoir gérer des boites mails et proposer une interface de gestion des différents utilisateurs. Les utilisateurs doivent pouvoir envoyer des messages, lire des messages, effacer des messages, etc. L'administrateur du Mailbox doit pouvoir ajouter un utilisateur, modifier les droits d'un utilisateur (lecture, écriture de messages ou de news). L'application Mailbox manager doit en outre être multi-tiers. 1. Description de l'architecture de l'application Mailbox Pour réaliser l'architecture proposée dans le sujet (voir figure 3), nous avons développé l'application en utilisant la technologie Java EE. 6

7 Figure 3 - Architecture proposée L'application est constituée de 3 "couches" (3-tiers): - Une couche client ou couche présentation constituée par une interface client et une interface administrateur. Cette couche permet d'interagir avec l'application et met à disposition des utilisateurs un certain nombre d'opérations. - Une couche "traitement des données" qui correspond à la mise en œuvre de l'ensemble des règles métiers de l'application. - Une couche "données" qui permet le stockage persistant des données. Pour stocker les données, nous avons utilisé une base de données MySQL fournie par l école. 2. Mise en œuvre de la solution Dans cette partie, nous allons décrire la solution nous avons mis en œuvre dans le projet. c) Les clients Pour accéder aux différentes fonctions du Mailbox manager, l'application propose deux interfaces: une interface utilisateur et une interface administrateur. L'interface utilisateur: Cette interface est obtenue en lançant le client utilisateur (MailBoxClient). Elle est accessible après une authentification de l'utilisateur (login et mot de passe) et permet la gestion des messages à travers les opérations telles que: - Envoyer un message - Lire un message 7

8 - Envoyer une news - Afficher les messages non lus - Supprimer un message - etc.. L'interface administrateur On y accède en lançant le client administrateur (AdministratorClient). Pour simplifier la gestion, ce client ne nécessite pas d'authentification. Cette interface permet de gérer les utilisateurs du MailBox. L'administrateur peut notamment: - Ajouter un utilisateur - Modifier les droits d'un utilisateur (lecture, écriture message ou lecture, écriture news...) - Supprimer un utilisateur - etc. d) Les composants coté serveur Coté serveur, nous avons deux classes (MailBoxManagerBean et DirectoryManagerBean) implémentant les interfaces (MailBoxManager et DirectoryManager). Ces deux classes implémentent l'ensemble des fonctionnalités offertes par l'application, elles mettent donc en œuvre les opérations mises en visibilité aux utilisateurs et aux administrateurs. e) Le stockage des données Pour la persistance des données, nous avons mis en place deux classes pour décrire les tables dans la base de données à distance. User: qui contient les informations de l'utilisateur (login, mot de passe, droits...) et les fonctions de traitement de ces données. L indique que un utilisateur sera relié aux plusieurs messages. Message: qui est la classe qui traite deux type de message : mail et news. Il contient notamment les données des messages : sujet, corps du message, type du message, date du message, envoyeur, receveur, variable pour savoir si le message a été lu, etc. Ci-dessous (Figure 4) un aperçu de la base de données créée lors du déploiement, les clés primaires des tables sont générées automatiquement. Figure 4 - Aperçu de la table 8

9 IV. Déploiement sous Glassfish Nous avons commencé notre développement sous Glassfish. GlassFish est le nom du serveur d'applications Open Source Java EE 5 et désormais Java EE 6 avec la version. Dans cette partie, nous allons décrire comment déployer ce programme sous Glassfish. f) Installation et configuration du Glassfish 1 Télécharger GlassFish en utilisant le lien: https://download.java.net/glassfish/3.0.1/release/glassfish zip 2 Extraire le fichier zip. 3 Configurer les variables d environnement comme $GLASSFISH_HOME et $CLASSPATH pour faciliter le travail sous Glassfish. 4 Lancer le Glassfish avec la commande : asadmin start-domain domain1, puis rendezvous sur le lien S il fonctionne bien, la page suivante doit être affichée. Figure 5 - Serveur Galassfish sur localhost 5 Configurer la source de base de données du Glassfish sur le lien : Créer un «JDBC connection pool» en donnant le nom de base de donnée, le URL, le nom du serveur, l utilisateur et le mot de passe. Et puis créer une nouvelle JDBC ressource en utilisant ce pool. 9

10 Figure 6 - page de configuration de la base g) Déploiement de l application Cette version de Glassfish nous permet de beaucoup simplifier la procédure de déploiement des applications. On n a plus besoin d autre descripteur comme ejb-jar.xml, qui est nécessaire pour la version précédente. L arborescence du projet est comme suivant : src : qui contient tous les source Java donc il y a trois paquets. META-INF : qui contient un descripteur persistence.xml. Ce fichier contient la configuration de base pour le mapping notamment en fournissant les informations sur la connexion à la base de données à utiliser. 10

11 client / ejb / entity : qui ont été créés par le compilateur ou on met les classes. build.xml : qui le descripteur de l outil de construction Ant. Il nous permet de compiler, deployer et exécuter l application. V. Déploiement sous JonAS Dans cette partie, nous traitons du développement de l application Mailbox sou Jonas. 1. Le serveur Jonas JonAs (Java Open Application Server) est un projet Open Source développé au sein du consortium OW2 (INRIA, BULL, France Telecom). JOnAS est certifié Java EE 5 depuis La version que nous avons utilisée dans notre projet est la a) Basé sur OSGi La nouvelle architecture JOnAS 5 s'appuie sur un modèle de composants OSGi. Figure 7 - Architecture JonAS basé sur OSGi

12 JOnAS est un ensemble de bundles OSGi, les services techniques sont des services OSGi. Dans cette nouvelle architecture, il est facile de remplacer ou d implémenter un service. Les services peuvent être démarrés, arrêtés ou reconfiguré alors que le serveur est en exécution. b) JonAS 5 intègre un conteneur pour les EJB 3.0 JOnAS fournit toutes les ressources nécessaires pour mettre en œuvre les EJB 3.0 (et pour Java EE 5 en général). Il inclut: Un conteneur EJB 3 (Easybeans, développé au sein du consortium OW2 ) Un conteneur Web (Tomcat ou Jetty) Plusieurs protocoles RMI (IIOP, JRMP, Irmi) sont également supportés Une implémentation Open source de JMS (JORAM 5) c) Gestion du serveur JonAS embarque une console Web pour la configuration du serveur, le déploiement d applications, etc. Figure 8 - Console d'administration de JonAS 3. Installation et configuration de JonAS Une fois que le serveur d application JonAS est téléchargé 5, un certain nombre de variables doivent être configurés (JONAS_ROOT et JONAS_ROOT /bin doivent être mises dans le PATH). Structure du projet JonAS : 5 12

13 JONAS_ROOT deploy bin conf libs templates examples logs Repositories Tous les fichiers de configuration de JonAS sont dans le répertoire conf. Ils peuvent être modifiés mais cela va impacter toutes les applications déployés sur JonAS, ce qui peut être un inconvénient car toutes les applications n utilisent pas forcément la même base de données, ni le même protocole d appels d objets. C est pour cette raison que les concepteurs du projet JonAS ont pensé à permettre la création d un environnement spécifique pour la configuration et le déploiement des applications tournant sur JonAS : ce environnement est créé à travers des scripts présents dans JONAS_ROOT/bin et configuré via la variable JONAS_BASE. JONAS_BASE deploy lib conf work logs Repositories 13

14 En plus de la création de la JONAS_BASE, on a également dans le cadre de ce projet, fait un certain nombre de choix au niveau de certains paramètres de JonAS. - le protocole jrmp pour les échanges via RMI, ce protocole est plus efficace qu IIOP pour les échanges Java-Java (c est-à-dire à la fois le client et le serveur doivent être codés en Java). Jonas permet la modification de ce protocole à l intérieur même du code de l application. Pour cela il suffit d intégrer le fichier carol.properties à la base du projet et de modifier la ligne # jonas rmi activation (iiop, irmi, jrmp) carol.protocols=jrmp - Compte tenu des choix techniques que nous avons fait pour l implémentation de l application Mailbox, nous avons du paramétrer JonAS afin qu il fonctionne avec une base de données MySQL. Pour cela, il faut : Mettre le connecteur MySQL dans les librairies de JONAS_BASE Configurer le fichier jonas.properties en modifiant les lignes Activation du service de base de données: jonas.services jtm,dbm,security,resource,ejb3,jaxws,web,ear,depmonitor Le datasource : jonas.service.dbm.datasources Mysql1 Ensuite il faut créer le fichier Mysql1.properties avec toutes les données permettant la connexion à la base de donnée (login, mot de passe, adresse,.) datasource.name datasource.url datasource.classname datasource.username datasource.password datasource.mapper CSC5002_9 jdbc:mysql://www-inf.it-sudparis.eu:3306/csc5002_9 com.mysql.jdbc.driver adm_csc5002_9 Monday11October rdb.mysql 14

15 Une fois configuré, JonAS se lance simplement par la commande jonas start ; pour l arrêter il faut taper jonas stop. La commande jonas admin permet d administrer le serveur en ligne de commande, ce mode permet notamment de voir les Beans déployés sur le serveur, ce qui est très utile. 4. Développement du Mailbox sous JonAS Dans cette partie, nous abordons le développement et le déploiement de l application Mailbox sous JonAS. Pour faire ce travail, nous sommes partis de l application que nous avions déjà développée sous Glassfish, notre idée était de l adapter afin qu elle puisse tourner sous JonAS. d) Ce qui a été conservé L architecture de l application n a pas été changé, ainsi que sa conception. e) Ce qui a été modifié La persistance Nous avons du modifier le modèle de persistance pour l adapter à JonAS. Tout de même, JPA a été conservé, c est son implémentation qui a été changé. On a ainsi du mettre Hibernate à la place de EclipseLink qui n est pas supporté pas JonAS 5.1. Cela vient du fait que l implémentation JPA 2.0 est apparue après le serveur JonAS 5.1. Modifications dans jonas.properties : Le provider # Set the JPA provider: hibernate or eclipselink jonas.service.ejb3.jpa.provider hibernate Quelques lignes du fichier de persistance (persistence.xml) <?xml version="1.0" encoding="utf-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="pu1"> <provider></provider> <jta-data-source>csc5002_9</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> <property name="eclipselink.ddl-generation.output-mode" value="database"/> 15

16 <property name="eclipselink.target-database" value="mysql"/> <property name="toplink.target-database" value="mysql"/> <property name="toplink.ddl-generation" value="drop-and-create-tables"/> <property name="toplink.ddl-generation.output-mode" value="database"/> <property name="openjpa.jdbc.dbdictionary" value="mysql"/> <property name="openjpa.jdbc.synchronizemappings" value="buildschema(foreignkeys=true)"/> </properties> </persistence-unit> </persistence> Le déploiement Nous avons été surpris par l écart existant entre le déploiement que nous avions fait sur Glassfish et ce que nous devions faire pour que l application fonctionne sous jonas. C est la partie qui nous a le plus pris du temps. Sous Glassfish on avait un plan de déploiement relativement simple, un fichier build.xml qui généré un jar à travers l outil ANT et qui est directement déployable sur le serveur. Notre premier réflexe a été d essayer la même technique sous JonAS. Nous avons ainsi généré un jar que nous avons essayé de déployé sur JonAS, sans succès. On a notamment pas pu résoudre le cette erreur The given filename Mailbox.jar is not an absolute file. La deuxième solution a été de packager le projet dans un fichier EAR. Que contient le fichier EAR? Tout d abord un fichier EAR est un fichier jar pour lequel on a changé l extension. Il est utilisé par Java EE pour empaqueter un ou plusieurs 'modules' dans une seule archive, de façon à pouvoir déployer ces modules sur un serveur d'applications en une seule opération, et de façon cohérente. Ces archives contiennent aussi des fichiers XML appelés descripteurs de déploiement, qui indiquent comment les modules doivent être déployés sur le serveur. 6 Ainsi dans notre cas le fichier EAR est structuré comme suit : 6 16

17 Client Administrateur AdministratorClient.jar Client Utilisateur MailBoxclient.jar EAR Module EJB Ejb3.jar META-INF descripteurs de deploiement Figure 9 - Structure d'un EAR o Les clients Chaque client (Admin et Mailbox) est un fichier jar qui contient la classe compilée du client et son propre descripteur de déploiement. Client Administrator.jar AdministratorClient.class META-INF applicationclient.xml o Le module EJB Figure 10 - Struture du client Le module EJB (fichier jar) contient les classes métiers compilées de l application (les bean et les entity). De plus il embarque un répertoire META-INF contenant le fichier de persistance. EJB3.jar Ejb DirectoryManager DirectoryManagerBean MailBoxManager MailBoxManagerBean User Message Entity META-INF persistence.xml 17

18 o Comment est généré le fichier EAR? Pour voir comment ce fichier est généré, nous allons introduire la structure du projet Mailbox sous Jonas etc : dans ce répertoire, on retrouve le fichier de persistance et les descripteurs de déploiement des modules de l application include : contenant un fichier XML (jonas-common.xml) rassemblant quelques éléments utiles au fichier build.xml. Ce fichier sera inclus dans build.xml, il est là pour éviter de trop surcharger ce dernier. src : qui contient le code source des classes JAVA de l application bin-client/clientconfig : contenant les paramètres JNDI et le protocole de communication le fichier build.xml Le fichier build.xml contient les instructions nécessaires pour la compilation et le packaging des modules de l application Mailbox au travers de l outil ANT. Cela permet entre autre ce générer le fichier EAR - Prise en charge du fichier EAR par jonas A la fin de la compilation à travers ANT, le fichier EAR (maibox.ear) est déposé dans le répertoire deploy de JONAS_BASE. Jonas prend directement en compte le fichier et déploie l application. On n a pas besoin de redémarrer le serveur. Pour lancer les client de l application, on disposent de deux méthodes: 18

19 1. La commande Jclient Avec la commande ci-dessous, on lance le client Administrator, jclient -nowsgen $JONAS_BASE/deploy/mailbox.ear -jarclient administratorclient.jar L'option -jarclient permet de spécifier le client à utiliser cr l'application Mailbox en a deux. Sachant que cette méthode n'est pas conforme à la spécification Java EE, la commande jclient devrait être supprimée dans les prochaines versions de JonAS 2. Le conteneur client Pour se conformer à la spécification Java, Jonas propose un "conteneur" client qui dispose de toutes les classes pour lancer le client de l'application. Ce conteneur est un fichier jar (client.jar) qui se trouve dans $JONAS_ROOT/lib 7. Ainsi pour lancer le client Administrator il faut taper: java -jar client.jar $JONAS_ROOT/lib/client.jar -jarclient AdministratorClient.jar mailbox.ear En plus du client à lancer (option -jarclient), il fut également donner le nom du package EAR qui contient ce client. Pour permettre l'exécution du client sur une machine distance, on doit spécifier les paramètre JNDI et le protocole de connexion. Ces informations doivent être mises dans le fichier carol.properties de JONAS. Exemple l'adresse du serveur se traduit par la ligne: carol.irmi.url=rmi:// :1099 Ce fichier peut être utilisé à différents niveaux. Le fichier carol.properties est recherché en respectant les priorités suivantes, par ordre décroissant: - Le fichier carol.properties spécifié par l'argument -carolfile du conteneur client - le fichier carol.properties packagé dans l'application client (le jar client) - si il n'a pas été trouvé selon les deux méthodes précédentes, le fichier carol.properties contenu dans le fichier JONAS_ROOT/lib/client.jar sera utilisé. Dans notre projet nous avons choisi la deuxième méthode, c'est à dire intégrer le fichier carol.properties dans le projet

20 Code Dans la partie précédente nous avons expliqué le travail qui a été fait pour déployer l application Mailbox sous JonAS avec notamment le développement des descripteurs de déploiement des modules applicatifs. D autres changements sont à noter également au niveau du code source - La recherche d un bean Jonas a sa propre nomenclature des beans que le serveur déploie, pour accéder à un bean il faut donc se conformer aux noms des beans générés à travers le JNDI (Java Naming and Directory Interface). Code de recherche d un bean (ci-dessous celui du bean d administration DirectoryManager) private static final String JNDI_NAME = "ejb.directorymanagerbean" + "_" + DirectoryManager.class.getName() + Context InitialContex = new InitialContext(); directorymanager = (DirectoryManager) InitialContex.lookup(JNDI_NAME); Un autre moyen pour résoudre ce problème est de remplacer le paramètre name de sur Glassfish par le paramètre mappedname de la même annotation sur JonAS. En effet name ne fonctionne pas sur JonAS. - Le type de retour d'une requête Une autre différence est le type de retour d une requête au travers de l entity manager. Lorsque par exemple on envoie une requête qui retourne tous les utilisateurs présents en base, sous Glassfish on l obtenait dans un vecteur alors que sous Jonas on a une ArrayList. Cela peut être du également à une différence entre Hibernate et EclipseLink La requête: query = entitymanager.createquery("select user FROM User user"); Resultant sous Glassfish: Vector<User> userlist = (Vector<User>) query.getresultlist(); Resultat sous JonAS: ArrayList<User> userlist = (ArrayList<User>) query.getresultlist(); 20

21 VI. Déploiement sous SPRING Nous avons dernièrement essayé de déployer le programme sous Spring. Cette partie décrit les différents solution nous avons testées. 1. Introduction au Spring Framework Spring est un conteneur dit «léger», c'est-à-dire une infrastructure similaire à un serveur d'application Java EE. Il prend donc en charge la création d'objets et la mise en relation d'objets par l'intermédiaire d'un fichier de configuration qui décrit les objets à fabriquer et les relations de dépendances entre ces objets. Le gros avantage par rapport aux serveurs d'application est qu'avec Spring, les classes n'ont pas besoin d'implémenter une quelconque interface pour être prises en charge par le framework (au contraire des serveurs d'applications Java EE et des EJBs). C'est en ce sens que Spring est qualifié de conteneur «léger». La mise en place de Spring n a pas besoin d un procédure d installation. Il faut simplement télécharger le fichier compressé en forme de ZIP du Spring 3.0 sur le lien Ce framework s'intègre parfaitement dans Eclipse. Nous avions cru au début que la mise en place de programme sous Spring est une procédure simple ne nécessitant pas beaucoup de modification de code. Mais on s'est aperçu que c'est un framework totalement différent des EJB. Figure 11 - Besoin de développeur de Spring et de EJB

22 5. Solutions proposées de déploiement Dans cette partie, nous allons décrire les différents méthodes effectuées pour déployer le programme Mailbox sous Spring Framework. f) L intégration d EJBs Comme un conteneur léger, Spring est souvent considéré comme un remplacement d EJB. Mais avec la version de Spring 2.5.0, on peut accéder à des EJB et mettre en œuvre des EJBs. Nous avons commencé notre déploiement avec cette solution. Comme la documentation mentionne, Il faut simplement créer un class qui hérite AbstractStatelessSessionBean 9 pour les EJBs 2.x: public class MyFacadeEJB extends AbstractStatelessSessionBean implements MyFacadeLocal { private MyComponent mycomp; //Obtain our POJO service object from the BeanFactory/ApplicationContext protected void onejbcreate() throws CreateException { mycomp = (MyComponent) getbeanfactory().getbean( ServicesConstants.CONTEXT_MYCOMP_ID); } public String myfacademethod(...) { return mycomp.mymethod(...); }... } Mais nous avons utilisé EJB3. EJB est beaucoup simplifié avec cette nouvelle version. Il n y plus de EJB Remote et EJB Home et on n a plus besoin de descripteur ejb-jar.xml pour déployer. Spring nous propose alors la solution suivante pour EJB3: 9 22

23 public class MyFacadeEJB implements MyFacadeLocal private MyComponent mycomp; // for business method, delegate to POJO service impl. public String myfacademethod(...) { return mycomp.mymethod(...); }... } Nous avons donc testé cette solution mais sans réussite. L donne toujours une erreur. g) Redévelopper la couche intermédiaire avec JdbcTemplate Après l échec d intégrer EJB au Spring, nous avons ensuite essayé à redévelopper la couche intermédiaire du programme. Spring a nous offert JdbcTemplate comme une approche simple pour les échanges avec les base de donnée. Nous avons tout à bord créé une nouvelle classe pour configurer l accès à base de données. 23

24 @Configuration public class JdbcConfig public JdbcTemplate jdbctemplate() { DriverManagerDataSource datasource = new DriverManagerDataSource(); } } datasource.setdriverclassname("com.mysql.jdbc.driver"); datasource.seturl("xxxxx"); datasource.setusername("xxxx"); datasource.setpassword("xxxx"); return new JdbcTemplate(dataSource); Avec cette classe, on peut insérer un enregistrement comme la méthode suivante : jdbctemplate.update("insert into User values (?, true, true, true, true,?)", login, password); Et on peut également faire des requête comme la façon : jdbctemplate.queryforobject ("select "); La manipulation des requêtes marchent très bien avec cette solution. Mais la difficulté reste la persistance de donnée. Spring ne connait rien sur la relation entre les deux tables car on n a pas une entity manager (type JPA) qui gère la persistance de donnée. Ceci rend le développement beaucoup plus complexe. Nous avons réalisé les fonctionnalités d AdministratorClient. Mais nous avons aperçu que ce n est pas une bonne méthode sans utiliser un gestionnaire de persistance. Il nous donc trouver une autre meilleure solution qui encapsule les manipulations en relation avec la base de donnée. h) Solution Spring + Hibernate Notre encadrante nous a donc proposé d utiliser Hibernate. Hibernate est un framework open source gérant la persistance des objets en base de données relationnelle et l'avions déjà mis en œuvre sur JonAS. Il permet de «mapper» une base de données relationnelle en 24

25 objets. Il permet donc d abstraire totalement l accès à la base de données et propose donc un accès totalement orienté objet aux données. Nous avons créé une interface qui abstrait les actions sur la table User 10 : public interface UserDao { } public Collection<User> findusers() throws DataAccessException; public Collection<User> findusersbyid(string id) throws DataAccessException; public void save(user person); } Nous avons ensuite crée une nouvelle classe qui implémente cette interface :

26 = true) public class UserDaoImpl implements UserDao { } protected HibernateTemplate template = null; public void setsessionfactory(sessionfactory sessionfactory) { template = new public Collection<User> findusers() throws DataAccessException { return template.find("from User"); public Collection<User> findusersbyid(string id) throws DataAccessException { } return template.find("from User u where u.user_login =?", id); public void save(user person) { } template.saveorupdate(person); Cette solution doit normalement fonctionner mais en raison de l échéance du projet, nous n avons pas eu assez du temps pour la terminer. 26

27 VII. Comparaison de performances Dans cette partie, nous allons d une part comparer l implémentation du Mailbox avec la spécification EJB 3.0 sous JonAS et Glassfish, d autre part nous allons voir les différences entre les EJB et l implémentation proposée par Spring. 6. Glassfish VS Jonas i) Comparaison qualitative Certification Java EE, communauté et documentation Pour commencer cette comparaison, nous allons aborder les certifications Java EE qui sont un gage de performance des serveurs d applications. Sur ce point là il ne fait aucun doute que Glassfish est en avance. Ceci peut s expliquer par le fait que Glassfish est développé au sein de SUN (maintenant Oracle), la même entreprise qui développe les spécifications Java EE et EJB. Concrètement, la dernière version de Glassfish (v3) est déjà certifiée Java EE 6 tandis que Jonas 5.1 est certifiée Java EE 5 même si la version en cours de développement intègre déjà quelques éléments de Java EE Pour ce qui concerne la communauté et la documentation, là aussi Glassfish garde la main grâce au soutien de la forte communauté, par contre avec JonAS on a plus d'exemples fournis avec le serveur, ce qui est très utile pour comprendre le fonctionnement du serveur. Persistance Les deux serveurs intègre JPA 1.0 et proposent plusieurs supports pour JPA 1.0 notamment Hibernate, EclipseLink, Open JPA. Dans ce projet nous ne sommes tout de même pas arrivés à faire fonctionner JonAS et EclipseLink. A noter également que Glassfish V3 intègre JPA 2.0, ce qui n est pas le cas pour l instant des versions Stable de JonAS. Code source Pour la partie codage, nous pouvons mentionner tout d abord que les deux projets proposent des plugins Eclipse pour leur administration (JOPE 12 pour JonAS, Tools Bundle pour Glassfish 13 ). Nous avons testé ces outils, ils permettent de démarrer/stopper/configurer les serveurs. Quand à la possibilité de créer des projets préconfigurés pour fonctionner sur les serveurs, là c est plus mitigé. Tools Bundle est plus orienté projets Web tandis que JOPE ne fonctionne malheureusement qu avec des versions anciennes d Eclipse (il ne fonctionne pas sous Galileo et Helios par exemple). En ce qui concerne les différences dans les développements des applications, à part les quelques modifications mentionnées dans la partie VI.4, il n'y a pas énormément d'efforts de

28 modification de code à faire pour passer d'une application Java EE tournant JonAS vers Glassfish et vice versa. En effet les deux serveurs intègre très bien la spécification des EJB 3.0, le seul soin à apporter lors du développement est de se conformer à cette spécification. Déploiement Nous avons déployé l'application Mailbox écrite en Java EE sous deux formes, une fichier jar classique pour Glassfish et un fichier EAR pour JonAS. La méthode utilisant les EAR est probablement la plus propre surtout lorsque l'on a plusieurs modules EJBs dans l'application. Ce modèle permet d'avoir l'ensemble des modules dans un seul package. A contrario, elle demande un effort de développement supplémentaire, notamment pour l'écriture des descripteurs de déploiement car chaque module de l'application doit être packagé dans un jar. La deuxième méthode est le paquetage des classes dans un jar qui va ensuite être déployé dans le serveur d'applications. Cette méthode convient pour des applications de petite taille et qui n'ont pas beaucoup de modules et qui ne demande pas énormément d'interactions entre les modules, ce qui le cas du Mailbox. Administration Les deux serveurs offrent deux modes d'administration: à travers console web ou en ligne de commandes. Les consoles web offrent à peu près les mêmes possibilités avec notamment la possibilité de : - Configurer le serveur - Configurer des services (bases de données, réseau, sécurité,...) - Gérer les applications (déploiement,...). Glassfish donne la possibilité d'activer le monitoring de certains services (JVM, JPA, conteneur EJB,...). Il faut toutefois noter que l'outil de monitoring qui permet d'avoir la représentation graphique des valeurs générées n'est pas inclus dans la version libre mais uniquement dans la version Entreprise de Glassfish. On peut tout de même récupérer ces valeurs à l'aide de dtrace (système de trace conçu par Sun Microsystems). En ce qui concerne le monitoring du coté de JonAS, il existe un outil (JASMINe) qui permet entre autres de superviser des services JonAS ou encore. JASMINe est open source comme Jonas, ce qui représente un bon point pour le serveur. Figure 12 - Console JASMINe 28

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec:

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec: Cedric Dumoulin Objectifs Comprendre l architecture typique d une application web Exemple: Application permettant de lister un catalogue d articles, et de créer des articles Expérimenter avec: EJB, JPA

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Table des matières. TP JEE (2) Logic metier et Entreprise Java Beans. IUT Bordeaux 1 - Département Informatique

Table des matières. TP JEE (2) Logic metier et Entreprise Java Beans. IUT Bordeaux 1 - Département Informatique IUT Bordeaux 1 - Département Informatique Semestre 4 JEE 20112012 TP JEE (2) Logic metier et Entreprise Java Beans Les EJB (Enterprise JavaBeans) 3.0 permettent de découpler la logique de présentation

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs.

Cours Serveurs d application. et Java avancé. Introduction au cours Serveurs d application. et Java avancé. Prérequis / Objectifs. Cours Serveurs d application et Java avancé Introduction au cours Serveurs d application et Java avancé ITU Université de Nice Richard Grin Version O 1.0.1 12/4/14 20 h de cours et TPs Richard Grin, université

Plus en détail

TP6 EJB : Création d'un EJB3 Entité

TP6 EJB : Création d'un EJB3 Entité TP6 EJB : Création d'un EJB3 Entité Objis : nous allons vous faire aimer JAVA - www.objis.com 1 Table des matières Formation EJB - TP 'Développement EJB3 entity avec Eclipse' Propriété du document...3

Plus en détail

1. Installation d'un serveur d'application JBoss:

1. Installation d'un serveur d'application JBoss: EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download

Plus en détail

Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse

Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse Travaux pratiques : EJB avec JBoss 5 + Java 6 + Eclipse Introduction Le but de ce TP est de programmer une application à la norme EJB en utilisant le serveur d application JBoss. Matériel requis - JBoss

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux

Apache Tomcat 8 Guide d'administration du serveur Java EE 7 sous Windows et Linux Avant-propos 1. À qui s adresse ce livre? 11 2. Les pré-requis 12 Préambule 1. Rappel sur les architectures Internet/Intranet/Extranet 13 1.1 Le protocole HTTP 14 1.1.1 Les méthodes HTTP 16 1.1.2 Les codes

Plus en détail

Auto-évaluation Aperçu de l architecture Java EE

Auto-évaluation Aperçu de l architecture Java EE Auto-évaluation Aperçu de l architecture Java EE Document: f1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION APERÇU

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

EXA1415 : Annotations JavaEE : @Local, @Stateful

EXA1415 : Annotations JavaEE : @Local, @Stateful EXA1415 : Annotations JavaEE : @Local, @Stateful Sur une idée de P. Sécheresse sur http://developpez.com (http://tinyurl.com/5gr57j) Diapo 1 Objectif Créer un EJB CalculatriceBean (V1) Contient une opération

Plus en détail

Guide Pratique EDI NetBeans

Guide Pratique EDI NetBeans Guide Pratique EDI NetBeans Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table des matières Assistant type de Projet EJB...2 Structure Module EJB...5 Ajout d'ejb, Fichiers et Bibliothèques

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

Tour d horizon de Java EE 6

Tour d horizon de Java EE 6 1 Tour d horizon de Java EE 6 De nos jours, les entreprises évoluent dans une compétition à l échelle mondiale. Elles ont besoin pour résoudre leurs besoins métiers d applications qui deviennent de plus

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

JOnAS Day 5.1. Outils de développements

JOnAS Day 5.1. Outils de développements JOnAS Day 5.1 Outils de développements Agenda Introduction Plugin Eclipse (JOPE) Plugin NetBeans (JOnbAS) Cargo 2 Bull, 2009 JOnAS Day 5.1 Objectifs - Réduire les temps de développement - Construction

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

Une introduction à la technologie EJB

Une introduction à la technologie EJB Une introduction à la technologie EJB 1 Introduction La technologie des EJB (pour Enterprise Java Bean) ont été introduite en 1998 pour offrir aux programmeurs un outil qui facilite la conception et le

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Documentation technique

Documentation technique MEEVY Documentation technique Juillet 200 MEEVY a pour but de fournir aux artistes des outils pour promouvoir leur musique sur internet et proposer à l auditeur une plateforme de musique en ligne gratuite

Plus en détail

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16

Architecture J2EE. Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE. Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Architecture J2EE Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE Thierry Lecroq (Univ. Rouen) J2EE 1 / 16 Plan 1 Historique 2 Architecture J2EE 3 J2EE et applications

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

JOnAS Day 5.1. Introduction

JOnAS Day 5.1. Introduction JOnAS Day 5.1 Introduction Historique JOnAS 1998 Lancement du projet (BullEjb) 1999 Mise en open source (JOnAS) 2002 Naissance du consortium ObjectWeb (Bull, Ft, Inria) 2003 Référencement FT (JOnAS 3)

Plus en détail

Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3

Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3 Formation Certifiante : Java/Java EE, Hibernate, Struts2, JSF2 et Spring3 Présentation de la formation Cette formation s'inscrit dans le cadre des formations d'été assurées par la société Inovia Information

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org

Scub Foundation. Socle technique Java Open Source http://www.scub-foundation.org Scub Foundation Socle technique Java Open Source http://www.scub-foundation.org Présentation de Scub Présentation de Scub Scub est une société de service en informatique qui a pour but de fournir du conseil

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

Spécification du profil UML d assemblage cible EJB (version 1)

Spécification du profil UML d assemblage cible EJB (version 1) Spécification du profil UML d assemblage cible EJB (version 1) Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti) Référence : Livrable 2.2 Date : 31 mai 2002

Plus en détail

Répertorier les couches de présentation

Répertorier les couches de présentation Comprendre le fonctionnement d une application J2EE Déploiement Fichiers de configurations Relation avec la DB Objets Application J2EE de base Appli marchand simple Répertorier les couches de présentation

Plus en détail

Urbanisation et architecture des systèmes d information

Urbanisation et architecture des systèmes d information Urbanisation et architecture des systèmes d information Plate forme pour le composant logiciel 2/2 JAVA, JEE et les EJB David Eudeline eudeline.david@free.fr JAVA Qu'est ce que JAVA? Un langage très jeune

Plus en détail

TME 5 plateforme OSGi

TME 5 plateforme OSGi UPMC Paris Universitas Master d'informatique M1/STL/CPS 1 TME 5 plateforme OSGi Frédéric Peschanski 26 mars 2008 Ce sujet de TME est un tutoriel à la technologie OSGi, une plateforme industrielle pour

Plus en détail

Site Web de paris sportifs

Site Web de paris sportifs Conception Nom HENAUD Benoît Numéro d auditeur 05-39166 Version V1.1 Date de mise à jour 15/05/2008 1/18 Table des matières 1. Objectif du document... 3 2. Architecture... 4 2.1. Contraintes techniques...

Plus en détail

Formation développement Java, Spring et Hibernate

Formation développement Java, Spring et Hibernate L institut de formation continue des professionnels du Web Formation développement Java, Spring et Hibernate Référence formation : Durée : Prix conseillé : DJSH 10 jours (70 heures) 4 500 HT (hors promotion

Plus en détail

JAVA. (Java-sans objet) (Dernière édition) Programme de formation. et (Java - Hibernate &Spring) France, Belgique, Suisse, Roumanie - Canada

JAVA. (Java-sans objet) (Dernière édition) Programme de formation. et (Java - Hibernate &Spring) France, Belgique, Suisse, Roumanie - Canada JAVA (Java-sans objet) et (Java - Hibernate &Spring) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser

Plus en détail

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1 Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage

Plus en détail

Technologies distribuées

Technologies distribuées Technologies distribuées Java EE 5 Introduction! L entreprise et le Java EE Définition Les de type EJB Les de type services 1 2 Introduction! Compétences acquises " Compréhension " Interventions " Affranchir

Plus en détail

TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES

TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES 2008 UFR Ingénieurs 2000 Vivien Boistuaud Julien Herr TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES Ce document a été réalisé par V. Boistuaud et J. Herr dans le cadre des travaux

Plus en détail

JOnAS Day 5.1. Clustering

JOnAS Day 5.1. Clustering JOnAS Day 5.1 Clustering Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Développement EJB 3.0 avec Eclipse WTP et JBOSS

Développement EJB 3.0 avec Eclipse WTP et JBOSS Atelier 4-B Développement EJB 3.0 avec Eclipse WTP et JBOSS Cet atelier a pour objectif de démontrer la programmation des EJB 3.0. Il démontre l'utilisation conjointe des beans Entité et Session conformément

Plus en détail

Oracle WebLogic 12c Mise en oeuvre, administration et exploitation du serveur d'applications JEE

Oracle WebLogic 12c Mise en oeuvre, administration et exploitation du serveur d'applications JEE Avant-propos 1. À qui ce livre s'adresse-t-il? 19 2. Prérequis 20 3. Objectifs 20 4. Organisation du livre 21 5. Pour aller plus loin 22 N-tiers, JEE et Oracle WebLogic Server 1. Introduction 23 1.1 Modèle

Plus en détail

Outils d'audit et diagnostic d'applications Java EE avec JOnAS

Outils d'audit et diagnostic d'applications Java EE avec JOnAS Outils d'audit et diagnostic d'applications Java EE avec JOnAS 18 Mars 2010 Mathieu.Ancelin@serli.com Florent.Benoit@bull.net Plan Contexte Outil de diagnostic Outil d'audit Démo Futur 2 Contexte 3 Pourquoi?

Plus en détail

Documentation technique MBDS2.0 Site web administratif

Documentation technique MBDS2.0 Site web administratif Documentation technique MBDS2.0 Site web administratif Le document suivant est destiné aux développeurs souhaitant installer la plateforme sur leurs propres machines. D o c u m e n t a t i o n t e c h

Plus en détail

Spring IDE. Mise en œuvre. Eclipse

Spring IDE. Mise en œuvre. Eclipse A Spring IDE Bien que Spring mette à disposition d intéressants mécanismes afin d améliorer l architecture des applications Java EE en se fondant sur l injection de dépendances et la programmation orientée

Plus en détail

Les Enteprise JavaBeans

Les Enteprise JavaBeans Création d un EJB 2.1 avec Eclipse et JBoss Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/

Plus en détail

Spring par la pratique

Spring par la pratique Spring par la pratique 2 e édition Spring 2.5 et 3.0 Arnaud Cogoluègnes Thierry Templier Julien Dubois Jean-Philippe Retaillé avec la contribution de Séverine Templier Roblou et de Olivier Salvatori Groupe

Plus en détail

TP1 - Entreprise Java Beans

TP1 - Entreprise Java Beans TP1 - Entreprise Java Beans Réseaux Middlewares - Jules Chevalier 1 Configuration Minimale Pour ce TP, vous aurez besoin de outils suivants : Un JDK installé (le JRE est insuffisant) Un IDE édition Java

Plus en détail

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr Grégory Cuellar Julien Goullon gregory.cuellar@bull.net julien.goullon@9business.fr 1 er octobre 2007 1 Généralité 2 / 54 Pourquoi? Historique Les alternatives Les composants 2 Architecture n-tiers 3 JEE

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. Programmer avec Java EE. Besoins des développeurs. Prérequis / Objectifs

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. Programmer avec Java EE. Besoins des développeurs. Prérequis / Objectifs Plan du cours 2 Introduction générale EJB : les fondamentaux Programmer avec Java EE Introduction générale Michel Buffa (buffa@unice.fr), UNSA 2011, modifié par Richard Grin (version 1.0), avec emprunts

Plus en détail

Introduction à la plateforme J2EE

Introduction à la plateforme J2EE Introduction à la plateforme J2EE Auteur : Oussama Essefi Directeur technique Expert Consulting Oussama.essefi@expert-consulting.biz Copyright 2010 Expert Consulting Page 1 1. Introduction 1.1. Pourquoi

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

Quick Start Installation de MDweb version 2.3

Quick Start Installation de MDweb version 2.3 Quick Start Installation de MDweb version 2.3 Date : 2011.08.26 1. Quickstart Quick Start - Installation de MDweb version 2011 Installation Téléchargement et Installation des logiciels requis Déploiement

Plus en détail

Petstore - EJB3 Entity

Petstore - EJB3 Entity Petstore - EJB3 Entity Le tutorial aborde les différentes étapes pour implémenter les EJB3 entity. Toutes les sources du Petstore sont développées. L'application est déployée sous JBoss 5.1.0.GA. J. HILDEBRAND

Plus en détail

Gestion des immeubles

Gestion des immeubles RAPPORT DE CONCEPTION Gestion des immeubles BOUSSRHAN YOUSSEF & BENZITI WALID Email : Youssefboussrhan@gmail.com GSM : 0678510690, 0611347597 ISTA NTIC SYBA CRJJ GROUPE B Annexe : Figure 1: Diagramme de

Plus en détail

Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine

Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine Le produit de développement de Microsoft pour les bases de données le plus proche de SQL Server 2000 est : Microsoft SQL

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier

Etude de cas PLM. Patrice TORGUET IRIT Université Paul Sabatier Etude de cas PLM Patrice TORGUET IRIT Université Paul Sabatier Plan Exemple PLM Répartition avec Sockets Répartition avec RMI Répartition avec CORBA Répartition avec JMS Répartition avec Java EE Améliorations

Plus en détail

Les serveurs applicatifs et les architectures Java

Les serveurs applicatifs et les architectures Java 03 Lucas Part 02 Page 179 Lundi, 20. août 2001 2:58 14 Chapitre 15 Les serveurs applicatifs et les architectures Java Nous avons vu jusqu ici, dans les chapitres précédents, que les utilisateurs accèdent

Plus en détail

Facilitez vos développements J2EE avec JBoss Seam

Facilitez vos développements J2EE avec JBoss Seam Nicolas CHAPON Valtech Technology Facilitez vos développements J2EE avec JBoss Seam Octobre 07 Résumé Le framework JBoss Seam est actuellement un des frameworks de la communauté Java qui génère le plus

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Manuel d'utilisation de la console de supervision

Manuel d'utilisation de la console de supervision Manuel d'utilisation de la console de supervision Ce document décrit la mise en route et l'utilisation de la console d'administration web de PEtALS. EBM WebSourcing (MarieSauvage) - Mai 2007 - (CC) EBM

Plus en détail

Reporting Services - Administration

Reporting Services - Administration Reporting Services - Administration Comment administrer SQL Server Reporting Services Cet article a pour but de présenter comment gérer le serveur depuis le "portail" de Reporting Services. Nous verrons

Plus en détail

W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS. Référence: W4XT_TUTORIAL_020_FR

W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS. Référence: W4XT_TUTORIAL_020_FR W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT DE CONNECTEURS Référence: W4XT_TUTORIAL_020_FR Les prochaines mises à jour de ce document seront disponibles sur www.myw4.com W4 EXTENSION BUS TUTORIEL - DEVELOPPEMENT

Plus en détail

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish

TP N 4 Création d un projet Web Avec EJB JSF et Glassfish TP N 4 Création d un projet Web Avec EJB JSF et Glassfish I. Les objectifs :... 1 II. L architecture de l atelier... 1 III. Rappel... 1 IV. L environnement de développement... 2 V. Création d un projet

Plus en détail

Java pour le développement d applications Web : Java EE Configuration et installation d un serveur d application : Tomcat

Java pour le développement d applications Web : Java EE Configuration et installation d un serveur d application : Tomcat Java pour le développement d applications Web : Java EE Configuration et installation d un serveur d application : Tomcat Mickaël BARON - 2007 mailto:baron.mickael@gmail.com ou mailto:mickael.baron@serli.com

Plus en détail

Le moteur de workflow JBPM

Le moteur de workflow JBPM Le moteur de workflow Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Le moteur de workflow JBPM

Le moteur de workflow JBPM Le moteur de Workflow Le moteur de workflow 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/

Plus en détail

JOnAS 5 Enterprise OSGi javaee compliant

JOnAS 5 Enterprise OSGi javaee compliant JOnAS 5 Enterprise OSGi javaee compliant Agenda Introduction Architecture JOnAS 5 Embarqué 2 Bull, 2009 Diffusion non autorisée sans accord préalable Serveur d'application de classe entreprise - 1er serveur

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager L Orchestration de Services Web avec Orchestra Goulven Le Jeune Orchestra Project Manager D1 Bull, Architecte d un Monde Ouvert : contributeur et acteur majeur de l'open Source Applications métiers Infrastructures

Plus en détail

Architectures à composants

Architectures à composants Interaction requête/réponse Architectures à composants!communication par requête/réponse client requête réponse serveur Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique

Plus en détail

Documentation d'installation Kimios Bundle Deployer

Documentation d'installation Kimios Bundle Deployer Documentation d'installation Kimios Bundle Deployer Pré-requis Les informations contenues dans ce document sont sujettes à modification sans préavis. Si vous avez besoin de soutien technique pour ce produit

Plus en détail

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian

Gestion d une école. FABRE Maxime FOUCHE Alexis LEPOT Florian Gestion d une école FABRE Maxime 2015 Sommaire Introduction... 2 I. Présentation du projet... 3 1- Lancement de l application... 3 Fonctionnalités réalisées... 4 A. Le serveur... 4 1 - Le réseau... 4 2

Plus en détail

Modèle et persistance des données

Modèle et persistance des données Le projet étant créé et les librairies nécessaires ayant été ajoutées, nous pouvons implémenter le modèle de données et la couche de persistance. Arborescence du projet Dans cette première étape de développement,

Plus en détail

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

Etude de cas : PGE JEE V2

Etude de cas : PGE JEE V2 Arrivés à ce point du tutoriel, nous savons créer une application Web implémentant la persistance des données. Toutefois, le modèle de cette application était simple et composé d'une unique classe et les

Plus en détail

Guide de Migration. Intégration de Spring. Version x.y du 28/03/2008. Etat : xxx

Guide de Migration. Intégration de Spring. Version x.y du 28/03/2008. Etat : xxx Intégration de Spring Version x.y du 28/03/2008 Etat : xxx SUIVI DES MODIFICATIONS Version Rédaction Description Vérification Date 1.0 G.PICAVET C.ROCHETEAU K.COIFFET Première version 28/03/08 Document

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 16 NFP111 Systèmes et Applications Réparties Cours 10 - Les Enterprise Java Beans ( aux serveurs ) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

Plus en détail

[ Hornet ] Guide de migration d'un projet Acube vers Hornet

[ Hornet ] Guide de migration d'un projet Acube vers Hornet [ Hornet ] Guide de migration d'un projet Acube vers Hornet 3.6B Cette création est mise à disposition selon le Contrat Paternité - Pas d'utilisation Commerciale - Partage des Conditions Initiales à l'identique

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

Plus en détail

Serveur d'application à la juste taille

Serveur d'application à la juste taille Serveur d'application à la juste taille 18 Mars 2010 Benoit.Pelletier@bull.net Plan Contexte JOnAS 5, plate-forme de convergence JavaEE/OSGi Caractéristiques essentielles pour le Cloud Computing & l'autonomic

Plus en détail

AlterPoker.com. Conception

AlterPoker.com. Conception Conception AlterPoker AlterPoker.com Conception Date de mise à jour : 16 / 06 / 2013 Version : 1.0 Nom VIAU Antoine Numéro d auditeur 1/18 Table des matières AlterPoker.com... 1 Conception... 1 1. Objectif

Plus en détail

Bibliographie. Livres

Bibliographie. Livres Bibliographie Livres Titre : Mastering Entrerpise javabeans and the Java 2 Platform Entreprise Edition. Auteurs : Ed Roman Edition : Wiley ISBN : 0471332291, 9780471332299 Date publication : 1999 bre de

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail