2013-08-26 4 views
2

Я пытаюсь создать файл вложения WS-политики, чтобы привязать политику к действию конкретного экземпляра процесса. Я прочитал, что ссылка на конечную точку (EPR) должна быть включена в элемент AppliesTo, но проблема в том, что я не знаю, как указать экземпляр процесса. Следующий код присоединяет политику к активности invoke для всех экземпляров процесса MyProcess.Как указать экземпляр службы во внешнем файле привязки WS-политики?

<wsp:PolicyAttachment> 
    xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy" 
    xmlns:q4b="http://www.example.com/q4b" 
    xmlns:ns="http://www.example.com/processes" 
<wsp:AppliesTo> 
    <q4b:process name="ns:myProcess" expressionLanguage="xpath1.0"> 
    /process/inovoke[2] 
    </q4b:process> 
</wsp:AppliesTo> 
<wsp:PolicyReference> 
    URI="http://www.example.com/policies/myPolicy"/> 
</wsp:PolicyAttachment> 

AppliesTo элемент определяет предмет политики. Он включает в себя новый определенный XML-тип, называемый q4b: process, который определяет имя процесса и включает выражение XPath для выбора второй активности вызова этого процесса. Элемент PolicyReference - ссылка на прилагаемую политику.

В спецификации привязки WS-Policy есть пример, который использует ссылку на конечную точку, но объяснение говорит, что она применит политику ко всем взаимодействиям с конечной точкой. Это не совсем то, что я хочу, так как я хотел бы, чтобы политика применялась только к указанному экземпляру процесса и только к определенному действию. Я использую Apache ODE в качестве механизма рабочего процесса.

В следующем примере показано использование этого механизма с выражением домена с EndpointReference для развернутой конечной точки, как определено в веб-службах адресации [WS-адресации Core]:

(01) <wsp:PolicyAttachment> 
(02) <wsp:AppliesTo> 
(03)  <wsa:EndpointReference> 
(04)  <wsa:Address>http://www.example.com/acct</wsa:Address> 
(05)  </wsa:EndpointReference> 
(06) </wsp:AppliesTo> 
(07) <wsp:PolicyReference 
(08)  URI="http://www.example.com/policies#RmPolicy" /> 
(09) </wsp:PolicyAttachment> 

В этом примере выражение политики в применяется ко всем взаимодействиям с конечной точкой.

WS-Policy Attachment specifications

WS-Addressing specifications

Спасибо за ваше время и усилия.

ответ

0

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