Использование CMS предоставляет возможность простого обновления контента без необходимости в специальных знаниях в области веб-технологий. Зачастую для этого используется веб-интерфейс реализующий возможности WYSIWYG способ редактирования, при котором редактируемый материал в процессе редактирования выглядит в точности так же, как и конечный результат. Использование подобных продуктов позволяет легко добавлять новые страницы и удалять старые или даже изменять структуру сайта в соответствии с изменениями в направлениях ведения бизнеса. CMS также автоматизирует выполнение разных заданий, связанных с оформлением сайта, таких как единое оформление на всех страницах сайта, меню и система навигации[2].
Основной целью создания CMS – сконцентрировать действия пользователя на создании контента, а не технологиях его последующего размещения. Системы управления контентом очень упрощают процесс работы с веб-приложениями. Не нужно знать множество процедур и алгоритмов. Любой человек может вносить изменения на сайте без знаний HTML разметки. Изменения на сайте могут быть осуществлены в любое время. Это очень важно, в том случае, если сайт является важной частью маркетинговой политики организации и каналом связи с клиентом.
Использование CMS позволяет распределить работу по наполнению сайта между группой людей с учетам прав их доступа к отдельным элементам. Вместо того что бы один человек занимался развитием сайта, это могут делать несколько людей одновременно, при этом CMS отследит вклад каждого. Также администратор сайта может быть уверен в том что, каждый сотрудник штата может обновлять только ту секцию, которая ему доступна согласно прав доступа.
В результате анализа систем управления контентам были выявлены требования, предъявляемые к ним с целью достижения наиболее гибкой настройки, стабильности работы и универсальности. Система управления контентом должна:
· иметь модульную структуру;
· регулярное обновление ядра системы и круглосуточную техническую поддержку;
· иметь открытый исходный код. Это дает возможность быстрей находить ошибки и исправлять их не только производителями продукта, но и самими пользователями;
· позволять поэтапного наращивания производительности системы (маштабируемость);
· основываться на современных технологий, таких как PHP, MySQL, XML, AJAX;
· включать систему кэширования, быть устойчивой к нагрузкам.
Когда существующих возможностей становиться мало, а совершенствовать существующее, уже некуда, тогда и происходит технологический прорыв. Таким прорывом и есть AJAX (Asynchronous JavaScript and XML) - подход к построению пользовательских интерфейсов веб-приложений, при котором веб-страница, не перезагружаясь, сама догружает нужные пользователю данные.
Ajax не является самостоятельной технологией. В сущности, это объединение нескольких самостоятельных технологий, которые могут быть эффективно использованы вместе. Ajax включает в себя[14]:
· Стандартные средства отображения страниц, такие как XHTML и CSS
· Динамические средства отображения информации и взаимодействия с пользователем - Document Object Model
· Обмен данными и их обработка - XML и XSLT
· Механизмы асинхронной передачи данных с сервера с помощью XMLHttpRequest
· JavaScript, который объединяет всё это вместе.
В настоящее время разработка веб-приложений стремится к разграничению хранения данных, их обработки и отображения. Проекты становятся сложнее, и переплетать между собой различные технологии становиться слишком дорого для времени разработчика. Так, например, все стили форматирования выносятся в CSS или в XSL файлы, HTML или XML данные хранятся в других разделах, серверные обработчики в третьих, базы данных в четвертых. И если еще 5-6 лет назад практически везде можно было увидеть переплетение всего этого в одном файле, то сейчас это все чаще становиться редкостью.
Model-view-controller (MVC, «Модель-представление-поведение») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты[5].
Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента
· Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние.
· Представление (View). Отвечает за отображение информации (пользовательский интерфейс).
· Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.
Взаимодействие перечисленных компонентов представлено на рисунке 1.3.
Рисунок 1.3 – Схема взаимодействия компонентов модели MVC
Представление, так и поведение зависят от модели. Однако модель не зависит ни от представления, ни от поведения. Это одно из ключевых достоинств подобного разделения. Оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели.
При разработке более сложных проектов возникает необходимость в структурированности и удобно читаемости кода. Не следует засорять код программиста кодом верстальщика, а код верстальщика - правками дизайнера.
Возникает необходимость в разграничении работы. Так, например, дизайнер будет делать свою работу, верстальщик свою, программист свою, и при этом никто друг другу мешать не будет. В итоге каждому участнику проекта достаточно будет знать только те данные, с которыми ему придется работать. В таком случае производительность группы и качество проекта повышается в разы. В настоящее время эта проблема с успехом решается путем использования шаблонов, однако это тоже создает определенные трудности, так как чтобы, скажем, подключить Smarty, необходимо подключить программный модуль обработки шаблонов, и четко связать со структурой проекта. А это далеко не всегда возможно и требует определенных затрат. Немного проще при использовании связки XML + XSL, так как они предоставляют больше возможностей, но и создают дополнительные трудности.
Ajax - это не самостоятельная технология. Это идея, которая базируется на двух основных принципах:
· использование DHTML для динамичного изменения содержания страницы;
· использование XMLHttpRequest для обращения к серверу "на лету".
Объединение, этих двух подходов позволяет создавать намного более удобные веб-интерфейсы пользователя на тех страницах сайтов, где необходимо активное взаимодействие с пользователем. Использование Ajax стало наиболее популярно после того, как компания Google начала активно использовать его при создании своих сайтов, таких как Gmail, Google maps и Google suggest. Создание этих сайтов подтвердило эффективность использования данного подхода.
Рассмотрим как происходит взаимодействие между сервером и клиентом с использованием Ajax. На рисунке 1.4 приведена классическая модель веб-приложения.
Клиент, набирая в строке поиска адрес интересующего его ресурса, попадая на сервер, делает к нему запрос. Сервер производит вычисления в соответствии с запросом, обращается к базе данных и так далее, после чего полученные данные идут клиенту и, в случае необходимости подставляются в шаблоны и обрабатываются браузером. Результатом является страница, которую мы видим. Это самая простая модель взаимодействия и, как следствие, самая распространенная [16].
Модель взаимодействия с использованием Ajax рассмотрена на рисунке 1.4
Последовательность действий клиента сохраняется и он, скорее всего не поймет того, что будет происходить. Но на стороне сервера все выглядит иначе. При обращении к серверу, генерируется страница, которая будет отображаться пользователю, и предлагать ему совершить интересующую его последовательность действий. При сознательном выборе клиента, его запрос будет обращаться к AJAX модулю, который и будет производить все интересующие его вычисления и работу с сервером как таковым. Основное отличие в том, что этот метод дает нам возможность динамически обращаться к серверу и выполнять интересующие нас действия.
Приведем основные преимущества рассмотренной технологии[17].
· Экономия трафика. Использование AJAX позволяет значительно сократить трафик при работе с веб-приложением благодаря тому, что часто вместо загрузки всей страницы достаточно загрузить только изменившуюся часть, иногда довольно небольшую.
· Уменьшение нагрузки на сервер. AJAX позволяет несколько снизить нагрузку на сервер. К примеру, на странице работы с почтой, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипта сообщение об успешном выполнении операции без необходимости повторно создавать страницу и передавать её клиенту.
· Ускорение реакции интерфейса. Поскольку нужно загрузить только изменившуюся часть, то пользователь видит результат своих действий быстрее.