Building Rich Enterprise Web Apps in the Cloud

MAY 10, 2010

This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. This guest post is written by Benjamin Mestrallet, CEO of eXo, who will be demoing his platform for enabling enterprise web apps as part of the Developer Sandbox.

In 2002, I wrote the first JSR 168 portlet container when I was a student in Paris. It is now considered legacy because most enterprises have their intranets built on top of this technology. Today, a lighter weight model has replaced it.

Gadgets – the New User Interface
Gadgets and other influential consumer web technologies can dramatically improve enterprise applications. Unlike portlets, gadgets are client-side code that exchange structured data with the server using REST APIs that return JSON or xml objects. By leveraging JavaScript, HTML and CSS gadgets are not only easier to use and develop than portlets, they are also universal. Everyone can write a web app these days.

The portlet container I built 8 years ago eventually led to me to found eXo, where we built a next-generation platform for Java with Google technologies like Gadgets, OpenSocial, GWT and Android. Our vision is simple: provide a platform for building applications with rich user experiences in the cloud. This means that the entire process of building an enterprise web application can be done online, from its development in a web IDE to its deployment and monitoring within a tenant of a cloud platform.

Use-Case – Marketing Mashup
To demonstrate how remarkably different the enterprise web application development process has become, let's look at a real-life use case with a Marketing Mashup application you can download (link to source code is at the end of the tutorial). Many marketing managers struggle to compile and integrate website analytics manually. Using the eXo Platform with Google Gadgets, we create a single mashup of these different sources of data in a single gadget.

This integration approach is the new, lightweight generation of SOA. We can expose a service’s data as a JSON object through a REST API. In our use case, we combined the existing Google Analytics data and created two new services: one to take the downloads data directly from our project forge sites and another created in groovy to list our press releases. We were able to quickly create this application online using the GWT-based eXo web IDE.

A web IDE means you no longer have to build, test, package and deploy the application. Within this environment, you can use REST APIs using Groovy and OpenSocial gadgets, and deployment options are plenty, whether as a gadget in the platform dashboard, in another OpenSocial container such as iGoogle, and even in mobile apps like the ones we built for Android and the iPhone.

Building and distributing applications has become a lot easier, and the features formerly associated with the consumer web are going to drastically improve the usefulness and usability of enterprise applications.

Posted by Benjamin Mestrallet, CEO of eXo