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

avec Java Discussion :

Avoir votre avis sur ça


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut Avoir votre avis sur ça
    Bonjour,

    j'aimerais avoir votre avis et conseil sur l'opptimisation s'une application clients/serveur lourde... je m'explique :

    - j'ai dévloppé une application clients/serveur lourde avec une base de donnée postgesql. chaque lient doit de connecté avec le serveur en premier ensuite tout les données transmis par ce client sont stockée sur la BDD...bref. tout semble marche trés bien ...mais j'ai remarqué un certain temps quant la fenetre serveur activée au bout de 5 ou 6 jours j'ai un bloquage mes client ne peuvent plus se connecté ni acceder à la base de données je note que la fenetre serveur(lourde) est activée sur le serveur de la BDD..

    Ma question est:

    1- pourquoi à votre avis j'ai ce bloquage au bout de quelques jours d'activation de l'application ?

    2- pour éliminer et optimiser les ressource j'ai pensé à éliminer la connexion avec la fenetre serveur donc mes clients vont se connectés directement sur la base de données sans passé par le serveur de l'application. que diriez vous ....techniquement sa marche trés bien.. mais est-ce que en je vais optimiser mon application ? votre avis et remarqes sur ça sont les bien venus

    Merci d'avance pour votre participation

    A+

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    1- Tu oublie probablement de fermer tes sockets serveur en fin de connection ou de te déconnecter de la base de donnée après avoir fait ton travail. Du coup tu sature les connexion sur le serveur et il n'accepte plus rien.
    2- En général, d'un point de vue sécurité, c'est mauvais de donner un accès direct à la base de donnée aux clients. Les bases de données n'ont en général pas un niveau de permission suffisament fin que pour mettre des droits d'accès ligne par ligne dans une table.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    1- Tu oublie probablement de fermer tes sockets serveur en fin de connection ou de te déconnecter de la base de donnée après avoir fait ton travail. Du coup tu sature les connexion sur le serveur et il n'accepte plus rien.
    2- En général, d'un point de vue sécurité, c'est mauvais de donner un accès direct à la base de donnée aux clients. Les bases de données n'ont en général pas un niveau de permission suffisament fin que pour mettre des droits d'accès ligne par ligne dans une table.

    Bonjour,

    Merci pour la réponse oui vous avez raison je pense que blockage est du à la non fermeture des socket... par contre je ferme correctement mes connexion à la BDD.

    1- Mai je suis vraiment intéressé par éliminé la connexion avec mon serveur lourd et je fais connecté directement mes clients à la base de données car dans mon cas je ne vois pas vraiment la valeur ajoutée de la fenetre serveur..
    bref mon application tourne sur un réseau VPN trés bien sécurisé ...j'aimerai bien avoir votre avis sur ça... sinon comment remedier à une bonne fermeture des sockets clients pour que mon serveur lourd ne sois pas saturé rapidement ...là je suis un peu bloqué...


    Merci pour la réponse.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zpico Voir le message
    je ne vois pas vraiment la valeur ajoutée de la fenetre serveur..
    moi non plus. tu peux très bien faire un serveur sans avoir besoin d'ouvrir une fenêtre

    Citation Envoyé par zpico Voir le message
    bref mon application tourne sur un réseau VPN trés bien sécurisé
    Ca ne veux pas dire pour autant que ça reste une bonne idée de laisser n'importe qui sur ce réseau capable de faire un

    comme il veux

    Citation Envoyé par zpico Voir le message
    comment remedier à une bonne fermeture des sockets clients pour que mon serveur lourd ne sois pas saturé rapidement
    Ca, il vaudrait déjà voir comment tu fais le travail. Pour fermer la socket sur le serveur, il suffit d'appeler close() dessus....

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Ca ne veux pas dire pour autant que ça reste une bonne idée de laisser n'importe qui sur ce réseau capable de faire un

    comme il veux
    .
    Bonjour,

    Mais les clients sont pas autorisés à faire ce genre d'opération seul l'administrateur de la base de donnée est autorisé de ce coté la je suis rassuré.. mais bon moi ce que je veux savoir dans mon cas quel est la bonne démarche à suivre;

    Merci encore pour la réponse.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Eh bien ils restent capables d'ouvrir des connexions sans les fermer et de commencer des transactions sans les terminer, ce qui est rude pour la base de données et nécessite une configuration aux petits oignons d'un niveau expert très cher.
    Par ailleurs même si les droits sont définis, et a priori bien définis maintenant, à l'heure où l'on parle, compter dessus reste un vecteur d'attaque. Alors qu'il suffirait de ne pas compter dessus, et ainsi ne pas introduire ce vecteur d'attaque. (Ou "d'instabilité" si tu préfères. Dans le monde réel c'est la même chose.)

    La bonne démarche à suivre, c'est que les clients passent par un serveur qui fait tampon, et n'accèdent pas directement à la base de données. Une base de données n'est pas conçue pour ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zpico Voir le message
    Bonjour,

    Mais les clients sont pas autorisés à faire ce genre d'opération
    Elle fait quoi ton application? Elle ne peux que lire la base de données? Parce que le delete, en général, c'est comme le select et le update, ça fait partie des droits de bases attribués à un utilisateur DB...

    Bref, si tu veux attaquer directement la base de donnée:

    Chaque utilisateur doit avoir un compte DB (alors qu'avec un serveur central, un seul compte existe, utilisé par le serveur central et inconnu des utilisateurs), tu dois soigner ta config base de données pour la sécuriser, ce qui n'est pas un mince affaire, je te le garantis.

    Comme dit thelvin, tu as tout le problème transactionnel: si je fait des insert à gogo, et que je ne fait pas de commit mais que "j'attends", je peux en arriver à bloquer tous les autres utilisateurs.


    Dans ton cas, on n'a pas la moindre idée de ton infrastructure réseau, du nombre de postes concernés, de ce que fait l'application, du type de serveur de base de données, de la charge attendues, donc on ne peux te donner que des informations d'ordre général: on utilise un serveur tampon et, pour rajouter, souvent mais pas toujours, on se contente d'un serveur web ou ejb comme tampon, ca limite le temps de développment. Y a pas mal d'api qui fournissent déjà un intégration clé en main pour faire des web services, par exemple.

Discussions similaires

  1. Donnez votre avis sur les articles de Developpez.com
    Par Geronimo dans le forum C++Builder
    Réponses: 13
    Dernier message: 14/01/2007, 22h00
  2. Réponses: 3
    Dernier message: 25/08/2006, 18h06
  3. Donnez votre avis sur les articles de Developpez
    Par Anomaly dans le forum Contribuez
    Réponses: 37
    Dernier message: 29/05/2006, 21h48

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