Over the holidays I decided to give Appcelerator RIA a try.  In addition to learning about Appcelerator, and I was particularly interested to see how Appcelerator RIA can be used with services built using the Spring Framework, and more specifically Spring Services generated with Skyway Builder.  I intend to share my experiences over a series of blog posts.  This post is the first in the series, and it's primarily an introduction.


Here's an overview of technologies used:

Appcelerator RIA - an open-source platform for building rich web applications in a message-oriented way.  Essentially Appcelerator RIA provides a message bus, implemented using javascript, that enables application components to interact with each other.  An element of an application can publish a message that can other elements can subscribe to.  In contrast with traditional message-oriented architectures, Appcelerator RIA allows individual elements of a web page send and receive messages.  For example a button can publish a message that one more other web page elements can subscribe to.  Local messages are messages that are considered to operate within the web page and only within the browser.  Appcelerator RIA also supports remote messages for invoking back-end server-side logic.  While the back-end services can implemented in just about any technology, my investigation of Appcelerator RIA is focussed on using Spring Services.  Unfortunately Appcelerator's direct support for Spring Services is pretty weak.  The community site recommends using plain Java and wiring the Spring services in yourself.  More about this later.

Spring Framework - an open-source collection of frameworks that abstracts the complexity of Java applications.  At it's core the Spring framework implements an inversion of control container.  There are a variety of other frameworks built on top of the container for building web applicaitons, desktop applications, and batch applications.

Skyway Builder - an open-source code generation tool (Eclipse-based) for accelerating the development of Spring applications.  Skyway Builder includes a set of generators targeted at a specific layer of a Spring web application, including a DAO generator, an ORM generator, a Services generator, a Web generator, and a Core generator.  Skyway Builder can be used to fully implement, and even scaffold, an entire Spring MVC application.  Since I will be using Appcelerator RIA for building the web application, I will principally use Skyway for generating the DAO, ORM and Services to support the Appcelerator RIA based application.

In subsequent posts I will describe how these different technologies work together, and I will make the Eclipse project available for download.  Stay tuned!