Développement d un réseau social modulaire

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

Download "Développement d un réseau social modulaire"

Transcription

1 Développement d un réseau social modulaire Stage - Master I Matthieu Proucelle Université d Artois 29 mai 2009

2 Table des matières 1 JEE Java Plate-forme Spécifications JSR JCP JEE Modèle n-tier Modèle en couche de JEE EJB JPA JSF Serveurs Sécurité - Authentification - Autorisations Sécurité Authentification Autorisations Au delà des spécifications Logiciel Libre Aspect Humain Aspect Économique JEE et open source JEE L application Présentation Analyse Fonctionnement Rôles Cas d utilisation Technologies choisies API et Frameworks Environnement de travail Serveur d application Architecture Persistance Business-tier Web-tier Modularité Première approche Portlets Difficultés rencontrées Bugs Navigation Création de composants

3 Remerciements Je remercie tout particulièrement Mr Stéphane Cardon, mon tuteur, pour son engagement et son support tout au long de ce stage. Je tenais aussi à remercier Mathieu Boniface avec qui j ai partagé des discussions des plus constructives et encourageantes. 2

4 Introduction L université d Artois fournit à travers le Master Informatique de la faculté Jean Perrin une formation avancée sur les technologies liées à internet. Le stage à effectuer en première année permet aux étudiants d apprécier pendant 8 semaines le travail en entreprise ou dans un laboratoire de recherche. La première moitié de mon travail consistait à étudier et apprécier la technologie Java Entreprise Edition. Cette technologie est un ensemble de spécifications qui permettent de développer des applications d entreprises de grande envergure. Le premier chapitre dévoile les dessous de cette vaste technologie en détaillant les points principaux et en élaguant les moins importants. Lors de la deuxième partie de mon stage, j ai développé une application permettant de mettre en ligne un réseau social. Un réseau social est un ensemble d entités sociales, telles que des individus ou des organisations sociales, reliées entre elles par des liens créés lors des interactions sociales. Une application de réseau social est donc un moyen informatique de faire vivre un tel réseau. Elle doit permettre à des personnes de créer des liens, d interagir et de se regrouper. Je présente les différentes parties du développement de ce logiciel, depuis le choix des technologies utilisées jusqu à l analyse des conséquences de ces choix dans la seconde partie de ce document. 3

5 Chapitre 1 JEE Certains acronymes sont récurrents dans ce document, c est pourquoi il est nécessaire d en faire une petite présentation avant de se lancer dans le vif du sujet. Un API pour Application Program Interface, est un ensemble de classes utilitaires permettant le développement d applications. Un Framework est a l instar d un API, un ensemble de classes. Cependant il impose une architecture logicielle que le développeur doit respecter. JSE pour Java Standard Edition, la plateforme Java de base incluant les bibliothèques et les outils nécessaires à l exécution des programmes Java. JDK pour Java Développement Kit, la plate-forme de développement de Java, regroupant les API et les outils nécessaires au développement et à la compilation des programmes Java. JEE pour Java Entreprise Edition. 1.1 Java Java est un langage orienté objet, créé en 1995 par une équipe de développeurs Sun. Le but de ce projet était de proposer un langage de programmation reprenant les forces du C++ mais en le simplifiant énormément. Aujourd hui Java a 14 ans, et est utilisé dans de nombreux domaines, depuis des petits logiciels de bureau jusqu aux énormes applications d entreprise. Ce langage est un langage interprété, c est à dire qu il n est pas exécuté directement sur la machine, mais sur une machine virtuelle (un logiciel) installée sur l ordinateur. Cette machine virtuelle, appelée JRE pour Java Runtime Environnement, prend un fichier java précompilé en entrée et exécute le programme sur l hote. De ce fait, Java est portable. Le code source n etant pas compilé pour une architecture en particulier, les machines virtuelles de tous les systèmes répondent et exécutent de la même façon un programme Java, sans que l auteur ne se soucie de la portabilité de son code source. Grâce à sa simplicité et à sa portabilité, Java est un langage qui permet une productivité accrue. 1.2 Plate-forme JEE (Java Entreprise Edition) peut être considéré comme une extension de JSE (Java Standard Edition) spécialisée dans les applications pour entreprises et internet. C est un ensemble de spécifications, de services et de protocoles qui permettent le développement d applications réseaux robustes. La plate-forme distribuée par Sun est un groupe de logiciels, composé d un serveur d applications, d un SGBD, et de différents outils utilitaires. 1.3 Spécifications Une spécification est un ensemble de documents qui sont écrits avant le développement d une technologie et qui décrivent précisément le fonctionnement des différents composants de cette dernière. 4

