Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
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.
WS ReliableMessaging describes a protocol that allows SOAP messages to be reliably delivered between distributed applications in the presence of software component, system, or network failures. The original specification was written by BEA Systems, Microsoft, IBM, and Tibco and in March, 2003 and subsequently refined over the next two years. The February, 2005 version was submitted to the OASIS Web Services Reliable Exchange (WS RX) Technical Committee in June of that year. The resulting WS ReliableMessaging 1.1 was approved as an OASIS Standard on June 14, 2007, and v1.2 was approved on February 2, 2009. Prior to WS ReliableMessaging, OASIS produced a competing standard (WS Reliability) that was supported by a coalition of vendors; namely Fujitsu, Hitachi, NEC, Oracle Corporation, Progress Software, and Sun Microsystems. Most of these vendors now also support the WS ReliableMessaging specification.
Надежная модель передачи сообщений
Источник приложения (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. Эта гарантия может быть объединена с любой из вышеперечисленных гарантий.
An Application Source (AS) wishes to reliably send messages to an Application Destination (AD) over an unreliable infrastructure. To accomplish this, they make use of a Reliable Messaging Source (RMS) and a Reliable Messaging Destination (RMD). The AS sends a message to the RMS. The RMS uses the WS ReliableMessaging (WS RM) protocol to transmit the message to the RMD. The RMD delivers the message to the AD. If the RMS cannot transmit the message to the RMD for some reason, it must raise an exception or otherwise indicate to the AS that the message was not transmitted. The AS and RMS may be implemented within the same process space or they may be separate components. Similarly, the AD and RMD may exist within the same process space or they may be separate components. The important thing to keep in mind is that the WS RM specification only deals with the contents and behavior of messages as they appear "on the wire". How messages are sent from the AS to the RMS, how they are delivered from the RMD to the AD, whether messages are persisted on disk or held in memory, etc. ; none of these considerations are part of the WS RM specification. The WS RM protocol defines and supports a number of Delivery Assurances. These are:
AtLeastOnce Each message will be delivered to the AD at least once. If a message cannot be delivered, an error must be raised by the RMS and/or the RMD. Messages may be delivered to the AD more than once (i. e. the AD may get duplicate messages). AtMostOnce Each message will be delivered to the AD at most once. Messages might not be delivered to the AD, but the AD will never get duplicate messages. ExactlyOnce Each message will be delivered to the AD exactly once. If a message cannot be delivered, an error must be raised by the RMS and/or the RMD. The AD will never get duplicate messages. InOrder Messages will be delivered from the RMD to the AD in the order that they are sent from the AS to the RMS. This assurance can be combined with any of the above assurances.
Композиционная архитектура
WS ReliableMessaging использует модель расширяемости SOAP и WSDL. WS ReliableMessaging не определяет все возможности, необходимые для полноценного решения обмена сообщениями. WS ReliableMessaging является базовым компонентом, который используется совместно с другими спецификациями веб-сервисов и протоколами, специфичными для приложений, для построения полноценного решения обмена сообщениями.
WS ReliableMessaging uses the extensibility model of SOAP and WSDL. WS ReliableMessaging does not define all the features required for a complete messaging solution. WS ReliableMessaging is a building block that is used in conjunction with other Web Services specifications and application specific protocols to build a complete messaging solution.
Критика
В этой статье делается попытка обосновать, что надежность не требуется на уровне сообщений, а необходима на уровне бизнеса.
This article attempts to make the case that reliability is not needed at the message level, but required at the business level.
История
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 года.
WS ReliableMessaging 200303 authored by BEA, IBM, Microsoft, and Tibco. WS ReliableMessaging 200403 authored by BEA, IBM, Microsoft, and Tibco. WS ReliableMessaging 200502 authored by BEA, IBM, Microsoft, and Tibco. This version of the specification has been implemented by a number of vendors and open source projects. It is sometimes referred to as "WS ReliableMessaging 1.0" or "WS RM 1.0". This specification and its companion WS RM Policy 200502 were submitted to the OASIS Web Services Reliable Exchange (WS RX) Technical Committee for standardization in June, 2005. WS ReliableMessaging 1.1 is the product of the above mentioned WS RX TC. It is accompanied by the WS RM Policy 1.1 and WS MakeConnection 1.0 specifications. All three specifications were approved as OASIS Standards on June 14, 2007. WS ReliableMessaging 1.2 The version replaces the references to pre standard versions of WS Policy with references to the WS Policy W3C Recommendation (WS Policy 1.5) and fixes some minor errors. It is accompanied by the WS RM Policy 1.2 and WS MakeConnection 1.1 specifications. All three specifications were approved as OASIS Standards on February 2, 2009.