eXo+ AWS Interview
eXo Cloud IDE for Elastic Beanstalk
Last month, Amazon launched AWS Elastic Beanstalk, which pledged to simplify the creation, deployment and operations of apps and support Java development in the cloud. Shortly after, provider of Java user experience and portal technologies, eXo, got behind the new AWS offering by launching an eXo Cloud IDE for Amazon's Elastic Beanstalk. In this interview, JAXenter speaks to Chief Executive Officer of eXo Platform, Benjamin Mestrallet on their new IDE, and what made them decide to release it for Elastic Beanstalk.....
JAXenter: What is the eXo Cloud IDE for Elastic Beanstalk?
Benjamin Mestrallet: eXo's Cloud IDE is intended to provide Java developers with an interactive, user-friendly environment in which they can write, deploy and operate their applications on the Amazon Elastic Beanstalk platform. The overarching idea here is that we're providing developers with a simple, cloud-based process by which they can release and maintain applications on a scalable platform.
JAXenter: What made eXo decide to target Amazon's new Platform as a Service?
Benjamin Mestrallet: We have been customers of Amazon Web Services for some time now, and both our websites and intranet leverage it. Amazon's Infrastructure as a Service(IaaS) was great before, but it could be tedious to manually manage many IT processes. Elastic Beanstalk is exciting because it negates this issue entirely by automating most of the associated IT. Amazon's move was quite bold, and relatively unexpected by many players that provide Platform as a Service (PaaS) offerings. When I started playing around with Elastic Beanstalk, I was very impressed by it; even though it's still in beta, other Java PaaS models including App Engine, Cloudbees and VMForce have found a tough new competitor.
Our Cloud IDE is completely web-based for building and integrating applications, REST APIs on the fly, gadgets and mash-ups. Our IDE was formerly available as part of the eXo Platform 3 package only, but there was a lot of interest in a standalone offering that would allow developers to build mobile apps (as demonstrated in this video.) Amazon's announcement gave us the opportunity to make the web-based IDE of eXo Platform easily available to more developers by decoupling it from the eXo Platform 3.0 offering.
JAXenter: What functionality is currently available in the beta release?
Benjamin Mestrallet: The beta version of eXo's Cloud IDE is a standalone offering that provides a User Interface as evolved as Desktops IDE. It is an Amazon AMI that includes Tomcat and our IDE, and on which you can deploy your own WAR that includes your applications. To build the IDE, we leveraged Google Web Toolkit (GWT). In the case of especially complex applications such as an IDE, having most of the logic done on the client side is key for the overall responsiveness of the application, even when several files are opened in different windows and tabs.
The Cloud IDE allows developers to build applications from the back end to the UI as well as easier interaction with their Beanstalk deployed applications. For example, developers can now extend their IDE on the fly with new APIs. In the future release, they will even be able to create, deploy and re-deploy new versions of their application directly from the IDE without using the Beanstalk SDK provided with Eclipse.
It is also possible to build Google Gadgets or Netvibes widgets and then export them or expose them in their own ecosystems. All files are in fact exposed as WebDAV resources and hence have a unique URL that can be used from mobile devices, for example (as described in the previous video that shows how to build an HTML5 mobile app using the jqtouch library).
On the backend, developers can create REST API, leveraging both the Groovy language and the JAX-RS specification. Again, the Java syntax and the Groovy are colored, auto completion is available even for the annotations and automatic import types is now possible. Developers can then create new APIs on the fly and quickly expose them to their customers.
It is also possible to rapidly persist data; to do so, we expose a content layer (JCR-based) through a mapper framework called Chromattic. It allows developers to quickly build data structures and use them for their own business logic. This is very similar to the Salesforce database.commodel, on top of which we would add a JPA or hibernate abstraction layer. Code Samples are available in the IDE and we will be releasing more demos in the coming weeks that make it even easier to build web applications.
Finally, each modified file is versioned and all the file history is browseable.
In the future, the Cloud IDE will also include integration with open source version control systems like Git. We're also going to be expanding our Cloud IDE to other leading PaaS offerings in the near future, so stay tuned on that front. Anyone interested in learning more about the technical details of the technology behind this new offering can check out the features and benefits table and check the many resources available on our www.cloud-ide.com site.
JAXenter: How has eXo's Web IDE in eXo Platform been updated for cloud services?
Benjamin Mestrallet: This process was relatively straightforward since the IDE is based on GWT, which can generate standalone applications or a Gadget. In the Platform context, we use the IDE as a Gadget and add it in the developer group so that anyone in a developer role can create or edit both the platform REST API, as well as the Gadgets deployed in the portal and dashboards. The IDE that is packaged with Tomcat in the AMI is the standalone web application that manages its own authentication but reuses the same JAAS login modules. We also had to remove some minor actions for the Gadgets, like the "deploy in platform" offering, but nothing more than that.
We will be continuing to provide more and more cloud services over the next few months, both on Amazon Beanstalk and other PaaS offerings, so stay tuned!