Пояснительная записка (1231620), страница 3
Текст из файла (страница 3)
Серверное приложение выполняет ряд следующих функций:
– централизованное управление доступом к информации. Каждый пользователь имеет доступ только к определенной информации; на каждом ресурсе возможно сохранении только тех данных, которые определены политикой безопасности; имеется возможность протоколирования любых событий доступа к информационным ресурсам; вся хранимая информация четко упорядочена;
– обмен информацией с web-виджетом. Все данные поступающие от виджета обрабатываются на серверном приложении. Именно приложение определяет, кому необходимо передать информацию от клиента. Сохранение всех диалогов осуществляется именно при помощи того приложения;
– обеспечение постоянного доступа к системе онлайн-консультанта. Серверное приложение постоянно находиться в запущенном состоянии и никогда не выключается (за исключением случаем с профилактикой серверной системы);
– реализация многопользовательского режима. Серверное приложение позволяет подключить в идеале бесконечное число операторов и клиентов между собой. Реальное число ограничено только пропускной способностью системы и вычислительными способностями серверного оборудования.
2.5 Технологии обмена запросами между модулями системы
Проведя анализ программных продуктов можно сделать вывод о том, какие способы соединения в них используются. Выделяются следующие методы:
– технология Polling [14] или опрос сервера о новых данных. Если данные есть, они отправятся клиенту (таким способом работает Ajax), и соединение закрывается. Клиент опрашивает сервер о новых данных каждые несколько секунд, и сервер каждые несколько секунд отвечает ему, даже если данных нет;
– технология Long Polling (долгий опрос) [15]. Это альтернатива первой технологии, только вместо возврата пустого ответа клиенту, когда данных нет, сервер держит соединение открытым. Когда у сервера появляются новые данные для клиента, он передаёт их клиенту и закрывает соединение. Но если приходит много данных за короткий промежуток времени, то такая система работает как Polling;
– технология «бесконечного» iframe [16]. Этот метод основан на особенностях загрузки HTML документов. Разработчик создается невидимый iframe, который читает «бесконечный» файл. При наступлении события, добавляется новая строка в файл. Такая строка может быть кодом HTML, JQuary или JavaScript, который исполниться, при получении на клиенте;
-
технология AJAX [17] (Asynchronous Javascript And Xml). Ajax по существу помещает технологию JavaScript и объект XMLHttpRequest между Web-формой и сервером. Когда пользователи заполняют формы, данные передаются в JavaScript-код, а не прямо на сервер. Вместо этого JavaScript-код собирает данные формы и передает запрос на сервер. Другими словами, код JavaScript передает запрос в фоновом режиме. Более того, запрос передается асинхронно, а это означает, что JavaScript-код (и пользователь) не ожидают ответа сервера. То есть, пользователи могут продолжать вводить данные, прокручивать страницу и работать с приложением. Затем сервер передает данные обратно в JavaScript-код, который решает, что делать с данными.
Подавляющее большинство приложений онлайн-консультантов работают по технологиям «бесконечного» iframe и AJAX.
Помимо основных технологий существует малораспространенная технология Flash [18] сокетов. Это довольно простой метод, при котором во время загрузки страницы, создается сокет. Flash сокетов имеет два канала передачи от сервера и к серверу. При наступлении какого-либо события, сервер посылает команду клиенту на слушающий сокет, на определенный порт, заданный программно. Такая технология очень удобна, но практически не используется, так как современный браузеры постепенно отказываются от технологии Flash и прекращают её поддержку, по причине того что данная платформа очень сильно нагружает центральный процессор клиентских вычислительных машин.
Анализ вышеописанных технологий, которые используют приложения онлайн-консультанта, показал, что они имеют существенные недостатки.
Один из них – использование протокола HTTP [19] для отправки сообщений на сервер и получение ответа. При этом каждый переданный пакет, дополняется достаточно большим количеством заголовков, которые описывают, где этот пакет движется, откуда пришел пакет, информацию о браузере и прочее. Полный список заголовком Http можно увидеть в таблице 1.
Таблица 1– Заголовки HTTP соединения
Заголовок | Назначение |
Accept | Список допустимых форматов ресурса |
Accept-Charset | Перечень поддерживаемых кодировок |
Accept-Encoding | Перечень поддерживаемых способов кодирования содержимого сущности при передаче |
Content-Language | Один или несколько естественных языков содержимого сущности |
Content-Length | Размер содержимого сущности в октетах |
Content-Location | Альтернативное расположение содержимого сущности |
Content-MD5 | Base64 MD5-хэша сущности для проверки целостно- |
Продолжение таблицы 1
Заголовок | Назначение |
сти | |
Content-Range | Байтовые диапазоны передаваемой сущности если возвращается фрагмент |
Content-Type | Формат и способ представления сущности |
Content-Version | Информация о текущей версии сущности |
Date | Дата генерации отклика |
Derived-From | Информация о текущей версии сущности |
ETag | Тег версии сущности, используемый при кэшировании |
Expect | Указывает серверу что клиент ожидает от него дополнительного действия |
Expires | Дата предполагаемого истечения срока актуальности сущности |
From | Адрес электронной почты ответственного лица со стороны клиента |
Host | Доменное имя и порт хоста запрашиваемого ресурса |
If-Match | Список тегов версий сущности |
If-Modified-Since | Выполнять метод если сущность изменилась с указанного момента |
If-None-Match | Список тегов версий сущности |
If-Range | Список тегов версий сущности или дата для определённого фрагмента сущности |
If-Unmodified-Since | Выполнять метод если сущность не изменилась с указанной даты |
Last-Modified | Дата последней модификации сущности |
Link | Указывает на логически связный с сущностью ресурс аналогично тегу <LINK> в HTML |
Location | URI по которому клиенту следует перейти или URI созданного ресурса |
Max-Forwards | Максимально допустимое количество переходов через прокси |
MIME-Version | Версия протокола MIME |
Pragma | Особенные опции выполнения операции |
Proxy-Authenticate | Параметры аутентификации на прокси-сервере |
Proxy-Authorization | Информация для авторизации на прокси-сервере |
Public | Список доступных методов аналогично Allow, но для всего сервера |
Окончание таблицы 1
Заголовок | Назначение |
Range | Байтовые диапазоны для запроса фрагментов ресурса |
Referer | URI ресурса, после которого клиент сделал текущий запрос |
Retry-After | Дата или время в секундах после которого можно повторить запрос |
Server | Список названий и версий веб-сервера и его компонентов с комментариями |
Title | Заголовок сущности |
TE | Список расширенных способов кодирования при передаче |
Trailer | Список полей, имеющих отношение к кодированию сообщения при передаче |
Transfer-Encoding | Список способов кодирования, которые были применены к сообщению для передачи |
Upgrade | Список предлагаемых клиентом протоколов |
User-Agent | Список названий и версий клиента и его компонентов с комментариями |
Vary | Список описывающих ресурс полей из запроса, которые были приняты во внимание |
Via | Список версий протокола, названий и версий прокси-серверов, через которых прошло сообщение |
Warning | Код, агент, сообщение и дата, если возникла критическая ситуация |
WWW-Authenticate | Параметры аутентификации для выполнения метода к указанному ресурсу |
Пересылка заголовком каждый раз увеличивает трафик, что несет накладные расходы и нагрузку на передающую сеть. Один стандартный запрос-ответ содержит информации заголовков около 747 байт. А две пересылки уже около 1,5 КБ. С учетом того, что сервер опрашивается на наличие данных несколько раз в секунду, то за минимальный промежуток времени, который клиент находится на сайте, а это приблизительно около 5 минут, сервер обработает порядка 657 КБ данных. При этом если учесть что таких пользователей сайта может быть и 100, то данная цифра увеличивается до 64 Мб.
Указанная цифра кажется не такой уж и большой, но если предположить, что все 100 пользователей так и не воспользовались системой онлайн-консультант, то можно прийти к выводу о том, что:
– сервер обрабатывает данные, которые не несут никакой полезной нагрузки для компании;
– увеличивается нагрузка на каналы передачи данных. Особенно это актуально для регионов, местностей и населенных пунктов с низким развитием сетевых технологий.
Возвращаясь к анализу технологий обмена данными, также можно выделить и второй недостаток использованных систем. Этой отрицательной стороной является, то, что технологии не являются двунаправленными полнодуплексными системами, являясь полудуплесами.
Полудуплекс – режим, при котором передача ведётся по одному каналу связи в разных направлениях, но с разделением по времени, то есть в любой момент времени пересылка информации ведётся только в одном направлении, либо от приемника к передатчику, либо от передатчика к приёмнику. При этом скорость обмена информацией по каналам связи в таком режиме зависит от пропускной способности среды передачи данных.