Thursday, July 30, 2009

Wisdom from Michael Singer: Cross-Browser Compatibility for SaaS Solutions


The following contribution to the Magic of uniPaaS was written by Michael Singer, Application Development Manager for Magic Software Enterprises Americas

When creating a SaaS solution that runs under a browser, cross-browser compatibility is a must. In today’s world of multiple browsers and plug-ins, a good SaaS solution will have to be tested on every existing browser (including older versions of browsers). Furthermore, new features implemented in the solution would require additional cross browser testing as well. Vendors of web based, business applications have been calling for a standard in the “mad” world of browsers for a long time, but with the recent launches of Google Chrome and IE 8, it seems, the diversity and differences between the browsers is growing with every passing day.

To achieve cross-browser compatibility, a developer would have to try and limit to a minimum the amount client side validations, use of cookies and processing. All these actions should be done on the server side. This would create fewer cross browser issues on one hand, but might hamper performance on the other. Another good practice would be to create a thin layer on the server side that interfaces with the client side; this would streamline the different data that comes from the diverse browsers and make a single data structure going into the server side. In case browser errors still plague the application, custom error messages that explain the source of the problem, and recommend a type and version of a browser, could be created.

A little kid once said "There is no spoon." (The Matrix, 1999)


So let’s think out of the box. A good SaaS solution does not have to run under a browser. Rich internet applications (RIA) are "web applications that have most of the characteristics of desktop applications, typically delivered by way of standards based web browser plug-ins or independently via sandboxes or virtual machines. Examples of RIA frameworks include Curl, Adobe Flash/Adobe Flex/AIR, Java/JavaFX, uniPaaS and Microsoft Silverlight.” (Wikipedia)

In laymen’s terms, a RIA uses the internet as a communication layer, works on port 80 just like the browser (for compatibility with firewalls), has a very thin client (for compatibility with the IT department) and yet it does not run under a browser, but rather as a desktop application, providing all the capabilities and user experience you would expect from a desktop application.

There are a few solutions out there, but in most cases the architecture is similar. Most tools have a client that renders XML pages, and a server that generates them. Requests from the client are sent to the application server which returns XML documents back. These files are then rendered again to the screen using various technologies. Most platforms have a way of managing sessions or contexts, therefore allowing some kind of persistence in the user experience, and providing a solution for offline work. The clients tend to have a zero footprint on the workstation, therefore making it easy for users to log on virtually anywhere. Browsers, by the way, do the same thing. The difference is browsers know how to render HTML and not XML, and quite frankly, were not designed to be the foundation for a business application but rather should have been used for, well, browsing.

RIAs come in multiple different flavors. From the amazing graphics of Adobe Air, to the amazing productivity of Magic uniPaaS (which actually includes a SaaS platform as part of the product), depending on any project’s requirements, developers could probably find a good tool out there to create any type of SaaS application that would be user friendly, provide rich functionality, secure access and would not require any cross browser compatibility, simply, because it’s not running under a browser.

So as Morpheus said “I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.” (The Matrix, 1999)


Good Luck.
Michael Singer
July 18th 2009


Thanks Michael, great stuff.

No comments:

Post a Comment