Sunday, October 28, 2007

Rich Internet Applications, Woko Style !

For a while, the idea of exporting Woko managed POJOs into processable formats has been floating around. This way, the data could be accessed not only by human beings, but also by "third party" code easily...

With the growing integration of AJAX and RIA technologies into web applications, the idea has transformed into a requirement. Dynamicity inside the browser has a price : in addition to HTML, you need your webapp to serve some processable infos for your AJAX or RIA client-side technology. Also, beyond export of objects, client applications might need to access more advanced features, like CRUD, search, or custom biz logic.

But wait...

Woko already serves your POJOs as HTML... why wouldn't it serve them as XML, or JSON ?
Woko already allows a human being to access the application's business logic... why wouldn't it allow another program to do it as well ?

XML/JSON POJO Exports

This is now an out-of-the-box feature ! You can now easily export your POJOs to XML or JSON, via the (xml, profileId, targetType) facet.
It's a command facet, so it can be invoked remotely just be sending an HTTP request to the appropriate URL, like :

http://.../myapp/command/Book/123/xml

Default export is available for all Objects and ROLE_WOKO_DEVELOPER, but of course, you can reuse and tweak the output for your own profiles/objects... via facet override, as usual !

Fat Client API

In addition to XML/JSON export, Woko also allows remote applications to access "functionalities" in the application. It proposes a RPC-style API for invocation of all the features in Woko : CRUD, search, and triggering of Command Facets.

In short, a remote client can virtually do everything a human being can do with the application (depending of course of the facet assignation) !

The Killer AJAX/RIA Backend

This is pretty fat news, as you can guess. The "Fat Client API" enables fast and easy implementation of hybrid webapps, where regular HTML is mixed with AJAX widgets, Flash components, Applets etc.

Last but not least, security isn't a problem either. As all the Fat Client API uses facets that you define, the whole system is consistent. Data and services are tailored to the caller's profile, so you hardly publish a service to the wrong clients without noticing it ! Moreover, the "user profiling" principle applies here too : you probably don't wanna provide the same level of features to everybody...

This feature embraces Woko's Web 2.0 and simplicity principles, and makes it a first class choice for people building AJAX/RIA webapps. Forget about writing all those handlers for your XmlHttpRequest objects, they're already there ! You already have all the plumbing for exporting your data, and deploy new RPC services.

Put your POJOs on the Web !

No comments: