TOP業務システム> ダイナミックなスクリプト言語




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

第2回:Rubyを使ったエンタープライズ・インテグレーション
著者:IONA Technologies  Steve Vinoski
訳者:日本アイオナテクノロジーズ  江川 潔   2006/10/18
1   2  3  4  次のページ
ダイナミックなスクリプト言語

   もし皆さんが、インテグレーション・プロジェクトを担当させられるとすると、「エンタープライズ・インテグレーション」という言葉は嫌な記憶を思い起こさせるかもしれません。残念なことにプロジェクトマネージャーや開発担当者は、プロジェクトが期限に間に合わないことや予算をオーバーしてしまうこと、あるいは要求された機能をリリースできないことの言い訳のために、エンタープライズ・インテグレーションに対する、そんな思いを利用して、プロジェクトの重要性や状況が悪いことを意図的に助長しています。

   この傾向は、IT業界のどこでも見られるようです。ある開発者は、そのことを軽蔑的なニュアンスの言い方で「enterprisey」と表現します。幸いにもすべてのエンタープライズ・インテグレーションがenterpriseyであるわけではありません。多くのプロジェクトは新しい機能を予定通りリリースして、コストの節約に貢献しています。

   インテグレーションのためのダイナミックなスクリプト言語についてのコラムとして、今回はMaik Schmidt氏の新しい本である「Enterprise Integration with Ruby」を詳細に調べてみました(訳注:原書では、本原稿以外に同様のコラムが2回あります)。

   Schmidt氏は「enterprise」という言葉の意味をデータベース、LDAP(Lightweight Directory Access Protocol)、XML、メッセージング、RPC(Remote Procedure Call)、分散オブジェクトのような複数のテクノロジやアプローチが混在しているシステム群と定義しています。もしそれらが相互に連携して運用される必要があるのであれば、氏は経験上、Rubyを使って実現することを薦めています。

   Rubyは、株式会社ネットワーク応用通信研究所のまつもと"Matz"ゆきひろ氏が、1996年にリリースしたオブジェクト指向スクリプト言語です。オブジェクト指向プログラミングを実現するための種々の機能を持っています。彼は「perl(真珠)」上の「ruby(ルビー)」のように、PerlやPythonにならってこの言語を開発したそうですが、それらよりもオブジェクト指向の色合いを強くしたいと考えていたそうです。

   リリースから10年の間にrubyは多くのユーザに利用されるようになり、最近ではRuby on RailsというWebアプリケーション開発フレームワーク(http://www.rubyonrails.org)が注目されています。

データベース

   データベースのユビキティ(訳注:再配置可能性)に対して、Schmidt氏がRubyを使ってデータベースアプリケーションの開発について解説しているのは妥当なことです。ここではネイティブなデータベースのドライバやSQLに対する低いレベルの抽象化に関して提示することからはじめています。そして特定のデータベースドライバに依存することのないよう、アプリケーションがRubyデータベースインターフェース(DBI)をどのように利用するかを説明しています。

   enterpriseyを唱える多くの人々は、高いレベルで抽象化のためにネイティブなドライバの代わりに、DBIを使うことを薦めるかもしれません。しかしSchmidt氏は、そのようなことを避けるようにDBIの抽象化の利点と欠点をバランスよく示しています。

   いずれかのレベルで、データベースシステムに対するポータビリティや非依存といった要件がない限り、性能面や抽象化による問題でデータベースの重要な機能が利用できないといったケースの場合には、DBIの利用は避けるべきだと述べています。このようにエンタープライズ・インテグレーションでは、アプリケーションを開発する際に現実的なトレードオフを検討しなければならないことがよく発生します。

   このほかにもデータベースの抽象化のレベルとして、オブジェクト/リレーショナル(O/R)マッピングについて説明しています。O/Rアプローチやそれに類するマッピングの手法では、オブジェクトモデルとリレーションモデルが異なるため、インテグレーションの際には不一致の問題に悩むことになります。

   それにも関わらず、RubyのActive Recordモジュールは多くのアプリケーションでO/Rマッピングを利用しており、この本の中でもいくつかの例が示されています。ただしSchmidt氏はActive Recordのエンタープライズへの対応についてはバランスを考えた議論を行っています。つまりActive Recordの規約に従うことのできないレガシーなデータベースシステムでは適合できないケースが出てくるかもしれません。

   またSchmidt氏は、RubyアプリケーションがLDAPを使って個人や組織のレコードのようなエンタープライズの情報にアクセスできるかを示しています。データベースアプリケーションと類似点の多いアプリケーションでは、ActiveRecordデータベースモジュールと同様のコンセプトで組み込まれているRuby/LDAPモジュール、あるいはActiveLDAPモジュールのいずれかを使ってLDAPのリポジトリへアクセスすることができるのです。

1   2  3  4  次のページ

Translated from the original English version and reprinted with permission, from "Enterprise Integration with Ruby" IEEE Internet Computing July/August 2006 issue of the "Toward Integration" column, by Steve Vinoski, vol. 10, no. 4, 2006, pp. 91-93.(c) 2006 IEEE.
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
第2回:Rubyを使ったエンタープライズ・インテグレーション
ダイナミックなスクリプト言語
  XML
  ネットワークとミドルウェア
  REST vs. SOAP
Toward Integration/システム統合への道
第1回 The Social Side of Services/サービスの社会的な側面
第2回 Rubyを使ったエンタープライズ・インテグレーション
第3回 Rubyの拡張によるアプローチの違い

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

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