Как мы интегрируем SaaS решение с учетной системой заказчика

в 7:47, , рубрики: java, SaaS, SaaS / S+S, Геоинформационные сервисы, интеграция, метки: ,

На этапе проектирования сервиса мы приняли решение: интеграция сервиса должна быть максимально простой и не требовать от бизнеса установки утилит и тем более изучения нашего API. Пользователь, который принимает решение об использовании ПО на предприятии, должен максимально быстро импортировать свои данные в сервис, обработать их и увидеть результат. С другой стороны при ежедневной работе интеграция должна выполнятся в один клик и не требовать заполнения дополнительных форм.

Поскольку мы не встречали заказчиков, у которых нет Excel, то для первого случая мы выбрали именно его. В будущем мы планируем добавить поддержку Calc (OpenOffice, LibreOffice) и несколько облачных решений, таких как Google SpreadSheet и MS Excel Web App. Заполнение электронной таблицы для бизнес пользователя максимально удобно и занимает минимум времени.

Алгоритм интеграции очень простой, его техническую реализацию мы описывали тут:

  • заполняем таблицу по шаблону
  • перетаскиваем её в форму импорта

Для второго случая требуется решение, которое могло бы установить соединение с СУБД заказчика и выполнить экспорт и импорт данных. Наш опыт подсказывал написать утилиту, которая бы вызывала методы API сервиса с одной стороны и API учётной системы с другой. Задача достаточно проста для реализации, но не удобна в использовании, т.к. пользователь должен переключится с Web-браузера на утилиту, что-то нажать, вернуться назад и обновить интерфейс. Мы остановились на Java-applet. По-моему, это единственное решение, которое позволяет установить соединение с промышленными СУБД прямо в браузере, так сказать мост между мирами. От заказчика в данном случае требуется создать на сервере СУБД две хранимые процедуры для импорта и экспорта соответственно, завести пользователя, у которого будут права на их запуск, и указать это всё в параметрах настройки SaaS. Единственный отрицательный момент такого решения — выполнять такой обмен пользователь сможет только находясь в рабочей сети, т.к. сервер доступен по обычному (внутреннему) имени.

В архитектуре сервиса это выглядит вот так:
image

А вот видео как процесс выглядит на сервисе:

На видео видна загвоздка, с которой я столкнулся в процессе реализации решения:
image
возможно кто-то из пользователей уважаемого сообщества сталкивался с данной проблемой и нашёл способ её одолеть, подскажите решение в комментах.
Сертификат которым подписан Java-applet установлен на клиентской машине как trusted.

А как вы интегрируете свои SaaS решения с учетными системами заказчика?

Автор: AntLogist

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js