31 Jul
RIA Motivators – SOA, SOC & Web 2.0
icon1 Matt Voerman | icon2 AJAX, Flash, Flex, Rich Internet Applications | icon4 31st 07, 2007| icon3Comments Off

If you’re playing a round of Web 2.0 Wankword bingo I guarantee that by the end of this post you’ll have a winning scorecard. All jokes aside, this second post in my RIA Motivator series aims to look at a few more of the main drivers (motivators) behind the recent popularity of rich internet applications (RIA).

Last week we looked at the UX Motivator, and this week we’ll be focusing on how existing (and new) application architectures, combined with the emergence of Web 2.0 flavoured applications, are directly playing a part in the evolution of the web application ecosystem.

In the following weeks i’ll be looking at some of the other factors i’ve identified as major contributors to the uptake of rich internet applications;

  • Corporate Champions
  • Brand Awareness/Enhancement
  • Financial Benefits

OK, so i’m not about to wade into the whole ‘what is Web 2.0′debate. If you’re a little late to the party, and are still playing catching up, I suggest you start by taking a squizz (look) over Wikipedia’s definition. In a nutshell, Web 2.0 can be distilled down to a few key points/features;

  • The “Network as platform” paradigm – i.e. delivering (and allowing users to use) applications entirely through a browser (mind you, AIR kind of skews this point a bit).
  • Users owning the data on a site and exercising control over that data.
  • An architecture of participation that encourages users to add value to the application as they use it.
  • Applications that have a richer, more interactive, and user-friendly interface – (read: UX Friendly).

So from the whole Web 2.0 concept we can see there are a couple of touch-points that directly relate to rich internet applications. Primarily the richer, more interactive, and user-friendly applications. Combined with the whole Network as platform paradigm. Both of which are core benefits of RIAs.

In addition to this, if you take a quick look over at Mike Arrington’s Techcrunch you’ll see how every day he critiques and profiles scores of new (and reborn) Internet products and companies. Hundreds of which fall squarely within the Web 2.0 arena. Not surprisingly, a large percentage of the UI’s of these applications have been developed using RIA technologies such as AJAX or Flash (this includes Flex). Further consolidating that User Experience (UX) is a major motivator in this space.

So now we can see the connection between Web 2.0 and RIAs, how do service-oriented architectures (SOA) and service-oriented clients (SOC) fit into the scheme of things? Once again, i’m not going to wax lyrical giving you a definition of SOA when Wikipedia already has a great definition that covers the basics. Fundamentally though, SOA is nothing more than an (architectural) model for taking complex legacy (or new) application architectures and simplifying/streamlining them into ‘loosely-coupled’, discrete pieces (services) that can be presented for consumption by either a client (i.e. a SOC), or other agent. If we break SOA down further we can see that it consists of;

  • Data Model(s)
  • Services
  • Messaging
  • Persistence
  • Cross Platform capabilities
  • Clean Patterns

So whilst SOAs are great news for the back-end, what about the front-end? For the most part, the front-end still consists of a Client/Presentation-tier model that’s comprised of browsers, applets, and fat clients. Wouldn’t it be great if we could take the (above) benefits of SOA and reproduce them in a portable, lightweight, ubiquitous service-oriented client (SOC)? Well i’ll let you in on a little secret – it’s already been done – and it’s called Flash Player. Thats right, Flash Player is a great service-oriented client.

Up until now, it’s been way too easy (for the uneducated) to write Flash Player off as nothing more than a purveyor of skip-intro’s and animated eye-candy. After all, thats where its roots came from – right? Guilty as charged your honour. So with that in mind – it’s easy to understand why there’s always been such a misunderstanding about the power of Flash Player. But love them or hate them (i.e. eye-candy & animations), these are what kick-started Flash Player’s global career. Funnily enough, it’s this rich media background thats given Flash Player a significant head start in the services-oriented client space. So whilst Flash Player can still handle motion graphics, audio, and full-screen video, behind the scenes, it has evolved into a robust, secure, ubiquitous cross-platform runtime. Containing 2 x virtual machines (VMs) and an ECMA-Complaint scripting language capable of handling a multitude of SOA based services.

