Серверная часть системы создания и управления сайтами
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?ажных блока: база данных и файловая система.
База данных (СУБД) позволяет реализовать внутренние процедуры хранения и доступа к данным.
Файловая система позволяет реализовать хранение и доступ к самой системе, а также к файлам и папкам, созданным системой.
На рисунке 2.1 показана общая схема системы создания и управления сайтами.
Рисунок 2.1 - Общая схема системы создания и управления сайтами
1.3Требования к серверной части системы
На основе общей структуры и анализа существующих систем создания и управления сайтами можно выделить следующие требования к серверной части системы:
Простой установщик системы;
Полное кэширование в файловую систему;
Понятная пользователю структура файловой системы;
Возможность простого и легкого соединения сервера с клиентом в связи с параллельной разработкой;
Возможность быстрой адаптации системы под различные СУБД.
1.4Средства разработки серверной части системы создания и управления сайтами
В настоящее время стандартом де-факто для создания веб-содержимого является язык разметки HTML. С помощью него создается логическое разделение содержимого страницы. [4]
Чтобы это содержимое имело наглядный вид, используется язык стилей. Самым популярным решением является CSS.
С первого взгляда эти средства не относятся к серверной части. Но стоит понимать, что так или иначе сервер будет иметь дело с содержимым, поставляемым пользователем с клиентской стороны. А это содержимое будет создано именно в связке HTML+CSS.
Теперь рассмотрим непосредственно серверную часть.
Для создания серверной логики сегодня существуют как минимум четыре достойных варианта: PHP, Python, Ruby, ASP.NET.
Выбор одного из них произведем на основе доступности и популярности. В данном случае очевидным вариантом является PHP. [5] Этот язык программирования является самым популярным языком создания веб-приложений. Он также поддерживается на всех современных платформах.
Среди баз данных для веб-разработки наиболее выделяются MySQL и PostgreSQL. Но в отличие от PostgreSQL, MySQL завоевал свою популярность очень давно. Более того, MySQL как и PHP поддерживается всеми современными платформами. [6]
Для того, чтобы все эти средства могли работать, необходим http-сервер. Самым простым и весьма надежным решением является Apache HTTP Server. Он доступен для большинства операционных систем и, вообще говоря, является самым популярным выбором среди разработчиков. Вторым вариантом мог бы стать Internet Information Services (IIS), но, в силу его привязки к операционной системе Windows и, соответсвенно, высокой цены, он исключается из рассмотрения.
Итак, мы получаем связку технологий и средств разработки, необходимых для создания серверной части системы создания и управления сайтами: HTML, CSS, PHP, MySQL, Apache.
2Описание серверной части системы создания и управления сайтами
2.1Структура серверной части
Для удобства разделим серверную часть и установщик. Это возможно сделать, потому что установщик по сути является совершенно независимым модулем.
С учетом заявленных ранее требований, а также рассуждений, указанных ниже, можно представить следующую структуру серверной части на рисунке 3.1.
Рисунок 3.1 - Структура серверной части
Данная структура минимизирует усилия по совмещению серверной и клиентской частей за счет наличия между ними всего лишь одного канала связи. Это связь между блоками Клиент и Координатор. Координатор иначе можно назвать интерфейсом для взаимодействия с клиентом.
В качестве протокола общения между клиентом и сервером был выбран режим запрос-ответ. Это означает, что клиент посылает серверу сообщение, в котором содержится информация о том, какое действие хочет совершить клиент. Сервер анализирует это сообщение и выполняет предписанные действия, если они возможны. После завершения этих действий, сервер возвращает результат работы. Все возможные варианты действий должны быть известны клиенту заранее.
Так как серверная часть будет иметь дело, как с файловой системой, так и с базой данных, следует ввести некоторые абстракции, чтобы уменьшить сложность разработки и повысить масштабируемость системы. Поэтому был добавлен блок Менеджер хранилища. Общение с ним происходит в рамках таких понятий как страница, шаблон, ресурс. Это всё термины системы создания и управления сайтами. Введение такой прослойки позволяет значительно уменьшить сложность Координатора.
Менеджер хранилища используется внутри Координатора, т.е. его логика доступна только разработчику серверной части. Если в Координаторе имеется некоторая команда сохранить страницу, то благодаря Менеджеру Хранилища отпадает необходимость описывать всю логику внутри координатора, достаточно просто вызвать подходящий метод Менеджера Хранилища.
Менеджер хранилища в зависимости от ситуации общается с Менеджером базы данных и Генератором сайта.
При инициализации Менеджера Хранилища происходит автоматическая инициализация Менеджера базы данных в соответствии с настройками системы.
Менеджер базы данных позволяет абстрагироваться от языка запросов SQL, что повышает скорость разработки и качество отладки. Более того, введение данной прослойки позволяет выполнить требование адаптации системы под различные СУБД.
Генератор сайта имеет дело с файловой систе