Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером



Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером
Система и способ использования упакованных сжатых буферов для улучшенной передачи данных между клиентом и сервером

Владельцы патента RU 2365049:

МАЙКРОСОФТ КОРПОРЕЙШН (US)

Изобретение относится к компьютерным системам, в частности к способам передачи данных между клиентскими и серверными приложениями, такими как приложения электронной почты. Техническим результатом является повышение рабочих характеристик указанных соединений. Способ группирования многочисленных наборов ответов на сервере и посылки ответов клиенту одной группой (т.е. «сформированной цепочкой» или «упакованной» группой). Каждый набор ответов может быть изменен и/или сжат. Если клиент принимает группу, то каждый набор обрабатывается отдельно. Клиент может быть выполнен с возможностью передачи размера несжатого набора ответов, которыми он может оперировать. Сервер может использовать эту информацию для создания наборов ответов разрешенного размера и может сжимать или не сжимать наборы ответов. Сервер может формировать цепочки наборов ответов и может продолжать формирование цепочки наборов, сжатых или не сжатых, до тех пор, пока буфер сервера не будет заполнен или не будет близок к заполнению. Сформированный цепочкой набор ответов затем может быть послан клиенту и может обрабатывать каждый набор ответов по отдельности. 7 н. и 16 з.п. ф-лы, 11 ил.

 

Ссылка на родственные заявки

Настоящая заявка требует установления приоритета по дате подачи предварительной заявки на патент США с порядковым номером 60/428153, поданной 20 ноября 2002 г. и включенной здесь в качестве ссылки.

Область техники, к которой относится изобретение

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

Предшествующий уровень техники

Электронная почта стала важным способом передачи данных. Системы электронной почты обычно включают в себя серверный компонент (например, Microsoft Exchange Server) и клиентский компонент (например, Microsoft Outlook или Microsoft Outlook Express). Этими компонентами обычно являются программные приложения, которые конфигурируются для исполнения на вычислительных устройствах (например, серверах, персональных компьютерах (ПК), переносных компьютерах и персональных цифровых помощниках (ПЦП)).

Некоторые типы серверов электронной почты конфигурируются так, чтобы обеспечить доступ к электронной почте через клиентский браузер Интернет (например, Microsoft Internet Explorer), а не через выделенного клиента электронной почты. В этих системах браузер взаимодействует с сервером электронной почты, и любые функции, необходимые для выполнения на клиентской системе, выполняются браузером (например, посредством загрузки языка сценариев JavaScript) или в результате использования Active Server Pages (активных серверных страниц).

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

Некоторые известные системы основываются на одном буфере, расположенном на каждом клиенте и на сервере, служащем в качестве области хранения данных для команд и/или данных, которые ожидают посылки вместе. В одном примере такой системы клиент использует буфер для хранения команд и данных, которые должны быть посланы на сервер. Как только буфер заполнен или близок к заполнению, то клиент посылает содержимое буфера на сервер. Сервер запоминает принятое содержимое в буфере и начинает синтаксический разбор и выполнение команд. Может быть использован указатель для обозначения следующего запроса, подлежащего обслуживанию.

Сервер собирает свои ответы в своем буфере и обеспечивает то, что содержимое его буфера не превышает размера буфера клиента. Если сервер не может завершить никакой запрос в своем буфере (например, так как нет достаточного пространства в буфере), то сервер записывает незавершенные запросы в буфер и посылает их обратно клиенту с завершенными ответами.

В некоторых системах клиент может быть сконфигурирован так, что указывает, сколько памяти клиент собирается назначить своему буферу. Например, клиент может указать серверу, что только 32 кбайта будет выделено его буферу. В ответ сервер обеспечивает то, что он не будет посылать клиенту более 32 кбайт за один раз.

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

Краткое изложение сущности изобретения

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

Раскрыт способ запроса ответов. В одном варианте выполнения изобретения способ оптимизируется для использования между клиентом электронной почты и сервером электронной почты. Способ может включать в себя назначение первого буфера на клиенте и затем использование буфера для накопления одного или нескольких запросов для сервера. Клиент также может быть сконфигурирован для присоединения заголовка к содержимому первого буфера, и заголовок может быть сконфигурирован так, что он включает в себя индикатор, должен ли быть сжат или нет ответ на запросы сервера до того, как они будут возвращены клиенту.

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

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

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

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

Посредством сжатия многочисленных наборов ответов на сервере и посылки их в одной группе (пакете) (т.е. «сформированной цепочкой» или «упакованной» группой) имеется возможность улучшения рабочих характеристик при передаче между клиентом и сервером. Хотя известные из уровня техники системы использовали сжатие для уменьшения общего количества байтов, пересылаемых между клиентом и сервером, посредством упаковки буферов перед их посылкой, большее количество данных может быть добавлено к буферу и послано в каждом сеансе, тем самым снижая общее количество двойных прохождений для сетей с высоким запаздыванием.

Хотя этот метод может иметь широкую применимость, он особенно хорошо подходит для операций между клиентами электронной почты и серверами электронной почты. Например, способ может быть использован с Microsoft Outlook для операции быстрой пересылки, такой как CopyMessages. Эта функция копирует заголовки сообщения с сервера к клиенту.

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

Краткое описание чертежей

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

