Распределенная система обмена сообщениями с конфигурируемыми гарантиями

Иллюстрации

Показать все

Изобретение относится к области конфигурирования гарантий в распределенных системах обмена сообщениями. Техническим результатом является повышение надежности доставки сообщений. Определенный набор компонентов журнала сообщений и курсора конфигурируемым образом активируется и деактивируется так, чтобы составлять множество различных гарантий захвата, гарантий передачи и гарантий доставки в распределенной системе обмена сообщениями. Сочетание гарантии захвата, гарантии передачи и гарантии доставки может предоставлять гарантию сквозной передачи для системы обмена сообщениями. Гарантии сквозной передачи могут включать в себя одну из лучшей попытки, не более чем однократной передачи, по меньшей мере, однократной передачи и строго однократной передачи и могут включать в себя одну из: надежной или ненадежной передачи. Использование определенного набора активируемых и деактивируемых компонентов журнала сообщений и курсора обеспечивает более эффективные переходы между требуемыми гарантиями. В некоторых вариантах осуществления сочетание гарантии захвата, гарантии передачи и гарантии доставки обеспечивает надежную строго одноразовую доставку сообщения. 3 н. и 17 з.п. ф-лы, 4 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

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

Распределенные системы обмена сообщениями могут реализовывать примеры постановки в очередь и публикации/подписки ("pub/sub") на сообщения. Очередь, по существу, является передачей сообщения от одного абонента к другому. Инициатор сообщения вставляет сообщение в очередь, а абонент сообщения извлекает сообщение из очереди. С другой стороны, pub/sub-система является передачей сообщения в соотношении от одного ко многим. Инициатор сообщения публикует сообщение, а множество абонентов сообщения подписываются и принимают опубликованное сообщение.

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

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

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

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

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

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

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

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

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

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

В некоторых вариантах осуществления разделенная на компоненты система обмена сообщениями включает в себя журнал сообщений и курсор. Как правило, журнал сообщений сконфигурирован, чтобы хранить сообщения. Журнал сообщений также включает в себя компоненты журнала сообщений для составления любого из расширяемых наборов протоколов захвата, чтобы захватывать сообщения от инициаторов сообщений, позволяя инициаторам передавать сообщение распределенной системе обмена сообщениями с разными гарантиями и по разным протоколам. Например, любой протокол типа запрос-ответ может использоваться, чтобы получать гарантию "по меньшей мере, однократной доставки" (ALO). Односторонние протоколы, с другой стороны, могут выполнять только гарантию "Не более чем однократной доставки" (AMO), так как нет обратной связи, если сообщение потеряно, или происходит авария. Расширяемый набор протоколов захвата может предоставлять любую из множества различных гарантий захвата сообщения из набора гарантий захвата сообщения. Различные гарантии захвата сообщения обеспечиваются посредством использования различных комбинаций компонентов журнала сообщений, включая в себя использование одного или более надежных хранилищ и транзакций.

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

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

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

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

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

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

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

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

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

Фиг.3 иллюстрирует блок-схему примерного способа конфигурирования гарантий сообщений в распределенной системе обмена сообщениями.

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

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

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

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

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

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

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

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

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

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

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

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

Фиг.1A иллюстрирует примерную компьютерную архитектуру 100, которая обеспечивает конфигурирование гарантий в распределенной системе обмена сообщениями. Как изображено, компьютерная архитектура 100 включает в себя инициаторов 105 сообщений, менеджеров 106 надежных ресурсов, журнал 102 сообщений, курсор 103, менеджеров 108 надежных ресурсов, абонента(ов) 107 сообщений и менеджера 104 конфигурирования гарантий. Каждая из изображенных компьютерных систем может соединяться друг с другом по (или быть частью) сети, такой как, например, локальная вычислительная сеть ("LAN"), глобальная вычислительная сеть ("WAN") и даже Интернет. Соответственно, каждый из изображенных компонентов, так же как и любые другие подключенные компоненты, могут создавать связанные с сообщением данные и обмениваться связанными с сообщением данными (например, дейтаграммы протокола Интернета ("IP") и другие протоколы более высокого уровня, которые используют IP-дейтаграммы, такие как протокол управления передачей ("TCP"), протокол передачи гипертекста ("HTTP"), простой протокол пересылки почты ("SMTP") и т.д.) по сети.

