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

Разработка системы управления контентом сайта CMS.

Статьи по теме
Искать по теме

Системы управления сайтами, понятие и принцип работы

Система управления контентом (Content Management System – CMS) – это автоматизированный редакторский комплекс, позволяющий управлять содержанием и структурой Интернет-ресурса в режиме on-line. На практике это означает, что любой, даже незнакомый с информационными технологиями пользователь, может совершенно самостоятельно управлять содержанием своего сайта, не прибегая при этом к услугам технического персонала.

Системы управления контентом могут быть интересны с той точки зрения, что:

не требуют профессиональной технической подготовки при использовании;

могут быть успешно интегрированы во внутрикорпоративную информационную систему и служить для организации документооборота;

экономически целесообразны при организации внутрикорпоративных систем и информационных порталов.

Сайт (от англ., site, участок) – это именно участок сервера, то есть раздел, полностью посвященный какой-либо одной теме. Разумеется, практически все сайты включают в себя множество подразделов, каждый из которых может дробиться на еще более мелкие составляющие. Но в любом случае все части сайта объединяет некая общая идея, смысловая направленность, общий стиль исполнения. Сточки зрения все сайты можно условно разделить на два основных вида: статические и динамические.

В 90-е годы наиболее распространенной системой управления контента была следующая: в качестве программного обеспечения использовался web-сервер, предоставляемый в составе услуги хостинга, редактор HTML-документов (от Notepad до Macromedia DreamWeaver) и FTP-клиент (например, CuteFTP, gFTP, FAR или TotalCommander). Страницы создаются с помощью редактора и размещаются на сервере с помощью FTP-клиента. Структура сайта обеспечивается ссылками с одних страниц на другие и, возможно, присутствием меню на некоторых страницах. Сейчас такую систему называют статической. Название связано с тем, что содержимое (контент) страниц находится в статических (постоянно расположенных на диске) файлах, в противоположность динамически создаваемым страницам (генерируемым на лету с помощью программы, находящейся на сервере).

Современная хорошо спроектированная система администрирования значительно превосходит как по объему, так и по сложности разработки видимую часть ресурса: она позволяет редактировать информацию на сайте, выполнять различные задачи по администрированию, собирать и анализировать разнообразную статистическую информацию о посетителях сайта и многое другое.

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

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

Лучшим выходом, с точки зрения оперативности, для компаний владельцев сайтов будет наличие штатного Web – мастера. Только он сможет сделать все быстро и качественно. Однако этот вариант далеко не лучший с точки зрения экономии, так как содержание Web – мастера только для поддержки сайта не рентабельно, если это конечно не очень крупный портал, или Интернет – магазин.

Второй вариант – при первой необходимости обращаться к сторонним Web – мастерам. Тоже не лучший вариант. Во–первых требует составления подробного технического задания на вносимые изменения, а значит требует дополнительное время. Во– вторых за услуги сторонних разработчиков нужно платить. Плата, как правило, берется за каждое обращение.

Третий вариант – договор на поддержку сайта. Этот вариант имеет свои плюсы и минусы, но изменения на сайте могут не потребоваться в течение долгого периода, в то время как деньги нужно будет платить постоянно.

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

Рассмотрим выгоды от использования систем администрирования контента, которые она дает другой стороне: профессионалам сайтостроения – Web –мастерам.

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

Система управления (администрирования) содержимым сайта или проще CMS (Content Management System) позволяет решить эту проблему. Достаточно настроить ее один раз в соответствии с дизайном, и все изменения, в дальнейшем вносимые на сайт, будут автоматически следовать оформлению сайта. При этом редактирование HTML – кода потребуется только при наличии действительно сложных дизайнерских задач.

Таким образом, разработка системы администрирования контента сайта (CMS) принесет пользу всем:

Разработчик повышает качество и скорость разработки своих приложений, а, следовательно, и их финансовую значимость. Кроме того, предоставляя заказчику, возможность самому вносить изменения на сайт, он тем самым, снимает с себя эти задачи, так как за частую поддержка сайта дело не очень доходное, но довольно хлопотное.

Заказчик получает удобный инструмент оперативного редактирования своего сайта и независимость от разработчика.

