Введение

WS ReliableMessaging описывает протокол, обеспечивающий надежную доставку SOAP-сообщений между распределенными приложениями в условиях сбоев программных компонентов, систем или сети. Оригинальная спецификация была разработана компаниями BEA Systems, Microsoft, IBM и Tibco в марте 2003 года и в дальнейшем совершенствовалась в течение следующих двух лет. Версия, выпущенная в феврале 2005 года, была представлена в Технический комитет OASIS Web Services Reliable Exchange (WS RX) в июне того же года. В результате WS ReliableMessaging 1.1 был утвержден в качестве стандарта OASIS 14 июня 2007 года, а версия 1.2 – 2 февраля 2009 года. До появления WS ReliableMessaging, OASIS разработал конкурирующий стандарт (WS Reliability), который поддерживался коалицией поставщиков, в частности Fujitsu, Hitachi, NEC, Oracle Corporation, Progress Software и Sun Microsystems. Большинство этих поставщиков теперь также поддерживают спецификацию WS ReliableMessaging.

Надежная модель передачи сообщений

Источник приложения (AS) стремится надежно отправлять сообщения в пункт назначения приложения (AD) через ненадежную инфраструктуру. Для этого используются надежный источник сообщений (RMS) и надежный пункт назначения (RMD). AS отправляет сообщение в RMS. RMS использует протокол WS ReliableMessaging (WS RM) для передачи сообщения в RMD. RMD доставляет сообщение в AD. Если RMS не может передать сообщение в RMD по какой-либо причине, он должен сгенерировать исключение или иным образом уведомить AS о неудачной передаче сообщения. AS и RMS могут быть реализованы в одном адресном пространстве или как отдельные компоненты. Аналогично, AD и RMD могут существовать в одном адресном пространстве или как отдельные компоненты. Важно помнить, что спецификация WS RM рассматривает только содержимое и поведение сообщений в момент их передачи "по сети". То, как сообщения отправляются от AS к RMS, как они доставляются от RMD к AD, сохраняются ли сообщения на диске или хранятся в памяти и т.д. – все эти аспекты не входят в спецификацию WS RM. Протокол WS RM определяет и поддерживает ряд гарантий доставки. Вот некоторые из них:
AtLeastOnce: Каждое сообщение будет доставлено в AD по крайней мере один раз. Если сообщение не может быть доставлено, RMS и/или RMD должны сообщить об ошибке. Сообщения могут быть доставлены в AD более одного раза (то есть AD может получить дубликаты сообщений). AtMostOnce: Каждое сообщение будет доставлено в AD не более одного раза. Сообщения могут не быть доставлены в AD, но AD никогда не получит дубликаты сообщений. ExactlyOnce: Каждое сообщение будет доставлено в AD ровно один раз. Если сообщение не может быть доставлено, RMS и/или RMD должны сообщить об ошибке. AD никогда не получит дубликаты сообщений. InOrder: Сообщения будут доставляться от RMD к AD в том же порядке, в котором они были отправлены от AS к RMS. Эта гарантия может быть объединена с любой из вышеперечисленных гарантий.

Композиционная архитектура

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

Критика

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

История

WS ReliableMessaging 200303 разработана компаниями BEA, IBM, Microsoft и Tibco. WS ReliableMessaging 200403 разработана компаниями BEA, IBM, Microsoft и Tibco. WS ReliableMessaging 200502 разработана компаниями BEA, IBM, Microsoft и Tibco. Эта версия спецификации была реализована рядом поставщиков и проектов с открытым исходным кодом. Её иногда называют "WS ReliableMessaging 1.0" или "WS RM 1.0". Данная спецификация и сопутствующая ей WS RM Policy 200502 были представлены в Технический комитет OASIS Web Services Reliable Exchange (WS RX) для стандартизации в июне 2005 года. WS ReliableMessaging 1.1 является результатом работы вышеупомянутого WS RX TC. Она сопровождается спецификациями WS RM Policy 1.1 и WS MakeConnection 1.0. Все три спецификации были утверждены в качестве стандартов OASIS 14 июня 2007 года. WS ReliableMessaging 1.2 заменяет ссылки на предстандартные версии WS Policy ссылками на Рекомендацию W3C по WS Policy (WS Policy 1.5) и устраняет некоторые незначительные ошибки. Она сопровождается спецификациями WS RM Policy 1.2 и WS MakeConnection 1.1. Все три спецификации были утверждены в качестве стандартов OASIS 2 февраля 2009 года.