Что нового в 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 теперь задается опцией настройки. В самом Eserv/4 PHP никак НЕ используется, и скоро перестанет использоваться и на нашем сайте — на сегодняшний день на PHP остался только магазин http://shop.eserv.ru/, однако поддержка PHP, Perl и других скриптовых языков продолжает развиваться, т.к. они используются на сайтах клиентов и в основанных на Eserv продуктах партнеров.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 становится очень удобным средством мониторинга работы сервера.
Импорт, экспорт и синхронизация учетных записей и сообщений
Eserv/4 хранит сообщения в стандартном формате RFC2822, а списки учетных записей, доменов, групп и т.д. — в самой популярной в мире БД SQLite, поэтому с экспортом проблем нет, он может быть выполнен не только средствами Eserv, но и любыми инструментами, понимающими эти стандартные форматы.Перенос учетных записей из других программ также очень прост — в Eserv/4 встроена программа импорта из csv-файлов произвольного формата. Импорт сообщений (или страниц) реализован из следующих программ:
- PhpBB (списки форумов и сообщений, с полной поддержкой разметки bbcode, учетные записи)
- WackoWiki (wiki-страницы, с полной поддержкой wiki-разметки, учетные записи)
- "1С-Битрикс:Управление сайтом" (страницы, тикеты поддержки, учетные записи)
- AltN MDaemon (сообщения и учетные записи)
- Kerio MailServer (сообщения и учетные записи)
- Microsoft Exchange Server, Outlook, и другие программы на базе MAPI, такие как MAPILab GroupwareServer (сообщения всех типов — IPM.Activity, IPM.Task, IPM.Note, IPM.StickyNote, IPM.Appointment, IPM.Contact, IPM.Post.Rss и учетные записи и группы из ActiveDirectory), а также экспорт сообщений из Eserv в MAPI-программы, т.е. двусторонняя синхронизация с ними.
Встроенная 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(upd: добавлены 19 апреля 2010, плюс DHCP-сервер)
. И, конечно, в самых ближайших планах — выпуск Eproxy/4 .
После переноса всех учетных записей из используемых ранее на этом сайте отдельных компонентов (WackoWiki, PhpBB, "1С-Битрикс:Управление сайтом" и др.) в единую БД Eserv/4 на сайте осталась только одна PHP-программа — наш магазин http://shop.eserv.ru/ (и его учетная часть за кадром), который практически не менялся последние 10 лет. Он также будет перенесен на платформу Eserv/4 и станет доступным пользователям как интегрированный с CRM модуль учета взаиморасчетов.