VWG's On-Server Web model, is as scalable as ASP.NET AJAX and apparently more
host posted on February 25, 2008 :: 3304 Views
One too many, I have been asked; the answer is, yes VWG's On-Server Web model, is as scalable as ASP.NET AJAX and apparently more
The model gets high attentions from developers who keep questioning this model scalability.
Well, here is a more detailed answer.
On-Server Web is based on optimized server-web client connectivity. An average action would generate no more than 1k of Meta data payload. On top there is another optimization by a mechanism that analyzes code, sorting critical events from uncritical ones, calling back, only critical events.
This way highly optimized protocol is achieved.
Sounds complicated? Well, it is not!
The concept is based on the good old "main frame" model, extended for web and updated to include cutting edge AJAX for connectivity and now Silverlight, for a richer presentation layer.
The VWG On-Server client is empty!
When in run time mode, once a VWG application is accessed a 200K kernel, automatically downloaded, and the connection is set.
Logic, data, IP, all run on server. Nothing but that small kernel runs on client.
This is made possible by server state that is being drawn on client using Meta data only. A unique mechanism keeps constant equilibrium between server state and client's and updates only when that equilibrium is broken by user interactions or server updates.
The result, only differential, tiny packets of Meta data are being sent back and force.
See following diagrams.
Drawing 1 - description of On-Server Web paradigm
Drawing 2- description of On-Server – web client connectivity
And now to real world experience:
On-Server Web performance and scalability is attested to, by real world experience as follows:
MVP RICK STRHANAL posts in his blog, following On-Server VWG evaluation:
"… Yup that's not very scalable - and the VWG guys make no secret out of that fact that VWG is not meant for high traffic sites or even for very visual ones..."
After being made aware of the unique architecture, he posts again:
"…well it's interesting. I hooked up Web Application Stress Tool to it and ran through my app and let it rip and surprisingly the throughput is like any other ASP.NET application in terms of number of requests. Now VWG will generate many more requests than your average postback style or even AJAX application, but still if the performance of that throughput with small requests is what I saw in these tests it looks like it should easily scale to at least the threadpool size of users (ie. 100 or so). FWIW, the throughput I saw was 185 req/second which is roughly what I see on a typical simple ASP.NET application. This is with 20 clients and a stress multiplier of 10 with no request limits..."
MVP WIKTOR posts in his blog, real world application testing as follows:
Contest context
More than two years ago we've built a small web application used to collect and print documents required to participate in secondary school final examinations in Poland. The application is used quite extensively by people from all over the country.The application, maturzysta.vulcan.pl, is located here.
…The first version of the application was built as a server-side application: all SelectedIndexChanged events were auto-postbacked and processed on the application server. This caused a lot of trouble since the heavy form had to be sent to and from the server.
The year later we've completely redesigned the application…In the meantime, few promising AJAX frameworks appeared and we thought that it would be possible to go back to the initial version of the application but instead of expensive postbacks we could take the AJAX approach and replace postbacks with callbacks. This could solve all problems: reduce the traffic and still keep the application logic on the server-side.
The test
Microsoft Application Center Test has been choosen as the contest judgement tool. Tests were performed on the Windows XP machine serving as the application server. Exactly 200 sessions have been simulated for 5 concurrent users. Each session has been recorded as the complete user session - forms have been filled with data and dropdown selections have been made. Each session ended with the application showing the print-ready document.
Results
Gathering all results together, we had 2 non-Ajax contestants: pure Web.Forms application, Javascript version of it and 6 Ajax frameworks: Microsoft's ASP.NET AJAX, Ajaxium, VisualWebGUI, ComfortASP.NET, Anthem.NET and Telerik's RAD Ajax.
Regarding requests-per-second we have following results:
|
|
requests-per-second
|
reference
|
|
VWG
|
422
|
198,1220657
|
|
Javascript
|
400
|
187,7934272
|
|
Telerik
|
292
|
137,0892019
|
|
ASP.NET AJAX
|
222
|
104,2253521
|
|
Web.Forms
|
213
|
100
|
|
Anthem
|
133
|
62,44131455
|
|
Ajaxium
|
111
|
52,11267606
|
|
Comfort
|
35
|
16,43192488
|
Regarding number-of-bytes-sent we have following results:
|
|
sent data
|
reference
|
|
Javascript
|
1938800
|
24,23560589
|
|
VWG
|
2066800
|
25,83564589
|
|
Ajaxium
|
5029800
|
62,87407185
|
|
ASP.NET AJAX
|
5600600
|
70,00925023
|
|
Comfort
|
5880400
|
73,50683767
|
|
Anthem
|
6161400
|
77,01942549
|
|
Telerik
|
7293200
|
91,16727918
|
|
Web.Forms
|
7999800
|
100
|
Regarding number-of-bytes-received we have following results:
|
|
received data
|
reference
|
|
VWG
|
23348807
|
29,11700146
|
|
Javascript
|
37121000
|
46,29153905
|
|
Ajaxium
|
47756301
|
59,55423272
|
|
Web.Forms
|
80189600
|
100
|
|
Comfort
|
83742600
|
104,4307491
|
|
Anthem
|
121547800
|
151,575516
|
|
ASP.NET AJAX
|
129531800
|
161,5319194
|
|
Telerik
|
172294800
|
214,8592835
|
Few comments:
- the overall winner is VWG, however the application had to be completely rewritten in order to run under this framework
- the javascript version did not win (even in the bytes-received test!) and though this may seem surprising, it is caused by the script size
- the Ajaxium, Anthem and Comfort reduce the requests-per-second ratio singificantly. The latter two are able to correctly handle dynamic, non-ajax content sent to the browser
- regarding the requests-per-second, Telerik is significantly better than ASP.NET AJAX, however it downloads huge amout of data comparing to all other frameworks
SAP's Asaf Saar, posts in his blog:
"…Then you compile your project and magic, you get a web page with an amazing rich look and feel. Of course, since it’s all AJAX there are no refreshes, no postbacks, and it’s very fast…"
Mark Reed of NetworkD attests:
“Once we went to VWG we saw anywhere from 100%-400%+ improvement in speed…"
High traffic server
Real world experience proves that VWG's On-Server model is scalable.
Visual WebGui is going to ship a new server that allows serialization and floating session that will enable deployment over web farm, thus allowing very high traffic, Amazons like, which usually requires deployment over a web farm. Stay tuned, on this.