Классификация систем управления сайтами

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

По виду лицензии CMS разделяются на коммерческие и свободно распространяемые. Коммерческие были созданы предпринимателями для извлечения прибыли от продажи и/или технической поддержки, а свободно распространяемые (СР, Open Source) – это, как правило, плоды труда энтузиастов, ставшие "общим" достоянием благодаря открытому коду и сообществу профессионалов, которые время от времени этот код совершенствуют. Преимущество коммерческих CMS в гарантиях – всегда есть разработчик, к которому можно обратиться или предъявить претензии. Свободно распространяемые системы отличаются тем, что их ядро бесплатно (но не стоит забывать про затраты на поддержку).

На Западе и коммерческие, и СР CMS используют для разработки сайтов всех типов. В России в силу сложившихся стереотипов аудитория отличается. Коммерческие доминируют в сегменте крупных заказчиков, а в недорогих сайтах уступают СР. Это странно, так как у многих разработчиков коммерческих систем есть бесплатные версии, которые подходят для персональных страниц, сообществ, порталов и корпоративных ресурсов малого бизнеса. Один из распространенных мифов, работающих против СР, – их уязвимость для взлома. Якобы из-за того, что исходный код открыт, хакерам проще найти слабые звенья в защите. На деле, открытость позволяет проводить массовое тестирование платформ, и поэтому популярные CMS с открытым кодом защищены зачастую лучше, чем менее развитые коммерческие.

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

Главным преимуществом бесплатных систем управления контентом является то, что они бесплатные, и в интернете есть множество бесплатных плагинов, модулей и шаблонов, с помощью которых можно создать абсолютно уникальный сайт любой сложности. Минус бесплатных платформ – то, что со всем придется разбираться самостоятельно.

Рассмотрим основные виды платных и бесплатных CMS.

На рисунке 1 отражена статистика распределения популярных сайтов между CMS за 4 квартал 2014 г. с сайта itrack.ru, построенная на основе данных, полученных при анализе более 1000 сайтов из списка "TOP-100" сайта Liveinternet, выбранных из десяти тематик: авто, медицина, новости и сми, недвижимость, банки, развлечения, путешествия, работа, товары и услуги [3].

Разработка системы управления контентом сайта CMS

Рис. 1. Статистика использования CMS в популярных проектах

Среди бесплатных наиболее популярны следующие: Joomla, Datalife Engine, WordPress, Drupal, Ucoz и др.

Joomla имеет множество модулей, плагинов и дополнений. В интернете есть очень много уроков, статей и документации на русском языке по работе в этой системе. Все бы хорошо, но Joomla! слишком "тяжеловата" – имеет много ненужных вещей, которые грузят систему. Плюс к этому, Joomla! создает множество дублей страниц, что не очень хорошо для продвижения.

WordPress разрабатывалась для создания блогов, но оптимально подходит для создания корпоративных сайтов, в том числе интернет-магазины. Для WordPress создано множество бесплатных плагинов, а в интернете можно найти документацию на русском языке.

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

Ucoz – это конструктор сайтов, который предоставляет хостинг, но доменное имя будет выглядеть следующим образом: " vashsite.ucoz.ru".

Среди платных самые популярные: 1С-Битрикс, NetCat, UMI.CMS, HostCMS и др.

1С-Битрикс очень популярная платная система управления контентом, на базовой лицензии позволяет создать сайт-визитку. Для того, чтобы создать интернет-магазин потребуется дорогостоящая лицензия.

NetCat не требует каких-то специальных знаний языков программирования или разметки. В системе реализованы различные функциональные возможности, например, интерактивное общение с посетителями сайта

UMI.CMS – "Коробочная" CMS, которая позволяет управлять сайтом и контентом без входа в административный интерфейс

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

У любой системы есть свои достоинства и недостатки.

Drupal и WordPress – на сегодняшний день самые используемые бесплатные системы управления, на основе которых можно создавать функциональные и легко управляемые сайты без серьезных финансовых затрат. Попробуем провести сравнительный анализ описанных нами систем.

Вот наиболее важные для разработчика и пользователя критерии:

Безопасность – защита от взлома, стабильность работы проекта.

Версии – наличие обновлений, их регулярность, стабильность и проверенность временем.

