[windows, .net] Шина для связывания распределенной системы

Dasar

Есть система, состоящая из кучи модулей - которая разворачиваются на множестве компьютеров.
компьютеры могут быть как связаны в один домен, так связаны в несколько доменов без возможности сделать доверительные отношения, так и вообще все может быть без домена.
тоже самое и с локальными сетями: компьютеры могут в одной локальной сети, в разных, между компьютерами может быть несколько файерволов, Nat-ы, интернет и т.д.
есть необходимость обмениваться сообщениями в данной сети, как небольшими запросами, так и целыми файлами.
для шины хочется что-нибудь общего назначения, т.к. с ними меньше проблем в плане эксплуатации, обучения, развертывания и т.д.
соответственно тот же msmq не подходит, т.к. это чисто программная шина, которую никто ни настраивать, не использовать не умеет.
думаю смотреть в сторону систем обмена мгновенных сообщений (icq, irc, jabber)
пока как самый перспективный кандидат - jabber
Соответственно, кто что может посоветовать по использованию jabber-а в этом качестве?
какие будут подводные камни?
есть ли уже успешные примеры такого использования?
насколько легко будет решаться проблема с передачей больших файлов?
на какой класс шин (кроме систем мгновенных сообщений) можно еще посмотреть?
может есть что-то лучшее, чем jabber?

Ivan8209

Протоколов обмена сообщениями до чёрта: SMTP, NNTP, QMQP/QMTP,
IMAP/P-IMAP, XMPP, SIP, POP.
---
"Narrowness of experience leads to narrowness of imagination."

Dasar

протокол нужен именно мгновенный, т.е. если модули рядом, то хочется чтобы это были доли секунды на реакцию
> SMTP, POP, IMAP/P-IMAP
это протоколы отдельно отправки и отдельно получения сообщений, а не обмена сообщений.
соответственно придется держать два подключения
и еще, имхо, они не рассчитаны на передачу именно мгновенных сообщений, или я ошибаюсь?
> NNTP,
это имхо странный протокол, потому что даже пользовательских приложений которые его смогли поддержать раз-два и обчелся
> QMQP/QMTP,
спасибо, сходу не помню что такое, посмотрю
> XMPP
угу, это и есть jabber
> SIP
это тоже не совсем обмен сообщений
Сам протокол SIP не определяет этих функций, а сосредоточен только на процедурах установления звонка и сигнализации.

Marinavo_0507

Шина, предназначенная для передачи чего угодно между какими угодно узлами в любой ситуации? И универсальный протокол для неё?
Какие возможности для оверинжиниринга!

Ivan8209

> протокол нужен именно мгновенный, т.е. если модули рядом,
> то хочется чтобы это были доли секунды на реакцию
Если модули рядом, то и обмен происходит за доли секунды.
>> SMTP, POP, IMAP/P-IMAP
> это протоколы отдельно отправки и отдельно получения
> сообщений, а не обмена сообщений.
А что тогда, по-твоему, обмен сообщений, если не получение или отправка?
Вроде того, тебе всучили прямо в руки письмо, но ты его не получил?
Или ты выгреб письмо без его получения?
>> NNTP,

> это имхо странный протокол, потому что даже пользовательских
> приложений которые его смогли поддержать раз-два и обчелся
Тебе известно такое понятие, как наглая ложь? Вот это оно и есть.
Этих пользовательских приложений --- сотни. Но вот если у тебя
кругозор нулевой, это да, проблема. Тогда и одного можно не найти.
>> SIP
> это тоже не совсем обмен сообщений
А что это, по-твоему, чудо?
Тебе заглянуть в RFC религия не позволяет?
У тебя, как и прежде, гонору много, но ни знаний, ни квалификации нет.
>> Сам протокол SIP не определяет этих функций, а сосредоточен
>> только на процедурах установления звонка и сигнализации.
Откуда эта цитата? Из википедии, что ли?
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

Dasar

Шина, предназначенная для передачи чего угодно между какими угодно узлами в любой ситуации? И универсальный протокол для неё?
Какие возможности для оверинжиниринга!
а что не так? таких шин нету? мне вон контра их аж 7 штук назвал

Marinavo_0507

> а что не так?
стек протоколов ISO/OSI так и не допилили, например

Dasar

стек протоколов ISO/OSI так и не допилили, например
но и фиг с ним.
зато нарешали кучу задач, например, наделали кучу шин по обмену сообщений.
соответственно у меня вопрос какую лучше из них использовать.

Ivan8209