На фиг.2 изображена блок-схема архитектуры компьютера, в который может быть использовано настоящее изобретение.

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

На фиг.4А изображено представление двухэтапного процесса режима быстрой пересылки в соответствии с одним аспектом настоящего изобретения.

На фиг.4В изображено представление одноэтапного процесса режима быстрой пересылки в соответствии с одним аспектом настоящего изобретения.

На фиг.5 изображена блок-схема, представляющая запрос в соответствии с одним вариантом выполнения настоящего изобретения.

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

На фиг.7 изображено представление сжатия сервером электронной почты в соответствии с одним вариантом выполнения настоящего изобретения.

На фиг.8 изображено представление сжатия и формирования цепочки ответов сервером электронной почты в соответствии с одним вариантом выполнения настоящего изобретения.

На фиг.9 изображено представление содержимого буфера ответов сервера электронной почты в соответствии с одним вариантом выполнения настоящего изобретения.

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

На фиг.11 изображена схема последовательности операций, представляющая, в основном, этапы, заставляющие сервер добавлять дополнительные ответы в буфер ответов в соответствии с одним вариантом выполнения настоящего изобретения.

Подробное описание

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

Перед рассмотрением описания различных вариантов выполнения изобретения предусмотрено описание компьютера и сетевой среды, в которой могут быть осуществлены различные варианты выполнения изобретения. Хотя это не требуется, настоящее изобретение может быть осуществлено посредством программ, которые выполняются компьютером. Такие программы, в основном, включают в себя подпрограммы, объекты, компоненты, структуры данных и т.п., которые выполняют определенные задачи или реализуют конкретные абстрактные типы данных. Термин «программа» в том виде, в каком он здесь используется, может подразумевать один программный модуль или многочисленные программные модули, действующие совместно. Термин «компьютер» в том виде, в каком он здесь используется, включает в себя любое устройство, которое электронным образом выполняет одну или несколько программ, такое как персональные компьютеры (ПК), ручные устройства, мультипроцессорные системы, микропроцессорная программируемая бытовая электроника, сетевые ПК, миникомпьютеры, большие ЭВМ, бытовые приборы, имеющие микропроцессор или микроконтроллер, маршрутизаторы, шлюзы, концентраторы и т.д. Изобретение также может быть использовано в распределенных вычислительных средах, в которых задачи выполняются удаленными устройствами обработки, которые соединены посредством сети передачи данных. В распределенной вычислительной среде программы могут быть расположены как на локальных, так и на удаленных запоминающих устройствах.

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

На фиг.2 показан пример базовой конфигурации компьютера 10, на котором может быть осуществлено все или части описанного здесь изобретения. В своей базовой конфигурации компьютер 10 обычно включает в себя по меньшей мере один обрабатывающий блок (процессор) 14 и память 16. Обрабатывающий блок 14 исполняет команды для выполнения задач в соответствии с различными вариантами выполнения изобретения. При выполнении таких задач обрабатывающий блок 14 может передавать электронные сигналы на другие части компьютера 10 и на устройства вне компьютера 10, чтобы получить некоторый результат. В зависимости от точной конфигурации и типа компьютера 10 память 16 может быть энергозависимой (такой как оперативное запоминающее устройство (ОЗУ)), энергонезависимой (такой как постоянное запоминающее устройство (ПЗУ) или флэш-память) или некоторой комбинацией этих двух. Эта наиболее базовая конфигурация изображена на фиг.2 пунктирной линией 18.

Компьютер 10 может иметь дополнительные признаки и/или функциональные возможности. Например, компьютер 10 также может включать в себя дополнительное запоминающее устройство (съемное запоминающее устройство 20 и/или несъемное запоминающее устройство 22), включающее в себя, но не ограничиваясь ими, магнитные или оптические диски или ленту. Запоминающая среда компьютера включает в себя энергозависимую и энергонезависимую, съемную и несъемную среду, реализованную любым способом или по любой технологии для хранения информации, включая исполняемые компьютером команды, структуры данных, программные модули или другие данные. Запоминающая среда компьютера включает в себя, но не ограничивается ими, ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ (ЭСПЗУ), флэш-память, компакт-диск, цифровой универсальный диск (ЦУД) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для хранения требуемой информации и к которой может быть получен доступ посредством компьютера 10. Любая такая запоминающая среда компьютера может быть частью компьютера 10.

Компьютер 10, предпочтительно, также содержит соединение(я) 24 передачи данных, которое позволяет устройству осуществлять передачу данных на другие устройства. Соединение передачи данных (например, одно из соединений 24 передачи данных) является примером среды передачи данных. Среда передачи данных обычно заключает в себе считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущий сигнал или другой транспортный механизм, и включает в себя любую среду доставки информации. В качестве примера, а не ограничения, термин «среда передачи данных» включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Термин «считываемая компьютером среда» в том виде, в каком он используется здесь, включает в себя как запоминающую среду компьютера, так и среду передачи данных.

Компьютер 10 также может иметь устройства 26 ввода, такие как клавиатура, мышь, перо, устройство речевого ввода, устройство сенсорного ввода и т.д. Также могут быть включены устройства 28 вывода, такие как дисплей 30, громкоговорители, принтер и т.д. Все эти устройства общеизвестны в технике, и нет необходимости здесь их подробно описывать.

