<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>9702</bug_id>
          
          <creation_ts>2010-05-10 20:36:58 +0000</creation_ts>
          <short_desc>Eventing: Add a wse:ExpirationTimeConstraintsNotSupported fault</short_desc>
          <delta_ts>2010-07-28 09:09:54 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WS-Resource Access</product>
          <component>Eventing</component>
          <version>LC</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>REMIND</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>externalComments</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Mensch">antoine.mensch</reporter>
          <assigned_to name="notifications mailing list for WS Resource Access">public-ws-resource-access-notifications</assigned_to>
          <cc>dug</cc>
    
    <cc>lli5</cc>
    
    <cc>ram.jeyaraman</cc>
          
          <qa_contact name="notifications mailing list for WS Resource Access">public-ws-resource-access-notifications</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35542</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Mensch">antoine.mensch</who>
    <bug_when>2010-05-10 20:36:58 +0000</bug_when>
    <thetext>Supporting the min, max and exact constraints on requested expiration time may be too complicated for small devices (especially since the semantics of comparison for xsd:duration is not particularly well defined  e.g. is 1 month greater than 30 days?). In addition, when using scarce resources, it is important to leave the responsibility of the subscription life cycle to the event source(as was the case in the Submission version of the spec). If this feature is profiled out by DPWS (OASIS Devices Profile for Web Services), DPWS may have to introduce a DPWS-specific fault, thus creating interop issues with standard WS-Eventing subscribers. Therefore, a standard fault for handling this case could be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35627</commentid>
    <comment_count>1</comment_count>
    <who name="Li Li">lli5</who>
    <bug_when>2010-05-12 15:27:08 +0000</bug_when>
    <thetext>Please clarify the differences between the proposed fault and existing faults: wse:UnsupportedExpirationType and wse:InvalidExpirationTime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35631</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Mensch">antoine.mensch</who>
    <bug_when>2010-05-12 16:03:05 +0000</bug_when>
    <thetext>wse:UnsupportedExpirationType addresses the case where a xsd:dateTime is used as expiration spec, when only xsd:duration is supported by the event source, so it is not related to my issue.
wse:InvalidExpirationTime means that the expiration spec is either malformed (i.e. not a xsd:dateTime or xsd:duration), or that it does not fulfill the constraints expressed by the @min and @max attributes (which by the way means that the event source understands those atributes).
wse:ExpirationTimeConstraintsNotSupported would be used to reject a subscription request using constraints when the event source is not able or not prepared to use them. As explained in the issue description, supporting those constraints might be a problem for small devices.  
I know that some people might claim that using faults is not the best way to discover if optional features are supported, but note that this is exactly what happens when wse:UnsupportedExpirationType is returned (this remark is not a request to remove this particular fault!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35647</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Freund">bob</who>
    <bug_when>2010-05-12 19:04:09 +0000</bug_when>
    <thetext>directional decision Expires is server optional, add a fault for when its not supported, add a ExpiresSupported policy assertion, Subscribe w/o Expires == server chooses, Subscribe + Expires == match the time/duration or fault.
consider until 2010-05-13</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35661</commentid>
    <comment_count>4</comment_count>
    <who name="Ram Jeyaraman">ram.jeyaraman</who>
    <bug_when>2010-05-13 01:10:13 +0000</bug_when>
    <thetext>Consequent to what we discussed today about simplifying the existing semantics for specifying a subscription expiry time, I like to propose the following refinement to what was discussed today [1]:

1) Expires is server optional, add a fault to indicate non-support, and add an ExpiresSupported policy assertion parameter.

2) If Expires is absent, server chooses an appropriate duration for subscription.

3) If Expires is present:

If attribute exact is present, the server must honor the requested duration or reject the subscription with a fault.

If the attribute exact is absent (default behavior) , the requested duration is a hint. This allows the event source to better accommodate the client preferences when it grants a time duration for subscription.

[1] Direction discussion today

Expires is server optional, add a fault for when its not, add a ExpiresSupported policy assertion, Subscribe w/o Expires == server chooses, Subscribe + Expires == match the time/duration or fault</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35677</commentid>
    <comment_count>5</comment_count>
    <who name="Doug Davis">dug</who>
    <bug_when>2010-05-13 17:47:31 +0000</bug_when>
    <thetext>Proposal:
Absent == indefinite, present == exact, present + @bestEffort=true == best effort, present/PT0S == indefinite/exact, present/PT0S+@bestEffort=true  == indefinite/best-effort

policy: DateTimeSupported, ExpiresSupported, MaxExpires

add Fault for cases where expires is not supported

applies to Renew too

editorial: reorder assertions so these grouped together</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35678</commentid>
    <comment_count>6</comment_count>
    <who name="Robert Freund">bob</who>
    <bug_when>2010-05-13 17:48:55 +0000</bug_when>
    <thetext>resolved with comment 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35679</commentid>
    <comment_count>7</comment_count>
    <who name="Doug Davis">dug</who>
    <bug_when>2010-05-13 18:04:11 +0000</bug_when>
    <thetext>apply to enum too</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>