24 December 2013

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

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

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

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

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

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

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


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

А как вы интегрируете свои SaaS решения с учетными системами заказчика?
Tags:SaaSJava-appletsинтеграция
Hubs: Java SaaS / S+S Geoinformation services
+2
3.7k 11
Comments 2
Popular right now