Как стать автором
Обновить

Рубим гордиев узел деловых коммуникаций

Блог компании Mail.ru Group Мессенджеры *Разработка систем связи *

Вступление

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

«Унифицированные коммуникации» постоянно на слуху, однако почти каждый специалист понимает под этим понятием и представляет себе разные сущности. Чаще всего, речь идет о добавлении к основному каналу коммуникации (голосовой связи или видеоконференциям) дополнительных каналов (мгновенные сообщения, передача файлов) или дополнительных клиентов – так, для производителя телефонного оборудования почти революционным является добавление в набор продуктов софтового клиента с минимальными возможностями интеграции с ПО другими производителями.

На самом деле, сегодня каналов коммуникации, которыми активно пользуется среднестатистический пользователь, – огромное количество. Помимо телефонии и мгновенных сообщений в специализированных приложениях, а также SMS-сообщений, это и обмен файлами и документами посредством облачных хранилищ, ведение простейших страниц или микроблогов, отправка и получение электронной почты – старой, но бодрой, а главное, наиболее широко распространенной «рабочей лошадке» большинства организаций, без которой почти невозможно представить себе современный документооборот. Даже совместную работу с календарями и задачами можно считать средством коммуникации.
«А теперь на миг представьте, что всё многообразие средств общения и обмена файлами можно объединить в рамках одной платформы»
Конечно, можно идти по пути интеграции продуктов с открытым исходным кодом, каждый из которых специализируется в своей области. Например: Postfix для передачи и приёма почты, Dovecot для доступа к ней, DaviCal или Radicale для доступа к календарям, Asterisk для телефонии, Openfire для мгновенных сообщений, отдельный зоопарк в рамках Apache для Web-интерфейса работы с почтой и домашних страничек пользователей, ну а чтобы это хоть как-то взаимодействовало с общей пользовательской базой, рядом придется развернуть OpenLDAP. Кажется ничего не забыли… или забыли? Какая разница, если уже достаточно страшно.

Можно не городить огород и взять готовый проект – например Zimbra. Таким образом, по-меньшей мере, можно обойтись без изобретений велосипедов (когда уже есть мотоцикл) и, даже возможно, получится обойти большую часть расставленных граблей, благо, собаку-поводыря создатели решения предоставляют, для их (граблей) обхода.

Возможно, дело обстоит лучше в категории платного софта? Ведь «всегда есть» Microsoft – бесспорный лидер в офисном программном обеспечении, которое здорово поддержано серверной архитектурой. Ведь и архитектура, сама по себе, это довольно сложная (отдельный сервер для почты/календарей, отдельный для коммуникаций в реальном времени, обязательный сервер Active Directory, плюс что-то ещё «по-мелочи») конструкция, но проблем с интеграцией внутри данного хозяйства быть не должно или количество таких проблем будет минимально.

Сложности начнутся ровно в тот момент, когда вы попытаетесь прикрутить нечто, отсутствующее в стандартной «коробке» или будете пытаться взаимодействовать с продуктами других производителей – даже по стандартным протоколам. Потому что стандарты не указ «Большому Брату» – за вас подумали и решили, как лучше.
«Так, неужели, все настолько сложно в мире унифицированных коммуникаций и серебрянной пули, убивающей нескольких зайцев сразу – нет?»
На самом деле – есть. Это продукт, который одним исполняемым модулем способен поддержать все многообразие протоколов коммуникации с поддержкой клиентов других производителей и, в качестве вишенки на торте, предоставляет приложений – тонкий клиент, способное надежно контролировать и управлять всем этим букетом.

Клиент-сервер единой коммуникационной платформы – что это и зачем?

Это удобно

Сервер CommuniGate Pro, основанный на открытых стандартах, является интегрированной платформой, внутри которой реализованы как, например, функции хранения и отправки сообщений (это электронная почта и ведение календаря), так и функции коммуникации в реальном времени (совместная работа, функции голосового общения с видеопотоком, а также мгновенные сообщения). Все это в сетях IPv4 и IPv6.
Это просто и эффективно

Наше решение поставляется со встроенным веб-интерфейсом как для пользователя, так и для администратора. Вдобавок, нами были созданы коммуникационные клиенты «Pronto!», не говоря о том, что можно использовать любые сторонние клиентские приложения и устройства, использующие и поддерживающие стандарты SMTP, IMAP, POP, MAPI, SIP, HTTP, FTP, WebDAV, CalDAV, CardDAV, XIMSS и множество других распространенных протоколов.

Так как мы работаем на существующем рынке, то и используем в своем продукте наиболее широко распространенные протоколы. Для электронной почты и группового взаимодействия мы используем безальтернативный SMTP, а для коммуникации в реальном времени – SIP и XMPP протоколы.

Основные подсистемы CommuniGate Pro

