Создавать новые документы, редактировать формы, загружать изображения и многое другое - в зависимости от того, насколько та или иная CMS "продвинута". И все это с помощью одного лишь web-браузера.
Однако такой подход, хоть и является самым привычным и распространенным - отнюдь не единственный. Наиболее заметной альтернативой ему служат системы управления сайтом, выведенные в отдельные программы, устанавливаемые на компьютере администратора или контент-менеджера. Обычно это специально написанные для работы с web-проектами desktop-приложения, работающие с локальным "зеркалом" базы данных или напрямую с базой данных сервера и предоставляющие пользователю богатый набор возможностей, как правило недоступных в обычных web-интерфейсах.
Почему же такие системы не получили широкого распространения?
Прежде всего, из-за сложности в разработке. Действительно, в случае с web-интерфейсом за разработчика почти все делает сам браузер: визуализирует HTML-код страниц, предоставляет готовые поля ввода и элементы выбора, осуществляет соединения с сервером и т.д. - берет на себя всю "рутину". Тогда как в случае написания самостоятельных приложений приходится обращать внимание на многочисленные тонкости реализации, в том числе и самые низкоуровневые.
Другая причина заключается в доступности web-браузера практически на любом компьютере "по умолчанию". Контент-менеджеру, особенно если он работает с сайтом и с работы, и из дома, а то и с помощью мобильных устройств, не нужно устанавливать никакого дополнительного программного обеспечения. Открыл браузер - и работай. Особенно это преимущество становится очевидным, когда над сайтом работает сразу несколько человек - например, распределенный штат журналистов.
Поэтому большинство разработчиков CMS предпочитают сконцентрировать усилия именно на web-интерфейсах и логике их взаимодействия с базами данных. Этот путь быстрее ведет к цели - созданию работающей системы управления контентом и быстрее окупается.
Что же тогда заставляет некоторых разработчиков идти по более сложному пути, создавая специальные приложения?
Браузеры, конечно, берут на себя "рутину", однако, платой за это служат многочисленные ограничения. Браузер, прежде всего - средство просмотра готовых страниц в формате HTML. А HTML - это язык разметки текстов. Так уж сложилось исторически. И хотя с момента возникновения этой парадигмы появилось множество ее "расширений", таких как, например, JavaScript, CSS, DOM - ситуация принципиально не изменилась. Возможности браузеров для построения сложной функциональности сильно проигрывают возможностям, которые открываются для самостоятельных desktop-приложений.
Разработчики web-ориентированных CMS сталкиваются с проблемами визуального редактирования иерархий разделов и каталогов, для которых было бы удобно простое перетаскивание ветвей мышью. Или управления большими объемами данных, для которых было бы удобным представление, принятое в программах работы с электронными таблицами типа MS Excel. До недавнего времени остро стоял вопрос даже о простом визуальном форматировании текстов.
Закономерное желание сделать свою CMS достаточно гибкой и универсальной приводит к неизбежному усложнению систем: в скрипты вводится множество абстракций, деклараций потенциально необходимых "объектов", появляются избыточные запросы к базам данных и разнообразные служебные таблицы. Код "распухает", обрастает большим количеством модулей, часто ненужных для решения конкретных практических задач. Все это, в конечном счете, негативно сказывается и на производительности, и на простоте внесения изменений в сайты.
Развитие стандартов, улучшение поддержки стандартов производителями браузеров, возникающие новые технологии и идеологии подходов, такие как появившаяся недавно технология AJAX, помогают частично скомпенсировать эти проблемы на уровне web-based CMS.
Однако, решение многих актуальных задач с помощью специализированного клиента может оказаться куда более полным, принципиальным и выигрышным. Вынесение на уровень клиента сложных интерфейсов управления позволит дать пользователю максимум степеней свободы. Вынесение на уровень клиента абстракций программной архитектуры позволит сделать серверную реализацию более компактной, прозрачной и производительной, а способы управления функциональностью - более простыми и понятными.
Особенно значимыми эти задачи становятся, если рассматривать CMS не просто как "админку", позволяющую добавлять новые документы по заранее определенным шаблонам, а как средство полноценного развития сайта.
Сайт во многом подобен живому организму. Он нуждается в постоянном внимании - обновлении, улучшении, добавлении новых возможностей и сервисов, в которых заинтересованы посетители. А иногда и в смене дизайна или полной переработке структуры. В web-ориентированных системах все это, чаще всего, требует квалифицированного вмешательства в программный код. Менеджер сайта вынужден изучать языки программирования или обращаться к разработчикам - нести дополнительные расходы, терять в оперативности реакции на запросы пользователей.
Да и для разработчика постоянная правка программного кода для решения частных задач - не самый лучший вариант. Не случайно широчайшее распространение в сфере создания desktop-приложений получили интегрированные среды визуальной разработки, основанные на концепции RAD (Rapid Application Development). Собственно, никто себе уже и не мыслит разработку пользовательских программ иначе, чем с помощью таких сред - "накидал" на форму готовые компоненты, определил реакцию на события - и программа, зачастую, уже готова! В итоге - выигрыш по затратам труда, снижение себестоимости, увеличение оборота и прибыли в конце концов.
В web-разработке подобная концепция пока не получила широкого распространения. "Монстры" IT, за исключением, быть может, Microsoft, не создали на рынке адекватного предложения. Платформа Microsoft .NET, при всех своих достоинствах, ориентирована целиком на использование всего коммерческого программного бэкграунда той же фирмы Microsoft, тогда как наибольшей популярностью для web-проектов пользуются бесплатные платформы, языковые средства и СУБД: Unix, Apache, PHP, Perl, MySQL и многие другие.
Что может предожить контент-менеджеру и разработчику система со специализированной программой-клиентом?
Конечно же, удобные и гибкие пользовательские интерфейсы и расширенную функциональность, доступную desktop-приложениям:
Возможность не только увидеть всю структуру сайта целиком, но и поменять ее, при необходимости, методом Drag-and-Drop - "перетаскиванием" отдельных элементов или сразу целых ветвей мышью.
Здесь открывается большое поле для экспериментов - как на этапе проектирования сайта, так и на этапе его поддержки и развития - вносить изменения легко, просто и наглядно. Кроме того, выполняемые изменения могут быть отделены от серверной базы данных действующего сайта и никак на нем не отображаться до тех пор, пока редактор или проектировщик не будет удовлетворен сделанным и не подтвердит их.
Возможность работать с данными сайта в режиме электронных таблиц, со всеми вытекающими преимуществами. К ним относится не только одновременный просмотр очень больших объемов табличных данных, на которых браузер просто "обрушится", но и функции редактирования содержимого любых ячеек, поиска/замены/автозаполнения по всему массиву данных или отдельным выбранным столбцам. И все это - очень быстро.
Преимуществом будет и возможность прямого копирования/вставки табличных данных из других приложений - например, прайс-листов из программы MS Excel. Особенно, при наличии функций интеллектуальной компоновки вставляемого массива на лету.
Особо интересной как для разработчиков, так и для менеджеров сайтов была бы поддержка библиотеки готовых компонент и стилей.
Действительно, намного удобнее добавить в проект новую функциональность, просто щелкнув мышкой на нужном компоненте, чем "привязывать" к проекту скриптовые "модули", разбираясь в программном коде или переверстывая шаблоны страниц. "Компоненты" могли бы представлять собой как отдельные самостоятельные фрагменты сайта - часто используемые типовые элементы структуры (такие как разделы "О компании" или "Каталог продукции"), или типовые блоки страниц - скажем, заголовок, текст и реквизиты документа, навигационный блок "Меню" и т.д. - так и комплексные решения, состоящие из нескольких связанных фрагментов - например, "Новости" или "Интернет-магазин". Как и в средах разработки desktop-приложений, для настройки этих компонент было бы достаточно определить необходимые свойства. Такой способ работы, будучи достаточно простым, визуальным и не требующим серьезных знаний каких-либо языков программирования, мог бы освоить не только профессиональный разработчик, но и "контентщик" - по настоящему заинтересованный в том, чтобы его проект действительно жил в сети.
Принципы работы с подобной системой хорошо представлены - со множеством иллюстраций-скриншотов - в разделе "Учебники" на официальном сайте DAA.CMS - интегрированной среды разработки и управления контентом, основанной на специализированном Windows-клиенте. См., например: "Корпоративный сайт за 10 шагов".
Другим преимуществом специализированного программного решения может быть уровень абстракции, практически недостижимый с помощью web-средств. Разрабатываемый или поддерживаемый проект может быть полностью абстрагирован и от языка серверной реализации, и от какой-либо определенной СУБД - вообще от платформы, на которой будет работать сайт. Перенос готового сайта с одной платформы на другую мог бы быть осуществлен, таким образом, в несколько кликов мышью. Не говоря уже о переносимости и совместимости с различными платформами индивидуальных наработок разработчика!
Действительно, когда средство разработки и управления, а также модель данных и страничных представлений физически отделены от самого сайта и от программного окружения, в которой он работает - реализовать это не так уж и сложно. Всего лишь, нужна хорошо продуманная архитектура. Упомянутая выше DAA.CMS, например, обладает этой возможностью.
Что выбрать?
Рассмотренными выше несколькими аспектами особенности CMS с web-интерфейсом и с desktop-клиентом не исчерпываются - в этой короткой статье мы остановились только на самых важных и очевидных из них. Вывод, тем не менее, напрашивается - и тот и другой вариант не только имеют равное право на существование, но и являются, по сути, взаимодополняющими. Объединив преимущества web-ориентированных решений с функциональной мощью desktop-программы можно добиться самых впечатляющих результатов. Особенно - правильно распределив области приложения между web- и desktop-ориентированными средствами.
Там, где нужна высокая доступность и оперативность в публикации отдельных материалов, а требования к квалификации пользователей должны быть самыми минимальными, лучшее решение, без сомнения - простая web-форма. Возможно, с привычными, "как в ворде", кнопками визуального форматирования. Сайтом с такими content management средствами, в рамках своей компетенции, легко сможет управлять даже гипотетическая "секретарша".
В реализации интерактивных возможностей сайта, как правило, тоже не обойтись без web-интерфейсов. Во всяком случае, они, неизменно, должны являться базовыми. Однако, здесь уже можно предложить альтернативу. У пользователей известного сетевого сообщества livejournal.com, например, пользуется популярностью Windows-клиент Semagic, существенно расширяющий возможности web-форм для публикации сообщений и комментариев.
Там же, где нужна гибкость и удобство в администрировании, возможность иметь доступ к целому, к большим массивам структурированной информации, к взаимосвязям между различными объектами - на первый план можно смело поставить специализированный клиент как основной инструмент администратора и контент-менеджера. Можно не сомневаться, что усилия, потраченные на освоение этого инструмента, в ходе работы с сайтом многократно окупятся.
Разрабочикам же прикладных проектов в первую очередь целесообразно обратить внимание на desktop-ориентированные CMS/CMF (Content Management Framework), особенно в той части, в которой они позволяют перейти от "ковыряния в коде" к Rapid Application Development. Тем более, что такие системы могут быть с большим успехом использованы для быстрой разработки тех же web-интерфейсов управления контентом, да еще и независимых от серверных платформ и технологий!
Автор: Микаэлла Клюева