Наличие документации, в том числе русскоязычной.

Русское комьюнити/поддержка – наличие сообщества, возможность вступления, квалификация и активность участников.

Борьба со спамом – защита проекта от всевозможного спама.

Интеграция с другими проектами – java, flash, форум, чат и тд.

Визуальный редактор – минимальный порог вхождения для управления и поддержки данной системы.

Работа с изображениями – встроенные средства для обработки изображений и работы с ними.

Шаблоны оформления – наличие базы дизайнов и тем для проекта

Расширенная функциональность (плагины) – объем и качество существующих наработок ведущих специалистов, расширяющих или изменяющих функциональность проекта.

Виджеты/блоки – возможность проекта выделять отдельные составляющие в блоки и работа с ними.

Современные технологии: трекбаки, пинги, XML-RPC, RSS

Кодировки – возможность работы с разными кодировками и наиболее популярной сегодня UTF-8

Комментирование – работа с комментариями, уровни доступа и управляемость данного функционала.

Экспорт/импорт данных – управление потоками информации входящей и выходящей из проекта.

Таблица 1

Сравнительный анализ CMS наиболее популярных в современном интернет сообществе

Наз­вание

Безо­пас­ность

Версии

Русская доку­мен­тация

Рус­ское комью­нити / под­держка

Борьба со спамом

Интег­рация с фору­мом

Визуаль­ный редактор

Рабо­та с изо­браже­ниями

Шаб­лоны оформ­ления

Расши­ренная функ­циональ­ность (плагины)

Виджеты / блоки

Трекбаки, пинги, XML-RPC, RSS

Коди­ровки

Ком­мен­тиро­вание

Экспорт / импорт данных

Drupal

10

10

9

10

10

10

10

9

10

10

10

10

9

8

10

Joomla

8

9

10

8

6

7

10

10

5

9

0

4

9

7

6

WordPress

6

5

8

10

9

7

10

8

9

10

7

8

10

10

8

1С-Битрикс

9

10

10

10

10

8

10

9

10

10

8

9

10

10

9

NetCat

9

10

10

10

10

9

10

8

8

7

10

10

9

9

10

UMI.CMS

7

9

9

8

9

9

10

8

8

7

10

10

9

9

10

HOST.CMS

8

9

9

9

9

8

9

7

7

6

9

9

8

7

9

Сейчас целый ряд крупных корпоративных сайтов компаний с мировыми именами работает на Drupal, поэтому у разработчиков к безопасности серьезное отношение. Версии Drupal выходят регулярно.

Безопасность самого проекта находится на высоком уровне. Что же касается безопасности сторонних расширений, то тут все не так гладко. Действительно сильных расширений мало, но они есть.

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

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

Базовый пакет Drupal содержит достаточно функциональный форум, который подойдет для организации небольших сообществ. Для организации больших сообществ он тоже, впрочем, подойдет– на форуме Drupal.org сейчас более 320 000 сообщений.

Движок шаблонов – сильная сторона Drupal. Этот компонент добротно спроектирован, поэтому разобраться с интеграцией своих шаблонов сможет начинающий PHP-программист.

Для WordPress'а созданы тысячи шаблонов и многие из них выполнены на очень хорошем дизайнерском уровне. Устройство WordPress таково, что под него несложно переделать, скажем, html-шаблон. В шаблонах используются обычные PHP-функции, поэтому никаких сложностей с изучением т.н. языков шаблонов нет.

По отчуждаемости выделяют три типа CMS. "Коробочные решения" – готовые платформы, которые использует широкий круг веб-разработчиков. "Студийные" или "индивидуальные" системы никем, кроме компании-владельца, не используются. Software-as-a-Service решения (SaaS) – это онлайн-конструкторы сайтов, такие как UcoZ. Главное отличие трех категорий – в степени зависимости заказчика сайта от владельца системы. Если пути разработчика студийной CMS и его клиента в какой-то момент разойдутся, клиенту, скорее всего, придется менять движок сайта, так как другая компания не возьмется за поддержку сайта на чужой и непонятной системе. В случае с SaaS зависимость от разработчика еще выше, так как речь идет даже не о покупке лицензии, а ее аренде, зато сайт в конструкторе можно сделать очень быстро и совсем небольшими ресурсами. "Коробки" дают владельцу сайта независимость, он может сменить подрядчика по обслуживанию сайта и поэтому в переговорах чаще диктует условия. Большинство новых корпоративных сайтов создается на "коробочных" CMS.

