Надежен ли FTP для использования с приложением автоматического обмена данными? - PullRequest
3 голосов
/ 29 декабря 2011

Меня попросили разработать пакетное приложение, которое бы периодически получало данные (в частности, подробный список транзакций) от внешнего поставщика. Мы согласились использовать XML для обмена данными, но изучаем различные методы / протоколы, чтобы облегчить фактическую передачу данных. Поставщик предложил использовать электронную почту или FTP в качестве средства передачи данных, но мы отклонили первый вариант из-за проблем с логистикой и надежностью.

Что касается второго, FTP, я всегда колебался использовать FTP в производственной среде, где важна надежность. Дизайн, при котором поставщик публикует файлы на FTP для периодической обработки, кажется ненадежным и подверженным ошибкам. Моей первоначальной реакцией было бы стремление к чему-то похожему на веб-сервис (который данный поставщик может или не может или не может или не может предоставить), где данные могут запрашиваться по мере необходимости за определенный период времени.

В целом, какой наилучший подход использовать в такой ситуации, как эта? Считается ли FTP (или SFTP) приемлемым вариантом или что-то лучше? Является ли веб-сервис избыточным для такого простого обмена данными? Есть ли другие жизнеспособные варианты, которые я полностью пропускаю?

Ответы [ 3 ]

3 голосов
/ 29 декабря 2011

Передача файлов представляет ряд осложнений.

Я бы предпочел веб-сервис или просто https доступ к файлу с дайджестом / базовой аутентификацией, но для очень больших файлов это может быть нецелесообразно для них.

Другим ответом может быть использование общей корзины на amazon s3, где у вас есть права на чтение, а у них есть права на запись. Я использовал это пару раз как безопасную передачу файлов для бедного человека.

Я использовал разновидности FTP таким образом, вот несколько советов, если вы это сделаете:

1) Используйте безопасную версию, такую ​​как sftp - ftp просто не защищен для учетных данных или данных.

2) Используйте файл семафора, чтобы указать, когда последний файл завершен и доступен, или убедитесь, что при записи файла в каталог FTP они перемещают его целиком, поэтому вы не получаете доступ к неполным файлам.

3) Убедитесь, что у каждого файла есть уникальное имя (временная метка, порядковый номер и т. Д.), Чтобы вы могли отслеживать, что вы обработали, а что нет. Не используйте повторно имя файла, поскольку вы не знаете, когда вы уже обработали его, и, возможно, вы получите состояние гонки, которое обновляется при обращении к нему.

4) Используйте хеш-значение для проверки успешной передачи. Они могут предоставить хэш md5 для файла, а затем вы можете проверить это по вашей версии, как только закончите копирование. Я также часто использовал файл md5 в качестве семафора, чтобы указать, что файл доступен, и предоставить средства для проверки того, что передача была завершена и правильна.

1 голос
/ 29 декабря 2011

Вы можете использовать AS2 .

Однако это - механизм нажатия. as2 mendelson будет бесплатным программным обеспечением шлюза.Вы бы создали «канал», и все было бы передано вам без какой-либо кодировки.Если возникают какие-то проблемы, вы должны получать уведомления.

FTP довольно небезопасен.Это должно быть надежным, хотя.

0 голосов
/ 21 мая 2013

Что ж, я опаздываю на вечеринку, но, несмотря на это, я реализовал все вышеперечисленное, и до сих пор AS2 (с использованием mendelson) был самым простым и наименее подверженным ошибкам.

Мои наблюдения:

  • Реализация sftp / ftps прямолинейна и достаточно надежна с низким барьером для входа, но в итоге вам нужно написать свои собственные методы опроса (как Эндрю)упомянуто)
  • Веб-сервисы великолепны, но только если поставщик правильно их проектирует и документирует.Я обнаружил, что более мелкие партнеры, как правило, объединяют API и затем ломают его при добавлении функциональности или добавляют информацию к передаче на основе других запросов клиентов, но не обновляют документацию, чтобы отразить новые функциональные возможности.В одном случае это ускорило нас в переходе в sftp.
  • AS2 приятен тем, что безопасен и довольно прост в обслуживании с Мендельсоном.Добавьте наблюдатель каталога в выходные папки серверов, и вы получите в режиме реального времени 1 обработку.

Конечно, в конце концов, ваш поставщик определит, как далекоони готовы предоставить методы подключения, и вам нужно будет выбрать лучший метод, который они предоставляют.

1 обработка в реальном времени - это не обработка в реальном времени, а приемлемое для управления приближение.Ваши менеджеры могут отличаться от моих.

...