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

Java Discussion :

Question Générale Thread + accès BDD PostGres pour Serveur Multiclients


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut Question Générale Thread + accès BDD PostGres pour Serveur Multiclients
    Bonjour,

    Je suis actuellement en train de développer un serveur en UDP qui doit interagir avec un webservice et une BDD type PostGres.
    Ce serveur UDP peut avoir simultanément une centaine de client ainsi l'idée est de faire un serveur Multi-client avec l'aide de thread.
    Or je n'ai encore jamais développé ce genre d'application et je me renseigne un peu sur le fonctionnement et la faisabilité de ma méthode ^^.

    Le serveur reçoit des données clients, les décodes, les traites et fait appel à la BDD pour différentes raisons (écriture, utilisation de la surcouche SIG de postgres pour des calculs de positions,) et acquitte le message au client.

    Ainsi à chaque réception d'un message client , le serveur doit effectuer ce type de traitment, je pense donc créer des thread qui vont chacun faire le traitement indiqué or ce que j'ai peur c'est qu'il y ai des problèmes d'accès concurrents.

    Peut-on lancer lancer plusieurs threads qui "communique"/"utilise" la BDD en même temps?
    J'ai vu plusieurs fois la notions de "sync" sur les méthodes de classes implémentant Runnable, dois-je m'en soucier dans mon cas pour une telle type d'application?

    Je suis un peu perdu et j'aimerai comprendre avant de ma lancer à coder des choses qui n'ont pas de sens.

    Merci pour vos réponses et bonne journée.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 085
    Points : 8 002
    Points
    8 002
    Par défaut
    Quoiqu'il arrive, ton serveur SQL gere les accents concurentiels en théorie... donc oui tu px y'aller avec autant de client que tu veux.

    La seule chose que tu dois faire attention, c'est si un personne modifie une donnée qui est modifié par une autre en même temps. La 2 eme personne qui va commité ses données, devra etre avertie qu'il y'a eu changements eventuels... mais alors la c'est au niveau de ton application qu'il faudra le gerer.

    Quand au sync, ils ne sont la que pour proteger un meme programme d'avoir 2 thread qui accedent a un "methode/variable"... ce qui n'est pas la même chose

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Merci de m'avoir apporté une réponse aussi rapidement.

    Globalement les processus client créés par le serveur ne vont faire qu'écrire dans une table de la base de données et devront exécuter des requêtes utilisant des fonctions de ce type la (http://wiki.postgresql.org/images/a/...FR-PostGIS.pdf --diapo 31).

    Donc d'après ce que vous m'avez dit, je n'ai pas besoin de me soucier des accès concurrents vu que le BDD la gère déjà.

    Concernant le sync c'est ce que je viens de voir d'après les tutos et je pense que ça ne me servira pas ce coup-ci car chacun des processus est indépendant (et donc ne communique pas entre eux ou à la classe mère).

Discussions similaires

  1. [Roo] Accès BdD "alternatif" pour admin
    Par Kaoutchou dans le forum Spring
    Réponses: 0
    Dernier message: 06/04/2013, 13h03
  2. Questions générales sur SDL / OpenGL / Qt pour la création de Jeux vidéo
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 21
    Dernier message: 23/10/2011, 11h24
  3. Socket pour Serveur/Multiclient
    Par NoussaL dans le forum VB.NET
    Réponses: 5
    Dernier message: 28/08/2008, 23h53
  4. Pb d'accès à distance sur Postgre pour windows
    Par Guitch dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 28/09/2004, 20h13
  5. Réponses: 4
    Dernier message: 11/09/2004, 17h38

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