Eclipse Orion の紹介: クラウドの中でクラウドに対応

JavaScript 開発ツールの機能をブラウザー内に取り込む

Eclipse Orion プロジェクトの目標は、Web の中で Web を対象に開発することのみに焦点を合わせた、ブラウザー・ベースでオープンソースのツール統合プラットフォームを作成することです。Orion のツールは JavaScript で作成されており、ブラウザー内で実行されます。また、Orion のコンポーネントは個別に利用することもできます。この記事では Orion の概要を紹介するとともに、Orion のツールを理解する上で役立つリソースと解説を提供します。

developerWorks Cloud team, developerWorks, IBM

developerWorks チームは、クラウド・コンピューティングとオンライン分散環境について詳しく学ぶのに役立つコンテンツの収集、作成に熱心に取り組んでいます。



2013年 12月 12日

Eclipse Orion プロジェクトの目標は、Web の中で Web を対象に開発することのみに焦点を合わせた、ブラウザー・ベースでオープンソースのツール統合プラットフォームを作成することです。

  • Orion のツールは JavaScript で作成されており、ブラウザー内で実行されます。ブラウザー・ベースの開発 IDE である Orion は、1 つのブラウザー・タブ内でのみ実行されるわけではなく、あらゆるリンクが機能し、これらのリンクは共有することができます。このため、開発作業に正真正銘の Web エクスペリエンスがもたらされます。
  • 他のプロジェクト (例えば、Firefox ScratchpadGitHub で公開されている Scripted エディターなど) では、Orion のコンポーネントを個別に利用することができます。Orion のすべてのコンポーネントは、公開 OrionHub サイトで表示することができます。このサイトでは、アカウントを作成して Orion を試してみることができます。

Eclipse Orion を備えた JazzHub

クラウド・ベースのコラボレーティブな開発環境 JazzHub で、Orion の動作を確かめてください。今登録すると、プライベート・プロジェクトを 2014年いっぱい無料で使用できます。

Orion の役割と Orion がもたらす影響

2013年 3月、eWeek マガジンの Jeff Cogswell 氏が Eclipse Orion について調査し、以下のように報告しています。

Eclipse Orion は、Eclipse デスクトップ IDE と同様の機能を提供することを目標に作成されたオンライン統合開発環境であり、Eclipse デスクトップ IDE と異なるのは Eclipse Orion がブラウザー内で実行されることです。

  • Orion を構成するサーバーは Java で作成されていて、ブラウザーを介してこのサーバーに接続するようになっています。
  • ブラウザー・アプリケーションは、快適な IDE エクスペリエンスをもたらす大量の JavaScript コードで構成されています。これには、複数のオープンソース・ライブラリーも含まれます。
  • テキスト・エディターではあらゆるテキスト・ファイルを編集することができます。このエディターに組み込まれている構文強調表示機能は、JavaScript、CSS (Cascading Style Sheets)、HTML などの言語に対応します。
  • この IDE では、フォルダーの管理、ファイルの作成および編集、新規プロジェクトの作成などの作業を行えるだけなく、Git を扱うこともできます。
  • プロジェクトを一から作成することも、プロジェクトを開始するためにあらかじめ用意されているテンプレートのいずれかを使用することもできます。
  • 完全な REST ベースのインターフェースを含め、エディターは全面的に拡張することが可能です。エディターを拡張することによって、サーバー・サイドの Java コードとクライアント・サイドの JavaScript コードの両方を組み込んだ拡張機能を作成することができます。
  • 拡張機能は IDE 内部からでも、Web 上のさまざまな拡張ページからでも簡単に追加することができます。

続いて彼は「オンライン・バージョンの Eclipse」としての Orion を操作した感想を述べ、彼が気に入った点として、次の特徴を挙げています。

  • エディターのコード検索およびテキスト検索機能。
  • エディターで関数の階層を表示したり、エラーおよび警告を検出したりできるように、JSLint が使用されていること。
  • プロジェクトを複数の方法で作成およびインポートできること。
  • 拡張性を念頭に作成されていること。バックエンドは拡張できて、しかも疎結合となるように作成されているため、コンポーネントのサブセットにまでスケールダウンすることができます。

Martin Lippert 氏: Eclipse Orion の採用

Martin Lippert 氏が Orion をどのように再利用してブラウザー・ベースの独自の開発者ツールを作成したのかを説明し、JavaScript 開発者がブラウザー上でエディターを中心に開発を行う手法 (Eclipse Orion 上で構築された手法) を紹介します。
ビデオ (30分51秒) | 講演記録

Martin Lippert 氏は VMware のエンジニアであり、Spring 向けの Eclipse ベースの開発者ツールに取り組んでいます。彼は 2012年 11月の ECE2012 カンファレンスで、彼のチームが Orion をどのように再利用してブラウザー・ベースの独自の開発者ツールを作成したのかを発表し、JavaScript 開発者がブラウザー上でエディターを中心に開発を行う手法 (Eclipse Orion 上で構築された手法) を紹介しました。


