LilacServer – коробка для создания сайтов на Java

в 5:36, , рубрики: framework, java, web-разработка, web-сервер, Веб-разработка, метки: , , ,

LilacServer - всё необходимое в одной коробке

В данной статье мне хотелось бы рассказать о новом программном продукте, который на днях стал доступным конечным пользователям. Автором этого программного продукта являюсь я, и поэтому мне вдвойне приятно поделиться с читателями информацией, которая наверняка кому-нибудь покажется интересной и полезной. Я работал над этим проектом 4 года (а то и больше, смотря от какого момента считать).

Итак, что же такое LilacServer?
Это веб-сервер, написанный на Java с использованием технологии Java NIO. Главным отличием его от прочих веб-серверов, созданных на Java (например, Tomcat или Resin), состоит в том, что это не только веб-сервер…

LilacServer – это веб-сервер, шаблонизатор и фреймворк в одном программном продукте.

1. Веб-сервер

Как и было сказано выше, написан на Java с использованием Java NIO, и оттого обладает высокой производительностью и стрессоустойчивостью. Каких-то специальных аппаратных требований не предъявляет. Может быть установлен как под Linux (в комплекте есть скрипты под CentOS и Debian), так и под Windows (в комплекте есть враппер для установки в качестве сервиса). На shared-хостинге, скорее всего, установить не получится. Необходим, как минимум, VPS.

Инсталлятор оформлен в виде 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. Плюшки (а как же без них!)

  1. встроенные возможности по локализации
    LilacServer позволяет создавать многоязычные сайты с помощью стандартных средств. Код локализации может быть задан в имени домена, в первой части URI, а так же в параметре запроса;
  2. поддержка баз данных
    LilacServer поддерживает работу с базами данных по протоколу JDBC. Разработчику требуется лишь установить нужный набор драйверов, и в настройках веб-сайта указать параметры подключения к базе. Всю дальнейшую работу по обслуживанию подключений берет на себя веб-сервер и LilacServer API;
  3. кэширование
    LilacServer осуществляет кэширование как правил, так и программного кода. Параметрами кэширования можно управлять в настройках веб-сайта;
  4. ограничение доступа
    LilacServer с помощью специальной директивы позволяет ограничивать доступ к отдельным страницам и разделам веб-сайта. Для авторизации пользователей применяется метод аутентификации Digest;
  5. сессии
    LilacServer обладает встроенными средствами для отслеживания сеансов пользователей. В LilacServer API для этого есть специальный класс;
  6. multipart-формы и загрузка файлов
    LilacServer обладает встроенными средствами для обработки multipart-форм и загрузки файлов на веб-сервер (как ни странно, Java Servlet API до сих пор этим похвастаться не может). В LilacServer API для этого есть специальный класс;
  7. разделение кода и представления
    LilacServer полностью соответствует данной парадигме MVC: в нем реализовано полноценное разделение логики приложения от его представления.

Помимо вышеперечисленных, есть еще много интересных особенностей и функций.

5. Документация и поддержка

Официальный веб-сайт: LilacServer.com
(прямая ссылка на русскоязычную версию сайта: lilacserver.com/ru/ )
Данный ресурс создан на самом LilacServer и вполне демонстрирует возможности как программного продукта, так и LilacServer API.

Вот что можно найти на данном сайте:

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

а также многое другое, не менее полезное.

Уверен, мое информационное сообщение будет полезным для веб-разработчиков, а особенно тем, кто активно использует в работе язык Java. Более подробные сведения по возможностям программного продукта LilacServer можно узнать здесь.

Благодарю всех за внимание!

Автор: nechiporenko


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js