Monday, March 10th, 2008
Appcelerator: RIA + SOA
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 projects3. 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:
-
-
$(function(){
-
$("select#comboOne").change(function(){
-
$.getJSON("/combo.php", {id: $(this).val(), ajax: 'true'}, function(j){
-
var options = '';
-
for (var i = 0; i <j.length; i++) {
-
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '';
-
}
-
$("select#comboTwo").html(options);
-
})
-
})
-
})
-
And the meta language:
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?












Closest thing I could find for demos etc. is appcelerator.org/tour, but you have to sign up first.
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
Scott,
The easiest demo is at http://try.appcelerator.com . no signup necessary.
correction…. http://try.appcelerator.org