IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Relation entre Servlet et Javascript


Sujet :

Servlets/JSP Java

  1. #21
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Un accès "local" à un EJB est considéré à partir du même EAR.
    Par exemple d'un module WAR à un module EJB-JAR tu peux faire du local, tant qu'ils sont dans le même EAR.

    Quand tu as du remote, ça veut que ton module WAR n'est pas dans le même EAR ... ça peut avoir ses raisons, mais c'est peut-être un défaut de conception. Ou alors quand tu as un client riche distant, genre appli SWING, qui invoque les EJB de ton serveur sur RMI.

  2. #22
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Je crois avoir compris : les accès en local ne peuvent s'effectuer que lorsque le client est sur la même JVM que les EJB, donc en gros sur le même ordi non ?

  3. #23
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    C'est surtout "sur le même EAR" ... et par corrélation, la même JVM.

  4. #24
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Tu as été plus rapide que moi

    D'accord je comprends mieux... Mais alors comment savoir si les modules WAR et EJB sont dans le même EAR (=fichier/archive si j'ai bien compris) ???

    (désolé si mes question peuvent paraitre débutantes.. mais en effet je débute )

  5. #25
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Un EAR est un ZIP qui contient le WAR et l'EJB-JAR qui sont eux aussi des zip.
    L'EAR contient un descripteur de déploitement (fichier XML) qui référence tous les modules de l'EAR. Il peut y avoir 40 modules WAR et 20 modules EJB-JAR, par exemple ... pour le FUN

  6. #26
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par VinceSSJ Voir le message
    Tu as été plus rapide que moi
    désolé si mes question peuvent paraitre débutantes.. mais en effet je débute
    Il n'y a jamais de question bête !

  7. #27
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Super j'ai bien cerné ce qu'est un EAR, je soupçonnais même pas son existence jusqu'à présent
    Merci pour ton aide !

    Je suis sous Netbeans et je vois bien mes WAR et EJB côte à côte avec les interfaces entre eux. Mais maintenant comment voir si ces modules sont dans un seul et même EAR ou si WAR et EJB sont dans 2 EAR différents ?

  8. #28
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    tu peux faire une capture d'écran de ton NetBeans.
    Peut-être n'as-tu simplement pas ouvert l'EAR mais simplement les modules qui le compose.

    Regarde à quoi ça devrait ressembler :
    http://netbeans.org/kb/docs/javaee/j...ntapp-ejb.html

  9. #29
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Merci pour le lien.
    En réalité, pour l'instant je travaille directement sur le serveur sur lequel l'application est déployée et tourne 24/24 puisqu'elle est en production. Je ne peux donc pas faire ce que je veux.
    Tout ce que je peux dire c'est que Netbeans est ouvert sur l'application qui est en train de tourner.

    Bref, je vais regarder la page que tu m'as donnée et je retiens au courant

  10. #30
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    le cas est typique, on fait une analyse en prévoyant très large, la couche métier pourrait être utilisée par une autre application, voir invoquée à distance par un client lourd (swing par exemple).
    dans ton cas, si les ejb ne servent qu'à une application web, l'usage des interfaces Local serait un plus (passage par référence plutôt que serialisation/deserialisation...
    en fait, avec certains serveurs (jboss en tout cas), on peut paramétrer l'application et faire un passage par référence même sur du Remote, regarde pass-by-reference si tu veux faire un test de performance.
    ceci dit, avec les ejb, on a vite fait de perdre en performance par des aller/retour entre le conteneur web et le conteneur ejb, d'où l'intérêt du pattern Facade.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #31
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    le cas est typique, on fait une analyse en prévoyant très large, la couche métier pourrait être utilisée par une autre application, voir invoquée à distance par un client lourd (swing par exemple).
    dans ton cas, si les ejb ne servent qu'à une application web, l'usage des interfaces Local serait un plus (passage par référence plutôt que serialisation/deserialisation...
    Effectivement, si je cite la doc techniques de l'appli :
    "Les servlets sont interrogés directement par les clients. Tout le code métier intéressant se trouve au niveau des EJB. Ce la permet d'envisager une réutilisation ultérieure dans d'autres applications, cela permet aussi de permettre la séparation de l'application en 2 (web et EJB). De plus, c'est le serveur d'application qui gère les instances des EJB, leur accès et leur existence.
    Les EJB implémentés sont des EJB sans état
    [...]
    Pour faire le lien entre l'application Web et les EJB, une bibliothèque contenant les classes communes a été implémentée; Elle contient les interfaces permettant de retrouver les EJB et aussi les objets Java [...]"


    Par contre, je ne vois aucune sérialisation/désérialisation dans le code. Les servlets accèdent directement via les interfaces. Pourtant les interfaces sont Remote ?! Comment expliquer ça ? Y'a pas contradiction ?

    Bref, effectivement ici les EJB ne servent qu'à lappli Web..

    en fait, avec certains serveurs (jboss en tout cas), on peut paramétrer l'application et faire un passage par référence même sur du Remote, regarde pass-by-reference si tu veux faire un test de performance.
    ceci dit, avec les ejb, on a vite fait de perdre en performance par des aller/retour entre le conteneur web et le conteneur ejb, d'où l'intérêt du pattern Facade.
    GlassFish permet ce passage par référence aussi ?
    Oui la lenteur de l'application pourrait peut être venir de là.
    Mais elle vient surement des requêtes de la BD aussi.

  12. #32
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Le mécanisme de serialization est transparent, tu ne le verras pas.

    Pour les requêtes base de données, c'est du jpa ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #33
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    AHHHHH Mais si en fait !!! J'avais pas fait attention, mais dans la bibliothèque interfaces, il y a tous les objets utilisés par les Servlets et par les EJB (Connexion, Tâches, etc..), et bien tous ces objets sont sérialisables !!!! Ce qui confirme qu'il puisse y avoir un manque de performance à ce niveau


    Sinon, non pas de JPA utilisé. Tous les accès aux bases sont fait en JDBC.


    Même si je n'en suis pas encore là : est-il simple de transformer un accès Remote en accès Local niveau EJB et Servlets ? Avec un accès en Local j'imagine que toute les bibliothèque des interfaces devient inutile ?

  14. #34
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Oui très facile de basculer sur du Local

  15. #35
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Il y aurait un tuto pour voir comment faire ?

  16. #36
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Je pousse mon raisonnement en disant : en réalité je en vois pas pourquoi la personne a développé l'appli avec des EJB.. Selon elle c'était pour envisager une réutilisation future de l'appli par un client lourd (type SWING). Seulement ça n'a jamais été le cas et l'application n'a jamais été touchée depuis 2008 : tout le monde y accède par son navigateur via l'intranet de la société.
    Sachant que l'appli accède à d'autres BD situées sur d'autres serveurs pour aller chercher ses données, est ce que vous croyez que ça nécessite obligatoirement une utilisation des EJB ?

    Conclusion, dans ce cas qu'est ce que je pourrais prendre à la place des EJB ?
    Dans tous les cas remplacer les accès distant au locaux sera déjà un bon début il me semble.


    PS: j'aimerais aussi modifier le titre de mon topic parce que là il est plus du tout explicite lol mais comment faire ?Je n'arrive pas à éditer mon premier message

  17. #37
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Un EJB n'a pas pour seule propriété d'être accessible à distance.
    C'est aussi transactionnel ;
    C'est adapté à de fortes montées en charges sans (trop) de risque d'avoir un OutOfMemory ...

    Bref, les vertues des EJB sont largement méconnues.
    Tu devrais chercher un peu documentation à ce sujet.

  18. #38
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Tiens par exemple :
    - http://onjava.com/pub/a/onjava/2005/...ring-ejb3.html
    - http://www.roseindia.net/ejb/FeaturesOfEJB3.0.shtml
    - http://www.theserverside.com/news/13...ures-in-EJB-31

    Personnellement j'ai longtemps cru (par méconnaissance) aussi que les EJB étaient des usines à Gaz (à l'époque des EJB 2), mais maintenant que j'y ai goûté (depuis les EJB 3.x) je ne peux plus m'en passer.

  19. #39
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Réécrire tout la couche d'accès au données est risqué, à ta place, j'essayerais plutôt d'optimiser l'existant.
    Fait une étude pour voir où se situe les temps de réponse les plus lents et corrige le code ou l'architecture à cet endroit.
    Si les requêtes à la base de données sont lentes, regarde si la création d'index pourrait accélérer le traitement.
    Bref, il y a pas mal de chose qu'on peut faire...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #40
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 139
    Par défaut
    Merci pour ces précisions fxrobin, je vais regarder ça.

    OButterlin, c'est exactement ce que je pensais !! Pour les index, c'est la première chose que j'ai demandé à mon responsable, et en effet aucun index n'a été créé. Et vu la longueur de certaines requêtes, et le nombre de colonnes/lignes dans chaque tables, si le SGBD parcourt les lignes 1 à 1 c'est sûr que ça doit coûter du temps !
    Bref, donc j'abonne la réécriture de la couche métier alors. Déjà que j'ai encore du mal à comprendre certaines relations, alors si je m'amuse(ou pas) à tout récrire.. lol

    Par contre, juste le fait de passer d'accès distants à locaux, est-ce lent à faire ? Et surtout est ce que le gain de performance pourrait vraiment être significatif ? Je n'ai aucun moyen de voir ça..

    En fait, pour le moment j'en ai déduit ça :
    Les lenteurs sont situées au niveau de l'interface, soit quand on charge de nouvelles ressources (d'un technicien par exemple), soit quand on charge un récapitulatif, ou bien (et surtout) quand on glisse une tâche (ligne d'un tableau) dans l'emploi du temps (grille pré construite) : toutes ces manip' prennent plusieurs secondes, jusqu'à ~10secondes chacune..

    Donc les lenteurs sont logées soit : au framework (EXT JS 2.1) trop lourd, soit au niveau des communication Servlet/EJB, soit au niveau des requêtes.. Si ça se trouve c'est même les 3 !
    Ce que je sais aussi c'est que mon responsable avait supprimé il y a quelques semaines toutes les anciennes données qui ne servaient plus à rien dans les tables, et à partir de là ils avaient déjà eu de meilleures performances.

    Pour l'instant, j'essaie d'identifier ce que toutes ces fonctionnalités (construction de l'emploi du temps, récapitulatif, etc..) ont en commun afin de voir ce qui ralentit le bazar

Discussions similaires

  1. [MySQL] relation entre javascript et php
    Par narama87 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2009, 03h12
  2. Relation entre EJB, couche métiers, JSP et servlet
    Par infinity21 dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 06/03/2007, 00h50
  3. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 15h46
  4. Relations entre les Paquetages
    Par bran_noz dans le forum UML
    Réponses: 4
    Dernier message: 25/06/2004, 15h05
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo