Сервер приложений Midgard

Технология PHP , используемая данным продуктом, имеет ряд неотъемлемых преимуществ, таких как высокая скорость обработки запросов и ориентированность на создание веб-приложений. Однако, из-за невозможности декомпозиции на дизайн и програмный код, PHP больше подходит для индивидуальных разработчиков разовых проектов, а не корпоративного применения. Несмотря на недостатки использования PHP в чистом виде, его использование в составе таких средств, как сервер приложений Midgard, может быть крайне эффективным. Midgard содержит встроенные средства управления информационным наполнением и динамической генерации страниц, что дает возможность легкой для пользователя поддержки крупных контент-проектов. Встроенный язык программирования - PHP - позволяет решать достаточно сложные задачи представления информации, причем оригинальная архитектура Midgard снимает большую часть присущих PHP проблем.

Midgard представляет интернет-ресурс как три древовидных пространства имен: Стиль (дизайн), Адресное пространство (оформление и размещение), Публикуемые материалы (информационное наполнение). В первых двух пространствах могут быть определены стилевые и страничные элементы, причем такой элемент вставляется в веб-страницу посредством синтаксиса вида "<[" + <ИМЯ_ЭЛЕМЕНТА> + ">". Midgard предоставляет средства управления видимостью элементов, позволяя легко варьировать оформление страниц перекрытием имен. С другой стороны, любой элемент оформления пишется один и только один раз, что дает возможность быстрого изменения дизайна сайта переопределением элементов оформления.

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

К сожалению, декомпозиция проекта на програмный код, информационное содержание и оформление представляет скорее соглашение, чем неотъемлемую часть архитектуры, что приводит к серъезным трудозатратам на планирование интерфейса.

Midgard навязывает разработчикам древовидную модель данных и накладывает промежуточный уровень абстракции на интерфейс с базой данных, что ограничивает возможность формировать запросы и размещать данные произвольного формата, поэтому при поддержке информационных ресурсов, связанных с достаточно сложным поиском данных, использование Midgard не дает существенных преимуществ: практически, если информационное наполнение интернет-сайта не удается отобразить на диктуемую Midgard модель, то его использование едва ли облегчает разработку и поддержку ресурса. Но, если рассматривать Midgard не как универсальное средство поддержки интернет-ресурсов, а как средство расширения возможностей PHP, обеспечивающее единый интерфейс для редактирования информационного наполнения и управление отображением данных, то Midgard - безусловно, очень удачное решение, облегчающее эксплуатацию однажды созданного интернет-ресурса.