Учиться, учиться, учиться..

  Магистры ФВТИ
Русский язык
Українська мова English language


     ДонНТУ
Короченков Михаил Михайлович

Факультет: Вычислительная Техника и Информатика
Кафедра: Электронные Вычислительные Машины
Специальность: Компьютерные Системы и Сети
Группа: КС-07м
Тема магистерской работы: "Серверная часть системы управления контентом (CMS)"
Научный руководитель:   доц. Аноприенко Александр Яковлевич

icq 307537282
mail mike.dn.ua@mail.ru
vkontakte.ru http://vkontakte.ru/id2968040
Автореферат

Тема: «Серверная часть системы управления контентом (CMS)»

Актуальность работы
       Аббревиатура CMS расшифровывается как «Content Management Software» («программное обеспечение для управления содержимым», программа разработки сайта). В нашей стране принято последнюю букву «S» расшифровывать как «System», а по-русски это обычно звучит как «Система управления контентом». Иногда употребляется более cms простое название - "движок сайта".
CMS появились не так давно. Первой системой принято считать Vignette, которая появилась на западе в 1995 году. У нас в стране решения по управлению содержимым появились значительно позже.
       Необходимость систем управления для владельцев сайтов начала проявляться в тот момент, когда количество материалов на веб-сайтах начало стремительно расти. Это привело к тому, что традиционные «ручные» технологии создания и поддержки сайтов, когда сайт состоял из статических страниц и набора дополнительных специализированных скриптов, стали не успевать за быстро меняющимися условиями бизнеса. Ввод данных на сайт требовал (как минимум) знания технологий HTML/CSS верстки, изменения структуры сайтов были сопряжены с каскадным изменением большого количества взаимосвязанных страниц. Различные автоматизированные механизмы, вроде гостевых книг и новостных лент, внедренные на сайтах как отдельные скрипты и, как правило, написанные разными специалистами, перестали удовлетворять требованиям безопасности. На многих сайтах стали появляться «зоопарки» из различных технологий и подходов к созданию сайтов, поэтому возникла потребность с одной стороны в унификации программных решений, а с другой в разделении дизайна и содержимого на две независимые составляющие.
CMS действительно разделяют сайты на две составляющие: дизайн (внешний вид сайта в целом, отдельных страниц, конкретных блоков информации) и содержимое (контент). Дизайн сайта, как правило «зашит» в шаблоны и изменяется значительно реже, чем контент. Для ввода контента не требуется специальных знаний, а простые приемы оформления текста знает практически каждый, кто работал в Microsoft Office.
       Cистемы управления контентом решают две основные задачи. С точки зрения пользователей – это инструмент, который позволяет публиковать новости, размещать новые страницы на сайте и производить другие операции над содержимым через удобный интерфейс. При этом пользователь может не владеть технологиями создания сайта, но он обязательно должен понимать, как устроен сайт. С точки зрения тех, кто создает сайты - это инструмент, который ускоряет создание сложных сайтов, позволяя компоновать решения из готовых блоков, изменяя в определенных пределах логику работы и оформление.
       Таким образом, в настоящее время в связи с активным развитием сети интернет и все большей и большей информационной нагрузкой, разработка CMS систем имеет приоритетное направление в нтернеит-индустрии. Без этого развития интернет-индустрия остановится, погрязнув в бесполезном ручном труде!
Научная новизна и практическая ценность работы
   Научная новизна работы заключается в:
    – разработке простого быстродействующего алгоритма обработки запросов от клиента;
    – поддержке различных платформ XP и Linux семейства;
    – использовании метода статического создания страниц, что сделает сайт полностью независимым от функционирования сервера;
    – использовании комбинации методов шифрования канала связи, с открытым ключом и симметричных (принцип взаимодействия: "Сторона А подключается к стороне Б. Сторона Б создает пару ключей (открытый и закрытый) и передает стороне А открытый ключ в незашифрованном виде; Сторона А создает симметричный ключ, шифрует его с помощью открытого ключа стороны Б и передает его стороне Б в зашифрованном виде. После чего обе стороны знают симметричный ключ и могут обмениваться зашифрованной информацией.").

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

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

Для обобщенной классификации используются следующие критерии:

  1. Наличие тех или иных функций и модулей, понятность и доступность пользователю;
  2. Возможность функционирования системы на различных платформах, совместимость с базами данных, возможность подключения дополнительных модулей;
  3. Технологичность — использование технологий, позволяющих повысить надежность и быстродействие системы;
  4. Потенциал развития системы.

