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: Comments on INFOD specification



Here are my comments on the June 28th INFOD  specification. I've included a
background section and a section with some general comments, mostly not
related to WS-Notification.
See also those made by Matt Roberts -
http://www.oasis-open.org/apps/org/workgroup/wsn/email/archives/200607/msg00008.h
tml



Background - Comparison of WS-Notification and INFOD

Both WSN and INFOD are concerned with the distribution of Notification
(Event) Messages from Publishers to Consumers. However there is a
difference in the "pattern" used to relate these participants.

WS-Notification describes two such patterns

i) The Direct Notification pattern, where the subscriber sends subscribe
requests directly to the Publisher (in WS-Notification terms the Publisher
is also the NotificationProducer)

ii) The Brokered pattern where subscribe requests are sent to a
NotificationBroker, distinct from the Publisher. The NotificationBroker
holds publisher and subscription details and also acts as an intermediary
for the actual NotificationMessages, i.e. each such message flows from the
Publisher to the broker, and from there to all the relevant Consumers.

INFOD uses a third (complementary) pattern. In the INFOD pattern subscribe
requests are again sent to a third party (the Registry) which holds
publisher and subscription details, but does not directly interpose itself
in the flow of Notification Messages between Publisher and Consumer(s).
Instead it makes each Publisher aware of the addresses of those Consumers
and leaves the Publishers to do the actual sending of the Notification
Messages. Much of the INFOD specification is concerned with the interface
to this Registry.

Unlike WSN, INFOD provides a mechanism for registering Subscribers, indeed
it requires Subscribers to be registered before they can create
subscriptions.

INFOD subscriptions differ from WS-Notification ones.

a) They can have a name and description, which is intended to be meaningful
to humans

b) They don't directly reference Publishers, but they can contain
PropertyConstraints which are used to match against the properties of
registered publishers. In the WSN direct case there is only one publisher,
in the WSN brokered case then the ProducerProperty filter provides
something similar to this.

c) They can contain properties of their own, used to match against
publisher requirements (i.e. the matching of properties is symmetrical
unlike in WSN where it is subscription matching against publisher only)

d) They contain both DataConstraints and DynamicConsumerConstraints which
allow filtering on message content. This looks similar to the WSN Message
and Topic filters.



Comments - Positioning of INFOD relative to WS-Notification

1.  The abstract states that WS-Notification just provides a basic
topic-based pub/sub pattern, and that INFOD extends this by allowing
content-based subscription. This isn't entirely true, since WS-N also
provides for content-based subscription (and indeed doesn't actually
require the use of Topics).

2. Figure 2 uses the word "Notification" to show the Registry informing the
Publisher of a change of its state, but does not use the word
"Notification" to describe the messages that flow between the Publisher and
Consumer. Readers might equate "Notification" with WS-Notification, but  I
think the intention of section 3.1 is that WS-Notification's Notify message
is used for both flows.

3. The description of Data Vocabularies looks as though it is intended to
layer on top of other mechanisms, such as WS-Topics. If this is so, it
would be worth showing an example of how this is would work.

4. There seems to be scope for greater alignment with WS-Notification
concepts? Examples

a) making INFOD subscription entities look like extensions of WSN ones

b) making INFOD publisher entities look like extensions of
WS-BrokeredNotification publisher registrations?



Comments - INFOD usage of WS-Notification (sections 1.9 and 3.1)

1.  Is the notify really a notification of a state change of the registry,
or is it a directive to the publisher to send a message, or a directive to
the publisher to change its list of consumers? In the latter case it could
be modelled as a WSN subscribe on the publisher. Does the registry need to
know when the publishers have reacted to the state change? In which case it
can't use WSN Notify since that is only a one-way exchange.

Assuming that you are going to make the INFOD notify interface into a
specialization of the WSN NotificationConsumer interface, then there are a
number of other points to address

2. Line 257 says "the interfaces MUST be called using a request-reply
message" (I think this means a "message exchange" ). The WSN-defined Notify
message exchange is a one-way, not a request-reply.  then you need to
change this sentence to say that it applies only to the registry interface.

3. The schema for the Notify message should change to use the wsn
namespace; the usage of SubscriptionReference, Topic and ProducerReference
should match that defined by WSN; and the message should use the WSN Action
URI.

4. Should update the BaseN reference to point to the committee spec -
http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-cs-01.pdf

Further questions

5. Could you use WS-N PullPoints as a polling method, in cases where the
publishers can't be notified. The getMetaData approach seems to leave some
work for the publisher to do to figure out what it's supposed to do? I
wasn't clear how the registry knows whether to deliver notifications to the
publisher, or whether the publisher is going to poll (the pullpoints
approach would resolve this as in the polling case, all the publisher does
is supply a pullpoint EPR instead of its own EPR).

6. On receipt of the notify, does the producer send just one message to
each consumer, or does it send multiple? I think multiple, but it wasn't
clear to me.



Other comments

1.1.2. Data Vocabularies. Figure 3 distinguishes between Property
Vocabulary and Property Vocabulary Instances, but there is no Data
Vocabulary Instance.. why is this?

1.1.5 Shouldn't fig 3 show a reference from an entity to a Property Vocab
Instance (as set up by CreatePropertyVocabularyInstance) rather than to a
Property Vocab?

1.1.5 Are Data Vocabularies associatable with anything other than
Publishers?

1.3 Lifetime management. If WSRF-RL is being used to manage lifetime, why
not use WSRF-RP to be able to create/read/write the contents of the
entities?

1.5 Relationship between state transitions, events and messages is unclear.
Is there always a 1-1 correspondence between them all, or can you have
events that don't correspond to any state transition. How much of this is
actually relevant to the INFOD spec (in WSN we said that all of this was
out of scope)?

1.5 Line 164 (description of Property Vocabs) has a typo where. It refers
to Data Vocabularies when it means Property Vocabularies.

1.5 Line 157. I can understand how you can associate a property vocabulary
instance with an Entity, but what does it mean to associate on with a
Vocabulary Association?

1.5 Line 174. What does it mean to say that a Publisher delivers messages
unconditionally? Does this mean that they go to all registered consumers,
regardless of what the consumers' subscriptions say?

1.5 Line 187. Use of the word "entity" here in a way that isn't consistent
with the definition in line 143.

1.5 Line 209 says that a Vocab Association is between a Vocab and a
Publisher, but Fig 3 shows it being between a Vocab and any kind of entity.

1.6 Line 215 says that you are using RFC 2119. There are several cases
where lower case "optional" is being used in a manner that doesn't comply
with RFC 2119.

1.6 Line 217 talks about types for attributes. I think you are using a
similar convention for element types.

1.7 Line 244 lists a namespace for WSRF-RP, but I couldn't see it used
anywhere (however see my earlier comment suggesting that you might want to
use it).

1.9 Lines 257- 263 seem to be restating rules of WS-Addressing and its
bindings. Are you trying to say anything different from those specs? If you
aren't then I would suggest that these lines aren't needed. If you are
going to include them, then in point 2 it's HTTP that has the built-in
reply address, not SOAP. Also I don't understand the difference between
points 1 and 3.

2.1 Line 276, the MUST seems a bit heavy, are you saying that there's no
way that people can use alternatives to these operations in special
circumstances? Also are you allowed to use WSRF-RL destroy as an
alternative to drop?

2.1 Line 283 "the publisher has to identify subscriptions and consumers
that match..." I thought the registry did that for the publisher.

2.1 Lines 304/305. These lines are using real XML Schema, not the
pseudo-schema conventions.

2.1.2 ReplacePublisher. Why do you put the EPR of the entity to be replaced
into the body of the message, instead of just have that resource be the
target of the message itself (same comment for all the other Replace and
Drop requests)?

2.3.1 CreateConsumer. Line 731 talks about "the corresponding
subscription". Can't there be more than one corresponding subscriptions?

2.4.1 CreateSubscription. Line 939, use of MAY doesn't conform to RFC 2119.

2.4.1 Create Subscription. What is the difference between DataConstraints
and DynamicConsumerConstraints? Also the descriptions of both talk about a
vocabulary EPR. Is this a Data Vocabulary? How do I describe the constraint
language used to express these constraints.. is it entirely determined by
the Vocabulary. In WSN a particular "vocabulary" allows a choice of
dialects you can use to express your filter on the subscribe request,

2.4.3 Drop Subscription. What exactly counts as a reference to a
subscription? Does the fact that a publisher thinks it is sending to a
consumer under the aegis of a given subscription count as a reference? If
so then does "CASCADE" cause such publishers to be removed?

2.5 Managing Vocabularies. Line 1183 talks about Assocations having
properties, I couldn't find this explained anywhere.

2.5.1 RegisterPropertyVocabulary, line 1217. If the vocab is required to be
an XML schema, why doesn't infod:VocabularyBody contain an xsd:schema
element to enforce this?

2.5.4.RegisterDataVocabulary. Back at line 1193 you say that the Registry
merely contains a pointer to the Data Vocab, and the material in that vocab
is held elsewhere. Yet 1400 seems to imply passing a string representation
of the vocabulary into the registry. Is this intended to be passing just a
reference, or is it the actual data?

2.6. How does a subscription get to reference a Data Vocabulary. Do you use
AssociateVocabulary or is that only for associating publishers?

2.6.1 Line 1497 talks about an AssociateEntity operations which no longer
seems to exist.


Peter Niblett
IBM Senior Technical Staff Member

+44 1962 815055



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