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

Persistance des données Java Discussion :

Server apach + BDD MySQL


Sujet :

Persistance des données Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut Server apach + BDD MySQL
    Bonsoir !
    Dans le cadre d'une application serveur-client, j'utilise wampserver comme outil (contenant Apach + mysql).
    Je programme mon client en JAVA, je voudrai lancer des requête dans des BDDs MySQL depuis le programme Client, devrai-je passer directement du client vers le serveur MySQL, ou bien devrai je faire le schéma suivant: Client -> Apach -> MySQL (ou la connexion Apach -> MySQL se fait en localhost), et si oui comment configurer Apach pour faire de tels choses.
    Autre fois j'avais programmé une applications client-serveur avec Java, mais j'avais mis en œuvre mon propre programme serveur, genre il reçoit ("REQUETE1") depuis un client, et fera donc par exemple une insertion dans une BDD Firebird.
    Ce que je veux savoir si est ce qu'il y a une possibilité de faire la même chose mais sans que j'ai à programmer mon propre serveur, utiliser Apach à la place, genre envoyer "REQUETE 1" depuis le programme client à Apach et il saura tout seul qu'il doit connecter à MySQL en localhost pour lancer la requete d'insertion SQL dans une BDD MySQL ?
    Si cela est pas possible, ou pas conseillé, dites moi la meilleurs des méthodes à faire pour utiliser un mécanisme Client-Serveur en java..
    Merci d'avance

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Pour des raisons de sécurités il est préférable de respecter une architecture SOA (en faisant du REST, SOAP ou gRPC par exemple vu que ton serveur wamp est en PHP), si ton client contient les requêtes SQL il pourrait réaliser des injections SQL, tu devrais donc limiter ton client Java à de simples appels distants et exécuter tes requêtes à partir de ton serveur PHP.

    Cordialement,
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Ah donc si j'ai bien compris, depuis le client j'envoie des String symbolisant des commandes, et une fois arrivés à Apach il les interpréte et lance des requêtes SQL sur mysql en localhost en PHP ? Corrige moi si j'ai mal compri, et sinon si c'est cela, j'aimerai savoir comment lancer les requêtes SQL depuis Apach avec du PHP ? une petite documentation ou une orientation sera la bienvenue
    Merci encore !

  4. #4
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Envoyer des strings vers le serveur pour décider de la méthode à exécuter revient à réinventer la roue, et je dirais même une roue carrée qui est trouée et rouillée.

    Utilise une architecture SOA plutôt.

    Je t'ai pris comme exemple PHP coté serveur, car tu as installé wampserver (s'il n'en tenait qu'à moi je désinstallerai cette solution). Quelle que soit le langage coté serveur donc, tu exécutes ta requêtes vers ta BDD à partir de ce serveur HTTP, que ta BDD soit installée sur le même serveur HTTP ou pas.

    Je sais que je me répète mais pas de requête SQL dans un projet client accessible par n'importe qui si tu ne veux pas que tes requêtes SQL soient détournées.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Re !
    Oui mais je dois quand même envoyer quelque chose depuis le client vers Apach pour que ce dernier accède à la BDD pour faire une requête. Du coup ma question c'est comme faire la connexion Apach -> BDD et spécifier son objective selon ce qu'envoie l'application client...
    Ceci dit, explique moi ce qu'il en est de cette chose que tu nommes SAO :o ?

  6. #6
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Bonsoir,

    W.A.M.P., tout est dans le titre. Windows Apache MySQL Php. Donc, tu n'as pas à faire à une seule technologie, mais à trois, plus une, la tienne, puisque ton client est en Java.
    Là-dedans, seul MySQL est une base de données. Apache n'est qu'un serveur HTTP, qui dans ce cas dispose du module PHP qui permet ainsi à ce dernier d'héberger des scripts php pour les traitements dynamiques côté serveur Apache. Mais dans l'absolu, ils n'ont rien à voir avec MySQL, si ce n'est que php dispose de librairies qui lui permettent de se connecter à un serveur MySQL et de lui soumettre des requêtes.
    Ton objectif est de permettre à ton client d'interroger la base de données MySQL. Par défaut, pour des raisons de sécurités, MySQL n'écoute que les requêtes issues de Localhost.
    Donc, si ton client utilise JDBC pour se connecter à MySQL, il ne pourra le faire que lorsqu'il s'exécutera sur la même machine que le serveur WAMP.
    Comme MySQL se trouve sur la même machine que le serveur Apache, ce qui est forcément le cas dans une solution WAMP, le langage PHP lui permet alors de réaliser les opérations avec la base de données. Toute la mécanique BDD se fait sur le serveur par le code php que ton client se contente alors de piloter via un socket HTTP.
    En résumé :
    Soit tu te connectes directement au serveur php via JDBC et tu soumet alors des requêtes qui vont circuler sur le réseau en clair, y-compris les trames d'identification. Le serveur MySQL peut être configuré pour accepter plus que seulement localhost, mais on peut dans ce cas faire l'effort de travailler avec des socket ssl, histoire de ne pas laisser tout cela circuler en clair sur le réseau, et dans ce cas, il est aussi préférable de faire écouter le serveur sur un autre port que le serveur standard, surtout s'il peut être exposé au net.
    Soit tu travailles avec des socket HTTP et tu dialogues avec des scripts php qui feront le travail avec la base de données, et via Apache te renverrons des réponses dans différents formats, à toi de voir lequel est le plus adapté, JSon, XML, etc...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  7. #7
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    @mohamed996,
    SOA : http://mbaron.developpez.com/cours/soa/intro/

    @yotta,
    Petit labsus, JDBC pour Java, PDO pour PHP
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  8. #8
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut
    Désolé, en me relisant, je viens de me rendre compte de l'erreur :

    En résumé :
    Soit tu te connectes directement au serveur php via JDBC et tu soumet
    Que je rectifie de suite, je voulais dire :

    En résumé :
    Soit tu te connectes directement au serveur MySQL via JDBC et tu soumet
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Re !
    Merci pour la reponse yotta j'ai bien compri cela et j'aimerai opter pout la seconde solution dont tu m'as parle, celle de communiquer avec des script php !
    Ce que j'aimerai maintenant c'est des orientations ou documentations concernant comment dialoguer avec des scripts php avec des sockets http !
    Merci encore !

  10. #10
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    PHP intègre déjà des fonctionnalités de base pour recevoir les requêtes HTTP et retourner des réponses au client.
    Si tu souhaites faire du PHP pour ta partie serveur, je t'invite à aller dans la rubrique PHP pour obtenir plus d'informations : http://php.developpez.com/
    Et si tu veux mettre en place une architecture SOA, tu peux faire des recherches sur REST par exemple : http://mbaron.developpez.com/cours/soa/rest/
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

Discussions similaires

  1. Se connecter à une BDD MySQL sous SME Server
    Par the watcher dans le forum JDBC
    Réponses: 2
    Dernier message: 21/09/2011, 11h25
  2. java : comment se connecter à une bdd mysql sous SME SERVER
    Par the watcher dans le forum Administration
    Réponses: 0
    Dernier message: 16/09/2011, 18h43
  3. Comment faire pour acceder au server de BDD MySQL avec VB.NET?
    Par buggen25 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/08/2008, 12h42
  4. importer une BDD MySQL vers SQL Server 2005
    Par Ajite dans le forum Outils
    Réponses: 3
    Dernier message: 08/10/2007, 18h06
  5. réplication d'un BDD sql server dans une BDD mysql
    Par bene86 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/08/2007, 11h09

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