Communication entre des applications

koukihosni Messages postés 1 Date d'inscription mardi 31 mai 2011 Statut Membre Dernière intervention 22 novembre 2011 - 22 nov. 2011 à 21:32
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 26 nov. 2011 à 17:32
bonsoir
mes amis nous nous intéressons au mécanisme DDE développé par Microsoft pour échanger des données entre des applications tournant dans un environnement Windows. Ceci est souvent nécessaire lorsqu’on veut accéder à une base donnée à partir d’une application client écrite en (VC, VC, JAVA, …). La méthode la plus simple est de passer par Excel. La première application accède à une page Excel pour écrire ou lire (Application client serveur DDE) et la deuxième application accède à la même page Excel pour récupérer les données chargées par la première application et en même temps elle envoie un accusé de réception à la première application lui indiquant que les données ont été récupérées. Cet accusé de réception peut être sous la forme d’une variable true False échangée entre les deux applications afin de synchroniser les échanges.
comment on va résoudre ce problème et merci.

2 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
23 nov. 2011 à 09:54
Etrange question contennt la réponse.Excel est un serveur DDE (DDEML).
Il suffit de lui "acrocher" un client.
Un exemple tout fait ne doit pas être très dure à trouver.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 nov. 2011 à 17:32
Bonjour,

Certains considèreraient certainement DDE comme une antiquité.
Lancer excel pour échanger des données entre deux applications, c'est quand même ultra moche (Performances déplorables, peu de portabilité...)

Bref, il existe à peu près 17 millions de méthodes pour échanger des données entre deux processus, et une autre que DDE serait probablement plus appropriée à votre cas.

Après, c'est sûr que si c'est pour échanger entre du java et du C ou C++, c'est plus chiant et sa limite les possibilités.
D'un côté java est plus ou moins prévu pour être portable et pas du tout lié à un système d'exploitation. Tout ce qui est communications inter process se fait via des usines à gaz style rmi ou un esb....
De l'autre le C peu exploiter toutes les api proposées par Windows (Mémoire partagées, pipes, messages, mutexs...).

Il est possible de passer par jni pour utiliser du C depuis le java. De cette manière, tu peux accéder à une shared memory gérer par une autre appli en C.

Il y a aussi des protocoles d'échanges standardisés style CORBA, ou les services web, qui sont censé gérer tous ces problèmes de communication d'un langage vers un autre.

Mais si c'est pour échanger 3 types de données et demi dans un format simple entre une appli C et une appli java, je te conseillerais vraiment de passer par de bête socket. Après un peu de réflexion pour définir ce qui doit transiter, tout se fera sans problème vu que les sockets sont très bien supportées en java comme en C. Les perfs seraient entre les mémoire partagées et les usines à gaz. Et c'est une méthode très éprouvée, notamment dans les entreprises (Exemple, serveur java et client vb6 tous les deux capable d'interrogé un serveur C, qui peut d'ailleurs se trouver sur une autre machine).
0
Rejoignez-nous