InfoQ

News

Overview of the Appcelerator RIA Platform

Posted by Jon Rose on Sep 07, 2008 02:52 PM

Community
Java
Topics
Web 2.0 ,
Rich Internet Apps
Tags
AJAX ,
SOA Appliance ,
Web 2.0 ,
Web services

In this post, InfoQ discusses the Appcelerator platform with Matt Quinlan, Vice President of Community Development at Appcelerator. Quinlan highlights the strengths of Appcelerator and some of its common uses.

The Appcelerator site provides a detailed answer to the question, "What is Appcelerator?"

Appcelerator is a fully-integrated RIA + SOA platform.

Appcelerator combines the usability benefits of Web 2.0-style, Rich Internet Applications (RIAs) with the reusability and flexibility of Service Oriented Architecture (SOA). This combination results in a "client/server for the web" development style...

After understanding the "What," InfoQ asked Quinlan, why software professionals should consider using Appcelerator:

Why? To see that it is possible for mere mortals to build rich internet applications (RIAs) based on Ajax, not just development teams composed of PhD carrying JavaScript ninjas like Google!

InfoQ inquired about the Appcelerator expression language:

The Web Expression Language is really just an expansion of the JavaScript event model used in traditional HTML (with slightly altered syntax). On some condition do some action. For example, you might have onClick="some javascript" as an attribute on some HTML element. With Appcelerator's web expression language you would have on="click then script[some javascript]". However, the list of conditions and actions available to the web developer with Appcelerator is much larger.
Conditions:
  • DOM events (click, focus, blur, change, mouse events)
  • key events (up, down, press)
  • other (history, drag/drop, selected, resize, iPhone orient, sortXYZ)
  • subscribe to custom message
Actions:
  • Scriptaculous effects (show/hide, fade, move, scrollto, drop, grow, highlight, morph, ...)
  • set element value (static, dynamic, bind)
  • set CSS class or attribute
  • execute custom JavaScript
  • publish custom message
This allows a developer to address event handling, DOM manipulation, and Ajax (via the custom messages) all in the same consistent manner that is extremely similar to how they address events (e.g. onClick) today.

To understand the messaging that enables our UI decoupling and Ajax see first page of http://doc.appcelerator.org. Think observer pattern & publish/subscribe rather than API calls.

InfoQ asked about deploying Appcelerator applications:

Appcelerator-based applications can run out-of-box in any JavaScript enabled web-browser (no plugins required). Simply include the appcelerator.js file in your HTML. We like to say, "We write lots of complex JavaScript so you don't have to". We support service-bindings for all six major web development platforms (Java/J2EE, .Net, Ruby, PHP, Python, Perl).

Then, InfoQ followed-up, asking Quinlan if an SOA backend is required:

No, our client-side technology (web expressions, widgets, client-only messaging) can be used with traditional non-SOA-enabled web architectures. This is important to allow developers to adopt technology at their own pace (we call this the "crawl" stage). However, we strongly encourage developers consider building their web applications as service oriented UIs (SOUIs) that are essentially true web clients (built of HTML, CSS, & minimal JavaScript) that interact with the server only through asynchronous service calls (we refer to this as the "walk" stage). You don't have to generate your UI from server-side scripts anymore (see http://www.appcelerant.com/lipstick-on-cgi.html).

Quinlan then shared about Appcelerator Google App Engine support:

We provide a handy little swiss-army knife tool called "app" (similar to Ruby's GEM command) which allows us to many things including deploying your Appcelerator app directly to the Google App Engine cloud. You can also publish assets to the Amazon S3 cloud as well from the command.

http://www.appcelerant.com/running-appcelerator-on-the-google-app-engine.html

InfoQ asked Quinlan what else InfoQ readers need to know about Appcelerator:

The publish/subscribe messaging paradigm is EXTREMELY powerful and enables clean decoupling of user-interface elements from each other, and from the serverside. This architecture makes Appcelerator-based applications well-suited for offline (queue the messages, then flush), for testing (stop imitating clicks and just record messages... hint: they work cross-browser!), for prototyping (build fully functional prototypes with zero server code by mocking the server-side service in HTML), and for so many other concerns of web developers.

Shortly after InfoQ.com interviewed Quinlan, Appcelerator announced a license change from GPL to the Apache2 license. Appcelerator CEO Jeff Haynie anounced the change in his post "Appcelerator announces licensing changes; bye-bye GPL."

We've talked and listened to the community a lot in the past 6 months to understand how people want to use Appcelerator, how they are presently using Appcelerator and what types of things they would like to do in the future. We've clearly heard a very resounding theme: GPL is not the right license from a community perspective because of the implications that it brings to redistribution, especially as it relates to building web applications and how they are incorporated and downloaded by a web server. While we initially considered attempting to clarify our position on the GPL as it relates to these special legal concerns - I felt like we would essentially dilute the intent of the GPL license and that would defeat it's purpose. This was a clear indication that our license didn't match our business and technical goals.

Learn more about Appcelerator at: http://www.appcelerator.com/

This looks awsome! by Shimon Amit Posted Sep 8, 2008 5:48 AM
Re: This looks awsome! by Matthew Quinlan Posted Sep 8, 2008 10:36 AM
  1. Back to top

    This looks awsome!

    Sep 8, 2008 5:48 AM by Shimon Amit

    The concept and architecture are exactly what I as a developer/architect am looking for! Cross platform, scalable, full stack, comprehensible! Could this be too good to be true? Please give us at least one good comprehensive GUI library we can work with. Not a lib based on Javascript objects from different projects. Shimon Amit

  2. Back to top

    Re: This looks awsome!

    Sep 8, 2008 10:36 AM by Matthew Quinlan

    Glad you like it Shimon!
    I should mention that since this interview was completed we have released a new version of the Appcelerator Platform which includes brand new layout, design, and theme features intended to simplify the creative effort required to make a web applciation actually look nice (rounded corners, gradients, grids, control-level themes, etc.) These new features are currently in alpha, so they will be refined over the next several months as we collect feedback from the community.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.