Tunsian Java User Group khaled.bendriss@net-progress.net
teejug@googlegroups.com http://groups.google.com/group/teejug
Livre Blanc TeeJUG La Certification en Java EE 07/11/2007 Status: V160-0
La Certification des développeurs en Java / Java EE Version <1.0>
NetProgress : 12 rue Menzel Témime, 2045 L'AOUINA Tunis - Tél : 98 334 617 Tél/Fax : 71 724 905 -1
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
Revision History Date
Version
Description
Author
01/11/2007
0.1
Initiation du document discussion TeeJug
la
Khaled BEN DRISS
07/11/2007
1.0
Proposition pour validation par le groupe de discussion java en Tunisie : teeJUG
Khaled BEN DRISS
Note Interne
2009
et
de
Page 2
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
Licence Droits et devoirs
Conditions d’utilisation et de diffusion Ce document est protégé par une licence "Creative Commons " résumée ci-dessous. Le terme « création » s’applique au document lui-même. L’auteur original est : Khaled BEN DRISS et Net-Progress, pour le document ; Les membres de TeeJug pour certains éléments du texte. Nous vous demandons de citer l’un et/ou l’autre, selon que vous extrayez une citation directe. Cette page est également disponible dans les langues suivantes :
български Català Dansk Deutsch English English (CA) English (GB) Castellano Castellano (AR) Español (CL) Castellano (MX) Euskara Suomeksi français français (CA) Galego עבריתhrvatski Magyar Italiano 日本語
Melayu Nederlands polski Português svenska slovenski
jezik 简体中文 華語 (台灣)
Paternité - Partage des Conditions Initiales à l'Identique 2.0 France Vous êtes libres :
•
de reproduire, distribuer et communiquer cette création au public
•
de modifier cette création
•
d'utiliser cette création à des fins commerciales
Selon les conditions suivantes :
Paternité. Vous devez citer le nom de l'auteur original.
Partage des Conditions Initiales à l'Identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci.
•
A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création.
•
Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits.
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) Ceci est le Résumé Explicatif du Code Juridique (la version intégrale du contrat). Avertissement
Note Interne
2009
Page 3
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
Table of Contents 1.
Cadre général
6
1.1
6
References
2.
Introduction
6
3.
La certification
7
3.1 3.2 3.3 3.4 3.5 3.6
7 7 8 8 8 8
4.
La valeur réelle d'un certificat Java 4.1 4.2
5.
6.
Définition Liste des certifications Java de Sun Certifications Java EE chez les vendeurs de plateforme Combien ça coûte en Tunisie La certification est elle pour la vie Les certifications les plus demandées : Programmer et Architecte
8
La valeur d'un certificat pour une ressource La valeur d'un certificat des Ressources pour une Entreprise 4.2.1 Importance d'une ressource certifié Java 4.2.2 Le plus important c'est le nombre de projets réalisés 4.2.3 La certification est une conséquence à la multiplication de projets : pas l'inverse
9 9 9 9 10
La certification en Tunisie et dans les pays concurrents
11
5.1 5.2 5.3
La certification en Tunisie La certification dans les pays arabes La certification dans les pays émergents
11 11 11
Comment préparer et réussir sa certification Java EE
11
6.1 6.2 6.3
11 11 12
Comment préparer Site web de test blanc Site web de test blanc
7.
Où passer les certifications Java EE en tunsiie
12
8.
Annexes
13
8.1
13 13 13 13 13 13 13 13 14 14 14 14 14 15
JAVA EE en quelques questions 8.1.1 JAVA EE, c'est un standard ? 8.1.2 Pour quelle finalité ? 8.1.3 Cette spécification ne concerne-t-elle que les serveurs d'applications ? 8.1.4 Quel rapport avec Java et les EJB ? 8.1.5 qui est aux commandes de JAVA EE ? 8.1.6 Où en est-on dans les versions de JAVA EE ? 8.2 Les APIs fournies par JAVA EE 8.2.1 JDBC 8.2.2 RMI 8.2.3 Java IDL 8.2.4 JNDI 8.2.5 EJB 8.2.6 Servlets Note Interne
2009
Page 4
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
8.2.7 JSP 8.2.8 JMS 8.2.9 JTA 8.2.10 JSF 8.2.11 Autres APIs
Note Interne
15 15 15 15 15
2009
Page 5
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
Présentation de JAVA EE 1.
Cadre général Ce document entreprend de présenter, brièvement, la notion de certification des développeurs en Java et Java Enterprise Edition (communément appelée JAVA EE). Ce document a été élaboré dans le cadre du Tunisian Java User Groupe TeeJug. Il a été enrichi par les contributions des membres du group (qui sont +95 depuis Septembre 2007)
La question de base était sur certification en Java (et dans d'autres langages de programmation) : quelles sont les certifications. Quelle est l'apport d'une certification java/JAVA EE pour un ingénieur ? Pour une entreprise? 1.1
2.
References •
Site JAVA EE de Sun:http://java.sun.com/Java EE
•
http://www.register.prometric.com/Index.asp?cookie%5Ftest=1
•
http://java.sun.com/learning/index.html
•
http://www.sun.com/training/certification/java/index.xml
Introduction Java EE (pour Java Enterprise Edition) est un ensemble d'APIs dédiées au développement d'applications d'entreprise. Certaines de ces APIs sont incluses dans le Java Standard Edition (la version "standard" du langage Java), comme par exemple JDBC (pour Java DataBase Connectivity, dont le package est java.sql) ou encore RMI (pour Remote Methods Invocation, dont le package est java.rmi). D'autres ne sont pas distribuées avec le JDK ou JRE standard mais avec le SDK Java EE. C'est le cas par exemple des EJBs (pour Enterprise Java Beans) ou les Servlets pour la création de contenu web dynamique. Java est simplement le Langage de la plateforme JAVA EE (on dit maintenant Java EE) L'objectif de Java EE est de faciliter la réalisation d'"applications d'entreprise" robustes, maintenables et sécurisées, sous forme d'applications distribuées, qui interagissent par l'intermédiaire d'un réseau. Les plus grands fournisseurs de logiciel, de plateforme et les SSII ont montré un engouement sans précèdent à Java EE. La simplicité du langage Java permet à tout développeur (au prix de quelques efforts tout de même) de se mettre au développement d'applications distribuées. D'autre part, l'étendue des APIs JAVA EE de Sun permet de couvrir l'ensemble des besoins en la matière. La communauté qui s'est crée autour de Java et Java EE a dépassé le créateur de la Java, qui a été contraint en 2006 à adopter le modèle open Source pour toute la plateforme Java (et même tous ses logiciels proposent leur propre solution. JAVA EE est la réponse de Sun en la matière. Les spécifications Java EE sont actuellement à la version 5 et le langage Java est à la version 6.
Note Interne
2009
Page 6
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
3.
Version: <1.0> Date: 3/15/2009
La certification
3.1 Définition La certification Java / java EE atteste des compétences techniques, des engagement professionnel et de la motivation d'un développeur, intégrateur, administrateur ou d'un architecte ; autant d'éléments que les employeurs sont prêts à récompenser financièrement. Reconnue par l'ensemble de l'industrie, les certification pour la technologie Java apporte les compétences nécessaires pour relever efficacement les défis du développement professionnelles des d'applications d'Entreprises selon les standards du marché En java, il y a une série de certifications proposées par Sun qui sont passées par de nombreux développeurs chaque année. Mais beaucoup de personnes se demandent si la principale certification, Sun Certified Java Programmer, a un intérêt ou non? Dans les certifications, il y a 4 niveaux. Le niveau 1 étant le plus bas niveau et le niveau 4 étant le plus haut. Dans chaque niveau, il y a une ou plusieurs certifications possibles et pour pouvoir accéder à des certifications du niveau supérieur, il est nécessaire d’en réussir au moins une du niveau inférieur. Vous allez comprendre 3.2 Liste des certifications Java de Sun Sun propose les certifications suivantes : - Sun Certified Java Associate (SCJA) - Sun Certified Java Programmer (SCJP) - Sun Certified Java Developer (SCJD) - Sun Certified Web Component Developer (SCWCD) - Sun Certified Business Component Developer (SCBCD) - Sun Certified Developer For Java Web Services (SCDJWS) - Sun Certified Mobile Application Developer (SCMAD) - Sun Certified Enterprise Architect (SCEA)
Rappelons, pour comprendre ce schéma, que JAVA EE signifie Java 2 Enterprise Edition et qu'il repose donc sur Java, langage objet conçu pour être "portable". Une caractéristique qui passe notamment par l'utilisation d'un module client (baptisé machine virtuelle) pour assurer l'exécution des programmes sur n'importe quel type de serveurs et de systèmes d'exploitation... pour peu que ces derniers supportent l'outil en question. D'ou le slogan lancé par la firme de Palo Alto : "Write Once, Run Anywhere" (développé une fois, exécutable partout). Note Interne
2009
Page 7
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
A la suite de cette première expérience, Sun décide en 1999 de réorganiser l'environnement d'exécution Java autour de trois briques : • Java Micro Edition (Java ME) qui cible les terminaux portables, • Java Standard Edition (Java SE) qui vise les postes clients, • Java Enterprise Edition (Java EE) qui définit le cadre d'un serveur d'applications et d'intégration Bâties à partir de J2SE et de J2ME, les spécifications JAVA EE définissent neuf services applicatifs, couvrant pèle mêle les tâches d'exécution (EJB), d'affichage client (Servlet et JSP), de connexion applicative (JCA et JMS) et de dialogue avec les bases de données (JDBC). Objectif de cette refonte pour Sun : fournir un cadre de développement, tirant parti d'une communauté Open Source, qui permette au secteur de l'édition de mettre au point des applications exécutables par des serveurs eux-mêmes fidèles à cette spécification. Bref, il s'agit avant tout de faciliter la compatibilité des programmes. 3.3
Certifications Java EE chez les vendeurs de plateforme
Java EE est une plateforme qui a besoin d'un serveur d'application : là apparaît un autre besoin de certification: certifier les administrateur de serveur d'application : Websphere, Oracle Application Server, Weblogic … Un autre profil émerge aussi : Administrateur de Portail Java EE : Websphere Protal, Oracle Application Protal, Weblogic Protal …
3.4
Combien ça coûte en Tunisie Pour java, la certification coûte entre 300 et 600 Dinars Tunisien (faute à l'Euro, en 2005 c'était 150 DT) selon le niveau. Ces montants sont à vérifier avec TMI – Représentant officiel de Sun en Tunisie
3.5
La certification est elle pour la vie Non. Une certification ne concerne qu'une version du langage java ou de la plateforme Java EE En, effet, l'une des caractéristiques de java EE est son évolution et son adaptation et la version 5 l'a montrée. En effet, la version 5 du langage a vue l'arrivée des generics, des annotations, de l'import static…
3.6 Les certifications les plus demandées : Programmer et Architecte Notons une méconnaissance générale du détail des certifications, lorsqu'une entreprise cible des ingénieurs / techniciens elle demande généralement " Sun Certified Java Programmer (SCJP)". Son obtention est obligatoire pour passer les autres certifications. L'autre certification très apprécié (mais aussi très rare) est "Sun Certified Enterprise Architect (SCEA)", pour l'obtenir il faut avoir au moins 2 autres certification (Niveau Foundation + Speciality)
4.
La valeur réelle d'un certificat Java
Avant tout il faut savoir qu'on certifie les personnes et pas les entreprises Note Interne
2009
Page 8
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
4.1 La valeur d'un certificat pour une ressource Il est indéniable qu'un programmeur certifié SCJP, connaît très bien le langage Java, est ce pour autant un excellent développeur ? Mais attention, le fait d’avoir réussi cette certification ne fait pas de vous un bon développeur. Pour les applications d'entreprises, Il n'y pas que le langage Java enjeux : on a besoin de SQL, de la fluidité du maniement des outils IDE (Eclipse par exemple) de la connaissance du métier et beaucoup de bon sens. Certains pensent que le, le plus important dans une certification JAVA est de l'avoir préparer, et pas de la réussir. En passant des quizz qui se trouvent sur le net, dans des livres, des CDs, on découvre à chaque fois des détails auquel on a jamais pensé. Peut être c'est un avantage sur le CV d'avoir une certificat, par exemple des certif d'architecte donnent plus de chance d'avoir un post d'architecte !. D'autre part, dans le microcosme java le langage est la base les frameworks sont les fondations. Maîtriser Java EE exige la maîtrise et la capacité d'assemblage, de dizaines de framework (Strus, Spring, hibernate, Log4j, junit, la connaissance du langage aide, mais n'est pas suffisante, il faut beaucoup d'expérience et une continuelle veille technique. En consultant des entreprises tunisiennes, nous constatons que pour un salarié ayant un Certificat Java, ne justifierait pas une augmentation de salaire substantielle (de 50% par exemple), ce n'est pas comme pour les équipement télécommunications ou les routeurs Cisco. C'est un plus indéniable, mais pas une nécessité, peut être par la rareté et par le grand "turn over" des ces ressources certifiées. 4.2
La valeur d'un certificat des Ressources pour une Entreprise
4.2.1
Importance d'une ressource certifié Java
Certains, en Tunisie, ne voient pas "le fameux grand d'apport" pour une entreprise, d'avoir en son sein des ingénieurs certifiés Java. Après tout cela c'est de l'ingénierie qui reste une discipline d'équipe (je ne dis pas sport d'équipe) et une SSII doit avoir des architecte en interne pour fixer les standards de développement et les méthodes de production de logiciels. Avoir des ingénieurs Certifiés Java est un plus mais pas une nécessité. Recruter et intégrer (c'est plus difficile), des ingénieurs certifiés architectes (SCEA), peut avoir un impact sur le niveau de compétence générale de l'entreprise. Mais, attention ici on parle d'un ingénieur qui a au moins 5 ans d'expériences, en ce temps de pénurie un "presque-Sénior" ; il ne s'agit plus de la maîtrise du langage Java de base mais de la construction architecturale adapté à la situation d'un projet particulier et à une plateforme 4.2.2 Le plus important c'est le nombre de projets réalisés Pour une entreprise tunisienne (ou ailleurs dans le monde) le plus important c'est le nombre de projets réalisés dans les technologies Java EE et pas le nombre d'ingénieurs. Nous Parlons de projets réalisés, Note Interne
2009
Page 9
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
installés, et en production… La notion de certification n'a pas de sens dans l'état actuelle du marché : manque (pour ne pas dire absence totale) de vraie projet Java EE. La certification des ressources en java EE n'a pas d'importance en l'absence de projets réelles. On parle d'un grand nombre de projets réelles, qui va inciter les entreprises à recourir aux Parler et promouvoir les certifications dans l'état actuel, n'aura pas plus d'effet que de créer de nouveaux master, augmenter significativement le nombre de projets aura un effet visible sur le nombre de certifications, pas l'inverse. 4.2.3
La certification est une conséquence à la multiplication de projets : pas l'inverse
L'administration, principal client des entreprises TIC en Tunisie, (on parle de 80% du marché !) est capable de contribuer à augmenter les chances d'internationalisation de nos entreprises (pour ne pas dire micro-entreprises). Comment ? Simplement par réaliser (je dis bien mettre en œuvre) les projets planifiés, ceux budgétisés dans le par l'administration pour l'année encours, ne pas différer continuellement. En effet, la grande partie des projets budgétisés (oui je parle de projets ayant un budget, donc dont l'administration a besoin, pas de nouveaux besoins) ne sont pas lancés ou se trouve retardés ( 40% des Appels d'offres sont infructueux). Pour créer le grand changement tant espéré, il ne suffit pas de lancer les projets, mais de leurs donner une orientation technologique claire et univoque, Il est possible de faire en sorte que la majorité des projets de développement de logiciels, au sein de l'administration, soit réalisés dans une plateforme technologique cible cohérente : 1) choisir une technologie cible (PHP, .net ou Java EE), prenons le temps de bien choisir, mais choisissons une cible, 2) fixer une architecture technique unifiée pour l'administration -ATUA 3) Lancer des projets pour créer la plateforme de référence mutualisé de l'administrationPRMA 4) Certifier les ATUA et PRMA (les logiciels) dans l'architecture cible 5) lancer, en même temps, quelques dizaines de projets dans cette technologie cible, et exiger le respect du ATUA et PRMA c'est, ainsi on pourra créer un gisement d'expert dans le domaine et des centaines de "très bon" ingénieurs et promouvoir la certficiation
Investir dans le remboursement de certification, n'a aucun sens en l'absence de projets (de beaucoup de projets). Il faut se mettre à la place d'une entreprise qui n'a pas de projet (en vois pas venir) en Java EE, pour quelle raison va-t-elle investir Pour cela l'administration aura peut être besoin de plus d'assistance à maîtrise d'ouvrage.
Note Interne
2009
Page 10
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
5.
La certification en Tunisie et dans les pays concurrents
5.1
La Disponibilité de ressources Java EE en Tunisie
La réponse, en 2007 (comme en 2006) est sans équivoque : une pénurie à tout les niveaux. Aucune entreprise tunisienne connaissant l'état du marché, n'ose plus penser pouvoir recruter un ingénieur Certifié Java, c'et la perle rare. On se contente de recruter des ingénieurs "avec une petite connaissance en java et quelque framework" et en s'arrache les quelques ingénieurs confirmés, ces derniers ne tardant pas à quitter le pays vers d'autres cieux où l'herbe est plus verte. Tout cela au détriment du marché et par manque de projets mobilisateurs. 5.2 La certification en Tunisie Le développement de la certification Java reste très faible, et n'a ps de chance de s'améliorer pour deux raisons -l’augmentation des prix, suite à la flambée de l'Euro / Dollars face au dinars - depuis que les entreprises tunisiennes ont constaté la "volatilité des ressources certifiés", et l'appel de vent venant de l'Europe pour ces ressources rares (toute nouvelles technologies confondues), est ce qu'une entreprise tunisienne, va investir massivement ( certifier une ressource ou deux ne change rien) dans la certification Java alors que la marché interne n'est pas demandeur D'autre part, certains ingénieurs confondent certification et expérience, et commencent à exgier un traitement spéciale à cause d'une certification. De plus, ne jamais oublier, que la majorité des développeurs tunisiens certifiés en Java atterrissent en Europe. 5.3 La certification dans les pays arabes Il y a un manque d'information sur le sujet,.
Mais il parait que l'Egypte est le pays arabe qui sort du lot et qui dépasse tout le monde sur le sujet Java /Java EE. 5.4 La certification dans les pays émergents Dans les pays émergent, le Brésil est de loin le pays qui compte le plus de ressources java et de certifications Java EE. C'est Un pays qui a opté effectivement et dans la pratique au couple gagnant "Java EE / Open Source".
6.
Comment préparer et réussir sa certification Java EE
6.1 Comment préparer A faire 6.2 Site web de test blanc A faire Note Interne
2009
Page 11
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
6.3 Site web de test blanc A faire
7.
Où passer les certifications Java EE en tunsiie
Acheter un ticket chez TMI Passer dans u centre habilité Prometric
Note Interne
2009
Page 12
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
8.
Annexes
8.1
JAVA EE en quelques questions
8.1.1
JAVA EE, c'est un standard ? En fait, c'est un ensemble de standards. Java EE (pour Java Enterprise Edition) peut être considéré comme un intitulé générique qui couvre plus d'une dizaine de services techniques. Ces services définissent par exemple comment accéder à un annuaire, à une base de données, comment faire dialoguer des machines virtuelles Java ou encore quelles interfaces un composants doit présenter pour être réutilisable dans un tel environnement. C'est la combinaison de tous ces services techniques qui constitue l'architecture Java EE.
8.1.2
Pour quelle finalité ? Le but du jeu est clair : il s'agit de rendre interopérables les composants développés dans le cadre des architectures distribuées, aussi appelées architectures multi-niveaux - celles qui, grossièrement, associent une base de données, un serveur d'applications et des serveurs Web. Théoriquement, un composant conforme aux services techniques JAVA EE doit pouvoir s'exécuter dans n'importe quel environnement estampillé "JAVA EE".
8.1.3
Cette spécification ne concerne-t-elle que les serveurs d'applications ? Non. Tous les logiciels qui, dans le contexte d'une application distribuée, s'appuient sur un serveur d'applications sont potentiellement concernés par JAVA EE.
8.1.4
Quel rapport avec Java et les EJB ? JAVA EE capitalise sur les technologies historiquement poussées par Sun. Le langage Java donc, mais aussi les Java Server Pages qui, sur le modèle des Active Server Pages (ASP) de Microsoft, combinent HTML et des appels à des composants pour générer des pages dites dynamiques. Les EJB (pour Enterprise Java Beans) sont étroitement liés à JAVA EE puisqu'ils définissent un modèle de composants : autrement dit, une enveloppe logicielle standard dans laquelle glisser un composant afin qu'il puisse fonctionner au sein d'un environnement comprenant les spécifications EJB. Les EJB représentent l'un des chapitres clefs de JAVA EE.
8.1.5
qui est aux commandes de JAVA EE ? L'élaboration des briques techniques de JAVA EE a été initiée par Sun. Aujourd'hui, la mise à jour des spécifications respecte une méthodologie qui permet aux éditeurs de soumettre des requêtes. Des tests sont également disponibles pour éprouver la rigueur des implémentations. Dans la pratique, la force de JAVA EE tient à son adoption par de grands éditeurs comme IBM, Oracle, Borland ou Bea. En se rassemblant autour d'une spécification commune, ces éditeurs travaillent à constituer une communauté de développeurs au moins équivalente à celle de Microsoft qui, avec sa stratégie " .net ", représente l'autre voie technologique.
8.1.6
Où en est-on dans les versions de JAVA EE ? Où en est-on dans les versions de JAVA EE ? La version actuelle de la plateforme cible est Java EE 5 Pour l'heure, les tests de compatibilité sont disponibles pour la version 5 de la spécification. Elle a été adoptée le 02 mai 2005 est la version 5 : Java Enterprise Edition 5 La version encours de Java (le langage) est 6.
8.2
Les APIs fournies par JAVA EE Nous allons maintenant entreprendre un tour d'horizon des APIs couvertes par l'API "entreprise"
Note Interne
2009
Page 13
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
de Sun. 8.2.1
JDBC JDBC (Java Database Connectivity) est une API permettant de travailler avec des bases de données relationnelles. Elle permet d'envoyer des requêtes SQL à une base, de récupérer et d'exploiter le résultat ainsi que d'obtenir des information sur la base elle même et les tables qu'elle comporte. Le code Java utilisant l'API JDBC est indépendant de la base elle même grâce à l'utilisation de drivers spécifiques fournis par les vendeurs. Bien sûr, les requêtes JDBC utilisées doivent être standards (et ne pas exploiter des fonctionnalités spécifiques à la base utilisée) pour que l'ensemble reste portable. L'API JDBC est fournie en standard avec le JDK depuis la version 1.1 de Java. Les versions ultérieures fournissent de nouvelles fonctionnalités (comme la manipulation de résultats de requêtes comme des Java Beans, la gestion de pools de connections, les traitements par batchs ou la sérialisation d'objets Java en base).
8.2.2
RMI RMI (Remote Method Invocation) est une API fournissant une approche de haut niveau de la programmation distribuée. On peut ainsi invoquer des méthodes d'un objet distant (résidant sur un serveur) de la même manière que l'on appelle les méthodes d'un objet local. Cette API est présente dans le JDK standard depuis la version 1.1 et a été améliorée dans la version 1.2.
8.2.3
Java IDL l'utilisation de RMI ne peut s'envisager que si le client et le serveur sont écrits en Java. Si ce n'est pas le cas, il est possible d'appeler des méthodes sur un objet distant en utilisant une solution basée sur CORBA (Common Object Request Broker Architecture), standard défini par l'OMG. La plateforme Java 2 inclue un ORB (Object Request Broker) permettant à un programme Java de communiquer avec d'autres ORBs et donc avec d'autres objets CORBA. L'interface d'un objet CORBA est décrite dans un langage indépendant de la plateforme et du langage d'implémentation appelé IDL (pour Interface Description Language). Sun fournit un compilateur IDL permettant de générer les classes nécessaires à un objet Java pour communiquer avec un ORB.
8.2.4
JNDI JNDI (pour Java Naming and Directory Interface) est une API pour communiquer avec les services de nommage et d'annuaire en réseau. On peut ainsi y chercher des objets Java par un chemin ou des valeurs d'attributs. Il existe des ponts avec les principaux services d'annuaires (comme LDAP, NIS ou NDS) et avec les registry de RMI ou CORBA. Dans la pratique, JNDI est utilisé couramment dans la plateforme JAVA EE pour récupérer des objets par un nom symbolique (on peut ainsi récupérer une connexion à une base de données, une instance d'une interface distante, etc.).
8.2.5
EJB Les EJB (Enterprise Java Beans) sont des composants destinés à tourner dans un serveur d'application EJB pour encapsuler des services de données ou logique métier. Il est en effet souvent intéressant de déporter la logique métier du client vers le tiers du milieu d'une application distribuée. La valeur ajoutée des EJBs réside dans les services fournis par le serveur. Le framework EJB est ainsi tenu d'assurer, de manière transparente, la sécurité, la persistance, le support réseau et la gestion des transactions aux composants. On enlève ainsi une épine du pied du développeur qui peut se consacrer pleinement à l'implémentation de la logique métier. L'API EJB et les services assurés par le serveur sont décrits dans des spécifications (actuellement 2.0). Les EJBs sont donc plus qu'une simple API, ils forment aussi un framework
Note Interne
2009
Page 14
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
pour objets métiers. Ils forment une pièce maîtresse de la plateforme JAVA EE à tel point qu'on identifie parfois JAVA EE aux EJBs. 8.2.6
Servlets Les Servlets peuvent être comparées à des Applets côté serveur: ce sont des objets tournant sur un serveur pour répondre aux requêtes du client de manière dynamique. Les avantages des Servlets par rapport à d'autres technologies sont: la portabilité (entre systèmes d'exploitation et serveurs), la persistance entre les requêtes qui leur donne un avantage en termes de performance par rapport à d'autres technologies comme les CGI, et enfin l'accès à l'ensemble de la plate-forme Java (qui leur permet ainsi d'accéder aisément à des bases de données avec JDBC).
8.2.7
JSP Les JSPs (pour Java Server Pages) sont comparables aux ASP de Microsoft: ce sont des pages HTML comportant du code imbriqué. Elles rendent les mêmes services que des Servlets mais elles présentent l'avantage d'être beaucoup plus proche du document HTML que du code Java. On peut ainsi en confier l'écriture à des designer web puis envoyer le résultat à des développeurs pour y insérer les appels au code Java. Les JSP sont compilées automatiquement, lors du premier appel, en Servlets. De plus, les serveurs gérant les Servlets sont souvent capables de servir des JSPs.
8.2.8
JMS JMS (pour Java Message Service) est une API d'échange asynchrone de message ou d'évènements critiques entre applications. Comme JNDI et JDBC, JMS est une API construite pour reposer sur des services de messagerie existants fournis par divers vendeurs. JMS permet maintenant de gérer les transactions et est utilisée pour la communication asynchrone entre EJBs (des EJBs pilotés par messages ou message driven beans, nouveauté de la version 2.0 des spécifications EJB).
8.2.9
JTA JTA (pour Java Transaction API) est une API permettant de gérer les transactions distribuées. Elle utilise un service de gestion des transactions distribuées avec lequel elle communique au travers de l'API XA (standard défini par l'Open Group). L'utilisation directe de l'API JTA reste cependant complexe, et les serveurs d'application gèrent les transactions de manière transparente pour l'utilisateur. JTA peut donc être vue comme une API bas niveau utilisée par les développeurs de serveurs d'applications plutôt que par les développeurs d'applications d'entreprise.
8.2.10 JSF Les JavaServer Faces étendent les capacités des JSP pour faciliter la création et la mise à jour d'objets au sein de l'interface (barre de navigation, etc.). 8.2.11 Autres APIs Les implémentations JAVA EE doivent aussi fournir un certain nombre d'autres APIs, parmi lesquelles: •
JavaMail: Permet d'envoyer des emails. Doit inclure aussi Java Activation Framework (JAF).
•
JAXP: Java API for XML Parsing est une API qui unifie les différentes implémentations de parsers XML (parsers SAX, DOM et processeurs XSLT).
•
JCA: Java Connector Architecture permet l'interconnexion d'une application JAVA EE avec un système d'information d'entreprise par la gestion de pools, des transactions et de la
Note Interne
2009
Page 15
Documents TeeJug La Certification des développeurs en Java / Java EE Java EE
Version: <1.0> Date: 3/15/2009
sécurité. •
JAAS: Java Authentication and Authorization Service fournit une implémentation Java du standard PAM (Plugable Authentication Module).
Note Interne
2009
Page 16