Упаковка буфера

На фиг.3 изображен один пример сети 100 электронной почты, в которой может быть осуществлено настоящее изобретение. Сеть 100 электронной почты согласно настоящему изобретению использует обмен запросами и ответами для передачи запросов и данных между клиентскими и серверными компонентами в сети 100 электронной почты. На практике на рабочие характеристики протокола оказывает влияние лежащий в основе транспортный механизм сети передачи данных, используемый для осуществления передачи данных между клиентами и серверами в сети электронной почты, такой как сеть 100 электронной почты. Например, в сети электронной почты, которая использует удаленные вызовы процедуры (УВП, RPC) в качестве лежащего в основе транспортного механизма сети передачи данных, может быть значительно более эффективным выполнение одного удаленного вызова процедуры большего размера (например, 32 кбайта), чем выполнение нескольких удаленных вызовов процедуры меньшего размера (например, 2 кбайта). Одним известным путем улучшения рабочих характеристик такой сети электронной почты является буферизация многочисленных запросов и/или ответов для передачи в одном удаленном вызове процедуры.

В качестве примера на фиг.3 показан обмен запросом и ответом между клиентом 102 электронной почты и сервером 106 электронной почты, один или оба из которых могут быть сконфигурированы, например, в качестве компьютеров 10. В этом примере клиент 102 электронной почты назначает пересылочный буфер 104 (буфер пересылки) и заполняет его запросами, которыми могут быть один или несколько подзапросов или удаленных операций (УОП), подлежащих пересылке на сервер 106 электронной почты. Когда пересылочный буфер 104 будет заполнен (или почти заполнен), клиент 102 электронной почты посылает это содержимое серверу 106 электронной почты, который хранит его в буфере 108 запросов. Сервер 106 электронной почты считывает запросы из буфера 108 запросов и обрабатывает запросы. Обработка каждого запроса создает результат в виде ответа. Эти ответы могут включать в себя данные, запрашиваемые клиентом 102 электронной почты (например, конкретное сообщение электронной почты). Сервер 106 электронной почты хранит эти ответы в буфере 110 ответов.

В соответствии с одним вариантом выполнения настоящего изобретения, так как сервер 106 электронной почты обрабатывает каждый запрос, то он использует указатель для отслеживания, какой запрос является следующим запросом, подлежащим обработке, из буфера 108 запросов. Когда сервер 106 электронной почты определяет, что буфер 110 ответов заполнен (например, в нем осталось менее 8 кбайт из 32 кбайт), то сервер 106 электронной почты прекращает обработку запросов в буфере 108 запросов. Любые оставшиеся запросы, которые не были обработаны (т.е. незавершенные (неотвеченные) запросы), присоединяются к содержимому буфера 110 ответов. Эти незавершенные (неотвеченные) запросы и ответы на завершенные запросы посылаются приемному буферу 112 клиента 102 электронной почты.

В одном варианте выполнения настоящего изобретения клиент 102 электронной почты способен обозначать (указывать) размер любого из буферов 104, 108, 110, 112. Размер ответа обычно больше размера запроса. По этой причине размер буфера 110 ответов и приемного буфера 112 (собирательно, «буферов 110 и 112 ответов») может быть указан клиентом 102 электронной почты большим, чем размер пересылочного буфера 104 и буфера 108 запросов (собирательно, «буферов 104 и 108 запросов»).

Известные системы сети электронной почты, о которых известно заявителю, не были способны выполнять такую функцию, потому что они использовали только один буфер на клиенте электронной почты и сервере электронной почты. Хотя в разделе «Предпосылки создания изобретения» предварительной заявки, на основании которой описание изобретения притязает на приоритет, описывается сеть электронной почты, в которой клиент электронной почты и сервер электронной почты каждый имеет два буфера, заявителям неизвестны никакие сети электронной почты до настоящего изобретения, которые на каждом бы использовали более одного буфера.

Некоторые сети электронной почты, в которых используются буферы, например сеть 100 электронной почты, показанная на фиг.3, могут использовать режим быстрой пересылки между клиентом (например, клиентом 102 электронной почты) и сервером (например, сервером 106 электронной почты). Режим быстрой пересылки включает в себя запросы, такие как УОП, выполненные клиентом, которые делятся по меньшей мере на две категории: запросы, которые приводят к инициализации источника данных быстрой пересылки на сервере, и запросы, которые приводят к эффективной пересылке данных от источника данных быстрой пересылки клиенту. Источником данных быстрой пересылки может быть, например, таблица базы данных. Источник данных быстрой пересылки служит в качестве готового временного запоминающего устройства (хранилища) данных, которое позволяет производить обслуживание более поздних запросов на данные с малой задержкой, чем иначе было бы возможно. Иногда вторая категория запроса режима быстрой пересылки делает попытку достижения эффективной пересылки данных посредством точного указания размера ответа. В качестве примера, размер ответа может быть установлен равным размеру всего приемного буфера 112 минус служебные сигналы (накладные расходы) ответа.

На фиг.4А изображена операция быстрой пересылки, имеющая по меньшей мере два цикла запрос-ответ. В первом запросе 401 УОП (например, FXPrepare) инициализирует источник данных быстрой пересылки на сервере 106 электронной почты. На сервере 106 электронной почты обрабатывается только FXPrepare (т.е. инициализируется источник данных быстрой пересылки), и его результат возвращается в первом ответе 402. Во втором запросе 403 УОП (например, FXGetBuffer) запрашивает заполнение сервером 106 электронной почты буфера 110 ответов от высокоскоростного источника данных. Сервер 106 электронной почты освобождает высокоскоростной источник данных в буфер 110 ответов и возвращает результат во втором ответе 404. Если буфер 110 ответов для сервера 106 электронной почты заполнится до того, как освободится (опустошится) высокоскоростной источник данных, могут потребоваться дополнительные УОП FXGetBuffer.

На фиг.4В изображена операция быстрой пересылки, имеющая только один цикл запрос-ответ. В первом запросе 405 обрабатываются как FXPrepare, так и FXGetBuffer сервером 106 электронной почты, и результаты обеих операций возвращаются в первом ответе 406. Результат FXPrepare доступен для FXGetBuffer на сервере 106 электронной почты, так как часть каждого буфера в явной форме определяется как таблица совместно используемых данных.

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

На фиг.5 показан один пример содержимого 120 пересылочного буфера 104 клиента. В этом примере пересылочный буфер 104 содержит заголовок 122 удаленного вызова процедуры (УВП) и несколько запросов 124.

В соответствии с одним аспектом настоящего изобретения заголовок 122 УВП может включать в себя бит 126 сжатия и бит 128 обфускации («изменения»). Бит 126 сжатия указывает, должен ли или нет сервер 106 электронной почты сжимать ответы на запросы. Другая информация может быть предусмотрена в содержимом 120 для указания того, что сервер 106 электронной почты должен сжимать ответы. Сжатие может быть не всегда желательным. Например, если клиент имеет высокоскоростное соединение с малым запаздыванием и не имеет достаточной резервной вычислительной мощности, чтобы эффективно выполнять восстановление (декомпрессию), то клиент может посылать запрос с указанием, что сжатие не требуется. Альтернативно, если клиент имеет достаточную вычислительную мощность и соединение с сервером имеет низкую пропускную способность, то клиент может указать серверу, что ему необходимо сжатие (например, установкой бита указателя сжатия в заголовке).

Бит 128 обфускации («изменения») (с целью «сбить с толку») указывает, должен ли или нет сервер 106 электронной почты «обфусцировать» запросы. «Обфускацией» (изменением) является простая операция, выполняемая для предотвращения посылки по сети данных в виде ясно читаемого текста. Одним примером «обфускации» является выполнение операции XOR (известный способ «обфускации») над запросами перед их посылкой. В некоторых вариантах выполнения вместо «обфускации» может быть использовано шифрование. Снова, другая информация может быть включена в содержимое 120, которая указывает, что запросы должны быть «обфусцированы» или зашифрованы.

Как показано на фиг.5, в некоторых вариантах выполнения клиент 102 электронной почты может быть сконфигурирован так, что включает в себя специальный запрос 130 в содержимом 120, который выдает команду серверу 106 электронной почты ответить на запрос клиента, используя формирование цепочки, описанное ниже.

На фиг.6 представлена схема последовательности операций, изображающая способ пересылки данных между клиентом и сервером в соответствии с одним вариантом выполнения настоящего изобретения. Начиная с этапа 600, сервер 106 электронной почты принимает множество запросов от клиента (например, запросы 124).

В соответствии с одним вариантом выполнения настоящего изобретения клиент 102 электронной почты может запросить посылку ответов сервером 106 электронной почты с формированием цепочки или без формирования цепочки. На этапе 602 сервер 106 электронной почты проверяет запросы 124 для определения, включают ли в себя запросы запрос на формирование цепочки (например, специальный запрос 130). Если нет, то тогда процесс от этапа 602 переходит на этап 604, где сервер 106 электронной почты начинает составление ответов на запросы 124. Один пример процесса составления ответа без формирования цепочки показан на фиг.8, и этапы на фиг.7 будут применимы для этого примера в этом описании.

На этапе 604 (фиг.6) сервер 106 электронной почты создает заголовок 140. На этапе 606 ответы 142 (фиг.6) на запросы 124 извлекаются и запоминаются в буфере 110 ответов. Если сервер 106 электронной почты сгенерировал достаточное количество ответов, так что ответы 142 и заголовок 140 заполняют или почти заполняют буфер 110 ответов, то сервер 106 электронной почты прекращает обработку запросов. Заполнен ли или почти заполнен буфер 110 ответов, может быть определено сервером 106 электронной почты и/или клиентом 102 электронной почты. В качестве примера, буфер 110 ответов может считаться заполненным, когда в нем осталось менее 8 Кбайт от первоначального буфера емкостью 32 Кбайта.

Если клиент 102 электронной почты указал, что он поддерживает сжатие (например, посредством надлежащей установки бита 126 сжатия), то сервер 106 электронной почты сжимает ответы в буфере 110 ответов в сжатый набор 144 ответов 142 (фиг.7) на этапе 608. Аналогично, также на этапе 608, если клиент 102 электронной почты указал, что он поддерживает «обфускацию» (например, посредством надлежащей установки бита 128 «обфускации»), то сервер 106 электронной почты может «обфусцировать» или зашифровать ответы 142, как ему указано.

Любые запросы, которые не были обработаны, присоединяются к ответам в буфере 108 запросов на этапе 610. Эти необработанные ответы могут быть помещены в неиспользуемую память после сжатия, показанную, в основном, в качестве памяти 146 на фиг.6. Сервер 106 электронной почты затем посылает ответы и незавершенные запросы клиенту 102 электронной почты на этапе 612.

Как можно видеть в примере, описанном выше и показанном на фиг.7, неиспользуемая память после сжатия (т.е. память 146) при ответе без формирования цепочки может быть значительной. В соответствии с одним аспектом настоящего изобретения количество неиспользуемой памяти может быть минимизировано, используя процесс формирования цепочки. Однако может быть полезным способ без формирования цепочки, описываемый до сих пор, например, когда клиент 102 электронной почты не требует формирования цепочки, например в УОП, которая не запрашивает режим быстрой пересылки.

Если клиент 102 электронной почты указывает, что сервер 106 электронной почты должен использовать формирование цепочки, то тогда от этапа 602 процесс переходит на этап 614, где сервер 106 электронной почты создает первый заголовок 150 (фиг.7). На фиг.8 показан пример процесса составления ответа для формирования цепочки и используется с описанием этапов 614-620.

На этапе 616 сервер 106 электронной почты извлекает и заполняет буфер 110 ответов ответами 152. Снова, буфер 110 ответов может считаться заполненным, если он достигает заранее определенного предела. Может потребоваться только один ответ для заполнения буфера 110 ответов, однако в том смысле, как он используется здесь, термин «набор ответов» означает один или несколько ответов. На этапе 618, как только буфер 110 ответов заполнен или почти заполнен, то сервер 106 электронной почты сжимает и/или «обфусцирует» ответы в буфере 110 ответов в соответствии с командами от клиента 102 электронной почты (например, согласно биту 126 сжатия и/или биту 128 «обфускации»). Создается сжатый набор 154 ответов, оставляя большой раздел 156 неиспользуемой памяти в буфере 108 запросов.

После сжатия и/или «обфускации» на этапе 620 выполняется определение, могут ли дополнительные ответы быть размещены в буфере 110 ответов. Снова, могут ли дополнительные ответы быть размещены, может быть определено клиентом 102 электронной почты или сервером 106 электронной почты. Однако после первого сжатия ожидается, что будет доступно дополнительное пространство. Если дополнительное пространство доступно, то процесс возвращается на этап 614, где сервер 106 электронной почты создает и присоединяет второй заголовок 158 (фиг.8) и снова начинает обработку запросов (этап 616).

Как только буфер 110 ответов заполнен или почти заполнен ответами, то сервер 106 электронной почты сжимает и/или «обфусцирует» вновь добавляемые ответы 160 на этапе 618. На этапе 620 снова выполняется определение, остается ли пространство для других ответов. Если остается, то процесс еще раз возвращается обратно на этап 614, где присоединяется третий заголовок, и сервер 106 электронной почты еще раз заполняет буфер 110 ответов ответами и сжимает и/или «обфусцирует» ответы (этапы 616 и 618). Этот процесс повторяется до тех пор, пока не будут завершены все запросы или буфер 110 ответов не будет заполнен или почти заполнен заголовками и соответствующими сжатыми ответами. Как только буфер 110 ответов заполнен или почти заполнен сжатыми ответами и заголовками (показан в нижней части фиг.8), то на этапе 620 процесс переходит на этап 610, где сервер 106 электронной почты присоединяет любые незавершенные запросы (если они есть) и посылает содержимое буфера 110 ответов клиенту 102 электронной почты.

Клиент 102 электронной почты, который принимает содержимое буфера 110 ответов в его приемный буфер 112, затем может обрабатывать каждый набор ответов между заголовками. Если наборы ответов сжаты и/или «обфусцированы», то тогда клиент 102 электронной почты может восстановить (выполнить декомпрессию) или выполнить операцию, обратную «обфускации». В этом случае клиент 102 электронной почты все еще имеет множество наборов ответов, которые он может затем обработать.

Как можно видеть в результате различий между данными, посылаемыми в процессе без формирования цепочки на фиг.7 и в процессе с формированием цепочки на фиг.8, формирование цепочки позволяет сформировать в цепочку или упаковать вместе множество пар заголовок/ответ и послать в одной «группе», тем самым потенциально снижая количество двойных прохождений между клиентом 102 электронной почты и сервером 106 электронной почты. Этот процесс упоминается здесь как «формирование цепочки» или «упаковка» ответов. Формирование цепочки может быть значительно более эффективным для сети, особенно в среде с низкой пропускной способностью. В соответствии с одним вариантом выполнения изобретения сервер 106 электронной почты может обеспечивать формирование цепочки с запросами режима быстрой пересылки и может не обеспечивать формирование цепочки с запросом, который не является режимом быстрой пересылки.