> Какие возможности для оверинжиниринга!
Ну да. Настраиваемся по DHCP, раздаём адреса DNS,
по DNS делаем (через Hesiod) первоначальную настройку.
По SIP/TLS/SCTP определяем готовность клиентов и договариваемся
о протоколе обмена. Короткие сообщения передаём по SIP.
Длинные сообщения и файлы передаём по HTTP, FTP, SMTP
(широковещательные распространяем по NNTP IMAP, POP,
как смогли договориться, если что, можно и RTP или RTSP
задействовать.
---
"А я обучался азбуке с вывесок,
листая страницы железа и жести."

Dasar

Ну да. Настраиваемся по DHCP, раздаём адреса DNS,
по DNS делаем (через Hesiod) первоначальную настройку.
По SIP/TLS/SCTP определяем готовность клиентов и договариваемся
о протоколе обмена. Короткие сообщения передаём по SIP.
Длинные сообщения и файлы передаём по HTTP, FTP, SMTP
(широковещательные распространяем по NNTP IMAP, POP,
как смогли договориться, если что, можно и RTP или RTSP
задействовать.
и это все должно поддерживать одно приложение?

Ivan8209

> и это все должно поддерживать одно приложение?
А что, есть какие-то принципиальные ограничения?
---
...Я работаю антинаучным аферистом...

Dasar

А что, есть какие-то принципиальные ограничения?
есть практические ограничения, например, KISS

klyv

а, во, Wave!

state7401281

когда-то думал об этом же - в итоге сделал "не-до-tcp/ip" over tcp/ip, когда осознал, что же именно за суррогат в итоге получился - убрал лишнее "не-до-tcp/ip" и оставил просто tcp/ip, потом понял, что компы все равно в одном сегменте и в других не будет - поставил win-pcap и херачил прямо raw - скажу честно прирост производительности меня *ОПЕТУШАЮЩЕ* удивил
но у тебя я так понимаю ключевой момент - то что могут быть наты и прочие?

klyv

но у тебя я так понимаю ключевой момент - то что могут быть наты и прочие?
это решается OpenVPN.

Dasar

но у тебя я так понимаю ключевой момент - то что могут быть наты и прочие?
да, это ключевой момент.
причем у меня кол-во сообщений не очень большое, сравнимое допустим с тем, что генерирует обычный пользователь сидя в аське, чате и т.д.

Dasar

это решается OpenVPN.
в openvpn легко завернуть лишь пару портов, а не весь компьютер?
т.е. я о том, что если у меня стоит один модуль на компьютере А, а другой на компьютере Б, я не хочу чтобы компьютер А имел возможность лазить на компьютер Б, а компьютер Б имел возможность лазить по компу А.

Dasar

это решается OpenVPN.
и вторая проблема, а где поднимать сервер vpn?

klyv

в openvpn легко завернуть лишь пару портов, а не весь компьютер?
т.е. я о том, что если у меня стоит один модуль на компьютере А, а другой на компьютере Б, я не хочу чтобы компьютер А имел возможность лазить на компьютер Б, а компьютер Б имел возможность лазить по компу А.
то, что до "т.е." не понял, то, что после - можно на сервере объеденить всех клиентов в один сегмент сети, даже netbios будет работать.
так же можно на сервере настроить маршрутизацию так, что доступ с компа на комп будет только по необходимым портам.

klyv

и вторая проблема, а где поднимать сервер vpn?
если необходимо полное отсутствие серверов, то надо смотреть в сторону p2p сетей, которые (имо) решат задачу плохо (неоптимально и ненадёжно).
если можно таки строить узлы, например, объединяющие клиентов территориально, то ничто не мешает локальным (территориально) клиентам подключаться к одному локальному серверу, а до удалённых будет стучаться уже он.

Dasar

то, что до "т.е." не понял, то, что после - можно на сервере объеденить всех клиентов в один сегмент сети, даже netbios будет работать.
мне надо обратное, что было доступно лишь 1-2 порта, а не всё
так же можно на сервере настроить маршрутизацию так, что доступ с компа на комп будет только по необходимым портам.
но все равно получается, что компьютер А как минимум должен полностью доверять компьютеру с vpn сервером

bleyman

Поставь опенсорсную реализацию MQ. Гуглозапрос "MQ glassfish" выдаёт много релевантных результатов. Алсо можешь ещё спросить у гугла "MQ dotnet", тоже много интересных результатов.

Dasar

Поставь опенсорсную реализацию MQ. Гуглозапрос "MQ glassfish" выдаёт много релевантных результатов. Алсо можешь ещё спросить у гугла "MQ dotnet", тоже много интересных результатов.
это который websphere MQ?
спасибо, посмотрю

Ivan8209

А, блин, ещё есть AMQP и OpenAMQ.
---
...Я работаю антинаучным аферистом...

ava3443

AMQP и OpenAMQ
тогда ещё можно вспомнить про Apache ActiveMQ - для него есть клиент под .Net (в отличие от OpenAMQ который топикстартеру думаю наиболее актуален

ava3443

ещё есть AMQP и OpenAMQ
ещё есть ØMQ (ZeroMQ)

Ivan8209

> ещё есть 0MQ
0h my Qod...
---
...Я работаю...

shudrik

KISS --- это теоретическое ограничение, на практике, в жизни,
сложные решения не просто живут, а процветают. Где бактерии
дохнут, человек спокойно себе продолжает радоваться жизни.
 
Интересно, что скажешь по-поводу прионных белков?

state7401281

> MQ
что такое MQ?

klyv

message queue?

state7401281

а хз, сам тоже так сначала подумал ... но зачем именно queue, какой-нибудь flow вместо queue выглядел бы гармоничнее
вопрос на самом деле другой: MQ - это что-то собирательное или протокол/продукт?

Dasar

вопрос на самом деле другой: MQ - это что-то собирательное или протокол/продукт?
тот, про который _fj говорил, это websphere MQ
http://ru.wikipedia.org/wiki/IBM_WebSphere_MQ

Dimart

Тред не читал. Посмотри xmlBlaster, может подойдёт для твоих целей.
Оставить комментарий
Имя или ник:
Комментарий: