Rubyを使ったエンタープライズ・インテグレーション

2006年10月18日(水)
Steve Vinoski江川 潔(訳)

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行のコードを解釈するような単純な表現と同様であるとも言えます。

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メルマガ会員のサービス内容を見る

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