eXo+ AWS Interview

eXo Cloud IDE for Elastic Beanstalk

Jessica Thornsby

Amazon’s announcement gave us the opportunity to make the web-based IDE of eXo Platform easily available.

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

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

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.

In this first beta, developers can use the Cloud IDE for every
layer (UI, Business Logic and Data). In this screenshot, we can see all the different
types of files a developer can create and manage like CSS,
Javascript, Groovy REST services or Data Objects. More files like
jsps and plain servlets will be added soon.

With the User Interface, it is possible to create plain HTML,
CSS and javascript files. Each file is parsed and analyzed by the
IDE and we provide a structural view in an outline tab. Each file syntax is interpreted to
allow colorization and to provide auto completion. For the HTML, we have also
embedded a WYSIWYG editor to make the file creation

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!

comments powered by Disqus