Протокол WS-AT - PullRequest
       23

Протокол WS-AT

1 голос
/ 15 июня 2011

Не могли бы вы помочь мне понять, как работает протокол WS-AT.Мой вопрос: как клиентский сервер узнает URL-адрес служб координации WS-AT?

Ответы [ 3 ]

1 голос
/ 16 июня 2011

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

1 голос
/ 16 июня 2011

WS-AT обрабатывается механизмом, который обрабатывает веб-сервисы в вашей системе.Например, если вы используете .NET в Windows, то WS-AT обрабатывается WCF, который использует координатор распределенных транзакций Windows (DTC) для координации транзакций.Очевидно, для этого он также использует протокол WS-Coordination.

Вам необходимо настроить систему для WS-AT.В системах Windows вы должны использовать для этого утилиту конфигурации WS-AT (см. Также http://msdn.microsoft.com/en-us/library/ms732007.aspx).

. См. Также спецификации WS-AT по адресу http://docs.oasis -open.org / ws-tx /wstx-wsat-1.1-spec-os / wstx-wsat-1.1-spec-os.html и спецификации WS-COOR по адресу http://docs.oasis -open.org / ws-tx / wscoor / 2006 /06 .

Дополнительная литература: http://searchsoa.techtarget.com/definition/WS-AtomicTransaction.

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

0 голосов
/ 06 сентября 2016

Обычно координатор транзакции находится на стороне клиента.Когда клиент вызывает транзакционную веб-службу, он должен включать заголовок SOAP, например:

<wscoor:CoordinationContext
    xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06"
    SOAP-ENV:mustUnderstand="1">
    <wscoor:Identifier>urn:0:ffffac1b0a40:46142b39:57ce82aa:1f57
    </wscoor:Identifier>
    <wscoor:CoordinationType>http://docs.oasis-open.org/ws-tx/wsat/2006/06
    </wscoor:CoordinationType>
    <wscoor:RegistrationService>
        <wsa:Address>http://xxxx.yyyy.zz:8080/ws-c11/RegistrationService
        </wsa:Address>
        <wsa:ReferenceParameters>
            <wsarj:InstanceIdentifier
                xmlns:wsarj="http://schemas.arjuna.com/ws/2005/10/wsarj">0:ffffac1b0a40:46142b39:57ce82aa:1f57
            </wsarj:InstanceIdentifier>
        </wsa:ReferenceParameters>
        <wsa:Metadata>
            <wsam:ServiceName xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
                EndpointName="RegistrationPortType">wscoor:RegistrationService</wsam:ServiceName>
        </wsa:Metadata>
    </wscoor:RegistrationService>
</wscoor:CoordinationContext>

В <wsa:Address> он указывает URL-адрес службы регистрации координатора транзакций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...