Перейти к основному содержимому
Версия: 4.12

Архитектура платформы iQChannels

Бизнес архитектура платформы iQChannels

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

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

Архитектурная схема iQChannels

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

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

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

  • Серверное приложение в виде скомпилированных бинарных файлов для всех поддерживаемых операционных систем.
  • Скрипты миграций для баз данных.
  • Панель управления и рабочее место оператора (web single-page-application) в виде сжатых JavaScript, CSS и HTML файлов.
  • iOS SDK: SwiftUI фреймворк для интеграции в мобильное приложение с поддержкой основных менеджеров зависимостей для iOS (Cocoapods).
  • Android SDK: Kotlin maven artifact, готовый для использования с Gradle/Maven.
  • Web widget: сжатые JavaScript и CSS файлы для интеграции с сайтом/интернет-банком.
  • Документация.

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

image-2025-3-19_9-40-46.png

  • iQChannels — центральное монолитное приложение-демон, которое непосредственно взаимодействует с базой данных, интегрируется с внешними системами для авторизации клиентов/получения данных о клиентах (CRM, ДБО и других учетных систем) и предоставляет два типа API для приложений.
  • Public API — единое публичное API, доступное из Интернета, которое используют все клиентские приложения для взаимодействия с сервером. Данное API сильно ограничено по функциональности и не дает возможности совершать административные или любые другие не клиентские функции. API едино для всех внешних клиентов, включая мобильные приложения и виджет на сайте.
  • Private API — внутреннее API, на базе которого построена панель управления и рабочее место оператора. Это API предоставляет полный доступ к системе, включая возможность создавать своих ботов. Внутреннее API является над множеством публичного API, т.е. оно также позволяет строить клиенты, которые работают по протоколу мессенджера в реальном времени.
  • Nginx — Nginx или любой другой web-сервер, который проксирует запросы и постоянные соединения к приложению.
  • ДБО, CRM — возможные точки интеграции с внешними системами, которые iQChannels может использовать для авторизации клиентов и получения информации о клиентах.
  • APNS, Firebase, Huawei — исходящие подключения к APNS-серверам (iOS) и GCM/Firebase-серверам/Huawei (Android) для отправки пуш-уведомлений на мобильные телефоны.
  • Панель управления, рабочее место оператора — панель управления и рабочее место оператора, написанные поверх внутреннего API, как web single-page application.
  • iQBotEngine — возможность подключения бот-платформы (iQBot, либо другой сторонней платформы). API для работы с бот-платформой построен поверх внутреннего API. В рамках данного API, боты могут автоматически отвечать на сообщения пользователей.

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

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

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

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

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

  • Скомпилированные бинарные файлы для всех поддерживаемых операционных систем.
  • Язык программирования: Go 1.9.
  • Поддерживаемые базы данных: PostgreSQL, MS SQL.
  • Поддерживаемые операционные системы: Windows x86/x64, Linux x64, macOS x64.

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

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

Возможна интеграция с любыми внешними системами с использованием готового API.

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

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

SDK для iOS и Android

См. SDK.

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

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

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

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

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

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

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

  • iQChannels устанавливается в LAN.
  • Для reverse proxy (nginx) в DMZ открывается доступ к серверу iQChannels на порте 3001 (по умолчанию).
  • На этом порте расположен сервер с публичным ограниченным API iQChannels. Публичное API не имеет доступа ни к какой административной или внутренней функциональности iQChannels.
  • Для iQChannels открывается доступ к необходимым внутренним системам, включая базу данных и систему авторизации клиентов.

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

  • iQChannels устанавливается в DMZ.
  • Reverse proxy (nginx) подключается к серверу iQChannels по порту 3001 (по умолчанию).
  • Для iQChannels открывается доступ к базе данных.
  • Для iQChannels открывается доступ к системе авторизации клиентов, например, к сервису на шине или к iSimpleBank 2.0.

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

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

  • Max
  • VK
  • Telegram
  • Whatsapp
  • Facebook
  • Instagram
  • Viber

Отказоустойчивость и масштабируемость

iQChannels поддерживает работу в режиме кластера для обеспечения отказоустойчивости и горизонтальной масштабируемости сервера приложений.

См. Развертывание iQChannels в режиме кластера.