6 1.3.1 JSR Le langage Java et les plate-formes JSE et JEE sont spécifiés. Chaque changement ou nouveauté dans le langage est proposé, étudié, spécifié et implémenté. Toutes ces spécifications sont issues des JSR (Java Specification Request). A la sortie du composant, les JSR finales fournissent le code source du composant et une série de tests qui vont être utilisés par des éditeurs tiers pour attester de la compatibilité de leurs applications JCP Les JSR sont émises par un organisme nommée JCP (Java Community Process). Cette organisation qui regroupe des entreprises, organisations et développeurs Java, est responsable des évolutions du langage et coordonne leurs sorties JEE 5 Voici une liste des principales spécifications de JEE : Java API for Web Services (JAX-WS) 2.0, Java API for XML-Based RPC (JAX-RPC) 1.1 Java Architecture for XML Binding (JAXB) 2.0 SOAP with Attachments API for Java (SAAJ) Streaming API for XML (StAX) Web Service Metadata for the Java Platform Enterprise JavaBeans (EJB) 3.0 J2EE Connector Architecture (JCA) 1.5 Java Servlet 2.5 JavaServer Faces (JSF) 1.2 JavaServer Pages (JSP) 2.1 JavaServer Pages Standard Tag Library (JSTL) J2EE Management J2EE Application Deployment Java Authorization Contract for Containers Common Annotations for the Java Platform Java Message Service (JMS) API Java Persistence API Java Transaction API (JTA) JavaBeans Activation Framework (JAF) 1.1 JavaMail Malgrè la taille impressionnante de cette liste, on peut facilement regrouper les spécifications les plus intéressantes en 4 groupes : Logique métier Enterprise JavaBeans (EJB) 3.0 : Stateful, stateless, message-driven, les EJB sont le cœur de la couche logique de l application. JavaMail : Envoi et réception des mail. Persistance Java Persistence API : API de persistance qui permet d enregistrer les états des instances de nos classes en charge de stocker les données. Partie Web Java Servlet 2.5 : Un servlet est une classe qui permet de produire dynamiquement des données suite à une requête HTTP. Ici les servlets sont souvent utilisés avec les pages JSP ou comme proxy entre les EJB et une application client. JavaServer Faces (JSF) 1.2 : Java Server Faces est un framework de présentation respectant le paradigme MVC. JavaServer Pages (JSP) 2.1 : Les JSP sont des pages html qui contiennent du code qui sera interprété par le serveur avant l envoi de la réponse au client. Elles sont souvent couplées à un servlet. JavaServer Pages Standard Tag Library (JSTL) : La JSTL est l ensemble des tags pouvant être utilisés dans une page jsp, qui sert de standard pour les serveurs compatibles JEE. 5

7 Les web services Java API for Web Services (JAX-WS) 2.0 Java API for XML-Based RPC (JAX-RPC) 1.1 Java Architecture for XML Binding (JAXB) 2.0 SOAP with Attachments API for Java (SAAJ) Streaming API for XML (StAX) Web Service Metadata for the Java Platform Ces quatre groupes représentent les 4 parties majeures d une application d entreprise. En faisant abstraction des web services, les ensembles Logique métier Persistance et Partie Web s apparentent à ce que l on appelle tier ou couche. Ces tiers sont la base d un paradigme de développement appelé modèle n-tier. 1.4 Modèle n-tier Le développement n-tier (ou multi-tier) propose un modèle d architecture en couche qui permet de séparer les différentes parties d une application. Une couche ne dépend que des couches de niveau supérieur. La communication se fait entre deux couches adjacentes. Le modèle n-tier le plus répandu est le modèle 3-tiers. Il définit 3 couches : une couche de présentation, une seconde couche de logique métier, et une dernière couche de données. Figure 1.1 Le modèle 3-tiers Le tier de présentation affiche les données au client. Il peut y avoir plusieurs tiers de présentation, chacun indépendant des autres. Lorsque le client demande une ressource, le tier présentation envoie une requête au tier logique métier. Ce dernier effectue le traitement logique de l application en communicant avec le dernier tier qui lui fournit les données nécessaires. 1.5 Modèle en couche de JEE Java Entreprise Edition offre aux développeurs la possibilité de créer leurs applications sur une base n-tier. Voici les couches que l on retrouve dans une application JEE : Tier Client : Le tier client peut être une application swing, un applet, une page web etc... C est la couche qui affiche les données à l utilisateur. Tier Web : Le tier web est représenté ici par le couple JSP/Servlets et le framework JSF. C est la partie de l application qui produit la présentation et qui l envoie au navigateur client. Elle reçoit les requêtes du client et fait la liaison avec les EJB si nécessaire. Tier Métier : Les EJB et entités, qui représentent la partie métier de l application. Tier EIS (Enterprise Information System) : Ce tier est constitué d une ou plusieurs bases de données qui peuvent être réparties sur plusieurs machines. C est ici que toutes les données persistantes sont stockées. 6

