На этапе проектирования сервиса мы приняли решение: интеграция сервиса должна быть максимально простой и не требовать от бизнеса установки утилит и тем более изучения нашего API. Пользователь, который принимает решение об использовании ПО на предприятии, должен максимально быстро импортировать свои данные в сервис, обработать их и увидеть результат. С другой стороны при ежедневной работе интеграция должна выполнятся в один клик и не требовать заполнения дополнительных форм.
Поскольку мы не встречали заказчиков, у которых нет Excel, то для первого случая мы выбрали именно его. В будущем мы планируем добавить поддержку Calc (OpenOffice, LibreOffice) и несколько облачных решений, таких как Google SpreadSheet и MS Excel Web App. Заполнение электронной таблицы для бизнес пользователя максимально удобно и занимает минимум времени.
Алгоритм интеграции очень простой, его техническую реализацию мы описывали тут:
- заполняем таблицу по шаблону
- перетаскиваем её в форму импорта
Для второго случая требуется решение, которое могло бы установить соединение с СУБД заказчика и выполнить экспорт и импорт данных. Наш опыт подсказывал написать утилиту, которая бы вызывала методы API сервиса с одной стороны и API учётной системы с другой. Задача достаточно проста для реализации, но не удобна в использовании, т.к. пользователь должен переключится с Web-браузера на утилиту, что-то нажать, вернуться назад и обновить интерфейс. Мы остановились на Java-applet. По-моему, это единственное решение, которое позволяет установить соединение с промышленными СУБД прямо в браузере, так сказать мост между мирами. От заказчика в данном случае требуется создать на сервере СУБД две хранимые процедуры для импорта и экспорта соответственно, завести пользователя, у которого будут права на их запуск, и указать это всё в параметрах настройки SaaS. Единственный отрицательный момент такого решения — выполнять такой обмен пользователь сможет только находясь в рабочей сети, т.к. сервер доступен по обычному (внутреннему) имени.
В архитектуре сервиса это выглядит вот так:
А вот видео как процесс выглядит на сервисе:
На видео видна загвоздка, с которой я столкнулся в процессе реализации решения:
возможно кто-то из пользователей уважаемого сообщества сталкивался с данной проблемой и нашёл способ её одолеть, подскажите решение в комментах.
Сертификат которым подписан Java-applet установлен на клиентской машине как trusted.
А как вы интегрируете свои SaaS решения с учетными системами заказчика?
Автор: AntLogist