Составляющие мощного комбайна, который подходит крупнейшим корпоративным и государственным заказчикам:

Управление идентификацией

Мультидоменная архитектура (подтверждённая на практике работа более чем 120 000 доменов на одной системе), поддержка конфигураций как с выделенными, так и с совместно используемыми IP адресами.

Концепция Пользователя, включающая в себя «Хранилище Почты», «Хранилище Файлов», «Настройки Пользователя» и базы данных, содержащие в себе полную информацию о «Пользователе».

Группы, Переадресаторы, Псевдонимы и другие Объекты Доменов.

Мета-Справочник, объединяющий Локальные и Удалённые Тома.

LDAP доступ в «Справочник» и в базы данных, хранящие информацию «Пользователей».

Механизм внешней аутентификации для интеграции с решениями сторонних производителей.

Службы RADIUS.

Тарификационная система, поддерживающая различные типы «Остатков» для каждого «Пользователя» и предварительное резервирование средств.

Управление хранением данных

Хранение почты в различных папках, совместный доступ к папкам, списки прав доступа к папкам (ACL).

Форматы папок - текстовые файлы, папка (директория), другие контейнеры данных.

Хранение файлов в публичных и личных папках, виртуальные файлы.

Хранение и обработка информации о групповом взаимодействии в соответствии со стандартами iCalendar и vCard.

Передача почты

Единая обработка очереди сообщений.

ESMTP и LMTP механизмы обмена почтой.

Анти-Спам и другие встроенные механизмы защиты.

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

Правила автоматической обработки почты.

Списки рассылки почтовых сообщений с автоматической обработкой ошибок и с веб-интерфейсом к архивам списка.

Извлечение почты с других почтовых серверов через POP3 протокол.

Обмен данными с внешними программами для специализированных приложений.

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

Сигналы реального времени

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

XIMSS протокол для передачи мгновенных сообщений, статуса присутствия, аудио и видео коммуникаций.

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

XMPP протокол для мгновенных сообщений и статуса присутствия.

SMPP протокол для мгновенных сообщений через SMS.

Механизмы прохождения NAT («ближний» и «дальний») для XIMSS, SIP, RTP и медиа-протоколов, использующих TCP.

Регистратор (SIP Registrar), подключающий прокси (forking Proxy) и сервер присутствия.

Правила автоматической обработки сигналов.

Наборы событий (Event packages) для информации о статусе присутствия, ожидающих голосовых сообщениях, регистрациях, статусе диалогов и для иных сервисов.

STUN сервер для решений по прохождению NAT на стороне клиента.

Parlay X интерфейс.

Среда для приложений реального времени

Настраиваемые на уровне домена среды для приложений.

Компонент Медиа Сервер для терминации звонков и организации конференций со встроенной поддержкой прохождения NAT и шифрования.

Язык программирования CG/PL для быстрой разработки надежных приложений.

Встроенные операции для управления вызовами, медиа-потоками и для организации многосторонних конференций.

Интегрированный доступ к хранилищу Сообщений и Файлов.

Службы доступа к данным

Одновременный доступ с разных клиентов ко всем данным «Пользователя» с помощью различных протоколов.

POP3 и IMAP4 протоколы доступа к почте клиентских программ.

MAPI интерфейс для почтовых клиентов, работающих под «Microsoft® Windows» (Outlook и другие приложения, работающие через MAPI).

Веб интерфейс пользователя для доступа к «Папкам», «Средствам Группового Взаимодействия», к «Хранилищу файлов», к базе данных, хранящей информацию и настройки пользователя, а также для работы с «Сигналами» и для передачи сообщений.

Поддержка различных языков и настраиваемый внешний вид для HTML, WAP/WML, и I-Mode интерфейсов.

XIMSS интерфейс для доступа к «Папкам», «Средствам Группового Взаимодействия», к «Хранилищу файлов», к базе данных, хранящей информацию и настройки пользователя, а также для работы с «Сигналами» и для передачи сообщений.

HTTP, WebDAV, FTP и TFTP доступ к «Хранилищу файлов» пользователя.

AirSync интерфейс для электронной почты и данных групповой работы для клиентов, работающих под управлением «Microsoft® Windows Mobile» (серверный ActiveSync).

CalDAV интерфейс для доступа к папкам «Календаря» и «Заданий».

Механизмы Публикации/Подписки (WebCal/iCal) через HTTP протокол для папок «Календаря» и «Заданий».

CardDAV интерфейс для доступа к папкам «Контактов».

Передовые средства безопасности

SASL методы для безопасной аутентификации.

GSSAPI аутентификация (включая Kerberos V5), единый механизм входа пользователя (single sign-on).

Индивидуальные пользовательские сертификаты для безопасной аутентификации пользователей.

