Published on: Wednesday, May 28, 2008
By: Navot
User Rating:
Categories: Technical,
Talk of the day
Users have accessed this article 5389 times.
Differing Business Needs
Citrix, like Microsoft's Terminal services, provides a path for deploying existing desktop applications on the Web. It achieves this with a relatively high degree of control and security, allowing porting of the existing application to the web with no development as such. This can be a cost-effective approach, even with Citrix’s client based deployment cost model. Considering the large backbone of legacy applications, which embrace complex business logic and which were developed for the desktop, it's easy to understand the success of Citrix and Terminal Services.
It must be pointed out, however, that viewing the interface through the browser, doesn't turn the desktop application into a web application. In many respects, it is a little like terminal emulation. A quick solution but less elegant and much slower than a purpose-built web application, with little or no integration with the newer web technologies.
VWG, on the other hand, is something different entirely. It is a powerful and rapid web development tool, able to deliver a full-blown, uncompromising web application. The resulting system incorporates leading-edge .Net technologies including WinForms development patterns, VB-like drag and drop development, a Silverlight user experience and ASP.net interoperability to achieve the highest levels of performance, customization, interoperability and developer productivity.
So, Citrix is great when you want to use an existing desktop application but not really an option for system developers wishing to develop and deploy a business application over the web.
If Citrix is just for quick browser deployment of existing desktops apps and VWG is a platform incorporating also an entire web application development tool, then why the confusion? The answer is this: VWG offers a compelling approach to porting existing desktop applications to the web - different from the Citrix model - through quick migration or re-engineering of the system to a pure web application based on ASP.NET technology. It is a solution which necessitates the involvement of developers but doesn't require you to start from scratch. Legacy WinForms and Visual Basic applications can be easily ported to VWG. New applications can be rapidly developed using WinForms-like drag & drop designers, all from within Visual Studio. This is the realm of VWG, which also just happens to be one of the most powerful tools around to develop new web systems.
Porting the Desktop to the Web
If you have the option of dedicating development resources to the porting project, the VWG approach gives you a rapid route to turn the legacy application into an ultra-modern web app, particularly if your existing business system was developed around WinForms. VWG has a fast migration path which allows you convert a large part of your existing code to the VWG environment. Once you have done this, the benefits are enormous. You get a full, uncompromised, web application which can be further developed with any pure web development tools – Visual Studio, VWG or any other development platform of your choice. In addition, VWG offers developers a choice of presentation layers and deployments; DHTML or Silverlight at the touch of a button. The Silverlight presentation layer UI can be styled using Microsoft’s Expression Blend and can incorporate video and animation.
Lower Bandwidth, Higher Performance
VWG applications, like Citrix deployments, are centralized on the server, communicating with the browser via TCP/IP. The business logic runs on the server in both cases, but the way each solution communicates with the client is totally different.
The Citrix approach uses an application streaming technology combined with virtualization at the client side. The application communicates with the remote hosts in an isolated environment on the host, something that necessitates the serialization and de-serialization of the view passing through the network, in order to work. In other words, Citrix transfers graphical changes between the server and the client, resulting in high CPU usage and memory consumption on the server and slower communication with the browser. The use of more powerful servers is frequently mandatory for the application to be usable.
VWG, on the other hand passes only the differential meta data between the server and browser. It needs only to keep balancing the state between client and server by using commands and thin data (differentials of meta data) which it passes via a small client kernel of some 250Kb. The result is significantly less load on the network (average of 1 KB, no matter what the application does) and on the server, in terms of both CPU and memory usage, and a much faster interaction with the browser, producing a more interactive and responsive desktop-like experience.
But, there is more. With Citrix even when running on a powerful server, the overhead described above limits the number of users on a single server who can simultaneously access the server-based application - ten to twenty users are normally the upper limit. This may be enough for back-office use but for enterprise-wide or customer-facing applications, which may need dozens, if not upwards of hundreds of users, the Citrix/Terminal Services model cannot be expected to function well. VWG's uncompromised, multi-user web technology can support hundreds of users all accessing the application at the same time, in true internet style. It can be easily scaled into a web farm of multiple web servers supporting thousands of users, all accessing the same application simultaneously (like Amazon.com).
Cost and ROI
Citrix requires software installation on every client as compared to VWG which needs no client installation whatsoever - no downloads, add-ins, setup or anything else – just an ordinary device with a browser – desktop computer, laptop or PDA.
Then there is the license. VWG only requires a developer license whereas the Citrix model incurs a cost for each separate client. From a purely economic angle, Citrix becomes less viable as you add more clients, while VWG becomes more cost effective along the same axis. But the ROI afforded by VWG comes not only from the initial deployment. Your return on investment is then increased further due to the positioning of your application as a full web application, whose SOA architecture gives you a wealth of integration possibilities to extend your system .Thirdly, VWG allows you to continue to develop your web application using the WinForms development method – object oriented, intuitive, extensible, interoperable and efficient. If you intend to continue developing the original system with old technology, as you would if you choose the Citrix approach, you may find yourself at a disadvantage against competitors using state-of-the-art development methods.
Security
VWG is a UI abstraction architecture utilizing plain HTTP for the communications layer, having no hidden application data. It operates over a general purpose web infrastructure using the standard HTTP port 80, protected by firewalls, protocol inspection and other security oriented measures.
Citrix, on the other hand, requires opening up additional ports in the firewall and managing security via Citrix's internal measures. Even if these channels are secured, communication at the TCP/IP level is, by nature, less secure and less controllable than the standard HTTP architecture. Furthermore, since this in effect opens up a full session on the server-based desktop, a hacker who succeeds in penetrating Citrix's security could potentially access all applications and settings on that desktop, whereas VWG, as a standard ASP.NET application, utilizes standard ASP.NET security measures. In this case, even breaking into the running application does not enable access to other server resources.
VWG applications provide a further layer of protection against hacking by running on the server and using a unique protocol in server-browser communications, sending only the viewable data to the client in what is known as an 'empty client approach' – no data, no logic and no direct access to services by the client – security by design!
Feature Comparison Table
|
Feature
|
VWG
|
Citrix
|
Value
|
|
Architecture
|
|
|
|
|
Zero footprint client
|
+
|
Browser plugin/add-on
|
Does not require installation
|
|
Server side logic
|
+
|
|
Maintains control and state on the server
|
|
Server side rendering (consumes resources on the server)
|
-
|
+
|
Consumes resources for graphics manipulation and rendering
|
|
Client side rendering (consumes resources on the client)
|
+
(can render User Experience in DHTML or Silverlight)
|
+
|
Consumes resources on the client for graphics manipulation and rendering
|
|
Web access to legacy desktop application
|
Requires source code + re-engineering
|
Out of the box
|
Ubiquitous access via browser
|
|
Porting/Migration
|
|
|
|
|
Transforms desktop application into true web application
|
(requires re-engineering)
|
|
Is the application converted into a truly open web application capable of interoperation with other web technologies?
|
|
Extensibility. State of the art development tools and practices
|
(Visual Studio, WinForms, Expression Blend, VB like designers)
|
|
Is the platform suited for additional development/integration with web and other technologies?
|
|
Interoperability with all web applications, browser components and server resources.
|
(fully interoperable with browser DOM, ASP.net, .Net server objects and Silverlight controls)
|
-
(only interoperable with local devices – printers, faxes etc., local client applications)
|
Can the application be extended to interoperate/integrate with additional web assets?
|
|
Networking/Protocol
|
|
|
|
|
Bandwidth consumption1
|
Average 0.2 Kbps2
|
~3-7 Kbps (with compression, depending on applications used)
|
How much bandwidth is consumed by each session.
|
|
Protocol
|
XML based over HTTP (port 80)
|
ICA or RDP (Terminal Services) over other ports
|
Does the protocol pass through firewalls (port 80)?
|
|
Security
|
|
|
|
|
Session type
|
IIS (ASP.net) session management and process isolation
|
Full windows session on Citrix machine (virtual session)
|
Is the session well isolated. Can hackers access other resources if compromised?
|
|
No logic or data on client
|
+
|
+
|
No logic or non-visible data is transferred to client
|
|
Scalability
|
|
|
|
|
Number of concurrent sessions per CPU
|
~400 (generally similar to ASP.net limitations)
|
~20
|
How much server resources are required for deployment
|
|
Pricing model
|
Per developer3
|
Per concurrent user
|
What is the ROI? Is it economic for public internet sites?
|
1 VWG does not require a constant stream of data. It uses the request/response model to transfer data only when required.
2 Based on a conservative assumption of one event being fired every 5 seconds.
3 VWG offers a scalable server for scaling web farms of multiple servers. VWG scalable server is offered on a per-server license.
Summary
While Citrix deployments and VWG applications have some common characteristics and benefits, they each offer very different solutions to very different needs. They both offer a superb ROI to application owners who want to port their desktop applications to browser-based solutions and they both involve a centralized application server speaking to browser-based clients. Beyond this they are different in every way.
The four main determining factors influencing the system owner when considering a solution are the speed of deployment, the performance of the ported system, the ability to extend the system in the future and the overall cost.
If fastest deployment at any price or a lack of developer resources are your driving considerations, Citrix, despite its limitations, will probably fit the bill. However, if integration, extensibility, interoperability with other systems and technologies, state of the art web technology or fast application performance are important to you, VWG cannot be matched to transform your desktop application to the Web, and beyond.