BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース eXo が Java 用のクラウド IDE をローンチ

eXo が Java 用のクラウド IDE をローンチ

ブックマーク

原文(投稿日:2011/03/17)へのリンク

eXo が 新しいクラウド IDE のローンチを発表した。ホスティングされた開発環境をベースとして,ソーシャルコーディング,ガジェットやマッシュアップの協調的な開発 (Collaborative Development) をサポートし,それらを任意の Java PaaS に直接デプロイ可能である。マルチテナンシ,ソーシャルおよびコラボレーションに関する機能も備えている。

開発者は PaaS 環境での直接デプロイ,REST API や HTML5 / JavaScript の利用,開発作業からステージングあるいはデプロイ段階へのスムーズな移行,などが可能になる。複数のファイル形式をサポートするマルチウィンドウエディタや,ローカルソースからのファイル移動に役立つおなじみのツール類なども提供される。

基本的な機能は次のようなものだ。

  • Web 開発サポート
  • 新規ドメインへの迅速なセットアップ
  • Git サポート
  • コラボレーティブ開発とソーシャルコーディング
  • PaaS 非依存

InfoQ ではこの新製品に関して,eXo の創立者でもある CEO の Benjamin Mestrallet 氏と Q&A を行った。

InfoQ: IDE のアーキテクチャの概要を説明してください。基盤となっているテクノロジやスケーラビリティはどのようなものでしょうか?

eXo: eXo Cloud IDE では eXo Platform 3 のコアコンポーネントをいくつか活用しています。Web ベースの IDE や Java コンテントリポジトリ (Java Content Repository / JCR) などです。またマルチテナンシのレイヤは,eXo Platform 3.5 (今年後半に発売予定) で提供されます。

IDE はサーバ側,ランタイム環境ともに Java を使用して,REST サービスやガジェット類を実行します。eXo Cloud IDE のホスト用には,Amazon EC2 インフラストラクチャ上で Tomcat クラスタを運用しています。標準的な Java アーキテクチャを採用したことには重要な意味があります。これによってパブリッククラウド (現在のクラウド IDE サービス) と顧客のプライベートクラウドで,同じアーキテクチャと技術を使用することが可能になるからです。

クラウド IDE で開発者が使用するソースファイルはすべて,マルチテナンシのサポートを備えた JCR に格納されます。JCR を採用したことで,開発ツールとして役立つ次のような機能が最初から用意されています。

  • ファイルを基本とする構成
  • バージョニングのサポート
  • ロックのサポート

先ほど説明したように,私たちは次の eXo Platform 3.5 リリースに向けて JCR アーキテクチャを改良し,マルチテナンシのサポートを追加しました。ユーザが新しいドメイン (つまりテナント) の生成を要求すると,新たな JCR レポジトリが自動的に初期化され,データを安全かつ独立的な方法でストアできるようになります。

このようなアプローチによって,同じ JVM 上で,データ (ソースコードおよび実行環境) へのアクセスの安全性を確保しながら,多数のテナントを実行することができるのです。

InfoQ: コードエディタの開発には,どのような技術が使われているのでしょうか?

eXo: eXo Cloud IDE のビジュアル部分のベースは,eXo Platform 3.5 コアの REST サービスをコールする Google Web Toolkit (GWT) アプリケーションです。SmartClient ライブラリ上にサービスを構築するため,私たちは数多くの拡張機能を開発しました。

またコードのカラーリングや自動補完といったエディタのコア機能のために,eXo では CodeMirror プロジェクトの機能拡張とコントリビューションを行っています。

InfoQ: Ace や Bespin/Skywalker との比較はどうでしょう?

eXo: eXo Cloud IDE は一見したところ,Ace や Bespin/Skywalker プロジェクト (現在は Cloud9 に統合されています) によく似ているかも知れません。デスクトップ IDE としての基本的な開発機能はまったく同じですから – シンタックスハイライティング,自動補完 (JavaScript,Java/Groovy,XML/HTML など複数言語に対応),ファイルバージョニングなど ... 。

しかし Cloud9 IDE が明確に JavaScript と node.js 開発者をターゲットとしているのに対して,eXo Cloud IDE のターゲットは PaaS 開発者 (当面は Java) です。

eXo Cloude IDE は,マッシュアップ用サービスを構築し実行するための,JAX-RS を基盤とした REST サービスのランタイム環境を提供します。開発者はこれらのサービス (あるいはその他) を使用する OpenSocial ガジェットをデプロイしたり,OpenSocial 準拠のページに組み込んだりすることができます。内部で eXo Platform コア技術を使用しているため,OpenSocial コンテナも利用可能なのです。OpenSocial ガジェット以外に,Netvibes プラットフォーム用のウィジェットもビルドできます。

