2008-11-03 5 views
11

Я разрабатываю набор приложений, которые работают вместе, чтобы создать систему для обработки данных измерений. Есть несколько причин, по которым я хочу, чтобы они были слабо связаны, и система должна быть расширена третьими сторонами, поэтому приложения будут связаны между собой посредством обмена сообщениями.Межплатформенная межпотоковая система обмена сообщениями?

Я ищу систему обмена сообщениями, которая предлагает привязки в (по крайней мере) C#, Java и Python и поддерживает шаблоны обмена сообщениями, такие как Publish-Subscribe, Guaranteed Delivery, Selective Consumer (например, Peek in .Net Messaging).

Насколько я могу судить, нет ничего плохого в JMS или .Net Messaging, просто они предназначены только для .Net/Java.

Система должна дать мне контроль над тем, какой механизм транспорта (сокеты, очереди сообщений и т. Д.) Использовать при настройке канала. Я хочу иметь возможность как масштабировать удаленные машины, так и ускорять работу с местными транспортными средствами.

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

О, да - и я хотел бы иметь факультативное шифрование для каждого канала или для каждого сообщения.

ETA: Спасибо за все быстрые ответы. Сейчас я работаю над документами &. Кто-нибудь использовал технологии ниже, и для чего/с какими результатами?

ответ

2

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

Sonic Software

1

Вы можете использовать ESB (Enterprise Service Bus), как Mule. Идея состоит в том, что вы отправляете свои сообщения на шину любым способом (JMS, http, email), а шина выполняет маршрутизацию для вас. Я не знаю, есть ли привязки .NET, но даже если их нет, вы можете создать свой собственный, используя механизм расширения. Конечно, это означает, что вам нужно настроить автобус где-нибудь.

1

Если вы хотите получить твердую, коммерческую поддержку и интеграцию в IBM, то в настоящее время модель MQ Series от Websphere MQ предоставляет все функции, описанные в ваших требованиях.

Иногда сделать получить то, что вы платите за ... ;-)

2

Как упоминалось Павел, попробуйте ActiveMQ, который поддерживает многие клиенты языка и протоколы проволочные.

BTW ActiveMQ 6.x будет, вероятно, с использованием буферов протокола Google в качестве одного из его основного провода транспортирует :)

я использовал Apache ActiveMQ на многих проектах с большим успехом. Его mostpopular и мощный брокер сообщений с открытым исходным кодом сегодня.

Кстати на .Net/C# проект ActiveMQ создавшего NMS API, который является стандартным API для общения с брокерами сообщений на платформе .Net, которая теперь интегрирована в Spring.Net

0

Open Message Queue (Open MQ) включена в приложение сервера GlassFish а также работает автономно. Он запускается через несколько секунд и поддерживает Java и C-клиент. Поддержка Stomp в настоящее время находится в разработке в версии 4.4.

0

Если вы хотите использовать многоязычный стандарт, то есть вы не привязаны к конкретному брокеру/посреднику, например, ActiveMQ, SonicMQ или WebsphereMQ. Я настоятельно рекомендую вам взглянуть на стандарт AMQP (http://www.amqp.org) и связанные с ним брокеры (RabbitMQ, QPid, OpenAMQ, см. http://www.amqp.org/confluence/display/AMQP/AMQP+Products).