Главная Другое
Экономика Финансы Маркетинг Астрономия География Туризм Биология История Информатика Культура Математика Физика Философия Химия Банк Право Военное дело Бухгалтерия Журналистика Спорт Психология Литература Музыка Медицина |
страница 1 Оглавление
Введение 10 1 Исследование предметной области 11 2 Проектирование системы 24 3 Разработка системы 38 4 Введение системы в эксплуатацию 46 Заключение 52 Список использованных источников 53 Приложение А 54 Приложение Б 57 Приложение В 59 Приложение Г 59 Приложение Д 65 ВведениеБлог (англ. blog, от web log – интернет-журнал событий, интернет-дневник, онлайн-дневник) – веб-сайт, основное содержимое которого – регулярно добавляемые записи (посты), содержащие текст, изображения или мультимедиа. Для блогов характерны недлинные записи временной значимости, отсортированные в обратном хронологическом порядке (последняя запись сверху). Отличия блога от традиционного дневника обусловливаются средой: блоги обычно публичны и предполагают сторонних читателей, которые могут вступить в публичную полемику с автором (в комментарии к блогозаписи или своих блогах). Первым блогом считается страница Тима Бернерса-Ли, где он, начиная с 1992 г., публиковал новости. Более широкое распространение блоги получили с 1996 г. В августе 1999 г. компьютерная компания Pyra Labs из Сан-Франциско открыла сайт Blogger.com, который стал первой бесплатной блоговой службой. Сетевые дневники приобретают все большую популярность. Уже начинают активно обсуждать, кто же влиятельнее: СМИ или блоги. Они постепенно входят в нашу жизнь – например, в Самаре по телеканалу «Терра» выходит еженедельная передача «Блогосфера» с обзором дневников самарских блоггеров. В настоящее время особенность блогов заключается не только в структуре записей, но и в простоте добавления новых записей. Пользователь просто обращается к веб-серверу, проходит процесс идентификации пользователя, после чего он добавляет новую запись к своей коллекции. Сервер представляет информацию как последовательность сообщений, помещая в самом верху самые свежие сообщения. Структура коллекции напоминает привычную последовательную структуру дневника или журнала.
1Исследование предметной области1.1Классификация блоговБлоги можно классифицировать по следующим критериям: По авторству:
По тематической направленности: Обычно персональные блоги носят личный характер. Однако в среде персональных, так же, как и в среде коллективных и корпоративных блогов, существуют специализированные блоги, посвящённые определенным сферам жизни:
По наличию/виду мультимедиа:
По особенностям контента:
По технической основе:
1.2Обзор аналоговСуществует два способа начать вести блог: воспользоваться специальным сервисом (например, LiveJournal) или установить к себе на сервер автономный блог, то есть использовать какой-либо движок. У последнего способа есть определенный недостаток – требуются определенные технические знания в этой области. Зато, если вы все-таки обладаете подобными знаниями, то можете настроить все так, как вам нужно. В этой главе предлагается обзор наиболее популярных движков для ведения своего блога. Статистика использования платформ для ведения блогов на основе данных с сайта wappalyzer.com за май 2012 [6]. ![]() Рисунок 1.1 – Статистика использования платформ Как видно из диаграммы основными движками являются: Таблица 1.1 – Статистика использования платформ
Рассмотрим некоторые из них. 1.2.1Система WordPress
Особенности:
Самый распространенный движок среди блоггеров. Имеет множество функций – именно те, которые действительно нужны блоггеру. Присутствует русский язык и русскоязычное комьюнити. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения – от блогов до достаточно сложных новостных ресурсов и даже интернет-магазинов. ![]() Рисунок 1.3 – Пример блога на WorPress 1.2.2Платформа Blogger
Особенности:
Веб-сервис для ведения блогов, с помощью которого любой пользователь может завести свой блог, не прибегая к программированию и не заботясь об установке и настройке программного обеспечения. Создан компанией Pyra Labs, которой сейчас владеет Google. ![]() Рисунок 1.5 – Пример блога на платформе Blogger 1.2.3Платформа Tumblr
Особенности:
Сервис микроблоггинга, позволяющий пользователям выкладывать текстовые сообщения, изображения, видеоролики, ссылки, цитаты и аудиозаписи в их короткоформатный блог. Сервис характеризует себя как «Простейший способ вести блог». ![]() Рисунок 1.7 – Пример блога на платформе Tumblr 1.2.4Платформа LiveJournal
Особенности:
Блог-платформа, а также отдельный персональный блог, размещённый на этой платформе. Предоставляет возможность публиковать свои и комментировать чужие записи, вести коллективные блоги, добавлять в друзья других пользователей и следить за их записями в «ленте друзей». До недавнего времени отличался отсутствием обязательной рекламы в бесплатных блогах. Ранее самая популярная платформа, однако, с октября 2011 года в материале газеты «Ведомости» отмечается падение популярности «Живого Журнала». Газета ссылается на материалы Comscore и отмечает: с января по август 2011 года месячное число уникальных пользователей ЖЖ снизилось на 8,2 миллионов до 27,7 миллионов (-23 %), а российского сегмента – на 2,8 миллионов до 8,6 миллионов (-25 %). По данным TNS Media Research, в российском сегменте снижение еще выше: – на 3,9 миллионов пользователей (-26 %). ![]() Рисунок 1.9 – Пример блога на платформе LiveJournal 2Проектирование системыРазрабатываемая система будет разграничивать пользовательский доступ на две глобальных группы:
Необходимо разработать два интерфейса backend и frontend. Исходя из этой логики работы, составим диаграмму вариантов использования: ![]() Рисунок 2.10 – Диаграмма вариантов использования 2.1Проектирование пользовательского интерфейса системыГлавная страница блога содержит логотип, краткие отображения постов и внизу, при наличии большого количества постов, разбиение на страницы. ![]() Рисунок 2.11 – Шаблон интерфейса главной страницы Страница подробного просмотра поста содержит полное отображение поста, поле для комментариев и, при наличии изображений ассоциированных с постом, уменьшенные копии присоединенных изображений (превью). В поле для комментариев так же находится окно авторизации пользователя. При клике по превью разворачивается полноразмерное изображение при помощи JavaScript.
Рисунок 2.12 – Шаблон интерфейса страницы подробного просмотра новости 2.2Проектирование интерфейса административной панелиАдминистративная панель блога для пользователя с правами admin содержит два блока:
В случае если в административную панель попадает пользователь с правами content, блок изменения настроек не выводится. ![]() Рисунок 2.13 – Шаблон интерфейса административной панели 2.3Проектирование структуры папок и файловОсновываясь на разработанном в главах 2.1 и 2.2 интерфейсе, составим диаграмму компонентов системы: ![]() Рисунок 2.14 – Диаграмма компонентов системы Исходя из диаграммы компонентов указанной на рисунке Рисунок 2 .14, опишем структуру папок и файлов разрабатываемой системы: В корневом каталоге находятся файлы:
2.4Выбор программных средств реализации системыВыбор программных средств играет большое значение для проектируемой системы, поскольку определенные на этом этапе программные продукты, средства разработки и технологии непосредственным образом окажут влияние на распространяемость разработанной системы: чем более распространенными будут используемые при разработке и требуемые для функционирования системы технологии, тем шире круг потенциальных потребителей системы, имеющих возможность ей воспользоваться. Кроме того, выбор среды разработки непосредственно влияет на стоимость и простоту процесса разработки системы. Для реализации системы будет использоваться:
PHP и JavaScript выбраны как наиболее развивающиеся и широко распространенные языки программирования для web. К тому же для JavaScript в настоящий момент существует множество фрэймворков, облегчающих рутинные действия. Например самым распространенным и известным является jQuery. MySQL был выбран исходя из его высокой производительности и кроссплатформенности. Кроссплатформенность позволяет нам использовать разрабатываемую систему на бо̀льшем количестве серверных станций. Так же MySQL позволяет хранить достаточное количество данных в таблицах: до 8 млн ТБ (263 байт) начиная с версии 3.23 [3]. Все указанные выше средства должны поддерживаться веб-сервером. На основе данных с сайта wappalyzer.com за май 2012 самыми распространенными являются [6]:
Рисунок 2.15 – Статистика использования веб-серверов Таблица 2.2 – Статистика использования веб-серверов
Поскольку Apache, в отличие от остальных, кроссплатформенный будем использовать именно его. Так же важным замечанием является то, что все используемые средства являются свободно распространяемыми. Исходя из выше сказанного, представим структуру взаимодействия пользователя, системы, программных и аппаратных средств; в виде диаграммы развертывания, представленной на рисунке Рисунок 2 .16. ![]() Рисунок 2.16 – Диаграмма развертывания 2.5Даталогическое проектирование базы данных системыПроектирование БД для любой системы разделяется на следующие этапы:
База данных будет содержать следующие таблицы:
Исходя из указанных требований, построим даталогическую схему базы данных: ![]() Рисунок 2.17 – Даталогическая модель (ER-диаграмма) базы данных 2.6Требования к техническому обеспечениюВ этой главе, в соответствии со спроектированным приложением в предыдущей главе, будут выдвигаться требования к технологической платформе приложения (программной составляющей), и в соответствующих подразделах будет произведен обзор существующих решений и выбор наиболее оптимального варианта. 2.6.1Расчет необходимого объема внешней памятиПроведем расчет необходимой внешней памяти для системы по формуле: VВП = VОС + Vsys + Vsrv + Vadd, где VОС – объем внешней памяти, занимаемый операционной системой, МБ; Vsrv – объём внешней памяти, занимаемый web-сервером Apache, МБ; Vsys – объём внешней памяти, занимаемый системой (БД+файлы) после установки, МБ; Vadd – объём внешней памяти, занимаемый PHP и MySQL, МБ. Поскольку разрабатываемая система является кроссплатформенной, то следует рассмотреть варианты использования системы на наиболее распространенных ОС, таковыми являются Microsoft Windows 7 и Debian Linux 6.0. Для расчета примем, что система функционирует в операционных системах Microsoft Windows 7 и Debian Linux 6.0. Исходя из системных требований, примем необходимый объем внешней памяти для Microsoft Windows 7 как 16 ГБ, для Debian Linux 6.0 как 650 МБ [7], [8]. Расчет необходимого места для системы Microsoft Windows 7: VВП = 16384МБ + 5МБ + 200МБ + 500МБ = 17089МБ, Расчет необходимого места для системы Debian Linux 6.0: VВП = 650МБ + 5МБ + 200МБ + 500МБ = 1355МБ, Таким образом, объем дискового пространства, требуемого для работы системы, составит чуть более 1ГБ в случае использования Debian Linux 6.0, и более 10ГБ в случае использования Microsoft Windows 7. Даже минимальная конфигурация распространенных сейчас ЭВМ будет обеспечивать требуемые ресурсы долговременной памяти, однако, на слабых ЭВМ или устройствах с ограниченным количеством памяти рекомендуется использовать Debian Linux 6.0.
2.6.2Расчет необходимого объема оперативной памятиПроведем расчет необходимой оперативной памяти по формуле: VОП = VОС + Vapache + Vmysql, Для работы ОС Microsoft Windows 7 необходимо минимум VОС = 1ГБ оперативной памяти, Debian Linux 6.0 VОС = 56МБ, web-серверу Apache Vapache = 5МБ, серверу баз данных MySQL Vmysql = 5МБ. VОПWindows7 = 1024МБ + 5МБ + 5МБ, VОПDebian6 = 56МБ + 5МБ + 5МБ, Т.о., в качестве подходящего объема оперативной памяти целесообразно принять 1,5ГБ в случае использования Microsoft Windows 7 и 512МБ в случае Debian Linux 6.0.
2.6.3Минимальные требования к техническим средствамНа основе выполненных расчётов занимаемой памяти, и исходя из основного назначения системы, сформулируем основные требования к комплексу технических средств. При использовании Windows 7:
При использовании Debian Linux 6.0:
Наиболее оптимальным вариантом используемой ОС является Debian Linux 6.0. Основные факторы, повлиявшие на принятое решение:
3Разработка системы3.1Разработка физической модели БДДля перехода от логической модели к физической необходимо определить физические характеристики хранимых записей: типа значений и объема требуемой для хранения значений памяти. Таим образом, физическая модель данных ориентированная на конкретную СУБД. На физическом уровне основными компонентами физической базы данных являются физические блоки, хранимые записи, указатели, данные переполнения и промежутки между блоками [1]. Взаимосвязи между хранимыми записями, возникающие в результате их группирования или использования индексных структур, могут также рассматриваться как часть физической структуры. Результатом физического проектирования является полностью готовая к внедрению структура базы данных. Логический уровень позволяет давать сущностям семантические имена более понятные специалистам предметной области. На физическом уровне объекты БД необходимо называть так, как того требуют ограничения СУБД (например, словами, состоящими из латинских букв и символов «_», без использования специальных символов). Учитывая выбранные в разделе 2.4 средства разработки, рассмотрим физическую реализацию структуры баз данных для СУБД MySQL. Описание данных, хранимых в таблицах можно представить в виде таблиц 3.1 – 3.4. В таблице Таблица 3 .3 представлена структура таблицы Новости, хранящей новости опубликованные в блоге. В таблице приведены важные поля.
Таблица 3.4 – Структура таблицы «Изображения» (images)
Таблица 3.5 – Структура таблица «Пользователи» (users)
Таблица 3.6 – Структура таблицы «Настройки» (settings)
Представленная на рисунке Рисунок 3 .18 физическая модель базы данных была построена на основе логической модели базы данных (раздел 2.5). ![]() Рисунок 3.18 – Физическая модель базы данных 3.2Разработка сценария взаимодействия с базой данныхОпишем алгоритм взаимодействия сценария с базой данных:
По описанному алгоритму составим схему алгоритма: ![]() Рисунок 3.19 – Схема алгоритма взаимодействия сценария с базой данных 3.3Написание исходного кода системыДля удобства восприятия исходного кода системы и удобного внесения правок при добавлении новых функций система будет разбита не насколько сценариев описанных в главе 2.3. Рассмотрим подробно каждый их них. 3.3.1Сценарии авторизацииlogin.php содержит интерфейс авторизации пользователя. Для авторизации пользователя используется стандартный механизм хранения сессии PHP. Для того чтобы в сценарии можно было работать с сессиями, необходимо сначала инициализировать механизм сессий. Делается это с помощью функции session_start(). При этом будет создана новая сессия или восстановлена уже существующая. Когда посетитель заходит на сайт, ему присваивается 32-х разрядный идентификатор вида: abcd1hfgh2ijkl3m6op4qrs5tuv6ixyz, который «следует» за ним при всех перемещениях по сайту. Таким образом, сервер узнает, нужно ли создавать новую сессию или использовать существующую. Хранение сессии обеспечивается либо по средствам cookies, либо, если они отключены у пользователя, добавлением ко всем адресам GET-запроса вида: PHPSESSID=идентификатор, т.е. адрес myscript.php превратиться в myscript.php?PHPSESSID=идентификатор. При обработке запроса на сервере PHP ищет идентификатор в переданных ему данных и, если находит и сессия не устарела, то обновляет ее. В противном случае создается новая. Кстати, идентификатор сессии можно получить с помощью функции session_id(); После того, как механизм сессий был инициализирован в сценарии, мы можем сохранять любую информацию в ассоциативном массиве $_SESSION. Этот массив является глобальной переменной сессии. Таким образом, сохранив в нем, к примеру, значения переменных login и password на странице авторизации мы можем использовать их на всех остальных страницах защищенной части сайта. Завершение сессии происходит либо автоматически по истечению определенного промежутка времени, либо принудительно при использовании функции session_destroy(). Исходный код сценариев login.php и logout.php приведен в приложении 2 и 3. 3.3.2Сценарий пользовательского интерфейса (frontend)index.php является основным сценарием который используется для вывода содержимого блога. Выводит как краткие описания новостей на главной странице, так и подробное содержимое новости. Для вывода подробного содержимого сценарию необходимо передать параметр, содержащий уникальный идентификатор новости. Исходный код сценария index.php приведен в приложении 4. 3.3.3Сценарий административного интерфейса (backend)adm.php – основной сценарий для администрирования содержимого блога. Сценарий может находится в нескольких состояниях:
Каждое из состояний активируется с помощью HTTP метода POST. Метод HTTP (англ. HTTP Method) – последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Обычно метод представляет собой короткое английское слово, записанное заглавными буквами. Название метода чувствительно к регистру. Метод POST применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер. Многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться одна копия этого комментария). Сообщение ответа сервера на выполнение метода POST не кэшируется.
4Введение системы в эксплуатациюЭтап введения приложения в эксплуатацию является одним из самых ответственных этапов в цикле производства веб-приложения. В конечном счете, именно от него зависит доступность приложения, сохранность исходных кодов и пользовательских данных, а также надежность приложения в целом. 4.1Развертывание системыПеред использованием системы необходимо установить требуемые в разделе 2.4 компоненты ОС. Подробную установку ОС, Apache, PHP и MySQL в данной работе рассматривать не имеет смысла, поэтому опишем установку разрабатываемой системы на готовый веб-сервер. Для установки разрабатываемой системы требуется доступ к корневому каталогу веб-сервера (FTP или sFTP для удаленного доступа, либо прямой доступ на локальной ЭВМ) и базе данных MySQL. Загрузим исполняемые сценарии системы в корневой каталог будущего месторасположения блога. Процесс загрузки файлов через FTP изображен на рисунке Рисунок 4 .20. Теперь необходимо создать в базе данных MySQL таблицу с кодировкой UTF-8. Это можно сделать либо с помощью графических оболочек для работы с БД, например: PHPMyAdmin. Navicat и д.р. Либо через MySQL консоль командой: SET NAMES cp866; CREATE DATABASE <Имя базы данных>;
Рисунок 4.20 – Процесс загрузки исполняемых сценариев на веб-сервер Для упрощения установки и процедуры развертывания системы был разработан сценарий install.php, создающий все необходимые таблицы в базе данных и устанавливающий настройки системы по-умолчанию. Исходный код сценария находится в приложении 1. После запуска сценария на выполнение он предлагает заполнить параметры подключения к MySQL и, если они указаны верно, после нажатия кнопки «Make!» создает все необходимые таблицы в базе данных. Интерфейс исполнения сценария изображен на рисунке Рисунок 4 .21. После установки можно перейти в панель администрирования и приступить к использованию системы. ![]() Рисунок 4.21 – Интерфейс сценария установки системы 4.2Описание разработанной панели администратораПосле успешной установки системы с помощью сценария install.php перед администратором открывается страница логина в систему изображенная на рисунке Рисунок 4 .22. На рисунке Рисунок 4 .23 изображен интерфейс административной панели, на этой странице можно изменить основные настройки системы, удалять, добавлять, редактировать все записи в блоге. Интерфейс страницы редактирования записи в изображен на рисунке Рисунок 4 .24. ![]() Рисунок 4.22 – Страница авторизации в административную панель ![]() Рисунок 4.23 – Интерфейс административной панели ![]() Рисунок 4.24 – Интерфейс редактирования новости ЗаключениеВ рамках данной дипломной работы было разработана система управления содержимым интернет-дневника, был исследован вопрос разработки web-приложений с использованием современных средств разработки, в частности использование JavaScript библиотеки JQuery. jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax. Библиотека jQuery содержит функциональность, полезную для максимально широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, бо́льшая часть которого не востребована. Поэтому была реализована архитектура компактного универсального ядра библиотеки и плагинов. Это позволяет собрать для ресурса именно ту JavaScript-функциональность, которая на нём была бы востребована.
Список использованных источников
Приложение АСценарий установки системы (install.php) define('_VALID_MBLOG', '1'); define('MBLOG_PATH', dirname(__FILE__)); //определяем путь
$pub_header_tpl = MBLOG_PATH."/inc/tpl/pub_header.tpl"; $pub_footer_tpl = MBLOG_PATH."/inc/tpl/pub_footer.tpl";
echo " Configuration file was found!";require_once(MBLOG_PATH.'/inc/config.php'); } else {
echo " Configuration file not found! Configure script manually.";} ?> if($_GET){ $dblocation = $_GET['dblocation']; $dbuser = $_GET['dbuser']; Продолжение приложения А $dbpassword = $_GET['dbpassword']; $dbname = $_GET['dbname']; $dbprefix = $_GET['dbprefix']; $dbcnx = mysql_connect($dblocation,$dbuser,$dbpassword); if(!$dbcnx) { echo "can't connect"; exit();
} if(!mysql_select_db($dbname,$dbcnx)){ echo "can't select db"; exit(); }
`id` int(11) NOT NULL auto_increment, `title` tinytext NOT NULL, `text` text NOT NULL, `cut` tinyint(1) NOT NULL default '0', `image` tinyint(1) NOT NULL default '0', `date` datetime NOT NULL default '0000-00-00 00:00:00', `pub` tinyint(1) NOT NULL default '0', PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; SQL;
mysql_query($query); $query = "INSERT INTO `{prefix}news` (`title`, `text`, `cut`, `image`, `date`, `pub`) VALUES ('First good news', 'MBLOG sucesfuly installed! ', 0, 0, '".date('Y-m-d H:i:s')."', 1)"; $query = str_replace('{prefix}', $dbprefix, $query); mysql_query($query);
CREATE TABLE `{prefix}images` ( `id` int(11) NOT NULL auto_increment, `name` tinytext NOT NULL,
`title` tinytext NOT NULL, `description` text NOT NULL,
`pub` tinyint(1) NOT NULL default '0', `news_id` int(11) NOT NULL,
PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SQL;
mysql_query($query);
}
?>
define('_VALID_MBLOG', '1'); define('MBLOG_PATH', dirname(__FILE__)); //определяем путь
require_once MBLOG_PATH."/inc/config.php"; session_start(); //инициализирум механизм сесссий
// если форма не заполнена, то выводим ее echo '
Смотрите также: Исследование предметной области 11 2 Проектирование системы 24 3 Разработка системы 38
421.31kb.
1 стр.
Тема семестровой работы
69.78kb.
1 стр.
Разработка и исследование
806.11kb.
6 стр.
6 анализ предметной области и разработка технического задания 8
710.29kb.
9 стр.
«Oracle Database: проектирование и разработка» «Oracle. Проектирование бд» (часть 1)
47.77kb.
1 стр.
Разработка и исследование модели бесплатформенной инерциальной навигационной системы
71.66kb.
1 стр.
Статья посвящена реализации мероприятия «разработка общероссийской системы информационно-маркетинговых центров» федеральной целевой программы «Электронная Россия»
209.36kb.
1 стр.
"Разработка и исследование системы дополненной реальности с поддержкой распознавания жестов в режиме реального времени"
687.99kb.
14 стр.
Разработка и исследование системы связи на основе полупроводникового оптического квантового генератора
34.7kb.
1 стр.
Исследование и разработка информационной системы формирования и управления интернет-ресурсом по планетной картографии
222.23kb.
1 стр.
Разработка системы визуализации экологического загрязнения Житомирской области
113.72kb.
1 стр.
Учебный план дополнительной профессиональной образовательной программы повышения квалификации работников системы образования Пермской области «проектирование, развертывание и администрирование компьютерных сетей» 15.55kb.
1 стр.
|