Файл: Критерии выбора средств разработки WEB-приложений).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.05.2023

Просмотров: 151

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

Сетевые технологии серьёзно эволюционировали с конца XX века, что и определило потребность в смене курса разработки программного обеспечения в сторону разработки веб-приложений.

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

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

Предметом исследования является веб-разработка, а объектом – среды разработки веб-приложений. Цель работы – краткий обзор возможностей и определения критериев выбора конкретных средств разработки веб-приложений.

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

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

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

Стоит отдельно отметить, что текущее исследование, несмотря на детальный подход в исследовании именно интегрированных сред разработки, лишь поверхностно обозревает отдельные инструменты, такие как CMS, CMF, каскады веб-приложений и html-редакторы, а также плагины к интегрированным средам разработки, поскольку детальный анализ каждого из указанных инструментов, требует проведения отдельных исследований.


Также, в рамках данного исследования не вошло сравнения платформ для создания RIA, поскольку, не смотря на использование подобных в веб-технологиях, вопрос об отношении их к веб-приложениям до сих пор остаётся спорным, по причине архитектурных различий.

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

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

1. Теоретические основы разработки Web-приложений

1.1 Основные понятия

Веб-приложение — программа, обеспечивающих функционирование динамических сайтов Всемирной паутины. По архитектуре клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер[1]. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются кроссплатформенными сервисами. Веб-приложения стали широко популярными в конце 1990-х — начале 2000-х годов.

Само веб-приложение может выступать в качестве клиента других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержимым статей Википедии: множество её участников могут принимать участие в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и не загружая дополнительных исполняемых модулей для работы с базой данных статей.


Сайты как основа веб-приложений

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

По структуре сайты делятся на статические и динамические.

Статические сайты проще, безопаснее и производительнее динамических [2][3]. Используются в основном для сайта-визитки лица или компании (вид деятельности, история, прайс-лист, контактные данные, реквизиты, схема проезда, и т.д., а специалисты размещают своё резюме), каталога продукции (то, что невозможно поместить в прайс-лист: подробное описание товаров/услуг, сертификаты, технические и потребительские данные, отзывы экспертов и т. д.), домашние страницы пользователей. Также статические страницы часто используются как шаблоны динамических сайтов.

Динамические сайты —сайты, состоящие из динамичных страниц — шаблонов, контента, скриптов и прочего, в виде отдельных файлов. Страница сайта, показываемая в итоге браузеру пользователя, формируется на стороне сервера динамически, по запросу, из страницы-шаблона и отдельно хранимого содержимого (информации, скриптов и др.) [4][5][6]. Как правило для отображения любого количества однотипных страниц используется одна страница-шаблон, в которую подгружается соответствующее содержимое, это позволяет одномоментно корректировать внешний вид сайта (множество всех его страниц), редактируя всего лишь один шаблон.

Редактирование собственно содержимого (как и страницы-шаблона) может производиться как средствами самого сайта, так и с применением стороннего ПО. Возможность править все страницы предоставляется только определенной категории пользователей (например, администраторам, или же зарегистрированным пользователям). В некоторых случаях к правке определённого веб-контента допускаются анонимные пользователи, что бывает реже (например, на форумах — добавление сообщений). Примером сайта с анонимным изменением может служить Википедия.

Процесс получения содержимого сайта обычно выглядит следующим образом:

  • Генерация содержимого на стороне сервера в ответ на запрос от клиента путём запуска обработки файла-скрипта интерпретатором (чаще используются языки Java, PHP, Perl, ASP.NET, Ruby), выборки необходимой информации из баз данных и наполнение ею страницы;
  • Передача сгенерированной странички клиенту;
  • Генерация содержимого на стороне клиента средствами браузера вместе с исполнением скриптов клиентской стороны, если те были указаны в странице и получены (как JavaScript, например, для проверки на правильность задания паролей при регистрации на сайтах, и т. д., так и сложных последовательностей).

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

По типу сайты и сервисы делятся на базы данных в Интернете‎, электронные библиотеки‎, блоги (включая блог-платформы, микроблоги, тамблелоги), веб-порталы (развлекательные сайты, браузерные игры, проектные сети, включая вики), хостинги (видеохостинги, хостинги изображений и фотобанки), сайты вопросов и ответов‎, сайты загрузок (включая файлообменники)‎, каталоги ресурсов, интернет-магазины, информационно-аналитические сайты, информационно-справочные сайты‎, новостные сайты (и агрегаторы)‎, сайты частных объявлений‎, сайты организаций‎, сайты по поиску работы, сервисы электронной почты‎ (включая сервисы рассылки электронной почты), сервисы сравнения цен‎, социальные сети‎ (включая службы знакомств)‎, онлайн энциклопедии‎, BitTorrent-трекеры‎, веб-портфолио, чаты и форумы (имиджборды, виртуальная доска объявлений), площадка вебинаров, сайт-визитка, сайт-заглушка, виртуальные атласы, баннерные сети, социальные закладки.

Тенденцией 2010-ых годов для веб-сайтов являлся «адаптивный дизайн», который давал лучшие впечатления от просмотра, подстраиваясь под устройство пользователей [7]. Количество веб - сайтов снова вырос до более чем 1 миллиард в марте 2016 года, и продолжает расти с тех пор [8].

