RE: [wsrm] [REL-49]proposal for REL-49

From
Jacques Durand <>
Date
2004-01-21T04:06:48+00:00
ID
Thread
RE: [wsrm] [REL-49]proposal for REL-49
Sunil:

 

A few 
comments, which I don't see critical, but even if we keep the 
annotation

as you 
propose, we need to explicitly state which of the following semantics it 
has:

 

- It 
should be possible to express that only input messages are concerned by the RM 
features

even when attaching a service config annotation 
at service / port / op level, (i.e. without having to

"override" at message level, in order to exclude the output 
message.)

E.g. 
scope="input", (future versions will handle: scope="output", 
scope="input-ouput")

 

- 
The annotation you propose is not always about capability: in some cases 
the RM features *must* be used

by the 
client. In other words, the annotation may have different 
meaning

for 
each side. Consider the following cases, each gives the annotation a different 
meaning:

 

1. 
server capability (this is your service config I think): WS supports this RM 
feature if client asks for using it. 

Attribute: clientuse="possible".

 

2. 
client requirement: client must use the feature, because the WS implementation 
assumes it does 

for a 
proper WS behavior (e.g. ordering required, when using repeatedly 
a monitoring operation)

Attribute:  clientuse="required".

 

3. 
server requirement: E.g. WS1 is a deployed pay-per-use WS, which will respond to 
users via requests

issued 
to users. The user then has to implement a "response" WSDL, 
describing a service WS2 that 

supports these requests. So we may want to specify in the WSDL 2 that 
the WS implementation or

deployment  MUST support the RM feature, because the client (here 
the deployed WS1) will use it.

Attribute: serveruse="required" (or clientuse="possible"?) 

 

Beyond 
this, it becomes user-specific (e.g. according to an SLA) and would require more 
advanced

policies or agreements attached to user ID.

 

Jacques

  
-----Original Message-----
From: Sunil Kunisetty 
  [mailto:]
Sent: Tuesday, January 20, 2004 
  2:57 PM
To: 
Subject: Re: [wsrm] 
  [REL-49]proposal for REL-49

  
 Here is my AI 
  from the last F2F  to simply the proposal for REL-49. 
  
 Salient points are: 
  
    
A non-normative proposal for annotating Service WSDL with WSRM 
    capabilities 
    
Based on WSDL  extensibility element concept. 
    
Defines only one extensible schema element (ServiceConfig) 
    
This element could be used at any of the following WSDL levels: 
    
      
message/input/output/operation/binding/bindingOperation/port/service 
      

    
This service element could be used inside any vendor specific policy 
    elements or directly. 
 Example of a 
  <ServiceConfig> usage inside the operation 'foorBar'. 
  
<portType name="fooPortType"> 
  <operation 
  name="fooBar"> 
    <wsrm:ServiceConfig xmlns:wsrm="http://www.oasis-open.org/committees/wsrm/schema/1.1/SOAP1.1" 
  > 
  
        
  <wsrm-guaranteed-delivery> 
            
  <!-- List the reply patterns supported by this service.  
  --> 
            
  <wsrm:reply-patterns 
                   
  callback="{boolean}" 
                   
  poll="{boolean}" 
                   
  response="{boolean}" 
             
  /> 
        
  </wsrm-guaranteed-delivery> 
        
  <wsrm-duplicate-elimination/> 
        
  <wsrm-message-ordering /> 
     </wsrm:ServiceConfig> 
  
     <input message="fooMessageIn" /> 
  
     <input message="fooMessageOut> 
  
   </operation> 
</portType> 
  
  
 Schema for such an element would 
  be: 
 <xsd:element name="ServiceConfig" 
  type="wsrm:ServiceConfigType" /> 
 <!-- ServiceConfig WSDL Extensible Element Type 
  --> 
 <xsd:complexType 
  name="ServiceConfigType"> 
  
  <xsd:complexContent> 
   
  <xsd:extension base="wsrm:RmBaseType"> 
    <xsd:sequence> 
     <xsd:element 
  name="wsrm-guaranteed-delivery"  
  type="wsrm:wsrm-guaranteed-delivery-type" minOccurs="0"/> 
     <xsd:element 
  name="wsrm-duplicate-elimination" type="wsrm:EmptyType" 
  minOccurs="0"/> 
     
  <xsd:element name="wsrm-message-order" type="wsrm:EmptyType" 
  minOccurs="0"/> 
    
  </xsd:sequence> 
   
  </xsd:extension> 
  
  </xsd:complexContent> 
 </xsd:complexType> 
 <xsd:complexType 
  name="wsrm-guaranteed-delivery-type"> 
  
  <xsd:complexContent> 
   
  <xsd:extension base="wsrm:EmptyType"> 
    <xsd:sequence> 
     <xsd:element name="reply-patterns" 
  type="wsrm:reply-patterns-type"  /> 
    </xsd:sequence> 
   </xsd:extension> 
  </xsd:complexContent> 
 </xsd:complexType> 
 <xsd:complexType name="reply-patterns-type"> 
  
  <xsd:complexContent> 
   <xsd:extension base="wsrm:EmptyType"> 
  
    <xsd:attribute name="callback" 
  type="xsd:boolean" use="optional"/> 
    <xsd:attribute name="poll" 
  type="xsd:boolean" use="optional"/> 
    <xsd:attribute name="response"  
  type="xsd:boolean" use="optional"/> 
   </xsd:extension> 
  </xsd:complexContent> 
 </xsd:complexType> 
  
 
  
 -Sunil