Posts Tagged ‘REST’

The Top 5 New Features in eXo Cloud IDE

Wednesday, July 20th, 2011

Four months ago we launched cloud-ide.com, the first free online service eXo has ever provided, and its success has been incredible. Our goal: to be the preferred path for developers to Platform-as-a-Service (PaaS) deployments.

Today we are unveiling a major upgrade to the service, with more than 75 new features. I would like to show you my top 5 favorites.

1) Git Support

Git popularity is huge and more and more projects use it to manage their source code. Even some PaaS, such as Heroku or Openshift Express, use it as an application deployment paradigm.

Supporting Git in eXo Cloud IDE was clearly our number 1 priority, and we focused on improving the integration we announced in May at Red Hat Summit. Now we support most of the protocol commands, all natively integrated within eXo Cloud IDE.

As you can see in the first screenshot, we support many Git commands that are exposed in a new Git menu in the IDE. It is possible to init or clone a remote repository, add a file to the index, create a branch, add remote repositories and push the code to different branches on different remote repositories! And at every step of the way, you can view the current status of your repo.

image00

To be able to support private Git repositories, and to communicate with them using the SSH protocol, we have also added the capability to create private and public keys for dedicated domains, and the ability to upload existing private keys and bind them to a domain. In the next screenshots, you can see that I have created 2 private/public keys for the Heroku and GitHub domains, as well as uploaded 2 private keys for Red Hat OpenShift and CloudBees.

image07

It is also possible to browse the version history of Git repositories, see the changes and who made them!

image03

2) OpenShift and Heroku Support

The primary goal of eXo Cloud IDE is to be able to develop apps in the cloud, then deploy them to the different PaaS available in the market. With this upgrade, we now support 3 different PaaS, each that has a different deployment model.

For Heroku and OpenShift, we use some REST commands from the PaaS menu (see the next screenshot) to create applications bound to a Git repository.

image05

Then we use the Git menu to clone and push modifications to this remote repository, such as the OpenShift repo shown in the next screenshot.

image04

We have announced our Red Hat OpenShift support at Red Hat Summit last month in Boston. You can see the video demonstrating how to deploy to OpenShift here.

3) CloudBees Support

For deploying Java apps to CloudBees RUN@cloud PaaS, we only use Git and the CloudBees DEV@cloud service.

A developer first has to create a Java project in eXo Cloud IDE.  Then he has to init that repository and push the code to the CloudBees Git repository (after having registered its public SSH key in the service). From here, we leverage CloudBees DEV@cloud, which uses Maven and Jenkins to manage both the build of the Java WAR artifacts and the deployment to CloudBees RUN@cloud PaaS.

image02

4) Java / JSP support

Java is the language of choice for most eXo developers. In the first version of Cloud IDE a developer could write some REST API in Java using the JAX-RS specification. He could also store structured data inside a Java Content Repository (JCR).

With this upgrade, we now also support standard Java classes (Servlets or POJOs) and Java Server Pages (JSP).

As before, every file has some color syntaxing, code completion and outline. The next screenshot shows those features for a JSP page.

image06

Once the Java and JSP have been written it is possible to deploy them to CloudBees DEV@cloud, which manages the build (it can also manage any unit tests that you add in the Cloud IDE) and the deployment of the generated WAR.

As you can see, you can now create, test and deploy standard Java projects directly in the Cloud.

5) Ruby and PHP Support

With the launch of Red Hat OpenShift Express, we announced support for the Ruby language within eXo Cloud IDE. A developer can quickly create a Ruby file; the IDE provides some color syntaxing, outline and auto completion. A Ruby project can then be deployed to either OpenShift or Heroku, as described previously.

image01

Red Hat OpenShift also supports the PHP language, so it was a great opportunity for us to add support for this dynamic language to our catalog. And of course, we have some color syntaxing, outline and auto completion.

These are my top 5 favorite new features. I hope you will check out the new and improved Cloud IDE and give us your feedback!

For now, we’re getting back to work – this is just the beginning of a new era.

eXo IDE and RESTful architecture

Tuesday, November 23rd, 2010

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.

What is eXo Platform 3.0? (Part 4)

Monday, September 20th, 2010

Today, I am proud to announce the release of eXo Platform 3.0. In preparation for this big day, I have blogged over the last week about what eXo Platform 3.0 is to show the breadth of the product: portal foundation, social intranet and integrated web content management.

But to me the most exciting definition of eXo Platform 3.0 is as a powerful, modern application development platform. I like to think it is the platform that will make Java relevant again in this Web 2.0 world where dynamic languages like Ruby and PHP rule. Now Java can stand as a first-class language for Web 2.0 applications.

What really sets eXo Platform 3.0 apart is its REST architecture. Any portal can present third-party application data as portlets, but eXo offers advanced integration using web services to actually communicate and interact with applications. You can integrate third-party apps, whether they’re written in Java, .NET, PHP or any other language, with eXo Platform’s native APIs.

But more importantly, you can create custom REST APIs on the fly — and deploy them directly from the platform. This means unlimited extensibility; with the custom APIs, you can build as many extensions as you need. eXo Platform provides a standard way to develop these JAX-RS REST services, with development, testing and deployment all done online in a new web-based IDE. Besides REST services, this IDE lets you rapidly build applications, JavaScript files, Groovy scripts, gadgets and mashups.

It’s this architecture that lets eXo integrate easily with third-party apps. In fact, at Java One this week, we will be demoing how a simple plug-in can social-enable an enterprise application, in this case Jaspersoft’s Business Intelligence (BI) software. One of the immediate benefits of such an integration would be the automated syndication of BI events and user interactions in activity streams, enabling users to see relevant information for new and modified reports in real time. Salesforce.com got a lot of buzz for Chatter. eXo lets any app get the same “Chatter” features — without having to build it themselves.

We’ve also modularized eXo Platform 3.0, with a new mechanism using will make upgrading to future versions almost effortless.

What all these features amount to is a systematic way to build rich Java apps with content management, collaboration, social and knowledge. I invite you to go under the hood with me in these online video demos — a short intro (8 min) and a more in-depth tour (30 min). We’re also offering a 30-day evaluation subscription that includes support tickets, so download and give it a try.

Webinar: How to Build a Multi-Tenancy Online Development Platform in Java

Thursday, April 8th, 2010

The talk that Benjamin gave at the local Java SIG this week was so well-received, we decided to host an encore version as a webinar on 22 April, at 9am PT / 12pm ET / 5pm GMT.  Benjamin will demonstrate how the eXo Platform can be used as an online Java development platform to create public and private clouds.  He will walk through the different technologies that eXo leverages, such as the GateIn open source portal framework, JAX-RS, Groovy and OpenSocial Gadgets.  Specifically, attendees will learn how to:

  • use a JCR data store to model a cloud tenant
  • store and dynamically deploy JAX-RS services written in Groovy
  • store and dynamically deploy OpenSocial Gadgets that connect to previously online-created REST APIs
  • remotely expose those Gadgets to the public cloud

The complete abstract and other details are available on the registration page.