I would agree with this as we are in the process of performance tuning /
scaling our application and IIS Hosted SingleCall (binary formatter) seems
to be the best. It may not be the ultimate performer but when the load
begins to get heavy, it scales gracefully especially with the Web Garden
feature of IIS 6 (IIS5 has a simular thing when you use the High (Isolated)
process for the IIS Application in COM+).
FYI... I also did some testing with compression (with datasets I was getting
300K to 30K) but for us the connection between the servers was high and so
saw little to no improvement with it in place. If there was a slower
connection it would likely be of benefit (internet vs intranet).
Fred
[quoted text, click to view] "NuTcAsE" <rao.ritesh@gmail.com> wrote in message
news:1107284463.651878.51620@c13g2000cwb.googlegroups.com...
>So, my first (easy) question is...: it's even close to reality
having a
>remoting object instantiated so long? There is any serious
limitation
>related with server capacity, threads, and that kind of stuff?
Yes. You could practically allow the CAO to live as long as the client
application's alive... but with bandwith and memory costs. When
implementing CAO, the server determines the lifetime of the cao, and
according to your implementation the cao should live as long as the
client is alive. This involves regsitering a client side sponsor that
the server can ping at reggular intervals to see if it should discard
the cao object at the server side... When dealing with a relatively
high transacted environment, the pinging between the server and client
slows the system network considerably.. and over the internet is a
complete different thing. Coming to scalability, you can forget it with
CAO. CAO's serious limitation is that once it is created it binds to
the specific end point to the server. That means out goes load
balancing. You cant take any load balancing or web farm advantages of
IIS when you host CAO services. The same above is valid for marshalled
SAO services.
[quoted text, click to view] >The other possible way is: having a SingleCall scenario, when the
first
>login method returns a "token" (and the host persisting that token
on the
>DB, or something like that)... and every subsequent method call will
send
>that token among the other parameters.
SingleCall's are the best when it comes down enterprise level
distributed apps. They dont take up that much memory (they are gc'd at
the next garbage collection cycle), you can use IIS load balancing and
web farms to scale your application, and dont consume excess network
bandwith if the interfaces arnt chatty.
I would suggest using the SingleCall scenario. Admited its a litle more
complex and required more plumbing than the CAO approach, but the
result will a more responsive and scallable application.
Thats my 2c.
NuTcAsE