bimbol18
Messages postés7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 octobre 2004
-
22 mars 2004 à 15:56
cs_fahim
Messages postés23Date d'inscriptionsamedi 8 mai 2004StatutMembreDernière intervention 5 juin 2006
-
13 avril 2005 à 18:16
bonjour a tous!
dans le cadre de mon stage de licence je suis censé "réaliser un état de l'art présentant les différents moyens de transférer des données entre 2 applications en langage java".
et ... je trouve rien!
enfin, a peu pres.
apparemment on peut utiliser les flux (question : comment? et si ce n'est pas un pgrm java??)
ou utiliser la classe awt.datatransfer avec le system de clipboard (question : comment ca marche ce truc?)
alors voila si l'un d'entre vous sait quelque chose, qu'il avoue! :p
parceque là c'est grave g trouvé une seule page en 5h!
j'avais aussi pensé a une 3eme solution : utiliser les IPC comme je l'ai déja fait en C sous linux afin de faire communiquer des processus.
genre une zone de mémoire partagée, un peu comme le clipboard, mais alors g vraiment AUCUNE idée de comment faire ca en java.
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 22 mars 2004 à 16:40
:big) Neodante :big)
IPC not available in Java ... PipedStream c'est déjà plus jouable ... mais essaye de chercher sur RMI (à mon avis ça tiendra principalement à ça ..), JNI (aspect passage d'une appli vers une autre pas juste exécution de code autre que Java ... moins gros point), sinon XML avec SOAP (également un gros point) .... blablabla ... et sans oublier les bons vieux socket et SSLSocket (SecureSocket pour être précis ..) je sais que j'en oublie un ou deux mais impossible de me souvenir ... sinon oui le clipboard mais j'ai un sérieux sur la fiabilité de cette méthode ... sauf manuelle .... aussi jete un coup d'oeil à java.sun.com où tu devrais trouver d'importante information à ce sujet ...
@+
bimbol18
Messages postés7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 octobre 2004 22 mars 2004 à 17:34
ok merci!
pour l'instant je me penche plus particulierement sur les PipedStream, et g découvert aussi l'objet process.
reste à récupérer l'identité d'un processus que l'on a pas créé...
sinon pour la sérialisation j'utilise ca (par exemple pour écrire dans un fichier) :
bimbol18
Messages postés7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 octobre 2004 22 mars 2004 à 17:59
ba en fait c pas forcément de java vers java, ca se passe dans un contexte de mobilité ( c la spécialité de la boite ), donc c dun serveur nt vers un pda genre avec des api spécifiques et tout et tout... enfin c la merde koi :p
je verrai ca plus tard.
le xml c nécessaire au dessus, pour la représentation des données etc... je c pas encore exactement comment ca se passe.
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 22 mars 2004 à 18:19
:big) Neodante :big)
Egalement regarde de très près RMI je pense que ça colle particulièrement bien à ton sujet, évidemment c'est une technologie à part entière et c'est un peu plus long à implémenter ... sauf si c'est pas vers du Java/Java ... ce que je te préconise si pas Java/Java: XML, binaire, XML compressé ... (regarde le protocole WAP ...)
@+
bimbol18
Messages postés7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 octobre 2004 23 mars 2004 à 12:18
Oui mais on peut utiliser RMI/IIOP pour que ce ne soit pas "pur java".
on fait je ne dispose pas encore des données permettant de faire un choix. ou les 2 prog distants échange des données de facon séquentiel et déterminée (et dans ce cas socket+flux) ou ils effectuent des requetes n'importe quand (et là RMI) :(
j'aurai bien aimé savoir ça avant de me lancer dans le RMI si ca sert a rien :D
en fait c la le but de l'état de l'art : déterminer quelle méthode utiliser.
a priori dans une solution de mobilité les séquences sont clairement déterminées (ex. WAP) donc mm des sockets suffisent. et mm sans ca tu peux définir des types de requètes si c pa censé etre distribué a l'extérieur de l'entreprise (surtout si ca supporte le mode non-connecté)
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 23 mars 2004 à 14:49
:big) Neodante :big)
En fait y a pas de méthodes utlimes ... chaque méthode à une application précise ... RMI permet d'échanger et de diriger des flux d'objets en se servant de la sérialisation principalement ... les sockets permettent de créer des protocoles propres en connecté ou déconnecté (TCP ou UDP) mais nécessite une implémentation spécifique alors que RMI le développement est simplifié et modulable ..., si tu utilises du XML ou autre c'est également un protocole ... 'tout comme' SOAP, etc cela dépend de l'appli et de l'architecture du programme final ...
@+
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 23 mars 2004 à 18:40
GodConan :clown)
RMI ca ser a bcp plus de chose que ca ... ;o) ca etai fait popur travailler en environement reparti (ORB) c genial koi ;o)
mais pour ton cas les soket doivent suffir je pense... ;o)
avec la serialisation (mais en java c magic sa marche tou seul ca..)
bimbol18
Messages postés7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 octobre 2004 24 mars 2004 à 15:16
Ca dépend.
si tu dois seulement envoyer des données, tu gagnes ton temps avec les sockets (quitte à implémenter les SSLsockets).
si tu dois appeller des méthodes distantes, ben RMI.
un autre facteur est le nombre de clients et le niveau de sécurité requis. paskeu deja le système de nommage de rmi c bien sympa!
j'hésite quand meme, g deja mes sources pour faire un serveur multithreadé j'aurai plus qu'a rajouté un GZIPstream et à caser tout ca au-dessus de ssl.
sinon faut ke jme tape tout l'bouquin de o'reilly!
en clair j'attend que le chef me dise EXACTEMENT de quoi il en retourne et je choisirai
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 24 mars 2004 à 17:33
:big) Neodante :big)
Comme tu le dis cela dépend de ce que tu as besoin pour ton projet .. mais si c'est un mémoire technique ... faut tout présenter .... RMI, Socket, XML, ...
@+
cs_fahim
Messages postés23Date d'inscriptionsamedi 8 mai 2004StatutMembreDernière intervention 5 juin 2006 13 avril 2005 à 18:16
Pouréchanger des données deux applications Java vous pouvez utiliser les sockets en ouvrant une connexion entre eux. Le package java.net contient les classes nécessaires pour établir une connexion TCP par exemple de type client/serveur à savoir Socket de côté client et ServerSocket côté serveur. La dernière classe n'a rien à voir avec les sockets, elle sert à faire de l'écout sur un port spécifié et d'établir une connexion avec un client suite à sa demande c'est pourquoi elle n'hérite pas de la même que la classe Socket.Dans le package java.net vous trouverez bien d'autres méthodes qui vous permettra de manipuler la connexion et les StreamSockets.