Модель адаптационной предварительной загрузки данных в WEB-приложениях
Превентивная загрузка данных клиенту. Асинхронное взаимодействие клиента и сервера. Недостаток схемы предварительной загрузки данных. Адаптационный механизм предварительной загрузки. Структурная схема взаимодействия компонентов работы сетевого приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 22.08.2020 |
Размер файла | 37,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Модель адаптационной предварительной загрузки данных в WEB-приложениях
Еременко В.Т.,
Кравцова Н.А.,
Потаракин П.И.,
Агарков Д.В.
Введение
Модель адаптационной предварительной загрузки призвана минимизировать время отклика удаленного ресурса при его запросе. Актуальность данной задачи очевидна. Многие сетевые приложения разработаны и продолжают разрабатываться как интерактивные среды по своей функциональной сути. Но в силу физических ограничений сети и принципов работы протокола HTTP они не обеспечивают требуемой непрерывности работы пользователя. Работа в web-интерфейсе представляет собой дискретный процесс перемещения по страницам. Задержка между запросом и откликом становится заметной, отвлекает от решаемой задачи пользователя и заставляет переключить внимание на особенности самого интерфейса.
Асинхронное взаимодействие клиента и сервера
Одним из решений проблемы задержки отклика является организация асинхронного клиент-серверного взаимодействия.
Асинхронное взаимодействие означает, что связь "запрос клиента - ответ сервера" разрывается. Клиент не прекращает свою работу с приложением пока производится отсылка запросов по сети серверу и их обработка. Послав запрос серверу, клиент не обязан дожидаться ответа сервера, прежде чем пошлёт второй запрос.
Таким образом, данная схема позволяет посылать запросы на удалённый ресурс не зависимо от того, что происходит в данный момент на клиентской стороне. Далеко не каждый запрос к серверу является результатом действия пользователя. Некоторые запросы могут быть сгенерированы клиентским модулем самостоятельно. Этот факт позволяет применить технологию превентивной загрузки, которая успешно используется в системном программировании и организации кэш-блоков любого уровня.
Превентивная загрузка данных клиенту
Значительные промежутки времени между переходами от одних ресурсов к другим позволяют использовать это время для загрузки ресурсов, которые вероятно могут быть запрошены в следующий момент. Таким образом, на клиентской стороне к моменту следующего запроса накапливается список потенциально нужных ресурсов. При следующем запросе от пользователя клиентский модуль, прежде чем послать запрос на сервер, ищет запрошенный ресурс среди полученных ресурсов посредством предварительной загрузки и только в случае неудачи направляет запрос на сервер.
Эффективность подобной загрузки данных напрямую зависит от степени "угадывания" тех данных, которые понадобятся пользователю. Если клиенту страница, загруженная превентивно, потребуется в какой-либо из следующих моментов - мы в выигрыше, поскольку загрузили её заранее и снизили время ожидания пользователя. Если она не потребовалась, но потребовалась другая, которую мы не загрузили, мы не в выигрыше, но и не в проигрыше, поскольку одним оператором любую из ошибочно превентивно загруженных страниц можно освободить и загрузить на её место нужную.
В web-приложениях запросы к серверу осуществляются по мере перехода к новому материалу, что даёт значительные промежутки времени между запросами, сопоставимые с временем загрузки данных. Это даёт возможность использовать время "бездействия" системы для попытки загрузить потенциально требуемые данные.
Недостаток схемы предварительной загрузки данных
Недостаток данной схемы работы web-приложения в отсутствии вероятностной оценки поступления запроса от пользователя на тот или иной ресурс, загруженный предварительно клиенту. То есть нет возможности сказать заранее с какой вероятностью следующей будет загружена именно эта страница или часть страницы. Этот недостаток становится существенным, если список возможных ожидаемых запросов пользователя велик. Загружая страницы по предварительным запросам с начала этого списка, есть шанс так и не загрузить предварительно страницу, которая потребуется пользователю следующей. Модуль предварительной загрузки, начав с начала списка, может не успеть загрузить ресурс, потребующийся следующим. Данная ситуация будет повторяться, если запрос на наиболее вероятный ресурс будет находиться, например, в второй половине списка ресурсов на предварительную загрузку.
Идеальным решением было бы иметь представление о наиболее вероятных запросах пользователя из списка возможных его запросов после посещения данного ресурса.
Данное представление можно получить, имея статистическую информацию о посещаемости всех доступных ссылок с данного ресурса.
Таким образом, необходимо существенно модифицировать модель предварительной загрузки, включив в неё адаптирующий механизм, основывающийся на вероятностном подходе.
Адаптационный механизм предварительной загрузки
В данной модели при загрузке страницы поступают запросы на предварительную загрузку не всех ссылок, а только наиболее часто запрашиваемых с данной страницы. Частота переходов по ссылке определяется на основе статистических данных, рассчитываемых на стороне сервера и обновляемых при каждом запросе страницы. Поскольку статистическая информация обновляется постоянно на протяжении всех сеансов работы с ресурсами узла, а с увеличением числа обращений она уточняется, можно сказать, что модуль предварительной загрузки адаптируется к данному сетевому приложению. Таким образом, чем дольше используется сетевое приложение, тем точнее определятся наиболее часто требуемые ресурсы данного приложения, и тем быстрее они будут загружены клиенту. Это, в свою очередь, увеличивает вероятность "угадывания" ожидаемых запросов. сервер загрузка сетевой
Запрошенная страница с обновлённой статистической информацией передаётся по запросу клиенту. Клиентское приложение анализирует статистические данные о потенциальных будущих запросах и организует предварительную загрузку ожидаемых ресурсов.
Структурная схема взаимодействия компонентов работы сетевого приложения
Модель адаптационной предварительной загрузки данных существенно расширяет функции как клиента, так и web-сервера. Поэтому встает проблема интегрирования данной модели в существующую схему клиент-серверного взаимодействия. Одним из решений данной проблемы является создание нового клиентского приложения (браузера) и web-сервера. Однако, во-первых, это решение сопряжено с необходимостью решения круга дополнительных задач. Во-вторых, описываемая в статье модель адаптационной предварительной загрузки эффективна для определенного класса задач. Таким образом, необходима возможность переключения режима работы с использования адаптационной схемы на стандартную схему взаимодействия браузера с web-сервером и обратно при смене класса задач.
Избежать вышеуказанных трудностей позволяет создание двух модулей, работающих на стороне клиента и на стороне сервера. Данные модули должны быть реализованы независимо, а не являться интегрированными частями браузера и web-сервера. Структурная схема взаимодействия показана на рисунке 1.
Рисунок 1 - Структурная схема взаимодействия компонентов работы web_приложения
Ниже перечислены функции адаптационных модулей клиента и сервера.
Функциями клиентского адаптационного модуля являются:
· Прием страницы от сервера.
· Отделение статистических данных по запрошенному ресурсу от заголовка ответа и их анализ.
· Передача полученного ресурса браузеру.
· Организация серии запросов наиболее часто требуемых ресурсов после завершения работы с текущим ресурсом. В случае работы по протоколу HTTP и использования модуля загрузки страниц частями посылается серия запросов на наиболее популярные запросы частей страниц.
· Хранение сгенерированных (в случае динамической генерации страниц) предварительно загруженных страниц или их частей.
· Поиск требуемого ресурса в списке загрузок при обращении браузера.
· Передача найденного ресурса браузеру без обращения на сервер.
Функциями web-серверного адаптационного модуля являются:
· Получение запроса на ресурс от клиента.
· Обновление статистической информации для ресурса, ссылающегося на данный ресурс.
· Извлечение статистической информации для данного ресурса и расположение ее в заголовке ответа.
· Передача запрошенного ресурса браузеру с заголовком, содержащим статистическую информацию.
На основании перечисленных выше функций можно утверждать, что данные модули выполняют роль промежуточных серверов (proxy-серверов).
Алгоритм работы промежуточного сервера на стороне web-сервера представлен на рисунке 2.
Рисунок 2 - Алгоритм работы промежуточного сервера на стороне web-сервера в работе адаптационного web-приложения
Алгоритм работы промежуточного сервера на стороне клиента представлен на рисунке 3.
Рисунок 3 - Алгоритм работы промежуточного сервера на стороне клиента в работе адаптационного web-приложения
Из блок-схемы алгоритма можно видеть, что условием окончания его работы является выполнение предварительной загрузки ресурсов на глубину в дереве ссылок больше 2. Другими словами, как только завершится загрузка ресурсов, на которые ссылается запрошенная пользователем страница, алгоритм закончит работу. В случае поступления пользовательского запроса на новый ресурс раньше, чем модуль предварительной загрузки успеет загрузить все ссылки списка, алгоритм прерывает свою работу и запускается заново. Данная возможность прерываться по запросу пользователя не отражена в блок-схеме из-за своей очевидности и ради улучшения читаемости схемы.
В работе сетевых приложений, не требующих частой смены страниц, то есть таких, где время ожидания запроса пользователя в среднем больше времени загрузки ресурсов, на которые ссылается запрошенный ресурс, есть возможность увеличить глубину анализа ссылок с ресурсов.
При внедрении данного подхода в традиционную схему работы web-приложения на поверхность выходит недостаток подхода, а именно увеличение объёма пересылаемой информации клиенту. Осуществляется загрузка клиенту не только запрошенных им страниц, но и неиспользуемых страниц в случае неудачи при попытке предположить требуемый узел.
Однако этот недостаток исчезает, если использовать не традиционный режим работы web-приложений, а асинхронную частичную загрузку страницы.
Заключение
В сетевом приложении основная доля временных задержек приходится на ожидание ответа сервера. Для минимизации времени отклика используется механизм предварительной загрузки страниц клиенту, при котором выдвигается предположение о необходимости пользователю определённой страницы в будущем. Данный метод успешно применялся в системном программировании при работе настольных приложений. Однако в случае web-приложений степень эффективности возрастает в несколько раз. Но данный метод имеет один существенный недостаток. Он заключается в отсутствии вероятностной оценки поступления запроса от пользователя на тот или иной ресурс, загруженный предварительно клиенту. Нет возможности сказать заранее, с какой вероятностью следующей будет загружена именно эта страница или часть страницы. Этот недостаток становится существенным, если список возможных ожидаемых запросов пользователя велик. Модуль предварительной загрузки, начав с начала списка, может не успеть загрузить ресурс, потребующийся следующим.
Идеальным решением было бы иметь представление о наиболее вероятных запросах пользователя из списка возможных его запросов после посещения данного ресурса.
Данное представление можно получить, имея статистическую информацию о посещаемости всех доступных ссылок с данного ресурса.
В данной статье предлагается модифицировать модель предварительной загрузки, включив в неё адаптирующий механизм, основывающийся на вероятностном подходе.
В модифицированной модели с вероятностным подходом при загрузке страницы поступают запросы на предварительную загрузку не всех ссылок, а только наиболее часто запрашиваемых с данной страницы. При совместной организации асинхронной загрузки данных клиенту с технологией превентивной загрузки интерфейс пользователя приближается к интерактивному интерфейсу локального приложения. А общее время работы сокращается за счёт исключения задержек, связанных с пересылкой по сети запроса к серверу и ожидания ответа.
Литература
1. Гудман, С. Введение в разработку и анализ алгоритмов [Текст]/ С. Гудман, С. Хидетниеми - М.: Мир, 1981. - 368 с.
2. Зулис, В.Я. Проектирование перспективных вариантов структур сложных технических систем. [Текст] / В.Я. Зулис, Я.К Тентерис. / Перспективы развития вычислительных систем (применение идей адаптации и эволюции) / II Всесоюзный семинар. - Рига, Риж. политехн. ин-т. 1985 г. - ст. 77-80.
3. Шварц, М. Сети связи: протоколы, моделирование и анализ. [Текст]: Часть 1.[ пер. с англ] - М.: Наука. Гл. ред. физ.-мат. лит., 1992. - 272 с.
4. Якубайтис, Э.А. Архитектура вычислительных сетей. [Текст] / Э.А. Якубайтис - М.: Статистика, 1980.
Размещено на Allbest.ru
...Подобные документы
Структура данных с указанием типов. Общая структурная схема программы. Алгоритмы сортировки вставками. Назначение make-файла. Функции управления программой; перемещения и корректировки введенных данных и их удаления справочника, загрузки данных из файла.
курсовая работа [1,3 M], добавлен 12.01.2016Организация бездисковой загрузки с помощью iSCSI-таргета. Использование UML-диаграммы для представления работы бездисковой загрузки. Создание и настройка образа, особенности его раздачи через сеть. Описание процесса загрузки. Прием стандартного образа.
курсовая работа [2,6 M], добавлен 08.12.2016Обоснование выбора средств разработки. Алгоритм загрузки изображения на сервер. Модуль авторизации в административной панели сайта. Хранение данных в базе данных. Работа с локальными и удалёнными файлами. Тестирование работы программного средства.
курсовая работа [1,3 M], добавлен 18.04.2018Рассмотрение характеристик менеджеров загрузки. Описание Download Accelerator Plus, Download Master, FlashGet, GetRight, ReGet, Go!Zilla. Сравнительная характеристика менеджеров загрузки Windows. Программы для операционных систем Unix, Linux и Mac.
реферат [2,4 M], добавлен 06.09.2014Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.
курсовая работа [2,1 M], добавлен 16.05.2015Архитектура и функции СУБД. Инфологическая модель данных "Сущность-связь". Ограничения целостности. Характеристика связей и язык моделирования. Манипулирование реляционными данными. Написание сервера на Java.3 и приложения-клиента на ActoinScript 3.0.
курсовая работа [935,3 K], добавлен 09.07.2013Описание таблиц и полей данных. Организация связей между таблицами. Начало работы с программой. Алгоритмы добавления данных. Основные формы программы. Главные этапы загрузки данных. Использование VBA для решения инженерных и экономических задач.
курсовая работа [792,0 K], добавлен 22.01.2015Определение многомерной модели данных для удовлетворения основных информационных потребностей предприятия. Экстракция, загрузка и перенос данных из различных источников данных. Разработка собственных ETL–систем. Оптимизация работы хранилища данных.
презентация [9,1 M], добавлен 25.09.2013Перспективные направления анализа данных: анализ текстовой информации, интеллектуальный анализ данных. Анализ структурированной информации, хранящейся в базах данных. Процесс анализа текстовых документов. Особенности предварительной обработки данных.
реферат [443,2 K], добавлен 13.02.2014Выбор инструментальной среды для разработки базы данных. Подсистема сбора, обработки и загрузки данных. Укрупненный алгоритм разрабатываемой информационной системы. Формирование области запросов базы, интерфейс ввода и редактирования входных данных.
курсовая работа [2,2 M], добавлен 25.12.2012Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.
курсовая работа [183,6 K], добавлен 06.10.2010Создание базы данных при помощи СУБД, разработка собственного приложения. Информационно-логическая модель рекламного агентства. Структура реляционной базы данных в Access. Заполнение таблиц информацией. Структура приложения и взаимодействия форм.
курсовая работа [12,6 M], добавлен 17.06.2014Инфологическая модель предметной области "Курьерская служба". Разработка интерфейса пользователя. Функциональное тестирование приложения "Грузоперевозки", его стресс-тестирование. Порядок загрузки данных, проверка работоспособности информационной системы.
дипломная работа [6,6 M], добавлен 10.10.2016Анализ предметной области. Предположительный набор необходимых функций. Даталогическое и инфологическое проектирование. Реляционная модель данных. Создание запросов и атрибутов. Физическая модель данных. Разработка приложения для работы с базой данных.
курсовая работа [720,8 K], добавлен 26.04.2015Характеристика транспортного и сетевого протокола TCP/IP. Уровни его стека (физический, канальный, сетевой, транспортный, прикладной). Распределение протоколов по ним. Скорость загрузки Web-страницы, факторы, влияющие на нее и возможности ее ускорения.
контрольная работа [15,9 K], добавлен 06.06.2011Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016Сущность и характеристика типов моделей данных: иерархическая, сетевая и реляционная. Базовые понятия реляционной модели данных. Атрибуты, схема отношения базы данных. Условия целостности данных. Связи между таблицами. Общие представления о модели данных.
курсовая работа [36,1 K], добавлен 29.01.2011Изучение сущности, принципа работы и основного назначения удаленных баз данных. Модель удаленного управления данными (модель файлового сервера). Типы параллелизма. Триггер - механизм отслеживания специальных событий, которые связаны с состоянием БД.
контрольная работа [19,8 K], добавлен 24.02.2011Обзор технологической платформы для разработки клиентского веб-интерфейса. Выбор платформы базы данных, языка разработки, фреймворка на стороне сервера и клиента. Создание схемы данных MySQL. Работа пользователя и оператора с программным продуктом.
курсовая работа [4,1 M], добавлен 17.07.2012Преимущества и недостатки облачного хранилища данных. Установление приложения на компьютер, устройство Android, iOS. Создание аккаунта. Начало работы с Google диском. Способы загрузки файлов на него. Предоставление доступа к файлам другим пользователям.
курсовая работа [1,3 M], добавлен 31.05.2016