第2回:Rubyを使ったエンタープライズ・インテグレーション (2/4)

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

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

   実用的であるべきというテーマに沿って、RubyはXMLを合理的にサポートしていますが、JavaやC#に比べると穴があることをSchmidt氏は説明しています。通常のアプローチとして、彼はXMLドキュメントを文字列から生成する方法とREXMLやBuilderのようなRubyモジュールについて記述しています。

   生の文字列によってXMLを構成する方法は、タグの開始と終了の欠落をはじめとして簡単に間違いを犯しやすいと言った問題を抱えています。さらに文字列とRubyコードが混在したプログラムではプログラムが読み難くなり、保守が非常に難しくなりがちです。これに対してREXMLやBuilderは、より扱いやすい方法でXMLを生成することができます。

   Enterprise Integration with Rubyでは、REXMLによるツリー構造としてのアプローチ(Document Object Model [DOM]と同様)と、ストリームとしての逐次のアプローチ(Simple API for XML [SAX]と同様)の両方によるXMLの構文解析の方法を説明しています。

   REXMLはXMLを解析するアプリケーションを書く手間を軽減しますが、完全になくすことはできません。これはSchmidt氏が説明するXMLの扱い関するRubyの穴のひとつです。一方でXML処理のコードを書くことの単調さをなくしてくれるXmlSimpleモジュールについても記述しています。このモジュールはXMLドキュメントをハッシュテーブルや配列のようなデータ構造に変換するもので、Rubyハッシュテーブルのキーとしてエレメントや属性の名前を使うことによりXMLエレメントや属性の値を簡単に得ることができます。

   もしRubyのXMLサポートが他の言語に比べて革新的ではないと思われる場合、いくつかのXML処理の代替方法を示しています。階層化されたデータを表現することは、XMLが唯一の方法だと考える開発者の人たちがいますが、そんなことはありません。おそらく他のどんな表現方法よりも、多くのデータがコンマで区切られた値(character separated valueであるCSV)で表現されているのです。

   もうひとつの形としては、ダイナミック言語の利用者にはよく知られたYAMLがあります。YAMLはその名前のとおりマークアップ言語ではありません(YAML Ain't Markup Language)。RubyはYAMLをシンプルかつコンパクトにし、構造体の表現の形式を扱えるモジュールを提供しています。またEnterprise Integration with Rubyでは、その他のフォーマットについても言及しています。ただしXMLの軽量な代替として定義されているJavaScript Object Notation(JSON;www.json.org)については何も書かれていません。

   このような広く知られた簡単に記述できるデータ交換フォーマットは、任意のプログラミング言語に利用できるだけでなく、Rubyの1行のコードを解釈するような単純な表現と同様であるとも言えます。

前のページ  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の合併を経て、現職のミドルウェア製品のマーケティング、アライアンス、プリセールスなどに従事。


INDEX
第2回:Rubyを使ったエンタープライズ・インテグレーション
  ダイナミックなスクリプト言語
XML
  ネットワークとミドルウェア
  REST vs. SOAP
Toward Integration/システム統合への道
第1回 The Social Side of Services/サービスの社会的な側面
第2回 Rubyを使ったエンタープライズ・インテグレーション
第3回 Rubyの拡張によるアプローチの違い

人気記事トップ10

人気記事ランキングをもっと見る