Платформа Lokad ориентирована на обработку данных масштабом в терабайты и предназначена для предиктивной оптимизации цепей поставок. Однако, чтобы обрабатывать данные, нам сначала нужно их импортировать. Большинство веб-приложений используют веб-API в стиле REST, но Lokad использует FTPS и SFTP, что может показаться удивительным1. Этот выбор не был случайным, а обусловлен требованиями к производительности передачи данных. Хотя этот выбор был сделан десять лет назад на основе предыдущего опыта, аргументы в пользу FTP по-прежнему такие же сильные, как и раньше.

Почему FTP вместо REST

Давайте проясним использование Lokad. Типичная клиентская компания должна передать полную копию от 10 до 100 таблиц базы данных, от 5 до 500 полей на таблицу, в свою учетную запись Lokad. Эти данные представляют собой содержимое ее ERP, MRP, WMS, POS и т. д. Со временем копии должны оставаться актуальными, обычно не старше вчерашнего дня. Общий объем данных, предполагая несжатые файлы с плоским текстом (т.е. CSV), варьируется от 1 ГБ для средней компании до 10 ТБ для крупной компании. Принятием инкрементальных передач данных для больших таблиц объем ежедневных передач обычно составляет от 100 МБ до 10 ГБ.

Клиентская компания - или ее поставщик программного обеспечения или интегратор поставщика - должна успешно передавать соответствующие данные в Lokad. Фактически, в большинстве случаев Lokad никогда не получает доступа к ИТ-системам. Это разумно: по соображениям безопасности сторонним аналитикам не следует иметь прямой доступ к производственным системам. Клиентская компания должна оставаться под контролем, как пропускной пункт, данных, вытекающих из ее системы. Бонусом является возможность удалить каждый бит персональных данных, которые стороннему лицу, такому как Lokad, вообще не нужны.

В теории REST может быть производительным. На практике это не так. При использовании REST надежная передача 100 МБ тонкой реляционной информации ежедневно неизбежно приводит к огромным накладным расходам на производительность, если не задействована команда программных инженеров высшего класса. Два аспекта должны быть обработаны с особой осторожностью: частота вызовов через сеть и повторные попытки. Частота вызовов связана с количеством вызовов через сеть. Повторные попытки связаны с поведением, необходимым для справления с временными сбоями сети. Оба аспекта сложны, особенно на практике.

В корпоративном секторе большинство поставщиков программного обеспечения даже не могут правильно реализовать разбиение на страницы для своих собственных API. Предположение о том, что те же поставщики, внедряя быстрое и грубое интегрирование Lokad, вдруг начнут уделять внимание программному обеспечению высшего класса, не является разумным. Мой опыт в Lokad показывает, что, наоборот, Lokad может рассчитывать только на спешные ИТ-задания. Это нормально. Есть множество битв, которые нужно вести в области ИТ. Реалистично ожидать, что интеграция данных Lokad не будет той битвой, которая потребует привлечения элитных сил.

На практике, когда требуется достичь приемлемой производительности, веб-API превращаются в передачу плоских файлов через HTTP. Это решение устраняет упомянутый выше аспект “частоты вызовов”. Однако остается открытым аспект “повторных попыток”. Как только аспект “повторных попыток” также будет решен, поздравляю, API, наконец, изобрело Протокол передачи файлов (FTP).

Однако этот самодельный FTP далеко не такой инструментированный, как настоящий. FTP поддерживается всеми основными операционными системами. Оба имеют обширную поддержку инструментов с открытым исходным кодом. Соответствующие реализации являются промышленного уровня уже десятилетиями. Конечно, есть некоторые особенности, эти протоколы могут уже не быть “модными”, но когда дело доходит до выполнения работы в течение нескольких часов без привлечения звездных инженеров, сравнение даже не идет.

Вот почему Lokad выбрала FTP для поддержки как входящей, так и исходящей передачи данных. Более того, десятилетний опыт работы показал, что это был правильный выбор. Даже компании по информационным технологиям с низкими навыками и низкой стоимостью, которым было поручено передавать большие объемы реляционных данных быстро и надежно в Lokad через FTP, что ни разу не произошло, даже один раз, за все годы, когда у нас было веб-API.


  1. В дальнейшем, для краткости, FTP всегда будет относиться к “FTPS и SFTP”. Эти два протокола довольно разные, но для данного обсуждения эти различия не имеют значения. Предпочтение одного протокола перед другим в основном зависит от соответствия существующим практикам информационных технологий в интересующей компании. ↩︎