Introduction J2EE

Document Sample
Introduction J2EE Powered By Docstoc
					Amin Zribi, Hichem Maatallah, Med Ramzi Haddad




                                                                        Chapitre 1:

         Introduction à la plateforme J2EE


1. Présentation générale

    De nos jours, les développeurs exhibent de plus en plus d intérêt au développement
d applications transactionnelles et distribuées pour les entreprises, ce qui demande plus de
rapidité, sécurité et fiabilité de la technologie du serveur. D un autre coté, le monde
émergeant du commerce électronique et de la technologie de l information fait qu il soit
indispensable de créer des applications entreprises qui soient conçues et construites avec le
moindre de dépenses, mais permettant une rapidité importante et une utilisation minimale
des ressources. D où le besoin d une plateforme permettant la conception et le
développement d application non couteuses et à la fois rapides et efficaces.

    La plateforme Java 2 Platform, Enterprise Edition (J2EE ) présente une solution à ce
problème. En effet, basée sur la décomposition en composants, cette plateforme permet la
conception, le développement, l assemblage et le déploiement d applications entreprises.
J2EE offre un modèle distribué d application multiniveaux (multitiered application), des
composants réutilisables, un modèle de sécurité unifié, un contrôle de transaction flexible, et
un support de services Web (Web services).

    En plus du fait qu elle fournie une solution innovatrice et rapide pour les applications
entreprises, la plateforme J2EE est indépendante. En effet, les solutions J2EE basées sur
les composants n est pas liée aux produits et aux API (Application Programming Interface)
d aucun vendeur. Ainsi, les vendeurs et les clients ont la possibilité de choisir les produits et
les composants qui satisfassent au mieux leurs besoins économique et technologiques.

     Dans ce cours, nous allons décrire quelques fonctionnalités de la plateforme J2EE pour
la conception d applications entreprises. Dans ce chapitre, nous traiterons l architecture
J2EE et les API qu elle définie. Nous allons également essayer de nous familiariser avec les
différentes notions permettant la programmation d applications sous la plateforme J2EE.

2. Les applications distribuées multiniveaux

    Comme cité, la plateforme J2EE utilise un modèle distribuée multiniveaux pour les
applications entreprises (Distributed Multitiered applications). En effet, la logique de
l application est divisée en composants selon leurs fonctionnalités et la machine dans la
quelle l application s exécute. La figure 1.1 montre deux applications J2EE en multiniveaux.

Chapitre 1 : Introduction à la plateforme J2EE
                                                 1
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

Les niveaux décrits dans la figure 1.1 sont les suivants :
   · Le niveau client (Client-tier) d une application distribuée s exécute généralement sur
       le navigateur de l ordinateur personnel de l utilisateur. Les clients peuvent aussi être
       des applications isolées ou d autres processus.
   · Le niveau Web (Web-tier) s exécute habituellement sur un ou plusieurs serveurs
       centralisés fournissant du contenu à différents clients en même temps.                      Commentaire [MRH1]: Les serveurs
                                                                                                   peuvent être répartis.
   · Le niveau logique professionnelle (business-tier) entre en jeu généralement lorsque           JE propose centralisés ou répartis
       le serveur Web doit avoir recours à des tâches spécifiquement commerciales pour
                                                                                                   Commentaire [MRH2R1]:
       gérer une activité ou un service en ligne.
                                                                                                   Commentaire [MRH3]: Niveau métier
   · Le système d information de l entreprise (EIS-tier) fournit le stockage logique et            ou logique applicative
       l accès aux données de l organisation.                                                      Commentaire [u4]: Je propose métier
                                                                                                   ou logique métier

                                                                                                   Commentaire [MRH5]: Tâches liées
                                                                                                   au métier concerné




                          Fig 1.1. Applications distribuées multiniveaux

    Malgré qu une application J2EE puisse combiner trois ou quatre niveaux comme le
montre la figure 1.1, les applications J2EE sont considérées à trois niveaux parce qu elles
sont réparties sur trois parties : la machine client, le serveur J2EE et la base de donnée de
l entreprise. Cette architecture est appelée architecture 3-tiers.                                 Commentaire [MRH6]: C est une
                                                                                                   application 3 tiers

