Система и способ усовершенствованного обмена сообщениями электронной почты между клиентом и сервером

Иллюстрации

Показать все

Изобретение относится к средствам обмена сообщениями электронной почты. Техническим результатом является повышение производительности передачи информации с серверного компонента электронной почты. Сервер электронной почты выдает наилучший текстовый блок сообщения, доступный для сообщения электронной почты, передает объект данных полностью, если требуемое свойство или свойства не являются строго определенными внутри объекта данных, выдает данные о ходе выполнения для использования при отслеживании хода выполнения загрузки и может посылать информацию об ошибке для объекта данных, имеющего ошибку. Изменения электронной почты могут быть оптимизированы на серверном компоненте электронной почты, даже если изменения электронной почты произошли на другом серверном компоненте электронной почты. Серверный компонент электронной почты может поддерживать таблицу изменений, которые происходят в папках на ассоциированном хранилище данных, и может уведомлять подписанный клиентский компонент электронной почты об изменениях, которые происходят в таблице. 3 н. и 25 з.п. ф-лы, 31 ил., 9 табл.

Реферат

Настоящая заявка на изобретение требует приоритет заявки США, имеющей номер 60/437 869 и номер в реестре 220635, поданной 3 января 2003 г., озаглавленной «СИСТЕМА И СПОСОБ УСОВЕРШЕНСТВОВАННОГО ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ КЛИЕНТОМ И СЕРВЕРОМ» и включенной в данный документ путем ссылки.

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

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

Описание предшествующего уровня техники

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

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

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

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

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

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

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

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

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

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

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

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

Фиг.1 - схематическое представление компьютеров, соединенных сетью.

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

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

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

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

Фиг.6А - схема протокола, показывающая примерный протокол, требующий два цикла «запрос-ответ» для выполнения операции быстрой передачи.

Фиг.6В - схема протокола, показывающая примерный протокол, требующий один цикл «запрос-ответ» для выполнения операции быстрой передачи.

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

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

Фиг.8А - диаграмма последовательности, иллюстрирующая режим передачи элемента данных полностью. Фиг.8В - диаграмма последовательности, иллюстрирующая режим передачи «сначала заголовки».

Фиг.8С - диаграмма последовательности, иллюстрирующая режим передачи «только заголовки».

Фиг.8D - диаграмма последовательности, иллюстрирующая переключение на режим передачи «сначала заголовки» или «только заголовки».

Фиг.9 - схема, показывающая изменяемый во времени серверный компонент электронной почты, являющийся домашним для клиентского компонента.

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

Фиг.11А - блок-схема, изображающая примерную процедуру оптимизации части объекта «stateblob» (состояние большого двоичного объекта, BLOB).

Фиг.11В - блок-схема, изображающая процедуру оптимизации части объекта «stateblob» в соответствии с настоящим изобретением.

Фиг.12 - схематическое представление, иллюстрирующее иерархию папок электронной почты.

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

Фиг.14А - схема протокола, показывающая примерный протокол для обмена информацией об ошибках на уровне УОП (Удаленная операция).

Фиг.14В - схема протокола, показывающая примерный протокол для обмена информацией об ошибках на основе «по сообщению» в соответствии с аспектом настоящего изобретения.

Фиг.15А - блок-схема, иллюстрирующая процедуру генерации сообщения об ошибках на уровне УОП.

Фиг.15В - блок-схема, иллюстрирующая способ генерации сообщения об ошибках на основе «по сообщению» в соответствии с аспектом настоящего изобретения.

Фиг.16А - схема протокола, показывающая примерный протокол для выполнения операции быстрой передачи.

Фиг.16В - схема протокола, показывающая примерный протокол для обеспечения информации о ходе выполнения при выполнении операции быстрой передачи в соответствии с аспектом настоящего изобретения.

Фиг.17А - блок-схема, изображающая процедуру для потокового вывода набора сообщений.

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

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

Фиг.19А - блок-схема, изображающая процедуру уведомления множественных абонентов.

Фиг.19В - блок-схема, изображающая процедуру уведомления множественных абонентов в соответствии с аспектом настоящего изобретения.

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

Подробное описание изобретения

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