Классификация по типам проектов не жесткая, так как не все системы, которые позиционируются как универсальные, на самом деле обладают достаточно широким функционалом. Круг универсалов узок, в него входят 1С-Битрикс, NetCat, Drupal, Joomla и, пожалуй, пара других. Остальные системы уступают по инструментарию, и, чаще всего, позволяют решать на высоком качественном уровне всего 1-2 задачи. Впрочем, некоторые CMS настолько укоренилась в узкой нише, что уже могут считаться специализированными. Например, PHPShop считается отличной CMS для интернет-магазинов, DJEM известна как инструмент создания порталов, LiveStreet – социальных сетей, а WordPress популярен среди блоггеров.

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

Программные и аппаратные средства реализации системы управления сайтом, их характеристика и выбор

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

Для выбора языка программирования необходимо определить требования к среде программирования. В процессе анализа требований и классификации самой проектируемой системе (CMS) были определенны следующие требования к среде проектирования:

- кроссплатформенность, необходимая для интеграции с другими подсистемами;

- гибкость, позволяющая без дополнительных затрат изменять, дорабатывать информационную систему;

- безопасность;

- язык программирования должен предоставлять широкие возможности по работе с современными СУБД;

- обеспечивать универсальность клиентских приложений;

- открытость исходного кода, которая позволить динамическое совершенствование ИС и исправление ошибок.

В настоящее время наиболее распространены следующие скриптовые языки веб-программирования.

Visual Basic Scripting Edition (или просто VBScript) – это язык программирования от компании Microsoft, предназначенный для создания сценариев (скриптов). Он является подмножеством языка Visual Basic и широко используется при создании административных сценариев в системе Windows. VBScript по умолчанию поддерживается в Windows Script Host (WSH), который в свою очередь по умолчанию устанавливается вместе с почти любой версией Windows. Если у вас слишком старая версия Windows, вы можете скачать WSH с сайта Microsoft и самостоятельно установить его.

Синтаксис VBScript является несколько упрощенной версией стандартного синтаксиса Visual Basic. Например, в VBScript не поддерживается типизация: все переменные имеют тип Variant. Сценарии на языке VBScript чаще всего используются в следующих областях:

- Автоматизация администрирования систем Windows.

- Серверный программный код на страницах ASP в Web-приложениях.

- Клиентские сценарии на Web-страницах (в основном только в браузере Internet Explorer).

JScript – это язык программирования от компании Microsoft. Он предназначен для создания сценариев и является реализацией стандарта ECMAScript. Синтаксис JScript во многом аналогичен языку JavaScript от компании Netscape. JScript по умолчанию поддерживается в Windows Script Host (WSH).

Сценарии на языке JScript чаще всего используются в следующих областях:

- Клиентские сценарии на Web-страницах.

- Автоматизация администрирования систем Windows.

- Серверный программный код на страницах ASP в Web-приложениях.

Язык JScript получил дальнейшее развитие в виде языка JScript.NET, который ориентирован на работу в рамках платформы Microsoft ASP.NET.

JavaScript – это язык программирования от компании Netscape, который является реализацией стандарта ECMAScript. Microsoft выпустила похожие версии языка под названием JScript, поэтому под названием "JavaScript" часто понимается любая версия языка, в том числе и Microsoft JScript.

В большинстве случаев при упоминании JavaScript подразумевается так называемый клиентский JavaScript, интерпретатор которого встроен в Web-браузеры. Однако JavaScript изначально был разработан как универсальный язык программирования для встраивания в любое приложение и обеспечения возможности написания в нем сценариев. Например, ActionScript, язык сценариев, доступный в Macromedia Flash 5 и MX, также смоделирован в соответствии со стандартом ECMAScript.

