Смекни!
smekni.com

Обзор и классификация систем управления сайтами (стр. 1 из 2)

Быков Михаил Юрьевич

Системы управления сайтами, получившие широкое распространение в последнее время, облегчают разработку сложных Web – систем, однако ни одна из них не завоевала рынок, поскольку каждая система предназначена для определенной сферы применения и обладает рядом недостатков. В статье проводится классификация современных систем управления сайтами, рассматриваются преимущества и недостатки различных подходов к их построению.

Введение

Недостатки платформ приложений серверной стороны, такие как низкая функциональность, отсутствие визуальных средств управления, трудности с масштабированием привели к тому, что практически каждая компания создает свой инструментарий для получения более эффективной среды разработки. Также существует достаточное количество свободно распространяемых разработок и опубликованных исследований [1-5]. Все подобные системы спроектированы для облегчения управления и изменения сайта (или сайтов, в зависимости от архитектуры системы), оперативного внесения изменений в содержание и дизайн, то есть то, чего не хватает базовым технологиям, хотя можно выделить два основных направления развития таких систем: простое построение сайта для непрофессиональных пользователей, и предоставление платформы для построения сложных Web – систем. Ниже рассматриваются существующие модели систем создания и управления сайтами, а также реализации таких систем.

Интерактивные формы

Данная модель системы дает возможность визуального управления страницами сайта без знания языка HTML с помощью специальных редакторов страниц. Дополнительно предоставляются возможности по созданию интерактивных форм, обычно работающих с базой данных. Такие системы позволяют быстро скомпоновать и разместить на сервере приложение, основанное на статических страницах, формах изменения информации в базе данных и отчетах. Ярким представителем такого подхода является система Cold Fusion [6] от компании Allaire, Inc. Система существует под платформы Windows и Linux, использует базу данных и предлагает разработчикам разрабатывать собственные страницы в среде разработки Cold Fusion Studio. Она построена на принципах CGI. Основным преимуществом системы является легкость создания Web – форм, связанных с базой данных. Это удобное средство быстрого создания сайтов, однако, оно жестко привязано к своей идеологии и среде разработки. Исключено также оперативное исправление сайта, для этого необходимо соединение с сервером с помощью специального ПО. Платформа ASP.NET также предлагает такие возможности, но в более гибкой форме [7]. Недостаток систем такого рода обусловлен жесткой привязкой к определенной базе данных, трудностями с разработкой нестандартных модулей, не связанных с СУБД. Также усложнена процедура обновления сайтов, поскольку приходится обновлять базу данных. Тем не менее, подход является достаточно высокоуровневым и позволяет значительно ускорить разработку простых приложений, связанных с СУБД.

Системы оперативного управления сайтом

Под системами оперативного управления сайтом (управления в оперативном режиме – online) мы подразумеваем системы, позволяющие изменять содержимое сайта, управлять его модулями непосредственно в браузере в оперативном режиме. Такой подход является наиболее удобным с точки зрения оперативности и удобства управления сайтом, поскольку не требует установки дополнительного ПО, изменения могут производится с любого компьютера, подключенного к сети Интернет и будут доступны пользователям сразу после обновления. Трудности такого подхода заключаются в сложности разработки Web – интерфейса управления сайтом, дополнительными требованиями по безопасности.

Наиболее старой системой управления сайтом из систем подобного типа является WikiWikiWeb. Эта система появилась более 10 лет назад для облегчения поддержки сайтов различных сообществ пользователей. Система позволяет любому пользователю редактировать содержание любой страницы сайта непосредственно в браузере. Процесс редактирования отличается простотой, но и ограниченными возможностями. Для форматирования используется особый символьный язык, позволяющий выделять текст, создавать ссылки и т.д. Реализуется система с помощью ядра, которое извлекает содержимое страниц из базы данных, и позволяет интерактивно менять его. В настоящий момент существует масса реализаций системы практически на всех платформах разработки от Perl до .NET. Каждая из реализаций имеет свои дополнительные модули, например со списком последних измененных страниц, интерактивным календарем, графическим редактором в виде Java applet и т.д. Возможности всех реализаций очень ограничены, направлены в основном на изменение текстовой части страниц, а для изменения внешнего вида требуется создание так называемых “тем”, то есть базовых шаблонов. Однако технология заслуживает внимания, так как в ней впервые была предложена возможность менять содержимое сайта в интерактивном режиме с помощью браузера. Это важное развитие в идеологии систем управления сайтами.

