2009-09-21 3 views
0

Nous avons une application Java, ainsi qu'un certain nombre de plugins C# pour d'autres applications (par exemple Excel) qui peuvent communiquer avec l'application principale. La couche de communication est implémentée en utilisant Apache MINA du côté Java et xsd pour les plugins .NET. Généralement, les choses fonctionnent sur la même machine (Windows), mais il serait préférable de ne pas supposer que (par exemple, permettre à l'application principale de fonctionner sur un Mac et être capable de communiquer avec Excel sur une machine différente).Établir un lien IPC entre une application Java et des plugins C#

La communication doit fonctionner que l'application principale ou le (s) plugin (s) démarre (nt) en premier. Ma question est comment mieux établir le lien? Actuellement, notre application Java principale écoute sur un port que les plugins interrogent constamment pour la disponibilité. C'est évidemment inutile et inélégant. Mais ça fonctionne. Une alternative serait d'avoir chaque plugin écoute sur son propre port, et quand l'application démarre, elle envoie un type de message "Hello" à chaque port connu (sur localhost), puis les plugins établissent le lien à ce moment.

J'ai aussi regardé un peu à la multidiffusion, mais je ne sais pas vraiment à ce sujet. Et bien sûr, il pourrait y avoir plusieurs utilisateurs sur le même sous-réseau tout en utilisant l'application.

D'autres idées ou pensées?

+0

Il s'agit clairement d'un modèle de service client/serveur. Vous devez reformuler la question en "Utilisation de clients C# avec un fournisseur de service réseau Java". –

Répondre

0

Vous ne devriez pas vous inquiéter des tentatives de connexion au serveur inutiles - ce n'est pas une opération gourmande en ressources et le plugin nécessite que la connexion fonctionne. Il ne semble pas y avoir de réelle motivation à utiliser quelque chose de différent d'une approche traditionnelle client/serveur que vous êtes en train de faire.

Questions connexes