Rubyの拡張によるアプローチの違い

2006年12月27日(水)
Steve Vinoski江川 潔(訳)

Rubyをエンタープライズで使う

   前回は、ミドルウェアのインテグレーションプロジェクトにダイナミック言語を適用できるかを考えるために、Maik Schmidt氏の「Rubyを使ったエンタープライズ・インテグレーション(Enterprise Integration with Ruby)」を紹介しました。


Toward Integration/システム統合への道
第2回:Rubyを使ったエンタープライズ・インテグレーション

http://www.thinkit.co.jp/free/article/0606/8/2/

   ここではレガシーなサービスがJavaやC++、C言語といった従来のミドルウェア言語で開発されている場合、プロジェクトにRubyなどを利用す ることで既存のサービスにアクセスするダイナミック言語のアプリケーション開発に直接的な効果があることを説明します。

   データベースのドライバやネットワークのコネクションのように、確実に分離できるアクセス方法のみでサービスを利用するのと同様、通常このアプローチではダイナミック言語のアプリケーションが利用するサービスのアドレススペースから分離されているのです。

   しかしすべてのエンタープライズ規模のシステム統合プロジェクトで明確に区別されているとは限りません。ではRubyのようなダイナミック言語の有効な使い方として、ダイナミックなコードとレガシーのコードを直接組み合わせることが必要なのかを考えてみました。

   筆者自身、最近まで既存のC++のミドルウェアシステムへRubyをスムーズに統合する方法を模索していました。そこで今回は、実際の調査の中で浮かび上がってきた問題や、より優れていると思われる方法の詳細をご紹介します。

Javaは簡単

   今回はJavaとダイナミック言語の統合に関しては説明しません。その理由は、単純だからです。Microsoftの共通言語ランタイム(CLR) との競合やダイナミック言語を利用しているユーザから寄せられたリクエストにより、Java仮想マシン(JVM)はマルチ言語プラットフォームへと変わっ ています。

   多くのダイナミック言語の実装手法は、すでにJVM上に存在しています。例えばJavaScriptやECMAScript(E4X)、 Jython、BeanShell、Groovy、JRubyなどがあげられます(Java 6ではMozilla Rhino JavaScriptが実装予定)。

   Javaとダイナミック言語を統合させることは比較的容易に行えるものです。これは、これらの言語は全て同一のVMを共有可能なため、Javaコー ドとデータを共有化できるからです。いくつかのJava仕様要求(JSR)では、具体的には下記のものが定義されています。


  • 223(スクリプティング・エンジン)
  • 241(Groovyスクリプティング言語)
  • 274(BeanShellスクリプティング言語)
  • 292(ダイナミック言語のためのVMバイトコードの追加)

   この現状から、Javaとダイナミック言語の統合は明らかに重要度が高まっていることがわかります。

IONA Technologies,Plc.

IONA Technologiesの主管エンジニア。
17年以上にわたりミドルウェアの仕事に従事し、Object Management Group(OMG)やWorld Wide Web Consortium(W3C)においてミドルウェアの標準化に貢献している。IEEE Internet Computing Magazine の"Toward Integration"コラムを執筆しているほか、IEEE Internet Computing MagazineとInternational Journal of Web Service Researchの編集委員を勤めている。

日本アイオナテクノロジーズ株式会社 テクニカルセールスマネージャ

株式会社富士通SSLでNTT仕様のオペレーティング・システムの開発に従事したのち、日本ディジタルイク イップメント株式会社でNTT向けシステムの開発、その後、ソフトウェアとハードウェアのプリセールス活動を展開した。DECの合併を経て、現職のミドル ウェア製品のマーケティング、アライアンス、プリセールスなどに従事。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています