Appcelerator: RIA + SOA
Date : 2008 03 10 Category : Tech & DevelopmentAppcelerator 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) ManipulationEvent 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:
PLAIN TEXT JAVASCRIPT:$(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:
PLAIN TEXT HTML:<select id=”comboOne” on=”change then r:load.combo2.request”> </select> <select id=”comboTwo” on=”r:load.combo2.response then value[property=rows,text=text,value=value]”> </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?