Повышение эффективности системы проектного управления за счет технологии WebSocket

Автор: Денис Раслов

Большинство современных систем проектного управления используют для работы модель SaaS (Software as a Service) — бизнес-модель продажи и использования программного обеспечения, при которой поставщик разрабатывает веб-приложение и самостоятельно управляет им, предоставляя заказчику доступ к программному обеспечению через Интернет. При этом данные заказчика хранятся и обрабатываются на удаленном сервере.

По данным информационно-аналитического агентства IDC, рынок программного обеспечения, работающего по модели SaaS, в 2011 году составлял $13,1 млрд., а к 2014 году достигнет $40,5 млрд. (т. е. будет расти на 25,3 % в год); рынок систем проектного управления в 2013 г. будет составлять $4.2 млрд.Среди игроков рынка систем проектного управления на данный момент наибольшим оборотом средств обладают такие, как Basecamp, Podio, JIRA.

Основным параметром системы проектного управления является ее эффективность. Эффективность системы проектного управления определяется эффективностью производства, управляемого с помощью данной системы. Эффективность производства — это соотношение между полученными результатами производства (количеством выполненных проектов), с одной стороны, и затратами ресурсов, с другой стороны. Среди основных ресурсов, используемых в управлении проектами, выделяются: время, трудовые ресурсы, денежные ресурсы, техническая оснастка, материалы, информация и технология.

Повысить эффективность системы проектного управления позволяет внедрение в систему механизма поддержки актуальности данных на веб-странице посредством использования технологии WebSocket для обмена данными между клиентом, которым выступает веб-страница, и удаленным сервером.

Многие из упомянутых выше систем используют в своей работе 2 подхода к получению актуальных данных:

1. Полная перезагрузка веб-страницы, выполняемая пользователем. При таком подходе браузер запрашивает все данные, необходимые для страницы и перерисовывает ее заново.

2. Основанные на протоколе HTTP технологии. При таком подходе веб-страница получает от сервера только часть данных с информацией о происходящих обновлениях, и перерисовывается только часть элементов веб-страницы, связанных с произошедшими обновлениями информации.

В данной статье впервые предлагается использовать в системе управления проектами технологию WebSocket и доказывается, что ее использование повышает эффективность системы.

В частности:

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

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

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

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

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

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

Далее, существуют 2 способа реализации поддержки актуальности данных на веб-странице:

1. Основанные на протоколе HTTP технологии.

Наиболее эффективными среди таких технлогий являются частые опросы (polling) и длинные опросы (long polling).
Рассмотрим указанные способы подробнее.

Частые опросы (polling) — это периодические запросы веб-страницы к серверу на предмет появления новых данных (рис. 1). В качестве реализации частых опросов используются разные подходы: использование объектов класса XMLHTTPRequest, элементы DOM script и пр.

Рис. 1. Технология polling

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

Длинные опросы (long polling) (рис. 2). Схема технологии длинных опросов такова:

а) производится отправка запроса на сервер;
б) соединение не закрывается сервером, пока не появятся новые данные.
в) новые данные отправляются в ответ на запрос;
г) производится отправка следующего запроса на сервер.

Рис. 2. Технология long polling

В качестве реализации длинных опросов также используются такие подходы, как использование объектов класса XMLHTTPRequest, элементы DOM script и пр.
Основной недостаток данного метода заключается в дополнительной нагрузке на сервер за счет большого объема входящего трафика, требующегося для поддержки соединения.

Общий ряд недостатков, который свойственен описанным технологиям поддержания актуальности данных на веб-странице, основанным на протоколе HTTP:

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

2. Лишний входящий и исходящий трафик. При каждом запросе браузер передает множество заголовков, причем заголовки всегда идут в несжатом виде. Для некоторых приложений входящий трафик заголовков может в 10 и более раз превосходить исходящий трафик реальных данных .

2. Технология WebSocket.

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

Преимущества технологии WebSocket по сравнению с технологиями, основанными на протоколе HTTP:

1. Протокол WebSocket — полнодуплексный, что означает, что на его основе просто реализовать и поддерживать двустороннюю связь для сервера и веб-страницы.
2. Отсутствие лишних данных, которые требуется пересылать. Пересылаются только необходимые для обновления данные.
3. Отсутствие задержки между появлением новых данных и их отправкой сервером веб-странице.
4. Минимальный объем траффика, требуемый для поддержания соединения между сервером и веб-страницей.

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

На протяжении исследования использовался браузер Google Chrome 9 и программа Wireshark Network Protocol Analyzer для просмотра информации о количестве переданных пакетов и бит данных.

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

Исследование проводилось в течение 30 минут, данные для обновления странице появлялись каждые 5 минут.

  1. В первой части исследования использовалась технология polling с интервалом в 3 минуты между запросами веб-страницы к серверу.
  2. Во второй части исследования использовалась технология long polling.
  3. В третьей части использовалась технология WebSocket.

Объем траффика, проходящего через сервер, измерялся каждые 6 минут. Полученные результаты можно наблюдать в табл. 2 и на графике 1.

Время, мин

Количество переданных пакетов, polling

Количество переданных пакетов, long polling

Количество переданных пакетов, WebSocket

6

310,1

633,8

14,5

12

2678,4

8049,2

58,5

18

15947,7

36877

105,7

24

39683,1

100722,1

173,2

30

77347,2

215204,5

230,1

Табл. 1. Зависимость количества переданных пакетов от времени работы веб-страницы при использовании разных технологий

График 1. Зависимость количества переданных пакетов от времени работы веб-страницы при использовании разных технологий (1 — WebSocket, 2 — long polling, 3 — polling)

Результаты исследования показывают, что при использовании технологий polling, long polling и WebSocket соответственно наблюдается следующая зависимость трафика, проходящего через сервер, от времени работы веб-страницы, в которой поддерживается актуальность данных:

1. V1 = O(t 3.3),
2. V2 = O(t 3.6),
3. V3 = O(t 1.6),

где V1, V2, V3 — количество пакетов траффика при использовании технологий polling, long polling и WebSocket соответственно, t — время.
Результаты проведенных исследований отчетливо доказывают преимущество в объеме проходящего через сервер траффика при использовании технологии WebSocket по сравнению с использованием технологий polling и long polling при поддерживании актуальности данных на веб-странице.

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

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

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

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

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

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

1) повышения качества планирования с помощью системы;

2) снижения цены на систему.