Выбор и обоснование средств разработки web-серверных приложений
Автор: Мурчиков А.М., Воробьев В.В.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 3 (21), 2017 года.
Бесплатный доступ
В данной статье проводится выбор и подробное обоснование средств разработки веб-серверного приложения. Статья нацелена главным образом на начинающих разработчиков, которые не знают какие средства выбрать. В статье производится выбор системы управления базой данных, языка программирования и веб-сервера. Эти компоненты являются основными для разработки веб-приложений.
Веб-приложение, веб-сервер
Короткий адрес: https://sciup.org/140271026
IDR: 140271026
Текст научной статьи Выбор и обоснование средств разработки web-серверных приложений
Выбор web-сервера
WEB-сервер – это программное средство, установленное на WEB-узле глобальной и корпоративной сети, и обеспечивающее пользователям сети доступ к гипертекстовым документам, расположенным на этом WEB-узле.
Web-сервер принимает HTTP запросы от клиентов и отправляет им HTTP-ответы в виде сформированных HTML-страниц.
В общем случае программное обеспечение WEB-сервера может устанавливаться на компьютеры общего назначения, предназначенные для решения различных задач, не обязательно связанных с технологиями Internet. Поэтому более корректно использовать понятие WEB-сервера для обозначения только программного обеспечения WEB-сервера, а компьютер с операционной системой и сетевой структурой называть средой работы WEB-сервера или платформой.
Наиболее популярными WEB-серверами являются Apache (порядка 60% на рынке WEB-серверов) и Microsoft IIS (порядка 30% на рынке WEB-серверов).
Одним из основных критериев с весом 0.3 будет стоимость. Простота использования связана с ограничением времени, выделенной на разработку системы, вес этого критерия 0.2. Важным критерием сравнения является возможность работы WEB-сервера на платформе Microsoft. Вес этого критерия 0.3. Надежность и производительность так же являются важными критериями сравнения, их вес 0.1.
В таблице 1 приведены критерии сравнения с указанием весового коэффициента
Таблица1. Критерии сравнения и их весовые коэффициенты
Название критерия |
Значение весового коэффициента |
Стоимость |
0.2 |
Поддержка |
0.1 |
Зависимость от ОС |
0.3 |
Надежность |
0.2 |
Защищенность |
0.2 |
Стоимость – критерий, показывающий, сколько стоит сервер.
Поддержка – критерий, показывающий, насколько качественно производится поддержка пользователей разработчиком.
Зависимость от ОС – данный критерий показывает, является ли сервер зависимым от ОС, и насколько сложно настроить сервер для работы в конкретной ОС.
Надежность – критерий, показывающий надежность передачи HTML-страницы.
Защищенность – критерий, показывающий насколько сильно сервер защищен от вредоносного ПО.
В таблице 2 представлена сравнительная характеристика вышеперечисленных WEB-серверов.
Таблица 2. Сравнительная характеристика WEB-серверов
Критерий\WEB-cервер |
Apache |
Microsoft IIS |
Стоимость |
Отлично |
Неудовлетворитель но |
Поддержка |
Хорошо |
Отлично |
Зависимость от ОС |
Отлично |
Удовлетворительно |
Надежность |
Хорошо |
Отлично |
Защищенность |
Отлично |
Хорошо |
Для выбора оптимального варианта введем веса параметров, и переведем качественные оценки в количественные.
Таблица 3. Качественные и количественные оценки параметров
Оценка |
Неудовлетворительно |
Удовлетво рительно |
Хорошо |
Отличн о |
Количество баллов |
2 |
3 |
4 |
5 |
В таблице 4 представлены итоговые сравнительные характеристики указанных WEB-серверов и выбор оптимального варианта методом взвешенной суммы.
Таблица 4. Итоговые сравнительные характеристики СУБД
Критерий \ WEB-сервер |
Вес |
Apache |
Microsoft IIS |
Стоимость |
0.2 |
5 |
2 |
Поддержка |
0.1 |
4 |
5 |
Зависимость от ОС |
0.3 |
5 |
3 |
Надежность |
0.2 |
4 |
5 |
Защищенность |
0.2 |
5 |
4 |
Итого |
4.7 |
3.6 |
Таким образом, предпочтение было отдано WEB-серверу Apache .
Выбор СУБД
Основным критерием при выборе СУБД является простота управления базой данных.
Систему необходимо сдать в строго определенный срок, поэтому важен опыт работы разработчика с рассматриваемыми СУБД. Так же важными параметрами СУБД при разработке данной системы является скорость выполнения запросов, и поддержка необходимых типов полей.
В таблице 5 приведены критерии сравнения с указанием весового коэффициента.
Таблица 5. Критерии сравнения и их весовые коэффициенты
Название критерия |
Значение весового коэффициента |
Типы полей |
0.1 |
Опыт работы разработчика |
0.2 |
Скорость выполнения запросов |
0.1 |
Стоимость |
0.3 |
Совместимость с другими программными средствами |
0.3 |
Типы полей – критерий, который обусловлен числом типов полей, которые поддерживает СУБД.
Опыт работы разработчика – важный критерий, который обусловлен сроком работы разработчика системы с каждой из СУБД.
Скорость выполнения запросов – критерия, который показывает, какое количество запросов в секунду, обрабатываемых сервером, может выполнять СУБД.
Стоимость – критерий, показывающий, сколько стоит СУБД.
Совместимость с другими программными средствами – критерий показывает, насколько СУБД совместима с другими программными средствами, в конкретном случае, с PHP.
В Таблице 6 приведено соответствие значений критериев качественной оценке.
Таблица 6. Соответствие качественных оценок количественным
Оценка\Критери й |
Опыт разработчика, лет |
Скорость выполнения запросов |
Стоимость, тыс. руб. |
Совместим ость с другими программн ыми средствам и, необходим ыми для выполнени я проекта |
Отлично |
1 |
>140 |
0 |
Совместим о с PHP |
Хорошо |
0.8-1 |
100-140 |
0-5 |
Можно без PHP |
Удовлетворител ьно |
0.5-0.8 |
80-100 |
5-50 |
Сложно настроить на работу с PHP |
Неудовлетворит ельно |
0-0.5 |
<=80 |
>=50 |
Невозможн о настроить на работу с |
PHP |
В таблице 7 представлена сравнительная характеристика вышеперечисленных СУБД.
Таблица 7. Сравнительная характеристика СУБД
Критерий\СУБД |
МS SQL |
Oracle |
Access |
MySQL |
Типы полей |
Отлично |
Отлично |
Отлично |
Отлично |
Опыт работы разработчика |
Удовлетво рительно |
Удовлетво рительно |
Отлично |
Хорошо |
Скорость выполнения запросов |
Отлично |
Отлично |
Отлично |
Отлично |
Стоимость |
Удовлетво рительно |
Удовлетво рительно |
Удовлетво- рительн |
Отлично |
Работа на платформе Microsoft |
Удовлетво рительно |
Удовлетво рительно |
Хорошо |
Отлично |
Для выбора оптимального варианта введем веса параметров, и переведем качественные оценки в количественные.
В таблице 8 приведены качественные и количественные оценки параметров.
Таблица 8. Качественные и количественные оценки параметров
Оценка |
Неудовлетворительно |
Удовлетво рительно |
Хорошо |
Отлично |
Количество баллов |
2 |
3 |
4 |
5 |
В таблице 9 представлены итоговые сравнительные характеристики указанных СУБД и выбор оптимального варианта методом взвешенной суммы.
Таблица 9. Итоговые сравнительные характеристики СУБД
Критерий \ СУБД |
Вес |
МS SQL |
Oracle |
Acess |
MySQL |
Типы полей |
0.1 |
5 |
5 |
5 |
5 |
Опыт работы разработчика |
0.2 |
3 |
3 |
5 |
4 |
Скорость выполнения запросов |
0.1 |
5 |
5 |
5 |
5 |
Стоимость |
0.3 |
3 |
3 |
3 |
5 |
Работа на платформе Microsoft |
0.3 |
3 |
3 |
4 |
5 |
Итого |
4.0 |
4.0 |
3.5 |
6.0 |
Таким образом, предпочтение было отдано СУБД MySQL.
Выбор языка программирования
В качестве средств разработки системы был выбран язык сценариев PHP. PHP (англ. рекурсивный акроним PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», или Personal Home Page Tools — «Инструмент для создания персональных веб-страниц») — скриптовый язык программирования, применяемый для разработки веб-приложений. Поддерживается подавляющим большинством хостинг-провайдеров, является одним из лидеров среди языков программирования, применяемых для создания динамических веб-сайтов. По синтаксису язык очень близок к C.
Одним из главнейших факторов PHP конечно же является его несомненная практичность. Практический характер PHP обусловлен несколькими важными характеристиками:
Гибкость ( Поскольку РНР является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя РНР обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения РНР легко расширяются по мере необходимости. Нет проблем и с зависимостью от браузеров, поскольку перед отправкой клиенту сценарии РНР полностью компилируются на стороне сервера. В сущности, сценарии РНР могут передаваться любым устройствам с браузерами, включая сотовые телефоны, электронные записные книжки, пейджеры и портативные компьютеры, не говоря уже о традиционных PC. Программисты, занимающиеся вспомога-тельными утилитами, могут запускать РНР в режиме командной строки. Поскольку РНР не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами ).
Эффективность (эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW. В РНР был реализован механизм выделения ресурсов и обеспечена улучшенная поддержка объектноориентированного программирования, а также средства управления сеансом. В последней версии появился и механизм подсчета ссылок (reference counting), предотвращающий выделение лишней памяти ).
Высокий уровень безопасности (РНР предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения. В РНР реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке РНР это обеспечивает максимальную свободу действий и безопасность. РНР может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения РНР пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). Администратор также может использовать сценарии РНР для просмотра конфиденциальной информации на сервере (например, файла passwd). В стандартный набор функций РНР входит ряд надежных механизмов шифрования. Другое преимущество заключается в том, что исходный текст сценариев РНР нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация РНР на стороне сервера предотвращает похищение нетривиальных сценариев пользователями ).
Бесплатное распространение (Принятие стратегии Open Source и бесплатное распространение исходных текстов РНР оказало неоценимую услугу пользователям. Сообщество пользователей РНР является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы).
Если сравнивать язык PHP с Pythin и Ruby, то был выбран PHP по следующим причинам:
-
• PHP – наиболее лучший язык для создания динамических вебстраниц;
-
• Потребность в программистах на PHP больше всего (Основываясь на анализе Jobs Tractor, учитывающем более 45000 вакансий разработчиков, опубликованных в Twitter за последний год, потребность в программистах такова: PHP – требуется 8238 человек, Ruby – 2937 человек, Python – 1587 человек);
Список литературы Выбор и обоснование средств разработки web-серверных приложений
- Григорьев Ю.А., Ревунков Г.И. Банки данных: Учеб. для вузов. [Текст] / Ю.А. Григорьев, Г.И. Ревунков - М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. - 320 с.
- Спека, М.В. Создание Веб-сайтов. Самоучитель.- М.: Издательский дом «Вильямс», 2007.-288 с.
- Гутманс Э., Баккен С., Ретанс Д., PHP 5. Профессиональное программирование, 2006.
- Дари К., Бринзаре Б., Черчез-Тоза Ф., Бусика М. AJAX и PHP. Разработка динамических веб-приложений, 2007.
- Мерсер Д.У., Кент А., Новицки С. PHP 5 для начинающих, 2006.
- Самойлов Е.Э., Web-дизайн для начинающих. Практическое руководство, 2009.
- «Архитектура веб-приложений». Режим доступа: http://www.studfiles.ru/preview/3640855/page:6/ (дата обращения 03.02.2017)