my recent reads..

Appcelerator - bringing down the wall between RIA and SOA?

I wonder if the Appcelerator guys have finally cracked the RIA and SOA dichotomy? I first came across them on Coté's RIA Weekly #008 RedMonk Radio podcast.

I've presented my views before on what I see as the three megatrends in IT:

  • Web 2.0 - or more generally, RIA
  • SOA
  • Grid - although today I'd probably update this to be "Cloud Computing"


But the distinction between RIA and SOA has always felt forced; unrelated working metaphors, owing more to the historical segregation of the communities addressing each than strict architectural principles.

While industry lines have been drawn very clearly around these two domains (take OpenSOA v. OpenAJAX for example), there have been many attempts to nibble away at the distinction. AJAX toolkits like SAJAX and SWATO strive to make calling back-end resources more convenient. And frameworks like ADF approach the problem from the other end, by "hiding" AJAX rendering in their server-side, SOA-aware paradigm.

So what has Appcelerator got to do with this?

From what I understand so far, the key is that they have unified the event/messaging model both within the browser and the "SOA-sphere", and done so in a very elegant way. There are three parts to their solution:
  • Web Expression Language
  • RIA Widget Framework
  • RIA Message Broker

All components in an Appcelerator application communicate via simple lightweight messages using the RIA Message Broker. On the server-side, Appcelerator provides a set of SOA Integration Points that enable service creation in Java, PHP, Ruby, .NET, Python and Perl.

On the client, the Web Expression Language message-enables HTML elements. The RIA Widget Framework is a Javascript-based API that enables you to create new widgets and wraps existing third-party widgets like scriptaculous.

The end result is a very clean, lightweight and seemless development approach. HTML attributes define behaviour: what messages to send, and what to do when a message is received. And the real magic: when you send a message, you do not know or care if it handled by another HTML element on the same page, or a SOAP Web Service somewhere out on the net.

Here's how straight-forward it gets. An example of an input button messaging a calendar widget to show itself..
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:app="http://www.appcelerator.org">
...
<app:calendar title="Pick a Date" on="l:show.calendar then execute" inputId="mydate">
</app:calendar>
<input type="text" id="mydate" value="click me" on="focus then l:show.calendar"/>
...

Or an input button sending a message...
<input type="button" value="submit" on="click then r:login.request"/>

.. that is handled by a Java service:
import org.appcelerator.annotation.Service;
import org.appcelerator.messaging.Message;

public class LoginService
{
@Service(request = "login.request", response = "login.response")
protected void processLogin (Message request, Message response)
{
// get request data
String username = request.getData().getString("username");
String password = request.getData().getString("password");

User user = userDAO.login(username,password);

// format response
if (user != null)
{
response.getData().put("success",true);
response.getData().put("user",user);
return;
}
response.getData().put("success",false);
}
}

Appcelerator looks like one to definitely watch closely and investigate further..
read more and comment..

Beginning Rails


Beginning Rails: From Novice to Professional by Jeffrey Hardy and Cloves Carneiro is one of the most approachable "learning rails" books I have found to date.

The writing is clear, and concepts are presented in a very readable way. I really appreciate the organisation of the book - they've done a great job of presenting key topic areas in a logical sequence that guides you up the learning curve without losing sight of the big picture.

Working through the examples right now...

read more and comment..

The Chancellor Manuscript


Poking around my bookshelves the other day, I stumbled upon my very old copy of Robert Ludlum's The Chancellor Manuscript. I've mentioned before that this was the first Ludlum I ever read. That was a very long time ago, and I'd forgotten all but the basic plot outline.

Fingering the pages, it took no time to draw me in again. This really is classic Ludlum. The pace is frenetic, the words raw energy. The story twists and turns, and then twists within itself again.

If you have only experienced "new" Ludlum - the Covert-One series, or the estate-produce posthumous novels - you really should go back and check out the classics.

In rediscovering The Chancellor Manuscript, it suddenly struck me what I was missing in the newer novels. Old Ludlum pulled no punches. Love-making was sex. Bad guys were not just simple terrorists, and their actions complex, ambiguous. Characters could be MCPs, and now law said they had to act politically correct. While I still enjoy "new" Ludlum, in comparison it does come off as over-engineered to modern sensibilities. Designed for a middle-American video-game generation, where headshots with shotguns are OK, but fade to black when things get intimate.

read more and comment..

Proven Enhancement

Never has Rails Trac been more entertaining than this. The change history is just too funny;-)
read more and comment..