Python (питон) – интерпретируемый, объектно-ориентированный язык программирования высокого уровня. Он поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточную обработку. Python относится к классу языков с динамической типизацией, предоставляет программисту автоматическую "сборку мусора" и удобные высокоуровневые структуры данных, такие как словари, списки, кортежи и др. Питон объединяет поразительную мощь с простым и ясным синтаксисом, продуманной модульностью и масштабируемостью. Одной из интересных синтаксических особенностей языка является выделение блоков программы с помощью отступов (пробелов или табуляций), поэтому в Python отсутствуют операторные скобки ("begin/end", как в языке Паскаль или фигурные скобки, как в Си). Python – один из самых удобных языков обучению и применению ООП. Часто является как первым (для обучения), так и последним (в череде используемых опытными программистами) языком программирования.

Python портирован и работает почти на всех известных платформах. Существуют порты под Windows, все варианты UNIX (включая Linux), Mac OS и Mac OS X, Palm OS, OS/2 и т.д. При этом, в отличие от многих портируемых систем, на каждой платформе Python поддерживает все характерные для данной платформы технологии (например, Microsoft COM/DCOM). Более того, существует специальная версия Python для виртуальной машины Java – Jython (http://www.jython.org/), что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Python и даже быть написанными на Python.

Tcl (Tool Command Language) – интерпретируемый язык программирования высокого уровня. Tcl ориентирован преимущественно на автоматизацию рутинных процессов ОС и крупных программных систем и состоит из мощных команд, ориентированных на работу с абстрактными не типизированными объектами. Принципиальное отличие Tcl от командных языков ОС состоит в независимости от типа системы (когда не надо утруждать себя изучением нового командного языка) и, самое главное, он позволяет создавать переносимые программы с графическим интерфейсом (GUI).

Ruby – интерпретируемый скриптовый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Ruby имеет большое количество средств для обработки текстов, для решения системных задач. Ruby является полностью свободным языком программирования с возможностью копирования, модификации и распространения. Ruby перенесён на множество платформ. Он разрабатывался на Linux, но работает на многих версиях Unix, DOS, Windows 95/98/Me/NT/2000/XP, Mac OS, BeOS, OS/2, и т.д. Целью создания Ruby был настоящий объектно-ориентированный интерпретируемый язык программирования. Название отсылает к языку Perl, наследником которого является Ruby (драгоценные камни: англ. Perl – жемчужина, англ. Ruby – рубин).

Ruby имеет простой и понятный синтаксис, позволяет обрабатывать исключения в стиле Java и Python, позволяет легко переопределять операторы, которые на самом деле являются методами. Ruby – полностью объектно-ориентированный язык программирования. Все данные в Ruby являются объектами в понимании SmallTalk. Например, число "1" – это экземпляр класса Fixnum. Также поддерживается добавление методов в класс и даже в конкретный экземпляр во время исполнения программы. Ruby сознательно не поддерживает множественное наследование, вместо которого существует концепция модулей.

Ruby содержит автоматический сборщик мусора. Он работает для всех объектов Ruby, так что не надо заботиться о подсчёте ссылок даже во внешних библиотеках. Ruby не требует объявления переменных. Язык использует простые соглашения для обозначения области видимости. Пример: просто 'var' – локальная переменная, '@var' – переменная экземпляра (член или поле объекта класса), '$var' – глобальная переменная. Ruby имеет независимую от ОС поддержку многопоточности.

PHP (пи-эйч-пи) – интерпретируемый скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. В области веб-программирования PHP является на сегодняшний день одним из самых распространённых технологий (наряду с Perl, ASP/.NET и Python) благодаря простоте, скорости выполнения и богатой функциональности. PHP распространяется свободно. Синтаксис языка похож на синтаксис С++. PHP поддерживается подавляющим большинством представителей сетевого хостинга.

Perl – интерпретируемый скриптовый язык программирования, один из самых распространённых в области веб-программирования. По одной из версий, Perl – аббревиатура, которая расшифровывается как "Practical Extraction and Report Language" (практический язык извлечений и отчётов). Существует также ряд других вариантов. Согласно самому красивому из них, название "Perl" произошло от слова "pearl" (жемчужина).

Основной особенностью языка считаются его богатые возможности для работы с текстом, реализованные при помощи регулярных выражений (regular expressions). Перл также знаменит огромной коллекцией дополнительных модулей CPAN, находящейся по адресу http://www.cpan.org/.

PHP обладает множеством преимуществ по сравнению с конкурирующими продуктами, в числе которых:

- Высокая производительность;

- Наличие интерфейсов к различным системам баз данных;

- Встроенные библиотеки для выполнения многих общих задач, связанных с Web;

- Свободное распространение;

- Простота изучения и использования;

- Переместимость;

- Доступность исходного кода.

Рассмотрим эти преимущества более подробно:

- Производительность. Используя единственный сервер, можно обслуживать миллионы обращений в день. Результаты тестирования, опубликованные компанией Zend Technologies (http://www.zend.com), подтверждают более высокую производительность РНР по сравнению с конкурирующими продуктами.

- Интеграция с базами данных. РНР обладает встроенной связностью со многими системами баз данных: MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase и Sybase. Используя Open Database Connectivity Standard (Стандарт открытого интерфейса связи с базами данных, ODBC), можно подключаться к любой базе данных, для которых существует ODBC-драйвер.

- Встроенные библиотеки. Поскольку РНР был разработан для использования в Web, он имеет множество встроенных функций для выполнения широкого разнообразия полезных, связанных с Web, задач. С его помощью можно генерировать GIF-изображения, подключаться к другим сетевым службам, отправлять сообщения электронной почты, работать с cookie-наборами и генерировать PDF-документы.

- Стоимость. Пакет РНР является бесплатным.

- Изучение РНР. Синтаксис РНР основывается на других языках программирования, в первую очередь на С и Perl.

- Переносимость. Пакет РНР можно использовать под управлением многих различных операционных систем. Код РНР можно создавать в среде таких бесплатных Unix-подобных операционных систем, как Linux и FreeBSD, коммерческих версий Unix типа Solaris и IRIX или различных версий Microsoft Windows. Как правило, программы будут работать без каких-либо изменений в различных средах с установленным РНР.

- Исходный код. Пользователь имеет доступ к исходному коду РНР. В отличие от коммерческих закрытых программных продуктов, если нужно что-либо изменить или добавить в этом языке, то это всегда можно сделать.

Проектируемая БД должна использоваться для накопления, хранения и обработки данных. Узким местом при разработке базы данных для информационно-аналитических систем является хранение большого количества элементов – вариантов решений. Решение задачи оптимизации при глобальном поиске в информационно-аналитических системах, а так наличие малого количества запросов от самих пользователей информационно-аналитической системы позволяют не устанавливать жесткие требования к производительности СУБД. Таким образом, все выше перечисленное можно определить следующие требования к СУБД:

- Кроссплатформенность СУБД;

- Полная совместимость с выбранной средой разработки (PHP);

- Простота использования и внедрения;

- Распространенность и популярность СУБД. При использовании малораспространенной СУБД в будущем могут возникнуть проблемы с поддержкой и развитием ИС, что так же наложит дополнительные затраты на перенос накопленных данных.

- Надежность, позволяющая обеспечить решение задачи постоянного наполнения и обеспечения сохранность данных.

Проведём анализ СУБД по нескольким характеристикам (таблица 2.).

Таблица 2

Сравнительный анализ СУБД

Показатели

Microsoft SQL Server 2014

MySQL 5.6

PostgreSQL 9.3.5

Поддерживаемые операционные системы

Windows Desktop/Server

Windows Desktop/Server, Linux, Unix, Mac

Windows Desktop/Server, Linux, Unix, Mac

Условии лицензирования

Коммерческий продукт с закрытым исходным кодом. Есть бесплатная версия с ограничением оперативной памяти до 4 Гб.

Коммерческая лицензия и GNUGPL.

Лицензия BSD Open Source.

Процесс установки и поддержки

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

Простая установка, так как существует огромное количество пакетов, установка из которых сводит трудности и проблемы к нулю.

Для операционных систем семейств Linux/Unix установка идентична установке MySQL.

Наличие предустановленных драйверов в ОС семейства Windows

Да

Нет

Нет

Наличие драйверов ODBC, JDBC, ADO.NET

Да

Да

Да

Поддержка функциональных индексов

Нет, но можно обойтись Computed Columns

Нет

Нет

Поддержка частичных индексов

Да (называются "фильтрованные индексы")

Да

Да

Поддержка ACID-требований к транзакциям

Да

Да, при использовании некоторых движков хранения данных

Да

Каскадное обновление/удаление внешних ключей

Да

Да, при использовании некоторых движков хранения данных

Да

Поддержка репликации

Да, встроенная и разных типов. Но внесение структурных изменений после начала репликации – очень сложный процесс.

Да, включая master-master репликацию.

Да, но с помощью сторонних продуктов с открытым исходным кодом. Репликация всех типов.

Возможность писать хранимые функции на разных языках программирования

Да, теоретически на любом языке, поддерживающим CLR, например, VisualBasic.NET, C#, IronPython, но сначала надо скомпилировать код в библиотеку dll.

Нет (кроме C и Pl/SQL)

Да, наиболее полная поддержка из всех рассматриваемых.

Возможность создавать пользовательские агрегированные функции

Да – любой.NET язык, кроме TRANSACT SQL.

Да, только на С

Да – на PL Language и встроенных C, SQL, PLPgSQL.

Поддержка триггеров

Да

Да

Да

Партицирование таблиц

Да (в Enterprise версии)

Да

Да

Поддержка создания функций

Да

Да

Да

Поддержка хранимых процедур

Да

Дa

Да (с помощью CREATE FUNCTION)

Наличие встроенного планировщика (не CronTab)

Да (SQL Agent не для Express версии)

Да (только для SQL-запросов)

Да (PgAgent)

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

Да

Да

Да

Чувствительность к регистру

По умолчанию – не чувствительна

Нет

Да

Поддержка даты и времени

Да

Да (но без временной зоны)

Да

Аутентификация

Средствами БД и ActiveDirectory

Средствами БД

Много разных методов, включающих предыдущие

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

Таким образом, подавляющее большинство крупных интернет-проектов разработано на собственной CMS веб-студий.

Большинство CMS обладают следующими недостатками:

избыточное число настроек, доступных для рядового пользователя, что создает в итоге сложный для пользователя интерфейс – главный механизм взаимодействия пользователя с CMS;

закрытость исходного кода некоторых CMS, что неприемлемо при разработке собственных модулей;

низкий уровень безопасности CMS с открытым исходным кодом;

низкая производительность на сервере, являющаяся следствием избыточного функционала CMS;

большое занимаемое дисковое пространство, которое увеличивает время установки и стоимость виртуального хостинга, отведенного под сайт;

недостаточное разделение логики и визуального представления;

низкая документированность по функциональным возможностям и возможностям создания модулей к системе;

высокая стоимость готового продукта и неприемлемые условия лицензионного соглашения.

При разработке собственной CMS учитываются все вышеперечисленные недостатки, и в итоге CMS имеет следующие преимущества перед "коробочными" CMS:

простота разработки собственных модулей, что обеспечивается открытостью архитектуры, которую разработчик CMS знает очень хорошо;

простой и интуитивно понятный интерфейс, ограниченный только теми настройками, которые необходимы конкретному пользователю CMS;

высокий уровень безопасности, связанный с ограниченным доступом к исходному коду CMS;

высокая производительность CMS, полученная за счет устранения избыточных связей и функций;

правовые гарантии использования CMS принадлежат исключительно разработчику.

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

Вывод к главе 1.

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

Чем система управления контентом Интернет-сайта качественней, привлекательней и удобнее, чем лучше структурирован в ней инструментарий, тем более она будет полезна потенциальным пользователям, тем больше шансов, что пользователь массу времени и сил на работу с сайтом, и тем более прибыльным и эффективным будет его Интернет-бизнес.

Самые популярные CMS, используемые для управления сайтом Интернет-магазина – это Drupal (из бюджетных) и 1C-Битрикс (из платных). Основные языки написания кода – PHP, HTML, JavaScript.

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

При создании CMS крайне важной ступенью является составление грамотного Технического задания. Техническое задание определяет требования и порядок разработки системы управления контентом.

На каждом этапе проектирования необходимо проводить тестирование и по возможности отладку готовых блоков. Готовая система перед внедрением (запуском) так же проходит тестирование.