[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [xmlblaster] Re: REGEX/XPATH subscriptions - newbie requests assistance

Thanks Marcel.  I found the zvon.org XPath tutorial and found the contains()
function.  I'm new to XPath - I didn't realize you could do all that with

I definitely need IE 5.5+ support or I'll have to find another alternative.
More and more people are going to zero-install, completely thin clients like
IE.  Maybe I can look into why it's stopped working...  Is there a How-To on
getting the servlet working?  Looks like I'll need Tomcat and a web server
(Apache, probably).  I've had all that working in the past and it wasn't
terribly difficult.  A little documentation on the stuff (like what goes
where, what to set up to get it all working, etc.) would give me a
jump-start, though.

Thanks for the response! :-)



-----Original Message-----
From: Marcel Ruff [mailto:mr at marcelruff.info] 
Sent: Monday, June 16, 2003 4:36 PM
To: xmlblaster at server.xmlBlaster.org
Subject: [xmlblaster] Re: REGEX/XPATH subscriptions - newbie requests

Hi Bret,

>First - thanks for the wonderful work on xmlBlaster!  I haven't yet 
>figured it all out, but it looks like it'll be _enormously_ useful.  
>I've been looking for a MoM/JMS options that can do HTTP
>to a browser as well as standard PtP and Pub/Sub messaging and the
>infrastructure for
>xmlBlaster seems quite open and workable.  :-)
>My question is this... I need some guidance on how to implement the 
>following using xmlBlaster to achieve optimal performance and 
>usability.  Here's the situation:
>1) I have a hierarchy of people that looks like this: enterprise
>    enterprise data
>    sites
>         site data
>         groups
>               data for groups
>               individuals
>                          data for individuals
>2) I'd like to report real-time statistics to browsers, stand-alone 
>applications, pagers, email, etc.  I envision people opening their tool 
>of choice (i.e. the stand-alone app), which would
>subscribe them to a certain class of messages in the hierarchy.
The real-time callback to browsers is tricky.
The idea is that instant callbacks tunnel through all firewalls and 
internet proxies.
This works fine for mozilla, but the current IE and Opera don't work, we 
have not
investigated yet why (once upon a time IE 5 worked).

Other protocols can be plugged in to xmlBlaster.
But plan some days for each missing protocol, if you donate the plugins back
plan some additional days for automatic testing and documentation. See
http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.html  ff

>3) I'd like people to get **ONLY** the information to which they're 
>privileged to see.  This means group managers can only see their 
>subordinates' information. Individuals can only see their
>information.  Site administrators can see everything below them.
>admins can see **
Your specific authorization must be done by a plugin as well, see

>4) I'd like to subscribe using this nomenclature: 
>In practice this would look like this: 
>ent_foobar.site_123.grp_12.agt_2108.x=y (where x=y is the datapoint and 
>value).  The x=y could be the body of the message, I guess.  I suppose 
>the message would look like this:
>   <site id = "123"> 
>      <grp id = "12"> 
>         <agt id="2108">
>            <datapoint = value/>
>         </agt>
>      </grp> 
>   </site> 
>Group managers would subscribe to the information that includes their 
>group number (e.g. regex =  ".*grp_12.*".  Agents would subscribe to 
>only their agent information using a regex =
> ".* agt_2108", etc.
>Ideally I think I'd subscribe using a regex on the user or groupnumber, 
>but I don't see that option -- did I miss it?  I see the ability to 
>subscribe to an EXACT match on an oid, or to
>use the REGEX on the *message body*, but not to subscribe using a regex on
>the oid.
Sorry, regex is not supported in the core. The internal query interface 
is currently XPath
only. Changing this to be pluggable will be some days of work. You can use
XPath to filter the oid directly, so probably you don't need 
regex to do what you need,
try 'starts-with()', 'contains()' etc.

>As I've only just started using xmlBlaster I'm sure I don't quite 
>understand the paradigm, so I'd appreciate any suggestions or guidance 
>you might have. :-)  I have built working versions
>of this subscription scheme using XPATH, but is it the most efficient way
>doing this?  Have 
>I just described the "contains()" function of the XPATH?  Should I use this
>for an XPATH subscription?
>//agt [ at id='2108']
Why not. You can gain performance with absolute queries like

/xmlBlaster/key/foobar/site/grp/agt[ at id='2018']

>Another quick question - is it possible to have different callback 
>functions for each particular use?  In a single program I might want to 
>have some callbacks call the xyz() method,
> while others call the abc() method.  This would keep the update() method
>from being just a
> big case-oriented traffic-cop ;-).  No big deal if that's what update() is
>supposed to do -
> again, I'm just asking, trying to understand the architecture better :-).
Over the remote connection we only support update() and 'oneway update()'.
But the java client library has a dispatching possibility:

SubscribeReturnQos qos = con.subscribe(sk, sq, new I_Callback() {
   public String update(String cbSessionId, UpdateKey updateKey, byte[] 
content, UpdateQos updateQos) {
         log.info(ME, "Receiving asynchronous message '" + 
updateKey.getOid() +
                  "' state=" + updateQos.getState() + " in HelloWorld4 
         return "";
});  // subscribe with our specific update handler

See xmlBlaster/demo/javaclients/HelloWorld4.java