"Простая CMS система.
Система собирается из программных модулей, для каждой системы они свои. Модули единожды настраиваются разработчиком, чем жестко закрепляется структура проекта. Для дальнейшего изменения структуры сайта и его параметров требуется участие технического персонала. От пользователя системы требуется знание основ HTML. Совместимость. Система совместима с определенными платформами и типами СУБД. Попытка внедрения дополнительных модулей, в зависимости от используемых технологий, может привести к полной переработке проекта. Технологичность. Динамическое формирование страниц ограниченная пропускная способность — до 3 000-5 000 посетителей в сутки. Система инсталлируется разработчиком. Развитие системы достигается путём перевода сайта на новую, более приспособленную к текущим задачам, версию системы управления контентом.

Шаблонная CMS система.
Единый модуль или набор модулей с жестко закрепленной структурой сайта. Система содержит набор сервисных функций, позволяющих выполнить стандартные действия с сайтом: сформировать новостную ленту, создать / удалить новый раздел, выбрать шаблон для работы с информацией, загрузить файл и расставить по тексту картинку, установить атрибуты текста и т.д. Система совместима с определенными платформами и типами СУБД. Попытка внедрения дополнительных модулей, также, как и в предыдущем случае, ограничена. Динамическое формирование страниц или с использованием кэширования данных. В зависимости от методов формирования страниц — от 5 000 до 50 000 посетителей в сутки. Инсталлируется разработчиком. Усовершенствование достигается путём перевода сайта на новую, более сложную, версию системы управления контентом.

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

Универсальная CMS система.
Имеет продвинутые средства управления контентом, настройка функциональности системы, возможность переопределения атрибутов объектов сайта. Система предоставляет средства для разработки новых сервисов и возможностей. Технические особенности. Расширенные возможности АPI, наличие готовых прикладных решений, в т.ч. с участием программных продуктов третьих фирм. Наличие сертифицированной системы обеспечения безопасности — разграничение прав доступа к системе на внутрикорпоративном уровне. Кэширование формируемых динамических страниц. Пропускная способность — не ограничена. Имеется возможность подключения дополнительных модулей, расширяющих функциональность ресурса, в том числе готовых модулей интеграции с внутрикорпоративными системами. Возможность расширения за счёт кластеризации." [8] ( автор: Елена Жарикова [полная статья])

     В моей работе планируется создание (в конечном результате) универсальной CMS-системы. Это является основной целью и основным направлением многих разработчиков, так как таких систем в мире единицы, а их стоимость достигает десятков тыс. у.е.

Анализ уже существующих решений

Приведем несколько популярных систем управления контентом и опишем основные их возможности:

система управления контентом Drupal

Система Drupal позволяет для одного или многих пользователей с легкостью выкладывать, управлять и объединять большое количество разнообразного содержимого на web-сайте. Данная система может использоваться для общественных web-порталов и форумов, корпоративных web-сайтов и intranet порталов, личных web-сайтов, сайтов болельщиков(фанов), приложений электронной коммерции. Drupal включает следующие возможности: управление web-content, блоги, среду для сотрудничества (collaborative authoring environments), форумы, новости, картинные галереи, размещение файлов. Drupal является открытой и бесплатной системой системой.

система управления контентом PHP-Nuke

PHP-Nuke написана на php, и работает с базой данных MySQL. На основе PHP-Nuke можно сделать на сайте новости, статьи, опросы, голосования, файловый менеджер, форум, мощный поисковый модуль, каталогизатор ссылок, почтовую рассылку, возможность настройки портала каждым пользователем под себя, сортировку новостей, статей, и обзоров, по категориям, дате опубликования, по автору и т.д. Есть также возможность загрузить дополнения к PHP-Nuke со следующих ресурсов: www.nukecops.com, www.nukestyles.com, www.phpnukefiles.com. Это самая распространенная в русскоязычном Интернете система управления контентом, во многом благодаря бесплатному распространению. PHP-Nuke, будучи безусловным лидером по распространенности, нередко подвергается попыткам взламывания. Но наиболее важный минус системы в том, что она плохо приспособлена к автоматической индексации в поисковых машинах, эта особенность непосредственно отражается на продвижении сайта. Еще одно неудобство – блочность дизайна, приводящая к тому, что сайты, созданные на основе PHP-Nuke похожи друг на друга, отличаясь лишь цветовой гаммой.

