Мы намерены разработать систему с тремя «ярусами».
- HQ, с одним сервером
- много "узлов" на региональной основе
- пользователей, с iPad.
Штаб-квартира осуществляет двустороннюю связь с узлами, которые осуществляют двустороннюю связь с пользователями. Пользователи никогда не общаются ни со штаб-квартирой, ни наоборот.
Полномочия, которые должны быть предписаны приложением Windows от HQ (с использованием Delphi) и собственным настольным приложением для iPad пользователей. У них нет мнения об узлах.
Если есть веские технические аргументы, я мог бы превзойти их с «декрета» до «предпочтения» в программе Windows (и, на самом деле, сделать его основанным на браузере). Узлы не имеют графического интерфейса, они просто сидят и играют посредников.
Как лучше всего взаимодействовать между этими вещами (SOAP / HTTP / AJAX / jQuery / home-brewed-protocol-on-top-of-TCP / что-то еще?) Лучше всего использовать тот же конец протокола, чтобы конец или разные протоколы для hq <-> узла и узла <-> iPad?
Оба конца каждого из этих двух интерфейсов могут захотеть инициировать транзакцию (что я легко могу сделать, если разверну свой собственный протокол), поэтому я должен использовать push / pull / long-poll или как?
Я надеюсь, что это описание имеет смысл. Пожалуйста, задавайте вопросы, если это не так. Спасибо.
Обновление:
Размер файла обычно ниже 1 МБ, и вряд ли он будет больше 10 МБ или даже 5 МБ. Второй файл не будет отправлен до подтверждения первого файла.
Файлы передаются «вниз» от штаб-квартиры к узлу на iPad. Файлы никогда не будут течь "в гору", но будут некоторые небольшие пакеты данных (в дополнение к acks), которые инициируются действием пользователя на iPad. Они пойдут на локальный узел, а затем в штаб-квартиру. Мы, вероятно, говорим <128 байтов. </p>
Я полагаю, что также будет общий контроль и обслуживание с низкой скоростью во всех направлениях.