Wednesday, July 1, 2009

Building Rich Internet Applications - Why the need for an end-to-end platform?

Building applications these days is not what it once was. There are a number of options to consider.

However, before you ponder for too long, take into account that Gartner expects 60 percent of all new application projects to use Rich Internet Application (RIA) technologies within the next three years.

That's an important figure that's worth exploring a little bit. RIA offers some unique business benefits for enterprises and in many ways is the ideal methodology for business applications -The real value of Rich Internet Applications is that they overcome the limitations of both the desktop environment and the browser environment by combining the best of both worlds into a so-called ‘Fit Client'.

RIA's combine the richness of the desktop's ‘Fat' Client with the low operating cost of the internet's ‘Thin' Client.

RIAs are fully interactive, desktop-style, business applications that are installed at a single location and are accessible via any monitor via the internet. Depending on the platform, they can take advantage of the local computing power of a company's hardware, but without requiring the complex installation and maintenance typical of the "Fat Client".

If you stop to consider it, this is really a ground-breaking advantage for businesses facing the challenge of remaining competitive today. However, a technology that has the capacity to combine the best of desktop and internet is bought at a price; system complexity.

While the desktop, or Client-Server model, relies upon a permanent connection between Server and Client, and the internet model relies upon a decoupled connection between Server and Client, RIA attempts to find a middle ground.

That middle ground involves holding a part of the RIAs computing power on the Client side for simple activities while calling upon the Server when more complex instruction is required. While undoubtedly smarter, the RIA Client requires sophisticated state and session management. And this means more cost to the developer. Or potentially anyway.

Once deployed though, RIAs represent a true paradigm shift in the way businesses use and pay for software applications. The challenge is to successfully get to them.

All this means that there's a lot more to developing RIA than just a fancy-shmancy Client user interface. RIA tools that only provide the Client side of your appliction will leave you having to navigate a potential iceberg - with the bulk of your development effort not provided, and not paid for.

The iceberg is a nice analogy for the RIA development challenge.

To make RIA cost-effective and deliver on-time on-budget you need a tool that can provide what's beneath the surface of most Client-side tools: the Server-side logic, data managment, back-end integration, and of course, the coupling and context management that mediates with the Client.

In such a situation, trying to develop and deploy RIA using only a Silverlight or Adobe Air/Flex Client-side tool, or AJAX will potentially leave you high an dry - you'll have to find and pay for new Server side tools and then hire/employ the resources for the specialist code writing that's required.

All this means that you won't be delivering your finished application in a hurry. PLUS by trying to marry-up the efforts of multiple development teams you'll end up with an application that's more than likely not fully up to business requirements or corporate standards, or both.

The solution?

Simple. Get a tool that provides the entire spectrum of development and deployment i.e. an 'end-to-end' platform.

Since the main cost in developing RIA is the complex code writing for the different Client and Server ends of the application, an end-to-end platform such as uniPaaS comes with a ready-made business application engine that pre-compiles code and pre-configures business logic. This ‘metadata' covers both ‘ends' of the development process with the same development language.

This allows developers to bypass the strenuous code-writing stage and instead, focus on the business requirements of their application.

With a single solution that eliminates the need to write complex code or manage multiple development teams, there's less chance of project failure and more chance of delivering your application on-time, on-budget and up to business requirements.

Next time - more about metadata and how that helps you really sharpen your application development and delivery process.