Environment choices

Jul 15, 2010 at 1:52 PM


This looks exciting.

Can the service end point be IIS instead of the windows service ? Is ssl supported ?



Jul 16, 2010 at 6:20 AM

I have not tried hosting Laharsub.exe in IIS but it should be possible or at least very easy to achieve with minimal tweaking. The choice of Windows Service (or Console Application) as a host was dictated by previous experiments which showed that HTTP long polling service does not scale to large number of concurrent clients when hosted in IIS.

Laharsub does not support SSL currently, but adding security is high on my priority list. If you cannot wait, enabling SSL in its most common form (server authentication, integrity and confidentiality) should require minimal changes to how the WCF binding is configured if the base address scheme is HTTPS as opposed to HTTP.

Do you have any client authentication or authorization requrements? Who can create a topic? Who can publish to a topic? Who can subscribe?


Nov 12, 2010 at 3:02 PM


I'm curious about your comment: previous experiments which showed that HTTP long polling service does not scale to large number of concurrent clients when hosted in IIS. I'm here because of the recent Silverlight TV episode and I do not believe you mentioned in that episode anything about performance issues with HTTP long polling from the silverlight client back to the web server?

In my situation I have the following: silverlight LOB clients that need to be notified when specific events happen in the business engine.  There is the obvious authentication issues, which are currently handled by the with Membership Provider.  I was originally planning to have the clients call a Subscribe method on the business service they are using for all the other activities.  I don't know what "Large number of concurrent clients" means.


Ralph Shillington

Nov 12, 2010 at 8:16 PM


Apart from ad-hoc experiments I ran, I am referring to the measurements of performance of Silverlight 4 polling duplex protocol with the WCF backend service hosted in IIS, which are described at http://tomasz.janczuk.org/2009/08/performance-of-http-polling-duplex.html. You can compare these results with the performance of self-hosted Laharsub at http://laharsub.codeplex.com/wikipage?title=Performance. The latter should also give you an idea of what to expect in terms of performance parameters as a function of the number of concurrent clients.

Concurrent users in the context of HTTP long polling protocol are directly correlated to the number of concurrent HTTP long poll requests pending at the server (which is also the number of active TCP connections to the server). One important scalability factor in such scenario is the amount of memory the server requires to service an active TCP connection. Two components are thread usage and raw memory cost of maintaining a TCP connection. Any environment that blocks a thread to service a pending HTTP long poll request scales very poorly due to the memory cost of the thread (even if it is sleeping). Laharsub is a fully asynchronous system that does not suffer from such threading design constraint. The performance measurements of Laharsub () show that server memory usage grows linearly with the number of concurrent clients with under 40KB of memory used per client connection in the particular "web chat" scenario tested.