How do you see this fitting with the TopicList and Topic apis that are currently part of the globus contribution?
/Sam On Fri, 2005-01-21 at 18:11 +0100, Stefan Lischke wrote: > Hi there, > > Sal and i we just had a short conversation about Topic Filtering, i just > want to summerize the method i think we could use. Therefor i'm imagine > a Brokered Network with Subscriber A, Broker B, and Publisher C. A > subscribes at B and C is publishing his notifications to B. So B is the > filtering instance. > > -- > First i want to summarize how i do Filtering based on XPath filters for > WS-Eventing: > Filters for WS-E are (subset of) XPath expressions. So when B gets a > notification from C, it starts filtering. All the subsriptions(filters) > that are matching will get notified. > The Broker B has a statemachine(Yfilter). This statemachine contains all > subscriptions(filters) as a set of states. for example: > /a/b are two states in the machine with one transition a->b. Now imagine > there is a second Subscription(filter) which is /a/c, > so just a third state c is added and a transition from a->c. Both > subscriptions are now sharing the state a, thats why its called shared > path statemachine. > > If a notification arrives, the statemachine is driven by parsing of the > notification: for example > <a><c>hello</c></a>. First a is parsed ant the statemachine is in state > a, now c is parsed and the machine makes a transition to c. After > parsing, all endstates of the machine are matching filters/subscriptions > and the notif is going to be forwarded to the subscriber. > > This allows only one parsing for millions of filters to be applied. > -- > > Now lets come to the WS-Topics filtering. Since WSN is using semantic > filters, it is the other way round like in ws-eventing. > so we just use plains XPath evaluation: > > Our Broker B has a TopicSpace XML document. like > <topicspace><topic name="sports"><topic name="tennis"/></topic></topicspace> > now a subscription is made via a TopicExpression: tns:sports/tennis > We could just add a subscriptionsTag to the topic tennis in our topicSpace: > <topicspace><topic name="sports"><topic name="tennis"><subscription > epr="..." id=".."/></topic></topic></topicspace> > > Now a notification arrives at the Broker. Every Notification has to > specify ONE topic on which this notif is about with: > /wsnt:Notify/wsnt:NotificationMessage/wsnt:Topic > The notification is probably about tns:sports/tennis, so an XPath expr > is created: > /topicspace/[EMAIL PROTECTED]'sports']/[EMAIL PROTECTED]'tennis'] > This XPath expression is applied to the topicSpace XML DOM and > <subscription epr="..." id=".."/> is returned. > If multiple subscriptions are matching they are all returned by the > XPath evaluation. > > This technique just needs one XPath eval for millions of subscriptions. > > What you think about that? > > stefan > -- Sam Meder <[EMAIL PROTECTED]> The Globus Alliance - University of Chicago 630-252-1752 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