Безопасная Почта, встроенные в веб-интерфейс средства для работы с S/MIME (шифрование/расшифровка, подписывание цифровой подписью и проверка цифровой подписи).

Автоматическое шифрование для безопасного хранения информации.

SSL/TLS - безопасный обмен данными для SMTP, SIP, IMAP, POP, HTTP, LDAP, ACAP, PWD и сессий администрирования.

СОРМ - перехват сообщений в соответствии с требованиями законодательства.

Многоуровневое Администрирование

Веб-интерфейс администратора для администрирования сервера, управления услугами и мониторинга.

CLI/API интерфейс для автоматизации выполнения задач по администрированию, управлению услугами и мониторингу.

SNMP агент для удалённого мониторинга.

Триггеры для упреждающего мониторинга.

Poppwd протокол для удалённого изменения пароля.

Управление через LDAP (опционально) для интеграции с действующими системами.

BSD syslog - Сервер консолидированного ведения «Журналов работы» сторонних программ.

Использование нескольких серверов

Распределённые домены для работы в конфигурациях с несколькими одиночными серверами.

Статические кластеры для распределения пользователей по нескольким серверам.

Динамические кластеры для высокоэффективного масштабирования без распределения пользователей. Решение промышленного класса, обеспечивающее безотказную работу в течении 99.999% времени эксплуатации, на практике доказавшее свою эффективность в обслуживании более чем 5,000,000 активных пользователей.

Кластер из кластеров для сверхбольших сайтов (свыше 10 000 000 активных пользователей).

Как это работает: SMTP, SIP, IMAP, XMPP, LDAP, XIMSS, CalDAV, WebDAV и т.д. в «одной коробке»

Итак, разобравшись со структурой клиент-сервера CommuniGate Pro, обратим чуть больше внимания на то, как все это работает.

По нашему мнению, CommuniGate Pro является лучшим масштабируемым решением для объединенных коммуникаций, доступным на сегодняшний день на рынке. Есть очень небольшое количество решений, которые помимо обмена данных в реальном времени с другими серверами по протоколам SIP и XMPP предоставляют возможности взаимодействия с клиентами посредством XIMSS, ParlayX и скриптов CG/PL.

Наш медиа-сервер использует для обмена данными прокол RTP и позволяет связывать более двух собеседников в аудиоконференциях с применением различных аудиокодеков, а встроенный модуль STUN и поддержка ICE, вкупе с интегрированным медиа прокси-сервером, позволяют решать проблемы, характерные для VoIP-клиентов за NAT-файрволлами.

Динамический же кластер реализует архитектуру, в которой все его узлы «активны». По нашему опыту, другие продукты довольствуются схемами восстановления после падения или горячей замены, но только не наше решение. В динамическом кластере все системы работают в виде одной логической сущности, соответственно все узлы берут на себя долю нагрузки. В то же время, каждый узел можно извлечь в любом момент или, аналогично, можно добавить новый. Таким образом, мы позволяем проводить обслуживание любого члена динамического кластера и увеличивать, или уменьшать, задействованные мощности прямо во время работы без прерывов в предоставлении сервиса пользователям.

Каковы ключевые преимущества динамического кластера? Рассмотрим их чуть детальнее:

Техническое обслуживание узлов без остановки сервиса

Как правило обновления програмного и/или аппаратного обеспечения могут привести к ухудшению времени доступности системы. В мире корпоративных технологий и решений подобные события часто называют «запланированные отключения» или «техническое обслуживание». Однако, в мире SaaS-решений операторского уровня такие отключения являются недопустимыми – это все-равно что ваш телефон бы отключался по выходным на «тех. обслуживание».


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

Единая система

Динамический кластер CommuniGate Pro позволяет оператору рассматривать всю систему как единую сущность, даже если она состоит из более чем 40 серверов. Таким образом, управление масштабной инфраструктурой на порядки проще, чем в случае с системами корпоративного уровня.

SaaS-провайдерам, предоставляющим услуги для малого бизнеса и индивидуальных предпринимателей, нужна легко масштабируемая система. И динамический кластер обычно представляется в виде облаков, обслуживающие более 20 000 небольших (5-30 конечных пользователей) компаний.

В то же время, в случае с IP АТС и почтовыми решениями, которые не разрабатывались с прицелом на использование как SaaS платформы, управление резко усложняется с ростом пользовательской базы из-за того, что количество отдельный частей увеличивается — прокси сервера, базы данных, LDAP сервера, медиа шлюзы и т.д.

Динамический кластер — элегантное и эффективное решение, без лишних затрат растущее вместе с пользовательской базой.

Эффективность

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

На большинстве 64-битных систем операторского класса (Solaris, Linux, BSD) CommuniGate Pro может достичь 90 000 сессий на одну систему. Также существуют проверенные на практике работающие конфигурации для более чем 450 000 конечных пользователей на одной системе.

Предсказуемая масштабируемость

