ТЕМА НОМЕРА: На том стоим

Всемирная сеть Internet существует с 1961 года. И уже в те времена начались эксперименты по индексированию и выборке данных, но удовлетворительные результаты появились далеко не сразу. Только в 1991 году Поль Линдер (Paul Linder) и Марк П. Маккэхил (Mark P. McCahill) из университета Миннесоты создали технологию Gopher, которая стала непосредственной предшественницей WWW. В 1992 году была создана всемирная информационная сеть World Wide Web, или просто Web (паутина). Ее основой является концепция гипертекста, сформулированная Тедом Нельсоном еще в 1974 году.

Вместе с вебом пришли три новые технологии:

HTML - язык разметки гипертекста, который служит для создания веб-страниц.

HTTP - протокол передачи гипертекста, предназначенный для пересылки веб-страниц с сервера пользователям.

Веб-браузер, необходимый для отображения веб-страниц на мониторе пользователя.

HTML вырос из более сложного языка - SGML (Single Generalized Markup Language).

Необходимость CMS

В начале развития WWW подавляющее большинство сайтов были статическими, так как страниц было немного. Однако по мере роста количества страниц и WWW в целом все больше времени при обновлении страниц уходило на рутинную HTML-разметку (помимо добавления новой HTML-страницы требовалось вставить ссылки на других страницах). Обновление и даже мелкая корректировка внешнего представления страниц все чаще выливались в весьма сложное мероприятие. Постоянные публикации статей и новостей требовали кропотливого труда, а такие средства, как голосования, гостевые книги, доски объявлений, вообще находились за гранью возможного. Как следствие, назрела необходимость автоматизации представления данных пользователю. История управления контентом началась с управления документами в традиционном смысле этого слова, то есть обычными текстовыми файлами. По мере развития определения «документ» системы управления документами стали называть системами управления контентом или содержимым веб-ресурса. Само определение «управление контентом» поначалу прочно ассоциировалось с процессом публикации и обновления информации на веб-сайтах - требовалась технология, позволяющая следить за ее актуальностью. Применительно к организациям (фабрикам, заводам), оперирующим огромным количеством информации, уместно говорить уже о системах управления информационными ресурсами предприятия (Enterprise Content Management). В результате термин «Content management» расширился: им стали обозначать управление не только информацией на сайте, но и всеми разрозненными и разнообразными фрагментами корпоративной информации. В энциклопедии Wikipedia системой управления контентом названа система, применяемая для организации и упрощения совместного создания информации (проще говоря - пополнения базы данных группой лиц).

Сайт WebMastak.comсуществует около года, однако на нем можно найти немало полезных статей по веб-программированию на PHP, Perl и несколько сотен (!) о JavaScript, а также материалы по использованию таких интернет-технологий, как SSI и XML. Еще здесь есть такие интересные разделы, как «Оптимизация и продвижение сайта в Сети» и «Настройка веб-сервера Apache».

В рамках этого информационного ресурса существует несколько проектов - например, «ХостОбзор», посвященный выбору хостинга и регистрации доменных имен. Вы можете почитать статьи, сравнить предложения хостингов, получить информацию о киберсквоттинге.

Наверняка пригодится вам и небольшая, но активно пополняемая коллекция скриптов на PHP и Perl

Структура CMS

Функции, выполняемые системами управления содержимым, можно разделить на три основные группы:

Добавление - предоставление авторам удобных и привычных средств создания (добавления) контента на ресурс.

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

Редактирование данных, содержащихся на сайте.

CMS, как правило, обеспечивают хранение данных в едином репозитории (хранилище).

Существует несколько моделей, по которым строятся системы управления:

Модульная модель. Такие CMS представляют собой набор отдельных суб-CMS, каждая из которых управляет своим набором типов данных. Модули независимы и полностью отвечают за работу с документами данного типа. Зачастую такой принцип организации является самым удачным, так как расширять функциональность можно за счет добавления нового модуля, замены или редактирования существующего кода. Системы на основе описываемой модели наиболее популярны благодаря своей простоте. В качестве примера можно упомянуть PHPNuke и XOOPS.

Объектная модель. CMS этого типа работают с классами и объектами. Классы определяют структуру данных и набор атрибутов (свойств). Объект является экземпляром класса, его задача - хранить в себе реальные данные. Объект может наследовать свойства, содержание и поведение объектов, которые в них содержатся.

Существуют и другие модели, однако они распространены в гораздо меньшей степени.

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

CMS также различаются по месту хранения сгенерированных страниц:

Динамические. Страница формируется динамически, как только приходит запрос. Это самый ресурсоемкий вариант, поскольку движок работает постоянно. Если посетителей очень много, то возможно чрезмерное использование ресурсов сервера. Главное преимущество подобной схемы - каждый посетитель получает самый свежий вариант контента. Кроме того, возможна индивидуальная настройка страницы под каждого пользователя.

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

Генерация статических страниц на основе динамических данных. При обновлении CMS перегенерирует все связанные страницы. Поэтому при запросе выдается уже сформированная статическая (возможно, собранная с помощью SSI[Server-Side Includes - включения на стороне сервера, то есть в страничку вставляются динамически сгенерированные сервером данные (например, IP-адрес посетителя и др.)]) страница.

Современное аппаратное обеспечение хостинг-провайдеров вполне может потянуть первый вариант даже для сильнопосещаемого ресурса. Однако при необходимости экономии ресурсов лучше применять два других.

Весьма и весьма полезен для новичков ресурс «Постройка.ру». Тут подробно рассказывается о создании сайтов, немало статей на тему «HTML», «Графика» и «Дизайн». Хорошо известен в Сети справочник, выходящий на этом сайте: «HTML: шаг за шагом». А еще есть такой раздел, как «Справочная»: определения различных терминов, связанных с Интернетом, разбиты по алфавиту. Самым интересным местом на «Постройке.ру» (по крайней мере, для меня) является форум. Здесь обсуждаются материалы, опубликованные на сайте, и не только. Кстати, оставив там ссылку на свой сайт, я в за несколько дней получил больше десятка отзывов.