система управления контентом Nucleus CMS

«Nuclues CMS» - это блоговый движок для сайта, который функционирует на PHP + MySQL. Главной отличительной особенностью является скорость работы и нетребовательность к ресурсам сервера. Nucleus предоставляет возможности для создания новостного сайта, блога, персональной web-страницы или полномасштабного сайта. Nucleus CMS ветки 3.2 намного более гибок и мощен, чем изначальные скрипты, но до сих пор его основная концепция не изменилась: гибкость, защита и вычислительная элегантность. Благодаря своему международному распространению среди пользователей и разработчиков, Nucleus CMS остаётся простым для освоения и достаточно гибким. Сайты, сделанные на «Nucleus CMS»: www.internet.ru , www.rul.ru . Расширить возможности «Nucleus CMS» можно за счёт дополнительных моделей, которых на сайте www.nucleuscms.org достаточно много. В стандартный состав входит функция «Fancy URLs» позволяет генерировать статические страницы взамен динамическим, что очень полезно при индексации поисковиками.

система управления контентом osCommerce

osCommerce – это популярная система для создания онлайнового электронного магазина. Данная система является бесплатной и доступна как open source проект. osCommerce начала разрабатываться с 2000 года, и на сегодняшний день на ее основе построено более 6 300 электронных магазинов по всему миру. Данное решение позволяет легко установить и поддерживать систему.

система управления контентом phpBB

phpBB это мощный, полностью масштабируемый с большим количеством настроек и с открытый кодами(Open Source) пакет для создания форумов. phpBB имеет дружественный интерфейс, простую панель для администрирования, и полезный FAQ(англ. frequently asked questions –часто задаваемые вопросы). Работает на языке PHP с базами данных следующих типов: MySQL, MS-SQL, PostgreSQL или Access/ODBC. Идея phpBB неизменна – создание и поддержка стабильной, бесплатной, Open Source системой для создания форума.

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

Валиева Регина: "Из результатов опроса 500 пользователей, использующих различные CMS ([полная статья])":

       "73% сайтов, от общего количества опрошенных студий, работают на основе CMS. Более 70% опрошенных используют стороннюю CMS в своей студии, из них лишь 10% работают с бесплатными CMS, а остальные предпочитают коммерческие. С чем связан такой маленький процент использования бесплатных CMS? По словам разработчиков к преимуществам таких систем они относят доступность, возможность самостоятельной доработки (наличие исходного кода), возможность локализации. Однако их использование связано с определенного рода проблемами: отсутствие технической поддержки со стороны разработчиков (системы предлагаются в основном без технической поддержки и все проблемы, связанные с использованием таких систем разработчик должен решать самостоятельно), узкая сфера применения.
       Среди компаний, использующих коммерческие системы управления контентом, только 15% предпочитают закрытый исходный код, а остальные 85 % работают с открытым кодом. Наиболее приемлемой формой сотрудничества разработчика и дизайн-студии 72% компаний считают отчисления за каждую копию CMS с каждого реализованного проекта. Как показывают результаты, наличие открытого исходного кода для многих студий имеет большое значение. Здесь двоякое мнение: для систем с фиксированной структурой доработок больше, но они проще, а для гибких систем доработок меньше, но они сложнее. Кстати, недовольством многих респондентов, использующих стороннюю CMS, является не только необходимость наращивания нового функционала, но и сложность его разработки и добавления.
       44% всех опрошенных полностью устраивает CMS, с которой они работают. Среди плюсов используемых CMS большинство Интернет-студий выделяют для себя следующие важные моменты: большой собственный функционал CMS, постоянное развитие системы (с планом выпуска новых версий), подробная документация для разработчика и готовые модули для интеграции с другими системами (1С, Yandex.market и пр.). Однако, такое же число респондентов (44%), уже использующих CMS, готовы рассматривать дополнительные варианты, а 12% находятся в поиске новой CMS для работы. Важными моментами, которые их не устраивают, являются: низкая скорость работы программ в CMS, сложность управления содержанием для конечного заказчика, недостаточно оперативная работа службы технической поддержки разработчиков CMS и отсутствие подробной документации для конечного пользователя. Что касается регионов, то неоднократно высказывалось мнение о несколько завышенной цене на системы и модули, учитывая, что конечная стоимость разработки сайта, как правило, значительно ниже, чем в Москве.
       CMS становится одним из наиболее конкурентных рынков приложений. Ориентируясь на растущие потребности клиентов, разработчики постоянно совершенствуют свои системы. Чтобы не отставать, пользователи постоянно отслеживают рынок систем управления контентом. Среди наших респондентов почти половина (47%) изучают рынок CMS непрерывно. Чтобы получить независимую оценку различных разработок, специалисты компаний посещают следующие сайты: www.cmslist.ru, www.cmsobzor.ru, www.rucms.ru, среди западных www.cmswatch.com, www.cmsmatrix.com и заходят на сайты наших известных разработчиков, таких как Bitrix, Netcat, Hostcms и пр. .."[7] (автор: Валиева Регина [ссылка])