Веб-разработка — процесс создания веб-сайта или веб-приложения.

Основными этапами процесса являются веб-дизайн, вёрстка страниц, программирование для web на стороне клиента и сервера, а также конфигурирование веб-сервера [9].

На сегодняшний день существуют несколько этапов разработки веб-сайта:

  • Проектирование сайта или веб-приложения менеджером проекта (сбор и анализ требований заполнением брифа, разработка технического задания, проектирование интерфейсов), а также разработка креативной концепции сайта. Этапы проектирования веб-сайтов зависят от многих факторов, таких как объём сайта, функциональность, задачи, которые должен выполнять будущий ресурс и многое другое. Именно менеджер проектов контролирует этапы и сроки [9];
  • Создание дизайн-концепции сайта, макетов страниц и  мультимедиа и FLASH-элементов. При этом отдельно создаётся дизайн главной страницы, и дизайны типовых страниц (например, статьи, новости, каталог продукции). Дизайнер создаёт один или несколько вариантов «дизайна страниц», которые представляют собой графические файлы, состоящие из наиболее мелких картинок-слоев элементов общего рисунка, учитывая ограничения стандартов HTML;
  • Вёрстка страниц и шаблонов. HTML-верстальщик «нарезает» графическую картинку на отдельные рисунки, из которых впоследствии складывает HTML-страницы. В результате создаётся код, который можно просматривать с помощью браузера, а типовые страницы впоследствии будут использоваться как веб-шаблоны, то есть, как инструменты для отделения содержимого от визуального представления в веб-дизайне [10]. В простейшем своем смысле, веб-шаблон выполняет роль незаполненного бланка документа;
  • Программирование - разработка функциональных инструментов, или интеграция в систему управления содержимым (CMS). Программирование сайта может осуществляться как «с нуля», так и на основе CMS — системы управления сайтом [11]. В случае с CMS надо сказать, что сама «CMS» в некотором смысле это готовый сайт, состоящий из заменяемых частей. «Программист» — в данном случае правильно будет назвать его просто специалистом по CMS — должен заменить стандартный шаблон, поставлявшийся с CMS, на оригинальный шаблон. Этот оригинальный шаблон он и должен создать на основе исходного «веб-дизайна». При программировании сайта специалисту назначаются контрольные точки сроков;
  • Оптимизация и размещение материалов сайта [9]. Сайт наполняют контентом — текстами, изображениями, файлами для скачивания и т. д. Файлы сайта размещают на сервере провайдера и производят нужные настройки. На этом этапе сайт пока закрыт для посетителей;
  • Тестирование и внесение корректировок: вид страницы с увеличенными шрифтами, при разных размерах окна браузера, при отсутствии флэш-плеера и многие другие варианты. Также, на этом этапе привлекают к работе дизайнера, чтобы он провёл авторский надзор, а также проводится юзабилити-тестирование [12];
  • Сдача и открытие проекта на публичной площадке, когда заказчик или его доверенное лицо просматривают готовый проект и в случае, если все устраивает, то подписывают документы о сдаче проекта;
  • Обучение навыкам обслуживания и работы в администраторской зоне сайта представителя заказчика.

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

Также в настоящее время набирает популярность новый подход к разработке веб-приложений, называемый Ajax, и технология WebSocket. При использовании Ajax страницы веб-приложения не перезагружаются целиком, а лишь догружают необходимые данные с сервера, что делает их более интерактивными и производительными [13].

А технология WebSocket не требует постоянных запросов от клиента к серверу, а создает двунаправленное соединение, при котором сервер может отправлять данные клиенту без запроса от последнего. Таким образом появляется возможность динамически управлять контентом в режиме реального времени.

WebSocket разработан для воплощения в web-браузерах и web-серверах, но он может быть использован для любого клиентского или серверного приложения. Он делает возможным более тесное взаимодействие между браузером и веб-сайтом, способствуя распространению интерактивного содержимого и созданию приложений реального времени.

К минусам технологии можно отнести её ненадёжность, поскольку в случае использования прозрачных прокси-серверов возможна подмена кеша передаваемых данных с тем, что пользователи вместо реальных данных будут получать версию данных от злоумышленника [14].

Система управления содержимым (англ. Content management systemCMS) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым [11].

Главной задачей CMS является возможность собирать в единое целое и объединять на основе функциональных ролей и задач все разнотипные источники знаний и информации, доступные как внутри организации, так и за ее пределами, а также возможность обеспечения взаимодействия сотрудников, рабочих групп и проектов с созданными ими базами знаний, информацией и данными так, чтобы их легко можно было найти, извлечь и повторно использовать привычным для пользователя образом [15].

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

В общем случае системы управления содержимым делятся на:

  • Систему управления содержимым масштаба предприятия (англ. Enterprise Content Management System);
  • Систему управления веб-содержимым (англ. Web Content Management System).

В силу того, что ECMS имеют глубокую внутреннюю классификацию по предметным областям (HRM, DMS, CRM, ERP и т. д.), термин CMS заместил собой WCMS, превратившись в синоним системы управления сайтами. Подобные CMS позволяют управлять текстовым и графическим наполнением веб-сайта, предоставляя пользователю интерфейс для работы с содержимым сайта, удобные инструменты хранения и публикации информации, автоматизируя процессы размещения информации в базах данных и её выдачи в HTML [16].