СОГЛАСОВАНИЕ И ПРОМЕЖУТОЧНАЯ ОБРАБОТКА ПРИ ИСПОЛЬЗОВАНИИ АРХИВОВ ИНФОРМАЦИОННОГО ОБМЕНА
COORDINATION AND INTERMEDIATE PROCESSING USING INFORMATION EXCHANGE ARCHIVES

Уровень техники
Электронная почта (e-mail) обеспечивает способ передачи данных с промежуточным хранением для сквозной доставки сообщений, который предоставляет возможность распространения сообщений через несколько машин, по различным организациям и сетям, а также возможность сохранения при временных перерывах связи. Недостаток этого асинхронного способа заключается в том, что посылающий пользователь или организация не имеет возможности достоверной фиксации того, принял ли получатель сообщение, когда был осуществлен прием, а также была ли успешно выполнена какая-либо обработка приема почты.
Эта проблема особенно распространена в отношении архивов электронной почты. Фирмы и организации, которые руководствуются требованиями сохранения электронной почты из-за соблюдения требований регулирующих органов или исполнительных документов, нуждаются в возможности поиска и получения электронных писем из таких архивов. Невозможность выполнения этого может привести к существенным штрафам и падению репутации. Из-за неспособности существующих систем электронной почты гарантировать, что отправленное в архив сообщение было успешно сохранено в архиве, эти фирмы несут существенные расходы (убытки) на необходимость выполнения поиска в большом количестве резервных копий, помимо их архива.
Вследствие концепции систем формирования сообщений электронной почты существует несколько потенциальных точек потери данных по пути к архиву. Например, система формирования электронной почты или промежуточная система электронной почты может быть подвергнута сбою программных или аппаратных средств, и сообщение, предназначенное для передачи в архив, теряется. Кроме того, фронтальная система электронной почты архива, где принимаются сообщения, или система ввода архива, где сообщения сохраняются в базу данных, может быть подвергнута сбою программных или аппаратных средств, и сообщение, предназначенное для передачи в архив, теряется. Следовательно, необходимы усовершенствования для решения этих и других проблем, а также для предоставления гарантии сквозной доставки и архивирования сообщения в среде без транзакций.
Сущность изобретения
Настоящая сущность обеспечивается для ввода набора понятий в упрощенной форме, которые дополнительно описываются в подробном описании ниже. Настоящая сущность не предназначается ни для идентификации ключевых признаков или существенных отличительных признаков заявленного предмета, ни для использования в целях ограничения объема заявленного предмета.
Различные варианты осуществления ориентированы на технологии для согласования и промежуточной обработки сообщений, отправленных сервером для сохранения в архиве. Некоторые технологии могут содержать этапы приема сообщения, предназначенного для согласования, в соответствии с сообщением, отправленным сервером в архив для сохранения, классификации принятого сообщения для согласования, выдачи архиву запроса подтверждения доставки, в соответствии с классификацией сообщения для согласования, и определения того, было ли сообщение, отправленное с сервера в архив, сохранено в архиве, на основе ответа на запрос подтверждения доставки. После приема отрицательного ответа на запрос подтверждения доставки может быть выдан повторный запрос. Сообщение, предназначенное для согласования, может быть повторно представлено в архив после приема отрицательного ответа на повторный запрос. Сообщение, предназначенное для согласования, может быть сохранено до тех пор, пока не будет принято подтверждение, и удалено после приема положительного ответа на запрос подтверждения доставки. Также описаны и заявлены и другие варианты осуществления.
Эти и другие отличительные признаки и преимущества станут очевидными после прочтения следующего подробного описания, а также после просмотра приложенных чертежей. Следует подразумевать, что предшествующее общее описание, а также следующее подробное описание являются исключительно пояснительными и не ограничивают заявленные аспекты.
Краткое описание чертежей
Фиг.1 иллюстрирует вариант осуществления операционной среды.
Фиг.2 иллюстрирует вариант осуществления вычислительного устройства.
Фиг.3 иллюстрирует вариант осуществления приложения согласования.
Фиг.4 иллюстрирует вариант осуществления диаграммы.
Фиг.5 иллюстрирует вариант осуществления потока сообщений.
Фиг.6 иллюстрирует вариант осуществления логического потока.
Фиг.7 иллюстрирует вариант осуществления изделия.
Подробное описание
Различные варианты осуществления включают в себя физические или логические структуры, разработанные с возможностью выполнения определенных операций, функций или служб. Структуры могут содержать физические структуры, логические структуры или их комбинацию. Физические или логические структуры реализуются с использованием элементов аппаратных средств, элементов программных средств или их комбинации. Однако описания вариантов осуществления со ссылкой на конкретные элементы аппаратных или программных средств предназначаются в качестве примеров, а не ограничений. Решения об использовании элементов аппаратных или программных средств для фактического осуществления на практике варианта осуществления зависит от ряда внешних факторов, таких как желательная вычислительная скорость, уровни мощности, параметры теплоустойчивости, ресурсы цикла обработки, скорости ввода данных, скорости вывода данных, ресурсы памяти, скорости шины данных и других ограничений расчетных параметров или характеристик. Помимо всего прочего, физические или логические структуры могут иметь соответствующие физические или логические соединения для передачи информации между структурами в форме электронных сигналов или сообщений. Соединения могут содержать проводные и/или беспроводные соединения, как предназначается для информации или конкретной структуры. Следует отметить, что любая ссылка на «один вариант осуществления» или «вариант осуществления» означает, что конкретная функция, структура или параметр, описанные в связи с вариантом осуществления, включены, по меньшей мере, в один вариант осуществления. Упоминания фразы «в одном варианте осуществления» в различных местах описания не ссылаются в обязательном порядке на один и тот же вариант осуществления.
Обеспечиваются различные технологии для согласования и промежуточной обработки сообщений, отправленных сервером для сохранения в архиве. Некоторые технологии могут содержать этап приема сообщения, предназначенного для согласования, в соответствии с сообщением, отправленным сервером для сохранения в архиве. Принятое сообщение может быть классифицировано для согласования, а также архиву может быть выдан запрос подтверждения доставки, в соответствии с классификацией сообщения для согласования. На основе ответа на запрос подтверждения доставки может быть достоверно определено, сохранилось ли в архиве сообщение, отправленное в архив для сохранения. Дополнительно или альтернативно, после приема отрицательного ответа на запрос подтверждения доставки может быть выдан повторный запрос. В случае приема отрицательного ответа на повторный запрос в архив может быть повторно представлено сообщение, предназначенное для согласования. Сообщение, предназначенное для согласования, может быть сохранено до тех пор, пока не будет принято подтверждение, и удалено исключительно после приема положительного ответа на запрос подтверждения доставки, для предоставления гарантии доступности сообщения.
Фиг.1 иллюстрирует блок-схему для операционной среды 100, подходящую для осуществления на практике различных вариантов осуществления. Операционная среда 100 может содержать элементы, разработанные для варианта реализации среды одного объекта или среды множества распределенных объектов. Каждый элемент может быть реализован в качестве элемента аппаратных средств, элемента программных средств или любой их комбинации, как является желательным для заданного набора ограничений расчетных параметров или характеристик. Примеры элементов аппаратных средств могут включать в себя устройства, компоненты, процессоры, микропроцессоры, схемы, элементы схемы (например, транзисторы, резисторы, конденсаторы, индукторы и т.д.), интегральные схемы, специализированные интегральные схемы (ASIC), программируемые логические устройства (PLD), цифровые сигнальные процессоры (DSP), логическую матрицу с эксплуатационным программированием (FPGA), блоки памяти, логические вентили, регистры, полупроводниковое устройство, кристаллы, микрокристаллы, комплекты кристаллов и т.д. Примеры элементов программных средств могут включать в себя любые программные компоненты, программы, приложения, компьютерные программы, прикладные программы, системные программы, машинные программы, программные средства операционной системы, промежуточные программные средства, программно-аппаратные средства, программные модули, подпрограммы, функции, способы, интерфейсы, интерфейсы на основе программных средств, прикладные программные интерфейсы (API), наборы команд, вычислительный код, машинный код, сегменты кода, сегменты машинного кода, слова, значения, символы или любую их комбинацию.
Используемые в настоящем документе термины «система», «подсистема», «компонент» и «модуль» предназначены для ссылки на объект, связанный с компьютером, содержащий либо аппаратные средства, либо комбинацию аппаратных и программных средств, либо программные средства, либо исполняемые программные средства. Например, компонент может быть реализован в качестве процесса, запущенного на процессоре, процессора, накопителя на жестких магнитных дисках, множества устройств хранения (на оптической и/или магнитной среде хранения), объекта, исполняемой программы, потока выполнения, программы и/или компьютера. В качестве иллюстрации, компонент может являться как приложением, запущенным на сервере, так и сервером. Один или несколько компонентов могут располагаться в рамках операции и/или процесса выполнения, кроме того, компонент может быть локализован одним компьютером и/или распределен среди двух и более компьютеров, как является желательным для заданного варианта реализации. Варианты осуществления не ограничиваются данным контекстом.
В примере, иллюстрированном на фиг.1, операционная среда 100, в числе других элементов, может содержать сервер 110 электронной почты и архив 140. Несмотря на то что операционная среда 100, как иллюстрировано на фиг.1, имеет ограниченное количество узлов в определенной топологии, следует понимать, что операционная среда 100 может включать в себя большее или меньшее количество узлов в альтернативных топологиях, как является желательным для заданного варианта реализации. В различных вариантах осуществления сервер 110 электронной почты может быть реализован в пределах системы передачи сообщений электронной почты для отправки и приема сообщения по электронным системам связи. Архив 140 может быть реализован в качестве системы локального или дистанционного архивирования или хранилища данных для архивирования сообщений, принятых по электронным системам связи от системы передачи сообщений электронной почты. Как иллюстрировано, сервер 110 электронной почты и архив 140 могут быть соединены с возможностью передачи информации по сети 118, а также использовать подходящую среду беспроводной или проводной передачи данных. Сервер 110 электронной почты и архив 140 могут передавать информацию по сети 118 и координировать операции друг с другом, что может вовлечь однонаправленный или двунаправленный обмен информацией. Сеть 118 может содержать сеть с коммутацией пакетов, сеть с коммутацией каналов или их комбинацию. Информация, передаваемая по сети 118, может быть реализована в качестве информационных сообщений, отправляемых по различным сетевым интерфейсам. Иллюстративные сетевые интерфейсы включают в себя параллельные интерфейсы, последовательные интерфейсы и интерфейсы шины.
Сервер 110 электронной почты может функционировать для взаимодействия с клиентами передачи сообщений различных типов. В некоторых вариантах реализации сервер 110 электронной почты может обеспечить интерфейс для взаимодействия с клиентской системной программой, такой как прикладная программа MICROSOFT OFFICE OUTLOOK от корпорации Microsoft, Рэдмонд, Вашингтон. Сервер 110 электронной почты также может обеспечить интерфейс для взаимодействия с другими клиентами электронной почты различных типов, в числе прочего включающими в свой состав клиентов упрощенного протокола электронной почты (SMTP), клиентов протокола передачи гипертекста (HTTP), клиентов интерфейса программирования приложений электронной почты (MAPI), клиентов почтового протокола третьей версии (POP3), клиентов протокола интерактивного доступа к электронной почте (IMAP или IMAP4), клиентов сетевого протокола передачи новостей (NNTP), клиентов веб-почты и т.д.
Сервер 110 электронной почты может функционировать для предоставления доступа к сети, мобильного доступа, а также функциональных возможностей синхронизации, приложений информационных служб сети Интернет (IIS) и интерфейса программирования серверных приложений (ISAPI), обеспечивающих службы SMTP, NNTP, IMAP4 и POP3, для предоставления возможности передачи информации по множеству протоколов доступа в сеть Интернет и протоколов на основе HTTP, включающих в себя удаленный вызов процедур (RPC) по протоколу HTTP. В некоторых вариантах реализации сервер 110 электронной почты может передавать данные, отформатированные в качестве сжатых данных в компактном представлении двоичного XML (WbXML), для эффективного использования полосы пропускания для мобильных клиентов. В дополнение к стандартным протоколам сети Интернет, сервер 110 электронной почты также может поддерживать передачу информации по специализированным или нестандартным протоколам, в случае использования компанией или другой организацией.
В различных вариантах реализации сервер 110 электронной почты и/или архив 140 может выполнить одну или несколько технологий согласования и промежуточной обработки, в соответствии с описанными вариантами осуществления. В некоторых вариантах осуществления сервер 110 электронной почты может содержать серверное вычислительное устройство, выполняющее серверную системную программу электронной почты. Соответственно, в некоторых вариантах осуществления одна или несколько технологий согласования и промежуточной обработки могут быть реализованы в качестве функций в пределах серверной системной программы, такой как MICROSOFT EXCHANGE SERVER от корпорации Microsoft, Рэдмонд, Вашингтон. Следует понимать, что варианты осуществления не ограничиваются данным контекстом, и сервер 110 электронной почты может выполнить другие типы приложений, программ или служб, включающие в себя веб-приложения электронной почты, предоставляющие доступ к службам электронной почты через веб-обозреватель.
В некоторых вариантах осуществления архив 140 может содержать серверное вычислительное устройство, выполняющее одно или несколько серверных приложений и/или веб-служб. Архив 140 может реализовать различные веб-службы с использованием форматов, не зависящих от платформы и языка, разработанных для передачи информации по вычислительным сетям, таким как сеть Интернет, с использованием протоколов связи, таких как протокол передачи гипертекста (HTTP), протокол передачи гипертекста по протоколу безопасных соединений (HTTPS), упрощенный протокол электронной почты (SMTP), протокол передачи файлов (FTP) и т.д. Соответственно, в некоторых вариантах осуществления одна или несколько технологий согласования и промежуточной обработки могут быть реализованы в качестве функций в пределах серверного приложения и/или веб-службы. Следует понимать, что варианты осуществления не ограничиваются данным контекстом, и архив 140 может быть реализован посредством систем локального или дистанционного архивирования и/или хранилищ данных других типов.
В целом, как сервер 110 электронной почты, так и архив 140 может содержать или быть реализован посредством любого подходящего типа вычислительного устройства, имеющего вычислительные возможности, а также возможности передачи информации, в соответствии с описанными вариантами осуществления. Для реализации таких возможностей сервер 110 электронной почты и архив 140 могут содержать соответствующие вычислительные системы 120, 120a и системы 130, 130a связи. Вычислительные системы 120, 120a могут включать в себя различные вычислительные элементы, такие как один или несколько процессоров, сопроцессоры, блоки памяти, наборы микросхем, контроллеры, периферийные интегральные схемы, интерфейсы, задающие генераторы (гетеродины), устройства синхронизации, видеокарты, аудиокарты, компоненты ввода/вывода (I/O) мультимедийных данных и т.д. Системы 130, 130a связи могут включать в себя различные элементы связи, такие как передатчик, приемник, приемопередатчик, средство радиосвязи, сетевой интерфейс, процессор основной полосы частот, антенну, усилители, фильтры и т.д.
Вычислительные системы 120, 120a, в числе других элементов, могут выполнить соответствующие серверные программы 122, 142. Серверные программы 122, 142 и входящие в их состав элементы могут содержать или быть выполнены посредством прикладных программ одного или нескольких типов, программных компонентов, программных модулей и/или данных программы, поддерживающей операцию серверной программы 110 электронной почты и архива 140, в соответствии с описанными вариантами осуществления. В некоторых вариантах реализации серверные программы 122 могут быть выполнены на одном физическом серверном вычислительном устройстве. Поочередно, различные серверные программы 122 могут быть выполнены на нескольких серверах, потенциально расположенных в различных доменах и узлах для удовлетворения требованиям географического развертывания и/или обеспечения эффективности и отказоустойчивости, при поддержке большого количества пользователей.
В примере, иллюстрированном на фиг.1, серверные программы 122 могут реализовать одну или несколько серверных ролей, включающих в себя, например, роль 124 транспортного сервера-концентратора и роль 126 сервера почтовых ящиков, функционирующих для предоставления серверу 110 электронной почты определенных служб и функций. Роль 124 транспортного сервера-концентратора может функционировать для обработки входящих и исходящих сообщений, а роль 162 сервера почтовых ящиков может функционировать для размещения почтового ящика и общей папки с данными. Как иллюстрировано, роль 124 транспортного сервера-концентратора может содержать агент 125 ведения журнала, а роль 126 сервера почтовых ящиков может содержать агент 127 согласования. В соответствии с различными вариантами осуществления агент 125 ведения журнала и агент 127 согласования могут выполнить одну или несколько технологий согласования и промежуточной обработки, как более подробно описано ниже. Серверные программы 122 также могут содержать другие серверные программы 128, такие как другие серверные роли и/или серверные приложения других типов, в соответствии с описанными вариантами осуществления.
В примере, иллюстрированном на фиг.1, серверные программы 142 могут реализовать одно или несколько серверных приложений, включающих в себя, например, приложение 144 ведения журнала и приложение 146 согласования, функционирующих для предоставления архиву 140 определенных служб и функций. В соответствии с различными вариантами осуществления приложение 146 ведения журнала и приложение 146 согласования могут взаимодействовать с агентом 125 ведения журнала и агентом 127 согласования для выполнения одной или нескольких технологий согласования и промежуточной обработки, как более подробно описано ниже. Серверные программы 142 также могут содержать другие серверные программы 148, такие как серверные приложения и/или веб-службы других типов, в соответствии с описанными вариантами осуществления.
Сервер 110 электронной почты и архив 140 могут содержать или взаимодействовать с соответствующими хранилищами данных для сохранения элементов, таких как сообщения электронной почты и другие данные, в почтовых ящиках и папках, в соответствии с описанными вариантами осуществления. На основании фиг.1, хранилище данных для сервера 110 электронной почты может быть реализовано посредством базы 150 данных сервера электронной почты, а хранилище данных для архива 140 может быть реализовано посредством базы 160 данных архива. Несмотря на то что в иллюстративных целях изображены отдельные элементы, следует понимать, что в некоторых вариантах осуществления база 150 данных сервера электронной почты может являться частью сервера 110 электронной почты, и/или база 160 данных архива может являться частью архива 140. Также следует понимать, что соответствующие хранилища данных для сервера 110 электронной почты и архива 140 могут располагаться на сервере 110 электронной почты и архиве 140 или в других удаленных устройствах.
Фиг.2 представляет иллюстративную архитектуру для вычислительного устройства 200, подходящего для осуществления на практике различных вариантов осуществления. Например, вычислительное устройство 200 может являться образцом для сервера 110 электронной почты. Как изображено, вычислительное устройство 200 иллюстрирует обычную вычислительную архитектуру для персонального или серверного компьютера, включающую в себя систему обработки, содержащую процессор 202 и системную память 204. Системная память 204 может включать в себя, в числе других типов памяти, оперативную память 206 (RAM) и постоянную память 208 (ROM). Система ввода/вывода (I/O), такая как основная система ввода/вывода (BIOS), может выполнять программы для содействия в передаче информации между элементами в пределах вычислительного устройства 200, как например, при операции запуска с использованием логики, сохраненной в памяти 208 ROM. Системная шина 210 соединяется с возможностью передачи информации со всеми элементами вычислительного устройства 200 для упрощения операций по передаче информации и обработке данных.
Вычислительное устройство 200 дополнительно включает в себя запоминающее устройство 212 большой емкости для сохранения операционной системы 214, такой как операционная система MICROSOFT WINDOWS от корпорации Microsoft, Рэдмонд, Вашингтон, или другой подходящей операционной системы. Запоминающее устройство 212 большой емкости также может сохранять различные прикладные программы, как более подробно описано ниже, а также другие программные модули 216 и данные 218 программы.
Запоминающее устройство 212 большой емкости соединяется с процессором 202 через контроллер запоминающего устройства большой емкости (не изображен), соединенный с системной шиной 210. Запоминающее устройство 212 большой емкости, а также связанный с ним машиночитаемый носитель обеспечивают энергонезависимое сохранение для вычислительного устройства 200. Несмотря на то что содержащееся в настоящем документе описание машиночитаемого носителя ссылается на запоминающее устройство большой емкости, такое как накопитель на жестком магнитном диске или накопитель на лазерном диске, специалистам в данной области техники должно быть понятно, что машиночитаемый носитель может являться любым доступным носителем, к которому можно получить доступ посредством вычислительного устройства 200. В качестве примера, а не ограничения, машиночитаемый носитель может содержать компьютерный носитель хранения и среду связи. Компьютерный носитель хранения включает в себя энергозависимые и энергонезависимые, сменные и несменные носители, реализованные при помощи любого способа или технологии для сохранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерный носитель хранения, в числе прочего, включает в себя RAM, ROM, EPROM, EEPROM, флэш-память или твердотельную память другой технологии, CD-ROM, DVD, или другую оптическую память, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для сохранения желательной информации, а также к которому можно получить доступ посредством компьютера.
В соответствии с различными вариантами осуществления вычислительное устройство 200 может работать в сетевой среде с использованием логических соединений с удаленными компьютерами по сети 118, которая в некоторых вариантах реализации может являться сетью, использующей протокол управления передачей (TCP) и протокол сети Интернет (IP), такой как сеть Интернет. Вычислительное устройство 200 может соединиться с сетью 118 по сетевому интерфейсу 220 (например, по проводному или беспроводному сетевому интерфейсу), соединенному с системной шиной 210. Следует понимать, что сеть 118 может содержать сеть любого типа, в соответствии с описанными вариантами осуществления, включающего в себя, в числе прочего, глобальную сеть (WAN), локальную сеть (LAN) и/или сотовую телефонную сеть, а также, что сетевой интерфейс 220 может поддерживать различные транспортные уровни, такие как GPRS, CDMA 1xRTT, IEEE 802.11, Bluetooth (PAN) и другие, для соединения с множеством сетей и/или удаленных компьютерных систем.
Вычислительное устройство 200 может включать в себя контроллер 222 ввода/вывода для приема и обработки входных данных от нескольких устройств 224 ввода. Пользователь может ввести в команды и информацию в вычислительное устройство 200 через различные устройства 224 ввода, такие как клавиатура и указательное устройство, такое как мышь, трекбол или сенсорная панель. Другие примеры устройств 224 ввода могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или подобное. Устройства 224 ввода могут быть соединены с процессором 202 через контроллер 222 ввода/вывода, который соединен с системной шиной 210, а также могут быть соединены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Контроллер 222 ввода/вывода также может предоставить выходные данные различным устройствам 224 вывода, таким как монитор или устройство отображения другого типа, которое соединено через контроллер 222 ввода/вывода с системной шиной 210, принтер, спикеры и другие периферийные устройства.
Как было упомянуто выше, многие программные модули и файлы данных могут быть сохранены в запоминающем устройстве 212 большой емкости и памяти 206 RAM вычислительного устройства 200. В примере, иллюстрированном на фиг.2, запоминающее устройство 212 большой емкости и память 206 RAM могут сохранять операционную систему 214, а также одну или несколько серверных программ 122, включающих в себя роль 124 транспортного сервера-концентратора, содержащую агент 125 ведения журнала, и роль 126 сервера почтовых ящиков, содержащую агент 127 согласования. В соответствии с различными вариантами осуществления агент 127 согласования может функционировать для выполнения одной или нескольких технологий согласования и промежуточной обработки. Например, в одном варианте осуществления агент 127 согласования может быть реализован так, как описано со ссылкой на фиг.3.
Фиг.3 иллюстрирует один вариант осуществления приложения 300 согласования, подходящего для осуществления на практике различных вариантов осуществления. На основании фиг.1 и 2 в некоторых вариантах реализации приложение 300 согласования может функционировать в качестве агента 127 согласования, в качестве одной из серверных программ 122, которая располагается на сервере 110 электронной почты. Одна или несколько частей приложения 300 электронной почты также могут быть реализованы посредством прикладных программ в памяти 206 RAM вычислительного устройства 200 или в любом другом варианте, известном из уровня техники программных средств.
Как иллюстрировано, приложение 300 электронной почты может включать в себя хранилище 310 сообщений. Несмотря на то что в иллюстративных целях, а не в качестве ограничения, хранилище 310 сообщений было изображено в качестве части приложения 300 согласования, следует понимать, что хранилище 310 сообщений может располагаться в различных местоположениях, в соответствии с описанными вариантами осуществления. Например, хранилище 310 сообщений может располагаться на сервере 110 электронной почты и/или в базе 150 данных сервера электронной почты. В качестве одного неограничивающего примера хранилище 310 сообщений приложения 300 согласования может располагаться в пределах данных 218 программы вычислительного устройства 200 либо в базе данных и/либо в одном или нескольких файлах. В качестве другого неограничивающего примера хранилище 310 сообщений может полностью или частично располагаться в каталоге, определенном посредством пользователя в файловой системе операционной системы, такой как операционная система 214.
В примере, иллюстрированном на фиг.3, хранилище 310 сообщений включает в себя одно или несколько сообщений, ожидающих согласования, которые могут быть классифицированы в качестве сообщения 312 генерации-0 (Gen-0), сообщения 314 генерации-1 (Gen-1), сообщения 316 генерации-2 (Gen-2) и сообщения 318 генерации-3 (Gen-3). В различных вариантах осуществления в соответствии с классификацией сообщений могут быть выданы запросы. Например, запросы могут быть выданы на основе генераций согласования для оптимизации эффективности процесса согласования, а также для минимизации количества запросов архива 140.
В некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы в качестве сообщений 312 Gen-0 на основе задержки, связанной с архивом 140. Сообщения, принятые посредством приложения 300 согласования и классифицированные в качестве сообщений 312 Gen-0, могут соответствовать сообщениям, которые недавно были отправлены в архив 140. В соответствии с различными вариантами осуществления запросы не выдаются для ожидающих сообщений 312 Gen-0, а также откладываются до тех пор, пока не истечет задержка, связанная с архивом 140.
В течение короткого интервала времени, после приема конкретного сообщения посредством приложения 300 согласования, копия конкретного сообщения может быть локально сохранена в кэш-памяти 320, кроме того, к ней может быть предоставлен доступ. В некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы в качестве сообщений 314 Gen-1 на основе интервала времени, в течение которого к копии конкретного сообщения в кэш-памяти 320 может быть предоставлен локальный доступ. Сообщения, принятые посредством приложения 300 согласования и классифицированные в качестве сообщений 314 Gen-1, могут соответствовать сообщениям, доставку и/или обработку которых ожидает архив 140. Кроме того, во время, когда копия сообщения является доступной в кэш-памяти 320, могут быть реализованы сохранения I/O. В различных вариантах реализации для сообщений 314 Gen-1 отправляются запросы подтверждения доставки, а также осуществляется попытка обработки почти всех сообщений в течение срока сохранения кэш-памяти 320.
После приема положительного ответа на запрос подтверждения доставки для конкретного сообщения приложение 300 согласования подтверждает, что сообщение было помещено в архив, а также может удалить сообщение из хранилища 310 сообщений. Если приложение 300 согласования принимает отрицательный ответ относительно конкретного сообщения, то неподтвержденное сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности до тех пор, пока не будет подтверждено, что сообщение было помещено в архив.
В некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы на основе отказа подтверждения архивирования таких сообщений. После приема отрицательных ответов для конкретных сообщений приложение 300 согласования может классифицировать сообщения в качестве сообщений 316 Gen-2. Сообщения могут оставаться классифицированными в качестве сообщений 316 Gen-2 на основе времени, требуемого для устранения задержек сообщений. Ожидающие сообщения, классифицированные в качестве сообщений 316 Gen-2 посредством приложения 300 согласования, могут соответствовать неподтвержденным сообщениям, испытывающим проблемы задержки. В соответствии с различными вариантами осуществления запросы не выдаются для сообщений 316 Gen-2, а также отсрочиваются для предоставления возможности устранения задержек почты.
Ожидающие сообщения, классифицированные в качестве сообщений 318 Gen-3 посредством приложения 300 согласования, могут соответствовать неподтвержденным сообщениям, испытывающим проблемы задержки, которые теперь могут быть устранены. Приложение 300 согласования может выдать повторные запросы для одного или нескольких сообщений 318 Gen-3. После приема положительного ответа для конкретного сообщения приложение 300 согласования может подтвердить, что ранее неподтвержденное сообщение было помещено в архив, а также может удалить сообщение из хранилища 310 сообщений. Если принят отрицательный ответ для повторного запроса, то неподтвержденное сообщение остается в хранилище 310 сообщений для предоставления гарантии его доступности до тех пор, пока не будет подтверждено, что сообщение было помещено в архив.
Если одно или несколько сообщений 318 не могут быть подтверждены, то агент 127 согласования может выполнить промежуточную обработку посредством повторного представления сообщений 318 Gen-3 в архив 140. До подтверждения того, что конкретное сообщение было помещено в архив, неподтвержденное сообщение остается в хранилище 310 сообщений для предоставления гарантии его доступности. Приложение 300 согласования может повторно представить неподтвержденные сообщения 318 Gen-3 в архив 140, а также может сохранять копию каждого неподтвержденного сообщения в хранилище 310 сообщений. После повторного представления конкретного неподтвержденного сообщения в архив 140 процесс согласования может начинаться вновь до тех пор, пока не будет подтверждено, что конкретное сообщение было помещено в архив. Следует понимать, что даже в случае, когда конкретное сообщение не может быть согласовано, сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности.
Как иллюстрировано, приложение 300 электронной почты может включать в себя логику 330 согласования и промежуточной обработки, которая может являться ответственной за выполнение некоторых или всех технологий согласования и промежуточной обработки, описанных в настоящем документе. В примере, иллюстрированном на фиг.3, логика 330 согласования и промежуточной обработки включает в себя логику 322 для приема сообщений, предназначенных для согласования, логику 334 для классификации сообщений, ожидающих согласования, логику 336 для выдачи запросов архива, логику 338 для подтверждения архивирования сообщений, логику 340 для удаления подтвержденных сообщений и логику 342 для промежуточной обработки неподтвержденных сообщений.
В некоторых вариантах реализации логика 330 согласования и промежуточной обработки может располагаться в приложении 300 согласования в качестве части агента 127 согласования на сервере 110 электронной почты. Однако следует понимать, что логика 330 согласования и промежуточной обработки альтернативно или дополнительно может быть реализована в качестве машинно-исполняемых команд, сохраненных на машиночитаемых носителях хранения одного или нескольких типов во множестве местоположений, в соответствии с описанными вариантами осуществления.
Несмотря на то, что иллюстрированный на фиг.3 пример включает в себя конкретную конфигурацию логики, следует понимать, что логика 330 согласования и промежуточной обработки обеспечивает иллюстративный вариант реализации общих функциональных возможностей. Следует подразумевать, что последовательность логики не должна в обязательном порядке соблюдать представленный порядок, если не указано иначе. Кроме того, несмотря на то что логика 330 согласования и промежуточной обработки может быть описана в качестве выполняющей определенную последовательность этапов, в соответствии с альтернативными вариантами осуществления также могут быть выполнены другие последовательности этапов. Кроме того, некоторые отдельные этапы, выполняемые посредством логики 330 согласования и промежуточной обработки, могут включать в себя несколько подэтапов, которые могут быть выполнены в различных последовательностях, как предназначено для отдельного этапа. Помимо всего прочего, в зависимости от конкретного варианта реализации, посредством логики 330 согласования и промежуточной обработки могут быть выполнены дополнительные этапы, а также некоторые этапы могут быть опущены.
Фиг.4 иллюстрирует один вариант осуществления диаграммы 400, изображающей генерации согласования, подходящие для осуществления на практике различных вариантов осуществления. На основе фиг.1-3 в некоторых вариантах реализации сообщения, которые ожидают согласования, могут быть классифицированы на генерации согласования посредством приложения 300 согласования, которое в свою очередь может быть реализовано посредством агента 127 согласования, располагающегося на сервере 110 электронной почты. Однако варианты осуществления не ограничиваются такими вариантами реализации. Кроме того, следует понимать, что термины «классификация» или «генерация» (а также их производные) могут относиться к любой подходящей технологии или группе сообщений, в соответствии с описанными вариантами осуществления. Несмотря на то что некоторые операционные системы или приложения могут не использовать термины «классификация» или «генерация», ссылаясь на классификацию сообщений или группу сообщений, такие сценарии предназначаются для охвата описанными вариантами осуществления.
Как иллюстрировано, сообщения, ожидающие согласования, могут быть классифицированы в качестве сообщений генерации 0 (Gen-0), генерации 1 (Gen-1), генерации 2 (Gen-2) и генерации 3 (Gen-3), в соответствии с соответствующими интервалами (T0-T3) времени. В этом примере сообщение может быть классифицировано в качестве сообщения Gen-0 в случае, когда время, связанное с сообщением, находится в пределах интервала Т0 времени, сообщения Gen-1 - в случае, когда время находится в пределах интервала T1 времени, сообщения Gen-2 - в случае, когда время находится в пределах интервала T2 времени, и сообщения Gen-3 - в случае, когда время находится в пределах интервала T3 времени. Несмотря на то, что некоторые варианты осуществления могут описывать определенные иллюстративные значения, связанные с интервалами (T0-T3) времени, следует понимать, что могут быть использованы и другие подходящие значения. Также следует понимать, что сообщения могут быть классифицированы другими способами, в соответствии с описанными вариантами осуществления.
В различных вариантах реализации время, связанное с конкретным сообщением, может соответствовать количеству времени, которое истекло с момента приема копии журнального отчета, включающего в себя конкретное сообщение. Например, время, связанное с конкретным сообщением, может являться моментом, когда копия журнального отчета, содержащая конкретное сообщение, была принята посредством агента 127 согласования, и/или моментом, когда конкретное сообщение было сохранено в хранилище 310 сообщений. В других вариантах осуществления время, связанное с сообщением, может быть основано на моменте отправки сообщения в архив 140, который может быть отражен в копии журнального отчета.
После приема конкретного сообщения посредством агента 127 согласования в копии журнального отчета оригинальному журнальному отчету может потребоваться короткий интервал времени для доставки в архив 140 и/или обработки посредством архива 140. Соответственно, в некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы на основе задержки, такой как задержка доставки и/или обработки, связанной с архивом 140.
В примере, иллюстрированном на фиг.4, сообщение может быть классифицировано в качестве сообщения Gen-0 в случае, когда время, связанное с сообщением, находится в пределах интервала Т0 времени. Как иллюстрировано, длина интервала Т0 времени может соответствовать ожидаемому уровню обслуживания (SLA) или задержке (ΔSLA) для оригинального журнального отчета, который предназначен для доставки в архив 140. В целом, интервал ΔSLA времени будет являться относительно коротким периодом времени, например, приблизительно равным 5 минутам.
В соответствии с различными вариантами осуществления интервал ΔSLA времени может быть основан на задержке доставки и/или обработки для сообщений, отправленных в архив 140. В некоторых вариантах осуществления интервал ΔSLA времени может быть расчетным или предположительным количеством времени, требуемым для доставки большинства журнальных отчетов в архив 140. Интервал ΔSLA времени также может быть определен посредством продавца соглашений SLA, который определяет уровень обслуживания и/или оперативность работы архива 140. В некоторых случаях, интервал ΔSLA времени может быть основан на информации, предоставляемой посредством архива 140. Например, в некоторых вариантах реализации агент 127 согласования может запросить архив 140 о получении определенной информации о конфигурации, такой как ожидаемый уровень SLA или задержка для обработки сообщений.
Как иллюстрировано, интервал Т0 времени может соответствовать интервалу ΔSLA, а также закончиться по истечении интервала ΔSLA. В различных вариантах реализации конкретное сообщение может быть классифицировано в качестве сообщения Gen-0 в течение интервала Т0 времени, а также по истечении интервала ΔSLA времени со времени, связанного с сообщением, такого как момент приема копии журнального отчета, содержащей конкретное сообщение, посредством агента 127 согласования и/или момент сохранения сообщения в хранилище 310 сообщений. Соответственно, сообщения, принятые посредством агента 127 согласования, а также классифицированные в качестве сообщений Gen-0, могут соответствовать сообщениям, которые недавно были отправлены в архив 140.
За короткий интервал времени, после приема конкретного сообщения посредством агента 127 согласования, копия сообщения, предназначенного для согласования, может быть локально сохранена в кэш-памяти 320, а также к ней может быть предоставлен доступ. Соответственно, в некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы на основе этого интервала времени или срока сохранения кэш-памяти (ΔCache), связанного с кэш-памятью 320. В целом, срок ΔCache сохранения кэш-памяти будет, а в некоторых случаях должен быть больше ожидаемой задержки ΔSLA. В некоторых вариантах осуществления срок ΔCache сохранения кэш-памяти может быть приблизительно равен 10 минутам.
В целом, срок ΔCache сохранения кэш-памяти будет изменяться прямо пропорционально по отношению к памяти RAM, доступной в системе, такой как память 206 RAM. Например, на сервере 110 электронной почты со сроком ΔCache сохранения кэш-памяти, равным 10 минутам, срок ΔCache сохранения кэш-памяти, как правило, может удваиваться посредством удваивания объема памяти RAM. Соответственно, интервал ΔCache времени, как правило, является намного более переменным, чем большинство других интервалов времени, таких как интервал ΔSLA времени, который, как правило, приблизительно равен 5 минутам, и изменяется относительно сложно. Благодаря этой прямой взаимосвязи с памятью RAM срок ΔCache сохранения кэш-памяти может быть легко увеличен посредством расширения памяти RAM на сервере(ах), управляющем агентом 127 согласования. Это предоставляет сроку ΔCache сохранения кэш-памяти возможность достаточного превышения интервала SLA времени по мере необходимости, а также возможность сохранения I/O.
В примере, иллюстрированном на фиг.4, сообщение может быть классифицировано в качестве сообщения Gen-1 в случае, когда время, связанное с сообщением, находится в пределах интервала Т1 времени. Как иллюстрировано, длина интервала Т1 времени может соответствовать окну времени от конца интервала ΔSLA до истечения срока ΔCache сохранения кэш-памяти. В различных вариантах реализации конкретное сообщение может быть классифицировано в качестве сообщения Gen-1 в течение интервала Т1 времени, до истечения срока ΔCache сохранения кэш-памяти, со времени, связанного с сообщением, такого как момент приема копии журнального отчета, содержащей конкретное сообщение, посредством агента 127 согласования и/или момент сохранения сообщения в хранилище 310 сообщений. Соответственно, сообщения, принятые посредством агента 127 согласования и классифицированные в качестве сообщений Gen-1, могут соответствовать сообщениям, доставку и/или обработку которых ожидает архив 140.
В различных вариантах осуществления запросы могут быть выданы в соответствии с классификацией сообщений. Например, запросы могут быть выданы на основе генераций согласования для оптимизации эффективности процесса согласования, а также для минимизации количества запросов архива 140.
Сообщения, принятые посредством агента 127 согласования и классифицированные в качестве сообщений Gen-0, могут соответствовать сообщениям, которые недавно были отправлены в архив 140. В соответствии с различными вариантами осуществления запросы не выдаются посредством агента 127 согласования для ожидающих сообщений, классифицированных в качестве сообщений Gen-0. Например, если запрос о расположении журнального отчета будет отправлен в архив 140 до истечения интервала ΔSLA, то предполагается, что запрос приведет к отрицательному ответу (Nak). Соответственно, выдача запросов не выполняется для сообщений Gen-0 в течение интервала Т0 времени, а также может быть отсрочена до истечения интервала ΔSLA времени.
Сообщения, принятые посредством агента 127 согласования и классифицированные в качестве сообщений Gen-1, соответствуют сообщениям, которые ожидают сохранения в архиве 140. Кроме того, несмотря на то что копия сообщения является доступной в кэш-памяти 320, может быть реализовано сохранение I/O. Однако по истечении срока ΔCache сохранения кэш-памяти копия сообщения может выпасть из кэш-памяти 320, и сохранение I/O более не представится возможным. В различных вариантах осуществления начальные запросы отправляются для ожидающих сообщений, классифицированных в качестве сообщений Gen-1. В таких вариантах осуществления агент 127 согласования может попытаться обработать почти все сообщения в течение интервала Т1 времени, который может быть основан и расширен до истечения срока ΔCache сохранения кэш-памяти. Соответственно, может быть оптимизирована эффективность процесса согласования, поскольку агент 127 согласования выдает запросы для сообщений, ожидающих сохранения в архиве 140, кроме того, может быть реализовано сохранение I/O посредством предоставления доступа к сообщениям в кэш-памяти 320.
В течение интервала Т1 времени агент 127 согласования может устанавливать связь с приложением 146 согласования архива 140 и выдавать начальный запрос, содержащий идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-1. Начальный запрос может быть принят посредством архива 140 через приложение 146 согласования, кроме того, может быть выполнено определение того, было ли каждое из идентифицированных в запросе сообщений принято и полностью сохранено посредством архива 140. После определения того, что все идентифицированные в запросе сообщения были полностью сохранены, архив 140 может ответить через приложение 146 согласования посредством положительного ответа (Ack), указывающего на то, что каждое сообщение было сохранено. После приема положительного ответа для конкретного сообщения агент 127 согласования подтверждает, что сообщение было помещено в архив, а также может удалить сообщение из локального хранилища 310 сообщений.
Однако в некоторых случаях может быть определено, что одно или несколько идентифицированных в запросе сообщений не было сохранено в архиве 140. Например, архив 140 может не принять конкретное сообщение в момент приема запроса. В таких случаях архив 140 может ответить через приложение 146 согласования посредством отрицательного ответа (Nak), идентифицирующего сообщения, которые не были сохранены. Поскольку начальные запросы подтверждения доставки, выданные посредством агента 127 согласования, предназначены для сообщений, ожидающих сохранения в архиве 140, то прием отрицательного ответа может указывать на типичные задержки доставки и обработки сообщений или на более серьезные проблемы. Если агент 127 согласования принимает отрицательный ответ от архива 140 относительно конкретного сообщения, то неподтвержденное сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности до тех пор, пока не будет подтверждено, что сообщение было помещено в архив.
После приема отрицательного ответа для конкретного сообщения агент 127 согласования может классифицировать сообщение в качестве сообщения Gen-2. Соответственно, в некоторых вариантах осуществления сообщения, ожидающие согласования, могут быть классифицированы на основе отказа подтверждения архивирования таких сообщений. Если архивирование сообщения не может быть подтверждено, то могут происходить типичные задержки доставки и обработки сообщений, а для устранения задержки сообщений потребуется дополнительное время.
В примере, иллюстрированном на фиг.4, сообщение может быть классифицировано в качестве сообщения Gen-2 в случае, когда время, связанное с сообщением, находится в пределах интервала Т2 времени. Как иллюстрировано, длина интервала Т2 времени может соответствовать интервалу ΔIssueResolution времени для решения проблемы SLA. В соответствии с различными вариантами осуществления интервал ΔIssueResolution времени может быть основан на времени, необходимом для устранения задержек сообщений. Например, интервал ΔIssueResolution времени может являться расчетным или предположительным количеством времени, обычно требуемым для решения большинства проблем, связанных с задержкой сообщения, посредством автоматической коррекции и/или посредством ручного вмешательства, для устранения проблемы, вызывающей задержку. В целом, интервал ΔIssueResolution времени будет сравнительно более длинным промежутком времени, например, приблизительно равным 5 часам.
Сообщения, ожидающие согласования, могут быть классифицированы на основе интервала времени для устранения задержек сообщений. Следует понимать, что в идеальном случае классификация сообщения в качестве сообщения Gen-2 или Gen-3 возникает редко. В различных вариантах реализации конкретное сообщение может быть классифицировано в качестве сообщения Gen-2 в течение интервала Т2 времени, до истечения интервала ΔIssueResolution времени, после чего оно классифицируется в качестве сообщения Gen-3. Например, конкретное неподтвержденное сообщение может быть классифицировано в качестве сообщения Gen-2 до истечения интервала (ΔCache+ΔIssueResolution) времени, с момента приема копии журнального отчета, содержащей конкретное неподтвержденное сообщение, посредством агента 127 согласования и/или момента начального сохранения неподтвержденного сообщения в хранилище 310 сообщений. Альтернативно, конкретное неподтвержденное сообщение может быть классифицировано в качестве сообщения Gen-2 до истечения интервала ΔIssueResolution времени, с момента отправки начального запроса подтверждения доставки для конкретного неподтвержденного сообщения.
Ожидающие сообщения, классифицированные в качестве сообщений Gen-2 посредством агента 127 согласования, могут соответствовать неподтвержденным сообщениям, испытывающим проблемы задержки. В соответствии с различными вариантами осуществления запросы не выдаются посредством агента 127 согласования для ожидающих сообщений, классифицированных в качестве сообщений Gen-2. Например, если повторный запрос расположения журнального отчета будет отправлен до истечения интервала ΔIssueResolution времени, то предполагается, что запрос приведет к другому отрицательному ответу (Nak). Соответственно, выдача запросов не выполняется для сообщений Gen-2 в течение интервала T2 времени, кроме того, может быть отсрочена до истечения интервала ΔIssueResolution времени.
В различных вариантах осуществления сообщения, классифицированные в качестве сообщений Gen-3, могут содержать сообщения, более поздние, чем T0+T1+T2. Например, в некоторых вариантах осуществления сообщения, классифицированные в качестве Gen-3, охватывают все сообщения, представленные перед интервалом (ΔCache+ΔIssueResolution) времени, до текущего времени. Ожидающие сообщения, классифицированные в качестве сообщений Gen-3 посредством агента 127 согласования, могут соответствовать неподтвержденным сообщениям, испытывающим проблемы задержки, которые теперь могут быть устранены.
После предоставления возможности истечения интервала ΔIssueResolution времени для устраняемых задержек почты агент 127 согласования может выдать повторный запрос для одного или нескольких неподтвержденных сообщений, классифицированных в качестве сообщений Gen-3. Например, в течение интервала Т3 времени агент 127 согласования может устанавливать связь с приложением 146 согласования архива 140 и выдавать повторный запрос, содержащий идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-3. В некоторых вариантах осуществления агент 127 согласования может периодически выдавать повторный запрос для некоторых или всех ожидающих сообщений Gen-3. Например, агент 127 согласования может устанавливать связь с приложением 146 согласования архива 140 каждые 24 часа и выдавать повторный запрос, содержащий все идентификаторы (ID) сообщений для всех сообщений Gen-3, предварительно представленных перед интервалом ΔCache+ΔIssueResolution времени, до текущего времени.
Повторный запрос может быть принят посредством архива 140 через приложение 146 согласования, кроме того, может быть выполнено определение того, было ли каждое из сообщений, идентифицированных в повторном запросе, принято и полностью сохранено посредством архива 140. Если определяется, что все идентифицированные в повторном запросе сообщения Gen-3 полностью сохранены, то архив 140 может ответить через приложение 146 согласования посредством положительного ответа (Ack), указывающего на то, что каждое сообщение было сохранено. После приема положительного ответа для конкретного сообщения агент 127 согласования может подтвердить, что ранее неподтвержденное сообщение было помещено в архив, а также может удалить сообщение из локального хранилища 310 сообщений.
Однако если определяется, что одно или несколько идентифицированных в повторном запросе сообщений не были сохранены, то архив 140 может ответить через приложение 146 согласования посредством отрицательного ответа (Nak), идентифицирующего сообщения, которые не были сохранены. Если агент 127 согласования принимает отрицательный ответ от архива 140 относительно конкретного сообщения, то неподтвержденное сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности до тех пор, пока не будет подтверждено, что сообщение было помещено в архив.
В некоторых вариантах осуществления после приема отрицательного ответа для повторного запроса для сообщения Gen-3 агент 127 согласования может определить, был ли достигнут максимальный порог задержки. Если максимальный порог задержки не был достигнут, то агент согласования может периодически устанавливать связь с приложением 146 согласования архива 140 и выдавать дополнительные повторные запросы для неподтвержденного сообщения до тех пор, пока не будет достигнут максимальный порог задержки.
В других вариантах осуществления после приема отрицательного ответа для повторного запроса для сообщения Gen-3 агент 127 согласования может определить, было ли достигнуто максимальное количество повторных попыток. Если максимальное количество повторных попыток не было достигнуто, то агент согласования может периодически устанавливать связь с приложением 146 согласования архива 140 и выдавать дополнительные повторные запросы для неподтвержденного сообщения до тех пор, пока не будет достигнуто максимальное количество попыток.
Если сообщение не может быть подтверждено, то агент 127 согласования может выполнить промежуточную обработку неподтвержденного сообщения посредством повторного представления неподтвержденного сообщения в архив 140. В некоторых вариантах осуществления агент 127 согласования может выполнить промежуточную обработку неподтвержденного сообщения в случае достижения максимальной задержки или максимального количества повторных попыток. В других вариантах осуществления максимальная задержка или максимальное количество повторных попыток может быть не достигнуто, и агент 127 согласования может начать промежуточную обработку после неудачи одной повторной попытки. Например, если первая повторная попытка для сообщения Gen-3 терпит неудачу, то агент 127 согласования может начать промежуточную обработку для сообщения непосредственно после приема отрицательного ответа от архива 140.
До подтверждения того, что конкретное сообщение было помещено в архив, неподтвержденное сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности. В соответствии с различными вариантами осуществления агент 127 согласования может повторно представить неподтвержденное сообщение в архив 140 и сохранить копию неподтвержденного сообщения в хранилище 310 сообщений. После повторного представления неподтвержденного сообщения в архив 140 процесс согласования может начинаться снова до тех пор, пока не будет подтверждено, что конкретное сообщение было помещено в архив.
Если конкретное сообщение не может быть согласовано после нескольких попыток повторного представления, то может потребоваться вмешательство. В соответствии с различными вариантами осуществления после неудачи промежуточной обработки, такой как неудача в определенном количестве попыток повторного представления, агент 127 согласования может сгенерировать и отправить предупреждение. Например, если согласование терпит неудачу после нескольких попыток повторного представления, то администратору системы электронной почты может быть отправлено предупреждение, информирующее администратора о проблеме, а также о необходимости ручного вмешательства для устранения проблемы. Следует понимать, что даже в случае, когда конкретное сообщение не может быть согласовано, сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности.
Фиг.5 иллюстрирует один вариант осуществления потока 500 сообщений, подходящего для осуществления на практике различных вариантов осуществления. Как иллюстрировано, поток 500 сообщений может включать в себя обмен сообщениями 501-509 между сервером 110 электронной почты и архивом 140. В некоторых вариантах реализации сообщения 501-509 отправляются и принимаются посредством агента 125 ведения журнала, агента 127 согласования, приложения 144 ведения журнала и приложения 146 согласования, как было описано выше. Однако варианты осуществления не ограничиваются такими вариантами реализации. Помимо всего прочего, несмотря на то, что иллюстрированный на фиг.5 пример включает в себя конкретный набор сообщений, следует понимать, что поток 500 сообщений обеспечивает иллюстративный вариант реализации общих функциональных возможностей. Следует подразумевать, что в состав потока могут быть включены альтернативные или дополнительные сообщения, а некоторые сообщения могут быть опущены, в зависимости от конкретного варианта реализации.
Как иллюстрировано, сервер 110 электронной почты отправляет журнальный отчет 501 в архив 140 через агент 125 ведения журнала. В различных вариантах реализации журнальный отчет 501 может быть создан на основе ряда условий ведения журнала. Например, если сообщение электронной почты отправляется получателю сервером 110 электронной почты, то агент 125 ведения журнала может определить, удовлетворяет ли сообщение электронной почты условия для ведения журнала. Если условия удовлетворяются, и должно применяться ведение журнала, то агент 125 ведения журнала упаковывает сообщение электронной почты в журнальный отчет 501.
Например, журнальный отчет 501 может содержать копию сообщения электронной почты, которая удовлетворяет условия ведения журнала для архива 140, а также мета-данные, включающие в себя идентификатор (ID) сообщений для сообщения, идентификационную информацию получателей и другие транспортные данные для сообщения. Сервер 110 электронной почты отправляет сообщение электронной почты получателю, а также отправляет журнальный отчет 501 в архив 140 через агент 125 ведения журнала. Например, журнальный отчет 501 может быть отправлен в архив 140 по электронной почте через протокол SMTP.
В соответствии с различными вариантами осуществления, если создан журнальный отчет 501, то агент 125 ведения журнала также отправляют агенту 127 согласования копию 502 журнального отчета для сохранения в локальном почтовом ящике или области хранения, такой как хранилище 310 сообщений. Копия 502 журнального отчета включает в себя сообщение, предназначенное для согласования, которое может содержать копию того же самого сообщения, отправленного получателю, а также отправленного в архив 140. Копия 502 журнального отчета также может содержать мета-данные, включающие в себя идентификатор (ID) сообщений для сообщения, идентификационную информацию получателей и другие транспортные данные для сообщения.
Как было описано выше, в некоторых вариантах реализации сообщения, ожидающие согласования в области хранения, могут быть классифицированы на несколько генераций согласования. В соответствии с различными вариантами осуществления сообщения, ожидающие согласования, могут быть классифицированы на основе задержки, связанной с архивом 140, в случае, когда копия сообщения, предназначенного для согласования, может являться локально доступной в кэш-памяти 320, отказа подтверждения архивирования сообщения, интервала времени для устранения задержек сообщений или другими способами. В таких вариантах реализации запросы могут быть выданы в соответствии с классификацией сообщений для оптимизации эффективности процесса согласования, а также для минимизации количества запросов архива 140.
В примере, иллюстрированном на фиг.5, агент 127 согласования может устанавливать связь с приложением 146 согласования архива 140 и отправлять запрос 503 конфигурации. В различных вариантах реализации запрос 503 конфигурации может содержать запрос веб-службы, запрашивающий определенную информацию о конфигурации от архива 140, такую как ожидаемый уровень SLA или задержка для обработки сообщения. Запрос 503 конфигурации может быть принят посредством архива 140 через приложение 146 согласования. Архив 140 отвечает на запрос 503 конфигурации через приложение 146 согласования посредством ответа 504 на запрос конфигурации, содержащего требуемую информацию о конфигурации.
Как иллюстрировано, через агента 127 согласования сервер 110 электронной почты может выдать приложению 146 согласования один или несколько запросов для предоставления гарантии доставки и сохранения конкретного сообщения в архиве 140. В различных вариантах осуществления агент 127 согласования может выполнять асинхронный процесс согласования для установления связи с архивом 140, запроса, были ли полностью сохранены сообщения, отправленные в архив 140, и подтверждения сохранения сообщений в архиве 140. Если архив 140 не может подтвердить сохранение для конкретного сообщения, то агент 127 согласования может выполнить серию этапов для повторного запроса архива 140 в более поздний момент времени. Даже в случае, если архив 140 никогда не подтвердит сохранение, то агент 127 согласования будет сохранять локальную копию сообщения, которая будет доступной для просмотра, печати, сохранения и т.д.
В примере, иллюстрированном на фиг.5, агент 127 согласования может устанавливать связь с приложением 146 согласования архива 140 и отправлять запрос 505 подтверждения доставки. В различных вариантах реализации запрос 505 подтверждения доставки может быть отправлен в течение интервала Т1 времени, после истечения интервала ΔSLA времени. Например, запрос 505 подтверждения доставки может содержать идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-1. Сообщения, принятые посредством агента 127 согласования и классифицированные в качестве сообщений Gen-1, могут соответствовать сообщениям, ожидающим сохранения в архиве 140. Кроме того, копия сообщения может являться доступной в кэш-памяти 320 для реализации сохранения I/O.
Запрос 505 подтверждения доставки может быть принят посредством архива 140 через приложение 146 согласования, кроме того, может быть выполнено определение того, было ли каждое из сообщений, идентифицированных в запросе 505 подтверждения доставки, принято и полностью сохранено посредством архива 140. На основе определения архив 140 отвечает на запрос 505 подтверждения доставки через приложение 146 согласования посредством ответа 506 на запрос подтверждения доставки. В различных вариантах реализации ответ 506 на запрос подтверждения доставки может быть отправлен в течение интервала Т1 времени, а также содержит идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-1.
Если определяется, что все сообщения, идентифицированные в запросе 505 подтверждения доставки, были полностью сохранены, то архив 140 может ответить через приложение 146 согласования посредством ответа 506 на запрос подтверждения доставки, содержащего положительный ответ (Ack), указывающий на то, что каждое сообщение было сохранено. Если ответ 506 на запрос подтверждения доставки содержит положительный ответ, то агент 127 согласования подтверждает, что сообщение было помещено в архив, и может удалить сообщение из локального хранилища 310 сообщений.
Если определяется, что одно или несколько сообщений, идентифицированных в запросе 505 подтверждения доставки, не были сохранены посредством архива 140, то архив 140 может ответить через приложение 146 согласования посредством ответа 506 на запрос подтверждения доставки, содержащего отрицательный ответ (Nak), идентифицирующий сообщения, которые не были сохранены. Если агент 127 согласования принимает ответ 506 на запрос подтверждения доставки, содержащий отрицательный ответ, то неподтвержденные сообщения сохраняются в хранилище 310 сообщений для предоставления гарантии доступности до тех пор, пока не будет подтверждено, что сообщения были помещены в архив.
Если одно или несколько сообщений являются неподтвержденными, то агент 127 согласования может установить связь с приложением 146 согласования архива 140 и отправить повторный запрос 507. В различных вариантах реализации повторный запрос 507 может быть отправлен в течение интервала Т3 времени после истечения интервала ΔIssueResolution времени для устранения задержек почты. Повторный запрос 507 может содержать идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-3. Ожидающие сообщения, классифицированные в качестве сообщений Gen-3 посредством агента 127 согласования, могут соответствовать неподтвержденным сообщениям, испытывающим проблемы задержки, которые теперь могут быть устранены.
Повторный запрос 507 может быть принят посредством архива 140 через приложение 146 согласования, кроме того, может быть выполнено определение того, было ли каждое из сообщений, идентифицированных в повторном запросе 507, принято и полностью сохранено посредством архива 140. На основе определения архив 140 отвечает на повторный запрос 507 через приложение 146 согласования посредством ответа 508 на повторный запрос. В различных вариантах реализации повторный ответ 508 может быть отправлен в течение интервала Т3 времени, а также содержит идентификаторы (ID) сообщений для одного или нескольких сообщений Gen-3.
Если определяется, что все сообщения, идентифицированные в повторном запросе 507, были полностью сохранены, то архив 140 может ответить через приложение 146 согласования посредством ответа 508 на запрос подтверждения доставки, содержащего положительный ответ (Ack), указывающий на то, что каждое сообщение было сохранено. Если ответ 508 на повторный запрос содержит положительный ответ, то агент 127 согласования подтверждает, что сообщение было помещено в архив, и может удалить сообщение из локального хранилища 310 сообщений.
Если определяется, что одно или несколько сообщений, идентифицированных в повторном запросе 507, не были сохранены посредством архива 140, то архив 140 может ответить через приложение 146 согласования посредством ответа 508 на повторный запрос, содержащего отрицательный ответ (Nak), идентифицирующий сообщения, которые не были сохранены. Если агент 127 согласования принимает ответ 508 на повторный запрос, содержащий отрицательный ответ, то неподтвержденные сообщения сохраняются в хранилище 310 сообщений для предоставления гарантии доступности до тех пор, пока не будет подтверждено, что сообщения были помещены в архив.
В некоторых вариантах осуществления после приема ответа 508 на повторный запрос, содержащего отрицательный ответ, агент 127 согласования может выдавать дополнительные повторные запросы до достижения максимального порога задержки и/или максимального количества попыток. В других вариантах осуществления агент 127 согласования может начать промежуточную обработку после неудачи одной повторной попытки.
Если сообщение не может быть подтверждено, то агент 127 согласования может выполнить промежуточную обработку неподтвержденного сообщения посредством повторного представления сообщения в архив 140. Как иллюстрировано, в некоторых вариантах осуществления агент 127 согласования может выполнить промежуточную обработку неподтвержденного сообщения посредством отправления приложению 144 ведения журнала сообщения 509 повторного представления. В других вариантах осуществления агент 127 согласования может выполнить промежуточную обработку неподтвержденного сообщения посредством отправления агенту 125 ведения журнала сообщения 509 повторного представления для повторного представления в архив 140.
Сообщение 509 повторного представления может содержать копию неподтвержденного сообщения, а также может быть отправлено в архив 140, например, в качестве сообщения электронной почты с журнальным отчетом через протокол SMTP. В различных вариантах реализации на этапе отправления сообщения 509 повторного представления заменяет оригинальный журнальный отчет 501, отправленный в архив 140. Агент 127 согласования также будет сохранять копию неподтвержденного сообщения в хранилище 310 сообщений.
После отправки сообщения 509 повторного представления процесс согласования может начинаться снова до тех пор, пока не будет подтверждено, что конкретное сообщение было помещено в архив. Если конкретное сообщение не может быть согласовано после нескольких попыток повторного представления, то агент 127 согласования может сгенерировать и отправить администратору предупреждение.
В соответствии с различными вариантами осуществления поток 500 сообщений может включать в себя обмен одним или несколькими сообщениями, в соответствии с протоколом согласования, для взаимодействия между сервером 110 электронной почты и архивом 140. Например, протокол согласования может быть реализован в качестве веб-службы с использованием протокола веб-службы и схемы веб-службы. В некоторых вариантах осуществления протокол согласования может быть реализован для передачи документов XML, в соответствии с простым протоколом доступа к объектам (SOAP) и процедурами для взаимодействия между приложениями. В случае реализации в качестве веб-службы протокол согласования может использовать различные не зависящие от платформы и языка форматы, разработанные для передачи данных по вычислительным сетям, таким как сеть Интернет, в соответствии с протоколами передачи данных, таких как HTTP, HTTPS, SMTP, FTP и т.д. Следует понимать, что протокол согласования может быть выгодно реализован в качестве веб-службы вследствие того, что брандмауэры, как правило, разрешают трафик HTTP и множество архивов, обеспечивающих фронтальный HTTP для предоставления администраторам возможности входа и выполнения поиска в находящемся в архиве информационном содержании.
В некоторых вариантах осуществления сообщения с запросами и ответами протокола согласования могут содержать запросы и ответы веб-службы, реализованные в качестве документов XML. Документы XML с запросами и ответами могут быть реализованы с использованием схемы и признаков XML, таких как пространства имен XML (xmlns), событие схемы XML (xsi), имена файлов расширения определение схемы XML (xsd) и т.д. В некоторых вариантах реализации документы XML с запросами и ответами могут содержать сообщения SOAP, включающие в себя конверт SOAP и тело SOAP, содержащее информацию об ответе и вызове.
Далее иллюстрирован неограничивающий пример запроса 503 конфигурации и ответа 504 на запрос конфигурации, реализованный в соответствии с протоколом согласования веб-службы. В этом примере запрос 503 конфигурации запрашивает получение определенной информации о конфигурации, такой как ожидаемый уровень SLA или задержка, для обработки сообщений.
Запрос:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns: soap="http://schemas. xmlsoap.org/soap/envelope/">
<soap:Body>
<Configuration xmlns="http://localhost/reconcile">
<IgnoredParameter xmlns=””/>
</Configuration>
</soap:Body>
</soap:Envelope>
Ответ:
Уровень SLA - 0 лет, 0 месяцев, 0 дней, 0 часов, 10 минут, 0 секунд.
Поддерживаемые версии - 1.0 и 1.5
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConfigurationResponse xmlns-'http://localhost/reconcile">
<Configuration xmlns="">
<Sla>P0Y0M0DT0H10M0S</Sla>
<SupportedVersions>
<Version>
<MajorVersion> 1 </MajorVersion>
<MinorVersion>0</MinorVersion>
</Version>
<Version>
<MajorVersion> 1 </MajorVersion>
<MinorVersion>5</MinorVersion>
</Version>
</SupportedVersions>
</Configuration>
</ConfigurationResponse>
</soap:Body>
</soap:Envelope>
Далее иллюстрирован неограничивающий пример запроса 505 подтверждения доставки и ответа 506 подтверждения доставки, реализованные в соответствии с протоколом согласования веб-службы. В этом примере запрос 505 подтверждения доставки запрашивает, чтобы архив считал bank_customer@ehs.com <mailto:bank_customer@ehs.com> для статуса двух сообщений, которым отправили изображенные времена (суффикс 'Z' указывает UTC в схеме XML).
Запрос:
<?xml version-"1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchcma-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConfirmDelivery xmlns="http://locaIhost/reconcile">
<Account xmlns="">
<EmailAddress>bank_customer@ehs.com</EmailAddress>
</Account>
<MessageIdList xmlns="">
>
<MessageId SentTime=”2008-09-01T09:00:00Z">12345@journal.report.messageid</MessageId
<MessageId SentTime="2008-09-01T09:01:00Z">67890@journal.report.messageid</MessageId>
</MessageIdList>
</ConfirmDelivery>
</soap:Body>
</soap:Envelope>
Ответ:
Задержка сообщения составляет 9 минут и 15 секунд для первого сообщения и 8 минут и 12 секунд для второго сообщения.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi=Mhttp://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Confirm.DeliveryResponsexmlns="http://localhost/reconcile">
<MessageIdList xmlns="">
<MessageId Latency="P0Y0MODTOH9M 15S"> 12345@joumal.report.messageid</MessageId>
<McssageId Latency="P0Y0M0DT0H8M12S">67890@journa].report.messageid</MessageId>
</MessageIdList>
</ConfirmDeliveryResponse>
</soap:Body>
</soap:Envelope>
Следует понимать, что несмотря на то, что некоторые варианты осуществления могут быть описаны в качестве реализующих протокол согласования, в соответствии с протоколом веб-службы, могут быть использованы другие протоколы, включающие в себя, в числе прочего, протокол удаленного вызова процедур (RPC), протоколы передачи электронной почты, протоколы сети Интернет, такие как протокол управления передачей (TCP), протокол передачи репрезентативного состояния (REST), протоколы веб-канала, такие как очень простое приобретение информации (RSS), и/или любые другие подходящие синхронные или асинхронные протоколы.
Операции для вышеописанных вариантов осуществления могут быть дополнительно описаны со ссылкой на один или несколько логических потоков. Следует понимать, что представительные логические потоки не должны выполняться в представленном или любом конкретном порядке, если не указано иначе. Кроме того, различные действия, описанные со ссылкой на логические потоки, могут быть выполнены последовательным или параллельным способом. Логические потоки могут быть реализованы посредством использования одного или нескольких элементов аппаратных средств и/или элементов программных средств описанных вариантов осуществления, или альтернативных элементов, как является желательным для заданного набора ограничений расчетных параметров или характеристик. Например, логические потоки могут быть реализованы в качестве логики (например, команд компьютерной программы) для выполнения посредством логического устройства (например, обычного или специализированного компьютера).
Фиг.6 иллюстрирует один вариант осуществления логического потока 600, подходящего для осуществления на практике различных вариантов осуществления. Логический поток 600 может являться образцом для некоторых или всех операций, выполняемых посредством одного или нескольких описанных в настоящем документе вариантов осуществления.
Как иллюстрировано, логический поток 600 может содержать этап приема сообщения, предназначенного для согласования (этап 610). В различных вариантах реализации сообщение, предназначенное для согласования, может соответствовать сообщению, отправленному сервером 110 электронной почты в архив 140 для сохранения. Например, в некоторых вариантах реализации сообщение, предназначенное для согласования, может содержать копию сообщения, отправленного в архив 140 для сохранения. Предназначенное для согласования сообщение может быть принято в копии 502 журнального отчета, соответствующей журнальному отчету 501, отправленному сервером 110 электронной почты в архив 140. Копия 502 журнального отчета может содержать копию того же самого сообщения, которое было отправлено получателю, и отправлено в архив 140 для сохранения.
Логический поток 600 может содержать этап классификации принятого сообщения для согласования (этап 620). В различных вариантах осуществления сообщение, предназначенное для согласования, может быть классифицировано на основе одного или нескольких интервалов, таких как интервал времени, соответствующий задержке, связанной с архивом 140, интервал времени, в течение которого копия сообщения, предназначенного для согласования, является доступной в локальной кэш-памяти 320, и интервал времени для устранения проблем задержки. Предназначенное для согласования сообщение также может быть классифицировано на основе приема отрицательного ответа на запрос подтверждения доставки.
Логические потоки 600 могут содержать этап выдачи архиву запроса подтверждения доставки, в соответствии с классификацией сообщения для согласования (этап 630). В различных вариантах осуществления запрос подтверждения доставки может быть отложен на основе задержки архива 140. В некоторых вариантах реализации запрос подтверждения доставки может быть отправлен в архив 140, в соответствии с протоколом веб-службы.
Логический поток 600 может содержать этап подтверждения архивирования сообщения, отправленного на сервер (этап 640). В различных вариантах осуществления сообщение, предназначенное для согласования, сохраняется в области хранения, такой как хранилище 310 сообщений, до тех пор, пока не будет подтверждено, что отправленное в архив 140 сообщение было сохранено. После подтверждения сохранения сообщения в архиве 140 сообщение, предназначенное для согласования, может быть удалено из хранилища 310 сообщений. В случае приема отрицательного ответа на запрос подтверждения доставки повторный запрос может отправляться в архив 140 до достижения максимальной задержки и/или максимального количества попыток.
Логический поток 600 может содержать этап промежуточной обработки неподтвержденного сообщения (этап 650). В различных вариантах осуществления сообщение, предназначенное для согласования, может быть повторно представлено архиву после приема отрицательного ответа на повторный запрос. После повторного представления архиву 140 неподтвержденного сообщения процесс согласования может начинаться снова до тех пор, пока не будет подтверждено, что конкретное сообщение было помещено в архив. Следует понимать, что даже в случае, когда конкретное сообщение не может быть согласовано, сообщение сохраняется в хранилище 310 сообщений для предоставления гарантии его доступности.
Следует понимать, что несмотря на то, что логический поток 600 может иллюстрировать определенную последовательность этапов, также могут быть выполнены другие последовательности этапов, в соответствии с альтернативными вариантами осуществления. Кроме того, некоторые отдельные этапы логического потока 600 могут включать в себя множество подэтапов, которые могут быть выполнены в различных последовательностях, как предназначено для отдельного этапа. Помимо всего прочего, в зависимости от конкретного варианта реализации, могут быть добавлены дополнительные этапы либо удалены некоторые этапы.
Фиг.7 иллюстрирует схематическое представление изделия 700, подходящего для сохранения логики для различных вариантов осуществления. Как иллюстрировано, изделие 700 может содержать носитель 702 хранения для сохранения логики 704. Примеры носителя 702 хранения могут включать в себя машиночитаемый носитель хранения одного или нескольких типов, допускающих сохранение электронных данных, включающих в себя энергозависимую или энергонезависимую память, съемную или несъемную память, стираемую или нестираемую память, записываемую или перезаписываемую память и т.д. Примеры логики 704 могут включать в себя различные элементы программных средств, такие как программные компоненты, программы, приложения, компьютерные программы, прикладные программы, системные программы, машинные программы, программные средства операционной системы, промежуточные программные средства, программно-аппаратные средства, программные модули, подпрограммы, функции, способы, процедуры, интерфейсы на основе программных средств, прикладные программные интерфейсы (API), наборы команд, вычислительный код, машинный код, сегменты кода, сегменты машинного кода, слова, значения, символы или любую их комбинацию.
Например, в одном варианте осуществления изделие 700 и/или машиночитаемый носитель 702 хранения может сохранять логику 704, содержащую машинно-исполняемые программные команды, которые при выполнении посредством компьютера побуждают компьютер к выполнению способов и/или операций, в соответствии с описанными вариантами осуществления. Примеры компьютера могут включать в себя любое подходящее вычислительное устройство, имеющее вычислительные возможности и/или возможности передачи данных, в соответствии с описанными вариантами осуществления. Иллюстративное вычислительное устройство может включать в себя, в числе прочего, мобильное устройство, персональное цифровое устройство, мобильное вычислительное устройство, смартфон, сотовый телефон, переносную телефонную трубку, пейджер односторонней связи, пейджер двухсторонней связи, устройство для обмена сообщениями, компьютер, персональный компьютер (PC), настольный компьютер, портативный компьютер, ноутбук, карманный компьютер, сервер, серверный массив, веб-сервер, сетевой сервер, Интернет-сервер, рабочую станцию, миникомпьютер, большой компьютер, суперкомпьютер, сетевое оборудование, веб-оборудование, распределенную вычислительную систему, мультипроцессорные системы, системы на базе процессора, бытовую электронную технику, программируемую бытовую электронную технику, телевизор, цифровой телевизор, телевизионную абонентскую приставку, точку беспроводного доступа, базовую станцию, абонентский терминал, центр мобильной связи, контроллер радиосети, маршрутизатор, концентратор, шлюз, мост, переключатель, машину или их комбинацию.
Исполняемые компьютерные программные команды могут включать в себя код любого подходящего типа, такой как исходный код, объектный код, интерпретируемый код, исполняемый код, статический код, динамический код и т.п. Исполняемые компьютерные программные команды могут быть реализованы в соответствии с предварительно определенным компьютерным языком, способом или синтаксисом, для информирования компьютера о выполнении конкретной функции. Команды могут быть реализованы посредством использования любого подходящего языка программирования высокого уровня, низкого уровня, ориентированного на объект, визуального общения, транслируемого и/или интерпретируемого языков программирования, таких как C#, C, С++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, ассемблер и другие.
Различные варианты осуществления могут быть реализованы посредством использования элементов аппаратных средств, элементов программных средств или их комбинации. Примеры элементов аппаратных средств могут включать в себя любой из примеров, ранее представленных для логического устройства, а также дополнительно включать в себя микропроцессоры, схемы, элементы схемы (например, транзисторы, резисторы, конденсаторы, индукторы и т.д.), интегральные схемы, логические вентили, регистры, полупроводниковое устройство, кристаллы, микрокристаллы, комплекты кристаллов и т.д. Примеры элементов программных средств могут включать в себя программные компоненты, программы, приложения, компьютерные программы, прикладные программы, системные программы, машинные программы, программные средства операционной системы, промежуточные программные средства, программно-аппаратные средства, программные модули, подпрограммы, функции, способы, процедуры, интерфейсы на основе программных средств, прикладные программные интерфейсы (API), наборы команд, вычислительный код, машинный код, сегменты кода, сегменты машинного кода, слова, значения, символы или любую их комбинацию. Определение того, посредством использования элементов аппаратных и/или программных средств был реализован вариант осуществления, может измениться в соответствии с любым числом факторов, таких как желательная вычислительная скорость, уровни мощности, параметры теплоустойчивости, ресурсы цикла обработки, скорости ввода данных, скорости вывода данных, ресурсы памяти, скорости шины данных и других ограничений расчетных параметров или характеристик, как является желательным для заданного варианта реализации.
Некоторые варианты осуществления могут быть описаны с использованием выражений «связано» и «соединено», наряду с их производными. Эти термины не должны в обязательном порядке являться синонимами по отношению друг к другу. Например, некоторые варианты осуществления могут быть описаны с использованием терминов «соединено» и/или «связано» для указания того, что два и более элементов находятся в прямом физическом или электрическом контакте друг с другом. Однако термин «связано» также может означать, что два и более элементов не находятся в прямом контакте друг с другом, но все еще объединены или взаимодействуют друг с другом.
Следует подчеркнуть, что реферат раскрытия обеспечен для выполнения пункта 1.72(b) статьи 37 Свода Федеральных Законов, требующего наличия реферата, который предоставляет читателю возможность быстрого установления природы технического раскрытия. Он представляется исходя из предположения, что он не будет использоваться для интерпретации или ограничения объема или предназначения формулы изобретения. Кроме того, в вышеизложенном подробном описании можно заметить, что различные отличительные признаки группируются в одном варианте осуществления с целью упрощения раскрытия. Этот способ раскрытия не должен интерпретироваться в качестве отражающего то, что заявленные варианты осуществления требуют большего количества отличительных признаков, чем явно перечислено в каждом пункте формулы изобретения. Точнее, следующие пункты формулы изобретения отражают то, что предмет изобретения заложен не во всех отличительных признаках одного раскрытого варианта осуществления. Следовательно, следующие пункты формулы изобретения включены в подробное описание в зависимости от каждого пункта формулы изобретения, в качестве отдельного варианта осуществления. В приложенной формуле изобретения термины «включающий в себя» и «в котором» используются в качестве простых английских эквивалентов соответствующих терминов «содержащий» и «причем», соответственно. Кроме того, термины «первый», «второй», «третий» и т.д., используются попросту в качестве маркировки и не предназначены для наложения числовых требований на их объекты.
Несмотря на то, что предмет был описан на языке, определенном для структурных отличительных признаков и/или методологических действий, следует подразумевать, что предмет, определенный в приложенной формуле изобретения, не должен ограничиваться конкретными вышеописанными отличительными признаками или действиями. Точнее, конкретные вышеописанные отличительные признаки и действия раскрыты в качестве примерных вариантов реализации формулы изобретения.