Динамический кластер — система с минимальными накладными расходами на масштабирование. Для увеличения емкости системы достаточно простых дешевых серверов форм-фактора 1U или блейд-серверов.

В отличие от других архитектур с высокими требованиями на вычислительные мощности, для нашей платформы не рекомендовано использование слишком мощных серверов (таких как 8-way). Например, динамический кластер 4х4 с 2-ух процессорными серверами лучше, чем 2х2 с 4-ех процессорными серверами, так как в первом случае удельная нагрузка на один сервер гораздо ниже.

Так как исходный код платформы хорошо распараллелен, вычислительные ресурсы и память используются максимально эффективно, а прогнозирование объема необходимых ресурсов при увеличении пользовательской базы прозрачно и близко к линейной зависимости. Все узлы кластера CommuniGate Pro используют один и тот же исполняемый файл, и поэтому отсутствуют различия в производительности узлов, характерные для неоднородных архитектур.

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

Высокая доступность

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

Архитектура Динамического Кластера

Основные элементы архитектуры кластера CommuniGate Pro включают в себя:
Балансировщик нагрузки
Топология сети
Фронтенд
Бэкенд
Общее хранилище типа NFS/CFS

Интерфейс администратора и возможности

Администрирование

CommuniGate Pro Сервер может настраиваться и администрироваться удалённо (через интернет) при помощи любого веб-браузера, а вот какие возможности по удаленному администрированию мы предлагаем клиентам:

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

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

Если пользователю предоставлен доступ к области «Наблюдение», то ему могут быть предоставлены также дополнительные права доступа (такие как: создание почтовых очередей, их отклонение, изменение установок Log Manager и т.п.)

Справочник

Справочный раздел содержит страницы, которые позволяют администратору сервера настраивать услуги «Справочника» CommuniGate Pro.

Пользователи

Раздел «Пользователи» содержит страницы, которые позволяют администратору создавать и удалять «Домены» и их «Пользователей», изменять установки доменов и вносить изменения в настройки пользователей.

«Главный раздел»

Данный раздел содержит страницы, которые позволяют администратору предоставлять и аннулировать права администратора сервера, а так же вносить изменения в лицензионные ключи сервера.

Пользовательские клиенты

CommuniGate Pro использует распространенные и общепринятые на рынке протоколы, поэтому вы можете работать
с платформой с помощью самых разнообразных приложений:
1
Для почты и календарей

Pronto!

Outlook (MAPI коннектор)

Thunderbird (Lightning для календарей)

Apple Mail

2
Для быстрых сообщений

Pronto! (и для смартфонов)

Thunderbird

QIP (через XIMSS)

Adium

IM+ (для смартфонов)
3
Для телефонии

Pronto! (и для смартфонов)

QIP (через XIMSS)

Zoiper (для смартфонов)

Оборудование и совместимость

Как мы уже упоминали выше, решение CommuniGate Pro устанавливается либо на компьютер-сервер, либо на мультисерверный кластер на базе ОС Unix, Linux, Microsoft Windows, Mac OS X или любой другой поддерживаемой ОС, однако, упомянутого набора «должно хватить».

Современный сервер с конфигурацией близкой к 4-м ядрам и 4-гигабайтам оперативной памяти способен обслужить более 1500 одновременных голосовых соединений и 2500-10000 активных аккаунтов (точное число зависит в первую очередь от ОС и во-вторую очередь от соотношения звонков с другими соединениями).

Мы также предоставляем разработчикам открытую среду для создания дополнительных функций обработки почты, мгновенных сообщений и VoIP функций с помощью скриптов на языке CG/PL.
PSTN шлюзы

Для организации звонков в классические телефонные сети нужен либо SIP провайдер, либо специальный шлюз называемый PSTN (ТФОП) шлюз. Связь между шлюзом и сервером также организована по SIP протоколу, что также является общепринятым стандартом на рынке VoIP-коммуникаций.

Заключение

Вот таким простым и, без сомнения, элегантным способом наша коммуникационная платформа CommuniGate Pro позволяет объединить все используемые внутри- или внешне-корпоративные каналы коммуникации в одно понятно пользователю «окно».

Учитывая тот факт, что существует масса клиентских приложений для использования как всех возможностей платформы, так и её отдельных частей, мы уверены, что любой желающий использовать CommuniGate Pro «на полную» сможет это сделать безо всяких проблем, на любом желаемом устройстве – персональном компьютере, мобильном телефоне, или аппаратной VoIP-трубке. Легко, а главное – непринужденно!
Теги: communigateproprontosipxmppsmtpvoipimapapicaldavwebdavатскоммуникационный серверклиентадминистрированиепользовательские группы
Хабы: Блог компании Mail.ru Group Мессенджеры Разработка систем связи
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 33
Комментарии Комментарии 33