Тюлькин М.В.,
Кротова Е.Л., Кротов Л.Н., Капгер И.В.
Пермский
национальный исследовательский политехнический университет, Россия
Постановка проблемы
передачи информации в web-приложениях модели Comet и попытка формализации требований к её решениям
Современные тенденции развития веб-приложений
предполагают создание в web всё более сложных
приложений или перенос уже существующих Desktop-приложений, например,
онлайн-игры, биржевые программы или приложения с функциями социальных сетей.
Все они требуют всё более интенсивного информационного обмена внутри
приложения, между клиентом и сервером. Данный информационный обмен имеет три
наиболее важных особенности, отличающие его от классического взаимодействия в web.
Первой такой особенностью является то, что клиенту необходимо, чтобы информация
поступала к нему автоматически, причем в момент её появления [1, с. 3]. Второй
особенностью является то, что в нем участвует, как правило, «скоропортящаяся»
информация, срок жизни которой редко достигает нескольких минут, а зачастую
ограничен секундами. Третья особенность заключается в том, что клиенту
передается в основном статусная и управляющая информация, что требует
интенсивной пересылки сообщений малого объема. Исходя из данных особенностей,
можно заключить, что возникает необходимость в быстрой доставке информации
представленной большим количеством сообщений малого объема, причем инициатором
передачи информации должен быть сервер.
Очевидно, что классическая модель web-приложений
не может в полной мере реализовать такой информационный обмен, поэтому на смену
ей приходит зарождающаяся модель web-приложений, называемая Comet,
которая позволяет асинхронное взаимодействие между клиентом и сервером.
Основным требованием к Comet приложению является
основополагающее требование ко всем web-приложениям, которое
заключается в том, что от конечного пользователя требуется только наличие
браузера, который выступает в роли клиента. Приложение не должно зависеть от
архитектуры ЭВМ, операционной системы, марки и версии браузера, которые использует
конечный пользователь, а также не должно требоваться наличие дополнительного
программного обеспечения для его корректной работы. Отсюда вытекает следующее
требование: такое приложение должно использовать для взаимодействия между
клиентом и сервером только те средства, которые предоставляет браузер, при этом
оно не должно их ограничивать, чтобы обладать всем функционалом доступным
классическим web-приложениям.
Поскольку только серверная часть имеет
возможность отследить появление новой информации требующей уведомления, то и
оповещение клиента должно лежать на ответственности сервера. Ввиду наличия в
информационном обмене между клиентом и сервером информации с малым сроком
жизни, доставка должна производиться в максимально кратчайшие сроки, по
возможности приближаясь к режиму реального времени.
Одной из проблем, с которой сталкивается
передача информации в приложениях, зачастую являются временные задержки,
обусловленные территориальной удаленностью клиента от сервера. На практике
особенно большие задержки возникают при первом обращении клиента к серверу,
поскольку сервер генерирует ответ большого объема, включающий экземпляр клиента
вместе с внутренними скриптами и необходимыми ресурсами или ссылками на них.
Поэтому клиент начинает работать (фактически становится доступным для действий
конечного пользователя) не в момент, когда получает ответ, а когда произведет
загрузку необходимых ресурсов и выполнит начальные инструкции. За это время на
сервере могут произойти события, требующие уведомления клиента, поэтому Comet
приложение должно позволять отправку информации о данных событиях клиенту, т.е.
хранить историю некоторого объема.
Другая проблема передачи информации заключается
в том, что данные от одной стороны к другой могут идти разными маршрутами и
поэтому приходить в различные моменты времени, тем самым нарушая хронологию
своего появления. Приложение должно исключать такого рода ошибки, т.е.
передавать сообщения от сервера к клиенту в хронологическом порядке. Эта же
проблема может порождать ошибки и искажения в передаваемой информации, тем
самым внося отличия между посланным и пришедшим сообщениями. С увеличением
объема передаваемой информации растет количество ошибок, приложение должно
позволять корректно их обрабатывать.
Подводя итог, стоит отметить, что основную
сложность в реализации создает обстоятельство того, что сервер выступает
инициатором, а фактическое местоположение
клиента в сети для него априорно не известно, ввиду того клиент
находится на ЭВМ конечного пользователя, которая в свою очередь может быть во
внутренней сети, скрытой извне.
Итоговый список требований, который должен
предъявляться к приложениям модели Comet:
1) использование только средств браузера;
2) оповещение клиента сервером о наличии новой
информации;
3) поступление информации к клиенту с
минимальной задержкой по времени между появлением данной информации и
окончанием доставки;
4) соблюдение хронологии появления информации
при её передаче.
Предлагаемые протоколы, решающие задачу передачи
информации в Comet приложении, должны охватывать весь обмен информацией в Comet-приложении
между клиентом и web-сервером, а также Comet-сервером
при его наличии. В основе таких протоколов должен быть транспортный протокол
более низкого уровня, который отвечает за установку соединения и гарантированную
передачу информации. Также такой протокол должен позволять разделить
пересылаемые данные на категории, чтобы исключить передачу клиенту данных той
категории, к которой он не имеет доступа. Дополнительно в целях обеспечения
защиты [2, c. 24] от активных атак, направленных на модификацию и
блокировку, и от пассивных атак, направленных на чтение передаваемой
информации, данный протокол должен предусматривать расширение, реализующее
криптографическую проверку подлинности сторон данного информационного обмена,
позволяющее обнаруживать активные атаки [3, c. 78] и препятствовать
пассивным.
Литература:
1. Crane D., McCarthy P. Comet and
Reverse Ajax: The Next-Generation Ajax 2.0, 2008. – 142 с. - ISBN 978-1-59059-998-3
2.
Столлингс В. Криптография и защита сетей: принципы и практика, 2-е издание,
2001. – 672 стр., с ил.; ISBN 5-8459-0185-5
3.
ЗАЩИТА ИНФОРМАЦИИ В КОМПЬЮТЕРНЫХ СЕТЯХ. ПРАКТИЧЕСКИЙ КУРС: учебное пособие / А.
Н. Андрончик, В. В. Богданов, Н. А. Домуховский, А. С. Коллеров, Н. И.
Синадский, Д. А. Хорьков, М. Ю. Щербаков; под ред. Н.
И. Синадского. Екатеринбург: УГТУ-УПИ, 2008. 248 с.
ISBN 978-5-321-01219-2