Lets have a closer look at some of the main benefits of the Adobe service-oriented client (aka Flash Player);

  • UbiquitousInstalled on 98% of web enabled PCs.
  • Lightweight – Weighing in at a featherweight (1884k) Flash Player is a true lightweight client when compared to the Java VM (7100k) or Microsoft SilverLight (~4200k).
  • Cross Platform – Develop your applications once and Flash Player presents them consistently across browsers and across OS’s (Mac, PC and Linux)
  • Persistence – Flash Player is essentially a state-machine that has the ability to maintain persistence on the client.
  • Messaging – when combined with LiveCycle Data Services, Flash Player is capable of real-time pub/sub (as well push) messaging.
  • Data Model – Leveraging Flash Player’s ability to maintain state, data models can be stored (and manipulated) on the client before being sent back to the server.
  • Binary Socket Support – To leverage interoperability with existing custom protocols, and increase data transfer performance.
  • Robust Security – Flash Player enforces security sandboxes for applications, content, data, and URLs to safeguard sensitive data.
  • ActionScript 3.0 – A powerful ECMAScript complaint object-oriented programming language.
  • Services – The crowning glory of Flash Player (in relation to SOC’s) is it’s ability to plug directly into a variety of SOA-services – whether they be HTTPServices, WebServices or Remoting (RPC) Services.

At this point, I think it’s about time I fess’ed up. I’ve been using Flash since before it was born in 1996 (as Future Splash). I’ve also been evangelising the benefits of the Player, the platform and rich internet applications for just as many years (way before Web 2.0 or SOCs were around). I now also work for Adobe. So one could argue that I have a slightly biased view on this particular flavour of SOC – and you’d be right. The reality is though, the only thing that i’ve seen that even comes remotely close to Flash Player as a true services-oriented client is JavaFX. Unfortunately, JavaFX is very much in its infancy (it was only born on May 8th this year!), and is not what you’d really call lightweight.

So as you can see, the concepts of Web 2.0, SOA, and SOC are all very much related to rich internet applications. Based on the touch-points outlined above it’s inevitable that they should play a role in motivating organisations, and stake-holders, to take a closer look at their benefits of rich internet applications as a whole.

14 Jul
Flex Vs AJAX – How Forrester got it wrong
icon1 Matt Voerman | icon2 AJAX, Flex | icon4 14th 07, 2007| icon3Comments Off

Jeffrey Hammond of Forrester Research completely misses the mark with an article highlighting the pro’s and con’s of the Flex vs AJAX frameworks.

Firstly, let me say that i’m a big fan of Forrester. For the most part they provide unbiased, educated and valuable research on a wide range of subjects (including rich internet application technologies). Unfortunately, in this case, it appears as though Hammond misses the mark on a number of points in his article and, and in turn, shows his ignorance of the facts.

Lets have a look at where Hammond gets it wrong…

“When it comes to rich Internet application (RIA) technologies, application development professionals must choose between two paths: AJAX or Adobe.”

This just isn’t true! Whilst AJAX and Flex are two of the most popular technologies OpenLaszlo has OpenLaszlo , Microsoft has Silverlight, and Sun has JavaFX. All of which can be used to develop enterprise-grade rich internet applications.

“AJAX favors gradual re-factoring of existing Web apps. AJAX is based on open and standard languages like JavaScript and XML.”

Flex too can be used for gradual re-factoring of existing web apps via widgets or pods. Flex is also 100% open source. Its programming languages are based on open and standard languages such as ECMAScript and XML. Additionally, via the use of the Adobe Flex-AJAX Bridge both technologies can co-exist extremely well within the same application (more on that below).

“To be productive in Flex, developers have to learn two new languages and an extensive runtime framework”
The skills to develop with Flex are very similar in a lot of ways to those used to develop in AJAX. As outlined above, ActionScript is based on ECMA-Script which is the basis for JavaScript (the same as is used in AJAX). MXML is a simple XML-based declarative language. If you can use Javascript (AJAX) you’ll pick up Flex in no time.