3. Les composants de la plateforme J2EE

    Les applications J2EE sont constituées de plusieurs composants. Un composant est une
unité logicielle qui est intégrée dans une application J2EE avec les classes et les fichiers qui
lui sont reliés, et qui communique avec les autres composants. Les spécifications de J2EE
définissent les composants J2EE suivants :
    · Les applications client et les applets sont des composants qui s exécutent sur la
        machine client.
    · Les composants Web comme de la technologie Java Servlet et JavaServer Pages                  Commentaire [MRH7]: J ai ajouté
                                                                                                   comme puisqu il y en a d autres
        (JSP ) qui s exécutent sur le serveur Web.


Chapitre 1 : Introduction à la plateforme J2EE
                                                 2
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

    ·   Les composants Enterprise JavaBeans          (EJB ) qui sont des composants du
        niveau logique professionnelle métier s exécutant sans le serveur.                        Commentaire [u8]: Les EJB ne peuvent
                                                                                                  pas s exécuter sans une serveur

    Les composants J2EE sont écrits en langage de programmation Java et sont compilés             Commentaire [MRH9]: Ici je ne sais
                                                                                                  pas si on devrai évoquer les notions de
comme tout programme écrit en ce langage. La différence entre les composants J2EE et les          serveur d objets et de serveur d application
classes Java standards est que les composants J2EE sont assemblés dans une application
J2EE, sont validés pour être bien formés et en concordance avec les spécifications de la
plateforme J2EE. Ceci est nécessaire afin de garantir l exécution de ces composants dans le
serveur J2EE.

4. Les clients J2EE

    Un client J2EE peut être un client W eb ou une application client.

    4.1.    Client Web

    Un client Web (Web Client) est composé de deux parties :
·   Les pages Web dynamiques contenant différents types de langage de balisage (HTML,             Commentaire [u10]: Coté client, les
                                                                                                  pages ne sont plus dynamique
    XML ), qui sont générées par les composants Web s exécutant au niveau Web
·   Le navigateur Web qui affiche la page provenant du serveur.

    4.2.    Les applets

   Une page Web reçue du niveau Web peut inclure des programmes intégrés appelés des
applets. Une applet est une petite application client, écrite en langage de programmation
Java, et qui s exécute moyennant le Java Virtual Machine installé dans le navigateur Web.
Ceci dit, les machines clientes auront besoin d un plug-in Java et probablement d un fichier
de la politique de sécurité imposée afin que l applet s exécute correctement dans le
navigateur Web.

    4.3.    Les applications client

     Une application client (application client) s exécute sur la machine client et fournit aux
utilisateurs une méthode pour effectuer des tâches nécessitant une interface utilisateur plus
riche que celle fournie par le langage des balises. En effet, une application client accède
directement aux Beans de l entreprise (EJB) opérant dans le niveau logique professionnelle.       Commentaire [MRH11]: C est un cas
                                                                                                  particulier non ?
Ceci dit, en fonction des besoins de l utilisateur, une application client peut ouvrir une        Parceque l application pourrait etre
connexion http et établir une communication avec un Servlet dans le niveau Web.                   developpée sans ejb mais avec des classes
                                                                                                  normales.

    4.4.    Les composants JavaBeans

   Les niveaux serveur et client peuvent aussi inclure des composants basés sur les
JavaBeans pour gérer les flux de données entre une application client, ou une applet et les
composants exécutés dans le serveur J2EE, ou entre les composants du serveur et une
base de données.

    4.5.    La communication avec un serveur J2EE


Chapitre 1 : Introduction à la plateforme J2EE
                                                 3
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad


     La figure 1.2 récapitule les différents modes de communication que le niveau client peut
utiliser. Le client peut communiquer avec le niveau logique professionnelle directement à
travers les applications client. Sinon, comme le cas de l utilisation d un navigateur Web, le
client passe par le niveau Web à travers les JSP ou les servlets.




                        Fig. 1.2. Modes de communication client/ serveur



5. Les composants Web

    Les composants Web J2EE sont soit des servlets, soit des pages créées utilisant la
technologie JSP.


    5.1.    La technologie Java Servlet

   Les Servlets sont des classes du langage de programmation Java qui traitent