В последнее время все большую популярность приобретают средства построения и управления сайтом в оперативном режиме, основанные на PHP: Php-Nuke и PostNuke. Это родственные системы, являющиеся разными ветвями развития одного проекта. Данные системы используют все возможности, предоставляемые шаблонами PHP и базу данных (MySQL, mSQL, PostgreSQL, ODBC, Sybase или Interbase), предоставляют массу стандартных функциональных модулей для построения сайта: новости, статьи, опросы, голосования, файловый менеджер, форум, поисковый модуль, каталогизатор ссылок, почтовая рассылки, и т.д. Системы появились сравнительно недавно и отвечают нуждам разработчиков. Они позволяют подключать к сайту модули сторонних разработчиков, создавать свои собственные, и, что очень важно, администрировать систему с помощью Web – интерфейса. Административный интерфейс позволяет легко и оперативно управлять сайтом. Для его использования не требуется знания HTML или других Web – технологий, поскольку дизайн находится в шаблонах, а бизнес логика в PHP файлах. При необходимости создания специализированной системы, а не просто компоновки существующих модулей необходимо создавать собственные PHP модули, что сопряжено со всеми достоинствами и недостатками разработки на PHP, которая плохо подходит для разработки крупных проектов. Однако помимо недостатков PHP в системах недостаточно развиты возможности управления дизайном. Будучи ориентирована на непрофессиональных пользователей, компонующих готовые модули и выбирающих одну из существующих “тем” дизайна, система не предоставляет удобных средств управления дизайном, не говоря уже об удаленном изменении шаблонов. Для редактирования дизайна необходимо иметь доступ на сервер и редактировать шаблоны там, так же как и PHP файлы. Таким образом оперативность управления является частичной и относится только к содержанию сайта, набору и настройкам модулей, но не к дизайну. Также построение сложных систем затруднено из-за ограничений PHP (недостаточная поддержка объектно-ориентированного подхода, компонентных технологий).

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

Системы типа Модель – Вид – Управление (Модель 2)

Схема работы Web – приложений накладывает свои ограничения на архитектуру систем управления сайтами. При работе в режиме “запрос-ответ” без сохранения состояния стандартные модели построения интерактивных пользовательских систем (которыми обычно являются Web – системы) не могут применяться. Однако, с некоторыми ограничениями, эти модели могут быть адаптированы. Наиболее распространенной, удобной, и признанной архитектурой интерактивных пользовательских систем является архитектура Модель – Вид – Управление (Model – View – Controller или MVC) [8], [9], [10] также называемая для Web – приложений в некоторых источниках Модель 2 (как развитие концепции шаблонов – Модели 1).

В данной архитектуре выделяются три основные подсистемы:

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

Вид или подсистема отображения – отвечает за отображение модели данных в удобном для пользователя виде, обычно графический пользовательский интерфейс.

Подсистема управления – обрабатывает события, получаемые от пользователя и других частей системы, инициирует действия и изменения в модели.

Архитектура широко распространена и применяется в таких популярных системах построения пользовательского интерфейса как Microsoft Foundation Classes (MFC) и Windows Forms для операционных систем Windows, Java Swing для Java платформы, X Window System и Motif для UNIX систем. Несмотря на несомненные достоинства архитектуры, такие как разделение данных и их представления, удобство в разработке и возможности изменения отдельных частей системы без изменения остальных, она является непростой для реализации в Web – системах, по упомянутым выше причинам. Особенную сложность представляет система управления, поскольку инициатором и получателем событий и команд являются различные программы, соединенные негарантированной линий связи. Тем не менее удобство данной архитектуры заставляет искать пути ее наилучшей адаптации к разработке Web приложений.