На фиг.9 показан более подробный пример буфера 159 ответов. В этом примере каждый заголовок 1611, 1612 … 161N включает в себя указатель 1621 … 162N на следующий заголовок в буфере. Альтернативно, заголовок 161 может включать в себя сжатый размер соответствующего ответа. В любом случае, этот признак позволяет клиенту 102 электронной почты легче декодировать сжатую группу (пакет) при приеме, потому что клиент 102 электронной почты будет знать размер каждого ответа и расположение начала следующего ответа.

Каждый заголовок 161 также может включать в себя информацию 1641 … 164N, например, в виде битового файла, которая указывает, соответствует ли заголовок 161 последнему ответу в буфере. Заголовок 161 также может включать в себя другую информацию, такую как несжатый размер соответствующей ответной информации.

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

Использование буферов ответов большего объема

Как описано выше, клиент 102 электронной почты может быть сконфигурирован так, чтобы информировать сервер 106 электронной почты о том, какой размер буферов запросов и/или ответов будет использоваться. Например, в одном варианте выполнения настоящего изобретения каждый буфер 104 и 108 запросов составляет 32 кбайта, и оптимальный размер каждого буфера 110 и 112 ответов составляет 96 кбайт, отношение 3:1.

Хотя клиент 102 электронной почты может указать буферы 110 и 112 ответов большего объема, клиент 102 электронной почты может быть сконфигурирован так, чтобы работать с порциями данных, которые меньше, чем фактический размер буферов 110 и 112 ответов. Например, буферы объемом 96 кбайт могут быть указаны для буферов 110 и 112 ответов, но клиент 102 электронной почты может потребовать, чтобы все порции данных ответов составляли бы по 32 кбайта или менее. Упаковка или формирование цепочки настоящего изобретения делает такую систему действующей.

Вариант выполнения способа, выполняющего такую функцию, показан на схеме последовательности операций на фиг.10. Начиная с этапа 1000, клиент 102 электронной почты посылает набор запросов на сервер 106 электронной почты вместе с информацией, определяющей размер буфера ответов (например, 96 кбайт), и информацией о размере порции данных, для обработки которой сконфигурирован клиент. На этапе 1002 сервер 106 электронной почты создает кадр в буфере 110 ответов, равный размеру порции данных, определенной клиентом. Сервер 106 электронной почты затем записывает на этапе 1004 заголовок в кадр в буфере 110 ответов. На этапе 1006 сервер 106 электронной почты начинает обработку ответов до тех пор, пока он не заполнит или почти не заполнит кадр. Набор ответов может быть сжат или «обфусцирован» или может быть не сжат или «обфусцирован» на этапе 1008.

Затем на этапе 1010 выполняется определение, заполнен ли или нет буфер 110 ответов. Обычно буфер 110 ответов не будет заполнен после первой обработки ответов. Если буфер 110 ответов не заполнен, то процесс возвращается обратно на этап 1002, где сервер 106 электронной почты создает новый кадр, начинающийся в конце только что обработанного набора ответов. Может быть использован указатель, так что сервер 106 электронной почты будет знать, где начинается этот следующий кадр. Новый кадр также будет равен размеру порции данных, с которой может оперировать клиент 102 электронной почты, если существует достаточное пространство в буфере 110 ответов. На этапе 1004 сервер 106 электронной почты записывает следующий заголовок в новый кадр. Процесс затем переходит на этап 1010.

Если буфер 110 ответов заполнен (или все запросы были обработаны, которые пришли первыми), то процесс переходит на этап 1012, где сервер 106 электронной почты копирует оставшиеся необработанные запросы в буфер 110 ответов. На этапе 1014 сервер 106 электронной почты посылает содержимое буфера 110 ответов клиенту 102 электронной почты.

Клиент 102 электронной почты, который принимает содержимое буфера 110 ответов в свой приемный буфер 112, затем может обработать каждую порцию данных (набор ответов) между заголовками. Если ответы не сжаты или не «обфусцированы», то тогда клиент 102 электронной почты может обрабатывать каждый набор ответов между заголовками в том виде, как он есть. Наборы ответов будут равны или меньше, чем порции данных, определяемые клиентом 102 электронной почты, так что клиент 102 электронной почты должен быть способен правильно оперировать наборами данных. Если наборы ответов сжаты и/или «обфусцированы», то тогда клиент 102 электронной почты может восстановить (декомпрессировать) или выполнить операцию, обратную «обфускации». В этом случае клиент 102 электронной почты все еще имеет множество наборов ответов, каждый из которых меньше или равен размеру порций данных, которыми он может оперировать.

Прием, заставляющий сервер обрабатывать больше запросов

Когда сервер 106 электронной почты завершит обработку набора запросов, возможно придется «заставить» сервер 106 электронной почты продолжать обработку дополнительных запросов. Например, существующие серверы электронной почты обычно конфигурируются для обработки запросов и предоставления ответов определенного размера (например, 32 кбайта), причем размер обычно диктуется клиентом 102 электронной почты. После этой обработки существующие серверы электронной почты конфигурируются либо для посылки ответа, указывающего, что ответы готовы (ответ FXPrepare), либо для автоматической посылки ответов (ответ FXGetBuffer). Однако при использовании описанного здесь сжатия может быть желательно, чтобы сервер 106 электронной почты обработал даже больше запросов на ответ FXGetBuffer, с тем чтобы заполнить дополнительное пространство в буфере 110 ответов. Дополнительное пространство может быть создано посредством сжатия. Альтернативно, описанный выше вариант выполнения с большим буфером может иметь дополнительное пространство после обработки одного из его кадров.