eXo Cloud IDE はさらに,JCR 永続化のための JPA 的なオブジェクトマッピングフレームワークを提供します。

最後に,eXo Cloude IDE の決定的な違いは,開発者が Web 上で容易にコードを作成できるだけではなく,IDE から PaaS に対して 直接テストおよびデプロイが可能なことです。クラウド上で "開発とテスト" を行うだけでなく, アプリケーションのデプロイのためのツールでもあるのです。

InfoQ: どのような言語あるいは技術がサポートされていますか?

eXo: eXo Cloud IDE の最初のバージョンとなる今回のリリースでは,Java スキルを持った Web 開発者である eXo コミュニティにとって "ネイティブかつ自然" な技術にフォーカスしています。現時点でのサポート対象は次のものです。

  • Java/Groovy のシンタックスおよび実行
  • JAX-RS Web サービス
  • Chromattic 永続化機能。これはアノテーションベースの JPA 的な JCR 永続化フレームワークです ( “ショッピングカート” のアプリケーションとビデオを参照)。
  • JavaScript
  • OpenSocial/Google ガジェット
  • Netvibes UWA (Universal Widget API)
  • HTML/XML
  • CSS

eXo Cloud IDE には面白いテンプレート機構があります。これを使って開発者が独自の "プロジェクトテンプレート" を作成することで,アプリケーション開発をさらに効率化することができます。例えば REST サービスをコールする簡単なパーツなどを,テンプレートで簡単に作成できるのです。

今後は Play! や Grails,Ruby on Rails など,さらに多くの言語とフレームワークをサポートしていく予定です。

InfoQ: 近い将来に期待できる機能としては,どのようなものがありますか?

eXo: 近日中に提供を予定している改良としては,Github から取得した Java web アプリケーションの編集およびテスト実行,市場にあるほとんどの Java PaaS に対するデプロイ (例えば Git push 経由で CloudBees,あるいは App Engine への WAR デプロイ,Red Hat Makara VMForce,Amazon Beanstalk) などがあります。

しかしサポート対象を Java PaaS に限るつもりはありません。IDE は言語非依存に設計されているので,Heroku (Ruby) や Azure (C#),さらに App Engine の Python バージョンなどもサポートできるようになると思います。

最後に私たちは,プロジェクトに関する共同作業,ドキュメント記述,サポートなどを行う手段として,アクティビティストリームや Wiki,開発者フォーラムといったコラボレート機能を追加する作業の開始を予定しています。

InfoQ: これまでのデスクトップ IDE と比較して,Cloud IDE はどのようなものと考えていますか?

eXo: eXo Cloud IDE を見て頂ければ分かるとおり,デスクトップ IDE のほとんどの機能は,ブラウザで実装してクラウド上で直接利用することが可能です。それでも私たちは,クラウドベース IDE とデスクトップ IDE はいまだ補完的な関係にあると考えています。現在のクラウド開発は,開発者とアプリケーションにとって "最後の1マイル" なのです。

InfoQ: クラウド IDE は近い将来,主流になると思いますか?

eXo: そうですね,クラウドベース IDE がメインストリームになると信じています。

当社における現在の "IDE" 使用法について言えば,製品のコアとなる基盤開発では従来のデスクトップ IDE を使用しています。しかし eXo Cloud IDE がデプロイされれば,プラットフォームへの機能追加,すなわちサービス(eXo サービスあるいは外部 API) をマッシュアップするための新たな REST サービスの追加や,ガジェットを使用したユーザアプリケーションの提供などといったプラットフォームへの新機能追加開発では,これまで以上に eXo Cloud IDE が用いられるようになります。ですから2つの IDE は,開発ライフサイクル上で補完関係にあると考えているのです。

eXo はクラウドを,IT 産業の進化における大きなステップであると解釈しています。現時点でもすでにクラウドは,アプリケーションやインフラストラクチャの管理において大きなインパクトを持っています。今後はアプリケーションの開発やデプロイの方法をも変えていくに違いありません。

IDE に Chromattic を使った "データ構造" サポートを追加した理由のひとつがここにあります。これによって開発者は,CRUD アプリケーションの開発やテスト,デプロイをひとつのツールで簡単に行えるようになります - そう,どこからでも!

Web アプリケーションの開発者は,アプリケーションの開発やテスト,デプロイを行えるような,複雑な環境のセットアップをしたいとは思っていません。ただコードを書いて,クラウドへプッシュしたいだけなのです。彼らはまた,基盤である PaaS がスケール問題に対処してくれることを望んでいます。eXo Cloud IDE を使えば,開発からデプロイまで,必要となるのはブラウザだけです。

InfoQ では 2009 年から,すでに Web IDE のトレンド を認識していて,このテーマでいくつかのアーティクルを発行している。

この記事に星をつける

おすすめ度
スタイル

BT