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

Langages de programmation Discussion :

Gestion des accès concurrents - comment faire ?


Sujet :

Langages de programmation

  1. #1
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut Gestion des accès concurrents - comment faire ?
    Bonjour,

    Je développe actuellement un projet multi-utilisateurs. L'application sera donc utilisée par plusieurs utilisateurs en même temps. Or, je dois protéger les fichiers de configuration (modifiable par les administrateurs à partir de l'application) des accès concurrents.

    Ce sujet est nouveau pour moi, et je n'ai trouvé aucune documentation technique à ce sujet. Les fichiers sont des simples fichiers XML.

    Mon idée est la suivante :

    1. Lorsqu'un utilisateur veut modifier la configuration, l'application copie le fichier original.
    2. Lorsque l'administrateur applique les modifications, l'application récupère les données actuelles du fichier de configuration
    3. Si la copie du fichier créée à l'étape 1 est différente du fichier actuel, on avertit l'administrateur qu'il travail sur une version non à jour, et on l'invite à consulter les modifications
    4. On applique les modifications


    Cependant, ces idées ne reposent sur aucune expérience, et peuvent donc paraitre complètement absurdes pour un professionnel.

    Qu'en pensez-vous ? Comment feriez-vous pour gérer les accès concurrents dans votre application ?

    Merci

  2. #2
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Le plus simple est de s'inspirer de ce qui se fait dans les systèmes de versionning style cvs ou subversion.

    En gros tout document xml possède une version et chaque modification entraîne son incrément. si la copie modifiée entre temps a évoluée (cas concurrentiel), une fusion (merge) est faite si les parties modifiées respectivement sont différentes. Sinon il y a conflit à résoudre manuellement.

    Un autre principe est celui de la pose d'un verrou. Quand je prend une version en vue d'une modification je pose un verrou dessus. Le document reste consultable mais non modifiable. Ceci permet de sérialiser les accès et d'interdire la concomitance. Bien que totalement sûr, ce principe est très (trop) rigide.

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    S'agit-il d'un fichier de configuration qui est véritablement régulièrement amené à changer?
    Car si ce n'est pas le cas, il est tout à fait acceptable de laisser la dernière modification faire foi dans la majorité des cas.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Janitrix Voir le message
    1. Lorsqu'un utilisateur veut modifier la configuration, l'application copie le fichier original.
    2. Lorsque l'administrateur applique les modifications, l'application récupère les données actuelles du fichier de configuration
    3. Si la copie du fichier créée à l'étape 1 est différente du fichier actuel, on avertit l'administrateur qu'il travail sur une version non à jour, et on l'invite à consulter les modifications
    4. On applique les modifications
    euh..

    j'aurais tendance à faire l'inverse, aux points 2 et 3...

    1. L'utilisateur sauvegarde SES modifs.
    2. L'administrateur change des choses
    3. L'utilisateur est AVERTI qu'il y a une différence.
    4. Il a le choix de mettre à jour (nouvelle structure, mais avec re-copie de ses paramètres quand c'est possible) ou de poursuivre avec les anciens, sachant qu'il n'est plus à jour.
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/04/2008, 09h55
  2. Gestion des accès concurrents sous DELPHI/PARADOX.
    Par tarbala dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/02/2008, 19h13
  3. Gestion des accès concurrent
    Par nicoaix dans le forum Access
    Réponses: 3
    Dernier message: 06/07/2006, 15h54
  4. Gestion des accès concurrents à une table
    Par kodo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/06/2006, 14h05

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