Системы управления контентом[12]
Системы управления контентом[12]
Сайты, предполагающие регулярное размещение информации, как правило, имеют систему управления контентом (англ. Content management system, CMS). Благодаря ей можно минимально использовать помощь внешних технических специалистов.
Среди наиболее важных требований, предъявляемых к CMS, выделим следующие.
• Возможность управления через администраторский ресурс структурой вывода страниц сайта без привлечения технических специалистов.
• Возможность работы со значительными объемами информации без потерь в скорости.
• Возможность поддержки неограниченного количества ресурсов в рамках одной лицензии.
• Система должна выдерживать высокое нагрузочное тестирование.
• Система должна быть гибкой и легко расширяемой.
Для большей части CMS в качестве базового языка программирования используются Perl, Python или PHP. Все три языка – интерпретаторы (любые изменения ПО осуществляются быстрее и безболезненнее). Рассмотрим наиболее важные их особенности.
Perl изначально разрабатывался для работы с большими массивами текста и начал использоваться в качестве средства разработки CMS, когда еще не было других интерпретаторов под Unix. Как правило, системы, написанные на Perl, работают качественно и быстро, однако вносить в них изменения крайне сложно, вследствие этого они крайне негибки и слабо расширяемы.
Python – полноценный объектно-ориентированный язык высокого уровня. Системы, написанные на нем, отличаются относительно невысокой быстротой действия. Еще одним минусом использования данного языка является то, что в России работают всего лишь около 40–50 специалистов, способных писать CMS на данном языке. В результате большая часть представленных в настоящее время на рынке CMS работает в тестовом режиме (в России не существует ни одного коробочного продукта). При использовании мощного сервера система, написанная на Python, выдерживает нагрузку около 5–6 тыс. посетителей в сутки.
PHP – первый язык программирования, спроектированный специально для Интернета. В России достаточно много PHP-разработчиков, и большинство CMS написаны на нем. В основном используется модификация PHP4. Однако около полутора лет назад появилась принципиально новая объектно-ориентированная модификация PHP5.
PHP5 позволяет создавать приложения в режиме реального времени с использованием последних достижений IT-менеджмента экстремальное программирование). В то же время это полноценный объектно-ориентированный язык, что позволяет значительно увеличить скорость разработки за счет повторного использования кода. PHP5 обладает обновленными средствами контроля пользовательской активности, намного увеличивающими защищенность построенной на нем системы от действий недружественных пользователей.
В качестве баз данных обычно используются MySQL, PostgreSQL, MSSQL и Oracle.
MySQL – является, по мнению автора данной книги, наихудшим среди перечисленных решений (из-за относительно низкой производительности в сложных интернет-проектах). За использование этой базой данных в отличие от PostgreSQL надо платить. Лицензия MySQL не предполагает использования этой БД в коммерческих целях, однако, поскольку существует возможность установить MySQL свободно, многие провайдеры не обращают на лицензию внимания.
PostgreSQL – наилучшее решение для будущего сайта заказчика. На объемах данных больше чем 4 терабайта (1 терабайт = 1024 Гбайт) PostgreSQL сравним по производительности с MSSQL и Oracle.
MSSQL автоматически подразумевает использование программного обеспечения Microsoft. В результате резко увеличиваются аппаратные требования, возрастает стоимость сервера и программного обеспечения (использование лицензионного ПО обязательно).
База данных Oracle – одно из лучших решений, но в рамках часто ее плюсы избыточны. Существенный выигрыш в производительности отмечается при работе с массивами данных больше 10 терабайт.
Таким образом, с точки зрения автора, лучшее решение для сложных интернет-ресурсов в России – это CMS, написанная на PHP5 и использующая в качестве базы данных PostgreSQL(рис. 17).
Рис. 17. Система управления контентом должна иметь интуитивно понятный интерфейс (пример редакторского интерфейса CMS BaseBuild Crystal Fortress).
Еще одно требование к CMS связано с необходимостью решить проблему работы сайта при больших нагрузках. Поскольку посещаемость ряда интернет-ресурсов может составлять тысячи и даже десятки тысяч посетителей в сутки, данная задача очень актуальна. В настоящее время есть два решения – использовать кэширующие механизмы или HTML-конвертер.
Кэширование предполагает запоминание сайта на некоторое время, тогда при обращении на сайт значительной части посетителей запросы в базу данных не отправляются. Однако из-за него сайт неадекватно отображается у некоторых пользователей (посетители могут видеть устаревший контент сайта). Еще один минус – увеличение требований к аппаратной части.
Второй вариант предполагает перманентную генерацию статических копий сайта с отдельными динамическими интерактивными вкраплениями в тех случаях, где это необходимо. В ответ на изменения на сайте перегенерируется именно та часть, где возникли изменения. HTML-конвертер не требует дополнительных ресурсных затрат.
Данный текст является ознакомительным фрагментом.