Qu'est-ce que Java EE?
Pour de nombreux développeurs J2EE débutants, Java EE équivaut à Enterprise JavaBeans (EJB). Cependant, Java EE est beaucoup plus que EJB. Java EE est une suite de spécifications pour les API, une architecture de calcul distribué et des définitions pour l'empaquetage des composants distribuables pour le déploiement.
Il s'agit d'une collection de composants, de conteneurs et de services standardisés permettant de créer et de déployer des applications distribuées dans une architecture informatique répartie bien définie. Sun dit que Java Platform, Enterprise Edition 5 définit la norme pour le développement d'applications d'entreprise multiniveaux basées sur des composants.» Comme son nom l'indique, Java EE cible les systèmes d'entreprise à grande échelle. Les logiciels qui fonctionnent à ce niveau ne fonctionnent pas sur un seul PC: ils nécessitent beaucoup plus de puissance de calcul et de débit que cela. Pour cette raison, le logiciel doit être partitionné en pièces fonctionnelles et déployé sur les plates-formes matérielles appropriées. C'est l'essence de l'informatique distribuée. Java EE fournit une collection de composants standardisés facilitant le déploiement de logiciels, des interfaces standard qui définissent l'interconnexion des différents modules logiciels et des services standard qui définissent la manière dont les différents modules logiciels communiquent.
Developper des applications d'entreprises distribuées
Le mot entreprise a des pouvoirs magiques dans les cercles de programmation informatique. Il peut augmenter le prix d'un produit d'un ordre de grandeur et doubler le salaire potentiel d'un consultant expérimenté. Votre application peut être vide de bogues, et codée proprement en utilisant toutes les dernières techniques et outils, mais est-elle prête pour l'entreprise? Quel est exactement l'ingrédient magique qui rend le développement de l'entreprise qualitativement différent du développement ordinaire?
Les applications d'entreprise (applications professionnelles à grande echelle) résolvent les problèmes de l'entreprise. Cela implique généralement le stockage, la récupération et la manipulation en toute sécurité des données de l'entreprise: les factures des clients, les demandes de prêt hypothécaire, les réservations de vols, etc. Ils peuvent avoir plusieurs interfaces utilisateur: une interface Web pour les consommateurs et une application d'interface utilisateur graphique (GUI) s'exécutant sur des ordinateurs dans les succursales, par exemple. Les applications d'entreprise doivent traiter de la communication entre les systèmes distants, coordonner les données dans plusieurs magasins et s'assurer que le système suit toujours les règles établies par l'entreprise. Si une partie du système tombe en panne, l'entreprise perd une partie de sa capacité à fonctionner et commence à perdre de l'argent. Si l'entreprise se développe, l'application doit grandir avec elle. Tout cela s'ajoute à ce qui caractérise les applications d'entreprise: la robustesse face à la complexité.
Developper des applications distribuées qui sont évolutives, robustes, sécurisées et maintenables et qui fonctionnent sur des infrastructures informatique distribuées n'est pas une simple tache. Il y a beacuoup d'éléments essentiels à prendre en considération comme la sécurité, l'accès à la base de données et le contrôle des transactions. La sécurité garantit que les utilisateurs sont ceux qu'ils prétendent être et ne peut accéder qu'aux parties de l'application auxquelles ils ont le droit d'accéder. L'accès à la base de données est également un composant fondamental pour que votre application puisse stocker et récupérer des données. La prise en charge des transactions est requise pour s'assurer que les bonnes données sont mises à jour au bon moment.
C'est pourquoi les architectures basées sur Java EE sont si convaincantes; En effet, J2EE prend en charge les applications qui sont partitionnées en plusieurs niveaux (architecture n-tier). L'infrastructure matérielle au niveau du système est déjà en place à travers un ensemble de conteneurs, de connecteurs et de composants basés sur des spécifications et normes dèja publiées. Cela signifie que les applications écrites pour Java EE fonctionneront sur un nombre illimité d'implémentations compatibles avec ces normes.
Quelle rapport entre Java EE et J2SE
Java permet de programmer les applications GUI desktop qui fonctionnent sur n'importe quel système d'exploitation. En outre, Java EE fournit une interface bien ameliorée avec un ensemble des bibliothèques pour developper des applications plus complexes qui se deploient sur des grandes architectures et des systèmes distibuées.
Java EE ne remplace pas Java 2 Standard Edition (J2SE). J2SE fournit le cadre linguistique essentiel sur lequel Java EE est bati. C'est le noyau sur lequel Java EE est basé, Java EE se compose de plusieurs couches, et J2SE est à la base de cette pyramide pour chaque composant de Java EE.
En tant que développeur Java, vous avez probablement déjà appris à créer des interfaces utilisateur avec les composants AWT (Swing ou Abstract Window Toolkit). Vous continuerez à les utiliser pour créer les interfaces utilisateur pour vos applications Java EE, ainsi que les interfaces utilisateur HTML. Puisque J2SE est au cœur de Java EE, tout ce que vous avez appris reste utile et pertinent.
En outre, Java EE fournit une autre API pour créer des interfaces utilisateur. Cette API est nommée JavaServer Faces (JSF) et est l'une des dernières technologies Java EE. Vous verrez également que la plate-forme Java EE offre l'avantage le plus important dans le développement de la partie intermédiaire de votre application: c'est la logique métier et les connexions aux sources de données principales.
Fonctionnalités et concepts en Java EE
Apprendre l'ensemble de Java EE prendra un certain temps, d'étude et de patience. Vous aurez besoin de comprendre beaucoup de concepts pour commencer, ces concepts seront la base de plus de concepts à suivre.
-
Java EE Clients et Serveurs
Un client Java EE peut être une application console (texte) écrite en Java ou une application graphique écrite en utilisant (JFC) et Swing ou AWT. Il peut également s'agir de clients basés sur le Web (interface purement HTML, une page enrichie en JavaScript ou une applet assez simple)
-
Conteneurs (containers)
Les conteneurs sont un thème central de l'architecture Java EE, tout comme les pièces de la maison. Dans un serveur d'applications, les composants Web et métier existent à l'intérieur des conteneurs et s'interfacent avec l'infrastructure Java EE via des interfaces bien définies.
-
Java Servlets
Les servlets sont l'une des technologies développées pour améliorer les requetes HTTP entre le client et les serveurs. Une servlet est un composant Java implémentant l'interface javax.servlet.Servlet. Il est invoqué à la suite d'une demande de client pour ce servlet particulier.
-
Pages JavaServer (JSP)
Les pages JSP sont des documents texte HTML avec des morceaux de code Java appelés scriptlets intégrés dans le document HTML.
-
JavaServer Faces (JSF)
JSF est une technologie relativement nouvelle qui fournit une interface utilisateur robuste et riche pour les applications Web. Il est utilisé conjointement avec les servlets et les pages JSP et fournit une API basée sur les composants pour la création d'interfaces utilisateur.
-
JDBC
JDBC est un ensemble d'API et bibliothèques spécifiques au système permettant de communiquer avec un système de stockage de données. La plupart des applications JDBC sont utilisées pour communiquer avec une base de données relationnelle. Généralement les données sont stockées dans une base de données relationnelle,logiquement, sur des tables.
-
EJB
Les EJB sont des composants Java qui implémentent la logique métier. Cela permet à la logique métier d'une application (ou d'une suite d'applications) d'être compartimentée en EJB et séparée des applications front-end qui utilisent cette logique métier.
Autres fonctionnalités sont le support XML, les services Web, le support des transactions et la sécurité.
JSP