Тюлькин М.В., Кротова Е.Л., Кротов Л.Н., Капгер И.В.

Пермский национальный исследовательский политехнический университет, Россия

Постановка проблемы передачи информации в 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