Вчитися, вчитися, вчитися..

  Магістри ФОТІ
Русский язык
Українська мова 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 з'явилися не так давно. Першою системою прийнято вважати 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-сайтів і intrenet-порталів, особистих web-сайтів, сайтів уболівальників (фанів), додатків електронної комерції. Drupal включає наступні можливості: керування web-контентом, блоги, середовище для співпраці (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, кожен під свою мету. Пріведемо опит користувачів 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. Цей інтерфейс має надмірну функціональність. Рядовому користувачеві, оновлюючому стрічку новин, не потрібно мати можливості налашиування динамічних модулів сайту і тим більш налаштування параметрів БД сайту.

CMS-система PHPNuke
Мал. 3. CMS-система PHPNuke

       

       Систем, у яких є розмежування між клієнтською і серверною частиною, одиниці, оскільки розробники в основному не хочуть ускладнювати собі життя і розділяти права адімістратора і користувача. Адже для людини, яка стежить за наповненням інформації на сайті, зовсім не потрібно мати доступ до редагування модулів 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