Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Обычно все эти проблемы решают при помощи FTP-клиентов: закачивают исправленные страницы и скрипты на «настоящий» сервер в Интернете, смотрят, что получилось, затем лезут в редактор, исправляют, снова закачивают и т. д. до бесконечности. Главный недостаток такого подхода очевиден: необходимо все время быть подключенным к Интернету. Также очень желательно иметь хорошую связь, потому что… Читать ещё >

Разработка архитектуры приложения «Филологический словарь» (реферат, курсовая, диплом, контрольная)

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

  • Введение
  • Инструментальные средства курсового проекта
  • Денвер — локальный сервер для разработки веб приложения
  • Архитектура Денвера
  • Необходимость локального сервера Денвер
  • 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, править конфигурационные файлы не требуется. По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить.

Система управления запуском и завершением всех компонентов Денвера.

phpMyAdmin — система управления 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 студии Лебедева.

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

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

Отличительной особенностью Денвера является его полная автономность. Она заключается в следующем.

Денвер устанавливается в один-единственный каталог и вне его ничего не изменяет. Он не пишет файлы в Windows-директорию и не «гадит» в Реестре. При желании вы можете даже поставить себе сразу два Денвера, и они не будут конфликтовать.

Никакие «сервисы» NT/2000 не «прописываются». Если вы запустили Денвер, то он работает. Если завершили — то перестает работать, не оставляя после себя следов.

Системе не нужен деинсталлятор — достаточно просто удалить каталог.

Установив Денвер однажды, вы можете затем просто переписывать его на другие машины (на произвольный диск в произвольную директорию). Это не приведет ни к каким побочным эффектам.

Все конфигурирование и настройка под конкретную машину происходит автоматически.

Эти же правила распространяются и на пакеты расширений.

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

Виртуальный диск — это просто синоним для некоторой папки на реальном, или физическом, диске. Подключается он при помощи команды subst, о чем заботятся скрипты Денвера. Вы можете работать с виртуальным диском, как с обычным. При этом все операции в действительности будут производиться с указанной директорией. Механизм работы виртуальных дисков встроен в ОС и не ведет к каким-либо издержкам и замедлениям.

За счет применения виртуального диска Денвер «изнутри» похож на маленький Unix: у него есть своя директория /home, /usr, /tmp. Различные компоненты и серверы расположены так, как это принято в Unix. Например, в /home располагаются виртуальные хосты, а в /usr — программные компоненты.

Такая архитектура в действительности не имеет ничего общего с системой Cygwin (хотя и похожа). Тем не менее, некоторые пакеты расширений Денвера могут использовать Cygwin для своих внутренних целей, но это всегда «прозрачно» для пользователя.

Вопреки распространенному мнению, Денвер не является чем-то статическим и неизменным. Никто не мешает вам устанавливать поверх него дополнительные программы и компоненты (например, сервер СУБД PostgreSQL). Они просто будут для него «как родные». Вы можете также задавать логику запуска и завершения дополнительных сервисов по аналогии с тем, как это сделано в базовом пакете. Так что, если вам нужна какая-то система, которой нет в пакетах расширений, смело ставьте и конфигурируйте ее вручную.

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

В последнее десятилетие во всем мире наблюдается настоящий бум среди Web-разработчиков (по преимуществу это программисты). Они устанавливают у себя на Windows-машине сервер Apache с различными дополнениями к нему: PHP, Perl, MySQL и т. д. — преимущественно в целях более удобной отладки сайтов.

Многие (преимущественно дизайнеры) могут спросить: зачем вообще нужен локальный Web-сервер, когда страницы можно открывать и так — прямо с диска? Если это обычные (статические) HTML-страницы, то да, сервер не нужен. Однако даже для такой мелочи, как SSI (Server-side Includes — директивы в страницах, позволяющие вставлять на нужное место содержимое других файлов), уже необходим сервер. Не говоря уж о скриптах — они без сервера просто не запустятся.

Обычно все эти проблемы решают при помощи FTP-клиентов: закачивают исправленные страницы и скрипты на «настоящий» сервер в Интернете, смотрят, что получилось, затем лезут в редактор, исправляют, снова закачивают и т. д. до бесконечности. Главный недостаток такого подхода очевиден: необходимо все время быть подключенным к Интернету. Также очень желательно иметь хорошую связь, потому что в противном случае работа будет продвигаться крайне медленно.

Мне относительно регулярно приходят письма со следующим — обычно завуалированным — вопросом: чем отличается «просмотр страниц, открывая файл в браузере» от «просмотра с использованием сервера». В первом случае вы выбираете в меню что-то вроде Файл — Открыть — Обзор и выбираете нужный файл на диске. Браузер показывает его без всякой обработки, и путь в его адресной строке выглядит примерно вот так (Рис. 1.3.1):

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

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

Рис. 1.3.2 URL адрес

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

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

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

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

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

MongoDB, по мнению разработчиков, должна заполнить разрыв между простыми хранилищами данных типа «ключ-значение» (быстрыми и легко масштабируемыми) и большими РСУБД (со структурными схемами и мощными запросами).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

JavaScript — прототипно-ориентированный сценарный язык программирования. Является диалектом языка ECMAScript.

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

Ajax

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

· использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:

_ с использованием XMLHttpRequest (основной объект);

_ через динамическое создание дочерних фреймов;

_ через динамическое создание тега

Показать весь текст
Заполнить форму текущей работой