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

Décisions SGBD Discussion :

Applications lourdes et SGBD Access en ligne


Sujet :

Décisions SGBD

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut Applications lourdes et SGBD Access en ligne
    Bonjour,

    je développe actuellement une application lourde en C# (Visual Studio 2010).
    Cette application sera installée sur plusieurs postes sous XP distants les uns des autres, et fait des accès à une base de données Access 2010 (on ne se refuse rien...) unique qui doit être accessible par tous les postes (intégrité des informations).

    J'ai tout d'abord testé la création d'un réseau VPN, et l'ai géré dans mon application.
    La base de données se situait donc sur mon serveur VPN.
    Après test, il s'avère que les temps de réponse sont affreusement longs ! Du coup, je me demande comment faire pour héberger ma base de données sur internet pour que les temps de réponse soient inférieurs à 3 secondes. (temps via ma solution en VPN : 11 secondes).

    Auriez-vous une solution à proposer ?
    Quelqu'un aurait-il l'âme assez charitable pour me sortir de ce bourbier infâme dans lequel mon esprit s'embourbe un peu plus à chaque sursaut d'inventivité confuse et finalement frustrée ?

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Si Access n'a pas changé depuis que je l'ai quitté (version 97), ce n'est vraiment pas un bon choix pour une BDD en ligne car la BDD est un fichier qui doit être chargé sur le réseau pour le poste client puisse l'utiliser.

    Passe à un vrai serveur de bases de données. Et puisque tu travailles avec les logiciels de Petitmou, tourne toi vers MS SQL Server.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Le truc, c'est que du coup, c'est la licence qui va coûter cher. J'ai opté pour Access parce que la licence était déjà présente sur le poste.
    Aucune solution pour mettre ce tout petit fichier qu'est ma base en ligne alors ?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    MS SQL Server Express est gratuit mais limité à des BDD de 10 Go je crois.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    D'accord, et une telle BDD serait accessible comment à des applications lourdes ? Je n'ai que peu de connaissances en réseaux, les seuls que j'ai abordés étant les réseaux VPN.

    Pour information, et en solution de secours, comment ferais-tu pour rendre ma base access accessible par le net rapidement sans passer par le VPN (trop lent) ?

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Pour ça, il faut t'adresser au forum C#.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Même pour rendre ma base access accessible via le net ? ^^ (je continue sur ma lancée, mais tout ce que j'ai déjà conçu se base sur la-dite base access, et ça me fait un peu mal de recommencer de zéro...)

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Une autre question : SI j'opte pour un serveur de BDD SQL Server (que je connais bien, mais l'utilisation que j'en ai eue était principalement en local), le temps de réponse de ma BDD sera-t-il plus performant que le temps de réponse de ma base Access par VPN ? Si oui, de quoi viendrait la différence ?

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    SQL Server est un vrai SGBDR très performant.
    Access est conçu pour une utilisation monoposte.

    Mais un expert tel SQLPro saura mieux te renseigner que moi.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Merci de tes réponses en tout cas, et du temps que tu m'as consacré. Heureusement que des personnes de bonne volonté existent encore.

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    SQL Server permet de se connecter en TCP/IP, donc oui vous pouvez l'utiliser à distance à travers le net.

    Les performances n'auront rien à voir avec access que ce soit en interne au sein du SGBD mais aussi sur la partie communication avec le client.

    J'ai utilisé SQL Server pour une appli déployée en partie sur le même réseau que le serveur et une autre partie qui y accédait à travers une mauvaise connexion internet (2Mb/512Kb). Les temps de réponses y était parfaitement convenables (< 250ms la plupart du temps).

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 398
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 398
    Points : 20 519
    Points
    20 519
    Par défaut
    Hello,
    Citation Envoyé par HammR Voir le message
    Même pour rendre ma base access accessible via le net ? ^^ (je continue sur ma lancée, mais tout ce que j'ai déjà conçu se base sur la-dite base access, et ça me fait un peu mal de recommencer de zéro...)
    Tu peux passer par ODBC qui gère le client/serveur tu donnes une adresse TCP/IP et ODBC va gérer cela.
    Sinon tu peux faire ta couche réseau via des sockets en C# et envoyer des requêtes SQL sous formes de messages réseau c'est tout simple.
    Autre possibilité c'est d'acheter des classes .NET toutes faites pour cela ( par exemple Simba..)

    Le problème via ODBC c'est que c'est un peu plus lent qu'en natif.

  13. #13
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 398
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 398
    Points : 20 519
    Points
    20 519
    Par défaut
    Citation Envoyé par HammR Voir le message
    Une autre question : SI j'opte pour un serveur de BDD SQL Server (que je connais bien, mais l'utilisation que j'en ai eue était principalement en local), le temps de réponse de ma BDD sera-t-il plus performant que le temps de réponse de ma base Access par VPN ? Si oui, de quoi viendrait la différence ?
    attention Ms Access ne supporte pas le mulithreading, SQL Server oui ; donc dans ton appli C# tu peux lancer des requêtes dans des threads pour faire des mises à jours dans la BDD (UPDATE ) ou des insertions ( INSERT... )
    C'est le moteur de SQL-Server qui met tout cela en tampon ( je suppose ) et qui gère tout cela.
    Si tu tentes de faire plusieurs m.a.j. sur une base Access avec plusieurs connexions clientes elles ne se feront pas parce que le moteur Jet risque de verrouiller en mode exclusif.
    Et puis Access ne gère pas les Commit et Rollback...

  14. #14
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Access et SQL Server ne fonctionnent pas du tout sur la même architecture.

    Access fontionne en mode fichier alors que SQL Server fonctionne en mode client / serveur. Cette différence peut être notoire quand on parle de données qui transitent sur le réseau. Avec Access vous êtes obligé de charger l'ensemble de vos données à travers le réseau et le client effectue tout le reste (tri, restriction etc ...). Avec SQL Server tout le travail se passe sur le serveur et le résultat final est restitué au client.

    Ensuite d'autres contraintes vont entrer en jeu comme la gestion des transactions, le nombre d'utilisateurs simultanés qui utiliseront vos données etc ... Pouvez vous nous en dire plus ?

    ++

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Tout d'abord merci à tous de vous être donné la peine de me répondre.

    Après avoir constaté l'échec de mes expériences VPN (un peu dégoûté, mais content d'avoir appris quand même) je me suis finalement orienté vers du sql server.

    L'architecture de l'appli sera donc la suivante :
    - 4 postes distants les uns des autres (donc du TCP/ip à prévoir) sur lesquels seront installés une application lourde (en C#).
    - Sur deux des quatre postes, une instance de sql server qui contiendra ma base de données. Si la connexion internet de la base principale vient à foirer et que ladite base devient inaccessible, on passe sur l'autre pour ne pas planter toute l'application, et on fait les mises à jour nécessaires lorsqu'on détecte que la base de données redevient accessible. (un peu confuse la phrase, j'admets)

    Il y aura donc au maximum 4 personnes qui taperont potentiellement sur la base au même moment (cela reste improbable, mais possible, donc à prévoir).

    Les choses sont plus ou moins claires dans ma tête, mais je me heurte actuellement au fonctionnement quelque peu imperméable de SQL Server 2008.
    En effet, après avoir écumé les forums, j'en suis venu à la conclusion que j'étais une bille en base de données et en réseaux.

    Mon problème vient de la mise en réseaux de ma BDD.
    Pour résumé, voici ce que j'ai fait :

    Mon poste hébergeant ma BDD tourne sous xp familial, la connexion internet se fait via une livebox d'orange sur laquelle j'ai ouvert le port 1433 et j'ai redirigé ce port vers l'adresse ip de ma bdd (type 192.168.x.x).
    Le premier hic, c'est que quand je tente un ping local de cette adresse ip, ben c'est un flop...

  16. #16
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 398
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 398
    Points : 20 519
    Points
    20 519
    Par défaut
    Citation Envoyé par HammR Voir le message
    T
    Les choses sont plus ou moins claires dans ma tête, mais je me heurte actuellement au fonctionnement quelque peu imperméable de SQL Server 2008.

    tout cela me semble incroyablement compliqué.
    Si tu veux créer des connections sur SQL-Server c'est chose très simple, avec LINQ en .NET tu peux ouvrir une ou plusieurs connections.
    Je ne comprends pas pourquoi utiliser TCP-IP/
    Le fonctionnement de SQL Server n'est pas du tout imperméable il y a le MSDN en ligne tout est expliqué.
    Citation Envoyé par HammR Voir le message
    - Sur deux des quatre postes, une instance de sql server qui contiendra ma base de données. Si la connexion internet de la base principale vient à foirer et que ladite base devient inaccessible, on passe sur l'autre pour ne pas planter toute l'application, et on fait les mises à jour nécessaires lorsqu'on détecte que la base de données redevient accessible. (un peu confuse la phrase, j'admets)
    mauvaise méthode : comment vas-tu t'assurer de l'intégrité et de la concordance des données ? Si la base de données SQL Server est dupliquée ,tu auras des données qui ne concorderont pas.
    En général une base de donnée SQL-Server s'installe sur un seul poste.


    Citation Envoyé par HammR Voir le message
    Mon poste hébergeant ma BDD tourne sous xp familial, la connexion internet se fait via une livebox d'orange sur laquelle j'ai ouvert le port 1433 et j'ai redirigé ce port vers l'adresse ip de ma bdd (type 192.168.x.x).
    Le premier hic, c'est que quand je tente un ping local de cette adresse ip, ben c'est un flop...
    1 c'est totalement déconseillé d'utiliser XP familial pour SQL-server à la rigueur oui pour la version Express gratuite.
    Il faut impérativement XP Pro
    2 je ne coomprends vraiment pas pourquoi ouvrir une connection Internet comme tu fais

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    les quatre postes sont sur 4 sites différents avec des connexions internet distinctes.
    La mise en réseau de la BDD se fait donc de toute façon par internet, non ?

    Le système des deux bases sont le seul moyen que j'ai pu trouver pour assurer que l'application fonctionnera tout le temps. Les contrôles d'intégrité feront l'objet d'un codage bien spécifique (un spool de requêtes en attente, par exemple).

  18. #18
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 398
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 398
    Points : 20 519
    Points
    20 519
    Par défaut
    Citation Envoyé par HammR Voir le message
    les quatre postes sont sur 4 sites différents avec des connexions internet distinctes.
    La mise en réseau de la BDD se fait donc de toute façon par internet, non ?
    oui mais c'est SQL-Server qui gère cela de façon transparente; il suffit juste de créer une connection..

    Citation Envoyé par HammR Voir le message
    Le système des deux bases sont le seul moyen que j'ai pu trouver pour assurer que l'application fonctionnera tout le temps. Les contrôles d'intégrité feront l'objet d'un codage bien spécifique (un spool de requêtes en attente, par exemple).
    ça risque de demander des développements lourds.
    Et puis il faut s'assurer que les données des deux bdd soient rigoureusement identiques...

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Octobre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 30
    Points : 31
    Points
    31
    Par défaut
    Je suis bien d'accord que le développement pour assurer l'intégrité des données sera relativement lourd. J'ai prévu de développer un module spécifique. La finalité est ici une accessibilité constante de l'application.

    Pour ce qui est de la connexion à la BDD, tu m'intéresses si tu me dis que c'est simple, parce que je me suis embarqué dans un truc assez compliqué.

    Du coup si tu peux éclairer ma lanterne...

    Tu as un xp home avec sql server 2008 (désolé mais pour le xp pro on peut rien faire). Tu as un autre poste, distant, à partir duquel tu veux tester ta connexion à ta BDD "BDDTEST". Comment tu fais ? ^^

  20. #20
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 398
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 398
    Points : 20 519
    Points
    20 519
    Par défaut
    Salut Julien

    je n'ai pas SQL-Server sous la main mais on peut faire cela via le panneau de configuration et choisir ODBC.Là on peut spécifier une adresse IP,un numéro de port et tutti quanti.
    (Pour MySQL c'est pareil)
    Ceci se fait sur le ou les postes clients.
    Sur le client il est impératif d'installer le "service" qui tourne en tâche de fond pour se connecter au serveur.

    http://sqlserver.developpez.com/faq/

Discussions similaires

  1. [AC-2010] Publication d'une application access en ligne
    Par marcelisa2 dans le forum Runtime
    Réponses: 5
    Dernier message: 28/06/2013, 17h29
  2. [Applications Embeded] Quel SGBD choisir ?
    Par asmo² dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 06/04/2006, 14h23
  3. Application web vs application lourde
    Par eponette dans le forum Windows
    Réponses: 10
    Dernier message: 29/09/2005, 15h49
  4. Application lourde en Java, Swing ou autre...
    Par eponette dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 23/09/2005, 22h17

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