Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив / Zhukovskaya_Diplom_final.doc
Скачиваний:
58
Добавлен:
09.06.2015
Размер:
4.32 Mб
Скачать
      1. Обоснования выбранной субд

Для разработки системы требуется СУБД, занимающая минимально количество ресурсов, легко переносимая, поддерживающая требуемые функции, имеющая минимальную цену за лицензию. Всем этим требованиям отвечает СУБД MySQL. Причём выбора здесь нет, другие известные варианты или коммерческие, или существенно хуже.

MySQLсчитается относительно небольшой и быстрой реляционной СУБД, основанной на традицияхHughesTechnologiesMiniSQL(mSQL). Эта СУБД как конечному пользователю, так и программисту в такой операционной обстановке запоминать данные в базах данных и осуществлять их выборку, воспринимая при этом базу данных как совокупность отношений или таблиц.MySQLобеспечивает доступ к таким базам данных посредством реляционного языкаSQL(“StructuredQueryLanguage” – Структурированный язык запросов).MySQLпредставляет систему управления базами данных (СУБД), которая позволяет любому числу пользователей осуществлять доступ к любому числу реляционных баз данных с помощью реляционного языка , называемогоSQL.

Основные особенности MySQL:

  • Многопоточность. Поддержка нескольких одновременных запросов;

  • Защита от одновременной записи;

  • Оптимизация связей с присоединением многих данных за один проход;

  • Записи фиксированной и переменной длины;

  • ODBCдрайвер в комплекте с исходным файлом;

  • Гибкая система привилегий и паролей;

  • До 16 ключей в таблице. Каждый ключ может иметь до 15 полей;

  • Поддержка ключевых полей и специальных полей в операторе CREATE;

  • Поддержка чисел длинной от 1 до 4 байт (ints,float,double,fixed), строк переменной длины и меток времени;

  • Основанная на потоках, быстрая система памяти;

  • Утилита проверки и ремонта таблицы (isamchk);

  • Все данные хранятся в формате ISO8859_1 в кодировкеUtf-8, но в принципе можно использовать любую другую кодировку;

  • Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;

  • Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;

  • Все поля имеют значение по умолчанию;

  • INSERTможно использовать на любом подмножестве полей;

  • Легкость управления таблицей, включая добавление и удаление ключей и полей;

  • Имеет возможность резервного копирования;

  • Можно подключить логирование запросов.

      1. Обоснование выбора хостинга

Разрабатываемые подсистемы изначально ориентированы на web-технологии. Таким образом, выбор средств разработки приложений на стороне сервера ограничен несколькими стандартамиde-facto—PHPиJavaи, возможно,PerlиPython.

Следовательно, из учета выбора в качестве CMSсистемы управленияDrupalи из предположения совместимости сweb-технологиями получается выбор технологииPHP+MySQLв качестве основного средства разработки.

Apache— кроссплатформенныйHTTP-сервер [48], работает в операционных системахLinux,BSD,MacOS,MicrosoftWindows,NovellNetWare,BeOS. Система конфигурацииApacheоснована на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера (httpd.conf);

  • Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf);

  • Конфигурация уровня директории (.htaccess).

Основными достоинствами Apache считаются простота, надёжность и гибкость конфигурации.

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

Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками.

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

  • Поддержка языков программирования;

  • Добавление новой функциональности;

  • Исправление ошибок или модификация основных функций;

  • Усиление безопасности.

В Apache встроен механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое. Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.

Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.

Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки. К ним относятся:

  • PHP (mod_php);

  • Python (mod python, mod wsgi);

  • Ruby (apache-ruby);

  • Perl (mod perl);

  • ASP (apache-asp);

  • Tcl (rivet).

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, sh, Java.

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

  • Ограничение доступа к определённым директориям или файлам;

  • Механизм авторизации пользователей для доступа к директории по методу HTTP-Авторизации (mod_auth_basic) и digest-авторизации (mod_auth_digest);

  • Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей;

  • Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных;

Существуют модули, реализующие авторизацию через СУБД или PAM.

Для реализации шифрования данных, передающихся между клиентом и сервером используется механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера используются сертификаты X.509.

Таким образом, в качестве хостинга была использована связка Apache+PHP+MySQL, которая удовлетворяет всем требованиям к хостингу (см. пункт 2.1.3.1 Требования к хостингу).

При разработке программных модулей для этого был использован Денвер, который представляет собой набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, предназначенные для создания и отладки сайтов (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows [49].

Соседние файлы в папке Архив