Система и способ усовершенствованной синхронизации между сервером и клиентом

Иллюстрации

Показать все

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

Реферат

ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ НА ИЗОБРЕТЕНИЕ

Эта заявка на изобретение испрашивает приоритет заявки на патент США № 60/437869, зарегистрированной в досье патентного поверенного 3 января 2003 года под номером 220635, которая имеет название "SYSTEM AND METHOD FOR IMPROVED CLIENT SERVER COMMUNICATIONS" ("Система и способ усовершенствованной связи клиент-сервер") и включена сюда путем ссылки.

ОБЛАСТЬ ТЕХНИКИ

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

ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ

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

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

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

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

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

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

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

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

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

На Фиг.8А приведена схема последовательности передачи, на которой показан режим передачи элементов данных целиком.

На Фиг.8Б приведена схема последовательности передачи, на которой показан режим первоочередной передачи заголовков.

На Фиг.8В приведена схема последовательности передачи, на которой показан режим передачи только заголовков.

На Фиг.8Г приведена схема последовательности передачи, на которой показан режим передачи, являющийся исключением по отношению к режиму первоочередной передачи заголовков или к режиму передачи только заголовков.

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

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

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

На Фиг.11Б приведена схема последовательности операций, на которой показана процедура оптимизации части большого двоичного объекта, характеризующего состояние (stateblob) согласно настоящему изобретению.

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

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

На Фиг.14А изображена схема протокола, на которой показан пример протокола, посредством которого осуществляют передачу информации об ошибках на уровне дистанционно выполняемых операций (ДВО) (ROP).

На Фиг.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 может представлять собой энергозависимое запоминающее устройство (например, оперативное запоминающее устройство (ОЗУ)), энергонезависимое запоминающее устройство (например, постоянное запоминающее устройство (ПЗУ) или флэш-память) либо некоторую совокупность этих двух запоминающих устройств. Эта наиболее простая базовая конфигурация изображена на Фиг.2 в виде пунктирной линии 18. Кроме того, компьютер может также иметь дополнительные элементы/функциональные возможности. Например, компьютер 10 может также содержать дополнительное запоминающее устройство (сменное 201 и/или стационарное 202), в том числе на магнитных или оптических дисках либо на ленте, но эти примеры не являются ограничивающими. Компьютерные средства хранения данных представляют собой энергозависимые и энергонезависимые, сменные и стационарные носители информации, реализованные любым способом или посредством любой технологии хранения информации, в том числе исполняемые посредством компьютера команд, структур данных, программных модулей или иных данных. Компьютерными средствами хранения данных являются, в том числе, ОЗУ, ПЗУ, электрически стираемые программируемые ПЗУ (ЭСППЗУ), флэш-память, постоянные запоминающие устройства на компакт-дисках (CD-ROM), универсальные цифровые диски (УЦД) (DVD) или иные оптические запоминающие устройства, магнитные кассеты, магнитная лента, запоминающие устройства на магнитных дисках, или иные магнитные запоминающие устройства, либо любой другой носитель информации, который может быть использован для запоминания желательной информация и к которому компьютер 10 может осуществлять доступ, но эти примеры не являются признаком, ограничивающим изобретение. Любые такие компьютерные средства запоминания данных могут являться частью компьютера 10.

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

Компьютер 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, содержащее информацию о версии клиента, например, в виде метки (отметки) версии клиентского компонента. В ответ на сообщение 403 серверный компонент 402 электронной почты посылает сообщение 404, содержащее информацию о версии сервера, например, в виде метки (отметки) версии серверного компонента.

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

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

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

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

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

Усредненный объем ответа обычно является большим, чем объем запроса. Поэтому конфигурацию обычно устанавливают таким образом, что объем буферов 505 и 506 для ответов является большим, чем объем буферов 503 и 504 для запросов. В одном из вариантов осуществления изобретения был определен оптимальный объем буферов 505 и 506 для ответов, равный 96 КБ, при объеме буферов 503 и 504 для запросов, равном 32 КБ, то есть их отношение равно 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 возвращают результаты обеих операций. В серверном компоненте 502 электронной почты результат операции ПодготовкаВП (FXPrepare) доступен для запроса ПолучитьБуферВП (FXGetBuffer), поскольку часть каждого из буферов 503, 504, 505 и 506 задана в явном виде как таблица совместно используемых данных. Желательно уменьшить количество циклов запросов-ответов, поскольку это обеспечивает более эффективную передачу данных. Операция быстрой передачи, содержащая более одного цикла запросов-ответов, может иметь место в том случае, когда буфер 505 слишком переполнен для того, чтобы обеспечить сохранение результата ДВО ПолучитьБуферВП (FXGetBuffer).

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

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

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

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

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

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

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

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