dynamiquement les requêtes et génèrent les réponses.
   La technologie servlet permet de définir des classes de Servlets spécifiques au langage
Html. Une classe Servlet étend les capacités du serveur qui héberge les applications
accédées suivant le modèle de programmation requête-réponse. En général, cette classe
Java ne doit quasiment pas générer de code Html.

    5.2.    La technologie Java Server Pages (JSP)

   Les pages JSP sont des documents textes qui s exécutent comme les servlets, mais qui
proposent une approche plus naturelle pour la création d un contenu statique.
   Cette technologie permet d inclure des bouts de code servlet directement dans un
document texte. Ainsi, une page JSP est un document texte qui contient deux types de
contenus : les données statiques (Html, Wml, et Xml) et les éléments JSP qui déterminent
comment cette page défini son contenu dynamique.



Chapitre 1 : Introduction à la plateforme J2EE
                                                 4
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

    Comme le montre la figure 1.3, comme le niveau client, le niveau Web peut inclure des
JavaBeans permettant de gérer les entrées de l utilisateur et de les envoyer au Beans de
l entreprise s exécutant dans le niveau logique professionnelle.




                    Fig. 1.3. Gestion des applications J2EE au niveau Web



6. Les composants du niveau logique professionnellemétier

    Le code professionnelCes composants traitent la logique applicative et permetteant de
résoudre et d assurer les besoins d une application professionnelle particulière tels que les
services bancaires ou financiers, est opéré par les Beans de l entreprise dans le niveau
logique professionnelle. La figure 1.4 montre la façon avec laquelle un Bean entreprise reçoit
les données des programmes clients, les traite (si nécessaire), et les envoie au système de
stockage de l entreprise au niveau EIS. Un Bean entreprise permet également de retrouver
des données dans la base d information de l entreprise, les traiter (si nécessaire), et les
renvoyer au programme client.




Fig. 1.4. Le niveau logique professionnelle métier et le système d information de l entreprise



Chapitre 1 : Introduction à la plateforme J2EE
                                                 5
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad


    On distingue trois types de Beans entreprise :
       · Les session-beans : représentent une conversation transactionnelle avec le client.
           Lorsque le client termine l exécution, ces Beans et les données correspondantes
           sont effacées.
       · Les entity-beans : représentent des données persistantes enregistrées dans une
           ligne de la table de la base de données. Lorsque le client quitte, ou le système est
           arrêté, les données des entity-beans sont enregistrées.
       · Les message-driven beans : combinent les caractéristiques des session-beans et
           d un Java Message Service (JMS) et permet, ainsi, à un composant de la logique
           professionnelle de recevoir des messages JMS asynchrones.

7. Le niveau système d information de l entreprise

    Ce niveau est composé du logiciel de traitement du système d information et inclus les
systèmes d infrastructure de l entreprise tels que les plans des ressources de l entreprise
(Enterprise Resource Planning ERP) et les systèmes des bases de données. Par exemple,
des composants d une application J2EE peuvent avoir besoin d accéder au niveau système
d information de l entreprise pour une connexion avec une base de données.

8. Les conteneurs J2EE

   L architecture J2EE basée sur les composants et la plateforme indépendante rend les
applications J2EE facile à écrire puisque la logique professionnelle est basée sur des
composants réutilisables. En plus, le serveur J2EE fournit des services sous forme de
conteneur pour chaque type de composant.

    Un conteneur est une interface entre un composant et une fonctionnalité d une
plateforme spécifique bas niveau qui supporte ce composant. Avant l exécution d un
composant Web, d un Bean entreprise, ou d un composant application client, il doit être
assemblé dans un module J2EE et déployé dans son conteneur.




                     Fig. 1.5. Le serveur J2EE et les différents conteneurs


Chapitre 1 : Introduction à la plateforme J2EE
                                                 6
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad


   La phase de déploiement installe les composants d une application J2EE dans les
