Your SlideShare is downloading. ×
J2 ee
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

J2 ee

193
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
193
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. J2EE(Java 2 Enterprise Edition)
  • 2. DéfinitionJ2EE (aujourd’hui appelé JEE – Java Enterprise Edition) est une spécificationpour le langage de programmation Java de Sundestinée aux applications d’entreprise. Lapremière version des librairies J2EE a été mise adisposition des développeurs en 1999.J2EE offre une plate-forme de développement etdéploiement en langage Java pour lesapplications distribuées à plusieurs niveaux.
  • 3. Fonctionnement interneLe langage Java, sur lequel les librairies J2EE sont utilisées, met àdisposition un compilateur et une machine virtuelle (JVM – JavaVirtual Machine) qui se charge de créer un environnementstandard pour le lancement de l’application sur tout type desystème opérationnel. Le compilateur compile le code source etproduit le bytecode, soit un code intermédiaire qui sera en suite litpar la machine virtuelle Java. Chaque système opérationnel majeurpossède une JVM expressément codée.
  • 4. Architecture(1/3)• J2EE ajoute nombreuses couches de niveauentreprise au-dessus de la plate-forme J2SE –Java Standard Edition. Chaque couche estconçue pour supporter une différentetechnologie de développement:– Technologie web application: technologies liées àla production des interfaces web dynamiques, parexemple JSP (Java Server Pages) et servlet.– Technologie enterprise application: technologiesplus directement liées à la logique de business :EJB (Enterprise Java Beans), JavaMail, JMS (JavaMessage Service), JTA (Java Transaction) ,etc.
  • 5. Architecture(2/3)– Technologie web services: technologies utiles audéveloppement des applications adhérentes auparadigme SOA (Service Oriented Architecture) :web services, JAX-WS (java API for XML-basedweb services), JAX-RPC (Java API for XML-BasedRPC)– Technologie management and security:technologies liées à la gestion de la technologieentreprise afin de réaliser l’accès et l’échanged’information entre machines et servicesdistribués : JAAS (Java Authentication andAuthorization Service), JCA (Java ConnectorArchitecture)
  • 6. Architecture(3/3)
  • 7. Glossaire• Applet container : conteneur qui inclut un support pour la programmation des applets.• Application Client container : conteneur qui supporte les applications clientes.• Web container : conteneur pour JSP et servlet.• EJB container : conteneur pour les EJBs.• Applet : client lourd Java.• JSP : Page dynamique en Java.• Servlet : objet Java qui génère une réponse par rapport à la requête.• EJB : Enterprise Java Beans (composant côté serveur pour les applications distribuées).• J2SE : Java 2 Standard Edition (librairies standard Java)• JMS : Java Message Service API pour l’envoi de messages entre clients• JAAS : Java Authentication and Autorisation Service : framework de sécurité de codage• JAXP : Java API for XML Parsing: validation et parsing des documents XML
  • 8. Glossaire• JDBC: Java Database Connectivity: méthodes pour les requêtes• JTA: Java Transaction API : permet aux applications web de gérer lesanomalies à travers les transactions• JavaMail : interface pour envoyer et recevoir mails• JAF : JavaBeans Activation Framework: permet aux développeurs dedéterminer le type d’une donnée, découvrir les fonctionnalités, etc.
  • 9. RésuméPour expliquer l’utilisation de ces technologies onpeut imaginer que les technologies enterprisesont utilisées pour gérer l’accès aux données(généralement un ou plus database), lestechnologies web application sont utilisées pourmontrer les données aux utilisateurs génériques.Dans un contexte Business to Business, lestechnologies web service seront utilisées pouréchanger les informations avec les partenairescommerciales et les technologies de gestiongèrent tous les processus informationnelsassurant la sécurité des transactions.
  • 10. Le serveur d’application• Les API J2EE ont était projetés pour travailleravec un type particulier de serveur appelé J2EEApplication Server. Un serveur d’application estune couche software résident sur une machineserveur qui fournit les services nécessaires pourla technologie J2EE. Il y a plusieurs applicationsserveurs. Parmi les produits commerciaux onrappel Bea WebLogic, IBM Websphere, SunApplication Serveur, etc.
  • 11. Le serveur d’application• Parmi les produits libres, le plus connu estJBOSS. Les différences principales entre lesdifférents serveurs d’applications sontrelatives aux opérations de déployement,clustering, etc… Par contre toutes lesfonctionnalités qui concernent strictement lefonctionnement des applications J2EEadhérent aux spécifications proposées parSun.
  • 12. Le serveur d’application• Un serveur d’application s’installe et se lancecomme un serveur web normale(de fait il met àla disposition des services typiques d’un serveurweb). En plus il possède un panneaud’administration accessible par un poste distant àtravers lequel on peut définir les différentsservices. On peut considérer le serveurd’application comme une application Javastandalone exécutée par une J2SE qui dessert lesrequêtes provenant des différents clients.
  • 13. Outils de programmation• Plusieurs Environnements de développementintégrés (IDE) sont disponibles pour la plate-forme J2EE. Parmi les logiciels libres on rappelEclipse de IBM, qui met à disposition, grâce ausystème des plug-in, un riche environnementde développement.
  • 14. LES ARCHITECTURES DISTRIBUEES• Une application distribuée est une application(typiquement de grandes dimensions) pour laquelle les différents composants ont étaitdistribués sur différents niveaux del’environnement d’élaboration du réseau parrapport aux fonctions qu’elles offrent dansl’architecture globale.
  • 15. LES ARCHITECTURES DISTRIBUEES• Ces applications sont complexes et sontconstitués de nombreux programmes softwarequi sont exécutés sur différents supportshardware. Les « niveaux » (tiers) d’uneapplication distribuée sont les niveaux entre sapropre application et les données qu’elle gère.Ces niveaux respectent les règles suivantes :– Chaque niveau ne communique qu’avec le niveausous-jacent et dépend seulement de ce dernier– Chaque niveau n’as pas connaissance d’aucunniveaux en dehors du niveau sous-jacent
  • 16. LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES• Un niveau: L’application elle-même gère sesdonnées de façon directe. Ce typed’applications est très spécialisé et demandeun accès aux données très rapide.
  • 17. • Deux niveaux: Un serveur de base de données s’occupe degérer les données et de retourner les résultats. Lacommunication envers la base de données peut être faite àtravers des librairies particulières ou à travers un pilote chargéà run-time par l’application elle-même. Cette dernièrepossibilité implique que la base de données peut être changéesans modifier le programme.LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 18. • Trois niveaux: Une application à trois niveaux implique queparmi elle-même et la base de données il y ait une autreapplication qui augmente le niveau d’isolation entre les deuxextrémités. L’application envoi ses requêtes à une autreapplication qui se charge d’interagir avec la base de données.LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 19. • Multi niveaux: En général il peut y avoir plus que troisniveaux parmi l’application et la base de données. Ca permetd’avoir une mineure dépendance entre les composants et, parexemple, on pourra changer de base de données sans trop deproblèmes. Une application multi-tiers permet de distribuer lacharge de travail. Ca permet d’améliorer l’utilisation du réseauet éviter la saturation du réseau même et des composants.LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 20. LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 21. • La couche de présentation contient lesdifférents types de clients, léger (Web, JSP) oulourd (Swing, WinForm)• La couche de service contient les traitements(contrôleurs de Use Case UML) représentantles règles métier (créer un compte, rechercherun client, calculer un amortissement, ...)LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 22. • La couche dobjets métier est représentée parles objets du domaine, cest à dire lensembledes entités persistantes de lapplication(Facture, Bon de Commande, Client, ...).• La couche daccès aux données contient lesusines dobjets métier, cest à dire les classeschargées de créer des objets métier demanière totalement transparente,indépendamment de leur mode de stockage(SGBDR, Objet, Fichiers, Legacy, ...).LES ARCHITECTURES DISTRIBUEESTYPOLOGIES D’APPLICATIONS DISTRIBUEES
  • 23. J2EE ET LES APPLICATIONS MULTI-NIVEAUX• COUCHE DE PRESENTATION :La couche deprésentation est la face visible de notreapplication. Les clients se divisent en deuxcatégories :– Client léger : les navigateurs HTML car ils sontpré-installés sur la plupart des plate-formes avecle système dexploitation.– Client lourd : utilisant une interface graphique àbase de formulaires riches et de contrôlesgraphiques complexes.
  • 24. • Pour le client léger la technologie J2EE possède les APIs standard JavaServlet et Java Server Pages. La servlet container de l’application serverpermet le déploiement de ces composants web sur tout type de systèmesopérationnels. Des framework comme Struts sont mis à disposition pouraméliorer l’architecture de cette couche.• Pour le client lourd les librairies Java mettent à dispositions les librairiesSwing (propre à J2EE) et AWT. La portabilité dAWT et de Swing provientde la conception interne des classes existantes. Toutes les plate-formespossèdent des systèmes daffichage vidéo différents : XWindow Motifpour Unix, Win32/GDI pour Windows, Apple/MAC. Sun a donc mis enplace la notion de Composant Peer simplifiant le portage vers une plate-forme cible. Cette partie est donc native (code C/C++ ) et utilise desbibliothèques liées à chaque plate-forme. Quant à la conception dumodèle objet Swing, elle est basée sur le concept deconteneur/composant et utilise intensivement le design pattern MVC(Modèle Vue Controlleur).J2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 25. • COUCHE DE SERVICE: La couche de service est la partie de notre architecturecontenant les traitements applicatifs. On a plusieurs alternatives au développementde services dans cette couche. Soit prendre lentière responsabilité delimplémentation des composants sans lutilisation des services du Framework (pourdes besoins simples), soit faire appel au Framework pour :– La gestion des transactions automatiques.– Le cache dobjets (Pooling).– La montée en charge et le multi-threading.– Les composants asynchrones, ...– La responsabilité du conteneur est de fournir tous ces services en proposant un canevas danslequel on implémente les composants.J2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 26. • Le choix de limplémentation de cette couche réside dans deux approches : utiliserles EJB ou ne pas les utiliser. Les composants concernés par cette couche sont lesEJB Session. Sun spécifie un certain nombre déléments dans J2EE allant de lagestion des transactions en passant par la sécurité à la synchronisation des tâches.Encore une fois, Java se distingue par louverture de ces APIs avec comme maîtremot : la portabilité du serveur.J2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 27. • COUCHE D’OBJETS METIER: Les objets métiers sont représentés parlensemble des objets persistants du domaine de lapplication. Une facture,un bon de commande ou tout autre objet nécessitant dêtre stocké en base.• Cette couche assure lindépendance totale entre le client et le type destockage utilisé (SGBDR, SGBDO, fichiers XML, ...). Le client doitposséder uniquement une vue sur un objet avec lensemble de ces attributset non un éventuel curseur (ResultSet et RecordSet) pointant vers une lignedune quelconque base. Cette couche est en étroite collaboration avec lacouche de persistance qui assure la création des objets métier de manièretotalement transparente.J2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 28. • Ce type dobjet est représenté par les EJB Entity dans la spécification J2EE.Dans ce cas, vos• entités métiers sont couplées aux interfaces du Framework EJB et cela peut êtregênant si la• spécification EJB évolue dans le futur, dautant plus que ces objets sont destinés àvivre très• longtemps contrairement aux objets de services qui dépendent de lévolution desrègles métiers. Une• autre approche consiste à développer des objets métiers simples nhéritant daucuneinterface ou• classe du Framework en utilisant des outils de persistance fonctionnant parintrospection. Cest à• dire que le mapping entre vos objets et vos tables est réalisé via des fichiers deconfiguration• externes à votre application. Cest le cas de la spécification JDO qui cible ce genrede besoin avec• des produits comme Castor, JUDO, KODO etc.... Ainsi, vous ne couplez pas vosJ2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 29. • COUCHE D’ACCES AUX DONNEES• Cette couche est responsable de la création, destruction et chargement des objets métier demanière• totalement transparente. La différence entre une application 2-tiers et 3-tiers se fait à ce niveau.Son• rôle est de masquer entièrement lopération de création et de manipulation de tables (SGBDR) ou• autre types de stockages spécifiques (Fichiers à plats, ...). En règle général, vous avez deux• alternatives : Implémenter cette couche vous même par lintermédiaire de classes jouant le rôle• dusines à objets métier (pattern Factory), ou laisser le soin à un Framework tiers de réaliser cette• tâche (produits du marché). Tout dépend de la nature de vos besoins et de la complexité des• données manipulées pour mettre en oeuvre le mapping objet/relationnel.• Cette partie, souvent délaissée dans la mise en place dun projet est le tendon dAchille dune• architecture. La conception de la couche de persistance doit se faire avec soin et en tenant compte• de multiples facteurs tels que la montée en charge, la complexité de mise en oeuvre mais aussi• limpact dévolutions futures de la base. Voyons ce que proposent J2EE et .NET dans ce domaineJ2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 30. • Dans le monde Java, lAPI JDBC (Java Database Connectivity) est en charge de lacommunication entre un client et un SGBDR. Contrairement à .NET qui proposedes API oledb ciblant aussi bien des bases relationnelles quun annuaire distribué(Exchange), JDBC sadresse uniquement aux bases de données SQL.• Si on prend choix de gérer la persistance des données, il suffira dimplémenter desclasses utilisant JDBC. Dans le cas où les besoins sont plus complexes, il faudrafaire lacquisition dun produit (gratuit ou payant) réalisant cette tâche. Il en existeun certain nombre sinterfaçant avec les spécifications EJB (EJB Entity). Le butétant de fournir un composant standard qui utilise les services des outils demapping objet/relationnel de manière totalement transparente. Il existe deux typesdEJB : BMP (Bean Managed Persistance) et CMP (Container ManagedPersistance). Dans les deux cas, lAPI utilisée pour communiquer avec les bases dedonnées relationnelles est JDBC. Cette API est spécifiée par Sun, intégrée à J2EEet dispose de plusieurs implémentations à travers de multiples drivers JDBCdisponibles sur le marché (Oracle, SQL Server, DB2, ...). JDBC permet aussi deconvertir le résultat de requêtes SQL en XML (JDBC 3.0).J2EE ET LES APPLICATIONS MULTI-NIVEAUX
  • 31. J2EE VS .NET• Les technologies J2EE et NET font partie de la familledes langages OO (Orientés Objet) utilisés pour lacréation d’applications commerciales multi-niveaux.• NET est pour l’instant compatible avec les plates-formes Windows.• Java est disponible pour tout type de plate-formes.• NET offre des avantages de prestations des applicationsen exécution et des coûts et temps mineurs dedéveloppement par rapport à J2EE• Les deux environnements disposent de mécanismes trèssimilaires pour gérer chaque couche de lapplication.
  • 32. A retenir• la JVM est le coeur de Java,• celle-ci fait fonctionner vos programmes Java, pré-compilés en byte code, les fichiers contenant le codesource des programmes Java ont lextension .java,• les fichiers pré-compilés correspondant aux codessources Java ont lextension .class,• le byte code est un code intermédiaire entre leprogramme et la machine,• un programme Java, codé sous Windows peut êtrepré-compilé sous Mac et enfin exécuté sous Linux,• La machine NE PEUT PAS interpréter du byte code.