Что нового в Eserv/4
Новый интерфейс администратора
В Eserv/3 для управления использовался только веб-интерфейс. В Eserv/4 снова (как в Eserv/2) можно кроме веб-интерфейса использовать специальную программу с привычным Windows-интерфейсом, которая может сворачиваться в область уведомлений и быть доступной для быстрого вызова. Отдельные вкладки для настроек, мониторинга, статистики, почты администратора, обновления программы. В каждой вкладке трехпанельный интерфейс: слева — дерево для выбора раздела настроек, либо отчетов статистики, либо папок почты, в центре панель со списком элементов или отчетом, справа — панель детализации. |
Конфигурация в базе данных
Во всех предыдущих версиях Eserv параметры конфигурации серверов хранились в текстовых файлах (в Eserv/2 в собственном нестандартном формате, в Eserv/3 в стандартных ini- и csv-файлах). Eserv/4 умеет читать файлы конфигурации прежних форматов, а также поддерживает новый формат — в виде базы данных SQLite. Эта БД поддерживается Eserv'ом с 2006 года, но использовалась только как опциональное дополнение. Теперь базовая конфигурация рассчитана на хранение большинства списков (проектов, доменов, пользователей, контактов, и т.д.) именно в БД. Причины этого решения и полученные преимущества описаны на странице WhyBinaryConfig.Полностью переписан IMAP-сервер
IMAP-сервер включен в состав Eserv с 2000 года, и с тех пор у многих пользователей в серверных папках накопились многие гигабайты почты — десятки или сотни тысяч сообщений. При размере IMAP-папки больше 10 000 сообщений и при большом количестве папок у пользователей Eserv не мог обеспечить должной производительности работы с почтой. Особенно в момент первого подключения пользователя к своему каталогу и чтения списков папок и сообщений, т.е. при создании индекса в памяти. Теперь IMAP-сервер хранит постоянные индексы папок в виде SQLite-файлов и использует иную раскладку почты по каталогам архива — с группировкой по месяцам и дням. Это дает ускорение большинства операций на 1-2 порядка за счет радикального уменьшения объема работы с файловой системой. Кроме того значительно оптимизирована работа с общими IMAP-папками, что позволяет работать с ними бОльшему числу пользователей одновременно.Добавлена поддержка произвольных IMAP-флагов: раньше поддерживались только стандартные флаги — \Seen, \Recent, \Deleted, \Flagged и т.д., теперь в почтовых клиентах (ThunderBird) появилась возможность присваивать сообщениям произвольные настраиваемые пользователем теги/метки (в IMAP-терминологии — флаги) и сообщать об этих назначениях IMAP-серверу, и в Eserv/4 IMAP полностью эту функцию поддерживает — хранит теги в индексе, извещает о назначении тегов всех, кто подключен к общей папке. Кроме того результат классификации письма байесовым фильтром тоже теперь является флагом. В сумме эти функции дают много новых удобных способов организации групповой работы и упрощают обработку почты пользователями.
Процесс обучения байесовых фильтров, который в Eserv привязан к событиям перемещения почты, сделан асинхронным: теперь при перемещении сообщений между папками пользователю не нужно ждать, пока байес примет каждое письмо. IMAP-сервер ставит события перемещения в отдельную очередь обработки и сразу продолжает обрабатывать следующие письма.
Новый антиспам-сервер и антивирус-сервер — acFilter
В Eserv/3 антиспам- и антивирус-фильтры подключаются в виде plugin'ов к SMTP-серверу. А IMAP-сервер при обучении фильтров и WEB-сервер при "проталкивании" ложных срабатываний обращались этим фильтрам через SMTP-сервер, т.к. не все фильтры допускают параллельные обращения из нескольких процессов. В Eserv/4 функции фильтров вынесены в отдельное приложение — acFilter. Все антивирусы и антиспамы подключаются к нему (и участвуют там в голосовании, как и в Eserv/3), а acSMTP, acIMAP и acWEB теперь работают с acFilter через единый программный интерфейс (основан на XML-RPC, эмулируется набор команд POPFile). Это дает несколько преимуществ: можно обновлять все компоненты фильтров (а не только антивирусные базы) без прерывания работы основных серверов, серверы также не зависят от возможной ненадежной работы отдельных фильтров (их сбои будут локализованы в отдельном процессе), кроме того acFilter можно при необходимости подключить и к старым версиям Eserv вместо POPFile или в дополнение к нему.В список поддерживаемых антиспамов добавлен Commtouch, возвращена поддержка SpamAssassin (которая была в 2002м, но потом он был заменен намного более эффективным POPFile), возвращена подержка антивируса Stop! (ProAntivirus). Итого acFilter поддерживает 6 антивирусных API и 5 антиспамов.
Новая встроенная статистика
В Eserv/3 все базовые статистические отчеты строились по журналам работы сервера, т.е. время расчетов сильно зависело от объема исходных данных и не всегда было приемлемым. В реальном времени статистические данные можно было получать только от встроенного в Eserv/3 SNMP-сервера (с помощью программы SnmpMonitor из комплекта Eserv, либо внешних инструментов — таких как MRTG). В Eserv/4 используется собственная RRD-база данных, в которой основные счетчики производительности суммируются непосредственно во время работы сервера — в разрезе по часам, дням, месяцам, протоколам и видам трафика. Таким образом все обзорные статистические своды в пределах года могут быть получены практически мгновенно без массивных дисковых операций. При необходимости получения "расшифровки" отдельных счетчиков используются, как и раньше, детальные журналы работы серверов. |
Расширения и система обновления Eserv/4
В Eserv/3 для обновления версий серверов нужно было скачивать инсталлятор новой версии, останавливать сервисы, устанавливать новую версию поверх старой и запускать сервисы. Эта несложная и быстрая операция тем не менее требовала ручной работы и "присутствия" администратора на сервере (хотя бы через терминальный сервис).В Eserv/4 обновления могут скачиваться автоматически с заданного списка серверов обновления, администратору остаётся "разрешить" установку обновления через интерфейс программы управления. Ведётся история версий всех обновляемых файлов (через тот же механизм, что и версии документов встроенной wiki), возможен откат на предыдущие версии. Количество файлов, подлежащих обновлению, в Eserv/4 на порядок меньше, чем в Eserv/3 — за счет того что базовая конфигурация значительно упрощена в сравнении с Eserv/3 и использует "укрупнённые" файлы — компилируемые обработчики событий вместо множества интерпретируемых на ходу мелких файлов. Кроме того часть компонентов, которые в Eserv/3 были оформлены как расширения (plugin'ы), в Eserv/4 встроены непосредственно в exe, т.к. эти расширения за годы использования Eserv/3 стали "общепринятыми", никогда не отключаются, и почти не меняются.
SSL/TLS-сертификаты и поддержка SNI
Eserv/3 полноценно поддерживал безопасные соединения SSL/TLS, но создание необходимых X.509-сертификатов оставлял администратору. Предполагалось, что он либо создаст самоподписанный сертификат (например, с помощью openssl), либо создаст его на нашем сайте, либо приобретет в центрах сертификации. На практике многие администраторы не хотели тратить на это время и в итоге работали вообще без SSL.Eserv/4 теперь сам при установке создает самоподписанный сертификат, чтобы SSL работал сразу после старта.
В Eserv/4 также добавлена поддержка новой опции TLS — SNI (Server Name Indication), позволяющей SSL/TLS-клиентам передавать серверу имя хоста, с которым он собирается работать. Т.е. теперь можно на одном IP-адресе размещать любое количество "виртуальных" SSL-серверов, подобно тому как в HTTP на одном IP можно размещать любое количество сайтов. Раньше каждому SSL-серверу требовался отдельный IP, т.к. у сервера не было другого способа, кроме как по соответствию IP, выбрать необходимый для предъявления клиенту сертификат. Это новая опция протокола, поддержка которой в клиентских и серверных программах только начинает внедряться. В Eserv/4 она испытывается около года.
FastCGI
Поддержка FastCGI включена в Eserv/4 по умолчанию, и режим работы PHP (CGI, ISAPI или FastCGI) под acWEB теперь задается опцией настройки.UPnP
В Eserv/4 добавлена базовая поддержка UPnP для публикации (через multicast) своего присутствия в локальной сети. Те пользователи, у которых включено отображение UPnP-устройств в сетевом окружении, будут видеть Eserv/4 как медиа-сервер. И через эту иконку иметь доступ к его веб-интерфейсу.Встроенный WebMail
В Eserv/2 был простейший веб-интерфейс к почтовым ящикам. В Eserv/3 вообще не было веб-почты в базовом комплекте, был только специальный plugin "wm3", требовавший для своей работы включения функции архивирования всей почты в БД SQLite. Предполагалось, что пользователям Eserv либо вообще веб-почта не нужна (т.к. она никогда не достигнет степени удобства специализированных почтовых клиентов), либо они будут использовать свободно доступные популярные webmail-системы RoundCube, SquirrelMail, IlohaMail, NOCC и т.п., которые запускаются под входящим в комплект Eserv'а веб-сервером и работают с локальными почтовыми ящиками через IMAP/POP3. Однако по разным причинам многие пользователи Eserv ожидали от нас разработки собственной полноценной веб-почты, включенной в базовый комплект и готовой к использованию сразу после установки Eserv. В Eserv/4 так и сделано. Для работы с почтой через веб теперь не нужно ничего устанавливать, ни одного дополнительного файла, и ни одной дополнительной галочки в настройках — веб-почта включена в сам веб-сервер acWEB и работает не через IMAP, а напрямую с почтовыми базами Eserv. Поддерживается html-формат почты, а также сообщения с bbcode- и wiki-разметкой. Этот WebMail в отличие от практически всех существующих webmail'ов полноценно поддерживает также и произвольные IMAP-флаги (описано в разделе про IMAP-сервер) и визуальное выделение (например, цветом) сообщений в зависимости от типа и набора флагов. |
Встроенные форумы
Подобно тому как WebMail — это веб-интерфейс к личным почтовым папкам пользователя, форумы в Eserv/4 — это веб-интерфейс к общим папкам проектов. Сообщения форумов — это обычные письма в почтовой базе. Отличается только способ отображения и права доступа. С форумами в Eserv можно работать и по IMAP, и по остальным поддерживаемым протоколам. Например, в форум можно прислать письмо по SMTP или NNTP. Почтовые извещения, приходящие участнику форума — копии исходных сообщений на форуме, и в его почтовом клиенте будут также группироваться по обсуждениям. Если он тоже использует Eserv/4 и подписан на все сообщения форума, то на его Eserv'е автоматически создастся копия исходного форума. На нашем сайте все PhpBB-форумы сконвертированы в формат почтовых баз Eserv/4, и теперь PHP и MySQL для форумов не нужны. |
Встроенные блоги
Аналогично форумам и веб-почте, блоги — это тоже еще один интерфейс к почтовым папкам. На этот раз к публичным папкам пользователей (включая папки с изображениями и файлами). Пользователь может публиковать записи в своем блоге через веб, подобно тому как он пишет письма или сообщения на форуме, либо без использования браузера — может написать сам себе письмо, используя почтовый клиент, а потом перенести (в IMAP-клиенте) полученное письмо из папки "Входящие" в публичную папку (по умолчанию это папка "web"). Если пользователь переносит в эту папку письма других пользователей, то превращается в редактора группового блога. |
Встроенная WIKI, управление версиями и документооборот
Из сказанного выше понятно, что всё в Eserv является сообщениями. Веб-страницы и документы тоже. Их можно создавать через веб, можно присылать по почтовым и любым другим протоколам Eserv'а (почтовые клиенты поддерживают html, поэтому позволяют создавать полноценные веб-страницы). При групповой работе возможны ситуации, когда над одним веб-документом работают несколько человек, либо один человек периодически возвращается к редактированию документа. В этом случае требуется контроль версий документа, чтобы участники могли легко определить, что именно изменилось в объемном документе, кем и когда. Также иногда требуется отменять последние правки документа — особенно это актуально в случаях, когда к изменению документа допускаются внешние (возможно анонимные) участники. Wiki является инструментом, который изначально рассчитан именно на такой стиль групповой работы. Кроме управления версиями Wiki-система имеет множество других не менее важных возможностей, которые подробнее описаны на странице WhyWiki.Wiki является центральным элементом веб-архитектуры Eserv/4. Это не отдельный модуль, как было раньше с "навесными" написанными на PHP wiki-системами, а часть кода ядра. С учетом wiki-специфики работают все серверы Eserv. Не только веб-страницы, а вообще все сообщения в Eserv автоматически "версионируются". Например при редактировании темы в форуме (модератором) старая версия сообщения сохраняется, и модератор имеет возможность "передумать" и отменить свои исправления, а автор сообщения может видеть, что именно не пропущено цензурой. Ответы на тему форума также связываются с учетом версии исходного сообщения: если автор темы редактировал своё сообщение, то можно видеть, какие ответы публиковались до этой правки, а какие после, т.е. на какой именно вариант сообщения публиковался ответ. То же самое в блогах. Профили пользователей, задачи в проектах — это тоже сообщения (с визитными карточками vCard и календарями vCalendar), и к ним относится то же самое.
Отслеживание версий всех информационных элементов системы позволяет легко реализовывать отображение шкалы времени "что нового" (в любой папке по умолчанию доступны RSS- и Atom-ленты) и надежную синхронизацию между серверами — по обычным протоколам SMTP или NNTP!
При просмотре папки, в которой есть несколько версий документа, с помощью почтового IMAP-клиента, каждая версия видна в виде отдельного сообщения. Т.е. любой почтовый клиент, даже с мобильного телефона, тоже может использоваться для управления версиями (удаление, перемещение, публикация, пометка тегами, нет у него только функции сравнения версий).
WebDAV и поддержка календарей
Поддержка WebDAV существует в Eserv, начиная с версии 1 (хотя ни слова "WebDAV", ни даже XML в 1997м году еще не существовало, но все используемые в WebDAV HTTP-команды уже были описаны в RFC протоколе, и были клиентские программы, работающие с веб-сервером в "webdav-стиле", в частности очень удобная функция роуминга профиля в старых версиях программ Netscape). В Eserv/4 этот функционал "подтянут" к текущему уровню этой технологии, и включен по умолчанию таким образом, что не требует дополнительной настройки. Это в частности позволяет пользователям публиковать свои календари (события, задачи, заметки, текущий статус) из специализированных календарных клиентов (SunBird, Lightning, Outlook, WindowsCalendar и т.д.) и подписываться на календари других пользователей, формируя календари рабочих групп для распределения задач проектов и планирования мероприятий.Чат-серверы (IRC и XMPP)
IRC-сервер на платформе Eserv ровесник самого Eserv'а, а XMPP-сервер (и XMPP-клиент eChat) были разработаны в 2006м году, но ни тот, ни другой не включались в состав Eserv, т.к. требуют дополнительных инфраструктурных настроек, не относящихся к почтовой специализации Eserv'а. По той же причине из Eserv/3 был исключен NNTP-сервер: нужда в локальном кэшировании глобальных новостных групп отпала давно, а для поддержки локальных групп требовалось развитие концепций проектов/групп/общих папок, в Eserv/4 это сделано.Новая архитектура межпоточных взаимодействий, которая была встроена в ядро Eserv для лучшей поддержки общих папок IMAP, стала также основой и для новых версий чат-серверов. IRC теперь включен по умолчанию как часть модуля acWEB4.exe, а XMPP устанавливается plugin'ом. Чат-серверы являются еще одним интерфейсом к группам и папкам Eserv/4, поэтому стиль работы с ними отличается от работы с публичными IRC-серверами, где пользователи обычно анонимны и регистрация каналов ("комнат") свободная.
Кроме использования по прямому назначению в качестве "конференц-залов", чат-сервер в Eserv/4 может использоваться для сервисных нужд. В частности в канал &log, доступный администраторам, копируются записи системного журнала, таким образом IRC становится очень удобным средством мониторинга работы сервера.
Встроенная CRM
При использовании на сайте предприятия все перечисленные выше технологии так или иначе связаны (или специально предназначены для) улучшения обслуживания клиентов и оптимизации работы с партнерами. В Eserv/4 ведется список не только учетных записей пользователей в доменах предприятия, но и внешних контактов (контрагентов). Можно просматривать историю почтовой переписки с любым клиентом или поставщиком, и историю всех иных взаимодействий, которые представимы в виде сообщений — назначенные встречи, задачи, счета, заполненные на сайте формы, и т.д. Их (и контрагентов, и их сообщения) можно группировать по проектам, папкам, тегам, назначать различные статусы (как через web, так и через IMAP).Со своей стороны посетитель сайта также, авторизовавшись, может видеть всю свою переписку с сотрудниками предприятия (в виде helpdesk'а), открытую переписку на форуме, может редактировать свои контактные данные и информацию о своем предприятии, отслеживать стадии обработки своих обращений.
Управление сайтами
Eserv всегда включал в себя веб-сервер и позволял размещать на нем любое количество сайтов, в т.ч. динамических сайтов, разработанных на любых языках веб-програмирования (подключаемых через ISAPI, CGI, FastCGI), но не предоставлял никакого собственного интерфейса для информационного наполнения сайтов. Eserv/4 также может продолжать использоваться как "обычный" веб-сервер при необходимости, но благодаря наличию встроенной wiki, форумов и блогов теперь на Eserv'е не бывает "пустых" сайтов: эти встроенные компоненты управления сайтом автоматически по умолчанию подключены ко всем доменам, размещенным на Eserv. И все пользователи, зарегистрированные в соответствующих доменах автоматически (без дополнительной настройки, т.е. сразу после подключения домена) получают сервисы webmail'а, блогов, хостинга файлов и возможность участия в общих проектах сайта, включая создание веб-страниц (не только в собственных блогах).По умолчанию используются встроенные шаблоны страниц для всех разделов сайта, но можно редактировать имеющиеся либо создавать по их образцу новые для каждого сайта. Аналогично с сss-стилями. Их можно записывать в виде обычных файлов, либо хранить в виде специальных wiki-страниц для управления версиями шаблонов, а также получения возможности работы с ними из почтового клиента. Разделы сайта также могут иметь собственные шаблоны (по умолчанию общие папки представлены в виде форумов, папки пользователей представлены в виде блогов и webmail, а все остальные страницы имеют базовый шаблон wiki-страниц).
Управление полномочиями на основе ролей
В предыдущих версиях Eserv права доступа пользователей к сервисам Eserv могли устанавливаться в зависимости от его членства в той или иной группе, либо индивидуально — в зависимости от его логина, IP-адреса и т.п. В Eserv/4 появилось два дополнительных уровня группировки — проекты и роли. Один и тот же пользователь может иметь разные роли в разных проектах или группах, а участники одной и той же группы могут иметь разные роли. При этом полномочия привязываются именно к роли, а не к членству в группах. Так администраторы разных групп имеют равные полномочия, хотя и не являются членами какой-то одной группы.На первый взгляд это избыточное усложнение (зачем нужна роль "администратор", если можно создать группу "администраторы" и назначить ей эти полномочия), но на самом деле это упрощает систему (меньше настроек) и делает её более логичной: как в армии нет понятия "отряд командиров", а может быть отряд с одним командиром, так и в большинстве других видов групп участники не равноправны, а играют в группе свои роли, объединяясь с равноправными коллегами только на нижнем уровне, а на всех остальных уровнях управления иерархия полномочий в соответствии с иерархией ролей, без группировки. В Eserv/4 по умолчанию существуют роли "супервизор" (тот, кто устанавливал Eserv, и имеет полный доступ ко всему), "администратор", "техподдержка", "модератор" и "рядовой участник", "гость". Поскольку полномочия наследуются по иерархии, не обязательно назначать все роли. Для большинства проектов достаточно 3-4 ролей — например, супервизор-администратор-участник. При создании нового проекта достаточно назначить его администратора, детальной настройки прав не требуется. Администратор, если необходимо, назначит следующие роли сам, или в небольших группах сам будет выполнять их обязанности.
Управление проектами
Проекты — верхний уровень группировки в Eserv/4. К проектам подключаются пользователи (при регистрации или при последующем управлении членством), группы. К проектам подключаются домены (и соответственно сайты и почта). Общие папки проекта содержат переписку по этому проекту, задачи, и т.п. элементы, которые обсуждались выше. Каждый проект и группы в проекте являются списками рассылки, и участник может настроить, какие почтовые извещения он хочет получать из каждого проекта или группы (по умолчанию все извещения отключены).Пользователи на своих собственных домашних страницах (домен/~пользователь/) видят общие папки всех проектов, в которых они участвуют, свою личную почту и свои задачи по уровню срочности. Администраторы проектов видят обобщенную картину. Никакого обязательного "стиля" ведения проектов (предварительная планировка этапов, распределение задач и сроков по этапам, диаграммы степени выполнения этого плана, и т.п.) Eserv/4 не навязывает, но возможностей платформы и перечисленного инструментария достаточно для реализации любой формальной схемы работ.
При импорте конфигурации из Eserv/3 "источники авторизации" становятся отдельными проектами.
Групповая работа (итог)
Электронная почта, списки рассылки, группы новостей, чаты, форумы (а также helpdesk'и и трекеры задач, как спец.разновидность форумов) и wiki всегда были в интернете основным средством коммуникации участников при работе над совместными проектами. Вплоть до версии 3 Eserv предоставлял только сетевой транспорт для всех этих приложений, а теперь и базовую функциональность всех этих приложений в едином интегрированном комплексе.Планы на 2010
Кроме развития всего комплекса нового функционала в Eserv/4, уже ощущается потребность в еще двух интегрированных серверах — DNS и LDAP. И, конечно, в самых ближайших планах — выпуск Eproxy/4.После переноса всех учетных записей из используемых ранее на этом сайте отдельных компонентов (WackoWiki, PhpBB, "1С-Битрикс:Управление сайтом" и др.) в единую БД Eserv/4 на сайте осталась только одна PHP-программа — наш магазин shop.eserv.ru (и его учетная часть за кадром), который практически не менялся последние 10 лет. Он также будет перенесен на платформу Eserv/4 и станет доступным пользователям как интегрированный с CRM модуль учета взаиморасчетов.