Orion を支える人々

Ken Walker 氏の写真Ken Walker 氏は、Eclipse Orion プロジェクトのリーダーの一人であり、このプロジェクトのコミッターでもあります。彼は 2011年の秋から Orion チームで働いており、開発者として、Orion を支えるテクノロジーと概念を喜んで説明してくれます。

Eclipse Orion について Ken Walker 氏に聞く

JAX の編集者である Chris Mayer 氏が、Eclipse Orion プロジェクトのリーダーである Ken Walker 氏に、このブラウザー IDE とその設計目標、メインの Eclipse プロジェクトとの違い、そして Orion IDE に追加できるテクノロジーについてインタビューしています。
ビデオ (6分50秒) | インタビューの記録

2013年 6月 18日の JAXConf 2013 で、Ken Walker 氏は JAX の編集者である Chris Mayer 氏との対談で、Orion IDE とその設計目標、メイン Eclipse プロジェクトとの違い、そして Orion IDE に追加できるテクノロジーについて語りました。

彼は、Eclipse と Orion の違いを強調し (「Eclipse はデスクトップ IDE であり・・・Orion はクラウドを対象としています」)、クラウドに適応するために、Orion IDE は JavaScript としてブラウザーで実行されて、Java または Node.js サーバー・バックエンドに接続すると説明しています。

2013年 4月の MLOC.JS インターナショナル JavaScript カンファレンスでも彼は Orion IDE について講演し、ネイティブと非ネイティブという、Web 開発に対する 2 つの立場での考え方を説明しています。

Simon Kaegi 氏の写真Simon Kaegi 氏は、Eclipse Orion プロジェクトのもう一人のリーダーであり、このプロジェクトのコミッターです。彼は Orion アーキテクチャーおよび実装の技術リーダーであり、IBM を代表して JavaScript 言語 (ECMA) およびブラウザー API (W3C) の展開に取り組んでいます。Eclipse コア・チームのメンバーである彼は、過去に Equinox (サーバー・サイド、p2、概要)、e4 (JavaScript のモジュール性およびデバッグ)、JSDT に携わった経験を持ちます。


Orion の技術的基礎

2013年 6月発行の Eclipse Newsletter では、Ken Walker 氏が Orion プロジェクトの基礎について詳しく説明しており、概して開発者が混乱している、Orion が実現しようとしている内容および標準の Eclipse IDEとの「技術的な」違いについて取り上げました。

Orion は、サーバー・サイドとクライアント・サイドのコードを提供する一連のコンポーネントであり、これらのコンポーネントが組み合わさって、包括的なブラウザー・ベースの開発プラットフォームを作り上げます。Orion のコンポーネントは、他の多くの Eclipse プロジェクトとは異なります。その主な理由は、これらのコンポーネントは JavaScript、CSS、HTML5 で作成されていて、Firefox、Chrome、Safari、IE10 などの最近のブラウザーを対象としているためです。つまり、Orion は当初から Web 開発者を対象としています。

彼は続いて、Java 開発チームが Java 開発者に提供しているツールの数々に比べると、Web 開発ツールは完全に揃っていないと説明しています。日常的な開発作業には、一般にスタンドアロンのエディターやコマンドライン・ツールが使用されているのが現状です。Java の言語機能およびクラウド・サービスとの緊密な統合を提供する Orion によって、これまでより簡単にクラウド/Web アプリケーションおよびサービスを開発、デプロイできるようになります。

主要な Orion コンポーネントについて、この記事では以下のように説明しています。

  • Orion サーバー: Java サーバー・サイドのサービスは、REST 指向の HTTP API によって公開されます。これらの API は、ファイルシステム、検索、Git サポート、カスタム設定などのサービスを提供します。クライアントがこれらのサービスを利用するには、サービスがサーバー上で使用可能になっていればよいので、サーバーの選択には柔軟性があります。最近、Orion チームは Node.js ベースの新しいサーバーを作成し、コミュニティーのメンバーは Go ベースのサーバーを作成しました。
  • Orion クライアント: 開発作業の大部分が行われる Orion ブラウザーの「ページ」は、タスクとリソースに重点が置かれています。そのため、一見すると非生産的な印象を与えるかもしれませんが、複数のサイトにまたがるワークフローの探索や利用も簡単にサポートすることができます。これらのページは、実行可能なあらゆる操作を 1 つの同じブラウザー・タブに組み込むという形では設計されていません。これが、Orion を従来の IDE エクスペリエンスとは区別している点です。Orion は Web アプリケーションのように動作します。ブラウザーに備わっている前後のページへの移動機能を使用したり、アクセスしているページにブックマークを付けたり、新しいページを新しいタブに開いて追加の機能を作成したりすることができます。
  • Orion プラグイン・アーキテクチャー: Orion には、クライアントをカスタマイズして機能を追加できるようにするために、プラグインを追加できる多数の拡張ポイント・サービス・タイプがあります。そのため、例えばエディターのツールバーやナビゲーター・ビューにコマンドを追加したり、新しいファイル・タイプのコンテンツ・アシストを追加したり、構文強調表示のルールを追加したりすることができます。開発者はプラグインを、Orion クライアントへの接続方法を認識する JavaScript が含まれる HTML ファイルとして作成します。

Orion は拡張できるように設計されています。ページを OSGi サービス API の JavaScript 実装に追加して、そこから利用することができます。JavaScript、CSS、および HTML で作成されたプラグインは、標準 OSGi 仕様で使用される Lifecycle および Bundle State のセマンティクスに従います。


Orion の動作

Orion リソースの概要を締めくくるために、このセクションでは Orionのさまざまな使用方法を説明するプレゼンテーション、ビデオ、ブログのいくつかを紹介します。

リリース 4.0 の新機能

Orion プロジェクトのコミッターである John Arthorne 氏のブログに、Orion の最新リリースである Orion 4.0 M2 の新機能についての詳細が説明されています。最新リリースには、例えば以下の新機能が追加されています。

  • README.MD ファイル用の組み込みマークダウン・レンダラー
  • エディター機能 (括弧の補完、スマート・インデント、ブロック・コメントの補完など)
  • カスタマイズされたローカル・エディター設定ドロップダウン
  • Node.js モジュール用の JavaScript コンテンツ・アシスト
  • ファイルを差分ファイルおよび完全ファイルとしてサーバーに保存する機能
  • ファイル・ビューアーでの Git Blame アノテーション
  • Git Log の特定のコミットを元に戻す Git Revert
  • 近日中に拡張機能の追加が予定されている Orion プロジェクトの初期サポート

Node.js での Orion

Node.js と Node.js での Orion の動作について、Ken Walker 氏がスライド・プレゼンテーションを提供しています。その内容には、(Java REST API を適切な Orion プラグインに結合して) Node.js を Orion に連結する方法、この 2 つを連動させるために必要な依存関係、そしてこの環境でのファイル検索の仕組みに関する説明も含まれます。

彼は、Orion を使用して Raspberry Pi 上で Node.js を扱う方法をデモするビデオも提供しています。このデモで、Orion によって多くの開発タスクがこれまで以上に簡易化されることを明らかにしています。

Orion の Node.js バージョンを Raspberry Pi にインストールして使用する (5分11秒)
Video: Orion の Node.js バージョンを Raspberry Pi にインストールして使用する (5分11秒)
Transcript

Web ページに Orion compare ウィジェットを組み込む

Project コミッターの Libing Wang 氏が、compare ウィジェットを Web ページに組み込む方法を実演しています (最新バージョンの Orion ではスタンドアロンの compare ビルドがサポートされていることに注意してください)。このウィジェット (クライアント・コードのどこででも使用できる、純粋なクライアント・サイドの JavaScript) は、Orion サーバーにアクセスしなくても、ページ内の任意の DOM 要素に追加することができます。

サーバー・サイドに依存関係がないことから、組み込むための作業は比較的簡単です。デモを起動することも、ソース・コードを見ることもできます。

Web ページに Orion エディターを組み込む

プロジェクト・コミッターの Bogdan Gheorghe 氏が、Orion エディターをブログで使用する方法をブログに書いています。このブログでは、ヘッダーにコードを組み込むかどうか (大量のコードをブログに含める場合)、またはコードをインラインで実行するかどうか (コードを少なくする場合) についても説明しています。例として使用されているのは、WordPress と Blogger です。

ブラウザーで COBOL を編集する

Micro Focus 社の Chris Whitty 氏が、Orion を使用して COBOL を編集する方法を実演しています。彼は、インターンからなるチームで Orion 向けの COBOL 拡張機能の作成に取り組むという、2013年の夏から始まった Micro Focus 社のプロジェクトについても詳しく説明しています。このプロジェクトにはいくつかのフレーバーがあり、その 1 つは、構文のチェックとフォーマットなどをサポートする完全にホストされた Orion インスタンス (デモ) です。また、オンライン・コード・サンプル・ブラウザーなどの他のコンテキストでも、このエディターが再利用されています。


Orion の将来

Orion の将来は、この IDE に対する皆さんの関心と、皆さんがこの IDE に適切だと考えるプロジェクトで Orion を利用して開発する方法を詳しく学びたいという熱意にかかっています。その点を踏まえ、最後に Web およびクラウド開発のために Orion を使用する方法を詳しく調べる出発点として役立つリソースをいくつか紹介します。

参考文献

学ぶために

議論するために

  • developerWorks コミュニティーに参加してください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者によるブログ、フォーラム、グループ、Wiki を調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Open source
ArticleID=956517
ArticleTitle=Eclipse Orion の紹介: クラウドの中でクラウドに対応
publish-date=12122013