1.0 Введение

IQChannels — это прикладной программный продукт, реализующий функции чата сотрудников банка с клиентами, содержащий готовые SDK для мобильных приложений, виджет для сайта, и интеграцию с различными внутренними системами банка (iSimpleBank 2.0 и другими системами дистанционного банковского обслуживания, АБС, CRM, Websphere MQ и др.).

1.1 Основные возможности

1.1 Требования для установки

1.2 Описание поставки

IQChannels поставляется в виде коробочного решения, готового для установки на серверы организации.

Состав поставки:

2.0 Общая архитектура решения

3.0 Протокол мессенджера

Протокол для обмена сообщениями между клиентами и сервером построен на основе анализа протоколов существующих мессенджеров, включая Whatsapp, Telegram, VK, Facebook.

3.1 Технические характеристики

3.2 Структура

Протокол делится на две части:

3.3 Обзор алгоритма работы

После авторизации клиента (если клиент не анонимный) клиентское приложение (SDK для мобильных или виджет на сайте) получает последнее состояние с сервера и устанавливает постоянное подключение к серверу для получения событий о новых сообщениях, прочитанных сообщениях и т.д.

3.4 Авторизация клиентов

Для авторизации клиента используется существующие системы в мобильных приложениях/интернет-банках. Мобильное приложение может передать в SDK IQChannels любые данные для авторизации клиента (например, текущий токен авторизации в мобильном приложении или идентификатор сессии). Далее SDK передает эти данные по защищенному каналу на сервер iqchanneld, а последний использует внешнюю систему для авторизации клиента (например, iSimple или сервис на шине).

3.5 Синхронизация истории и получение обновлений

Вся история сообщений представляет собой последовательность событий, с постоянно увеличивающимися номером. Клиент, который частично синхронизировал данные, присылает номер последнего события и получает в реальном времени поток событий, начиная с этого номера.

Подобный подход использует Telegram и другие мессенджеры. Он позволяет с минимальными накладными расходами на трафик синхронизировать и получать консистентное состояние на клиенте.

4.0 Серверное приложение

Application Daemon — это монолитное серверное приложение, которое является центральной частью системы и реализует бизнес-логику приложения, но не пользовательский интерфейс. Для пользовательских интерфейсов серверное приложение предоставляет API:

1) внешнее публичное ограниченное API для мобильных приложений и виджета на сайте,

2) внутреннее расширенное API, которое предоставляет доступ ко всей функциональности системы.

4.1 Технические характеристики

4.2 Интеграция с внешними системами

Для авторизации клиентов и запроса данных клиентов для отображения в интерфейсе оператора IQChannels должен быть интегрирован с внешними системами банка.

Интеграция с iSimpleBank 2.0 поставляется из коробки и позволяет авторизовывать существующих клиентов банка через мобильные приложения и интернет-банк.

Интеграция с другими системами, в т.ч. с Websphere MQ или CRM возможна, но требует дополнительной заказной разработки.

5.0 SDK для iOS и Android, push-уведомления

SDK для обеих мобильных платформ разделены на две части:

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

5.1 iOS SDK

SDK для iOS представляет фреймворк, написанный на Objective-C.

5.2 Android SDK

SDK для Android представляет собой Maven/Gradle артефакт, написанный на Java.

5.3 Push-уведомления

Нативные пуш-уведомления используются для отправки новых сообщений на мобильные телефоны, когда отсутствует постоянное подключение клиента к серверу.

Для iOS используются APNS-серверы Apple. Для Android используются GCM/Firebase серверы Google. В панели управления IQChannels задаются сертификаты и ключи, которые серверное приложение будет использовать для отправки пуш-уведомлений.

6.0 Статистика и аналитика

IQChannels построено исходя из современных требований для сбора и последующего анализа данных. Панель управления предоставляет визуализацию базового среза текущей активности в системе, включая количество активных клиентов, операторов и т.д. Для более глубокого анализа данных система хранит в базе данных логи всей активности пользователей и сотрудников банка. 

Логи представляют собой структурированные события, которые описывают все действия, совершенные пользователями или сотрудниками банка в системе, с указанием типа событий, IP-адресов, с которых было произведено действие и т.д. Логи позволяют восстановить и проанализировать всю пользовательскую активность в системе.

Логи и другие данные могут быть выгружены во внешнюю систему, например, в DWH, для дальнейшего анализа, построения OLAP-куба или для использования в рамках машинного обучения.

7.0 Установка в LAN или в DMZ

Серверное приложение может быть установлено как в во внутреннюю сеть банка, так и в DMZ.

Особенности установки в LAN:

Особенности установки в DMZ:

8.0 Поддержка внешних мессенджеров

На текущий момент IQChannels поддерживает следующие мессенджеры: