Not logged in. · Lost password · Register
Forum: XMPP Protocol RSS
Avatar
ayyrk #1
Member since Jul 2007 · 92 posts
Group memberships: Members
Show profile · Link to this post
Subject: RPC, PubSub
The miniclient exanple is a great place to start for building a chat application. Now I'd like to try PubSub over XMPP. Is there an agsxmpp example for this?

Thanks!
Avatar
Alex #2
Member since Feb 2003 · 4449 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Hello,

sorry but there are no RPC or Pubsub examples.
If you have studied the MiniClient example and the XEP's and are familiar with the techniques in agsXMPP you should have no problem add this to your application.

Alex
Avatar
ayyrk #3
Member since Jul 2007 · 92 posts
Group memberships: Members
Show profile · Link to this post
In reply to post #1
I'm studying XEP-0060 now.

Question: is xmpp PubSub widely used? Am I on the right track if I'm looking for an event driven message oriented middleware type solution?
Avatar
Alex #4
Member since Feb 2003 · 4449 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Hello ayyrk,

PubSub is not widely used yet because its pretty new.
But its ready production and already build in in the most servers.

I'm looking for an event driven message oriented middleware type solution?
We would need more details about your software to see if pubsub fits your needs.
       
Alex
Avatar
ayyrk #5
Member since Jul 2007 · 92 posts
Group memberships: Members
Show profile · Link to this post
Alex,

I’m evaluating SDKs for developing applications on windows mobile 6.

It has to be a thick client application so that data can be accessed while the device is out of cell coverage or the radio is off.

I already have a non XMPP version in production on about 500 devices. It uses a closed proprietary commercial C++ store and forward library wrapped in COM Interop. Problems with this solution include difficulty establishing a network connection, lack of presence information, and lack of an RPC API.

I’m now prototyping a replacement system.

The devices roam internationally so a lot of focus and testing is on the establishment and maintenance of the GPRS connection. This can be achieved using the state and notification broker. We now have a connection state machine to automatically connect to the Internet through GPRS (or Active Sync through a networked PC) and then to an XMPP server. It even knows when to give up and restart the radio with toosten.

The IM and presence functionality of agsxmpp has been proven in a limited pilot (5 testers around the world). Next we need an RPC mechanism. The current non XMPP solution passes XML through the store and forward library. The server is stateless and the clients poll every 10 minutes for changes.

I’m looking to replace this with an event driven framework so that it looks like the changes are being “pushed” from the server instead of polled for every 10 minutes. Perhaps an event is published when new data is available on the server and the client in turn makes an RPC call to retrieve it.

My questions:

Is XMPP PubSub the right mechanism to signal a mobile device that new data is available for retrieval? 

Is there an XMPP (agsxmpp) way of making an RPC call or should XMPP just handle the event notification and a separate SOAP API be used to retrieve the data?

It would be better if we didn’t have to expose our SOAP server on the Internet so I’m looking for a way to pass all mobile device traffic through the XMPP server and have processes behind the firewall make the SOAP calls.

Thanks – agsxmpp rocks!
Avatar
Alex #6
Member since Feb 2003 · 4449 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Quote by ayyrk:
I’m looking to replace this with an event driven framework so that it looks like the changes are being “pushed” from the server instead of polled for every 10 minutes. Perhaps an event is published when new data is available on the server and the client in turn makes an RPC call to retrieve it.

yes this is what pubsub does. You have a publisher who publishes new items to the the pubsub service. Depending on the configuration of the node the pubsub component notifies all subscribers.

Quote by ayyrk:
Is XMPP PubSub the right mechanism to signal a mobile device that new data is available for retrieval? 

Yes it is.
PubSub can notify all subscribers that new data is available, but PubSub can also send the new data with each notification.

Quote by ayyrk:
Is there an XMPP (agsxmpp) way of making an RPC call or should XMPP just handle the event notification and a separate SOAP API be used to retrieve the data?

yes there is Jabber-RPC (XEP-0009) which is also included in agsXMPP. There is also a XEP-0072 for SOAP over XMPP, and you can also map your data to agsXMPP objects.

Quote by ayyrk:
]
It would be better if we didn’t have to expose our SOAP server on the Internet so I’m looking for a way to pass all mobile device traffic through the XMPP server and have processes behind the firewall make the SOAP calls.

This is no problem. You can also write a server component which talks to your SOAP server if you want.
But depending on the complexity of your data you don't need SOAP at all. agsXMPP is very object orientated code. We map the XMPP protocol to c# objects. You could do exactly the same with your data.
If you data is variable and has no predefined schema then of course smth like SOAP is the best solution.

Alex
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters: