В данной статье мне хотелось бы рассказать о новом программном продукте, который на днях стал доступным конечным пользователям. Автором этого программного продукта являюсь я, и поэтому мне вдвойне приятно поделиться с читателями информацией, которая наверняка кому-нибудь покажется интересной и полезной. Я работал над этим проектом 4 года (а то и больше, смотря от какого момента считать).
Итак, что же такое LilacServer?
Это веб-сервер, написанный на Java с использованием технологии Java NIO. Главным отличием его от прочих веб-серверов, созданных на Java (например, Tomcat или Resin), состоит в том, что это не только веб-сервер…
LilacServer – это веб-сервер, шаблонизатор и фреймворк в одном программном продукте.
1. Веб-сервер
Как и было сказано выше, написан на Java с использованием Java NIO, и оттого обладает высокой производительностью и стрессоустойчивостью. Каких-то специальных аппаратных требований не предъявляет. Может быть установлен как под Linux (в комплекте есть скрипты под CentOS и Debian), так и под Windows (в комплекте есть враппер для установки в качестве сервиса). На shared-хостинге, скорее всего, установить не получится. Необходим, как минимум,
Инсталлятор оформлен в виде jar-архива, поддерживающего как графический, так и текстовый режимы установки.
Особенностью настройки веб-сервера является полное отсутствие каких-либо конфигурационных файлов. Все управление осуществляется с помощью специального веб-интерфейса. Помимо обычного функционала по настройке параметров веб-сайтов, в веб-интерфейсе есть встроенный менеджер файлов и он-лайн редактор.
2. Шаблонизатор
В LilacServer есть встроенный шаблонизатор. Правильнее даже сказать так: шаблонизатор – это основа всего программного продукта.
Для построения шаблонов страниц используется язык Lilac. Это декларативный язык, сходный с Prolog-ом и Erlang-ом. Данные представляются в виде списков. Единственная доступная операция над списками – это «взятие головы». Для непосвященных звучит пугающе, но в конечном итоге это означает, что для проектирования шаблонов не используются ни циклы, ни условные переходы (в языке их просто нет).
Все операции языка оформляются в виде директив. Всего директив 7 (точнее, 6 + 1). Директивы хранятся в файлах с расширением .lilac. Шаблон страницы собирается по частям, в зависимости от пути к странице. Существуют специальные файлы с директивами – это config.lilac и index.lilac.
3. Фреймворк
Для создания программных модулей используется язык Java и собственный LilacServer API. Данный API несовместим со стандартным Java Servlet API, однако набор объектов и названия методов во многом совпадают.
LilacServer – это шаблонно-ориентированный программный продукт. Это значит, что нужные программные компоненты вызваются из шаблонов (а не наоборот: когда вызывается программа, загружающая требуемые шаблоны). На практике это означает, что возможно создание шаблонизированного сайта без написания какого-либо кода на Java. То есть, если какому-нибудь веб-сайту не требуется программная составляющая, то LilacServer API можно не использовать.
Классы LilacServer API включены в программный комплекс LilacServer и не требуют отдельной установки. Для разработки программ требуется Java SE JDK. При необходимости можно использовать любые сторонние библиотеки, сервер их автоматически подгрузит.
4. Плюшки (а как же без них!)
- встроенные возможности по локализации
LilacServer позволяет создавать многоязычные сайты с помощью стандартных средств. Код локализации может быть задан в имени домена, в первой части URI, а так же в параметре запроса; - поддержка баз данных
LilacServer поддерживает работу с базами данных по протоколу JDBC. Разработчику требуется лишь установить нужный набор драйверов, и в настройках веб-сайта указать параметры подключения к базе. Всю дальнейшую работу по обслуживанию подключений берет на себя веб-сервер и LilacServer API; - кэширование
LilacServer осуществляет кэширование как правил, так и программного кода. Параметрами кэширования можно управлять в настройках веб-сайта; - ограничение доступа
LilacServer с помощью специальной директивы позволяет ограничивать доступ к отдельным страницам и разделам веб-сайта. Для авторизации пользователей применяется метод аутентификации Digest; - сессии
LilacServer обладает встроенными средствами для отслеживания сеансов пользователей. В LilacServer API для этого есть специальный класс; - multipart-формы и загрузка файлов
LilacServer обладает встроенными средствами для обработки multipart-форм и загрузки файлов на веб-сервер (как ни странно, Java Servlet API до сих пор этим похвастаться не может). В LilacServer API для этого есть специальный класс; - разделение кода и представления
LilacServer полностью соответствует данной парадигме MVC: в нем реализовано полноценное разделение логики приложения от его представления.
Помимо вышеперечисленных, есть еще много интересных особенностей и функций.
5. Документация и поддержка
Официальный веб-сайт: LilacServer.com
(прямая ссылка на русскоязычную версию сайта: lilacserver.com/ru/ )
Данный ресурс создан на самом LilacServer и вполне демонстрирует возможности как программного продукта, так и LilacServer API.
Вот что можно найти на данном сайте:
- дистрибутив LilacServer, доступный абсолютно всем для бесплатного скачивания и установки;
- подробнейшую документацию по инсталляции, программированию и созданию веб-сайтов с помощью этого продукта;
- форум, на котором можно задавать вопросы, если что-либо из документации остается непонятным;
- демонстрационный веб-сайт, который можно не только потыкать и пощупать, но и полностью скачать для подробного изучения;
- форму для обратной связи с автором;
а также многое другое, не менее полезное.
Уверен, мое информационное сообщение будет полезным для веб-разработчиков, а особенно тем, кто активно использует в работе язык Java. Более подробные сведения по возможностям программного продукта LilacServer можно узнать здесь.
Благодарю всех за внимание!
Автор: nechiporenko