Транспортная агностическая служба передачи сообщений с режимом извлечения



Транспортная агностическая служба передачи сообщений с режимом извлечения
Транспортная агностическая служба передачи сообщений с режимом извлечения
Транспортная агностическая служба передачи сообщений с режимом извлечения
Транспортная агностическая служба передачи сообщений с режимом извлечения

 


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

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

Изобретение относится к средствам доставки сообщений. Технический результат заключается в повышении надежности доставки сообщений. Отправляют первое сообщение от клиентского устройства на соответствующий адаптер при помощи первого протокола обмена информацией. Принимают первое сообщение в адаптере. Отправляют от адаптера к клиентскому устройству при помощи первого протокола обмена информацией ответа, указывающего на то, что первое сообщение было принято. Принимают ответ в клиентском устройстве. Повторно отправляют от клиентского устройства к адаптеру первого сообщения в случае, если ответ от адаптера не был принят в клиентском устройстве в течение заранее определенного периода времени. Генерируют в адаптере второе сообщение на основе первого сообщения. Отправляют от адаптера на процессор сервера второе сообщение при помощи второго протокола обмена информацией и выполняют в процессоре сервера, по меньшей мере, одну команду на основе второго сообщения. 2 н. и 23 з.п. ф-лы, 4 ил.

 

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

Данная заявка испрашивает приоритет в соответствии с заявкой на патент США № 10/750191, поданной 31 декабря 2003 г., раскрытие которой включено сюда в качестве ссылки во всей полноте.

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

Данное изобретение имеет отношение к области систем доставки сообщений. Более подробно, данное изобретение относится к надежности сообщений в отправке и запрашивании сообщений.

Уровень техники

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

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

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

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

Раскрытие изобретения

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

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

Пользователь клиентского устройства желает принять некоторые или все свои сообщения, ожидающие доставки в хранилище сообщений. Пользователь желает принять свои сообщения на клиентском устройстве, которое он использует, либо в какой-либо другой конечной точке. Клиентское устройство пользователя генерирует сообщение, определяющее сообщение, которое пользователь желает принять, и требуемую конечную точку. Клиентское устройство пользователя генерирует для сообщения уникальный идентификатор сообщения и затем отправляет к серверу сообщение вместе с уникальным идентификатором сообщения. Затем сервер может ответить клиентскому устройству, что сообщение с уникальным идентификатором сообщения было принято. Если клиентское устройство не приняло ответ от сервера в течение определенного времени, клиентское устройство повторно отправляет сообщение и уникальный идентификатор. Затем сервер может извлечь указанные сообщения и отправить их к указанной конечной точке.

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

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

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

Фигура 1 представляет собой блок-схему обычной системы, пригодной для описания признаков настоящего изобретения;

Фигура 2 представляет собой диаграмму, пригодную для описания обычного способа обеспечения доставки сообщений между клиентским устройством и сервером в соответствии с настоящим изобретением;

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

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

Подробное описание предпочтительного варианта осуществления

Краткий обзор

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

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

Иллюстративные варианты осуществления

В соответствии с настоящим изобретением Фигура 1 изображает блок-схему иллюстративного варианта осуществления транспортной агностической службы передачи сообщений с режимом извлечения 100, которая обеспечивает возможность передачи, образования очереди, и/или приема сообщений посредством и между множеством различных устройств и форматов. Обеспечены хранилище сообщений 101, процессор сервера 102, множество адаптеров клиентских устройств 103, 104 и 105, и множество клиентских устройств 106, 107 и 108. Хранилище сообщений 101 может использоваться для хранения сообщений, отправленных и/или полученных клиентскими устройствами. Сообщения могут включать в себя тело сообщения, идентификатор отправителя сообщения, адресата конечной точки сообщения, и любую другую информацию, которая может быть связана с сообщением. Конечная точка может быть определена пользователем, клиентским устройством или, например, приложением. Сообщения сохраняются до тех пор, пока от процессора 102 сервера не будет принята команда на удаление сообщения. Очевидно, что для хранения данных могут использоваться любой способ, система или методика, известные из уровня техники.

Процессор сервера 102 используется для обмена информацией с адаптерами клиентских устройств 103, 104, 105 и хранилищем сообщений 101. Адаптеры клиентских устройств могут запрашивать выполнение определенных операций процессором 102 сервера над хранилищем 101 сообщений. Эти операции могут включать в себя добавление, удаление и/или извлечение сообщений из хранилища 101 сообщений. Будет понятно, что процессор 102 сервера предоставляет гибкость в основной конструкции хранилища 201 сообщений, в связи с тем, что любые изменения на хранилище 101 сообщений обычно выполняются в соответствии с модифицированием процессора 102 сервера и не затрагивают функционирование адаптеров клиентских устройств.

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

В иллюстративных целях относительно настоящего примера описываются три адаптера клиентских устройств и три клиентских устройства. Например, для обмена информацией между клиентским устройством 106 ПЦП и процессором сервера 102 используется адаптер 103 ПЦП. Клиентское устройство 106 ПЦП может представлять собой обычный персональный цифровой помощник, известный из уровня техники. Точно так же адаптер 104 электронной почты используется для обмена информацией между клиентским устройством 107 электронной почты и процессором 102 сервера. Клиентское устройство 107 электронной почты может представлять собой обычное приложение электронной почты, такое как MICROSOFT® Outlook, известное из уровня техники. Кроме того, адаптер 105 SMS используется для обмена информацией между клиентским устройством 108 SMS и процессором 102 сервера. Клиентское устройство 108 SMS может представлять собой обычное устройство сотового телефона, известное из уровня техники.

Пользователь клиентского устройства 106 ПЦП может пожелать отправить сообщение определенной конечной точке. Для целей иллюстрации было выбрано клиентское устройство 106 ПЦП, но очевидно, что для отправления сообщения может использоваться любое клиентское устройство. Конечная точка может представлять собой другого пользователя, приложение или, например, клиентское устройство другого типа. Для этого примера предположим, что конечная точка представляет собой клиентское устройство 108 SMS.

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

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

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

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

Этот запрос может просматривать хранилище 101 сообщений на предмет обнаружения любых сообщений, которые содержат соответствующий уникальный идентификатор сообщения и идентификатор клиентского устройства, который соответствует клиентскому устройству 106 ПЦП. Если хранилище 101 сообщений отыскивает какие бы то ни было пары, то процессор 102 сервера предполагает, что данное сообщение представляет собой дубликат и не будет сохранять сообщение. Очевидно, что поскольку уникальный идентификатор сообщения уникален только для конкретного клиентского устройства, а не для системы в целом, использование идентификатора клиентского устройства вместе с уникальным идентификатором сообщения гарантирует, что сообщения не будут потеряны из-за противоречивых уникальных идентификаторов сообщения.

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

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

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

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

Адаптер 105 SMS может принять запрос от клиентского устройства 108 SMS требующий, чтобы связанные сообщения отправлялись клиентскому устройству 108 SMS. Адаптер 105 SMS после этого может отправить процессору 102 сервера сообщение с запросом обо всех сообщениях с конечной точкой клиентского устройства 108 SMS. Процессор 102 сервера запрашивает хранилище 101 сообщений на предмет сообщений, которые имеют определенную конечную точку, которая соответствует клиентскому устройству 108 SMS. Хранилище 101 сообщений возвращает все соответствующие сообщения на процессор 102 сервера. Процессор 102 сервера может стандартизировать сообщения в формат передачи, требуемый конечной точкой, в этом случае клиентским устройством 108 SMS. Как предварительно обсуждено, сообщения запоминаются в хранилище 101 сообщений в виде XML. Процессор 102 сервера по желанию преобразует сообщения из формата XML в формат, требуемый клиентским устройством 108 SMS. Процессор 102 сервера затем отправляет эти сообщения адаптеру 105 SMS. Адаптер 105 SMS затем может отправить клиентскому устройству 108 SMS сообщения вместе с уникальным идентификатором сообщения. Как только клиентское устройство 108 SMS примет сообщения, оно может отобразить или иным образом предоставить их пользователю.

Клиентское устройство 108 SMS может не принять запрошенные сообщения. Это может являться результатом начального запроса, отправленного адаптеру 105 SMS, потерянного при передаче, или, например, результатом потерянного при передаче ответа от адаптера 105 SMS. В любом случае клиентское устройство 108 SMS, после некоторого (предпочтительно, определенного пользователем) периода времени ожидания, повторно отправит первоначальное сообщение вместе с первоначальным уникальным идентификатором сообщения. Предпочтительно, оно продолжит повторно отправлять первоначальные сообщения с уникальным идентификатором до тех пор, пока оно не примет ответ от адаптера 105 SMS, содержащий соответствующий уникальный идентификатор. Любые дублирующиеся ответы, которые могут приходить, опознаваемые по уникальному идентификатору сообщения, по желанию будут игнорироваться клиентским устройством 108 SMS.

Пользователь клиентского устройства 108 SMS после этого может принять свои сообщения. Эти сообщения могут содержать информацию, которую пользователь желает отправить приложению электронной почты. Например, сообщения содержат текст или прикрепленные файлы, которые пользователь может более легко просмотреть почтовым приложением на настольном компьютере. При условии, что пользователь клиентского устройства 108 SMS желает отправить определенные сообщения клиентскому устройству 207 электронной почты, он может отправить сообщение адаптеру 105 SMS, чтобы отправить выбранные сообщения конечной точке, соответствующей клиентскому устройству 107 электронной почты, вместе с уникальным идентификатором сообщения, чтобы гарантировать прием сообщения адаптером 105 SMS.

Как только адаптер SMS 105 примет сообщение, он может отправить клиентскому устройству 108 SMS ответ, указывающий, что он принял сообщение. Клиентское устройство 108 SMS может повторно отправить сообщение, если оно не приняло ответ в течение периода времени ожидания (предпочтительно, определенного пользователем).

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

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

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

На этапе 201 клиентское устройство 220 отправляет серверу 230 сообщение вместе с уникальным идентификатором сообщения. Этап 201 далее иллюстрируется по отношению к этапу 301 с фигуры 3. На этапе 301 уникальный идентификатор сообщения генерируется и отправляется серверу вместе с сообщением. Кроме того, запускается таймер, подсчитывающий время, истекшее с момента отправления сообщения. Очевидно, для что контроля времени могут использоваться любые известные из уровня техники способ, система или методика.

Как проиллюстрировано на этапе 202, сообщение, отправленное серверу 230, не принято по разнообразным причинам, некоторые из которых были описаны выше относительно Фигуры 1. После некоторого определенного времени ожидания ('t'), которое может являться заранее определенным и/или программируемым пользователем, клиентское устройство 220 определяет, что оно не приняло ответ на сообщение от сервера 230. На этапе 203 клиентское устройство 220 повторно отправляет сообщение вместе с уникальным идентификатором сообщения. На этапе 204 сервер 230 принимает сообщение и после этого может выполнить команды, содержащиеся в сообщении.

Этапы 203 и 204 дополнительно иллюстрируются относительно этапов 302-304. На этапе 302 может быть определено, был ли при проверке переменной принят соответствующий ответ на сообщение, такой как «сообщение_принято», который предпочтительно является переменной типа флаг, которая является установкой, указывающей на то, было ли принято соответствующее сообщение. Может быть понятно, что для определения того, прибыло ли сообщение, могут использоваться любые способ, методика или система, известные из уровня техники. Если сообщение было принято, то обработка продолжается на этапе 399, где подпрограмма завершается. Если сообщение не было принято, обработка продолжается на этапе 303.

На этапе 303 определяют, истекло ли с момента отправления первоначального сообщения максимальное время t, указывающее, что сообщение нужно отправить повторно. Текущее значение таймера сравнивается с t. Если значение таймера меньше, чем t, процесс возвращается на этап 302; в противном случае процесс продолжается на этапе 304.

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

Возвращаясь к Фигуре 2, как проиллюстрировано на этапе 205, сервер 230 отправляет ответ клиентскому устройству 220 о том, что он принял сообщение. В ответ сервер 230 может присоединить уникальный идентификатор сообщения, отправляемый с сообщением, которому он соответствует.

На этапе 206 ответ, отправленный клиентскому устройству 230, не принят по разнообразным причинам, некоторые из которых описаны выше. Затем, на этапе 207, время t истекает, и клиентское устройство 220 определяет, что оно не приняло ответ на первоначальное сообщение. Клиентское устройство 220 может не знать, что сообщение было фактически принято. Таким образом, клиентское устройство 220 повторно отправляет сообщение вместе с уникальным идентификатором сообщения. Этапы 206 и 207 далее иллюстрируются на фигуре 3 относительно этапов 302-304, описанных выше.

На этапе 208 сервер 230 может принять сообщение, которое было отправлено в качестве дубликата на этапе 207. Сервер 230 распознает, что это предварительно принятое от клиентского устройства 220 сообщение с тем же самым уникальным идентификатором сообщения, и поэтому уже имеет выполняемые команды, содержащиеся в сообщении. Соответственно, сервер 230 может предположить, что сообщение, которое он отправил на этапе 205, не было принято. На этапе 209 сервер 230 может повторно отправить ответ на сообщение, которое было первоначально отправлено на этапе 205.

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

Этап 210 дополнительно проиллюстрирован на этапах 302 и 399. На этапе 302 определяют, был ли соответствующий ответ на сообщение принят при проверке переменной «сообщение_принято». Переменная типа флаг «сообщение_принято» устанавливается для индикации того, было ли соответствующее сообщение принято. Может быть понятно, что для определения того, прибыло ли сообщение, могут использоваться любые способ, методика или система, известные из уровня техники. Если сообщение было принято, то процессы могут перейти на этап 399. Если сообщение не было принято, процесс может перейти на этап 303. На этапе 399 уже может быть определено, что ответ был принят, после чего процесс может завершиться.

Обычная вычислительная среда

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

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

В отношении Фигуры 4 обычная система для осуществления изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 410. Компоненты компьютера 410 могут включать в себя, но не ограничиваясь перечисленным, процессор 420, системную память 430 и системную шину 421, которые соединяют различные системные компоненты, в том числе и системную память с процессором 420. Системная шина 421 может являться любой из нескольких типов структур шин, в том числе шиной памяти или контроллером памяти, периферийной шиной, и локальной шиной, использующей любую из разнообразных архитектур шин.

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

Системная память 430 включает в себя компьютерные носители данных в форме энергозависимой памяти и/или энергонезависимой памяти, такой как постоянное запоминающее устройство 431 (ПЗУ) и оперативная память 140 (ОЗУ). Базовая система ввода-вывода 433 (BIOS), содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера 410, например, при начальном запуске, обычно хранится в ПЗУ 431. В качестве примера, а не ограничения, Фигура 4 иллюстрирует операционную систему 434, прикладные программы 435, другие программные модули 436 и программные данные 437.

Компьютер 410 также может включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера, Фигура 4 иллюстрирует жесткий диск 441, который считывает с и записывает на несменный, энергонезависимый магнитный носитель, магнитный дисковод 451, который считывает с и записывает на сменный, энергонезависимый магнитный диск 452, и оптический дисковод 455, который считывает с и записывает на сменный, энергонезависимый оптический диск 456. Жесткий диск 441 обычно связан с системной шиной 421 через несменный интерфейс запоминающего устройства, такой как интерфейс 440, а привод магнитного диска 451 и привод оптического диска 455 обычно связаны с системной шиной 421 сменным интерфейсом запоминающего устройства, таким как интерфейс 450.

Диски и связанные с ними машиночитаемые носители обеспечивают хранение компьютерно-читаемых команд, структур данных, программных модулей и других данных для компьютера 410. На Фигуре 4, например, жесткий диск 441 иллюстрируется в качестве хранилища операционной системы 444, прикладных программ 445, других программных модулей 446 и данных 447 программ. Следует отметить, что эти компоненты могут являться либо теми же самыми, либо отличными от операционной системы 434, прикладных программ 435, других программных модулей 436 и данных программ 437. Пользователь может вводить команды и информацию в компьютер 410 через устройства ввода, такие как клавиатура 462 и указывающее устройство 461, обычно называемое мышью, шаровым манипулятором (трэкболом) или сенсорной панелью. Эти и другие устройства ввода часто связаны с процессором 420 через вводной интерфейс 460 пользователя, который присоединяется к системной шине, но может быть присоединен при помощи другого интерфейса и структуры шины. Монитор 491 или устройство отображения другого типа также связан с системной шиной 421 через интерфейс, такой как видеоинтерфейс 490. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 497 и принтер 496, который может быть связан через периферийный интерфейс вывода 495.

Компьютер 410 может функционировать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 480. Удаленный компьютер 480 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство или другой обычный сетевой узел, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 410, несмотря на то, что на Фигуре 4 было проиллюстрировано только запоминающее устройство 481. Изображенные логические соединения включают в себя локальную сеть 471 и глобальную сеть 473, но также могут включать в себя другие сети.

При использовании в рабочей среде локальной сети компьютер 410 подключен к локальной сети 471 через сетевой интерфейс или адаптер 470. При использовании в рабочей среде глобальной сети компьютер 410 обычно включает в себя модем 472 или другие средства установления связи по глобальной сети 473, такой как Интернет. Модем 472, который может являться внутренним или внешним, может быть подключен к системной шине 421 через вводной интерфейс 460 пользователя, или другой соответствующий механизм. В сетевом окружении программные модули, изображенные относительно компьютера 410, или его частей, могут храниться в удаленном запоминающем устройстве. В качестве не ограничивающего примера, Фигура 1 иллюстрирует удаленные прикладные программы 485 как постоянно хранящиеся в запоминающем устройстве 181. Будет понятно, что показанные сетевые подключения являются обычными и могут использоваться другие средства установления связи между компьютерами.

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

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

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

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

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

3. Система по п.2, в которой общий второй протокол связи отличается от третьего протокола связи.

4. Система по п.2, в которой третий протокол связи отличается от соответствующего первого протокола связи.

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

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

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

8. Система по п.7, в которой оконечная точка ассоциирована с первым клиентом.

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

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

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

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

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

14. Система по п.1, в которой соответствующий первый протокол связи отличается от общего второго протокола связи.

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

16. Способ по п.15, в котором соответствующий первый протокол связи отличается от общего второго протокола связи.

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

18. Способ по п.17, в котором при сохранении данных в запоминающем устройстве:
определяют, является ли соответствующее второе сообщение дубликатом уже сохраненного сообщения; и
отклоняют соответствующее второе сообщение, если оно представляет собой дубликат.

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

20. Способ по п.19, в котором оконечная точка ассоциирована с первым клиентом.

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

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

23. Способ по п.15, дополнительно содержащий этап, на котором определяют в соответствующем адаптере или общей серверной подсистеме, является ли принятое соответствующее первое сообщение дубликатом уже принятого сообщения.

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

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



 

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

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

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

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

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

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

Изобретение относится к технологии мобильного мультимедийного вещания, а конкретнее к способу передачи электронного справочника услуг (ESG) мобильного мультимедийного вещания.

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

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

Изобретение относится к радиоэлектронным системам связи с использованием радиоизлучения при размещении станции в наземном мобильном объекте и может быть использовано в качестве земной станции (ЗС) системы спутниковой связи.

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

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

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

Изобретение относится к вычислительной технике. .

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

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

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

Изобретение относится к области обеспечения служб расширенного обмена сообщениями. .

Изобретение относится к вычислительной технике. .

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

Изобретение относится к способу управления объектами приложений
Наверх