Гарантированная доставка сообщений
От: Nikolay_Ch Россия  
Дата: 02.10.13 21:07
Оценка:
Здравствуйте!

Есть задача — доставка файлов (сообщений) с одной конечно точки на другую. Доставка с подтверждением и подсчетом хеша. Также д.б. функция доставки вручную, т.е. через внешний диск или флешку, если сеть недоступна.

Подскажите, есть какая-нибудь промежуточная среда, которая может обеспечить такую функциональность?
Re: Гарантированная доставка сообщений
От: Sharov Россия  
Дата: 03.10.13 08:01
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Здравствуйте!


N_C>Есть задача — доставка файлов (сообщений) с одной конечно точки на другую. Доставка с подтверждением и подсчетом хеша. Также д.б. функция доставки вручную, т.е. через внешний диск или флешку, если сеть недоступна.


Гарантированная доставка сообщений -- это либо какой-нибудь message broker с соотв. функциональностью,
либо самописный на WCF. По надежной доставке файлов сразу вспоминается либо настройка reliability
для WCF привязок, либо message chunking.

Также не ясно причем здесь добавление файлов в ручную?
Т.е. я так понимаю, что есть некий сервис и клиент. Причем клиент может работать и
локально на одной машине с сервером, т.е. подключили флешку, запустили клиент, нашли
файл на клиенте и закинули на сервис. Классический сценарий для named pipes.
Кодом людям нужно помогать!
Re[2]: Гарантированная доставка сообщений
От: Nikolay_Ch Россия  
Дата: 03.10.13 10:11
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Гарантированная доставка сообщений -- это либо какой-нибудь message broker с соотв. функциональностью,

S>либо самописный на WCF. По надежной доставке файлов сразу вспоминается либо настройка reliability
S>для WCF привязок, либо message chunking.
А почему не MSMQ?

S>Также не ясно причем здесь добавление файлов в ручную?

Есть связь, файлы (сообщения) передаются по сети. Нет связи, они накапливаются в буфере и передаются через флешку.
Re[3]: Гарантированная доставка сообщений
От: Sharov Россия  
Дата: 03.10.13 10:22
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>А почему не MSMQ?


Как вариант,пожалуйста. С MSMQ не работал, немного работал с Active MQ, правда года три назад.
Так там была возможность гарантированной доставки сообщений. Надо смотреть на каждый
брокер по-отдельности и смотреть какие возможности он имеет.


N_C>Есть связь, файлы (сообщения) передаются по сети. Нет связи, они накапливаются в буфере и передаются через флешку.


Можно подробнее, что за буфер (более-менее представляю), и как накопленное окажется на флешке.
Т.е. если связь прервалась скидываете буфер обмена на жесткий диск в файл? А как целостность будете
контролировать, а что если обрыв произошел в середине -- все скидывать на диск или только не переданные
данные.
Кодом людям нужно помогать!
Re[4]: Гарантированная доставка сообщений
От: Nikolay_Ch Россия  
Дата: 03.10.13 16:32
Оценка:
Здравствуйте, Sharov, Вы писали:

N_C>>Есть связь, файлы (сообщения) передаются по сети. Нет связи, они накапливаются в буфере и передаются через флешку.

S>Можно подробнее, что за буфер (более-менее представляю), и как накопленное окажется на флешке.
Пришел чел, вставил флешку и на нее слилось все, что было в буфере..

S>Т.е. если связь прервалась скидываете буфер обмена на жесткий диск в файл? А как целостность будете

S>контролировать, а что если обрыв произошел в середине -- все скидывать на диск или только не переданные
S>данные.
Не совсем. Программа скидывает сообщения/файлы агенту. Агент их складирует, например в папку. Из папки он их пытается отправить получателю. Если отправить не получается, а тут пришла флешка, агент перекачивает все на нее. Получение подтверждений отправки тоже или через сеть или через флешку.
Re: Гарантированная доставка сообщений
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 04.10.13 21:53
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Подскажите, есть какая-нибудь промежуточная среда, которая может обеспечить такую функциональность?


Почта России?
Шутка

Электронная почта?

Тоже шутка, но в меньшей степени. В принципе, вполне себе промежуточная среда, и задача на SMTP-протоколе вполне реализуема.

А если совсем серьезно, то сильно удивлюсь, если найдется прям совсем готовое решение. Код писать по-любому придется.

Все системы передачи сообщений (message queuing) так или иначе поддерживают гарантированную доставку, передачу подтверждений, дедупликацию и контроль целостности (видимо, это имелось в виду под "подсчетом хэша"). Но вот передача через оффлайн потребует написания кастомного транспорта.

Возьмем, к примеру, NServiceBus. Для передачи сообщений между узлами "нетрадиционным" способом (через интернет, например) там есть gateway. И в принципе, можно написать кастомный gateway, который использовал бы флешку в качестве транспорта. Осталось решить, сколько времени ждать подтверждения, прежде чем перепосылать (что если на флешку все слили и потом постирали ее в стиральной машине?..).

Вы, кстати, уверены, что Вам именно-таки нужно, чтобы отправитель получал подтверждение от получателя, что тот все получил? Может, достаточно _гарантии доставки_ ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.