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

Entrée/Sortie Java Discussion :

[Réseau]Se connecter a un ordinateur distant


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut [Réseau]Se connecter a un ordinateur distant
    Bonjour,

    Je dois faire une application qui gère des rendez-vous.
    Avec du xml, se serait simple.

    Mais le problème est que 2 ordinateur utilisent le même agenda.
    Peut-on accéder pour lire et ecrire dans un fichier xml qui se trouve sur un ordinateur distant si on possède son ip ?
    Sinon je devrai utiliser une base de données et peut etre un serveur web, j'aimerais installer le moin possible pour la facilité.

    Je peut utilise le xml ou obliger de passer par une base de données ?
    Je doit mettre en place un serveur web pour pouvoir acceder au fichier ou base de donnée ou seul l'adresse ip est suffisante ?
    Si je doit utiliser une base de donnée, je connais mysql mais est-il possible d'utiliser une base de données embarqué ?

    Merci

    [ Modéré par Bulbo ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    'jour,

    Pour pouvoir écrire sur un ordi distant, il faut que cet ordi dispose d'une petite application "serveur" à laquelle tu envoies des messages et qui va s'occuper de faire le travail.

    Le "client" envoie un message "ecrire BLABLABLA dans le carnet de rdv"
    Le "serveur" recoit le message et exécute l'action sur le fichier.

    Pour cela, tu peux utiliser des sockets par exemple, ou encore l'API JXTA qui permet de simplifier les communications entre plusieurs ordis.

    Sinon, l'utilisation d'une base de données me semble être une solution plus simple et surtout plus fiable.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  3. #3
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Donc il faut que je crée un petit serveur en java qui va executer des requete envoye par un programme client.
    Mais les requete SELECT, ce petit serveur pourra renvoye n'importe quelle type d'objet (tableau par exemple) ou seulement des string ? Dans ce cas c'est tout de meme galere...

    Quelle base de données je peut utiliser qui est facile a mettre en place ? Je connais mysql mais c'est lourd a installer...

    Si sa peut renvoyer n'importe quelle objet, je peut me baser sur ce tuto pour mon serveur ? : http://defaut.developpez.com/tutorie...r/multithread/
    Sinon je sais pas comment recuperer des requete SELECT

    Merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Mysql lourd?
    He ben, attends de voir oracle
    Sinon, si tu veux concevoir un serveur simple ou tout est écrit en java, tu peux toujours essayer la sérialisation, c'est assez facile à mettre en oeuvre.

  5. #5
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Je dis lourds car devoir installer JVM + mysql pour faire fonctionner un programme peut l'etre

    Je vais regarder a la serialisation et voir en quoi sa peut m'etre utile

    merci

  6. #6
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Si tu as deux instances de ton application qui travaillent sur le même agenda, la communication réseau n'est pas le seul problème à résoudre... Fais attention également aux problèmes d'accès concurrents (par exemple si tes deux instances veulent prendre un RDV dans le même créneau de ton agenda...).

    Les sgbd proposent des mécanismes de transaction qui peuvent aider pour ton problème.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    Tu es effectivement un peu obligé de passer par une appli serveur...

    Si tu veux faire un joli truc, tu peux aussi pour ce genre de problème gérer l'ensemble des requetes envoyées par tes clients en servlet...

    Après, tu peux au choix soit faire le traitement sur une base de données, installés sur le serveur, et c'est le serveur qui se connecte dessus (donc pas d'accès DIRECT de la part des postes clients sur la base...) Soit gérer çà avec un fichier XML, et c'est toujours l'appli serveur qui s'occupe de faire les mises à jour à partir des flux envoyés par les clients.

    Tu peux facilement gérer les problèmes d'accès concurents, pour éviter de perdre des mises à jour, en utilisant des blocs synchronized au sein de ta servlet...

    L'avantage, c'est que tu peux effectivement avoir très peu de choses à installer sur les postes clients, vu que ton client peut être simplement le navigateur web présent sur le PC. Bref, tu as juste une appli serveur à développer, et faire un accès via page web, par exemple...

    Personnellement, je le ferai comme ca... (See Tomcat...)

  8. #8
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Je pense que je vais creer une application serveur qui recevra des requete sql et les les executera.
    Si la requete sql est une requete SELECT, il placera le resultat de la requete dan un tableau et le serialisera. La serialisation du tableau sera envoye au programme client qui aura fai la requete, il n'aura qu'a le deserialise pour avoir ses info.

    Sa me semble réalisable, il faut que j'arrive a faire le 'serveur' et que j'arrive a m'y connecter.
    Je pense que je vais passer par des fichier xml.
    De cette maniere, on pourra importer le fichier xml du pc distant vers le sien (secour si le reseau a des problemes - se sera le probleme pour prendre des rendez-vous mais on saura toujours quand sont ceux déjà fixé).

    Pour le problème qu'il y a 2 personne qui prenne rendez-vous en meme temps pour la meme heure et date, je ferai un systeme de controle au sein de du serveur, on pourra pas surplanter un rendez-vous pour un nouveau, donc si il en y a un (il ya en a toujours un qui se fera apres l'autre - meme quelque milliseconde), je retourne une erreur qui dira a la personne de prendre rdv un autre moment... Mais c'est cas la seront rare.

    maintenant il me reste plus qu'a m'accrocher pour faire le serveur

    merci

  9. #9
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Mais c'est cas la seront rare.
    N'oublie pas la loi de Murphy !

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    Citation Envoyé par Xavinou
    Mais c'est cas la seront rare.
    N'oublie pas la loi de Murphy !
    Ouep, c'est la seule loi physique vraie a 100 % !

  11. #11
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    C'est quoi la loi de Murphy ?

  12. #12
    Membre actif Avatar de xxaragornxx
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Points : 253
    Points
    253
    Par défaut
    Citation Envoyé par romuluslepunk
    C'est quoi la loi de Murphy ?
    Il y en a plusieurs, mais dans ce cas là ce serait plutôt:
    Plus c'est rare, plus tu as de chances de tomber dessus !

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    Pour l'histoire, si je me rappelle bien Murphy etait un ingénieur américain qui a travaillé sur la mise au point des parachutes, à l'époque... Il a en même temps mené une étude statistique, et il s'est révélé que à chaque fois qu'un test était fait avec un mannequin, ou un poids mort, ca se passait bien, mais dès qu'il y avait un test en réel, avec un homme au bout, le parachute partait en torche, se déchirait, ou autre...

    Il en a découlé la célèbre loi de Murphy, ou sous d'autres appellation la loi de l'emmerdement maximum, et une de ses variantes, la loi de la tartine beurrée... Si tu as une chance pour que ca plante, ne t'inquiètes pas et n'aies aucun doute, tu vas te planter...

  14. #14
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    ok ok
    Sa c'est bien vrai, je croyais que c'etait parce que je programme mal mais je me sent rassuré

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Il n'ya pas seulement le problème que 2 opérations "write" soient executées simultanément sur la base de donnée. Même si ce problème est résolu il pourra y avoir d'autres problèmes.

    Si ton système contient des méthodes qui executent chacunes des opérations "write" et "read" parallèlement sur la base de données, il peut devenir inconsistent. Je te conseille d'utiliser un "monitor" dans le serveur comme ça les méthodes qui ont des "régions critiques" ne seront pas executées simultanément mais l'une après l'autre dans un ordre quelconque. Tu utilises RMI pour accéder aux méthodes du serveur ?

    Marc

  16. #16
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Je galère.
    Je suis newbies et pas tres balaise en reseau.

    Je connais pas rmi mais je vais regarder a quoi sa ressemble.
    J'ai ce tuto et je prendre exemple pour mon serveur : http://defaut.developpez.com/tutorie.../multithread/.
    Pour le système de base de données, je pense prendre du xml, c'est pas une bdd mais il faut pas plus.
    Pour la connexion client->serveur, j'en ai encore aucune idee de savoir comment faire.
    Je pense d'abord faire mes classes pour la travail avec xml puis les classes du serveur qui les appeleront.

    je vais aller voir qu'est ce qu'un monitor et RMI

    merci

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Pour monitor, c'est expliqué à exclusion mutuelle dans ce lien :

    http://jmdoudoux.developpez.com/java..._le_multitache

  18. #18
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Génial !!

    Je vais créer des classe de Thread sécurisé pour ecrire et lire mes données dans le xml.

    Le serveur recevra des tableau sérialiser qui contiendra l'action a effectuer et ses parametre (selectionner tel jour par ex...). Il renverra un autre tableau sérialiser qui contiendra les données par exemple. Les programme serveur et client contiendront les memes classes pour sérialiser et désérialiser mes tableau.

    Il me reste juste a déterminer comment faire la connexion entre le programme client et serveur. Il faut que je choisisse un systeme qui permet de passer sur le serveur meme en local.
    Vous me parler de rmi, je vais regarder ce que c'est et comment sa fonctionne.

    Un grand merci

  19. #19
    Membre habitué
    Avatar de romuluslepunk
    Homme Profil pro
    Juste passioné
    Inscrit en
    Avril 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Juste passioné

    Informations forums :
    Inscription : Avril 2005
    Messages : 174
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Apres une pause dans le projet, je le continue.
    J'ai déjà commencer a structurer le serveur.
    J'utilise le rmi pour l'acces a distance.
    J'utilise le xml pour enregistrer les rdv.

    J'ai 3 classe :

    - Agenda_interface
    Cette interface comprend toutes les méthodes qui qui seront accessible via rmi

    - Agenda_xml
    Comprend toutes les méthode d etraitement de xml

    - Agenda
    C'est la classe principale (contient Main()), elle implemente Agenda_interface.
    C'est cette classe qui est dans rmi.
    Les methode implemente sont ajoute de synchronized et lance une methode de Agenda_xml et renvoi le reultat.


    Ce que je comprend pas, c'est que synchronized a un rapport avec les thread. Or, mon serveur n'a aucun thread.

    Comment sa va réagir ?
    le programme client attendra grace a synchronized ?
    Le programme client doit tourne dans un thread ?

    Merci

Discussions similaires

  1. [Apache/WebDAV] Impossible de se connecter car l'ordinateur l'a refusé
    Par Gregory.M dans le forum Subversion
    Réponses: 10
    Dernier message: 23/12/2008, 09h57
  2. Réponses: 2
    Dernier message: 09/10/2008, 11h15
  3. [Utilisation] [Débutant] Impossible à se connecter à SVN depuis un ordinateur distant
    Par Ark13 dans le forum Subversion
    Réponses: 3
    Dernier message: 09/11/2007, 13h17
  4. Réponses: 3
    Dernier message: 14/01/2007, 19h52
  5. Réponses: 12
    Dernier message: 03/03/2006, 09h56

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