conteneurs J2EE comme illustré dans la figure 1.5. On distingue :
      · Le serveur J2EE (J2EE server) est la portion exécutable d un produit J2EE. Il
          permet le traitement du conteneur des Beans entreprise (EJB) et du conteneur
          Web.
      · Le conteneur EJB (Enterprise JavaBeans container) : gère l exécution des Beans
          de l entreprise pour les applications J2EE.
      · Le conteneur Web (Web container) : gère l exécution des pages JSP et des
          servlets pour les applications J2EE. Les composants Web et leur conteneur
          opèrent dans le serveur J2EE.
      · Le conteneur de l application client (Application client container) : gère l exécution
          des composants de l application client.
      · Le conteneur des applets (Applet container) : gère l exécution des applets. Il
          contient le navigateur Web et un Plug-in Java s exécutant sur la machine client.



9. Les APIs J2EE

    La figure 1.6 résume les APIs de la plateforme J2EE dans chaque type de conteneur.
Les sous sections suivantes présenteront un résumé des APIs qui seront utilisées pour la
conception des applications J2EE. Certaines APIs seront détaillées dans les chapitres à
suivre avec des applications sur machine.




                 Fig. 1.6. La plateforme J2EE avec les conteneurs et les APIs

Chapitre 1 : Introduction à la plateforme J2EE
                                                 7
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad


    9.1.    L API Java DataBase Connect ivity (JDBC)

    C est une API industrielle pour la connectivité entre un programme écrit en langage Java
et un grand ensemble de base de données. Elle permet de:
    · Etablir une connexion à une base de données et accéder à n importe quelle table.
    · Envoyer des requêtes SQL.
    · Interpréter le résultat de la requête.

    9.2.    Java Naming and Directory Interface (JNDI)

     C une API d'accès aux services de nommage et aux annuaires d'entreprises. Elle fournit
aux applications des méthodes permettant d effectuer les opérations standards sur les
dossiers tels que l association des attributs aux objets et la recherche des objets selon leurs
attributs.

    9.3.    Java Transaction Api (JTA) / Java Transaction Services (JTS)

    C est un API définissant des interfaces standard avec un gestionnaire de transactions.

    9.4.    J2EE Connector Architecture (JCA)

    C est une API de connexion au système d'information de l'entreprise, notamment aux
systèmes dits «Legacy» tels que les ERP.

    9.5.    Java Management eXtension (JMX)

   Cette API fournit des extensions permettant de développer des applications web de
supervision d'applications.

    9.6.    Java Authentification and Authorization Service (JAAS)

    C est une API de gestion de l'authentification et des droits d'accès.

    9.7.    Remote Method Invocation (RMI)

    C est une API permettant la communication synchrone entre objets.

    9.8.    Web services

    Les Web services permettent de « partager » un ensemble de méthodes qui pourront
être appelées à distance. Cette technologie utilise XML, ce qui permet d être utilisée par
n importe quel langage et n importe quelle plateforme.

    9.9.    Java Message Service (JMS)

Cette API fournit des fonctionnalités de communication asynchrone (appelées MOM pour
Middleware Object Message) entre applications.

Chapitre 1 : Introduction à la plateforme J2EE
                                                 8
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

    9.10. JavaMail

C est une API permettant l'envoi de courrier électronique.

10.    Les acteurs d une application J2EE

    La spécification J2EE décompose              le cycle   de vie   d une   application   en   6
rôles/responsabilités différentes :

1. Fournisseur de produit J2EE (J2EE Product Provider) : Implémente les API J2EE (Sun,
   IBM, )

2. Fournisseur d outils (Tool Provider) : Implémente des outils qui automatisent des tâches
   J2EE : Assemblage, déploiement,        (Sun, IBM, )

3. Développeur de composants (Application component provider) : Responsable au
   développement de composants de leurs descripteurs

4. Assembleur d application (Application assembler) : Combine les composants provenant
   du component provider afin de constituer des applications

5. Responsable de déploiement (Deployer) : Installe et configure les applications sur
   l environnement serveur d application

6. Administrateur système (System administrator) : Veille aux backups et aux données de
   configuration, contrôle la performance du serveur, sa sécurité et procède aux
   optimisations nécessaires.

11.    Serveur d application et serveur d objet

    11.1. Serveur d application

    Le serveur d'application est l'environnement d'exécution des applications côté serveur. Il
