1 2 3 4 5 6 7 8 9 10 11 

Introduction J2EE - Applications d'entreprise

2.3.Implémentation de J2EE : les serveurs d’application

Il est avant tout indispensable de définir clairement ce qu'est un serveur d'application. En effet, une confusion règne dans les esprits quant à la notion de serveur d'application. Cette confusion a été introduite en grande partie par les éditeurs de serveurs d'application J2EE (Java2 Entreprise Edition) afin de s'approprier ce marché. La notion de serveur d'application a en effet été mélangée avec celle de serveur d'objet qui n'a absolument rien à voir.

2.3.1.Qu’est ce qu’un 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 à N clients d'utiliser une même application :

  • Gestion de la session utilisateur : N 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 par URL longs, variables cachées ou cookies.
  • 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 (même si dans la grande majorité des cas, on se contente d'une gestion des montées en charge au niveau réseau - boîtier de répartition, DNS round-robin, reverse proxy ...).
  • 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. On s'attend également à ce qu'il fournisse des mécanismes performants comme le pooling de connexion base de données.
  • ...

Le serveur d'application est donc indispensable si l'on souhaite éviter de re-développer l'ensemble de ces fonctionnalités (cas des GGI). Les moteurs JSP/Servlets, Microsoft ASP, Cold Fusion, PHP ... sont à ce titre des serveurs d'application (même si il sont intégrés au ServeurWeb PHP/ASP).

2.3.2.Qu’est ce qu’un 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. Cette méthode de programmation n'empêche en aucun cas de structurer ses développements.
  • 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. Un objet AssuréSocial possédera par exemple une méthode débit() et une méthode crédit () qui à chaque appel iront modifier les données dans une ERP (Entreprise Resource Planning), un système de CRM (Customer Relation Ship Managment) ou une base de données.


  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

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
  • Gestion des montées en charge : ici les mécanismes n'ont rien à voir avec ceux mis en oeuvre pour un serveur d'application. Il faut pouvoir assurer la transparence de localisation, l'instanciation, ... des objets métier ...

Bref, on le voit, on a à faire à des techniques très différentes. Les principaux serveurs d'objets à ce jour sont les serveurs EJB (Enterprise Java Beans), Corba. Ils ne sont nécessaires à ces développements que si l'on souhaite utiliser pleinement la logique d'objets métier.
Il est donc important de ne pas mélanger ces notions afin d'éviter de se faire « prendre » comme 80% des acheteurs de serveurs J2EE (incluant serveur d'application et serveur d'objets) qui n'utilisent que le moteur de JSP/Servlets dont les coûts sont beaucoup plus limités que l'ensemble J2EE (incluant le serveur d'objets EJB).
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 Java, l'offre Microsoft et l'offre PHP. Hormis cas particulier, nous recommandons de ne pas sortir de ces trois choix.
Les points clés d'une architecture sont les capacités transactionnelles du serveur d'application à délivrer des pages et à intégrer une montée en charge… L'ergonomie au sens large est un autre point clé. Les choix de design doivent prendre en compte les contraintes du Web (taille des images, ...).
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. Un site en ASP, PHP 3 ou ColdFusion peut être développé très rapidement ; par contre, sa maintenance est compliquée voire quasi-impossible.
  • 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 oeuvre. 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…).

1 2 3 4 5 6 7 8 9 10 11 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Essentiels de cours Java
JavaEJB 3 - Les Entreprise Java Bean version 3 (JavaBeans)
Cet essentiel est la suite de « Entreprise JavaBean 2.1 ». Cependant, nous allons étudier les nouvelles spécifications 3.0 qui simplifient énormément le développement par rapport aux EJB 2.6/20/06
JavaSWT - Créer des interfaces graphiques performantes
SWT (Standard Widget Toolkit) est une librairie graphique qui vous permet de réaliser des applications graphiques Java beaucoup plus avancées et surtout plus rapide à l’exécution.1/29/06
JavaStruts - Un framework MVC pour vos applications J2EE
Struts est un framework open-source qui vous permet de gagner du temps, mais qui permet aussi de voir des applications complexes comme une suite de composants de base : Vues, Actions, Modèles. Vous gagnez ainsi en évolutivité et en lisibilité du code.1/13/06
JavaHibernate - Persistance objet - relationnel
Cet essentiel explique comment utiliser Hibernate afin de gérer la persistance objet relationnel au sein de vos applications Java.12/14/05
JavaIntroduction J2EE - Applications d'entreprise
Cours d'introduction aux diverses technologies et outils que l'on peut rencontrer dans le monde du Java orienté entreprise J2EE12/14/05
JavaEJB 2 - Les Entreprise Java Bean (JavaBeans)
L'objectif avec EJB2 (Entreprise JavaBeans) est d'introduire les concepts de l’Ingénierie Logicielle Basée sur les Composants.12/14/05
JavaDesign Pattern - Améliorez l'architecture de vos programmes
Afin de répondre a des situation récurrentes en programmation, les "design pattern" apportent une solution type à beaucoup de contraintes liées à la programmation objet.12/14/05
JavaArchitecture J2EE - Comment organiser son application J2EE
Ce cours explique comment créer un code modulable, lisible et évolutif afin d'assurer la pérénité de son application.12/14/05
JavaLes web-services - Publication de services
Le développement tend vers les technologies du Web. Il est difficile de faire la distinction entre les différents logiciels qui sont de plus en plus intégrés au Web. Les Web Services rentrent dans l’optique de différencier bien précisément les couches.12/14/05
JavaAnt - L'automatisation des tâches du programmeur
Ecrire des scripts afin d'exécuter les tâches récurrentes10/31/05
JavaIntroduction au langage Java - Présentation & historique
Présentation des origines du langage, ainsi que se buts premiers8/11/05
JavaLa Syntaxe Java - Bases & nomenclatures
Bases de la syntaxe du langage Java8/11/05
JavaLes Classes - Concepts & héritage
Base du développement objet en Java grâce aux classes8/11/05
JavaLes Exceptions - Gestion d'erreurs
Gérer les erreurs liés à la programmation8/11/05

Articles
Eclipse Europa : le successeur de Callisto
Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont réticents aux « distributions » d'Eclipse se rassu12/21/07
JavaCruiseControl : l’outil d’intégration continue à avoir dans sa boite à outils
CruiseControl est un projet open-source offrant de multiples fonctionnalités pour l’intégration, que ce soit pour des développements Java ou .Net. Il est courant sur un projet d’être plusieurs développeurs avec des tâches de développement réparties. Dans7/2/07
JavaEJB3 - Des concepts à l'écriture du code - Editions DUNOD
Consulter le résumé du premier ouvrage du laboratoire Sun de SUPINFO : EJB3 - Des concepts à l'écriture du code. Guide du développeur, éditions DUNOD.5/27/07
JavaPassage de certification Java Web (SCWCD)
Passer une certification est toujours un moment important car cela permet de mieux faire reconnaître ses compétences face à un recruteur ou un employeur.5/12/07
JavaGoogle Web Toolkit
Google Web Toolkit est un framework java pour générer du javascript et des requêtes Ajax à partir d’un code java. Voilà comment il fonctionne.5/10/07
JavaJ2ME Vs SDE
Demain, les terminaux « légers » seront plus nombreux que les ordinateurs personnels, ce qui entraîne une bataille sur le choix d’une plateforme identique à tous ces terminaux… Aujourd’hui nous retrouvons le J2ME ainsi que le SDE qui s’offrent une rude b4/22/07

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée