Transfert de données entre programmes

bimbol18 Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 octobre 2004 - 22 mars 2004 à 15:56
cs_fahim Messages postés 23 Date d'inscription samedi 8 mai 2004 Statut Membre Derniè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.

16 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
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 ...
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
22 mars 2004 à 16:41
:big) Neodante :big)

Ah oui regarde aussi la sérialisation ... gros point également
@+

[Responsable www.neogamedev.com]
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
22 mars 2004 à 17:08
GodConan :clown)

ouai ben tou sa sa se resume a utiliser des Flux ;o) ...

Java c magic pour tous ca... ;o)
0
bimbol18 Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 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) :

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(o);
oos.close();

je pense que en local ca suffira, sinon en lan ca sera socket+flux+sérialisation et XML au dessus pour la compréhension entre les entités.

je posterai un exemple quand j'en aurai fini.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
22 mars 2004 à 17:43
GodConan :clown)

ben si c java vers java ta pas besoin de xml ;o) normalement

pour envoyer ds une lan c pareil que pour un fichier ;o) c juste le flx ki change ;o) tu l obtiend a partir du socket
0
bimbol18 Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 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.
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
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 ...)
@+

[Responsable www.neogamedev.com]
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
22 mars 2004 à 18:27
GodConan :clown)

RMI faut un server d objet sa me parrai un peu lourd la... ;o)
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
22 mars 2004 à 18:31
:big) Neodante :big)

C'est pas si lourd que ça ... faut juste impélmenter les deux côté un pour pour chaque client ... mais c'est une solution pure Java ...
@+

[Responsable www.neogamedev.com]
0
bimbol18 Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 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é)
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
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 ...
@+

[Responsable www.neogamedev.com]
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
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..)

++
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
23 mars 2004 à 19:51
:big) Neodante :big)

Yep mais RMI ca rentre exactement dans son sujet non ???
@+

[Responsable www.neogamedev.com]
0
bimbol18 Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 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
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
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, ...
@+

[Responsable www.neogamedev.com]
0
cs_fahim Messages postés 23 Date d'inscription samedi 8 mai 2004 Statut Membre Derniè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.
0
Rejoignez-nous