Готовая к использованию реализация брокерского (посреднического) общения - PullRequest
1 голос
/ 19 ноября 2010

Я не уверен, как правильно сформулировать вопрос, поэтому, если есть лучшие идеи, - предложите их.

Проблема проста.У меня есть 2 пира A и B, оба за брандмауэрами.Я хочу, чтобы они общались друг с другом с помощью публичного брокера или посредника, какое бы имя ни подходило.

Связь асинхронная и происходит примерно так:

  1. Периодически и А, и Вопросить брокера, спросив, есть ли для них сообщения.
  2. Когда A желает связаться с B, он отправляет сообщение брокеру, указывая, что это сообщение для B.
  3. Когда B опрашиваетброкер, брокер видит, что для него действительно есть сообщение, и отвечает соответствующим образом.
  4. B обрабатывает сообщения и отправляет ответ обратно брокеру, указывая, что это ответ на конкретное сообщение от A.
  5. В какой-то момент A опрашивает брокера и получает ответ от B.

Теперь, прежде чем я сам ворвусь и осуществлю такого рода общение, мне интересно, есть лииспользовать пакеты, которые позволяют для такого рода связи из коробки.

Кто-нибудь?

Спасибо.

EDIT1

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

EDIT2

Еще одно ограничение заключается в том, что только HTTP (S) порты могут быть открыты для связи, поэтому агенты A и B могут находиться в ситуации, когда они общаются с брокером, используя только HTTP (S).

Ответы [ 3 ]

1 голос
/ 19 ноября 2010

какой ESB Wold делать?Например http://www.nservicebus.com/, или более легкий: http://www.zeromq.org/

1 голос
/ 28 ноября 2010

Вы можете сделать это тривиально (IMO), используя любой стек HTTPS.Архитектура вашего брокера зависит от объема и параллелизма, которые вы должны обрабатывать.Создайте модель ресурсов, чтобы ваши приложения могли отправлять и получать сообщения, где URI содержит узел назначения, и добавить параметр для адреса ответа.Вам понадобится около 1 дня, чтобы выяснить модель рабочего ресурса, 4 часа, чтобы ее кодировать.Если вам нужен том, возьмите сервер вроде mongrel2, у которого есть серверная часть zeromq.Или node.js, который должен делать это превосходно.

ZeroMQ идеально подходит для создания параллельных приложений, но это не служба HTTP / S, которая лучше обрабатывается выделенными интерфейсами, такими как mongrel2.

0 голосов
/ 19 ноября 2010

Такой брокер существует как часть AppFabric на платформе Azure.В AppFabric вы можете использовать Сервисную шину , которая разрешает такую ​​ретранслируемую связь.Но вы должны платить за него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...