Monday, March 10th, 2008

Appcelerator: RIA + SOA

Category: JavaScript, Toolkit

Appcelerator is a fairly new open source toolkit on the block that is trying to be an Open Web RIA to compete with Flex and co. with high profile folks such as Marc Fleury as advisors.

Nolan Wright, CTO, has written a piece for syscon entitled The Next Web Development Episode Is RIA + SOA. In the article Nolan talks about Appcelerator and how it fits into his world view:

1. Design the “look” of the application

This is the general appearance of an application. It includes things like: color, fonts, graphics, and a general page layout. Common toolsets: HTML, CSS and images

2. Integrate Widgets

Widgets encapsulate a set of common capabilities within a single component. They typically contain both “look and feel” as well as a set of pre-defined dynamic behaviors. They are a fundamental building block of an RIA.
Common toolsets: ExtJS, Dojo, Yahoo YUI and several other small widget projects

3. Add dynamic behavior to the user interface

Creating dynamic behavior in the user interface involves two things:

  • Event handling
  • Document Object Model (DOM) Manipulation

Event handling is the ability to know when a particular event occurs (e.g., a user clicks a button or a service response is received). DOM Manipulation allows you to dynamically change the user interface based on the receipt of an event. Common toolsets: Javascript libraries like JQuery, Prototype, and Scriptaculous

4. Consume services

Consuming backend services is a key capability of an RIA. It enables the creation of single page user interfaces that exchange application data with services. It also enables a clean separation between the user interface and the service tier. The most common method for interacting with services is Ajax. Common toolsets: Javascript libraries like JQuery and Prototype

5. Create services

Services provide an interface to data and application business logic. Common toolsets: There are several frameworks available for creating services in your programming language of choice.

To illustrate the DSL that Appcelerator uses, Nolan has some comparisons between jQuery code such as:


  1. $(function(){
  2.   $("select#comboOne").change(function(){
  3.     $.getJSON("/combo.php", {id: $(this).val(), ajax: 'true'}, function(j){
  4.       var options = '';
  5.       for (var i = 0; i < j.length; i++) {
  6.         options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '';
  7.       }
  8.       $("select#comboTwo").html(options);
  9.     })
  10.   })
  11. })

And the meta language:

  1. <select id=”comboOne”
  2. on=”change then r:load.combo2.request”>
  3. </select>
  4. <select id=”comboTwo”
  5. on=”r:load.combo2.response then value&#91;property=rows,text=text,value=value&#93;”>
  6. </select>

We have been talking about the world of SOA coming to fruition for quite some time. TIBCO GI was talking about this several years ago. Is 2008 going to be the year?

Posted by Dion Almaer at 6:48 am

3.5 rating from 22 votes


Comments feed TrackBack URI

Closest thing I could find for demos etc. is, but you have to sign up first.

Comment by Scott Schiller — March 10, 2008

RIA + SOA is definitely the right answer. The question is, how do you get there?

Two interesting differences are emerging:
1. Visual versus code-driven IDE. Visual (drag-n-drop) approaches include WaveMaker, Coghead. Code-driven IDEs include Appcelerator etc.
2. Built-in sever versus server-independent. Built into framework approaches include RoR + others. Appcelerator seems to give flexibility to work with any server, but server implementation is an excercise left for the reader.

I don’t think there is a right and wrong here, but very different choices based on the needs and skills of the developer

Comment by ckeene — March 10, 2008


The easiest demo is at . no signup necessary.

Comment by MattQuinlan — June 30, 2008


Comment by MattQuinlan — June 30, 2008

Leave a comment

You must be logged in to post a comment.