OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsn message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [wsn] QueryExpression type




In the item 3 below, you say - "We don't require the topic identifier to be carried in the NotificationMessage,...". However, the NotificationMessageHolderType in the latest WSDL has Topic as a mandatory element. I wonder if you were referring to the case of raw notification messages (which obviously does not require a Topic identifier).

Also, should some text describing the purpose for each level of filtering (along with a quick example) be included in the spec?

Thanks,
Sanjay



> -----Original Message-----
> From: Peter Niblett [mailto:peter_niblett@uk.ibm.com] 
> Sent: Thursday, Jul 01, 2004 8:38 AM
> To: David Hull
> Cc: Steve Graham; wsn@lists.oasis-open.org
> Subject: Re: [wsn] QueryExpression type
> 
> 
> 
> 
> 
> 
> David
> 
> I concur with Steve's explanation (this is the "Three levels 
> of filtering"
> thread)... so with an author's hat on...
> 
> 1. Selectors filter based on the values of fields that form 
> part of the
> message content
> 
> 2. Preconditions filter on things that are known to the
> NotificationProducer, but don't necessarily appear in the messages. As
> Steve says, a particular NotificationProducer might have an internal
> property called DEBUG_ON. A precondition lets you filter on DEBUG_ON =
> "true" without requiring that the NotificationMessages all 
> contain DEBUG_ON
> = "true"
> 
> 3. Topics are used to identify the class/classes of situation that the
> Subscriber is interested in. We don't require the topic 
> identifier to be
> carried in the NotificationMessage, so Topic filtering can't always be
> achieved using selectors (and as you say, there are also performance
> considerations that motivate having a separate topic expression).
> 
> You also asked why Precondition and Selector have type
> wsrp:QueryExpressionType while TopicExpression has type
> wsnt:TopicExpressionType, since if you look into the content models of
> these types, they look identical. If we were - hypothetically 
> - to change
> the declaration of TopicExpression so that its type became
> wsrp:QueryExpressionType (or indeed some other type like
> wsxx:AnyWithDialect that happened to have the same content 
> model) then our
> new schema would still validate precisely the same set of XML 
> instances as
> the current one.
> 
> I think the reason for having distinct type defnitions is to 
> imply a sense
> of typing, even though it can't be enforced by schema validation. The
> dialects that you use for Precondition/Selector might well be 
> different
> from the set of dialects used for TopicExpression (and so would have
> different URIs) hence the reason for using different types. 
> The reason for
> using wsrp:QueryExpressionType for Precondition and Selector 
> is to suggest
> to implementors that they consider supporting the same dialects for
> Precondition/Selector as they do for querying Resource Properties in
> WS-ResourceProperties.
> 
> Peter Niblett
> IBM Senior Technical Staff Member
> 
> 
> 
> 
>                                                               
>              
>              Steve Graham                                     
>              
>              <sggraham@us.ibm.                                
>              
>              com>                                             
>           To 
>                                        David Hull 
> <dmh@tibco.com>          
>              30/06/2004 21:41                                 
>           cc 
>                                        
> wsn@lists.oasis-open.org            
>                                                               
>      Subject 
>                                        Re: [wsn] 
> QueryExpression type      
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
>                                                               
>              
> 
> 
> 
> 
> 
> David:
> Thanks for this analysis.  With regards to Precondition, 
> Selector (filter)
> and Topic, yes I agree that these are similar concepts of 
> "reducing the
> number of possible notifications" that "match" the subscription.
> 
> Part of the reasoning (if I can recall it) for the 3 
> different forms is
> roughly as follows:
> 
> Topic, and TopicSpaces, and the way that the producer uses 
> them is (for the
> most part) under its control.  The subscriber cannot directly 
> influence the
> topic space.  If the producer's choice of Topics (ie how it 
> "partitions"
> the set of all notifications the producer wishes to accept 
> subscirptions
> for) is outside of the control of the subscriber.  If the 
> producer chooses
> a very coarse grained topic model, then the subscriber would 
> either have to
> take all messages on a given topic (even if only a subset 
> were desired), or
> ... the consumer could avail itself of the selector mechanism.
> 
> So... the selector mechanism was put in place to provide the 
> subscriber a
> means of specifying producer side filtering.  This gives the 
> subscriber
> some amount of control, that is not available if we only had the Topic
> mechanism of doing "filtering".  Now a fair question might 
> be, great, you
> have selector, why do you need topics?  Well, one answer (I 
> suspect there
> are many more) suggests that with Topics, there is a large amount of
> producer-side security and performance QoS opportunities than 
> are possible
> with "only" selector.
> 
> Now... the question that often comes up is why does one need 
> both selector
> and precondition.  This is a much harder question.  This 
> boiled down to
> some use cases related to "subsetting" the notification 
> message stream.
> There are certain circumstances that are not contained in the message
> itself (so selector cannot be used) that affect whether notificaitons
> should be delivered on a subscription.  So, for example, 
> imagine there was
> a DEBUG_ON resource property. I could specify a precondition on the
> subscription that DEBUG_ON = "true".  This allows non-message based
> conditions to also be applied to the topic and selector based means of
> doing notification message subsetting.
> 
> sgg
> 
> ++++++++
> Steve Graham
> (919)254-0615 (T/L 444)
> STSM, On Demand Architecture
> Member, IBM Academy of Technology
> <Soli Deo Gloria/>
> ++++++++
> 
> 
>                                                               
>             
>     David Hull <dmh@tibco.com>                                
>             
>                                          To:                  
>             
>                                  wsn@lists.oasis-open.org     
>             
>     06/30/2004 03:37 PM                  cc:                  
>             
>                                          Subject:        
> [wsn]            
>                                  QueryExpression type         
>             
>                                                               
>             
> 
> 
> 
> 
> 
> After re-reading in more detail, I believe one of my previous comments
> on precondition and selector was slightly off.
> 
> These elements are defined as having type QueryExpression, 
> which is just
> a dialect attribute and mixed content.  I had mistakenly assumed they
> contained an element of type QueryExpression.  As the sample message
> shows, the precondition element in the subscribe message already looks
> like I suggested it should.
> 
> The main difference between Precondition and Selector on the one hand
> and TopicExpression on the other is that TopicExpression has type
> wsnt:TopicExpressionType while the others have type
> wsrp:QueryExpressionType.  The two types have essentially identical
> definitions.
> 
> In either case, we want to be able to allow any kind of content but
> easily and explicitly know what sort of content it is.   It seems odd
> that we have two different definitions of "arbitrary content 
> tagged with
> a dialect ID".  If this concept is useful, it seems more generally
> useful than either topic expression or query expression.  An 
> alternative
> would be for all three elements to have the same type, and 
> for that type
> to have a more generic name than "QueryExpression".
> 
> 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]