Из всего вышесказанного (материалов исследования рынка) можно сделать следующие выводы:
  • интерес и спрос на CMS системы чрезвычайно высок;
  • больше половины пользователей не довольны существующими системами и готовы сменить свою. Их не устраивает:
    • низкая скорость работы в CMS;
    • сложность управления содержанием;
    • недостаток в технической поддержке;
    • отсутствие хорошей документации;
    • завышенные цены на CMS ;
    • в большинстве случаев закрытость кода CMS;
    • слабая интеграция с другими приложениями;
                Следовательно, направлением моей работы можно считать создание CMS (ее серверной части) с простым и открытым кодом. При этом система должна удовлетворять следующим критериям: простотой в наполнении содержания, хорошей документацией и качественной технической поддержкой.
Разработка и использование CMS

       Процесс разработки сайта с использованием CMS состоит из нескольких этапов:

1) Дизайнер разрабатывает эскизы дизайна сайта. Картинки, на которых изображено, как сайт будет выглядеть.
2) Программисты встраивают в существующий сайт CMS и наполняют сайт первичной информацией.
3) Сайт готов к эксплуатации и размещается в Интернет.
4) Заказчик получает доступ к управлению своим сайтом и вносит необходимые правки в сайт.
5) Сайт функционирует и заказчик модифицирует информацию самостоятельно, так часто, как это необходимо.

 Процесс разработки CMS-системы
Рис. 1. Процесс разработки CMS-системы

       В процессе эксплуатации CMS очень важно разделение функций контент-менеджера (в общем случае это сам заказчик) и веб-администратора CMS. У каждого из них должны быть свои права и обязанности. Контент-менеджер должен иметь доступ к наполнению сайта, а веб-администратор - к коду CMS. Такой подход обеспечивает быстроту работы в поддержании сайта и скорости его наполнения новой информацией. Это продемонстрировано на рис. 2

 Процесс наполнения и администрирования CMS-системы
Рис. 2. Процесс наполнения и администрирования CMS-системы



Разработка серверной части CMS
       В большинстве случаев CMS является неотделимой средой администрирования и наполнения контента. Как пример, можно привести CMS-систему PHPNuke. Этот интерфейс имеет избыточную функциональность. Рядовому пользователю, обновляющему ленту новостей не нужно иметь возможность настройки динамических модулей сайта и тем более настройки параметров БД сайта.

 PHPNuke
Рис. 3. CMS-система PHPNuke

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


                Ассиметричностью, к примеру, обладает такая схема построения:


 виртуализация контент-базы CMS
Рис. 4. Виртуализация контент-базы CMS


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

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

Список используемой литературы:

1) Вильямс Д. PHP5. Полное руководство. – М: 2006. – 749 с.

2) Информация о бесплатных CMS. Портал предоставляет разработчикам CMS возможность бесплатно публиковать данные о своей системе: http://cmslist.ru/

3) Статьи о CMS: http://www.cms-site.ru/.

4) CMS обзор: http://cmsobzor.ru/.

5) Сайт баз данных по CMS с открытым кодом: http://www.opensourcecms.com/

6) Томсон А. Разработка WEB-приложений на PHP и MySQL. - М.: ДиаСофт, 2003. - 655 c.

7) Статья Валиевой Регины: "Подведены итоги исследования: "Обзор рынка CMS" http://www.cmsobzor.ru/fa.php?aid=28

8) Статья Жариковой Елены: "Выбор системы управления контентом интернет-ресурса" http://www.9g.ru/html/art255.html