“AJAX can deliver speedy performance (compared to Flex)”
Whilst in some cases AJAX does offer fast performance (mainly when used in small applications/widgets), when it comes to data loading Flex is superior. Don’t believe me – take a quick test drive of James Ward’s AJAX/Flex Loading Benchmark Application. Whilst still in beta, the results will surprise even the most hardened AJAXian.

“Flash upgrade issues can defeat the deployment value proposition (of using Flex). Upgrade process is not seamless causing high abandonment rates”
This is simply not true – When used correctly, inline Flash Player updating is a VERY seamless experience. With the user NOT required to abandon the page they’re browsing to update the player.

“(Flex) Success can create an unexpected user response. Flash is a broad graphical canvas, and Flex allows designers to push the boundaries of rich media further than AJAX does. This can lead to a situation where users become distracted by a mix of Flash’s rich media and Flex’s new controls.”
In other words – Flex is TOO GOOD as a RIA development tool. Lets get one thing straight, users becoming distracted by rich media and controls has nothing to do with the Platform or the Framework – this is 100% a UX (user experience) design issue. The same argument could apply to ANY rich internet application.

“AJAX: The Fast Lane to a Better User Experience. App dev organizations that prefer a fast path to RIAs (for developers and users alike) select AJAX”
Lets not mix our metaphors here. Which is it? Better User Experience or Fast Path to RIAs? The previous statement just negated the first part of the above quote with Hammond admitting that “Flex allows designers to push the boundaries of rich media further than AJAX does” which equates directly to a better user experience.

I’m also of the opinion that developing a Flex application is faster (in a lot of cases) than developing the same application in AJAX. Kevin Cheng (Yahoo! Maps) also agrees. In an interview he gave last year he mentions “AJAX takes a lot of work. If you try hard enough, you can do almost anything with AJAX that Flash can do but the key phrase is “try hard enough”.

“Integrating data sources and Web Services (into Flex) is less intuitive than some commercial AJAX frameworks
The reality is that both AJAX and Flex require only 3-5 lines of code to create an XMLHttpRequest or HTTPService object. Unfortunately if you intend running your AJAX application on cross browser/ cross platform you’ll need to include a significant amount more of code to check for these different delivery platforms. Flex on the other hand publishes to a SWF (Flash) file which performs exactly the same on cross browsers and OS’s. Now which of those appears to be the less intuitive?

An interesting side-note worth noting is that at no point in the article does Hammond mention the Adobe Flex-AJAX Bridge or the AJAX Data Services. I find this omission perplexing, especially for a research article discussing the benefits of both technologies. IMHO this illustrates a bias towards AJAX (or perhaps a lack of subject knowledge) either one not being a good trait to have when writing an educated (supposedly unbiased) research article.

For the recored – The Flex Ajax Bridge (FABridge) is a small, code library that is added to a Flex application to allow it to be exposed to browser-side scripting (AJAX). On the other hand, Ajax Data Services is a JavaScript library that lets Ajax developers access the messaging and data management capabilities of Flex Data Services directly from JavaScript. It allows Flex and Ajax clients to share data in the same messaging application or distributed data application. Both of these initiatives from Adobe clearly demonstrate the ability of AJAX and Flex technologies to co-exist extremely well within the same application. So much so that Google use it for their Google Finance section.

The bottom line is, that if you work for an organisation as reputable as Forrester, and intend on writing educated, informative, and unbiased research articles for the purpose of educating the masses. It’s imperative that you ensure you have all your facts straight, and check any (whiff of) bias at the door. Now this could all sound like the ramblings of an Adobe fanboi – and whilst I do work for Adobe, i’m not blind to the fact that when you compare and contrast competing technologies you have to ensure balance, and factuality are paramount. Unfortunately, this just isn’t the case in Hammond’s article. This concerns me greatly, as in this day and age when there is so much mis-information out there about RIA technologies it’s imperative that research organisations like Forrester (and Gartner) provide clear, correct, unbiased views of the facts.