Перекачать файлики...
Перекачать файлики... (пятничная задачка)
Дано:
две системы (клиент и сервер), об которых известно, что одна из них может работать с другой по HTTP(S).
Клиент может запросить у Сервера некоторый набор документов (пакет).
Состав пакета на момент запроса неизвестен ни Клиенту, ни Серверу, определяется Сервером по факту окончания подготовки пакета.
Сервер может:
- либо подготовить запрашиваемый пакет
- либо получить ошибку в процессе подготовки пакета.
Отдавать данные Клиенту Сервер будет по-документно.
Требуется:
получить полный пакет на первой системе.
Ограничения:
HTTP(S) only.
Количество документов в пакете, наименования документов, время подготовки каждого документа и всего пакета - неизвестны. Вторая система "знает" когда закончена подготовка пакета.
Начинать передачу требуется по готовности каждого документа, но готовность всего пакета для Клиента определяется окончанием передачи последнего документа.
Пожелания:
Не хочется иметь поллинг.
Хочется многопоточную загрузку.
Из вариантов.
На второй системе будет реализовываться веб-сервис. Можно сделать ФТП, но это уже не HTTP(S).
Непонятное:
Как, без поллинга, сообщить Клиенту, что готов очередной документ.
Как, без поллинга, сообщить Клиенту, что завершен пакет.
Т.е. нужно реализовать Подписку? Не хочется...