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

Langage Java Discussion :

Quels choix faire ?


Sujet :

Langage Java

  1. #1
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut Quels choix faire ?
    Bonjour,

    Je souhaite réaliser une application qui devra être accessible par plusieurs personnes depuis des endroits différents. Cette application utilise une base de données.

    J'ai plusieurs questions à ce sujet :

    1° La BD doit se trouver sur le serveur, et les utilisateurs installent l'applic
    sur leur poste normalement et c'est l'applic qui se connecte au serveur
    puis à la BD ? Si oui, y'a-t-il un bon tuto pour faire cela ? Sinon, que faut'il faire ?

    2° J'ai un site Internet. Est-ce je peux utiliser son serveur pour installer la BD ?

    3° Quel SGBD utiliser pour faire cela ? (il doit être gratuit) Je pensais à MySQL
    ou à phpMySQL qui se trouve déjà sur le serveur du site WEB.

    4° Y'a-t-il certaines choses auquel il faut penser du fait que c'est
    sur un serveur et que plusieurs personnes peuvent y accéder en meme
    temps ?

    5° Pour finir, y'a-t-il des choses pour lesquelles il faut faire attention pour ce
    genre d'application (je n'ai pas bcp de notions dans ce domaine)

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    Bonjour, je ne suis pas expert dans ce genre de développement, loin de là ...

    Mais voici ma maigre contribution

    1° La BD doit se trouver sur le serveur, et les utilisateurs installent l'applic
    sur leur poste normalement et c'est l'applic qui se connecte au serveur
    puis à la BD ? Si oui, y'a-t-il un bon tuto pour faire cela ? Sinon, que faut'il faire ?
    Si tu pars comme cela, ce qui me semble bien, il te faut créer un client pour les postes client, et un serveur pour ton serveur, dans ce cas ton serveur transmet les requêtes à la base locale, et renvoi les retours vers le/les clients. Des tutoriel il en existe un récent et très sympa pour les bases client/serveur, après à toi de mettre en place tout ça selon tes besoins.

    2° J'ai un site Internet. Est-ce je peux utiliser son serveur pour installer la BD ?
    Tu peux en effet t'en servir pour ton serveur ainsi que ta BDD, mais fais attention à ce que ça ne le ralentisse pas trop.

    3° Quel SGBD utiliser pour faire cela ? (il doit être gratuit) Je pensais à MySQL
    ou à phpMySQL qui se trouve déjà sur le serveur du site WEB.
    phpMySQL n'est qu'une interface d'admin pour une base MySQL. Effectivement tu peux utiliser MySQL ou bien postGreSQL qui est très performant aussi. Cependant je choisirais deux BDD différentes pour le site et l'application (différente au sens base, mais ça peut être 2 MySQL). Ceci évidemment afin d'éviter la propagation d'un problème du à l'un ou l'autre des protagonistes.

    4° Y'a-t-il certaines choses auquel il faut penser du fait que c'est
    sur un serveur et que plusieurs personnes peuvent y accéder en meme
    temps ?
    En effet il existe une chose importante, la synchronisation, il ne faut pas que 2 personnes modifies la même information au même moment, c'est pour cela qu'il faut synchroniser les écritures/lectures sur la base.
    5° Pour finir, y'a-t-il des choses pour lesquelles il faut faire attention pour ce
    genre d'application (je n'ai pas bcp de notions dans ce domaine)
    C'est lié à la réponse précédente, mais dans le cas d'écriture dans une base, il est toujours préférable d'utiliser les transactions, ca te permet de faire tes modifications, puis à la fin, de faire un "commit" si tout s'est bien passé, ou bien un "rollback" si une erreur s'est produite, ainsi les modifications ne seront effectives sur la base que si tu les valides


    Voilà je que moi je pense par rapport à ton problème

  3. #3
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Je peux savoir quel est le rapport avec Java ?
    En premier lieu, utilisez un moteur de recherche.
    En second lieu, postez sur le forum adéquat !

  4. #4
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Parce que je veux faire ça en JAVA !!

    Et que JAVA entraine peut-être certaines resctrictions ou le cas contraire par rapport à d'autres langages !

    Je ne l'aurais pas mis là si je developpais en cobol !

  5. #5
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Napalm 51, tu parles de ce tuto là ?

    http://gfx.developpez.com/tutoriel/java/network/

  6. #6
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Suis-je obligé d'utiliser un client-serveur ?

    Je ne peux pas accéder a la BD qui se trouve sur le serveur directement depuis l'application installée chez l'utilisateur ?

  7. #7
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par doons Voir le message
    Je ne peux pas accéder a la BD qui se trouve sur le serveur directement depuis l'application installée chez l'utilisateur ?
    Si ton application cliente est sur un réseau local, c'est possible.

    Si ton application cliente passe par internet pour attaquer la base de données... c'est possible aussi mais très déconseillé car cela veut dire que ta base de données accepte les connexions entrantes sans vérifier leur provenance => gros risques qu'elle soit piratée.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  8. #8
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Et le fait que plusieurs clients peuvent se connecter au serveur, je dois chercher de la doc spéciale ou je peux "me contenter" de doc sur l'architecture client/serveur ?

    Parce que j'ai entendu parler de serveur multi-threads, cela me concerne-t-il ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Points : 327
    Points
    327
    Par défaut
    Citation Envoyé par doons Voir le message
    Napalm 51, tu parles de ce tuto là ?

    http://gfx.developpez.com/tutoriel/java/network/
    Non plutôt de celui-ci : http://humbert-florent.developpez.co...reseau/avance/
    qui me semble plus complet pour un débutant.


    Faire un serveur multithread est presque obligatoire si il y a plus d'un client, car sinon, tant qu'un client est connecté au serveur, ce dernier ne pourra plus prendre d'autres clients, ils devront tous attendre que le premier client connecté est fini. Bref impensable pour un serveur ^^

  10. #10
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si ton application cliente passe par internet pour attaquer la base de données... c'est possible aussi mais très déconseillé car cela veut dire que ta base de données accepte les connexions entrantes sans vérifier leur provenance => gros risques qu'elle soit piratée.
    Les risques existent, mais on peut quand même les réduire, avec un firewall ou même un filtre d'IP au niveau de la BD.
    Cela dépend aussi du niveau de confidentialité des données de la base.

  11. #11
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Les données ne doivent pas être accessibles ni modifiables autrement que par l'application.

    Si je résume, je dois faire un serveur, qui reçoit des requêtes sql (sous forme de string j'imagine ?) il effectue les requêtes à la BD et renvoie les données à l'applic (sous forme de quoi ? resultset ?)

    La lecture est autorisée simultanément pour plusieurs clients, par contre l'écriture ne l'est pas, cela doit donc se passer dans une méthode synchronized()

  12. #12
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Pourquoi ne pas utilier RMI ?

    Cordialement

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  13. #13
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Salut,

    Pourquoi ne pas utilier RMI ?

    Cordialement

    F.
    Salut, pourquoi pas, dans ce cas je ne dois pas utiliser de serveur et de clients ? Il faut que je me renseigne sur RMI, je ne connais pas trop

  14. #14
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Citation Envoyé par doons Voir le message
    Si je résume, je dois faire un serveur, qui reçoit des requêtes sql (sous forme de string j'imagine ?) il effectue les requêtes à la BD et renvoie les données à l'applic (sous forme de quoi ? resultset ?)
    Non... il est dangereux de laisser le client générer lui-même la requête SQL. Le client doit envoyer un ordre (sous la forme d'un objet java) contenant les données utiles: "ajout à la base du livre n°xyz concernant les champignons".

    Le serveur analyse cet objet, en extrait les informations utiles, effectue des vérifications de conformité, et génère la requête (qui sera d'ailleurs plus sous la forme d'un "PreparedStatement" que d'une chaîne de caractères).

    De même pour le retour d'une interrogation. C'est au serveur d'analyser le ResultSet, et de le transformer en un objet métier qui sera renvoyé au poste client.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  15. #15
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par doons Voir le message
    Salut, pourquoi pas, dans ce cas je ne dois pas utiliser de serveur et de clients ? Il faut que je me renseigne sur RMI, je ne connais pas trop
    Si, le principe même de RMI est de pouvoir gérer un systeme de client/serveur relativement facilement.

    Je te laisse te renseigner sur le sujet.

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  16. #16
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Super, merci

  17. #17
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Euh pour finir je te souhaite bonne chance pour trouver un hébergeur permettant d'accéder à un SGBD depuis l'extérieur de leurs serveurs...

    LA solution dans ce genre de cas est d'introduire un relais entre ton appli et ton SGBD, c'est à dire une appli permettant de faire transiter les donner.
    Grosso merdo diriges toi vers les webservices.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  18. #18
    Membre averti Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Points : 307
    Points
    307
    Par défaut
    Citation Envoyé par doons Voir le message
    Les données ne doivent pas être accessibles ni modifiables autrement que par l'application.

    Si je résume, je dois faire un serveur, qui reçoit des requêtes sql (sous forme de string j'imagine ?) il effectue les requêtes à la BD et renvoie les données à l'applic (sous forme de quoi ? resultset ?)
    Surtout ne pas faire cela (d'ailleurs il a été mentionné par CyberChouan). La raison en est très simple, un client malintentionné peut tout simplement envoyer une requête telle que DELETE FROM nom_de_table pour vider la table.
    La lecture est autorisée simultanément pour plusieurs clients, par contre l'écriture ne l'est pas, cela doit donc se passer dans une méthode synchronized()
    Il ne s'agit pas d'un simple fichier. Pour une BDD, la synchronisation est assurée par le SGBD.
    "Un remboursement des programmes défectueux serait envisageable mais toute l'industrie du logiciel ferait faillite la première année." Andrew Tanenbaum.

  19. #19
    Membre actif
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Points : 270
    Points
    270
    Par défaut
    Ok, mais alors si j' ai bien compris le système :

    1. J'ai une applic client sur mon poste
    2. J'ai une applic serveur sur le serveur
    3. J'ai la base de données sur le serveur.

    Admettons que j'ai une table personnes qui contient les champs id, nom, prenom et date_naissance.

    Pour afficher une personne, le client ferais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Personne personne = new Personne();
    personne.setID(id);
    personne = server.getPersonne(personne)
    C'est la meme chose si le client veut modifier la personne ou inserer une nouvelle personne.

    Est-ce bien cela ? Car je suis un peu dans le flou

    Merci d'avance

  20. #20
    Membre averti Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Points : 307
    Points
    307
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Personne personne = new Personne();
    personne.setID(id);
    personne = server.getPersonne(personne);
    Si j'ai compris, tu veux récupérer les informations d'une personne en envoyant son id. Dans ce que cas il suffit d'envoyer l'id en tant que parametre de type int (ou n'importe quel autre type que tu as choisis pour id dans la classe Personne).
    Le serveur utilise l'id pour construire une requête, l'exécute, construit un objet personne en utilisant les informations récupérées depuis la base de données et renvoie l'objet au client. Tout cela en supposant que tu passes par une solution RMI.
    "Un remboursement des programmes défectueux serait envisageable mais toute l'industrie du logiciel ferait faillite la première année." Andrew Tanenbaum.

Discussions similaires

  1. Quel choix faire entre datafile simple et datafile autoextent
    Par marvelromy dans le forum Administration
    Réponses: 10
    Dernier message: 31/01/2008, 18h46
  2. Réponses: 2
    Dernier message: 12/05/2007, 14h27
  3. Quel choix faire entre 2 portables ?
    Par nesquik dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 04/12/2005, 10h27

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