eXo IDE and RESTful architecture
I’ve been working on a demo that will show how to use the eXo Platform 3 IDE to build an iPhone web application. You can see the sample app in action in this video, or read the tutorial to learn how to build your own – both of which were added to the eXo Resource Center today. I built this demo app in order to show two things:
– First, how using REST services allows you to decouple the UI from the data layer.
As more and more heterogeneous devices are used to browse the web, we are witnessing an architectural shift in application architecture. Separating the data interface from the user interface allows you to have multiple front-ends and can give third parties the opportunity to build their own app on top of your API. REST services expose the data on one side, while Ajax allows the browser to rewrite the page on the fly. With HTML5 features, the browser is even more powerful, and server-side native code is less and less relevant. In my demo, I used jQtouch, a jQuery plugin for mobile development, in order to build an iPhone interface. It is easy to imagine how fast it would be to build an iPad or Android interface for the same app.
– Secondly, how the eXo Platform 3 IDE helps developers leverage this architecture.
Writing, testing and deploying REST services is greatly simplified with the web-based IDE in eXo Platform. Using Groovy scripting language, the code is dynamically compiled and can interoperate with all the existing eXo services written in Java. The JAX-RS API uses annotations to greatly simplify the development of RESTful web services. Finally, the build and deployment phase is reduced to one simple click, and your application server doesn’t need to be restarted. This gains time and energy for developers to focus on more valuable things, such as improving the end-user experience.
The IDE opens-up new prospects for eXo developers to explore. Check out the new video demo and tutorial and let me know what you think. For further reading, check out Mike Loukides’ article: New directions in Web Architecture.