Вариант выполнения способа управления такой ситуацией показан на фиг.11. Начинаясь на этапе 1100, выполняется определение, существует ли «место» для дополнительных ответов и есть ли еще запросы для обработки. Если нет, то тогда процесс с этапа 1100 переходит на этап 1102, где сервер 106 электронной почты посылает ответы клиенту 102 электронной почты. Если состояние сервера 106 электронной почты после предоставления набора ответов указывает, что имеются еще запросы для обработки и имеется пространство («место») для их обработки, то процесс с этапа 1100 переходит на этап 1104, где сервер 106 электронной почты генерирует «ложный» входящий запрос (например, ложный запрос FXGetBuffer). Этот входящий псевдозапрос УВП (удаленного вызова процедуры) затем обрабатывается сервером 106 электронной почты, как если бы он был принят от клиента 102 электронной почты. УВП является «псевдо» потому, что в действительности он не посылается с удаленного компьютера, но вместо этого посылается с сервера. Устанавливается исходящий буфер для этого псевдо-УВП, равный оставшейся части первоначального исходящего буфера после сжатия (который может быть ограничен описанными выше кадрами). Сервер 106 электронной почты затем обрабатывает новые ответы на этапе 1106, как описано выше.

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

Каждый упакованный набор ответов имеет свой собственный заголовок со своими собственными флагами. Один пакет может быть сжат и затем «обфусцирован», или, альтернативно, никакие пакеты не могут ни сжиматься, ни «обфусцироваться». Для каждого нового буфера в сформированном цепочкой ответе назначается флаг.

Пример содержимого буфера

Ниже представлен подробный вид одного примера с двумя сформированными цепочкой буферами в исходящем буфере ответов:

Буфер 1 Буфер 2
Сжатые данные Сжатые данные
RpcHeaderExtwFlags frehComp
wSize wSizeActual
Данные ответов УОП Таблица ТУОХ RpcHeaderExtwFlags frheComp frheLast
wSize wSizeActual
Данные ответов УОП Таблица ТУОХ
wSize wSize

Как изображено выше, каждый упакованный буфер ответов имеет свою собственную таблицу указаний на операции хранения (ТУОХ). ТУОХ представляет собой идентификатор в каждом сетевом запросе, на какой объект на сервере 106 электронной почты он действует. Это таблица ТУОХ, записи которой соответствуют внутренним хранимым объектам. Каждая операция в буфере 108 запросов содержит указатель на эту таблицу для идентификации, к какому хранимому объекту применяется операция. Сервер 106 электронной почты также добавляет элементы в эту таблицу, если во время операции создается новый внутренний хранимый объект. Таблица ТУОХ не должна отличаться по значению от первого в списке, но будет содержать только записи ТУОХ для всех ТУОХ вплоть до и включая ту, которая используется в УОП FXGetBuffer, описанной выше. Это, главным образом, представляет собой решение по реализации, так как оно снижает сложность сервера 106 электронной почты. Таблица ТУОХ представляет собой, в основном, не более чем пару двойных слов, так что она не должна требовать существенной производительности.

Заметим, что это просто один пример, и подробности различных вариантов осуществления будут отличаться. Например, некоторые из флагов могут интерпретироваться различным образом, основываясь на том, какие признаки поддерживают клиент 102 электронной почты и/или сервер 106 электронной почты. Например, если клиент 102 электронной почты указывает, что он поддерживает упакованные и/или сжатые буферы, но сервер 106 электронной почты не поддерживает один или оба из них, то сервер 106 электронной почты может игнорировать соответствующий флаг (флаги).

Как описано выше, два новых ключа «Registry» могут быть добавлены на клиенте 102 электронной почты для переключения, должен ли или не должен клиент 102 электронной почты использовать сформированные цепочкой ответы и каким должен быть размер исходящего буфера (например, 32 кбайта <= размер <= 128 кбайт). Это также может быть использовано для запрашивания сжатия. Эти признаки могут быть включены по умолчанию или отключены по умолчанию в зависимости от осуществления.

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

Хотя это описание сконцентрировано на осуществлениях с клиентом и сервером электронной почты, описанные здесь системы и способы также могут быть использованы для других видов применения. Например, описанные здесь методы могут быть применены для синхронизации информации между картографическим клиентом и сервером в картографическом приложении, таком как Microsoft MapPoint. Кроме того, хотя варианты выполнения систем и способов были описаны на языке программных приложений, специалистам в этой области техники понятно, что системы могут быть осуществлены аппаратными средствами, программными средствами или комбинацией аппаратных и программных средств. Хотя примеры были сконцентрированы на соединениях по телефонной линии, также рассматриваются другие виды сетевых подключений (например, без ограничений, по локальной сети (ЛС), беспроводных, по цифровой сети с интеграцией служб (ЦСИС) и по цифровой абонентской линии (ЦАЛ)).

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