prend en charge l'ensemble des fonctionnalités qui permettent à plusieurs clients d'utiliser
une même application. Il permet ainsi :
   · La gestion de la session utilisateur : plusieurs clients utilisant une même instance
 d'application sur le serveur, il est nécessaire que le serveur d'application puisse conserver
 des contextes propres à chaque utilisateur (par exemple, un panier de commandes). La
 plupart des serveurs d'application génèrent un identifiant unique pour chaque nouveau
 client et transmettent cet identifiant lors de chaque échange http.
   · La gestion des montées en charge et reprise sur incident : Afin de gérer toujours plus
 d'utilisateurs, le serveur d'application doit pouvoir se déployer sur plusieurs machines et
 éventuellement offrir des possibilités de reprise sur incident.
     · L ouverture sur de multiples sources de données : C'est le serveur d'application qui
 rend accessible les données des applications du système d'information. Il doit donc pouvoir
 accéder à de nombreuses sources de données.

Le serveur d'application est donc indispensable si l'on souhaite éviter de redévelopper
certaines fonctionnalités. Comme exemple de serveurs d application on peut citer les
moteurs JSP/Servlets, Microsoft ASP, ColdFusion, PHP

Chapitre 1 : Introduction à la plateforme J2EE
                                                 9
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

    11.2. Serveur d objet

   Pour aborder la notion de serveur d'objets, il faut comprendre qu'il existe deux méthodes
pour accéder aux données et aux traitements.
       · La première consiste à accéder directement aux sources de données.
       · La deuxième méthode consiste à s'appuyer sur des objets métier (client,
          fournisseur ...) afin de masquer la complexité d'accès aux données.

    Pour gérer ces objets, un environnement d'exploitation est nécessaire : le serveur
d'objets. Ce serveur d'objets va devoir fournir des services tout à fait différents de ceux des
serveurs d'application :
        · Gestion de la persistance des objets,
        · Gestion des transactions objets métier

    Les principaux serveurs d'objets à ce jour sont les serveurs EJB (Enterprise Java Beans)
et Corba. Ils ne sont nécessaires à ces développements que si l'on souhaite utiliser
pleinement la logique d'objets métier.

    11.3. Communication Serveur d application/ serveur d objet

        La figure 1.7 présente les étapes d une communication basée sur un serveur
    d application et un serveur d objet permettant à un client Web d accéder à une base de
    données entreprise. Les numéros dans la figure indiquent les étapes suivantes :
      1. Requête du client
      2. Le serveur web passe la requête au serveur d application
      3. Le serveur d application traite la requête par des appels au serveur d objets
      4. Le serveur d objet traite les données avec les bases de données (en tout genre)
      5. Le serveur d objet retourne les objets au serveur d application
      6. Le serveur d application renvoie le résultat au serveur web
      7. Le serveur web fait suivre le résultat au client




                 Fig. 1.7. Communication serveur d application/ serveur d objet

    Sur le terrain, on rencontre beaucoup plus de développements sur des serveurs
d'application seuls que d'applications utilisant des serveurs d'objets. En fait, le marché des
serveurs d'application s'est fortement structuré depuis une ou deux années. De plusieurs
dizaines de technologies il y a peu, seules trois technologies émergent aujourd'hui : l'offre


Chapitre 1 : Introduction à la plateforme J2EE
                                                 10
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

Java, l'offre Microsoft et l'offre PHP. Hormis cas particulier, nous recommandons de ne pas
sortir de ces trois choix.
    Le marché offre trois familles de solutions de développement pour les serveurs
d'application :
     · Les solutions de scripting peuvent être simples et productives mais plutôt orientées
  vers les sites jetables, de type évènementiel.
     · Les solutions orientées objets techniques permettent de factoriser le code sans
  rentrer dans la complexité des objets métier. Il est important d'imposer des règles de
  développement précises à ses équipes et prestataires. Les développements
  JSP/Servlets/JavaBeans, PHP4/5, ASP/DCOM (et ASP.Net/DCOM) permettent de tels
  développements.
     · Les solutions orientées métier sont plus complexes et plus coûteuses à mettre en
    uvre. Elles nécessitent la mise en place de serveur d'objets. On retrouve principalement
  sur ce marché les serveurs d'EJB libres et propriétaires.

    Pour ces trois familles de solutions, des produits Open Source existent et sont de plus en
