Создание ссылки IPC между плагинами APC Java и C # -- c# поле с участием java поле с участием ipc пол Связанный проблема

Establishing IPC link between a Java app and C#-based plugins


0
vote

проблема

русский

У нас есть приложение Java, а также ряд плагинов C #, для других приложений (например, Excel), которые могут взаимодействовать с основным приложением. Слой связи реализован с использованием Apache Mina на стороне Java и XSD для плагинов .NET. Обычно вещи работают на одном (Windows) Machine, хотя было бы лучше не предположить, что (например, позволяет основное приложение работать на Mac и иметь возможность взаимодействовать с Excel на другой машине).

Связь должна работать независимо от того, начинается ли основное приложение или плагин (ы) первым. Мой вопрос - как лучше всего установить ссылку? В настоящее время наше Main Java приложению слушает порт, который плагины постоянно опроса для наличия. Это, очевидно, расточительно и нелегантно. Но это работает.

Альтернатива будет иметь возможность, чтобы каждый плагин прослушивал свой собственный порт, и когда приложение запускается, он отправляет «Hello» сообщение для каждого известного порта (на localhost), а затем установить плагины на ссылку на этот момент.

Я также немного посмотрел на многоадресных передовых, но на самом деле не знает много об этом. И, конечно же, могут быть несколько пользователей в той же подсети, используя приложение.

Любые другие идеи или мысли?

Английский оригинал

We have a Java app, as well as a number of C#-based plugins for other apps (e.g. Excel) that can communicate with the main app. The communications layer is implemented using Apache MINA on the Java side and xsd for the .NET plugins. Typically things run on the same (Windows) machine, though it would be better not to assume that (e.g., allow the main app to run on a Mac and be able to communicate with Excel on a different machine).

The communication has to work regardless of whether the main app or the plugin(s) start up first. My question is how best to establish the link? Currently, our main Java app listens on a port that the plugins constantly poll for availability. This is obviously wasteful and inelegant. But it works.

An alternative would be to have each plugin listening on its own port, and when the app starts up it sends a "Hello" kind of message to each known port (on localhost), and then have the plugins establish the link at that point.

I've also looked a bit at multicast, but don't really know much about it. And of course, there could be multiple users on the same subnet all using the app.

Any other ideas or thoughts?

</div
        
 
 

Список ответов

0
 
vote

Вам не следует беспокоить потраченные попытки подключения к серверу - это не ресурсная интенсивная операция, а плагин требует подключения к работе. Кажется, что нет никакой реальной мотивации для использования всего, что отличается от традиционного клиентского / сервера, который вы уже делаете.

 

You should not be concerned with wasted attempts to connect to the server - it is not a resource intensive operation and the plugin requires the connection to work. There does not seems to be any real motivation to use anything different from a traditional client/server approach which you already are doing.

</div
 
 

Связанный проблема

4  Трудно запустить параллельные вставки на SQLite базу данных в C #  ( Difficulty running concurrent inserts on sqlite database in c sharp ) 
Я запускаю ряд потоков, которые каждая попытка выполнить вставки в одну базу данных SQLite. Каждый поток создает собственную связь с БД. Каждый из них создает...

1  Узор сопоставления Regex внутри шаблона упаковки  ( Regex match pattern inside a wrapping pattern ) 
Я хочу сопоставить все номера телефонов, которые обернуты между & lt; и & gt; & gt; Теги. Это регулярное выражение для телефонов: <код> 0[2349]{1}-[1-9]{1}...

3  C # PropertiveGrid Drag Drop  ( C sharp propertygrid drag drop ) 
Я пытаюсь реализовать поддержку перетаскивания / падения на свойств в C # с использованием VS2005 (.NET 2.0). Собственность могут обрабатывать драгерацию и т....

1  Получение релевантности упорядоченный результат из текстового запроса на коллекции MongoDB с использованием драйвера C #  ( Retrieve relevance ordered result from text query on mongodb collection using th ) 
Я пытаюсь отправить текстовые запросы коллекции и получить результаты в текстовом порядке. документы объяснить довольно хорошо, как это сделать в оболочке: ...

