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 :

Appli JAVA sur plusieurs PC


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Par défaut Appli JAVA sur plusieurs PC
    Bonjour,

    Tout d'abord je m'excuse si je ne poste pas au bon endroit, mais je ne savais pas trop quelle partie pouvait être relié à mopn problème.

    Je développe actuellement une application en JAVA pour une entreprise. Je l'ai commencé lors d'un stage pour valider mes cours. Lors du passage devant le jury, celui-ci à soulevé quelques problèmes auxquels j'avais pensé mais pas forcément dans le détails.

    Le premier est tout simplement est-ce que je peux utiliser mon appli si ma BDD se trouve sur un des PC de l'entreprise avec un autre pc de celle-ci. Bien sur ceux-ci sont relié en reseau. Si dans mes paramètres JDBC je mets l'adresse ou se trouve ma BDD ça devrait marcher? Mais quel adresse, il est la mon souci.

    Pour le deuxième, si 2 personnes de l'entreprise interviennent sur un champ d'une de mes tables en même temps, comment faire?

    C'est vrai que ce sont 2 problèmes auxquels j'avais pensé, mais je pensais que ça serait simple à regler, mais je me demande aujourd'hui si je n'aurais pas du voir ça avant de développer l'appli. Erreur de débutant. J'espère que cela ne m'empechera pas de d'aller au bout de mon développement

    Auriez vous des conseils et des idées pour regler ces problemes?



    Par avance merci

  2. #2
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par roukgreg Voir le message
    Le premier est tout simplement est-ce que je peux utiliser mon appli si ma BDD se trouve sur un des PC de l'entreprise avec un autre pc de celle-ci. Bien sur ceux-ci sont relié en reseau. Si dans mes paramètres JDBC je mets l'adresse ou se trouve ma BDD ça devrait marcher? Mais quel adresse, il est la mon souci.
    Ca dépend de la base de données utilisée. Certaines ne permettent qu'une utilisation en local mais la plupart peuvent etre utilisées en mode serveur (ce qui est le mode qui t'interesse) et ne necessitent qu'un changement de la chaine de connexion pour passer d'un mode à l'autre. Dans ce cas, il faut installer le serveur en question de la base de données et l'adresse IP qu'il faudra utiliser pour toutes l'application quel que soit le PC sur lequel est est lancée est celle du serveur (en utilisant le bon port). Tu utilises quelle base de données?

    Citation Envoyé par roukgreg Voir le message
    Pour le deuxième, si 2 personnes de l'entreprise interviennent sur un champ d'une de mes tables en même temps, comment faire?
    Ca, c'est à la base de données de gérer l'intégrité des données (comprendre par la que si 2 personnes modifient un meme champ, la base de données ne doit pas etre corrompue).
    En revanche, ce qu'il est préférable de gérer, c'est la non modification d'une donnée entre la lecture et l'ecriture. C'est à dire que si je charge la page d'un salarié et que je la modifie, il est bien que l'application vérifie que pendant que je saisissais, un autre utilisateur n'a pas modifié la meme fiche. Et si c'est le cas, c'est bien d'etre averti.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Par défaut
    Je te remercie pour tes réponses.

    Pour ce qui est de ma BDD, mon prof m'avait suggéré Oracle 10g Express, la version gratuite d'oracle. Peut être aurais-je du utiliser MySQL dans ce cas là.

    Pour le second problème, il me suffirait de charger la données, et avant l'enregistrement vérifier si celle-ci est toujours la même avant de permettre l'enregistrement, sinon prévenir l'utilisateur?

    Encore merci

  4. #4
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par roukgreg Voir le message
    Pour ce qui est de ma BDD, mon prof m'avait suggéré Oracle 10g Express, la version gratuite d'oracle. Peut être aurais-je du utiliser MySQL dans ce cas là.
    Je n'ai jamais utilisé Oracle mais j'imagine que meme en version express, ca doit etre possible. Après un petit coup de google, j'ai vu qu'on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Connection conn = DriverManager.getConnection
         ("jdbc:oracle:thin:@//localhost:1521/orcl", "scott", "tiger");
    donc j'imagine qu'en remplacant localhost par l'IP du PC qui contient la base, ca doit marcher tout seul...
    Tu peux poster la chaine de connection utilisée (celle qui se trouve dans DriverManager.getConnection) ?

    Citation Envoyé par roukgreg Voir le message
    Pour le second problème, il me suffirait de charger la données, et avant l'enregistrement vérifier si celle-ci est toujours la même avant de permettre l'enregistrement, sinon prévenir l'utilisateur?
    Oui. Et si tu es feignant, tu peux te contenter d'ajouter une colonne timestamp contenant l'heure de derniere modification dans ta table. Si ce timestamp a changé, c'est qu'il y a eu une modif (ca permet d'avoir une méthode générique simple pour vérifier les changements).

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pour la concurrence, il faut te renseigner sur l'isolation des transaction. Si, sur la machine A, dans la même transaction, tu lit la fiche et tu la modifie, alors, avec un isolation de type Serializable, tu a la garantie que si le commit réussi, tu es le suel à avoir modifié la fiche. En effet, en isolation de type Serializable, tu as la garantie que ce scenario est impossible sur une ligne:

    A: begin
    A: read
    B: begin
    B: read
    B: write
    B: commit
    A: write
    A: commit

    Le B va se dérouler sans soucis, mais le A:commit va rater avec une erreur de transaction. Donc pas de corruption possible à ce niveau là.

    Bien sur, il faut bien délimiter tes transaction et ne jamais utiliser de données hors transaction ou, pire, les faire passer d'une transaction à une autre.


    Par contre, il y a quand même in gros soucis avec ton architecture. Ce sont des clients lourds qui se connectent directement à la DB. autrement dit, les utilisateur on un accès direct à la DB et pourraient lancer un "delete from TATABLE" pour tout supprimer.

Discussions similaires

  1. Exécuter un programme java sur plusieurs machine
    Par sinfos dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2008, 11h14
  2. Réponses: 5
    Dernier message: 21/11/2007, 11h06
  3. exécution appli java sur un pda
    Par air75 dans le forum Développement Mobile en Java
    Réponses: 10
    Dernier message: 15/11/2007, 13h44
  4. Executer un code en java sur plusieurs fichiers xml en même temps
    Par med_ellouze dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/08/2007, 16h33
  5. Parallélisation de code Java sur plusieurs machines
    Par Jester dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/12/2006, 12h01

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