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 :

Connexion distante ou web-service avantages inconvenients


Sujet :

Décisions SGBD

  1. #1
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut Connexion distante ou web-service avantages inconvenients
    Bonjour,

    J'ai une application de gestion qui travaille avec une base de donnée en local.
    La base centralise les écritures comptables ( factures, commandes, clients etc...
    Je travaille à une version full web et j'ai le choix entre deux techniques:
    - ouvrir l'accès distant à ma base de donnée et interroger ma base en direct depuis un serveur d'application basé sur une autre machine
    - développer un web-service sur le même serveur que le SGBD et interroger ma base via ce web-service.

    Comme beaucoup d'hébergeurs ferment l'accès distant aux bases de données je me demandais quelle solution était la meilleure et si il y a des raisons valables pour fermer l'accès direct à une base de donnée. (vitesse, sécurité, volume, nombre de connexions?)
    Je ne devrais pas dépasser une cinquantaine de connexions simultanées sur la base. c'est un problème?

    Pourriez vous m'éclairer?

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Atsibat Voir le message
    Comme beaucoup d'hébergeurs ferment l'accès distant aux bases de données je me demandais quelle solution était la meilleure et si il y a des raisons valables pour fermer l'accès direct à une base de donnée. (vitesse, sécurité, volume, nombre de connexions?)
    Je ne devrais pas dépasser une cinquantaine de connexions simultanées sur la base. c'est un problème?
    Les hébergeurs ferment les accès lorsqu'ils cherchent à minimiser au maximum le risque d'attaques sur les serveurs de bases de données. C'est aussi ce que font bon nombre d'entreprises :
    - On empêche les accès extérieurs pour minimiser les risques
    - On contrôle les accès internes (via le lan)

    Pour une application Web, on peut ainsi n'exposer que le site Web sur Internet. C'est ensuite lui qui va communiquer avec le serveur de base de données en interne (sur le lan).

    Là où ça peut devenir un problème, c'est lorsqu'un utilisateur doit utiliser un client lourd, ou un client mobile. Là il y a deux solutions que tu as déjà évoqué :
    - Soit on expose le serveur de base de données sur Internet pour que le client lourd/client mobile puisse y accéder directement
    - Soit on met en oeuvre un web service qui servira de "proxy" : il est exposé sur le Web, et ensuite c'est lui qui gère les communications avec le serveur de base de données en interne via le lan.

    A noter que la présence de ce web service rajoute une couche et des traitements intermédiaires, donc les performances peuvent être plus ou moins réduites.

    Enfin, dans ton cas apparemment tu n'as pas besoin d'exposer ton serveur de base de données sur le Web. Il suffit juste d'exposer ton site Web et de laisser passer les communications entre le serveur Web et le serveur de base de données.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    merci pour la réponse.
    En fait il s'agit bien de faire communiquer
    [plusieurs clients lourds] +[un portail sur serveur apache]+[sun site de reporting sur serveur Tomcat] avec une base de donnée PostgreSQL.

    Pour les connexions serveur j'ai tous les outils mais pour celles venant des clients lourds je me demande comment éviter les problèmes d'injection SQL, les connexions qui restent ouvertes etc...

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Atsibat Voir le message
    Pour les connexions serveur j'ai tous les outils mais pour celles venant des clients lourds je me demande comment éviter les problèmes d'injection SQL, les connexions qui restent ouvertes etc...
    En ce qui concerne les problèmes d'injection SQL, ça c'est à gérer dans ton code (utilisation des requêtes paramétrées, validation, etc.) uniquement.

    Concernant les connexions, en principe c'est géré par le serveur de base de données directement, via le pool de connexions, donc pas d'inquiétude particulière à avoir. Et encore une fois, il faut t'assurer que ton code va dans tous les cas libérer les connexions afin de minimiser ce genre de choses. Après il est difficile voire impossible de blinder totalement le code, car tu dépends aussi du réseau et plus généralement de tout ce qui se trouve entre le client lourd et ton serveur de DB...

    Si tu ne veux pas exposer directement le serveur de DB sur le net, tu peux envisager, outre l'option du Web Service, de faire passer les communications par ton routeur. En gros tu trouves un port libre sur ton routeur exposé sur le net (ex. 1234), et tu routes ce port vers le port utilisé par ton serveur de base de données.

    Si tu as une DMZ, il te faudra peut-être faire deux fois cet exercice (en entrée, et en sortie de la DMZ).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 756
    Points : 52 534
    Points
    52 534
    Billets dans le blog
    5
    Par défaut
    Certains SGBDR comme SQL Server permettent de créer directement des web services dans le SGBDR évitant le cout du ping pong entre machine....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. créer un web service pour la connexion a une base de données distante
    Par IAGISG dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 05/12/2011, 00h02
  2. connexion a un web service
    Par rblanc dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 27/10/2009, 23h08
  3. Réponses: 2
    Dernier message: 25/12/2008, 12h23
  4. Pool de connexion pour un web service
    Par pontus21 dans le forum Services Web
    Réponses: 2
    Dernier message: 27/11/2008, 22h36
  5. connexion a un web service
    Par Tigrou_Giyome dans le forum Services Web
    Réponses: 7
    Dernier message: 15/03/2007, 17h46

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