Как правило, инициаторы 105 сообщений отправляют сообщения (например, сообщение 164) журналу 102 сообщений. Сообщения основаны на ресурсах из надежных ресурсов 106. Журнал 102 сообщений применяет требуемый режим обмена сообщениями, чтобы сохранять сообщения (по существу, без знания о потенциальных абонентах сообщения), как, например, функционируя в качестве очереди или издателя в pub/sub-окружении. Когда уместно, сообщения (например, сообщение 164) отправляются из журнала 102 сообщений по сети 101 курсору 103. Курсор 103 затем применяет требуемый режим обмена сообщениями, как, например, принимая поставленное в очередь сообщение или функционируя как подписчик в pub/sub-окружении. Курсор 103 затем отправляет сообщения (например, сообщение 164) абоненту(ам) 107 сообщения, которые могут хранить сообщения в менеджерах 108 надежных ресурсов или выполнять другие операции с содержимым сообщения. Курсор 103 может хранить продвижение абонента сообщения или группы абонентов сообщения в последовательности сообщений.

Журнал 102 сообщений и курсор 103, каждый, включают в себя активируемые и деактивируемые компоненты, которые могут быть активированы и деактивированы в нескольких различных комбинациях, чтобы составлять требуемые гарантии сообщения или их части. Например, компоненты 152 журнала сообщений включают в себя буфер 121 транзакций, кэш 123 чтения, надежное хранилище 122, менеджер 124 временного окна и компонент 126 подтверждения приема. Как правило, компоненты 152 журнала сообщений могут быть активированы и деактивированы, чтобы составлять любой расширяемый набор протоколов захвата. Каждый протокол захвата может конфигурироваться, чтобы предоставлять различную гарантию захвата. Например, протоколы захвата могут варьироваться в использовании надежного хранилища 122 и участии в транзакциях, привлекающих координатора 111 транзакций, чтобы предоставлять различные гарантии захвата.

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

Подобным образом, компоненты 153 курсора включают в себя компонент 131 транзакций, компонент 132 подтверждения приема и компонент 133 надежного хранилища. Как правило, компоненты 153 курсора могут быть активированы и деактивированы, чтобы составлять любой расширяемый набор протоколов доставки. Каждый протокол доставки может конфигурироваться, чтобы предоставлять различную гарантию доставки. Например, протоколы доставки могут варьироваться по использованию компонента 131 транзакций и компонента 133 надежного состояния, чтобы предоставлять различные гарантии доставки. Когда активирован, компонент 131 транзакций и компонент 133 надежного состояния функционируют подобно буферу 121 транзакций и надежному хранилищу 122, соответственно, чтобы доставлять сообщение абоненту(ам) 107 сообщения.

Дополнительно, различные компоненты 152 журнала сообщений и компоненты 153 курсора могут быть активированы и деактивированы и совместно работать, чтобы составлять любой расширяемый набор протоколов передачи. Каждый протокол передачи может конфигурироваться, чтобы предоставлять различную гарантию передачи. Например, протоколы передачи могут варьироваться по использованию компонентов 126 и 132 подтверждения приема и менеджера 124 временного окна, чтобы предоставлять различные гарантии передачи.

Например, когда активирован, менеджер 124 временного окна может заставлять долговременное хранилище 122 хранить данное окно сообщений (например, один день). Компоненты 126 и 132 подтверждения приема могут взаимодействовать, чтобы предоставлять подтверждения приема сообщений от курсора 103 в журнал 102 сообщений. Например, когда сообщение или диапазон сообщений принимается в курсоре 103, компонент 133 подтверждения приема может подтверждать прием сообщения или диапазона сообщений компонентам 126 подтверждения приема. При приеме подтверждающей квитанции соответствующие сообщения могут быть отброшены из журнала 102 сообщений. Когда активировано, это взаимодействие заставляет долговременное хранилище 122 хранить сообщения до подтверждения приема. Таким образом, существует гарантия того, что после того как подписка создана, абонент вероятно не пропустит какие-либо сообщения.

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

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

Из динамических конфигурационных данных 109 менеджер 104 конфигурирования гарантий может сформулировать конфигурацию компонентов журнала сообщений. Конфигурация компонентов журнала сообщений необходима для активации и деактивации соответствующих компонентов журнала сообщений, чтобы составлять гарантию захвата и первую часть гарантии передачи. Например, конфигурация 162 компонентов журнала сообщений необходима для активации и деактивации буфера 121 транзакций, надежного хранилища 122, менеджера 125 временного окна и компонента 126 подтверждения приема, чтобы составлять гарантию захвата и первую часть гарантии передачи, которая может взаимодействовать с компонентами 153 курсора.

Из динамических конфигурационных данных 109 менеджер 104 конфигурирования гарантий может сформулировать конфигурацию компонентов курсора. Конфигурация компонентов курсора необходима для активации и деактивации соответствующих компонентов курсора, чтобы составлять гарантию доставки и вторую часть гарантии передачи. Например, конфигурация 163 компонентов курсора необходима для активации и деактивации компонента 131 транзакций, компонента 133 надежного состояния и менеджера 132 подтверждения приема, чтобы составлять гарантию доставки и вторую часть гарантии передачи, которые могут взаимодействовать с компонентами 152 журнала сообщений.

Менеджер 104 конфигурирования гарантий может предписывать компонентам компьютерной архитектуры 100 составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения. Менеджер 104 конфигурирования гарантий может отправлять конфигурацию 162 компонентов журнала сообщений журналу 102 сообщений, чтобы предписывать журналу 102 сообщений составлять гарантию захвата и первую часть гарантии передачи. Подобным образом, менеджер 104 конфигурирования гарантий может отправлять конфигурацию 163 компонентов курсора курсору 103, чтобы предписывать курсор 103 составлять гарантию доставки и вторую часть гарантии передачи.

Как ранее описано, компоненты журнала сообщений и компоненты курсора могут быть активированы и деактивированы, чтобы предоставлять требуемую гарантию сквозной передачи сообщения. В некоторых вариантах осуществления каждый компонент является индивидуально активируемым и деактивируемым. Например, каждый компонент может включать в себя управление активацией и управление деактивацией. Например, в журнале 102 сообщений буфер 121 транзакций включает в себя управление 121A активацией и управление 121D деактивацией, надежное хранилище 122 включает в себя управление 122A активацией и управление 122D деактивацией, менеджер временного окна включает в себя управление 124A активацией и управление 124D деактивацией, а компонент 126 подтверждения приема включает в себя управление 126A активацией и управление 126D деактивацией. Подобным образом, в курсоре 103 компонент 131 транзакций включает в себя управление 131A активацией и управление 131D деактивацией, компонент 133 надежного состояния включает в себя управление 133A активацией и управление 133D деактивацией, и компонент 132 подтверждения приема включает в себя управление 132A активацией и управление 132D деактивацией. Индивидуально активируемые и деактивируемые компоненты обеспечивают высокую степень структурированности. Эта структурированность упрощает конфигурирование широкого множества различных наборов гарантий захвата сообщения, гарантий передачи сообщения и гарантий доставки сообщения.

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

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

Матрица 201 гарантий захвата представляет пример свойств различных непохожих гарантий захвата, которые хранилище 102 сообщений может использовать, чтобы захватывать сообщения от инициаторов 105 сообщений. В матрице 201 гарантий захвата каждая гарантия захвата указывает свойства гарантии, которые гарантия захвата использует или не использует. Каждая гарантия захвата может быть реализована посредством активации и деактивации различных комбинаций компонентов 152 журнала сообщений.

Например, гарантия 211 захвата не использует ни надежное хранилище, ни транзакции. Таким образом, отправка сообщения не заботится о транзакциях, и абоненты могут видеть сообщения, несмотря на состояние фиксации/прерывания транзакций. Дополнительные сообщения теряются, когда происходит авария или сбой электропитания. В компьютерной архитектуре 100 гарантия 211 захвата может быть реализована посредством деактивации надежного хранилища 122 и деактивации буфера 121 транзакций.

Гарантия 221 захвата не использует надежное хранилище, но использует транзакции. Таким образом, абоненты видят сообщения для зафиксированных транзакций (например, скоординированных координатором 111 транзакций). Однако сообщения теряются, когда происходит авария или сбой электропитания. В компьютерной архитектуре 100 гарантия 221 захвата может быть реализована посредством деактивации надежного хранилища 122 и активации буфера 121 транзакций.

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

Гарантия 241 захвата использует надежное хранилище и транзакции. Таким образом, абоненты видят сообщения для зафиксированных транзакций, и сообщения не теряются в случае аварии или сбоя электропитания. В компьютерной архитектуре 100 гарантия 241 захвата может быть реализована посредством активации надежного хранилища 122 и активации буфера 121 транзакций.

Матрица 202 гарантий передачи представляет пример свойств различных непохожих гарантий передачи, которые могут использоваться для передачи сообщения из хранилища 102 сообщений курсору 103. В матрице 202 гарантий передачи каждая гарантия передачи указывает свойства гарантии, которые гарантия передачи использует или не использует. Каждая гарантия передачи может быть реализована посредством активации и деактивации различных комбинаций компонентов 152 журнала сообщений и компонентов 153 курсора.

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