Unified communications
Снова я вторгаюсь не на свою территорию, тем более, что не так далеко территориально коллеги из Itoolabs занимаются темой унифицированных коммуникаций давно и весьма плотно. Поэтому заранее извиниюсь за дилетанство и продолжу фантазировать без какой-либо надежды реализовать эти фантазии самостоятельно. Если кому нужна идея для SaaS-стартапа — это оно, берите на здоровье.
Унифицированные коммуникации — это сведение всех возможных средств взаимодействия посредством типовых технологий обмена информацией по сети в единую точку с целью единообразия хотя бы в рамках одной компании. По сути это такая же инфраструктурная вещь для бизнеса, как локальная сеть с рабочими станциями или интернет-сайт, интегрированный с системой делопроизводстав и учета.
В унифицированные коммуникации заносят обычно следующие протоколы и сервисы:
- SMTP/IMAP (обмен почтовыми сообщениями, файлами, контактными данными, календарными данными)
- XMPP/Jabber (обмен короткими сообщениями в реальном времени, как между двумя абонентами, так и в массовых конференциях)
- SIP/RTP (голосовое общение, телеконференции, видеовызовы, внешние VoIP-звонки, переадресация на мобильные в случае отстутствия сотрудника на месте)
- WebDAV/FTP/SMB/HTTP file storage (возможность публикации и обменом файлами в общем доступе для совместной работы)
- iCAL (календари и персональные планировщики, интегрированные с системой учета задач)
- LDAP (единое сетевое хранилище для структурированных данных, справочников, сертификатов, средств авторизации)
- IPSec (средство для локальной сетевой интеграции в случае удаленной/распределенной работы, VPN)
В общем случае этот набор наверняка покроет большую часть потребностей типовой компании, активно использующей ИТ. При наличии централизованного средства управления и контроля и готового образа для систем виртуализации система достаточна проста и удобна для использования в условиях облачной инфраструктуры, ну и вообще в рамках концепции SaaS. Опционально может быть добавлена интеграция с популярными социальными сетями и сервисами (порой такая интеграция может быть весьма полезной), но это, на мой взгляд, не является ключевым свойством UC.
Как это может быть реализовано. Архитектурно я представляю себе как минимум два пути для реализации:
- первый: по аналогии с Zimbra (а, возможно, даже и на его базе) подобрать хороший опенсорсный софт, как то Asteris, postfix, dspam, openldap, nginx, openssl и т.п., приделать к ним красивую и простую систему управления и запустить в бой. В резульатате получится большая и тяжелая среда, которую обновлять придется только целиком и за раз (как это делает Zimbra), но при этом не придется реализовывать большое количество функционала и не ловить те нюансы, которые уже отработаны разработчиками этого ПО. Но — лоскутное одеяло.
- второй: реализовать все на Erlang-е, что позволить распределять и масштабировать инфраструктуру не только за счет подъема барьеров для виртуальной машины, но и горизонтально. Кроме того, если приглядется к некоторым хорошим программным системам, например к postfix, то можно увидеть, что их архитектура весьма традиционная для ПО на Эрланге. Основная сложность здесь состоит в том, что отлаженых продуктов и библиотек для Эрланга значительно меньше количественно, и их интеграция будет представлять немалый труд, чем в предыдущем случае. Кроме того, усложнится сама архитектрура, поскульку потребуется ради унификации и удаления дублирующих функций хорошо наперед продумать нюансы будущего решения.
На данный момент я бы рискнул и выбрал второй вариант — более трудзатратный, но более интересный и гораздо более простой в дальнейшей эксплуатации и развертывании.

