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

Services Web Java Discussion :

Services Web ou pas ?


Sujet :

Services Web Java

  1. #1
    Invité
    Invité(e)
    Par défaut Services Web ou pas ?
    Bonjour à tous !

    Je suis en train de finaliser une architecture n-tiers pour la réécriture de notre application de gestion en Java, actuellement sous Delphi.
    Voilà ce que je veux faire :
    - côté client : Swing pour ne gérer que l'affichage
    - côté serveur : Spring, Hibernate, le tout respectant le modèle MVC.
    L'application sera accessible en local ou à distance via Internet (réseau VPN entre nos différents sites), et pourquoi pas un jour pour nos partenaires via un site Web.

    Mon application est constituée de plusieurs parties : gestion de nos clients, gestion de nos différents produits, gestion de notre tarification, comptabilité, etc... L'idée que j'ai en tête, ce serait que lorsque des modifications sont apportées à la comptabilité, je n'ai qu'à mettre à jour le ou les programmes de cette dernière sans affecter les autres parties du programme et obliger les utilisateurs à reconnecter. Et là je me demande ce qu'il faut utiliser : servlet ou services web ? L'idée est donc de faire pour chaque partie de mon application une servlet ou un service web ...

    Mais comment gérer les connexions des utilisateurs à l'application ? Je m'explique : l'utilisateur saisit ses login et mot de passe, et l'application client envoie le tout à une servlet ou un service web pour valider la connexion. Si l'utilisateur veut gérer ses clients, il va demander la liste de ces derniers. Faut-il à chaque appel envoyer les login et mot de passe au serveur pour vérifier que l'utilisateur est bien connectée ? Un serveur d'application doit savoir gérer ca, je pense ? Et avec des servlets ? Ou alors, faut-il une servlet qui gère ces connexions et à laquelle feront appel les autres servlets (ou service web) pour vérifier que l'utilisateur est bien connecté et à le droit d'utiliser le programme concerné ?

    Je pense que mes questions viennent d'une méconnaissance des serveurs d'application et des services web, et c'est pour çà que je viens vous voir !

    Par avance, je vous remercie.

  2. #2
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    En fait à la première connexion le serveur génére un identifiant de session permettant d'identifier chaque client.
    Cette session est maintenue au niveau du serveur pendant un certain laps de temps (paramétrable).
    A chaque requête du serveur, cette session est encodé dans l'URL ou envoyé via un cookie, pour que le serveur puisse retrouver le contexte utilisateur.

    J'espere que cela t'aidera !
    Si tu as des questions , n'hesite pas!

    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  3. #3
    Invité
    Invité(e)
    Par défaut
    Je vous tiens au courant de mes réflexions

    Pour la communication entre mon application Swing et mon serveur Tomcat, je veux utiliser Spring Remoting (HttpInvoker). Au niveau du serveur Tomcat, deux possibilités à mes yeux :

    1) Une application web unique, avec la servlet DispatcherServlet (de Spring) qui
    reçoit toutes les demandes des clients et délègue leur traitement à d'autres classes (remarque issue d'un tutorial de Serge Tahé)
    . Dans cette solution, le fichier web.xml est défini comme suit : une servlet par "module" (gestion des clients, gestion des tarifs, comptabilité, ...) avec un mapping pour chaque servlet. Du coup, je peux gérer mes sessions tranquillement dans le context de l'application, contexte accessible à toutes les servlets. Or, est-il possible, dans un cas comme çà, de ne recharger qu'une seule servlet, parmi toutes les servlets de l'application, sans recharger toute l'application sous Tomcat ?

    2) Une application web par module. Par exemple, je crée une application qui gère la connexion, et quand l'utilisateur fait appel à une autre application (ou module), ce module demande à l'application Connexions si la connexion de l'utilisateur est valide. J'ai lu dans la documentation de Java les servlets pouvaient partager de l'information en utilisant la classe ServletContext par la propriété Attribute (un exemple de partage des contexts est expliqué dans la FAQ J2EE). Donc, en créant ma propre servlet DispatcherServlet (dérivée de cette dernière), je pourrais interroger ma servlet Connexion en utilisant son ServletContext.

    Que pensez-vous de ces deux approches ? Par rapport à la proposition 1, est-il possible de ne recharger qu'une servlet parmi toutes les servlets d'une application (suite à une modification de la servlet) ?

    Par avance, je vous remercie de votre patience pour avoir lu ma prose
    Dernière modification par Invité ; 21/06/2006 à 19h36.

  4. #4
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    La solution 1 ressemble à un modèle MVC 1 (plusieurs controleur).
    Tu pourrais utiliser un framework comme struts (modèle MVC2) qui utilise un controleur unique. La description des l'accès à tes différents modules pourrait être décalratif dans le fichier stuts-config.xml.
    Pour info : struts-config.xml permet de faire le lien entre des URLs et des actions (au sens struts).
    Par exemple l'url gestionPaie.do pourrait pointer vers une action gestionPaieAction.

    La solution 2 ne me semble pas une bonne idée, car ce qui serait une application Connexion , pourrait très bien être un module de ton application.

    En ce qui concerne la question subsidiaire sur le rechargement des servlets. Si je ne dis pas de bétises c'est toute l'application web qui est rechargé. C'est un paramètre au niveau du fichier server.xml qu'il faut paramétrer.


    J'espere que cela t'aidera, si tu as des questions n'hesite pas!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  5. #5
    Invité
    Invité(e)
    Par défaut
    Pour la solution 2, tu as raison : l'application Connexion peut être vu comme un module de l'application. D'ailleurs, chaque application tournant sous mon serveur Tomcat, serait un module de mon application. Et ce qui est intéressant dans ce cas, c'est que je peux arrêter un module de l'application (= une application du serveur Tomcat), la mettre à jour, la redémarrer, et du coup, elle est à disposition des utilisateurs sans que ceux-ci n'aient à se reconnecter... Plus je me lis, plus je me trouve puissant, plus je me plais... (J'ai laissé ma modestie au vestiaire...)

    Hier, j'ai trouvé qu'on pouvait faire dialoguer deux applications sous Tomcat en appelant le ServletContext des applications, et en définissant un attribut à ce niveau-là pour échanger des données (cf. FAQ J2EE du site).

    Mon souci dans cette configuration, c'est que si jamais quelqu'un tente d'accéder à mon module compta sans passer par le module connexion, que se passe-t-il ? C'est pour çà que je compte dériver la servlet DispatcherServlet (de Spring) pour pouvoir gérer ce cas en passant dans la requête l'identifiant qu'aura retourné le module connexion à l'application Swing... J'espère être clair dans mes explications...

    Par contre, tu m'interpelles ! A te lire, j'ai l'impression que l'on peut développer des applications clientes Swing qui interrogent des servlets développées avec Struts ? Il me semblait que ce framework ne fonctionnait que pour des applications web "classiques" (html) ? Je ne connais Struts que de nom...

    Encore merci de ton aide et de tes réflexions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Eclipse WTP ne veut pas créer de services Web
    Par DJ Caësar 9114 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 30/10/2007, 09h32
  2. Réponses: 0
    Dernier message: 07/10/2007, 10h24
  3. service web 1 ere pas
    Par abeel dans le forum Services Web
    Réponses: 1
    Dernier message: 17/09/2007, 09h53
  4. Réponses: 1
    Dernier message: 12/02/2007, 15h22
  5. je n'arrive pas à interroger mon service web
    Par karimspace dans le forum Services Web
    Réponses: 2
    Dernier message: 09/02/2007, 19h33

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