plus adoptés dans les administrations et entreprises (TomCat, JBoss, JonAS ).

12.    J2EE en pratique

    Chaque plateforme de développement a ses avantages et ses inconvénients. Le premier
avantage de la plateforme J2EE est qu elle a été adoptée par les plus grands groupes dans
le monde entier. Celle-ci est également stable et fiable, en effet, elle existe depuis 1998 et
évolue constamment.
    De plus, la plateforme s appuyant sur Java, permet d avoir des applications totalement
indépendantes de la plateforme système utilisée (aussi bien Windows que Linux ou Mac
OS). Son « concurrent » principal est la plateforme .Net (développé par Microsoft). Cette
plateforme, bien que plus facile à prendre en main, manque de maturité et même si elle
séduit certaines entreprises, elle est plutôt utilisée pour les projets beaucoup moins
importants, complexes que ceux utilisant J2EE. De plus, l interopérabilité étant de plus en
plus exploitée, J2EE et .Net peuvent communiquer ensemble de façon transparente.

    12.1. Composants standards contre framework

    Nous vous avons présenté le standard J2EE avec l ensemble de ses composants.
Cependant il est parfois lourd d utiliser un composant conçu pour de grande architecture
alors que notre application est restreinte.

L ensemble de la communauté OpenSource (principalement) s est occupé (et s occupe) de
lancer sur le marché des frameworks servant à simplifier l utilisation de telle ou telle
technologie. Souvent plus limité que le standard, les framework sont plus simple d utilisation
et plus performant dans certains cas.

        12.1.1. EJB vs Hibernate & Spring

      Les EJB peuvent parfois être la bête noire des développeurs J2EE. En effet, ils sont
pas évident à mettre en place et sont souvent lourds à l utilisation. Ils s intègrent le plus


Chapitre 1 : Introduction à la plateforme J2EE
                                                 11
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

souvent dans les projets de grandes envergures. Pour les projes plus courants et plus petits,
les framework Hibernate et Spring peuvent très largement remplacer ces EJB.

   Les EJB gèrent l accès et le traitement des données (persistantes ou non). Pour faire de
même avec l utilisation de framework externe, il faut en utiliser deux en général.

    · Hibernate : c est un framework qui permet de « mapper » une base de données
 relationnelle en objets (POJO : Plain Old Java Object). Il permet donc d abstraire
 totalement l accès à la base de données et propose donc un accès totalement orienté objet
 aux données.

     · Spring : c est un framework qui permet de « remplacer » la lourdeur des serveurs
 d application lourds. En effet, on parle de « conteneur léger ». Il prend en charge la création
 et la mise en relation d objets par l intermédiaire d un fichier de configuration décrivant
 l ensemble de ces relations. L un des avantages principal est qu il n impose pas d hériter
 ou d implémenter une quelconque interface ou classe contrairement aux EJB.

        L utilisation de ces deux frameworks dans une même application est recommandée,
en effet Hibernate vous permet d accéder aux données alors que Spring vous servira de
« fabrique automatisée ». De plus ces deux framework s intègrent très facilement et ne
nécessite qu un moteur de servlet. Contrairement aux EJB qui nécessitent un serveur
d application les gérants (beaucoup plus lourd).

        12.1.2. Servlet & JSP vs Struts

         Avec l arrivée des JSP après celle des Servlets, les développeurs ont pu commencer
à séparer de façon remarquable la couche présentation de la couche application / traitement.
Cependant la maintenance du code et la lourdeur d utilisation des servlets ont montré leurs
limites.
         Struts est un framework qui permet de construire des applications web. Il se base sur
la technologie Servlet / JSP en ajoutant la prise en charge du Modèle MVC2 (Modèle Vue
Contrôleur). Il fournit la charpente d une application web et évite aux développeurs d avoir à
gérer de façon fastidieuse la séparation Modèle, Vue et Contrôleur.

        L utilisation de ce framework est quasiment omniprésente dans le développement
d application web. Cependant Struts n est pas la seule technologie aidant au développement
de la couche application / présentation web. En effet, on peut également retrouver JSF (Java
Server Faces) ou Cocoon.

    12.2. Serveurs d application : utilisations et limites

    Les serveurs d application se sont développés depuis la création de J2EE. On peut
