Разработка архитектуры приложения 'Филологический словарь'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    440,14 Кб
  • Опубликовано:
    2015-02-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка архитектуры приложения 'Филологический словарь'













Курсовая работа

Разработка архитектуры приложения "Филологический словарь"

Содержание

Введение

Инструментальные средства курсового проекта

Денвер - локальный сервер для разработки веб приложения

Архитектура Денвера

Необходимость локального сервера Денвер

MongoDB. База данных с NoSQL архитектурой

PHP. Серверный язык программирования

JavaScript, как инструмент интерактивности

Ajax

jQuery

Структурные составляющие программы

Специфика словарной статьи

Взаимодействие с базой данных

Заключение

Библиографический список

Введение


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

Всемирная паутина (англ. World Wide Web) - распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключенных к Интернету. Для обозначения Всемирной паутины также используют слово веб (англ. web "паутина") и аббревиатуру WWW.

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

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

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

Задачами курсовой работы являются:

научиться использовать не реляционную базу данных;

изучение JavaScript для создания интерактивности на странице;

изучение Php, настройка и использование;

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

Инструментальные средства курсового проекта


Денвер - локальный сервер для разработки веб приложения


Джентльменский набор Web-разработчика ("Д. н. w. р", читается "Денвер") - проект Дмитрия Котерова, локальный сервер (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на "домашней" (локальной) Windows-машине без необходимости выхода в Интернет. Главная особенность Денвера - удобство при удаленной работе сразу над несколькими независимыми проектами и возможность размещения на Flash-накопителе.

Базовый (основной) пакет Денвера включает в себя:

·        Инсталлятор (поддерживается также инсталляция на flash-накопитель).

·        Apache, SSL, SSI, mod_rewrite, mod_php.

·        PHP5 с поддержкой GD, MySQL, sqLite.

·        MySQL5 с поддержкой транзакций.

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

Система управления запуском и завершением всех компонентов Денвера.- система управления MySQL через Web-интерфейс.

Эмулятор sendmail и SMTP-сервера (отладочная "заглушка" на localhost: 25, складывающая приходящие письма в /tmp в формате. eml); поддерживается работа совместно с PHP, Perl, Parser и т.д.

В Денвере также имеется возможность установить следующие пакеты расширений:

·        полная версия ActivePerl 5.8;

·        PHP5 с полным набором модулей;

·        язык программирования Python;

·        СУБД PostgreSQL или InterBase/FireBird версий 1 и 2;

·        старый-добрый PHP версии 3 или 4;

·        или даже Parser <#"787606.files/image001.gif">

Рис. 1.3.1 Отображение адреса

Если же вы открываете страницу "через сервер", происходит совершенно иное. Вообще, вы должны привыкнуть к мысли, что ваш "локальный" сервер ничем не хуже любого другого, расположенного в Интернете. А значит, он тоже содержит сайты (один или несколько), у каждого из которых есть определенное имя. Доступ к этим сайтам осуществляется, как обычно: вы указываете в адресной строке URL - обычно имя сайта и путь к документу на нем:

Рис. 1.3.2 URL адрес

Уже при сравнении этих двух картинок можно видеть, что при открытии страницы "через браузер" пользователь в общем случае видит совсем не то же самое, что при открытии файла (сравните хотя бы заголовки окон).

Кстати, на последней картинке имя сайта - dklab. Конечно, такое имя выглядит несколько странно - у него нет суффикса.ru, что делает его недоступным для всех остальных пользователей Сети. Однако на локальной машине сайт открывается замечательно, к тому же, я никогда не спутаю dklab.ru (сайт в Интернете) сdklab (сайт на локальной машине).

 

MongoDB. База данных с NoSQL архитектурой

 - документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц.

При разработке авторы исходили из необходимости специализации баз данных, благодаря чему им удалось отойти от принципа "один размер подо всё". За счёт минимизации семантики для работы с транзакциями появляется возможность решения целого ряда проблем, связанных с недостатком производительности, причём горизонтальное масштабирование становится проще. Используемая модель документов хранения данных (JSON/BSON) проще кодируется, проще управляется (в том числе за счёт применения т. н. "бессхемного стиля" (англ. schemaless style)), а внутренняя группировка релевантных данных обеспечивает дополнительный выигрыш в быстродействии. Нереляционный подход весьма удобен для создания баз данных, у которых горизонтальное масштабирование подразумевает разворачивание на множестве машин. Возможность обеспечивать наилучшую производительность должна существовать параллельно с поддержкой более обширной функциональности, чем это позволяет использование пар "ключ-значение" (в чистом виде). Технология баз данных должна работать везде, начиная с серверов пользователя и виртуальных машин и заканчивая облачными технологиями., по мнению разработчиков, должна заполнить разрыв между простыми хранилищами данных типа "ключ-значение" (быстрыми и легко масштабируемыми) и большими РСУБД (со структурными схемами и мощными запросами).

Основные возможности данной СУБД:

·        Документо-ориентированное хранилище (простая и мощная JSON-подобная схема данных)

·        Достаточно гибкий язык для формирования запросов

·        Динамические запросы

·        Полная поддержка индексов

·        Профилирование запросов

·        Быстрые обновления "на месте"

·        Эффективное хранение двоичных данных больших объёмов, напр., фото и видео

·        Журналирование операций, модифицирующих данные в БД

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

·        Может работать в соответствии с парадигмой MapReduce

·        Полнотекстовый поиск, в том числе на русском языке, с поддержкой морфологии

СУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB и др.), MongoDB не является реляционной СУБД. Среди других отличий от традиционных реляционных СУБД:

·        Отсутствует оператор "join". Обычно данные могут быть организованы более денормализованным способом, но на разработчиков ложится дополнительная нагрузка по обеспечению непротиворечивости данных.

·        Нет такого понятия, как "транзакция". Атомарность гарантируется только на уровне целого документа, т.е. частичного обновления документа произойти не может.

·        Отсутствует понятие "изоляции". Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом.

 

PHP. Серверный язык программирования


PHP - скриптовый язык <#"787606.files/image003.gif">

Рис. 2.1.1 Структура словарной статьи

Далее, в соответствии с рис.2.1.1 в структуре следует объект Semantics (возможные значения слова MyArticle), который состоит из следующих атрибутов:

·              Sem - текст семантики (String);

·              Word_key - id семантики (String);

·              Latin - интерпретация на латинском языке (String);

·              Synonim, Variant, Derivat - возможные производные слова от семантики, соответственно: синоним, вариант, дериват. (тип: объект классов Synonim, Variant, Derivat, которые описаны чуть ниже).

В соответствии с техническим заданием существовала необходимость обозначения ударений в слове, а также в других структурных единицах (примеры, прецедентные высказывания и др.). Подобный механизм сохранения ударений в словах был реализован с помощью создания объекта Word, который содержит два атрибута: это data - сам строка, и accents - ударения в виде массива позиций вхождения ударной буквы в строку. Данный объект, встречается везде, где существует необходимость сохранения ударений в строке, а это поля в объектах:

·              МуArticle - свойство article;

·              Synonim - свойство text;

·              Variant - свойство text;

·              Derivat - свойство text;

·              Variant_use - свойство data (не всегда).

Специфика словарной статьи заключается в возможности существования или не существования отдельных слов (Synonim, Variant, Derivat) относящихся к каждой семантике словарного слова (MyArticle). Также, у каждого слова (Synonim, Variant, Derivat), могут существовать, или не существовать следующие атрибуты:

·              text - само слово (объект Word) - обязательное поле;

·              meaning - уточняющее значение (объект Word);

·              part_of_speach - часть речи (String);

·              gender_ex - род (String);

·              amount_word - число (String);

·              padej - падеж (String);

·              class_of_word - разряд (String);

·              degree_of_concruence - степень сравнения (String);

·              type - вид (String);

·              mood - наклонение глагола (String);

·              gram_pomet - грамматические пометы (Array);

·              stil_pomet - стилистические пометы (Array);

·              word_key - id слова (String);

·              v_u - вариант использования (объект Varaint_Use).

Каждое слово (Synonim, Variant, Derivat), может содержать специфический объект - Variant_Use. Данный объект, в структуре статьи, может содержать:

·              иллюстраций;

·              переносные значения;

·              прецедентных высказываний;

·              сочетаемость;

·              устойчивые или фразеологические сочетания.

Иллюстрации и прецедентные высказывания, помимо основных полей (а это data - объект Word, и type, типа String), могут содержать объект типа Informer_Pasport. Этот объект - паспорт информанта, содержит краткую информацию о человеке, предоставившем информацию об иллюстрации или прецедентом высказывании. Данный объект состоит из полей:

·              fio_ - фамилия имя отчество (String);

·              gender_ - пол (String);

·              age_ - возраст (String);

·              year_ - год записи (String);

·              educ_ - образование (String);

·              dialect - диалект (String);

·              address - адрес, данный объект описан ниже (объект Adress).

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

·              place - местность (String);

·              region - область (String);

·              district - район (String);

·              settlement - населенный пункт (String).

Структура программы

При запуске программы (вход на сайт) пользователь видит главное окно программы рис. 2.2.1:

Рис 2.2.1 Главное окно программы.

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

Добавление статьи осуществляется в следующей форме ввода рис. 2.2.2:

Рис. 2.2.2 Форма ввода статьи

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

Справа отображена статья в виде дерева.

Добавление семантик, вариантов и дериватов происходит на следующей форме рис. 2.2.3:

Рис. 2.2.3 Форма ввода синонима, варианта, деривата.

Как вы видите, здесь имеются функционал для заполнения всех полей, описанных в предыдущем параграфе. Заполнение иллюстраций и прецедентных высказываний осуществляется в следующей форме ввода рис. 2.2.4:

Рис. 2.2.4 Форма ввода иллюстраций.

 

Взаимодействие с базой данных


Главное окно записи статьи находится в файле article. php. После того как форма ввода заполнена, пользователь нажимает на кнопку "записать статью" в результате, скрипт перенаправляет программу на тот же файл article. php. Строки представленные ниже (рис. 2.3.1) демонстрируют соединение и запись статья в базу данных.

Рис 2.3.1 Код записи коллекции в базу данных

Выборка и заполнение полей списка представлена на рис. 2.3.2.

Рис 2.3.2 Код выборки и заполнения данных в главное окно программы

Заключение


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

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

Php использовался в нескольких случаях:

·              Подключение к базе данных;

·              Удаление статьи;

·              Добавление статьи;

·              Переход между окнами программы.

При разработке также интенсивно использовалась библиотека JQuery, которая позволила существенно сократить код программы и упростила процесс написания кода.

С помощью технологии Ajax была реализована возможность интерактивной загрузки изображения. Ajax использовалась в совокупности с библиотекой JQuery.

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

Библиографический список


1.      Дэвид Флэнаган - JavaScript. Подробное руководство. - Пер. с англ. - СПб: СимволлПлюс, 2008. - 992 с., ил.

2.      Ларри Ульман - Основы программирования на PHP. М.: ДМК Пресс, 2011 г. 288 с.

Похожие работы на - Разработка архитектуры приложения 'Филологический словарь'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!