УРОВЕНЬ ТЕХНИКИ
Компьютерные системы и связанная технология затрагивает множество аспектов общества. На самом деле, способность вычислительной системы обрабатывать информацию преобразовала образ жизни, которым мы живем и работаем. Компьютерные системы сегодня, как правило, выполняют множество задач (к примеру, обработку текста, планирование, бухгалтерский учет и т.д.), которые до появления компьютерных систем выполнялись вручную. Совсем недавно компьютерные системы были связаны друг с другом и с другими электронными устройствами для того, чтобы сформировать проводные и беспроводные компьютерные сети, по которым компьютерные системы и другие электронные устройства могут передавать электронные данные. Соответственно, производительность многих вычислительных задач распределена по ряду различных компьютерных систем и/или ряду различных вычислительных окружений.
Распределенные системы обмена сообщениями могут реализовывать примеры постановки в очередь и публикации/подписки ("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 передачи, по существу, представляет лучшую попытку доставки. В компьютерной архитектуре 100 гарантия 212 передачи может быть реализована посредством деактивации менеджера 124 временного окна и деактивации компонентов 126 и 132 подтверждения приема.
Гарантия 222 передачи использует квитируемую доставку, но не использует временное окно. Гарантия 222 передачи сохраняет сообщение до подтверждения приема (потенциально постоянно). Гарантия 222 передачи предоставляет гарантию того, что после того как подписка создана, абонент вряд ли пропустит сообщение. Однако, так как временное окно не используется, подписка не может получать более старые сообщения. В компьютерной архитектуре 100 гарантия 222 передачи может быть реализована посредством деактивации менеджера 124 временного окна и активации компонентов 126 и 132 подтверждения приема.
Гарантия 232 передачи не использует квитируемую доставку, но использует временное окно. Гарантия 232 передачи гарантирует сохранение данного временного окна сообщений (например, один день). Таким образом, существующие подписчики едва ли пропустят сообщения, если они не попадают за пределы текущего окна. Новые подписчики имеют, по существу, высокую вероятность приема данного диапазона прошлых сообщений. В компьютерной архитектуре 100 гарантия 232 передачи может быть реализована посредством активации менеджера 124 временного окна и деактивации компонентов 126 и 132 подтверждения приема.
Гарантия 242 передачи использует квитируемую доставку и использует временное окно. Гарантия 242 передачи является по существу логическим и гарантии 222 передачи и гарантии 232 передачи. Таким образом, существующие подписчики едва ли пропустят сообщения, а новые подписчики имеют существенную вероятность приема данного диапазона прошлых сообщений. В компьютерной архитектуре 100 гарантия 242 передачи может быть реализована посредством активации менеджера 124 временного окна и активации компонентов 126 и 132 подтверждения приема.
В зависимости от политики сохранения журнал 102 сообщений может вести себя по-разному, когда достигнута квота. Например, при использовании гарантии 212 передачи журнал 102 сообщений может просто отбрасывать сообщения, когда квота достигнута. Журнал 102 сообщений не отправляет сообщения об ошибках инициаторам 105 сообщений, когда сообщение отбрасывается. По существу, инициаторы 105 сообщений ощущают небольшие, если вообще ощущают, задержки.
При использовании гарантий 222, 232 или 242 передачи журнал 102 сообщений может задерживать отправку ответов инициаторам, чтобы давать дополнительное время абонентам, чтобы потреблять сообщения. Таким образом, журнал 102 сообщений может компенсировать до некоторой степени, чтобы избегать тайм-аутов и повторных попыток передачи сообщения. Однако журнал 102 сообщений может в конечном счете сталкиваться с тайм-аутом, заставляющим инициаторов сообщений принимать ошибку и вероятно повторно пытаться отправить сообщение.
Матрица 203 гарантий доставки представляет пример свойств различных непохожих гарантий доставки, которые могут использоваться для передачи сообщения от курсора 103 абоненту(ам) 107 сообщения. В матрице 203 гарантий доставки каждая гарантия доставки указывает свойства гарантии, которые гарантия доставки использует или не использует. Каждая гарантия доставки может быть реализована посредством активации и деактивации различных комбинаций компонентов 153 курсора.
Например, гарантия 213 доставки не использует ни надежное состояние, ни транзакции. Гарантия 213 доставки, по существу, представляет функциональность публикации/подписки. В компьютерной архитектуре 100 гарантия 213 доставки может быть реализована посредством деактивации компонента 133 надежного состояния и компонента 131 транзакций.
Гарантия 223 доставки не использует надежное состояние, но использует транзакции. Таким образом, абоненты используют непостоянные транзакции в качестве механизма, чтобы вводить еле заметные изменения. Курсор 103 участвует в транзакциях (например, скоординированных координатором 112 транзакций) и обеспечивает строго однократную доставку в состояние, которое фиксируется. В компьютерной архитектуре 100 гарантия 223 доставки может быть реализована посредством деактивации компонента 133 надежного состояния и активации компонента 131 транзакций.
Гарантия 233 доставки использует надежное состояние, но не использует транзакции. Таким образом, курсор 103 является устойчивым, но абонент(ы) 107 сообщения не использует транзакции. Свойства предоставленной гарантии могут зависеть от модели использования (протоколов), реализованной между компонентом 133 надежного состояния и абонентом(ами) 107 сообщения. Например, первая модель сообщения включает в себя использование блокирующего протокола, чтобы блокировать сообщения (и, таким образом, предохраняет других абонентов от доступа к сообщению), и протокола подтверждения приема, чтобы информировать курсор о том, что доставка завершена. В первой модели использования абонент (107) использует протокол подтверждения приема, как только он принял сообщение, но прежде, чем он обработал его. Впоследствии, после подтверждения приема сообщения, первая модель использования включает в себя выполнение работы на основе сообщения. Абонент(ы) 107 сообщения, использующие первую модель использования, обеспечиваются не более чем однократной доставкой сообщения.
Вторая модель сообщения включает в себя использование блокировочного протокола, чтобы блокировать сообщения, и протокол подтверждения приема, чтобы информировать курсор о том, что доставка завершена. Во второй модели использования абонент (107) после выполнения работы на основе сообщения включает в себя использование протокола подтверждения приема, чтобы информировать курсор о том, что он принял сообщение. Абонент(ы) 107 сообщения, использующие вторую модель использования, обеспечиваются, по меньшей мере, однократной доставкой сообщения.
В архитектуре 100 компьютера гарантия 233 доставки может быть реализована посредством активации компонента 133 надежного состояния и деактивации компонента 131 транзакций. Различные модели использования (включающие в себя первую и вторую модель использования, описанные ранее) могут предоставлять гарантию 233 доставки с разными свойствами, такими как, например, не более чем однократная и, по меньшей мере, однократная доставка сообщения. В любом случае, гарантия 233 доставки обеспечивает надежное состояние сообщения, и восстановление после аварии или сбоя питания является вероятным.
Гарантия 243 доставки использует надежное состояние и транзакции. Соответственно, гарантия 243 доставки обеспечивает надежную строго однократную доставку абоненту(ам) 107 сообщения. В компьютерной архитектуре 100, гарантия 243 доставки может быть реализована посредством активации компонента 133 надежного состояния и активации компонента 131 транзакций.
Как описано ранее, различные гарантии могут быть выражены в (например, в низкоуровневых) динамических конфигурационных данных. Пока возможно, динамические конфигурационные данные необязательно представляют намерение конечного пользователя. Так как многие конечные пользователи не имеют полного понимания различных гарантий, модель более высокого уровня может обеспечивать защиту от неэффективных (например, истощенных ресурсах) или иных неподходящих комбинаций гарантий. Например, модель более высокого уровня может предотвращать комбинацию гарантии захвата, которая обеспечивает надежный, транзакционный захват, и гарантию передачи, которая является лучшей попыткой. Модель более высокого уровня может использовать динамические конфигурационные данные для выбора подходящих комбинаций гарантий, чтобы предоставлять гарантию сквозной передачи сообщения.
Фиг.3 иллюстрирует блок-схему примерного способа 300 конфигурирования гарантий сообщений в распределенной системе обмена сообщениями. Способ 300 будет описан относительно компонентов и данных, изображенных в компьютерной архитектуре 100 на фиг.1A.
Способ 300 включает в себя действие приема динамических конфигурационных данных 109, указывающих комбинацию гарантии захвата, гарантии передачи и гарантии доставки, которые необходимы, чтобы предоставлять требуемую гарантию сквозной передачи сообщения для передачи сообщения в распределенной системе обмена сообщениями (действие 301). Например, менеджер 104 конфигурирования гарантий может принимать динамические конфигурационные данные 109. Динамические конфигурационные данные 109 могут указывать гарантию захвата, гарантию передачи и гарантию доставки, которые необходимы, чтобы предоставлять требуемую гарантию сквозной передачи сообщения для передачи сообщения в компьютерной архитектуре 100.
Способ 300 включает в себя действие формулирования конфигурации компонента журнала сообщений из динамических конфигурационных данных, конфигурации компонента журнала сообщений для активации и деактивации соответствующих компонентов журнала сообщений, чтобы составлять гарантию захвата и составлять первую часть гарантии передачи для взаимодействия с соответствующей второй частью гарантии передачи, предоставленной компонентами курсора (действие 302). Например, менеджер 104 конфигурирования гарантий может формулировать конфигурацию 162 компонентов журнала сообщений. Конфигурация 162 компонентов журнала сообщений может включать в себя инструкции для активации и деактивации соответствующих компонентов 152 журнала сообщений, чтобы составлять гарантию захвата. Конфигурация 162 компонентов журнала сообщений может также включать в себя инструкции для активации и деактивации соответствующих компонентов 152 журнала сообщений, чтобы составлять первую часть гарантии передачи для взаимодействия с соответствующей второй частью гарантии передачи, предоставленной компонентами 103 курсора.
Способ 300 включает в себя действие формулирования конфигурации компонентов курсора из динамических конфигурационных данных, конфигурации компонентов курсора для активации и деактивации соответствующих компонентов курсора, чтобы составлять гарантию доставки и составлять соответствующую вторую часть гарантии передачи для взаимодействия с первой частью гарантии передачи, предоставленной компонентами журнала сообщений (действие 303). Например, менеджер 104 конфигурирования гарантий может формулировать конфигурацию 163 компонентов курсора. Конфигурация 163 компонентов курсора может включать в себя инструкции для активации и деактивации соответствующих компонентов 153 курсора, чтобы составлять гарантию доставки. Конфигурация 163 компонентов курсора может также включать в себя инструкции для активации и деактивации соответствующих компонентов 153 курсора, чтобы составлять вторую часть гарантии передачи для взаимодействия с первой частью гарантии передачи, предоставленной компонентами 102 журнала сообщений.
Способ 300 включает в себя действие по предписанию распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для распределенной системы обмена сообщениями (действие 304). Например, менеджер конфигурирования гарантий может предписывать компьютерной архитектуре 100 составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для компьютерной архитектуры 100.
Действие 304 может включать в себя действие отправки конфигурации компонентов журнала сообщений журналу сообщений, чтобы предписывать журналу сообщений составлять гарантию захвата и первую часть гарантии передачи (действие 305). Например, менеджер 104 конфигурирования гарантий может отправлять конфигурацию 162 компонентов журнала сообщений журналу 102 сообщений, чтобы предписывать журналу102 сообщений составлять гарантию захвата и первую часть гарантии передачи для компьютерной архитектуры 100. Действие 304 может также включать в себя действие отправки конфигурации компонентов курсора курсору, чтобы предписывать курсору составлять гарантию доставки и вторую часть гарантии передачи (действие 306). Например, менеджер 104 конфигурирования гарантий может отправлять конфигурацию 163 компонентов курсора курсору 103, чтобы предписывать курсору 103 составлять гарантию доставки и вторую часть гарантии передачи для компьютерной архитектуры 100.
Журнал 102 сообщений и курсор 103 могут реализовывать инструкции конфигурации 162 компонентов журнала сообщений и конфигурации 163 компонентов курсора, соответственно. Из инструкций журнал 102 сообщений и курсор 103 могут активировать и деактивировать соответствующие компоненты 152 журнала сообщений и компоненты 153 курсора, соответственно, чтобы составлять гарантию захвата, гарантию передачи и гарантию доставки. Вместе гарантия захвата, гарантия передачи и гарантия доставки обеспечивают требуемую гарантию сквозной передачи сообщения для компьютерной архитектуры 100.
Обращаясь теперь к фиг.1B, фиг.1B иллюстрирует компьютерную архитектуру 100, сконфигурированную так, чтобы предоставлять гарантию надежной строго однократной сквозной передачи сообщения. Гарантии, изображенные на фиг.1B, могут получаться в результате применения способа 300 в компьютерной архитектуре 100. Как изображено, журнал 102 сообщений составляет гарантию 241 захвата, чтобы обеспечивать надежный захват сообщения на основе транзакций от инициаторов 105 сообщений. Журнал 102 сообщений и курсор 103 взаимодействуют, чтобы составлять гарантию 242 передачи, чтобы обеспечивать сохранение временного окна и передачу сообщения с подтверждением приема между журналом 102 сообщений и курсором 103. Курсор 103 составляет гарантию 243 доставки, чтобы обеспечивать надежную доставку сообщения на основе транзакции абоненту(ам) 107 сообщения. Вместе составление гарантии 241 захвата, гарантии 242 передачи и гарантии 243 доставки предоставляет гарантию 174 надежной строго одноразовой сквозной передачи.
По существу, сообщение от инициаторов 105 сообщений (например, сообщение 164), в сущности, гарантированно должно быть принято строго один раз у абонента(ов) 107 сообщения даже в случае аварий системы и/или сбоев электропитания.
Соответственно, варианты осуществления изобретения упрощают конфигурацию множества различных гарантий обмена сообщениями с помощью определенного набора компонентов обмена сообщениями, которые являются активируемыми и деактивируемыми. Варианты осуществления изобретения могут, таким образом, быть реализованы, чтобы имитировать системы обмена сообщениями с очередями и публикацией/подпиской, имеющие любые из множества различных гарантий обмена сообщениями. Поскольку используется определенный набор компонентов, конфигурирование гарантий и изменение конфигураций гарантий в системе обмена сообщениями является значительно более эффективным.
Таким образом, варианты осуществления настоящего изобретения разрешают владельцу предприятия балансировать необходимость в различных гарантиях передачи сообщения со стоимостью предоставления таких гарантий передачи сообщения. Например, ресурсы могут быть сохранены посредством использования лучшей попытки или не более чем однократной доставки, когда бизнес-правила не требуют, чтобы абонент принимал каждое сообщение (например, потоковое мультимедиа). Дополнительно, когда бизнес-правила для предприятия меняются, системы обмена сообщениями могут быть более легко перестроены, чтобы соответствовать новым бизнес-правилам. Например, чтобы сохранять ресурсы, система обмена сообщениями может быть переведена из некоторого другого типа гарантии доставки на модель лучшей попытки доставки. С другой стороны, если бизнес-правила переходят к стоимостной модели, гарантии могут соответствующим образом быть перестроены, чтобы гарантировать, что абоненты (например, платящие абоненты) получали сообщение, по меньшей мере, однократно.
Настоящее изобретение может быть осуществлено в других характерных формах без отступления от своей сущности или неотъемлемых характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные, а не ограничивающие. Рамки изобретения, следовательно, указаны скорее приложенной формулой изобретения, чем предшествующим описанием. Все изменения, которые попадают под смысл и границы равнозначности формулы изобретения, должны быть охвачены ее объемом.
Изобретение относится к области конфигурирования гарантий в распределенных системах обмена сообщениями. Техническим результатом является повышение надежности доставки сообщений. Определенный набор компонентов журнала сообщений и курсора конфигурируемым образом активируется и деактивируется так, чтобы составлять множество различных гарантий захвата, гарантий передачи и гарантий доставки в распределенной системе обмена сообщениями. Сочетание гарантии захвата, гарантии передачи и гарантии доставки может предоставлять гарантию сквозной передачи для системы обмена сообщениями. Гарантии сквозной передачи могут включать в себя одну из лучшей попытки, не более чем однократной передачи, по меньшей мере, однократной передачи и строго однократной передачи и могут включать в себя одну из: надежной или ненадежной передачи. Использование определенного набора активируемых и деактивируемых компонентов журнала сообщений и курсора обеспечивает более эффективные переходы между требуемыми гарантиями. В некоторых вариантах осуществления сочетание гарантии захвата, гарантии передачи и гарантии доставки обеспечивает надежную строго одноразовую доставку сообщения. 3 н. и 17 з.п. ф-лы, 4 ил.
1. Разделенная на компоненты система (100) обмена сообщениями с конфигурируемыми гарантиями, содержащая:
журнал (102) сообщений, сконфигурированный, чтобы хранить сообщения, причем журнал сообщений включает в себя один или более процессоров, системную память и компоненты (152) журнала сообщений для составления любого расширяемого набора протоколов захвата, чтобы захватывать сообщения (164) от инициаторов (105) сообщений, причем расширяемый набор протоколов захвата сконфигурирован, чтобы предоставлять любую из множества различных гарантий захвата сообщения из набора гарантий (201) захвата сообщения, причем набор гарантий захвата сообщения изменяется в использовании надежного хранилища (122) и изменяется в использовании транзакций;
курсор (103), сконфигурированный, чтобы отслеживать передвижение абонентов (107) по сообщениям (164) в журнале (102) сообщений, причем курсор (103) включает в себя один или более процессоров, системную память и компоненты (153) курсора для составления любого расширяемого набора протоколов доставки, чтобы доставлять сообщения (164) абонентам (107) сообщения, причем расширяемый набор протоколов доставки сконфигурирован, чтобы предоставлять любую из множества различных гарантий доставки сообщения из набора гарантий (203) доставки сообщения, причем набор гарантий доставки сообщения изменяется в использовании надежного хранилища (122) и изменяется в использовании транзакций; и
при этом каждый из журнала (102) сообщений и курсора (103) также включают в себя дополнительные компоненты для взаимодействия друг с другом, чтобы составлять расширяемый набор протоколов передачи, чтобы передавать сообщения из журнала (102) сообщений отдельному курсору (103), причем расширяемый набор протоколов передачи сконфигурирован, чтобы предоставлять любую из множества различных гарантий передачи сообщения из набора гарантий (202) передачи сообщения, причем набор гарантий передачи сообщения изменяется в использовании временного окна и изменяется в использовании квитируемой доставки.
2. Система по п.1, в которой компоненты журнала сообщений, реализующие расширяемый набор протоколов захвата, включают в себя:
буфер транзакций, причем буфер транзакций конфигурируемым образом активируется и деактивируется, чтобы содействовать в составлении выбранного протокола захвата из набора расширяемых протоколов захвата, причем буфер транзакций активируется, чтобы обеспечивать транзакционный характер поведения выбранному протоколу захвата, и буфер транзакций деактивируется, чтобы обеспечивать нетранзакционный характер поведения для выбранного протокола захвата; и
надежное хранилище, причем надежное хранилище конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола захвата из набора расширяемых протоколов захвата, причем надежное хранилище активируется, чтобы обеспечивать надежное хранение выбранному протоколу захвата, и надежное хранилище деактивируется, чтобы обеспечивать непостоянное хранение для выбранного протокола доставки.
3. Система по п.2, в которой один из буфера транзакций и надежного хранилища активируется, а один из буфера транзакций и надежного хранилища деактивируется.
4. Система по п.1, в которой компоненты курсора для реализации расширяемого набора протоколов доставки включают в себя:
компонент транзакций, причем компонент транзакций конфигурируемым образом активируется и деактивируется, чтобы содействовать в составлении выбранного протокола доставки из набора расширяемых протоколов доставки, причем компонент транзакций активируется, чтобы обеспечивать транзакционный характер поведения выбранному протоколу доставки, и компонент транзакций деактивируется, чтобы обеспечивать нетранзакционный характер поведения для выбранного протокола доставки; и
компонент надежного состояния, причем компонент надежного состояния конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола доставки из набора расширяемых протоколов доставки, причем компонент надежного состояния активируется, чтобы обеспечивать надежное состояние курсора для выбранного протокола доставки, и компонент надежного состояния деактивируется, чтобы предоставлять непостоянное состояние курсора для выбранного протокола доставки.
5. Система по п.4, в которой один из компонента транзакций и компонента надежного состояния активируется, а один из компонента транзакций и компонента надежного состояния деактивируется.
6. Система по п.1, в которой компоненты журнала сообщений и компоненты отдельного курсора для взаимодействия друг с другом, чтобы реализовывать расширяемый набор протоколов передачи, включают в себя:
компоненты подтверждения приема сообщения, причем компоненты подтверждения приема сообщения конфигурируемым образом активируются и деактивируются, чтобы содействовать в реализации выбранного протокола передачи из набора расширяемых протоколов передачи, причем компоненты подтверждения приема сообщения активируются, чтобы обеспечивать квитируемый характер передачи сообщения для выбранного протокола передачи, и компоненты подтверждения приема сообщения деактивируются, чтобы предотвращать квитируемый характер передачи сообщения для выбранного протокола передачи; и
компоненты временного окна, причем компоненты временного окна конфигурируемым образом активируются и деактивируются, чтобы содействовать в реализации выбранного протокола передачи из набора расширяемых протоколов передачи, причем компоненты временного окна активируются, чтобы обеспечивать сохранение окна сообщений для выбранного протокола передачи, и компоненты временного окна деактивируются, чтобы предотвращать сохранение окна сообщений для выбранного протокола передачи.
7. Система по п.6, в которой один из компонентов подтверждения приема сообщения и компонентов временного окна активируется, а один из компонентов подтверждения приема сообщения и компонентов временного окна деактивируется.
8. Система по п.1, в которой компоненты журнала сообщений и компоненты курсора конфигурируемым образом активируются и деактивируются, чтобы обеспечивать одну из: лучшей попытки доставки сообщения, не более чем однократной доставки сообщения, по меньшей мере, однократной доставки сообщения и строго однократной доставки сообщения.
9. Система по п.1, в которой компоненты журнала сообщений и компоненты курсора конфигурируемым образом активируются и деактивируются, чтобы обеспечивать одну из: надежной доставки сообщения или ненадежной доставки сообщения.
10. Система по п.1, в которой компоненты журнала сообщений и компоненты курсора конфигурируемым образом активируются и деактивируются, чтобы обеспечивать надежную строго однократную доставку сообщения.
11. Разделенная на компоненты система обмена сообщениями с конфигурируемыми гарантиями, причем разделенная на компоненты система обмена сообщениями сконфигурирована, чтобы обеспечивать надежную, строго однократную доставку сообщений множеству клиентов, содержащая:
журнал сообщений, причем журнал сообщений включает в себя один или более процессоров, системную память и конфигурируемые компоненты хранения сообщений для реализации любого расширяемого набора протоколов захвата, чтобы захватывать сообщения от инициаторов сообщений, причем компоненты журнала сообщений сконфигурированы, чтобы реализовывать протокол надежного захвата на основе транзакций для захвата сообщений от инициаторов сообщений;
отдельный курсор на стороне клиента, причем отдельный курсор на стороне клиента отделен от журнала сообщений, причем отдельный курсор включает в себя один или более процессоров, системную память и компоненты курсора для реализации расширяемого набора протоколов доставки, чтобы доставлять сообщения абонентам сообщения, причем компоненты курсора сконфигурированы, чтобы реализовывать протокол надежной доставки на основе транзакций для доставки сообщений абонентам сообщений; и
при этом каждый из журнала сообщений и отдельного курсора также включают в себя компоненты для взаимодействия друг с другом, чтобы реализовывать расширяемый набор протоколов передачи, чтобы передавать сообщения из журнала сообщений отдельному курсору, причем взаимодействующие компоненты сконфигурированы так, чтобы реализовывать протокол передачи, обеспечивающий квитируемый характер передачи сообщения и сохранение окна сообщений.
12. Система по п.11, в которой компоненты журнала сообщений для реализации протокола надежного захвата на основе транзакций включают в себя:
буфер транзакций, причем буфер транзакций конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола захвата из набора расширяемых протоколов захвата, причем буфер транзакций активируется, чтобы обеспечивать транзакционный характер поведения для протокола надежного захвата на основе транзакций; и
надежное хранилище, причем надежное хранилище конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола захвата из набора расширяемых протоколов захвата, причем надежное хранилище активируется, чтобы обеспечивать надежное хранение для протокола надежного захвата на основе транзакций.
13. Система по п.11, в которой отдельные компоненты на стороне клиента для реализации протокола надежной доставки на основе транзакций включают в себя:
компонент транзакций, причем компонент транзакций конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола доставки из набора расширяемых протоколов доставки, причем компонент транзакций активируется, чтобы обеспечивать транзакционный характер поведения для протокола надежной доставки на основе транзакций; и
компонент надежного состояния, причем компонент надежного состояния конфигурируемым образом активируется и деактивируется, чтобы содействовать в реализации выбранного протокола доставки из набора расширяемых протоколов доставки, причем компонент надежного состояния активируется, чтобы обеспечивать надежное состояние курсора для протокола надежного захвата на основе транзакций.
14. Система по п.11, в которой взаимодействующие компоненты для реализации протокола передачи, обеспечивающие квитируемый характер передачи сообщения и сохранение окна сообщений, включают в себя:
компоненты подтверждения приема сообщения, причем компоненты подтверждения приема сообщения конфигурируемым образом активируются и деактивируются, чтобы содействовать в реализации выбранного протокола передачи из набора расширяемых протоколов передачи, причем компоненты подтверждения приема сообщения активируются, чтобы обеспечивать квитируемый характер передачи сообщения для протокола передачи; и
компоненты временного окна, причем компоненты временного окна конфигурируемым образом активируются и деактивируются, чтобы содействовать в реализации выбранного протокола передачи из набора расширяемых протоколов передачи, причем компоненты временного окна активируются, чтобы обеспечивать сохранение окна сообщений для протокола передачи.
15. Способ конфигурирования гарантии сквозной передачи сообщения для передачи сообщения от провайдеров (106) сообщений абонентам (107) сообщений в распределенной системе (100) обмена сообщениями, включающей в себя журнал (102) сообщений и курсор (103), содержащий:
этап, на котором принимают динамические конфигурационные данные (109), указывающие комбинацию гарантии захвата, гарантии передачи и гарантии доставки, которые необходимы, чтобы предоставлять требуемую гарантию сквозной передачи сообщения для передачи сообщения в распределенной системе (100) обмена сообщениями;
этап, на котором формулируют конфигурацию (162) компонентов журнала сообщений из динамических конфигурационных данных (109), конфигурацию (162) компонентов журнала сообщений для активации и деактивации соответствующих компонентов (152) журнала сообщений, чтобы составлять гарантию захвата и составлять первую часть гарантии передачи для взаимодействия с соответствующей второй частью гарантии передачи, предоставленной компонентами курсора;
этап, на котором формулируют конфигурацию (163) компонентов курсора из динамических конфигурационных данных (109), конфигурацию (163) компонентов курсора для активации и деактивации соответствующих компонентов (153) курсора, чтобы составлять гарантию доставки и составлять соответствующую вторую часть гарантии передачи для взаимодействия с первой частью гарантии передачи, предоставленной компонентами журнала сообщений; и
этап, на котором предписывают распределенной системе (101) обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для распределенной системы обмена сообщениями, причем этап включает в себя:
этап, на котором отправляют конфигурацию (162) компонентов журнала сообщений журналу (102) сообщений, чтобы предписывать журналу (102) сообщений составлять гарантию захвата и первую часть гарантии передачи; и
этап, на котором отправляют конфигурацию (163) компонентов курсора курсору (103), чтобы предписывать курсору (103) составлять гарантию доставки и вторую часть гарантии передачи.
16. Способ по п.15, в котором этап приема динамических конфигурационных данных, указывающих комбинацию гарантии захвата, гарантии передачи и гарантии доставки, содержит этап, на котором принимают динамические конфигурационные данные, указывающие комбинацию гарантии захвата, гарантии передачи и гарантию доставки, которые необходимы, чтобы обеспечивать надежную, строго однократную доставку сообщения.
17. Способ по п.15, в котором этап предписания распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре с тем, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для распределенной системы обмена сообщениями, содержит этап, на котором предписывают распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для системы с постановкой сообщений в очередь.
18. Способ по п.15, в котором этап предписания распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре с тем, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для распределенной системы обмена сообщениями, содержит этап, на котором предписывают распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для системы обмена сообщениями с публикацией/подпиской.
19. Способ по п.15, в котором этап предписания распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре с тем, чтобы реализовывать требуемую гарантию сквозной передачи сообщения для распределенной системы обмена сообщениями, содержит этап, на котором предписывают распределенной системе обмена сообщениями составлять гарантию захвата, гарантию передачи и гарантию доставки в журнале сообщений и курсоре так, чтобы реализовывать одну из: лучшей попытки доставки сообщения, не более чем однократной доставки сообщения, по меньшей мере, однократной доставки сообщения и строго однократной доставки сообщения и одной из: надежной доставки сообщения или ненадежной доставки сообщения.
20. Способ по п.15, дополнительно содержащий:
этап, на котором активируют и деактивируют в журнале сообщений компоненты журнала сообщений, как это предписано в конфигурации журнала сообщений, чтобы составлять протокол захвата и первую часть протокола передачи; и
этап, на котором активируют и деактивируют в курсоре компоненты курсора, как это предписано в конфигурации компонентов курсора, чтобы составлять протокол доставки и вторую часть протокола передачи.
US 7162512 В1, 09.01.2007 | |||
US 7050432 В1, 23.05.2006 | |||
Способ приготовления мыла | 1923 |
|
SU2004A1 |
RU 2004109133 А, 10.10.2005. |
Авторы
Даты
2013-04-27—Публикация
2008-11-14—Подача