2  Несколько клиентских проектов на один серверный проект W / Silverlight & Ria Services Beta  ( Multiple client projects to one server project w silverlight ria services bet ) 
Тип или имя пространства имен «Ресурсы» не существует в «MyWebProject.Web» (Вы пропустите сборку Ссылка?) C: users ... mysecondproject generated_...

0  1002 Ошибка API Вызов PayPal Sandbox  ( 1002 error api call paypal sandbox ) 
Я создал учетную запись PayPal Sandbox, и создал пользователь, и у меня есть все учетные данные, осмотр этого правильных учетных данных, которые он несколько ...

0  Как загрузить каталог на FTP, используя ftplib?  ( How to upload directory to ftp using ftplib ) 
У меня проблемы с загрузкой Все файлы на FTP: я использую ftplib . У меня есть функция для загрузки: <код> Proj executable not found. Please set PROJ_DIR v...

0  Анимация спрайты в XNE после мыши  ( Sprite animation in xna following the mouse ) 
Моя старая проблема заключалась в том, что мой код изначально следит за мышью, но когда она достигла мыши, она исчезла, и в конечном итоге исчезла. Моя теку...

0  Сообщение об ошибке Wile пытается открыть файл .xls  ( Error message wile trying to open xls file ) 
Я создаю файл Excel на лету для отправки его вложение в электронном письме. Соответствующий фрагмент кода приведен ниже (это консольное приложение) <код> pu...

0  Соединение не было закрыто. Текущее состояние соединения открыто  ( Connection was not closed connections current state is open ) 
Это дает сообщение об ошибках не было закрыто. Текущее состояние соединения открыто. Пожалуйста, помогите с кодом. <код> private void comboBox1_SelectedIn...

5  сериализовать два разных экземпляра в списке на одну строку JSON  ( Serialize two different instances in a list to a single json string ) 
У меня есть два типа классов: <код> public class HolidayClass { public int ID { get; set; } public string Name { get; set; } public DateTime Sta...

0  Не читайте текстовые данные на таблицу SQL в C #  ( Not reading text data to sql table in c sharp ) 
Поэтому я следовал большему количеству помощи, которую я мог найти здесь. Я создал программу C #, которая читает из текстового файла и вставляет в таблицу баз...

0  Тест подразделения для класса банка в C #  ( Unit test for bank class in c sharp ) 
Я учусь создавать модульные тесты для проекта, написанного в C #. Я был следовать примеру на веб-сайте MSDN, и теперь я только что застрял на том, как создать...

1  Есть ли способ генерировать GUID из списка руководств?  ( Is there a way to generate a guid from a list of guids ) 
У меня есть список объектов, которые они имеют GUID для IDS. Я хочу использовать идентификаторы в этом списке объектов для создания GUID, который я могу испол...

5  Использование Litjson в Unity3D  ( Using litjson in unity3d ) 
2 вопроса. 1) Можно ли использовать библиотеку Litjson AS так же, как и сценарии в JavaScript? Это действительно общий вопрос о том, чтобы иметь возможность...

Связанный проблема

4  Трудно запустить параллельные вставки на SQLite базу данных в C # 
1  Узор сопоставления Regex внутри шаблона упаковки 
3  C # PropertiveGrid Drag Drop 
1  Получение релевантности упорядоченный результат из текстового запроса на коллекции MongoDB с использованием драйвера C # 
2  Несколько клиентских проектов на один серверный проект W / Silverlight & Ria Services Beta 
0  1002 Ошибка API Вызов PayPal Sandbox 
0  Как загрузить каталог на FTP, используя ftplib? 
0  Анимация спрайты в XNE после мыши 
0  Сообщение об ошибке Wile пытается открыть файл .xls 
0  Соединение не было закрыто. Текущее состояние соединения открыто 
5  сериализовать два разных экземпляра в списке на одну строку JSON 
0  Не читайте текстовые данные на таблицу SQL в C # 
0  Тест подразделения для класса банка в C # 
1  Есть ли способ генерировать GUID из списка руководств? 
5  Использование Litjson в Unity3D