distinguer principalement des serveurs Open Source et Propriétaire. Chaque catégorie a ses
avantages et ses inconvénients. Nous allons décrire les serveurs les plus connus afin d avoir
une vision globale des solutions disponibles.

        12.2.1. Les solutions Open Source



Chapitre 1 : Introduction à la plateforme J2EE
                                                 12
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad

Tomcat : Apache

       Tomcat est un conteneur de servlet qui implémente la référence officielle pour les
Servlet Java et les JSP. Ce serveur est très répondu pour les applications web. Les
technologies implémentées sont JSP, Servlet, JDBC et JNDI.

Jonas : ObjectWeb

       Jonas est un serveur d application implémentant la référence officielle pour les EJB. Il
intègre un lien avec Tomcat afin d intégrer les fonctionnalités pour les applications web. Les
technologies implémentées sont JSP, Servlet, EJB, JCA, JDBC, JTA, JMS, JMX, JNDI,
JAAS et JavaMail.

JBoss : JBoss

       JBoss accumule les mêmes fonctionnalités que Jonas. Cependant son architecture
est assez différente et repose principalement sur un « BUS ». Des projets gravitent autour de
ce serveur tels que des plug-in pour Eclipse, des modules pour l AOP (Aspect Oriented
Programming), Hibernate
       JBoss est l un des serveurs d application les plus populaires dans l Open Source
(avec Jonas). Il est également de plus en plus utilisé en milieu professionnel.

        12.2.2. Les solutions propriétaire

       Les serveurs d application propriétaires se démarquent grâce à des outils facilitant le
développement et/ou la configuration des applications au sein du serveur d application. En
contrepartie, ils font payer les licences d utilisation de leur serveur. Voici un ensemble de
serveurs les plus utilisés :
    · WebSphere : IBM
    · WebLogic : BEA
    · WebObject : Apple
    · Oracle Application Server : Oracle

    12.3. L environnement de développement IDE (Integrated Development
          Environment)

   Pour développer des applications complexes, il faut impérativement un IDE (Integrated
Environnement Development). De même qu avec les serveurs d application, il existe les IDE
Open Source et ceux qui sont propriétaires. Voici une présentation de quelques IDE les plus
connus.

        12.3.1. Les solutions Open Source

Eclipse : IBM

        Un outil très bien créé car il est simple à utilisé, et il permet d apprendre java.
Cependant, beaucoup de plugins sont présents, et ils vous aideront à aller de plus en plus
loin au fur et à mesure de votre apprentissage.

Chapitre 1 : Introduction à la plateforme J2EE
                                                 13
Amin Zribi, Hichem Maatallah, Med Ramzi Haddad


Sun : NetBeans

        Un autre outil très bien réalisé pour apprendre. Comme c est un outil réalisé par Sun,
il intègre des outils comme Sun Application Server, de plus, il intègre des plugins de très
bonne qualité, comme le profiler, qui permet de monitorer vos applications.
        .

        12.3.2. Les solutions propriétaire

Rational Architect (avec WebSphere) : IBM

        Un outil taillé pour les professionnels car il permet des fonctionnalités très puissantes.
La génération de code et l utilisation d outil de modélisation sont très poussées. Cependant il
est perméable aux débutants, pour qui Eclipse est mieux adapté, et il reste très cher. Il est
d ailleur basé sur Eclipse.

XCode & WebObject : Apple

      Apple propose une solution très puissante, très basée sur l aspect WYSIWYG, tout
en ayant une programmation très propre et efficace. Cependant, cette solution ne fonctionne
que sous Mac.

JDev: Oracle

        Oracle JDeveloper est un EDI complet et gratuit permettant de modéliser et
développer des applications Java pour les plateformes J2SE, J2EE ou J2ME. Il est très bien
intégré aux bases de données Oracle, avec notamment un débuggeur PL/SQL.




Chapitre 1 : Introduction à la plateforme J2EE
                                                 14

				
DOCUMENT INFO
Shared By:
Stats:
views:111
posted:6/23/2012
language:French
pages:14
Description: Cours pour une formation J2EE