1. Осуществляемый на компьютере способ ответа на группу запросов от клиента, причем способ содержит:
a) выполнение запросов и создание ответов до тех пор, пока размер ответов меньше, чем размер набора запросов, которые клиент сконфигурирован обработать, причем ответы содержат первый набор ответов;
b) присоединение заголовка к первому набору ответов;
c) сжатие первого набора ответов;
d) выполнение остальных запросов и формирование дополнительных ответов в ответ на выполнение каждого запроса до тех пор, пока размер дополнительных ответов меньше, чем размер набора запросов, которые клиент сконфигурирован обработать, причем дополнительные ответы содержат дополнительный набор ответов;
e) присоединение дополнительного заголовка к дополнительному набору ответов и
f) посылку заголовков и наборов ответов клиенту.

2. Способ по п.1, дополнительно содержащий перед посылкой заголовков и наборов ответов клиенту:
g) сжатие дополнительного набора ответов и
h) повторение этапов d), е) и g) до тех пор, пока заголовки и наборы ответов не достигнут размера, который клиент сконфигурирован обработать, или до тех пор, пока не будут выполнены все запросы.

3. Способ по п.1, в котором размер набора запросов, которые клиент сконфигурирован обработать относится к буферу, который устанавливается для хранения наборов ответов и заголовков.

4. Способ по п.1, дополнительно содержащий перед этапом d) формирование входящего запроса для обработки запросов.

5. Способ по п.4, в котором входящим запросом является удаленный псевдовызов процедуры.

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

7. Осуществляемый компьютером способ ответа на группу запросов от клиента, причем способ содержит:
a) выполнение запросов и создание ответов в ответ на выполнение каждого запроса до тех пор, пока размер ответов не заполнит часть первого кадра в буфере на сервере, причем ответы содержат первый набор ответов, размер первого кадра связан с размером набора ответов, который клиент сконфигурирован обработать, и размер первого кадра меньше, чем размер буфера;
b) присоединение заголовка к первому набору ответов;
c) выполнение оставшихся запросов и создание дополнительных ответов в ответ на выполнение каждого запроса до тех пор, пока размер ответов не заполнит часть дополнительного кадра в буфере, причем дополнительные ответы содержат дополнительный набор ответов, размер дополнительного кадра связан с размером набора ответов, который клиент сконфигурирован обработать, или с остальной частью буфера, какой бы из них не был меньше, и размер дополнительного кадра меньше, чем размер буфера;
d) присоединение дополнительного заголовка к дополнительному набору ответов и
e) посылку содержимого буфера клиенту.

8. Способ по п.7, дополнительно содержащий:
f) перед этапом с) сжатие первого набора ответов.

9. Способ по п.8, дополнительно содержащий:
g) перед этапом е) сжатие дополнительного набора ответов.

10. Способ по п.9, дополнительно содержащий повторение этапов с), d) и g) до тех пор, пока буфер не будет заполнен.

11. Способ по п.7, дополнительно содержащий повторение этапов с) и d) до тех пор, пока буфер не будет заполнен.
12 Способ по п.7, дополнительно содержащий перед этапом с) создание входящего запроса для обработки запросов.

13. Способ по п.12, в котором входящим запросом является удаленный псевдовызов процедуры.

14. Считываемый компьютером носитель, имеющий исполняемые компьютером команды для выполнения способа по п.7.

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

16. Считываемый компьютером носитель по п.15, в котором инструкции для формирования цепочки побуждают осуществлять следующие этапы:
a) сбор первого набора ответов;
b) присоединение заголовка к первому набору ответов и
c) повторение этапов а) и b) для одного или более дополнительных наборов ответов.

17. Считываемый компьютером носитель по п.16, в котором инструкции дополнительно содержат указание, что наборы ответов должны быть сжаты.

18. Считываемый компьютером носитель по п.17, в котором инструкции дополнительно содержат индикацию предела размера наборов ответов перед сжатием.

19. Считываемый компьютером носитель по п.16, в котором инструкции дополнительно содержат указание предела размера наборов ответов.

20. Способ пересылки данных между сервером и клиентом, причем способ содержит:
a) прием множества запросов от клиента, включая запрос на формирование цепочки ответов на запросы;
b) накопление первого набора ответов для клиента;
c) сжатие первого набора ответов;
d) присоединение заголовка к первому набору ответов;
e) повторение этапов (b)-(d) для одного или нескольких дополнительных наборов ответов и
f) посылку вместе сжатых наборов ответов и заголовков клиенту.

21. Способ по п.20, дополнительно содержащий перед этапом е) создание входящего запроса для обработки запросов.

22. Способ по п.21, в котором входящим запросом является удаленный псевдовызов процедуры.

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



 

Похожие патенты:

Изобретение относится к области электронного документооборота. .

Изобретение относится к подсказкам о маршруте, в частности к предоставлению подсказок о маршруте от хостов для их использования на сетевом шлюзе. .

Изобретение относится к беспроводной связи. .

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

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

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

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

Изобретение относится к способу и устройству для управления цифровыми правами. .

Изобретение относится к беспроводной локальной сети (WLAN) и более конкретно к определению кадра подтверждения приема (АСК) для подтверждения приема кадра передачи в WLAN.

Изобретение относится к беспроводной связи. .

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

Изобретение относится к способу передачи данных с коммутацией пакетов в самоорганизующейся сети радиосвязи. .

Изобретение относится к системам беспроводной связи. .

Изобретение относится к системам передачи мультимедийной информации. .
Наверх