8 Figure 1.2 Le modèle n-tier Cela étant dit, chacun est libre d utiliser l architecture qu il désire. Par exemple un simple site web dynamique, qui peut tenir dans un Web Container, n aura pas besoin du tier Métier EJB. Effectivement, la logique métier peut être implémentée directement dans le tier Web à l aide de classes Pojo (Plain Old Java Object). Les EJB sont donc surtout utilisés pour les applications de grande envergure utilisant des webservices ou des clients de différentes sortes (Web, Swing, WS, etc...) EJB Les EJB (Entreprises JavaBeans) sont des composants serveurs qui respectent la JSR 220. Dans une application d entreprise, ils représentent la logique métier, proposent une interface avec les entités, et font office de Façade (au sens design pattern) au système. Généralités Un EJB est une classe java à laquelle on ajoute une ou plusieurs annotations qui vont définir son type. Un système d interface permet de définir les méthodes qui peuvent être appelées en local (à l intérieur de la JVM du serveur) ou à distance. Exemple public interface MyBeanLocal { public void dojob ( ) ; public void dojobonlylocal ( ) public interface MyBeanRemote { public void dojob ( ) ; Listing 1.1 Interfaces d un EJB Le bean qui implémentera l interface MyBeanLocal proposera 2 méthodes qui pourront être appelées à partir du serveur. S l implémente aussi l interface MyBeanRemote, la méthode dojob, sans aucun changement dans le code, pourra aussi être invoquée d un client distant. 7

9 EJB Stateless Les EJB Stateless sont des composants qui fonctionnent de façon éphémère. Le client demande et reçoit des données, et l interaction se termine là. Ils n ont pas d état, l utilisation des attributs de classe est donc à proscrire car la durée de vie théorique d un EJB Stateless est la même que le temps nécessaire pour traiter la méthode. On utilise l pour définir un Stateless EJB S t a t e l e s s public class AdditionBean { public int add ( int a, int b ) { return a+b ; Listing 1.2 Stateless EJB EJB Stateful Contrairement au composant sans état, les Stateful Session Beans associent les requêtes à un unique client. Il peut donc conserver des données propres aux actions du client dans des attributs. On utilise l pour définir un Stateful Session Bean public class AdditionSessionBean { private int somme ; public int add ( int a ) { somme += a ; return somme ; Listing 1.3 Stateful EJB MDB Les MDB, ou Message Driven Beans, sont des EJB qui offrent un fonctionnement asynchrone à l aide de la technologie JMS (Java Messaging Service). En effet, pour les deux types de beans précédents, le client envoyait une requête à l EJB, puis se bloquait pour attendre la réponse. Ici la requête est placé dans une file à l aide de JMS, puis le client continue son traitement jusqu à ce que le MDB retourne un résultat, encore une fois par JMS. Un événement est à ce moment levé chez le client, qui peut dès lors traiter le résultat. On utilise l pour définir un MDB : Listing 1.4 public class BigCalculMDB implements MessageListener { public void onmessage ( Message message ) { / E f f e c t u e un long c a l c u l e t r envoi l e message par JMS / JPA JPA (Java Persistence API) est un API permettant un mapping objet-relationnel au cœur de Java qui va permettre d enregistrer des objets Java dans une base de données relationnelle de façon transparente pour le développeur. JPA est comme nous l avons vu une spécification. Il existe différentes implémentations de cette dernière dont TopLink, EclipseLink et Hibernate. Le code écrit avec l API JPA sera donc compatible avec n importe laquelle de ces implémentations. JPA fait aussi abstraction du SGBD utilisé pour stocker les données. En effet, la modification d une simple ligne dans le fichier de configuration de JPA permet de changer le SGBD utilisé. 8

10 Pour qu une classe Java puisse être traitée et enregistrée par JPA dans une base, elle doit comporter certaines annotations : Entity : L transforme une classe Java standard en une Entité. Les entités sont les objets de base de JPA, et doivent comporter un id unique. Dans la plupart des cas, une entité correspond à une table dans la base relationnelle. Embbeded et Embbedable : Dans un modèle objet, certaines classes n ont pas à être des Entités. Les permettent de mapper un objet à l interieur d un autre. Au niveau relationnel, une seule table sera utilisée, dans laquelle on retrouvera les attributs des deux objets. Relations : Tout comme dans un modèle relationnel, il est possible de définir des relations entre les classes. Les relations 1-n utilisent les les relations n-n l et les relations 1-1 l Annotations de mapping : A ces annotations principales s ajoutent des annotations qui permettent de gérer le mapping de façon précise. Il est ainsi possible de définir le nom des tables ou des colonnes dans la base de données, le nom des clefs externes ou les mécanismes utilisés lors de mapping particuliers (pour l héritage par exemple), ou le type de chargement des relations 1-n et 0-n. La configuration de JPA se fait dans un fichier persistence.xml, qui va définir le moteur JPA à utiliser et le type et la configuration de la base de données. JPA propose aussi un langage de requêtes, dans la lignée de SQL, qui permet de récupérer des éléments dans la base de données en utilisant des conditions : JPQL (Java Persistence Query Language) JSF Java Server Faces est un framework JEE permettant de développer un site web en utilisant le design pattern MVC. Il est indépendant de la technologie sous-jacente de présentation. Plus précisément, un site codé en JSF peut être rendu avec JSP, mais aussi avec d autres technologies comme XUL, ou Facelets. Les règles de navigation se font à l aide du fichier faces-config.xml, dans lequel on définit pour chaque action de l utilisateur la page à visiter. Cela instaure une certaine rigueur au niveau de la programmation de la navigation dans les sites. Dans une application utilisant JSF, on retrouve 2 composants importants : les vues (Faces) et les contrôleurs (ManagedBeans). La présentation de l application est effectuée par les Faces, qui sont des pages codées avec un langage de balise. Listing 1.5 Exemple de balise JSF <h : commandlink action= #{ p r o f i l. dosearch > <h : outputtext value= P r o f i l /> <f : param name= p r o f i l M a i l value= #{j e e z e r. /> </h : commandlink> Les contrôleurs de l application se trouvent dans des classes Java que l on appelle Managed Bean. Les ManagedBeans vont traiter les actions effectuées par l utilisateur, et lancer des requêtes sur la partie Métier de l application, que sont les EJB, si nécessaire. Les vues vont ensuite récupérer les données au niveau des ManagedBeans pour les afficher. Comme nous l avons vu sur la figure 1.2, le conteneur web et le conteneur EJB sont séparés dans le serveur d applications. Cependant le conteneur web a besoin d appeler des méthodes sur les EJB. A la base, un mécanisme lourd est utilisé pour récupérer une référence sur un EJB. Mais l accés aux EJB à travers les ManagedBean est simplifié grâce au système d injection qui va permettre au conteneur web d injecter directement cette référence dans un attribut. Le code suivant décrit ce fonctionnement : Listing 1.6 Injection public class JEEzerControl MemberLocal memberbean ; public JEEzer getentity ( ) { return memberbean. getmember ( user. getname ( ) ) ; 9

11 Lors de l instanciation de la classe JEEzerControl, une référence vers un EJB MemberLocal est injecté par le serveur d application dans l attribut memberbean. L appel de méthodes se déroule ensuite comme avec n importe quel objet. 1.6 Serveurs Un serveur d applications JEE doit implémenter les spécifications précédentes. Plus précisément, il doit être capable de passer les tests fournis avec chaque spécification, donc implémenter les API de façon standard. Il existe une multitude de serveurs JEE, chacun ayant une implémentation interne différente des API mais exécutant les programmes de la même façon. Lorsqu un serveur passe tous les tests, il est reconnu par Sun comme Java EE 5 Compatible. Un serveur d application va coordonner les communications entre les composants, gérer le cycle de vie des beans, les sessions HTTP, le nommage des beans et des webservices etc... Les deux composantes importantes du serveur d application sont les Conteneur WEB et les Conteneur EJB. Le conteneur web est en charge du Web-tier tandis que le conteneur EJB a la responsabilité des EJB, qui représentent le Business-tier. Il existe des serveurs à part entière qui implémentent seulement la partie conteneur WEB. C est le cas de Tomcat, un serveur Servlet/JSP, appartenant au projet Apache. Même s il est possible d ajouter quelques fonctionnalités à l aide de plugins, je ne m attarderai pas sur ces derniers dont les fonctions sont trop restreintes pour des applications d entreprises. Les serveurs qui suivent sont donc des serveurs d applications complets Java EE 5 Compatibles : Apache Geronimo WebLogic Server 10.0 IBM WASCE 2 IBM WebSphere Application Server 7 JBoss JBossAS Apusic Application Server 5 Oracle Application Server 11 OW2 JOnAS 5.1 SAP NetWeaver 7.1 Sun GlassFish Enterprise Server 9.1 TmaxSoft JEUS 6 GlassFish Application Server v2 NEC WebOTX 8.1 Parmi ceux-ci, 4 retiennent notre attention par rapport à leur licence libre : Serveur Licence Entreprise Glassfish GNU GPL 2 Sun Geronimo Apache 2.0 IBM JBossAS GNU LGPL RedHat JOnAS GNU LGPL OW2 Il faut bien comprendre que, exception faite des différences au niveau de l installation, de la configuration et des performances, ces serveurs fournissent une implémentation standard de JEE. 1.7 Sécurité - Authentification - Autorisations Sécurité Le serveur d application fournit des services de haut niveau comme les EJB, ou la sécurité est appliquée directement par le conteneur EJB. Nul besoin donc de passer des heures à vérifier si telle méthode ne pose pas de problème de sécurité liée à un défaut de conception Authentification Plusieurs solutions d authentification existent comme JAAS, JGuard ou OpenSSO, mais les spécifications de JEE définissent un protocole d authentification et d autorisation au niveau des EJB. 10

12 Dans ce système, le serveur utilise un REALM. Un realm est un ensemble d identifiants, de mots de passe, et de rôles qui identifient des utilisateurs valides. Il existe plusieurs realms, qui utilisent chacun des méthodes d authentification différentes. Celui qui nous intéresse ici est JDBC-Realm qui utilise une base de données relationnelle pour stocker ces valeurs. Le serveur d application pourra donc récupérer les informations sur les membres directement dans nos entités. Dans une application web, l utilisateur non connecté sera envoyé vers une page de connections. La page JSF va envoyer ses données d identification à un servlet appelé j security check. Ce servlet va ensuite vérifier ces données et renvoyer l utilisateur sur la page demandée si elles sont valides. Dans une application Swing, une fenêtre de connexion apparait et demande ces informations à l utilisateur lorsqu une méthode protégée est appelée sur un EJB Autorisations Par défaut, une méthode EJB est accessible par n importe quel utilisateur, même anonyme. La restriction de l accès aux méthodes métier EJB se fera simplement à l aide d annotations comme dans l exemple suivant : Listing 1.7 Restriction des S t a t e l e s ({ a d m i n i s t r a t e u r, moderateur ) public class HelloEJB implements Hello public S t r i n g helloworld ( S t r i n g msg) { return Everybody : Hello, + msg ( a d m i n i s t r a t e u r ) public S t r i n g helloadmin ( S t r i n g msg) { return Admin : Hello, + msg ( moderateur ) public S t r i n g hellomodo ( S t r i n g msg) { return modo : Hello, + msg ; 1.8 Au delà des spécifications Il existe bien d autres technologies autour de JEE que celles qui proviennent des JSF. Des frameworks MVC, comme Struts, sont basés sur des technologies JEE et proposent une alternative à JSF et JSP. Spring est un conteneur léger. Il a un structure similaire à un serveur JEE et permet au développeur d utiliser la programmation par aspect. Hibernate est un framework de persistance. Même s il implémente aujourd hui JPA, il propose de nombreuses fonctionnalités supplémentaires. Il existe un grand nombre de frameworks Ajax pour JSF. La plupart proposent des composants qui s integrent facilement à JSF et permettent des traitements asynchrones. Les deux les plus utilisés sont RichFaces et IceFaces. Et pour finir, il y a GWT (Google Web Toolkit). Développé par Google, il permet de créer des pages web en code Java, qui est par la suite compilé en JavaScript. 1.9 Logiciel Libre Le logiciel libre (souvent appelé open-source) ne cesse de faire parler de lui et de plus en plus d entreprises viennent à l utiliser. Loin de moi l idée de développer ici de façon exhaustive les différents atouts économiques du modèle libre. Cependant, je souhaite présenter ma vision des choses quand à l adoption de logiciels libres dans une entreprise. 11

13 Une licence libre au sens FSF (Free Software Foundation) donne le droit d utiliser, d étudier, de modifier, de dupliquer et de diffuser (donner et vendre) le dit logiciel Aspect Humain Le Logiciel libre est avant tout un modèle de partage et de droits dans le monde informatique. Le modèle économique mis en place impose des logiciels propriétaires et payants, que ce soit aux entreprises ou aux particuliers. Pourtant les logiciels libres apportent une alternative gratuite à la plupart des logiciels propriétaires. Gratuite mais aussi respectant la vie privée et les droits de chacun. En effet, de par sa nature, le logiciel libre permet, au-delà des 5 droits fondamentaux cités ci-dessus, d assurer qu aucun procédé d identification, de suivi, de restriction d utilisation, ou d espionnage ne soit intégré dans le-dit logiciel Aspect Économique Le choix d un solution logicielle libre permet aux entreprises de se défaire du lien fort avec l éditeur de logiciel auquel elles sont obligatoirement soumises en choisissant de payer une licence. Ce lien oblige l entreprise à payer les mises à jour du logiciel, parfois même les corrections de bug. Un logiciel libre, est dans la plupart des cas gratuit. Ses mises à jour sont aussi gratuites. Ce lien entre l entreprise et l éditeur de logiciel propriétaire place l entreprise dans une position de dépendance, a tel point que si l éditeur vient à disparaître ou cesser le support du logiciel, la solution logicielle de l entreprise est bonne à jeter à la poubelle. Avec les logiciels libres, ce problème n existe pas. Lors de l acquisition du logiciel, l entreprise acquiert aussi le code source, et le droit de le modifier et de le redistribuer. Si l éditeur du logiciel libre cesse de le l éditer, le support peut donc être fait par des ingénieurs de l entreprise et par la communauté. Car la communauté a aussi une grande importance dans le maintien mais surtout dans le contrôle qualité du logiciel libre. Effectivement, le code source étant ouvert, les hackeurs du monde entier peuvent vérifier et corriger les erreurs. C est pour cela que le terme logiciel libre est aujourd hui associé à une idée de qualité et de sécurité. Comme la plupart des logiciels libres sont gratuits, les éditeurs se basent sur un modèle économique qui propose aux entreprises de payer non pas une licence, mais des services comme l installation, le support ou l ajout de fonctionnalités. Lorsqu une nouvelle fonctionnalité est créée, son code source est souvent libéré et intégré au logiciel, ce qui permet à l éditeur d améliorer son logiciel et au client d assurer la pérennité, la qualité et l évolution de sa commande JEE et open source JEE étant basé sur des spécifications ouvertes, des implémentations libres sont disponibles, comme nous l avons vu dans la partie serveur. Une application d entreprise en JEE donc peut être développée sans engendrer aucun cout lié à l achat de licence. Mais le maitre d ouvrage profitera aussi de toutes les qualités inhérentes au logiciel libre citées ci-dessus. C est un des points forts de cette technologie, qui convainc de plus en plus d entreprises d adopter JEE JEE6 JEE6, qui sort en Septembre 2009, apporte son lot de nouveautés. Dans la lignée de Java 5, les annotations viennent remplacer les fichiers de configuration web.xml et faces-config.xml. Facelets (un framework complémentant JSF) sera intégré par défaut dans les serveurs et permettra un développement de composants JSF personnalisés bien plus simple. Les profils, qui représentent des sous-ensembles de JEE, font aussi partie des nouveautés. Le profil Web par exemple, intégrera uniquement les outils nécessaires au développement d applications Web. Cela permettra de déployer des serveurs plus légers, implémentant tel ou tel profil en fonction des besoins de l entreprise. Et bien sur les nouvelles versions des spécifications comme les EJB 3.1, JPA 2.0 et JSF 2.0 apportent des modifications importantes, mais surtout une simplicité quant à la configuration des applications. 12

14 Chapitre 2 L application 2.1 Présentation La deuxième partie de mon travail était de créer un moteur d application de réseau sociale extensible et modulaire, qui pourrait être utilisé dans différents contextes. L application permettrait aux membres de pouvoir créer une liste de connaissances, de s échanger des messages instantanés ou différés, de créer des groupes, des espaces de travail collaboratif etc... La grande difficulté de cette partie venait de l utilisation des technologies avec lesquelles je n avais pas encore travaillé. En effet, à chaque nouvelle fonctionnalité, à chaque nouvelle page, le temps de développement était incroyablement augmenté, au debut à cause de la recherche des composants nécessaires au codage de l application, et ensuite à cause de bugs récalcitrants dont je vous parlerai par la suite. 2.2 Analyse Même si toutes les fonctionnalités décrites par la suite ne sont pas implémentées, j ai choisi de vous présenter la totalité de l analyse que j ai réalisée avant le développement Fonctionnement L application propose un système d inscription, de connexion, de gestion des droits et des groupes, d échange de messages et d ajout de connaissances. Chaque partie du site est représentée par une entrée dans le menu sur laquelle le membre doit cliquer pour y accéder. Un champ de recherche se trouve aussi en haut à droite de la page. Il permet de rechercher des membres à l aide de mots clés. Lors de la connexion d un membre, sa page d accueil lui fait part des derniers événements comme la réception d un message, une demande d ami par un autre membre, etc... Si le membre clique sur l un de ces événements, il est redirigé vers la page correspondante. L événement est ensuite marqué comme lu. L utilisateur peut accéder à son profil par l intermédiaire de la page profil. Les informations disponibles dans le profil sont le nom, le prénom, et l . Si un membre le désire, il peut indiquer d autres informations comme son adresse, ses activités ou les choses auxquelles il s intéresse. La page Amis liste les amis du membre et permet à ce dernier d afficher leur page personnelle. Sur cette page, il est possible d accéder au profil du membre et de lui envoyer un message. La boite de réception du membre lui permet de gérer ses messages. Il peut les lire, y répondre, ou les archiver. Chaque membre a une page personnelle sur laquelle ses amis peuvent accéder à son profil ou lui envoyer un message. Finalement, le membre peut se déconnecter à tout moment en cliquant sur Déconnexion Rôles Trois rôles on étés définis dans l application. JEEzer est un simple membre du réseau social. Il a le droit de gérer ses propres mails, ses amis, ses groupes. Moderator est un membre qui a le droit de modérer des messages et autres interactions. Administrator est l administrateur du réseau social. 13

15 2.2.3 Cas d utilisation Figure 2.1 Cas d utilisation généraux Le diagramme 2.1 représente les cas d utilisation généraux que peuvent réaliser le membre et l adminitrateur. Ces cas d utilisation sont détaillés ci-après. 14

16 Figure 2.2 Gestion des messages Un membre peut consulter, envoyer ou archiver ses messages. Figure 2.3 Gestion du profil Le membre peut modifier ses informations personnelles, ajouter une photo pour son profil, ou régler des préférences. 15

17 Figure 2.4 Gestion du workspace Un membre inscrit à un Workspace peut y ajouter, modifier ou archiver un fichier et inviter un autre membre. Il est possible pour chaque inscrit de créer des workspaces. Figure 2.5 Administration L administrateur a des droits supplémentaires. Il peut inscrire ou désinscrire un membre et effectuer des opérations de modération sur les interactions entre les membres. 16

18 2.3 Technologies choisies API et Frameworks Bien qu il existe des nombreux frameworks et API qui viennent se greffer à JEE, j ai décidé au tout début de l application d utiliser en priorité des technologies issues des JSR. Le Business-tier est donc constitué d EJB 3.0, alors que le framework de présentation web utilisé est JSF. Cependant, JSF n intégrant pas l Ajax avant sa version 2 qui sortira avec JEE6, il m a paru important d intégrer un framework qui proposait des composants Ajax. Parmi tous les frameworks existants, j ai choisi RichFaces. GWT était intéressant mais ne s intégrait pas assez facilement à JEE pour que je décide de l utiliser Environnement de travail Il était aussi nécessaire pour mon travail d utiliser des logiciels gratuits mais également libres. Cela permettant d une part de développer l application sans effectuer l achat d aucune licence, mais d autre part de montrer qu il est possible et simple pour une organisation, une université ou une entreprise d utiliser des logiciels libres sur toute la plateforme de développement et de déploiement. Pour l environnement de développement, j ai utilisé un système d exploitation GNU/Linux et l IDE Netbeans, tous deux sous licence GPL Serveur d application Le choix du serveur aurait pu se montrer plus difficile, mais comme je l ai expliqué dans la première partie, l implémentation des spécifications est la même pour chacun d entre eux. J ai donc choisi Glassfish, qui est une version open-source du serveur d application payant de Sun et qui est facilement configurable et clusterisable. Une autre raison qui m a poussé à choisir ce dernier est que Sun l utilise pour développer JEE6, il sera donc le premier serveur d application JEE6 Compatible (une version prélude de Glassfish 3 est déjà disponible). 2.4 Architecture Les cas d utilisation m ont permis de développer la partie statique de la modélisation. Les diagrammes de classes qui suivent sont issus de longues réflexions sur les services que propose l application, et réutilisent des idées de l analyse réalisée au premier semestre en Génie Logiciel sur l application FSNet Persistance La partie persistance de l application contient les objets pouvant être enregistrés dans la base de données. Une Entité doit avoir un id unique, aucune Entité ne peut donc être stockée sous forme d interface, même si elles peuvent en implémenter. Dans une application standard, des interfaces auraient été utilisées pour remplacer des classes abstraites comme News. Entités Sociales La figure 2.6 montre les classes qui constituent la gestion des membres et des groupes. Dans l application, la classe SocialEntity représente une entité sociale du réseau. Cette entité possède un unique en id et une liste de rôles. La classe JEEzer, qui spécialise SocialEntity, est un membre de l application représentant une personne physique. La classe possède donc des attributs propres à un humain, ainsi qu une liste d amis. SocialGroup regroupe un ensemble de SocialEntity. Cette classe est utilisée pour la création de groupes et de sous groupes. On peut reconnaitre une forme de design pattern composite, avec l utilisation d une classe à la place de l interface. Membre Dans la figure 2.7 sont présentés la classe JEEzer et ses relations avec la classe Profil qui va lui permettre d ajouter des informations personnelles, et aussi avec la classe PicturesAlbum, qui reprèsente un album photo appartenant au membre. Ces albums pourront être créés par l utilisateur qui pourra y ajouter des photos. 17

19 Figure 2.6 Entités sociales Figure 2.7 Membre Messages La figure 2.8 inclut la partie messagerie de l application. J ai décidé d utiliser une certaine redondance au niveau des relations entre SocialEntity et Mail, qui permettra d éviter d inclure des requêtes couteuses en temps, lors de la recherche des relations entre ces derniers. Comme on peut le voir sur le schéma, un mail est envoyé par une personne à une instance de SocialEntity (donc un membre ou un groupe). Si le mail a plusieurs destinataires, il sera dupliqué et envoyé à chacun. Un mail peut être aussi de type AskFriendMail, qui représente en fait une demande d ami. Chaque message a un état, il peut être non lu, lu ou archivé. News Le système de news est exposé sur la figure 2.9. Une instance de SocialEntity possède une liste de News qui elle-même possède un état lu, non lu ou archivé. Tous les types de news héritent de la classe abstraite 18

20 Figure 2.8 Messages Figure 2.9 News News et possèdent leurs propres attributs en fonction de leur type. 19

21 2.4.2 Business-tier EJB Figure 2.10 EJB Les 3 EJB utilisés dans l application sont présentés dans la figure Il a été difficile de choisir la façon dont certaines actions seraient effectuées. En effet, les Entités se déplacent entre les couches de l application, il est donc possible de faire des traitements dans les EJB ou dans les ManagedBeans. J ai décidé d implémenter dans les EJB des fonctions simples qui permettent de réaliser des opérations basiques sur les Entités comme la création, la recherche, la mise à jour, ou l effacement. D autres actions sont directement effectuées dans les ManagedBean. Par exemple lorsque le membre lit un mail, le ManagedBean InboxControl qui représente le contrôleur de la boite de réception va lui même marquer le mail comme lu et appeler la méthode updat () sur l EJB. Dans une autre application, la méthode permettant de marquer un mail comme lu aurait pu être placée sur l EJB responsable des messages : public void setmailreaded(mail Mail, état State) ; Web-tier La partie web est composée de pages JSF et de contrôleurs. La figure 2.11 montre l organisation des pages JSF de l application. Les pages à la racine permettent la connexion et l inscription d un membre. Le répertoire secure contient les pages sécurisées, auxquelles seul un membre connecté peut accéder. On y retrouve les différentes parties du site comme la page affichant le profil, ou celle affichant les résultats des recherches de l utilisateur. Les fichiers header et footer sont dupliqués car ils sont totalement différents pour un visiteur non connecté et un membre connecté. La feuille CSS est aussi dupliquée, et cela est dû à un bug que je détaille dans la section A chaque page présentant des informations venant d entités, correspond un contrôleur. Chaque contrôleur permet d effectuer les échanges avec les EJB. Le code du contrôleur SearchControl est disponible dans les annexes. 20

22 Figure 2.11 Les pages JSF Figure 2.12 Contrôleurs 21

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

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

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

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

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

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

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

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Développement JEE 5 avec Eclipse Europa K a r i m D j a a f a r A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i Groupe Eyrolles, 2008, ISBN : 978-2-212-12061-5 5 Le projet WTP (Web

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

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

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

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

J2EE - Introduction. Développement web - Java. Plan du chapitre

J2EE - Introduction. Développement web - Java. Plan du chapitre Développement web - Java J2EE - Introduction Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Franck Denoël Master 2 ICA, UPMF Année académique 2007-2008 Plan du chapitre J2EE Présentation J2EE

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

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

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

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

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

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

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

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

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

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET Apache Tomcat 6 Guide d'administration du serveur Java EE sous Windows et Linux Étienne LANGLET Résumé Ce livre sur Apache Tomcat 6 s adresse à toute personne appelée à mettre en oeuvre ce serveur sous

Plus en détail

SITE WEB E-COMMERCE ET VENTE A DISTANCE

SITE WEB E-COMMERCE ET VENTE A DISTANCE Développement d une application JAVA EE SITE WEB E-COMMERCE ET VENTE A DISTANCE PLAN PROJET Binôme ou monôme (B/M): M Nom & Prénom : AIT NASSER Btissam Email : aitnasser.btissam123@gmail.com GSM : Organisme

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

CQP Développeur Nouvelles Technologies (DNT)

CQP Développeur Nouvelles Technologies (DNT) ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,

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

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP Ionel Dembski Sous la direction de Peter Daehne, Professeur HES Département d

Plus en détail

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

IBM DB2 Alphablox. d administration GC11-2170-00

IBM DB2 Alphablox. d administration GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 ii IBM DB2 Alphablox - Guide d administration Table des matières Avis

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

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

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

1 JBoss Entreprise Middleware

1 JBoss Entreprise Middleware 1 JBoss Entreprise Middleware Les produits de la gamme JBoss Entreprise Middleware forment une suite de logiciels open source permettant de construire, déployer, intégrer, gérer et présenter des applications

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Applications distribuées: le retour du client "riche"

Applications distribuées: le retour du client riche Applications distribuées: le retour du client "riche" Markus Jaton, Olivier Liechti Olivier Liechti / Markus Jaton /1 Agenda Java a-t-il un avenir sur le "desktop"? Swing vs. AJAX: idées préconçues? Architecture

Plus en détail

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr]

10. Base de données et Web. OlivierCuré [ocure@univ-mlv.fr] 10. Base de données et Web 313 Evolution de l'information Ordre de grandeur : 314 1Mo : 1 gros roman 200Mo : ce que mémorise un être humain dans sa vie. 900Mo : information contenue dans le génome d'une

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

Cahier des charges : gestion de projets agiles. Programmation d Algorithmes Distribués (PAD)

Cahier des charges : gestion de projets agiles. Programmation d Algorithmes Distribués (PAD) Cahier des charges : gestion de projets agiles Programmation d Algorithmes Distribués (PAD) Benoit Bernardin Rachid Bouherrou Bruno Juillard Kaba Kabinè Sid-ahmed Anouar Lekhal 2012 / 2013 Sommaire I.

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Hébergement de sites Web

Hébergement de sites Web Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source Jérôme Petit, Serge Petit & Serli Informatique, ITMatic Jérôme Petit, Serge Petit & SERLI & ITMatic Serli : SSII

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

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

SIO-65291 Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault SIO-65291 Page 1 de 5 1- Objectifs généraux Applications Web dynamiques Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault acquérir les principes et concepts fondamentaux dans le domaine d'applications

Plus en détail

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D NOVA BPM «Première solution BPM intégr grée» Pierre Vignéras Bull R&D Définitions Business Process Pratiques existantes qui permettent aux personnes et systèmes de travailler ensemble Business Process

Plus en détail

7 villa de la citadelle Né le 13 mai 1983 94110 Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

7 villa de la citadelle Né le 13 mai 1983 94110 Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES Philippe Crépin 7 villa de la citadelle Né le 13 mai 1983 94110 Arcueil Nationalité : Française : 06.17.46.12.09 : phi.crepin@gmail.com Disponibilité : En poste chez Soft Computing Développeur Web JEE

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Un serveur d'archivage

Un serveur d'archivage Un serveur d'archivage destiné au Service Commun de Documentation de l'université de la Méditerranée Encadrement : Noël Novelli Représentants client (S.C.D.) : Axelle Clarisse Ronan Lagadic Equipe Projet

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant Adresse Personnelle : 3, allée du Roussillon 91300 Massy Téléphone : (+33) 06 78 37 34 82 E-mail : youssef.lyhyaoui@spartup.com

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

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

La montée des bases de données open source

La montée des bases de données open source La montée des bases de données open source Un document eforce FRANCE Mars 2003 La montée des bases de données open source - Page 1 sur 6 La montée en puissance des projets open source est incontestable

Plus en détail

Présentation de SOFI 2.0

Présentation de SOFI 2.0 Présentation de SOFI 2.0 Version 2.0.3 Présentation SOFI 2.0 1 Agenda Historique Utilisation de SOFI Pourquoi SOFI? 3 Grands Axes Développement Accompagnement et formation Communauté Architecture Les nouveautés

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

2 Chapitre 1 Introduction

2 Chapitre 1 Introduction 1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné

Plus en détail

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise Vendredi 26 Novembre 2004 9h.00 Espace Batignolles 18 rue de la Condamine 75017 Paris www.espace-batignolles.com

Plus en détail

Construire des plug-ins pour SAS Management Console SAS 9.1

Construire des plug-ins pour SAS Management Console SAS 9.1 Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION

Plus en détail

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI Institut Galilée Année 2014-2015 TP WEBSERVICES Programmation et Logiciels sûrs Master 2 PLS Résumé Ce TP s appuie sur le cours de C. Fouqueré traitant des Environnements et Langage Évolués, ainsi que

Plus en détail

Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows

Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows Installer Enterprise Miner 5.1 en SAS9.1.3 - environnement Windows Introduction :... 3 1. Présentation de l architecture Enterprise Miner 5.1 :... 4 2. Installation d Enterprise Miner 5.1:... 5 3. Post-installation

Plus en détail

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES DÉCOUVREZ DES POSSIBILITÉS ILLIMITÉES GRÂCE A L INTÉGRATION À DES SYSTÈMES D ENTREPRISE EXISTANTS FONCTIONNALITÉS Connectivité des systèmes

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

PRODUCTS LIST (updated 11th January 2010)

PRODUCTS LIST (updated 11th January 2010) PRODUCTS LIST (updated 11th January 2010) OPERATING SYSTEMS SUN SOLARIS 10, 9, 10 B OP Application and database servers Red Hat Enterprise Linux Server 4.x and 5.x B OP Single Application Host Windows

Plus en détail

SUPPORTDEFORMATION SUGARCRM. Guideutilisateur SugarCRMPro

SUPPORTDEFORMATION SUGARCRM. Guideutilisateur SugarCRMPro SUPPORTDEFORMATION SUGARCRM Guideutilisateur SugarCRMPro Référence document : SYNOLIA_Support_SugarCRM_v1.0.docx Version document : 1.0 Date version : 2 octobre 2012 æetat du document : Revu æemetteur/rédacteur

Plus en détail

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement distribué Éric Leclercq Département IEM / Laboratoire LE2i Septembre 2014

Plus en détail

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

Catalogue des Formations Techniques

Catalogue des Formations Techniques Catalogue des Formations Techniques Items Média Concept 4, allées Pierre-Gilles de Gennes - 33700 Mérignac Téléphone : 05.57.35.73.73 Télécopie : 05.57.35.73.70 Courriel : contact@imc-fr.com 2 Préambule

Plus en détail

Master Data Management en Open Source C est le Bon Moment

Master Data Management en Open Source C est le Bon Moment Master Data Management en Open Source C est le Bon Moment White Paper Sommaire Introduction... 2 Les Pré Requis du Marché Open Source... 2 La Liberté... 3 Prédire les Effets de l Open Source sur le MDM...

Plus en détail

Programmation Web Avancée Introduction aux services Web

Programmation Web Avancée Introduction aux services Web 1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

RÉALISATION D UN SITE DE RENCONTRE

RÉALISATION D UN SITE DE RENCONTRE RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD

Plus en détail

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009 Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009 «Web. De l intégration de pages statiques HTML à un CMS, à la dynamisation d un site grâce au Javascript et l utilisation de nouvelles technologies

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

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA Comparatif CMS Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA Sommaire Introduction : Dans le cadre de notre projet de master première année, il nous a été demandé de développer un moteur de recherche

Plus en détail

Expert technique J2EE

Expert technique J2EE EHRET Guillaume 25, rue de la Richelandiere 42100 SAINT ETIENNE 32 ans - Célibataire Expert technique J2EE Domaines de compétences Environnement et langages Expertise en programmation Java et en architecture

Plus en détail

2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces... 4 2.3 Résumé de notre évaluation... 5

2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces... 4 2.3 Résumé de notre évaluation... 5 Livre Blanc LE PORTAIL D'INTÉGRATION LIFERAY Version 1.0 - Novembre 2006 SOMMAIRE 1 PRÉSENTATION... 3 2 SYNTHÈSE... 4 2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces...

Plus en détail

Installation d'un serveur RADIUS

Installation d'un serveur RADIUS Installation d'un serveur RADIUS Par LoiselJP Le 22/05/2013 1 Objectifs Ce document décrit le plus succinctement possible une manière, parmi d'autres, de créer un serveur Radius. L installation ici proposée

Plus en détail

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon L Y O N Département Informatique Année 2011/2012 Rapport de Synthèse Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon Laboratoire Ptidej de L Ecole Polytechnique de Montréal

Plus en détail

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies

Plus en détail

Une Histoire de Migration Agile

Une Histoire de Migration Agile Une Histoire de Migration Agile Présenté par Jaxio au Model Driven Day 2010 Cas client Banque de France Auditorium Prairie de 14h45 à 15h40 JAXIO info@jaxio.com http://www.jaxio.com/ Introduction Les

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail