WINGS Communication Server
WINGS Communication Server (WCS) – высоконадежная промышленная платформа для быстрого построения приложений и сервисов на основе технологий SMS, MMS, USSD, Email. Продукт позволяет в кратчайшие сроки создавать и развертывать мобильные приложения и сервисы произвольной сложности, используя для этого настройки системы и не прибегая к программированию.
WINGS Communication Server представляет собой решение операторского класса, реализующее все требуемые механизмы обеспечения отказоустойчивости и надежности, возможности наращивания ресурсов платформы, замены/модернизации аппаратной части без перерывов в обслуживании клиентов. Архитектура решения обеспечивает высокую пропускную способность, степень масштабирования и балансировку нагрузки. Система имеет открытую архитектуру, основанную на промышленных стандартах, что дает возможность быстро добавлять собственные компоненты (агенты), определять правила обработки сообщений. По архитектуре WCS представляет собой сервер интеграции, что позволяет легко интегрироваться с внешними системами.
Ключевые характеристики
- Исключительная гибкость настройки, быстрое построение приложений и сервисов произвольной сложности без программирования;
- Бизнес-логика независима от используемых телекоммуникационных технологий;
- Быстрая интеграция с любыми информационными системами (JMS, СУБД, HTTP(S), command line, e-mail, XML-файлы, и проч.);
- Возможность работы в рамках одной системы с различными каналами связи и различным оконечным оборудованием;
- Высокая надежность и отказоустойчивость;
- Масштабируемость до больших распределенных систем;
- Открытая расширяемая система;
- Кроссплатформенность (продукт полностью реализован на Java);
- Гибкое распределение трафика между доступными каналами связи (с учетом загруженности и приоритетности каналов, маршрутизация на основе содержания сообщения, и т. п.);
- Поддержка любых СУБД (через JDBC).
Архитектура
WINGS Communication Server - это standalone приложение, построенное по архитектуре SOA (Service-Oriented Architecture). WCS является многоагентной распределенной системой, состоящей из независимых агентов (модулей), все или часть которых обрабатывают данные в реальном масштабе времени.
Взаимодействие между модулями построено на асинхронном обмене XML-сообщениями. В качества шины сообщений используется JMS (Java Message Service).
Система позволяет фильтровать, маршрутизировать, преобразовывать сообщения, а также генерировать сообщения по заданному расписанию (по сути, является content based router). В зависимости от содержания сообщения принимается решение о пути его дальнейшей обработки. Имеется возможность определять как начальную структуру системы (конфигурация системы, иерархия потоков данных, граф обработки сообщений, правила обработки сообщений, варианты реакции системы на события и проч.), так и динамические изменения структуры системы (без перезагрузки, в реальном времени) по сценариям, определяемым пользователем. Например: динамическое изменение настроек системы в качестве реакции на определенные события, запуск/остановка/приостановка любых компонент системы без перезагрузки системы в целом и без потери информации.
Ключевым элементом системы является модуль системы. Все компоненты системы могут различным образом комбинироваться и выполняться как на отдельном компьютере, так и в сети.
Обмен сообщениями между модулями производится не напрямую, а через очереди. Для модулей системы определяются:
- входные очереди – очереди, из которых модуль берет сообщения;
- выходные очереди – очереди, в которые модуль кладет сообщения;
- информационная очередь – очередь, в которую модуль помещает информацию о своих событиях.
Очереди могут храниться в памяти, в файловой системе. в БД. Возможно использование кластерных очередей, что позволяет балансировать нагрузку между разными серверами. Например, 30% сообщений будут направляться на один сервер, 70% - на второй.
Сообщения могут быть адресованы всему модулю, группе правил, или конкретному правилу. Адресация сообщения может определяться как атрибутом сообщения, так и конфигурацией системы. Для некоторых сообщений может потребоваться обработка только частью правил. Использование целевой адресации позволяет существенно оптимизировать работу модуля, так как позволяет не проверять заведомо неподходящие правила и избежать лишних проверок.
Настройка конфигурации Системы определяет:
- запускаемые экземпляры модулей;
- правила взаимодействия между экземплярами модулей.
Данная архитектура позволяет:
- Обрабатывать сообщения конвейерно: модуль Системы забирает сообщение из входной очереди, обрабатывает его, помещает в выходную очередь, и, не дожидаясь ответа от адресата, продолжает обработку следующего сообщения.
- Поддерживать работоспособность всей системы при отказе одного или нескольких модулей: сообщения сохраняются во входной очереди модуля и могут обрабатываться другими экземплярами модуля.
- Обновлять/добавлять модули Системы без остановки работы Системы в целом.
- Масштабировать Систему путем добавления экземпляров модулей для обработки сообщений из одной входной очереди. Экземпляры обработчиков могут находиться как на одном сервере, так и на разных.
- Реализовывать логику работы Системы с использованием: XSL, SQL, PHP, PERL, JSP, C++, Java и пр.
Модули системы
Rule Engine. Является ключевым модулем системы, связующим звеном, позволяющим объединить все модули в единое целое, определять логику работы системы, не прибегая к программированию. Логика работы модуля целиком определяется с помощью общепринятых стандартов XML и XSL и основана на правилах. Модуль поддерживает два типа правил: plain («обычные» правила) и timer-правила. Plain-правила определяют правила обработки входных сообщений и содержат условие применимости и набор действий. Правило применяется в случае удовлетворения условия, и заключается в выполнении действий. Timer-правила позволяют инициировать отправку сообщений по заданному расписанию (простейший пример: запросы к базе данных с определенным интервалом).
HTTP-Broker. Основная задача – обработка входящих HTTP(S) запросов. HTTP Broker является WEB-приложением. Модуль получает входящий HTTP(S) запрос, преобразует запрос в XML сообщение и помещает сообщение в исходящую очередь. Ответные status-сообщения передаются HTTP(S) клиенту в ответ на исходный запрос.
SMPP-сервер. Основная задача - подключения ESME, с возможностью отправки/получения SMS-сообщений по протоколу SMPP поверх TCP/IP.
SMTP-сервер. Основная задача – обработка входящих email-сообщений. SMTP-сервер получает входящее email-сообщение, конвертирует сообщение в XML формат и передает в Систему.
Manager. Встроенный системный модуль, предназначенный для управления системой.
HTTP-модуль. Основная задача - выполнение запросов к HTTP-серверам, получение информации с веб-сайтов (открытых/защищенных), интеграция с внешними системами.
SQL-модуль. Основная задача - выполнение SQL-запросов к СУБД. Используется механизм JDBC, поддерживаемый подавляющим большинством современных СУБД. Параметры соединения, доступ и пр. определяется настройками модуля. SQL запросы формируются динамически модулем Rule Engine.
Command Line модуль. Основная задача - запуск внешних программ и возвращение результата их выполнения в систему.
File Interface модуль. Основная задача – отправка и получение сообщения в систему, используя xml-файлы. Отправка сообщения в систему осуществляется путем копирования xml-файла, содержащего сообщение, во входную директорию модуля, находящуюся в файловой системе.
SMTP-модуль. Основная задача - отправка email-сообщений. SMTP-модуль получает из системы XML сообщение, конвертирует его в email-сообщение, отправляет email-сообщение SMTP-серверу и возвращает в систему статус-сообщение об отправке.
POP3–модуль. Основная задача - осуществление доступа к учетным записям POP3 для получения и удаления email-сообщений. POP3-модуль конвертирует полученные email-сообщения в XML формат и передает их в систему.
Router. Основная задача - осуществление адаптивной динамической маршрутизации исходящих сообщений между доступными каналами передачи (экземплярами коммуникационных модулей).
SMPP-модуль. Основная задача - отправка и получение SMS-сообщений, используя прямое SMSC-соединение по протоколу SMPP.
UCP/EMI-модуль. Основная задача - отправка и получение SMS-сообщений, используя прямое SMSC-соединение по протоколу UCP/EMI.
MM7-модуль. Основная задача - отправка и получение SMS-сообщений, используя прямое SMSC-соединение по протоколу MM7.
CIMD-модуль. Основная задача - отправка и получение SMS-сообщений, используя прямое SMSC-соединение по протоколу CIMD.
Modem SMS. Основная задача – отправка и получение SMS-сообщений, используя GSM-оборудование (GSM-модем или мобильный телефон).
Преимущества архитектуры
- гибкость системы:
- логика работы системы определяется схемой взаимодействия модулей и правилами обработки сообщений;
- быстрая интеграция с любыми информационными системами;
- поддерживается множество способов интеграции: APIs, web-services, HTTPS(S), СУБД, JMS, XML-файлы, e-mail, command line и проч.;
- масштабируемость до больших распределенных систем:
- распределенность (компоненты системы могут находиться на различных компьютерах);
- прозрачность местоположения компонент системы;
- кроссплатформенность (система полностью реализована на Java);
- возможность балансировки нагрузки;
- неограниченная масштабируемость;
- открытость системы:
- открытая архитектура, основанная на стандартах XML и JMS (Java Message Service – поддерживается ведущими производителями интеграционных решений);
- возможность быстро добавлять собственные компоненты (агенты);
- компоненты системы полностью независимы и не предполагают существование друг друга; добавление новых компонент, не затрагивает существующих;
- гибкое определение правил обработки сообщений;
- возможность программирования правил обработки сообщений на языке Java;
- подключаемость внешних приложений и средств операционной системы;
- динамическое конфигурирование системы;
- удаленное управление, администрирование и мониторинг системы.