Пример сетевой среды, в которой может быть использовано изобретение, будет описан со ссылкой на Фиг.1. Примерная сеть включает в себя несколько компьютеров 10, осуществляющих обмен между собой по сети 11, показанной в виде облака. Сеть 11 может включать в себя известные компоненты такие, как маршрутизаторы, шлюзы, концентраторы и т.д., и позволяет компьютерам 10 осуществлять обмен информацией посредством проводного и/или беспроводного носителя. При взаимодействии между собой по сети 11 один или более компьютеров могут выступать в качестве клиентов, серверов или одноранговых узлов по отношению к остальным компьютерам. Соответственно, различные варианты осуществления могут быть применены для клиентов, серверов, одноранговых узлов или к их комбинации, несмотря на то, что конкретные примеры, содержащиеся в настоящем документе, не ссылаются на все эти типы компьютеров.Что касается Фиг.2, то на ней показан пример базовой структуры для компьютера, на котором может быть реализовано полностью или по частям изобретение, изложенное в настоящем документе. Наиболее общая структура компьютера 10 обычно включает в себя по меньшей мере один блок 14 обработки (процессор) и запоминающее устройство 16. Блок 14 обработки исполняет инструкции для выполнения задач в соответствии с различными вариантами осуществления изобретения. При выполнении таких задач блок 14 обработки может передавать электронные сигналы другим частям компьютера 10 и устройствам вне компьютера 10 для того, чтобы вызвать некоторый результат. В зависимости от конкретной структуры и типа компьютера 10 запоминающее устройство 16 может быть энергозависимым (как например, ОЗУ (RAM)), энергонезависимым (как например, ПЗУ (ROM) или флэш-память) или комбинацией перечисленных двух. Подобная наиболее общая структура проиллюстрирована на Фиг.2 с помощью пунктирной линии 18. Кроме того, компьютер также может иметь дополнительные свойства/функциональные возможности. Например, компьютер 10 может также включать в себя дополнительное внешнее хранилище данных (сменяемое 201 и/или несменяемое 202), включающее в себя магнитные или оптические диски или магнитные ленты, но не ограничиваясь перечисленными. Среда хранения, используемая компьютером, включает в себя энергозависимую и энергонезависимую, сменяемую и несменяемую среды, реализованные любым способом или технологией для хранения информации, включающими в себя исполняемые компьютером команды, структуры данных, программные модули или другие данные. Среда хранения, используемая компьютером, включает в себя, но при этом не ограничена, ОЗУ (RAM), ПЗУ (ROM), ЭСПЗУ (EPROM), флэш-память, ПЗУ на компакт-диске (CD-ROM), цифровой универсальный диск (ЦУД, DVD) или другой оптический носитель, магнитные кассеты, магнитную ленту, накопитель на магнитном диске или другие устройства с магнитным носителем, или любой другой носитель, который может быть использован для хранения требуемой информации и к которому может осуществлять доступ компьютер 10. Любая подобная используемая компьютером среда хранения может быть частью компьютера 10.

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

Компьютер 10 может также иметь входные устройства 204, или устройства ввода данных, такие как клавиатура, манипулятор типа «мышь», перо, устройство речевого ввода, сенсорное устройство ввода и т.д. Выходные устройства 203, или устройства вывода данных, такие как устройство 20 отображения, устройства речевого вывода, принтер и т.д., также могут быть включены в состав. Все эти устройства хорошо известны в данной области техники и не требуют дальнейшего обсуждения в настоящем документе.

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

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

При некотором событии в сетевой среде электронной почты, показанной на Фиг.3, клиентский компонент 303 электронной почты наиболее последней версии наилучшим образом осуществляет обмен информацией с серверным компонентом 306 электронной почты наиболее последней версии, используя протокол 307. Однако серверный компонент 306 электронной почты наиболее недавней (последней) версии способен также осуществлять обмен информацией с выбранными клиентскими компонентами электронной почты предыдущей версии, например с клиентским компонентом 302 электронной почты и клиентским компонентом 301 электронной почты, используя другие протоколы (например, протоколы 308 и 309 согласно Фиг.3) из набора протоколов. Клиентский компонент 303 электронной почты также способен осуществлять обмен информацией с выбранными серверными компонентами электронной почты предыдущей версии, например с серверным компонентом 305 электронной почты и с серверным компонентом 304 электронной почты, используя протоколы, такие как протоколы 310 и 311.

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

Процедуру согласования протокола часто используют для установления протокола между клиентом и сервером (например, серверным компонентом 306 электронной почты наиболее недавней версии и клиентским компонентом 303 электронной почты наиболее недавней версии). Несмотря на то, что такие согласования протоколов известны, для облегчения восприятия (читателем) приведено краткое описание процедуры согласования протокола между клиентским компонентом 401 (Фиг.4) электронной почты и серверным компонентом 402 (также Фиг.4). Ранее в сеансе связи электронной почты между клиентским компонентом 401 электронной почты и серверным компонентом 402 электронной почты клиентский компонент 401 посылает серверному компоненту 402 электронной почты сообщение 403, которое включает в себя информацию о версии клиента, например, в виде отметки (или штампа) версии клиентского компонента. Серверный компонент 402 электронной почты отвечает на сообщение 403 посредством сообщения 404, которое включает в себя информацию о версии сервера, например, в виде отметки (или штампа) версии серверного компонента.

Информация о версии клиента и сервера может быть использована различными способами при попытке установления связи между клиентским компонентом 401 электронной почты и серверным компонентом 402 электронной почты. Например, информация о версии может быть использована, чтобы выбрать подходящий протокол для продолжаемого обмена информацией или чтобы определить, возможен ли даже дальнейший обмен информацией. При установлении протокола информация о версии может быть использована для того, чтобы, например, разрешить и/или запретить конкретные доступные особенности (аспекты) протоколов или компоненты.

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

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

В качестве примера на Фиг.5 показан обмен запросом и ответом между клиентским компонентом 501 электронной почты и серверным компонентом 502 электронной почты. Как клиентский компонент 501 электронной почты, так и серверный компонент 502 электронной почты имеют буферы 503, 504, 505 и 506, которые предназначены для связи и размер которых фиксирован. Буферы 503, 504, 505 и 506 являются резервированными областями запоминающего устройства, предназначенными для промежуточного сохранения данных. Клиентский компонент 501 электронной почты начинает цикл «запрос-ответ» с заполнения буфера 503 одним или более подзапросами или удаленными операциями (УОП) до передачи содержимого из буфера 503 в буфер 504.

После того как осуществлен прием в буфер 504, каждую УОП по очереди обрабатывают серверным компонентом 502 электронной почты и соответствующий результат записывают в буфер 505. Каждая УОП производит некоторый результат. Результат может включать в себя данные, запрошенные клиентским компонентом 501 электронной почты, например конкретный набор сообщений электронной почты. Серверный компонент 502 электронной почты управляет буфером 505, и когда буфер близок к полному заполнению (например, осталось менее 8КБ), то серверный компонент 502 электронной почты записывает какие-либо необработанные УОП в конец буфера 505 и передает буфер 505 в буфер 506. Клиентский компонент 501 электронной почты затем начинает новый цикл «запрос-ответ» с записи необработанных УОП в буфер 503 для повторной передачи к серверному компоненту 502, когда буфер 503 вновь станет полным.

Размер ответа обычно бывает в среднем большим, чем размер запроса. По этой причине размер предназначенных для ответа буферов 505 и 506 обычно выполнен большим, чем размер предназначенных для запроса буферов 503 и 504. В одном варианте осуществления настоящего изобретения оптимальным размером буферов 505 и 506, предназначенных для ответа, был определен 96 кБ при размере 32 кБ буферов 503 и 504, предназначенных для запроса, т.е. в отношении 3 к 1. В одном варианте осуществления клиентский компонент электронной почты имеет возможность настройки размера любого из буферов 503, 504, 505 и 506.

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

На Фиг.6 показана операция быстрой передачи, имеющая, по меньшей мере, два цикла «запрос-ответ». В первом запросе 601 УОП (например, FXPrepare («Подготовить»)) инициализирует на сервере 502 источник данных быстрой передачи. На сервере обрабатывают только FXPrepare (т.е. источник данных быстрой передачи инициализирован) и ее результат возвращают в первом ответе 602. Во втором запросе 603 УОП (например, FXGetBuffer («Получить Буфер»)) осуществляет запрос к серверу на заполнение буфера 505 из «быстрого» источника данных. Сервер опорожняет «быстрый» источник данных в буфер и возвращает результат во втором ответе 604. Если выходной буфер 505 для серверного компонента электронной почты заполнен прежде, чем опорожнен «быстрый» источник, то могут быть необходимы дополнительные УОП «FXGetBuffer».

На Фиг.6 показана операция быстрой передачи, имеющая только один цикл «запрос-ответ». В первом запросе 605 серверный компонент 502 электронной почты обрабатывает как FXPrepare, так и FXGetBuffer, и результаты обеих операций возвращает в первом ответе 606. Результат FXPrepare доступен FXGetBuffer на серверном компоненте 502 электронной почты, поскольку часть буфера 503, 504, 505 и 506 определена явным образом как совместно используемая таблица данных. Желательно сокращение количества циклов «запрос-ответ», поскольку это приводит к более эффективной передаче данных. Операция быстрой передачи, имеющая более чем один цикл «запрос-ответ», может происходить в том случае, когда буфер 505 слишком полон для того, чтобы сохранить результат УОП FXGetBuffer.

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

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

В соответствии с одним аспектом настоящего изобретения количество циклов «запрос-ответ» минимизируют автоматически посредством указания того, что ключевые УОП (например, FXGetBuffer) освобождены от требования предсказания размера их результата. Вместо этого такие УОП обрабатывают серверным компонентом 502 электронной почты до тех пор, пока не достигнуто ограничение буфера 505 (который является таким же, как и буфер 506).

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

УОП, которая может быть использована протоколом для обмена информацией с серверами предшествующих версийУОП, которая может быть использована протоколом для обмена информацией с серверами наиболее недавней версии
ИД (ID) УОП FXGetBufferFXGetBuffer
Параметры, используемые в множественных режимахТребуемый размер: размер, который сервер должен резервировать в своем выходном буфереТребуемый размер: установлен равным значению, превосходящему
максимальное, ожидаемое предшествующими версиями, например, равным значению более 32 кБ. Это сигнализирует серверу о поиске нового параметра предельного размера
Новые параметрыНе доступныПредельный размер: информирует сервер о верхнем пределе, до которого сервер может заполнять свой выходной буфер

УОП для серверных компонентов предшествующей версии сходны по построению с существующими УОП предшествующего уровня техники. То есть УОП предсказывают и определяют размер выходного буфера (например, буфера 505 (для) посылки), который должен быть резервирован для сохранения ответа. В отличие от этого, определяемый размер выходного буфера в наиболее недавней версии серверного компонента не предсказывают, а вместо этого устанавливают равным значению, превосходящему максимальное, ожидаемое серверными компонентами предшествующих версий, например равным значению более 32 кБ. Тот факт, что размер выходного буфера определяют превосходящим значение, ожидаемое серверными компонентами, дает сигнал серверному компоненту о поиске нового параметра предельного размера, которым может быть, например, заполнение выходного буфера для серверного компонента. Такие характеристики автоматически минимизируют количество циклов «запрос-ответ», только с небольшим увеличением сложности серверного компонента электронной почты, обрабатывающего УОП.

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

В сети электронной почты одной из обычных обязанностей протокола является достижение передачи объектов данных, например сообщений электронной почты, между клиентскими компонентами электронной почты и серверными компонентами электронной почты. Последующие примеры таких объектов данных включают в себя папки электронной почты, которые могут содержать сообщения электронной почты и другие объекты данных, и объекты данных для ассоциированной с папкой информации (АПИ, FAI), которые могут, например, содержать правила для обработки сообщений электронной почты или определять, как будут визуально воспроизведены объекты данных, которые папка содержит. Объекты данных могут быть «непрозрачными» для клиентского компонента электронной почты; то есть клиентский компонент электронной почты может не иметь средств для интерпретации содержимого объекта данных. В качестве альтернативы, объекты данных могут быть составлены из именованных свойств, например сообщение электронной почты может содержать свойства, именованные как «to» (конечный получатель), «from» (отправитель), «subject» (предмет), «importance» (важность), «body 1» (блок 1), «body 2», «body 3», «attachment 1» (вложение), «attachment 2» и так далее.

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

Например, сообщение электронной почты может быть составлено из набора свойств заголовка и из набора свойств