Reliable Publish Subscribe

As WCF gets close to shipping I have a stumbling block. How could one implement pub/sub in a reliable manner?
My thought so far have been. 1) List based pub/sub using a duplex contract, as in the sdk example - pros: service defines the contract, cons: maintaining the client subscriptions reliably when the server goes down.
2) Client may go down, so send over a queue binding - pros: service does not need worry once the message has been sent, cons: each client defines their own contract, service would need a way to dynamically discover each client and send messages
3) The delegate type in .NET is a good paradigm, i.e. the class/service defines the method signature and data. Could this be applied to WCF in a similar manner so the service, as in duplex defines the method signature but transport can be queue based.

This is a common business senario but I don't see the answer. Can anyone help.

Maybe for a later version?

Thank you
Ben Walker

[999 byte] By [BenECM] at [2007-12-24]
# 1

Ben,

I don't know whether you've looked at it already or not, but Juval Lowy has a nice article about implementing a pub/sub scenario using WCF in this month's MSDN Magazine, including a discussion on persistent subscriptions.

Hope that helps,

Vitaly

vito1281 at 2007-10-8 > top of Msdn Tech,Visual Studio Orcas,Windows Communication Foundation (Indigo)...
# 2

another option is WS-Eventing:

http://wcf.netfx3.com/files/folders/other_snippets/entry4548.aspx

Thanks

Roman

RomanKiss at 2007-10-8 > top of Msdn Tech,Visual Studio Orcas,Windows Communication Foundation (Indigo)...
# 3

Depending on the nature of guarantees you are interested in your pub/sub scenario, David Pallmann from Neudesic has built a pub/sub enterprise messaging system on top of the peer channel in Indigo. The peer channel enables peer to peer multiparty messaging in .Net 3.0.

If you are interested in getting more information on this, please let me know. I can give you some details on how you can build this out on your own, or get you in touch with David.

Thanks,

Ravi Rao

RaviRao at 2007-10-8 > top of Msdn Tech,Visual Studio Orcas,Windows Communication Foundation (Indigo)...
# 4

Thanks Ravi. I would be interested in exploring this.

Are there additional platform requierments for the Peer channel, over and above Framework 3.0?

Thanks

Ben ECM

BenECM at 2007-10-8 > top of Msdn Tech,Visual Studio Orcas,Windows Communication Foundation (Indigo)...
# 5

Hi,

I have viewed Lowy's publish/subscribe architecture, but what I cannot see is how subscribers (clients) are managed when they go down. (your issue 2).

With Loweys architecture, all subscribers will be notified whenever the publisher raises an event, each of these notifications are on a ThreadPool thread, which can degrade performance if the subscribers are no longer available.

How does the queue binding help with this scenario?

BrianKnight at 2007-10-8 > top of Msdn Tech,Visual Studio Orcas,Windows Communication Foundation (Indigo)...

Visual Studio Orcas

Site Classified