TOP業務システム> Rubyをエンタープライズで使う




Toward Integration/システム統合への道
Toward Integration/システム統合への道

第3回:Rubyの拡張によるアプローチの違い
著者:IONA Technologies  Steve Vinoski
訳者:日本アイオナテクノロジーズ  江川 潔   2006/12/27
1   2  3  次のページ
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とダイナミック言語の統合は明らかに重要度が高まっていることがわかります。

1   2  3  次のページ

Translated from the original English version and reprinted with permission, from "Ruby Extension" IEEE Internet Computing September/October 2006 issue of the "Toward Integration" column, by Steve Vinoski, vol. 10, no. 5, 2006, pp. 81-83. (c) 2006 IEEE.

This material is posted here with permission of the IEEE. Such permission of the IEEE does not in any way imply IEEE endorsement of any of Think It's products or services. Internal or personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution must be obtained from the IEEE by writing to pubs-permissions@ieee.org.

By choosing to view this document, you agree to all provisions of the copyright laws protecting it.
IONA Technologies,Plc. Steve Vinoski
著者プロフィール
IONA Technologies,Plc.   Steve Vinoski
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の合併を経て、現職のミドルウェア製品のマーケティング、アライアンス、プリセールスなどに従事。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第3回:Rubyの拡張によるアプローチの違い
Rubyをエンタープライズで使う
  2つのアプローチ
  Extension部分のコーディング
Toward Integration/システム統合への道
第1回 The Social Side of Services/サービスの社会的な側面
第2回 Rubyを使ったエンタープライズ・インテグレーション
第3回 Rubyの拡張によるアプローチの違い

Think IT 過去人気記事

注目おすすめ情報
cript type='text/javascript'>

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です