Flex マイクロブロギング・アプリケーションで pureXML を利用する: 第 1 回 DB2 pureXML を使って Web サービスを機能させる

IBM DB2 Express-C と IBM Data Studio を使用して、サンプル・マイクロブロギング・アプリケーション用のデータベースをセットアップする

IBM DB2 の pureXML 機能を使用すれば、XML をそのままの形式でデータベースに保管することができ、XML を変更する必要がありません。一方 Adobe Flex アプリケーションは、XML を直接読み取って Flex ユーザー・インターフェースに取り込むことが可能です。この 3 回の連載記事で作成するマイクロブロギング・アプリケーションでは、pureXML、Web サービス、そして Adobe Flex を利用するだけでなく、さらにマイクロブロギングでの近況アップデートを Twitter に公開することもできます。

2012年1月24日 - 読者からご指摘があった点に対応し、2ヶ所を修正しました。前提条件として Data Studio 3.1 を利用して Web サービスを作成するにはフルクライアントが必要です。またリスト 3 の直後に DB2 9.7.5 での名前空間ルールの変更 を追加し、リスト 3 のコードに必要な変更について記載しています。

Joe Lennon, Software developer, Freelance

Joe Lennon photoJoe Lennon は、アイルランド・コーク出身の 24 歳のソフトウェア開発者です。彼は Apress から出版予定の『Beginning CouchDB』の著者で、IBM developerWorks の技術記事やチュートリアルにも度々貢献しています。余暇は、サッカー、ガジェットの研究、そして Xbox 360 のゲームで楽しんでいます。



2012年 2月 23日 (初版 2009年 10月 06日)

この連載について

よく使われる頭字語

  • API: Application Program Interface
  • DVD: Digital Versatile Disc or Digital Video Disc
  • HTML: HyperText Markup Language
  • HTTP: HyperText Transfer Protocol
  • IDE: Integrated Development Environment
  • JRE: Java Runtime Environment
  • MXML: Minimal XML
  • REST: REpresentational State Transfer
  • RSS: Really Simple Syndication
  • SDK: Software Development Kit
  • SQL: Structured Query Language
  • URL: Uniform Resource Locator
  • XML: Extensible Markup Language

連載第 1 回では Web サービスについて説明し、Microsoft Windows システムで DB2 Express-C 9.7 を構成する手順をとおして、DB2 pureXML を使用して Web サービスを機能させるようにする方法を手ほどきします。今回の記事ではまず、データベースを作成します。具体的には、マイクロブロギング・サンプル・アプリケーションを背後で支えるデータベースです。次に、pureXML を使用して、マイクロブログ・データベースに保管されたデータを Web サービスとして公開します。そして最後に Web ブラウザーで、一連の手順によって作成した Web サービスが機能するかどうかをテストします。

第 2 回で学ぶのは、Adobe Flex の概要と、Adobe Flex が Web サービスから XML として公開されたデータで威力を発揮する仕組みです。Windows 環境に Flex SDK をインストールし、MXML および ActionScript の基本を説明したら、この 2 つをコンパイルして 1 つの Flex アプリケーションという形にします。次に、Flex コンポーネントを使用してマイクロブロギング・アプリケーションのユーザー・インターフェースを作成し、サンプル XML データを使ってこのユーザー・インターフェースをテストします。完成したユーザー・インターフェースは、第 1 回で作成した DB2 pureXML Web サービスに統合します。

Flex はリッチ・インターネット・アプリケーションを作成するには理想的な手段ですが、データをさまざまなビューで表示したい場合にはどうでしょうか。第 3 回ではサンプル pureXML Web サービスを使用して、マイクロブロギング・エントリーを HTML ページに公開する方法を説明します。コンテンツの配信は、あらゆるソーシャル・メディア・アプリケーションでの重要な側面です。そこで、この記事ではマイクロブロギング・エントリーを RSS フィードとして公開する方法も説明します。最後に、サンプル・マイクロブロギング・アプリケーションと Twitter を統合し、Twitter とサンプル・アプリケーションの両方で近況のアップデートを公開できるようにします。

この連載を読み終えるまでには、組織の要件に合わせて簡単に拡張、変更できる、充実した機能のマイクロブロギング・アプリケーションを作成する上で必要なツール、そして知識を手にできているはずです。


前提条件

DB2 データベース・サーバーとして、DB2 の Express-C エディションをインストールする必要があります。DB2 Express-C のダウンロードとインストールの方法については、記事の終わりにある「参考文献」セクションを参照してください。また、サービスを Web サーバーにデプロイするために、IBM Data Studio および WebSphere Application Server Community Edition (以降、Community Edition と略称) も必要です。ダウンロードについての情報は、「参考文献」に記載されています。注意: Web サービスの作成に Data Studio 3.1 を利用する場合、"Administrator Client" や "Web Console" ではなく "Full Client" を選択する必要があります。ダウンロード情報については「参考文献」を参照ください。


DB2 pureXML の概要

IBM DB2 は、多種多様なマシンおよびオペレーティング・システム上で動作するリレーショナル・データベース管理システムです。DB2 にはエントリー・レベルの Express-C データベースから Enterprise Server Edition までの複数のエディションが用意されています。この記事では、インストールおよび構成が簡単で、無料ダウンロードとして入手できることから Express-C エディションを使用します。DB2 Express-C は概念の点では Oracle Database XE (Express Edition) および Microsoft SQL Server Express と非常によく似ています。しかしこの 2 つとは異なり、DB2 Express-C にはデータベースのユーザーの数やデータベースのサイズに関する制限は設けられていません。

DB2 Express-C は、DB2 製品ファミリーのなかではベーシックな本番レベルのデータベースではあるものの、pureXML のサポートが組み込まれています。pureXML は、XML データをそのままの形式でデータベースに保管することを可能にする DB2 の機能です。pureXML の重要な特徴は、XML データをデータベースに保管する際に、別の形式に変換したり、あるいはプレーン・テキストとして保管したりすることなく、XML そのままの形式を維持して保管できることです。そのすべては透過的に行われるため、操作対象のデータが従来の SQL データ型で保管されているのか、XML として保管されているのかを気にする必要はありません。さらに、すべての XML データは、従来のリレーショナル・データを保護するために使用されているセキュリティー制御およびデータ保全性制御によって保護されます。そのため、アプリケーションに必要なデータが XML データ、リレーショナル・データ、あるいは XML データとリレーショナル・データの複合セットのどれであろうと、アプリケーションを素早く開発することができます。


DB2 Web サービスの概要

最近のアプリケーションは、サービス指向アーキテクチャー (SOA) を利用して、Web サービスとしてデプロイされることがよくあります。こうすることにより、プラットフォームや技術に依存しない標準化された手段で、ビジネス・ロジックをインターネットやイントラネットに公開できるようになります。Web サービスを使用可能にするためには、一般に以下のものが使用されます。

  • SOAP (Simple Object Access Protocol)。XML ベースのメッセージ・ブローカーです。
  • WSDL (Web Services Description Language)。標準化された XML インターフェース記述言語です。
  • UDDI (Universal Description Discovery and Integration)。Web サービス・ディレクトリー・フレームワークです。

DB2 データベース内のデータを公開する Web サービスを作成するには、IBM WebSphere Studio を利用することができます。WebSphere Studio は、DB2 データに対する WSDL インターフェースを作成するためのツール、そして Web サービスを直接 UDDI レジストリーに公開するためのツールを提供します。WebSphere Studio で作成した Web サービスは、Web サーバー (IBM WebSphere Application Server) にデプロイすることができます。DB2 のデータを操作するために必要な JDBC (Java Database Connectivity) コードに関しては、嬉しいことに DB2 の Web サービス用インフラストラクチャーがすべて提供してくれます。

DB2 の WORF (Web services Object Runtime Framework) は、DADX (Document Access Definition Extension) ファイルに定義された一連のデータベース操作に対する WSDL インターフェースを自動的に生成します。この DADX ファイルは Apache Axis SOAP サーバーと併せて WebSphere Application Server などの適切なアプリケーション・サーバーにデプロイされます。このファイルがデプロイされていれば、Web サービスを使用可能な任意のクライアントを使用して Web サービスにアクセスすることができます。この連載の第 2 回では、Adobe Flex プラットフォームを使用して DB2 Web サービスを利用します。


マイクロブロギング・データベースのセットアップ

インストールが完了し、インストーラーが閉じられると、DB2 「First Steps (ファースト・ステップ)」アプリケーションが起動します。このアプリケーションが開く前に、場合によっては JavaScript を有効にしてローカル DB2 ファイルにアクセスするためのブラウザー・プロファイルを作成するように求められることがあります。その場合には、「Create profile (プロファイルを作成する)」をクリックしてください。DB2 「First Steps (ファースト・ステップ)」アプリケーションは、図 1 のスクリーン・キャプチャーのように表示されます。

図 1. DB2 「First Steps (ファースト・ステップ)」
「First steps for DB2 Database for Linux, UNIX, and Windows (DB2 Database for Linux, UNIX, and Windows のファースト・ステップ)」のスクリーン・キャプチャー

サンプル・データベースをセットアップしたい場合は、遠慮なくそうしてください。「Create new database (新規データベースの作成)」ボタンをクリックすると、DB2 データベースの作成ウィザードが立ち上がります。しかし、この記事ではウィザードを使用しません。ここで作成しなければならないのは、このウィザードでは作成できない XML 対応のデータベースだからです。DB2 「First Steps (ファースト・ステップ)」アプリケーションでの作業が終わったら、アプリケーションを閉じてください。ここからは、マイクロブロギング・アプリケーション用の DB2 データベースを作成する手順に入ります。

新しい DB2 データベースを作成するには、DB2 「Command Editor (コマンド・エディター)」を開く必要があります。それには「Start (スタート)」 > 「Programs (すべてのプログラム)」 > 「IBM DB2」 > 「DB2COPY1 (Default) (DB2COPY1 (デフォルト))」 > 「Command Line Tools (コマンド行ツール)」 > 「Command Editor (コマンド・エディター)」の順にナビゲートします。エディターがロードされると、図 2 のような DB2 「Command Editor (コマンド・エディター)」が表示されます。

図 2. DB2 「Command Editor (コマンド・エディター)」
DB2 「Command Editor (コマンド・エディター)」のエディター領域と結果表示領域のスクリーン・キャプチャー

データベースを作成するため、メイン・エディター領域 (再生アイコンと停止アイコンが表示されたツールバーの下にある空のスペース) に、「create database mblog using codeset UTF-8 territory us」と入力し、「Execute (実行)」ボタン (再生アイコンのボタン) をクリックします。

データベースの作成プロセスが完了するまでには 1 分ほどかかるので、辛抱強く待ってください。データベースが作成されると、データベースが正常に作成されたことを通知する「DB20000I The CREATE DATABASE command completed successfully (DB20000I CREATE DATABASE コマンドが正常に完了しました。)」というメッセージが結果ウィンドウに表示されます。データベースの作成が完了したら、DB2 「Command Editor (コマンド・エディター)」にこのデータベースに接続するよう指示します。エディター領域に「connect to mblog」と入力し、もう一度「Execute (実行)」をクリックしてください。

何も問題がなければ、mblog データベースに接続したことを示す「A JDBC connection to the target has succeeded (ターゲットへの JDBC 接続は成功しました。)」というようなメッセージが表示されます。このメッセージが表示されたら、今度は「status_updates」という名前の表を新規に作成します。この表に、マイクロブロギング・アプリケーションでの近況アップデートを XML 形式で保管することになります。リスト 1 の文をエディター・ウィンドウに入力して、「Execute (実行)」をクリックしてください。

リスト 1. 「status_updates」表を作成する
create table status_updates (
    data        xml
)

図 3 のように、SQL コマンドの実行が正常に完了したことを示すレスポンスを受け取るはずです。

図 3. 正常に完了した SQL コマンド
正常に完了した SQL コマンドの実行結果のスクリーン・キャプチャー

今度は XML データをデータベースに挿入してみるため、DB2 「Command Editor (コマンド・エディター)」のエディター・ウィンドウに、リスト 2 の INSERT 文を入力します。

リスト 2. XML による近況アップデートを挿入する
insert into status_updates values (
    '<update display="true">
        <date_created>2009-08-06T21:20:19</date_created>
        <text>Hello World!</text>
    </update>'
)

上記を入力して「Execute (実行)」をクリックすると、やはりコマンドが正常に完了したことを通知するレスポンスが返ってきます。

このデータを通常の RDBMS 列ではない列に入力するとなると、ルールが 1 つも定義されていないことが問題となります。つまり、データ型や NOT NULL 識別子などが何も定義されていません。そのため、何の関連性もない XML 文書をいとも簡単に挿入することができて、しかもそれが受け入れられることになります。そこで活躍するのが、XML スキーマです。XML スキーマを使用することで、XML データとして許容される形式を定義することができます。そして INSERT 文を実行するときには、このスキーマに照らし合わせてデータの妥当性を検査することができます。

XML スキーマを作成するには、プレーン・テキスト・エディター (メモ帳など) を開いて新しいファイルを作成すればよいだけですが、ファイルの保存先は重要です。話を単純にするため、この記事では作成したスキーマを C:\xmlschemas\updates.xsd フォルダーに保存します。これとは別の保存先にする場合には、この後スキーマを登録する際に、必ずその場所を指定するようにしてください。ファイルにはリスト 3 のコードを入力して保存します。

リスト 3. XML スキーマ - updates.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="update">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="date_created" type="dateTime"/>
        <xs:element name="text" type="normalizedString"/>
      </xs:sequence>
      <xs:attribute name="display" type="xs:boolean" default="true"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

DB2 9.7.5 での名前空間ルールの変更

DB2 9.7.5 から適用された名前空間ルールの変更に対応するには、XML スキーマを定義する際にプレフィックスを指定する必要があります。具体的には DB2 9.7.5 の XSD スキーマ内で <xs:element> 型のノードの属性を指定する時に xs: というプレフィックスを追加します。

したがって、この変更に対応するには、リスト 3 の該当箇所を以下のように変更する必要があります:

<xs:element name="date_created"type="xs:dateTime"/>
<xs:element name="text" type="xs:normalizedString"/>

DB2 9.7.5 でリスト3 をそのまま利用した場合には 2200M の SQL ステータスコードを伴うエラーが発生します。

リスト 3 のスキーマが定義しているのは、update という要素です。これは複合要素で、以下の 2 つのサブ要素からなります。

  • date_created 要素 (dateTime 型)
  • text 要素 (normalizedString 型)

後者の正規化ストリングは XML プロセッサーに対し、データ処理時にはストリングの周りにある必要のない余分なホワイト・スペースをすべて除去するように指示しているだけです。

XML スキーマをファイルに保存したら、今度はこのスキーマを DB2 に登録して、XML データをデータベースに挿入する際に、どのように妥当性検査をすればよいのかを DB2 が認識するようにします。そのためには、DB2 「Command Editor (コマンド・エディター)」のエディター領域にリスト 4 の文を入力して「Execute (実行)」をクリックします。

リスト 4. XML スキーマを DB2 に登録する
register xmlschema 'http://mblog.example.com' from 
'C:/xmlschemas/updates.xsd' as mblog.status_update complete

XML スキーマが正常に登録されると、「DB20000I The REGISTER XMLSCHEMA command completed successfully (DB20000I REGISTER XMLSCHEMA コマンドが正常に完了しました。)」というレスポンスを受け取ります (図 4 を参照)。

図 4. 正常に登録された XML スキーマ
XML スキーマが正常に登録されたことを示すスクリーン・キャプチャー

ここで断っておきますが、XML スキーマを定義してデータベースに登録したからといって、今後挿入される XML データの妥当性検査が、そのスキーマに対して自動的に行われるわけではありません。つまり、INSERT コマンドを実行するときには、手動で XML の妥当性検査を行わなければならないということです。妥当性検査には、リスト 5 に記載する XMLVALIDATE 関数を使用します。

注: 別の手段としては、表に対して実行されるすべての INSERT コマンドを捕捉するデータベース・トリガーを作成し、そのデータベース・トリガーが XMLVALIDATE 関数を使用して XML としてのデータの妥当性検査を行ってから INSERT コマンドを実行するようにしておく方法もあります。この記事では、ここで作成する INSERT 文の中で妥当性検査を行うという方法を一貫して使用します。

リスト 5. XML スキーマに対して XML データの妥当性検査を行う
insert into status_updates values (
    xmlvalidate(xmlparse(document('
    <update display="true">
        <date_created>2009-08-09T21:09:10</date_created>
        <text>This should validate!</text>
    </update>
    ')) according to xmlschema id mblog.status_update)
)

スキーマによると、リスト 5 の XML は妥当であるため、SQL コマンドが正常に完了したというレスポンスを受け取るはずです。今度は、無効なデータを挿入しようとするとどうなるかを調べてみます。リスト 5<date_created> タグと </date_created> タグの間にあるテキストを「This is not a valid datetime」というテキストに変更してください。その上で、上記の文をもう一度実行します。すると今度は、「SQL16105N Incorrect XML data (SQL16105N XML データが誤っています。)」というエラー・メッセージを受け取るはずです。エラー・メッセージの後には、DB2 がエラーに関する有用な情報を提供し、問題を修正するための方法を提案します。この例の場合、その方法とは「XML 文書を修正してから、操作を再試行する」というものです。これで、データベース内の XML データの妥当性検査を行えるようになったので、次はデータベース内の XML データに対してクエリーを実行する方法を説明します。

DB2 9 データベースに格納された XML データに対してクエリーを実行するための言語としては、SQL (SQL/XML) と XQuery の 2 つを使用することができます。さらに、SQL と XQuery 式を組み合わせた複合クエリーを使用することもできます。まずは、SQL クエリーを実行して「status_updates」表の中身を取得する方法から説明します。DB2 「Command Editor (コマンド・エディター)」に、「select data from status_updates」という SQL 文を入力してください。

Execute (実行)」をクリックすると、「Command Editor (コマンド・エディター)」のビューは「Query Results (照会結果)」タブに切り替わり、表形式の構造が表示されます。この構造は、「Data」列、「XML」というテキストが示されたフィールド、そして 3 つのドットが表示されたボタンからなります。図 5 では、このボタンを赤い四角で囲って示しています。

図 5. DB2 「Command Editor (コマンド・エディター)」の「Query Results (照会結果)」ビュー
DB2 「Command Editor (コマンド・エディター)」の「Query Results (照会結果)」ビューのスクリーン・キャプチャー

3 つのドットのボタンをクリックすると、「XML Document Viewer (XML 文書ビューアー)」が表示されます (図 6 を参照)。このビューアーの「Tree View (ツリー・ビュー)」タブには XML データがツリー構造で表されます。この構造から、この XML データには display属性と、date_created および text の 2 つのサブ要素があることがわかります。サブ要素を展開すると、それぞれの値も示されます。

図 6. DB2 「XML Document Viewer (XML 文書ビューアー)」
date_created 要素および text 要素の値が表示された DB2 「XML Document Viewer (XML 文書ビューアー)」のスクリーン・キャプチャー

SQL 文を使用して XML データを取得する場合の主な問題は、WHERE 節などのフィルター節を使って XML データをフィルタリングできないことです。また SQL では、データ上で集約操作や結合操作を実行することもできません。ただし、XML 拡張機能を備えた SQL (SQL/XML) であれば、このようなクエリーを実行することができます。

ご想像のとおり、SQL/XML の目的は、SQL 問い合わせ言語を拡張し、従来の SQL 式では扱うことができなかった XML データを扱える手段になることです。例えば SQL/XML を使用して、表の XML 列に格納された XML 要素のうち、特定の値を持つ特定の要素が含まれる行を検索することができます。一例として、XML データ列の text 要素が「This should validate!」という値になっている行のカウントを出したいとします。このデータが DB2 表の標準的な VARCHAR 列に格納されていたとすれば、リスト 6 の SQL 文を使用することになっていたでしょう。

リスト 6. SQL 文
select count(*) from status_updates
where text = 'This should validate!'

しかし、上記の文の text で指定されているデータは XML 列内の XML 文書に格納されているため、この文は使えません。代わりに使用できるのが、リスト 7 の SQL/XML 文です。

リスト 7. SQL/XML を使用して XML データをフィルタリングする
select count(*) from status_updates
where xmlexists('$u/update[text="This should validate!"]'
passing status_updates.data as "u")

上記の文を実行すると、「Query Results (照会結果)」ウィンドウに結果として「1」という値が返されます (図 7 を参照)。

図 7. SQL/XML 文の実行結果
SQL/XML 文の実行結果のスクリーン・キャプチャー

このクエリーで単純なテストを実行するには、テキストを何らかの誤ったテキストに変更してからクエリーをもう一度実行してみてください。すると、結果として「0」が返されるはずです。テストが終わったところで、今度は SQL/XML を使用して、従来の SQL 表と同じ表示形式で XML 文書の要素を返します。そのために使用するのは、XMLTABLE 関数です。リスト 8 の文を「Command Editor (コマンド・エディター)」ウィンドウに入力して、「Execute (実行)」をクリックしてください。

リスト 8. XMLTABLE を使用して SQL/XML クエリーの実行結果に対するフォーマットを設定する
select t.date_created, t.text from status_updates su, 
xmltable('$u/update' passing su.data as "u"
columns date_created varchar(100) path 'date_created',
  text varchar(500) path 'text') as t

上記のクエリーを実行すると図 8 のような結果が返され、「Query Results (照会結果)」タブに、DATE_CREATED 要素と TEXT 要素それぞれの値が表示されます。

図 8. XMLTABLE クエリーの実行結果
XMLTABLE クエリーの実行結果として DATE_CREATED および TEXT 要素の値が示された画面のスクリーン・キャプチャー

最後に説明するのは、XQuery を使って表からデータを取得する方法です。この場合も「Command Editor (コマンド・エディター)」を使用して、「xquery db2-fn:xmlcolumn('STATUS_UPDATES.DATA')」という文を入力してください。

重要な点として、表と列の名前は大文字にしてください。そうでないと、このクエリーは機能しません。「Execute (実行)」をクリックすると、コマンド結果領域にクエリーの実行結果が返されます (図 9 を参照)。

図 9. XQuery 文の実行結果
XQuery 文の実行結果として date_created および text 要素が示された画面のスクリーン・キャプチャー

このセクションを終える前に、XQuery を使用して XML データをフィルタリングし、特定の要素だけが返されるようにする方法を説明しておきます。以下の例で返されるのは、text 要素だけです。この要素は、date_created 要素によってフィルタリングされます (リスト 9 を参照)。

リスト 9. XQuery を使用して XML をフィルタリングする
xquery
for $y in db2-fn:xmlcolumn('STATUS_UPDATES.DATA')/update
where $y/date_created="2009-08-09T21:09:10"
return $y/text

上記のクエリーを実行すると、期待通りの結果が表示されるはずです (図 10 を参照)。

図 10. XQuery 文によるフィルタリングの結果
XQuery 文によるフィルタリングの結果として text 要素が示された画面のスクリーン・キャプチャー

以上で、マイクロブロギング・データベースのセットアップは完了しました。また、XML データの挿入と取得もある程度、経験したので、次はこのデータを扱う Web サービスを作成する作業に取り掛かります。


Web サービスを使用したマイクロブロギング・データの公開

Web サービスを作成するには IBM Data Studio を使用し、作成したサービスは Web サーバー (WebSphere Application Server Community Edition) にデプロイします。そこで最初の作業として、まずは Community Edition をインストールします。http://www.ibm.com/developerworks/downloads/ws/wasce/ にアクセスし、「Download now」をクリックしてセットアップ・アーカイブをダウンロードしてください。パッケージをダウンロードする際には、IBM ID を使ってサインインする必要があります。パッケージはお使いのオペレーティング・システムに対応する適切なバージョンをダウンロードしてください (私はこの記事を書くために Windows にインストールしました)。

インストーラーのロードが完了したら、「Next」をクリックして「License Agreement」画面に進みます。使用条件を読んでから「I accept the terms of the License Agreement」を選択し、「Next」をクリックします。次の画面ではデフォルトのインストール先を受け入れて「Next」をクリックします。インストールの要約が表示されるので、内容を確認し、「Install」をクリックしてインストールを開始します。セットアップが完了したら、「Done」をクリックしてインストーラーを終了します。Community Edition について必要な作業はこれだけです。後で Web サービスをデプロイするときには、Data Studio が Application Server を自動的に起動してくれます。

Community Edition はインストールされたので、次は Data Studio をインストールします (ダウンロード・サイトへのリンクについては「参考文献」を参照してください)。図 11 で赤の四角で囲んだところをクリックして IDE パッケージをダウンロードしてください。このパッケージには、Web サービスを作成し、デプロイするために必要なすべての機能が含まれています。

図 11. Data Studio IDE パッケージをダウンロードする
Data Studio IDE パッケージをダウンロードする Web ページの画面のスクリーン・キャプチャー

ダウンロード・サイトにアクセスするには、IBM ID を使用してログインする必要があります。ダウンロード・ページでは、お使いのオペレーティング・システム (この記事では Windows を使用) に対応するオファリングを選択し、「Continue」をクリックします。ソフトウェアの用途についての詳細を入力するよう求められたら、それに従い入力をします。次の画面では「IBM Data Studio (IDE) Install」の隣にあるチェック・ボックスにチェック・マークを付け、「Download Now」ボタンをクリックしてダウンロード・プロセスを開始します。このファイルのサイズは 687 メガバイトなので、高速インターネット接続が必要です (そうでなければ、かなりの忍耐が必要になります)。

ダウンロードが完了したら、アーカイブを解凍し、setup.exe ファイルを実行して Data Studio インストーラーを立ち上げます。スプラッシュ画面からセットアップする言語を選択し、「OK」をクリックするとランチパッド・アプリケーションが実行されます。

次の画面では、左側のそれぞれのセクションごとに提供される情報を自由にブラウズしてください。ブラウズし終わったら、「Install Product (製品のインストール)」をクリックして「Installation Manager」を実行します。「Install Packages (パッケージのインストール)」画面ではデフォルトの設定を受け入れ、「Next (次へ)」をクリックして先へ進みます (図 12 を参照)。

図 12. IBM Installation Manager の「Install Packages (パッケージのインストール)」画面
IBM Installation Manager の「Install Packages (パッケージのインストール)」画面のスクリーン・キャプチャー

すると、使用条件を読むように求められるので、読み終わったら「I accept the terms in the license agreements (使用条件の条項に同意します)」を選択して「Next (次へ)」をクリックします。「Location (ロケーション)」画面では、デフォルトの設定を受け入れて「Next (次へ)」をクリックし、次の画面に進みます。次に表示された画面でもデフォルトのオプション (「Create a new package group (新規パッケージ・グループの作成)」) とインストール・ディレクトリーを受け入れ、「Next (次へ)」をクリックします。次の画面では、既存の Eclipse IDE インストールがある場合、これを拡張するかどうかを選択することができます。この画面でもデフォルトの設定を変更せずに「Next (次へ)」をクリックします。

「Features (フィーチャー)」セクションでは、まず始めにインストールする翻訳言語を選択するように求められます。デフォルトでは英語が選択されていて、これを選択解除することはできません。他の言語を追加でインストールしたい場合には、目的の言語にチェック・マークを付けてください。その必要がなければ、単に「Next (次へ)」をクリックします。次に、インストールするフィーチャーを選択する画面が表示されます。この画面もデフォルトのままにして「Next (次へ)」をクリックします。すると最後にインストールの「Summary (要約)」画面 (図 13 を参照) が表示されるので、この画面で選択内容を確認し、必要な場合には選択画面に戻って設定を変更してください。インストールの準備が整ったら、「Install (インストール)」をクリックしてインストール手順を開始します。

図 13. IBM Installation Manager の「Summary (要約)」画面
選択したパッケージが表示されている IBM Installation Manager の「Summary (要約)」画面のスクリーン・キャプチャー

インストールが完了すると、インストールが正常に完了したことを示す図 14 のような画面が表示されるので、「Finish (終了)」をクリックしてください。これによって、IBM Data Studio が起動します。

図 14. IBM Installation Manager - インストール完了時の画面
IBM Installation Manager - インストール完了時の画面のスクリーン・キャプチャー

Data Studio は起動時に、ワークスペースを選択するよう求めてくるので、「Use this as the default and do not ask again (この選択をデフォルトとして使用し、今後この質問を表示しない)」オプションを選択して「OK」をクリックします (図 15 を参照)。

図 15. IBM Data Studio の「Workspace Launcher (ワークスペース・ランチャー)」
IBM Data Studio の「Workspace Launcher (ワークスペース・ランチャー)」のスクリーン・キャプチャー

Data Studio で最初に表示される画面は、「Welcome (ようこそ)」画面です。この画面上端の中央にある矢印アイコン (図 16 で赤の四角で囲ってあるアイコン) をクリックすれば、画面が閉じ、メイン開発領域に入ることができます。

図 16. IBM Data Studio の「Welcome (ようこそ)」画面
IBM Data Studio の「Welcome (ようこそ)」画面のスクリーン・キャプチャー

Data Studio のメイン画面左下の領域には、現在使用可能なデータベース接続を示す「Data Source Explorer (データ・ソース・エクスプローラー)」があります。この記事の手順に初めから従っていれば、ここには「MBLOG」データベースが示されているはずです。「MBLOG」接続を右クリックしてコンテキスト・メニューを表示し、「Connect (接続)」を選択してください。すると、データベース接続プロパティーを表示する新しいウィンドウが開き、ユーザー名の入力を求められるので、データベースのユーザー名とパスワードを入力します (「status_updates」表を作成するときに使用したもの)。入力したら、「Save password (パスワードの保存)」チェック・ボックスを選択した上で「Test Connection (接続のテスト)」をクリックします。接続が正しく機能していれば、「Ping succeeded! (ping が成功しました。)」というメッセージが表示されます (図 17 を参照)。

図 17. データベース接続の構成
データベース接続の構成およびテストが完了した後の「Driver Properties (ドライバー・プロパティー)」ウィンドウのスクリーン・キャプチャー

OK」をクリックして「Properties (プロパティー)」ウィンドウを閉じると、Data Studio が「MBLOG」データベースとの接続を開始します。これによってデータベース接続の選択肢は、「Instance (インスタンス)」と「MBLOG」という新しい 2 つに拡張されます。「MBLOG」の左側にある展開アイコンをクリックすると、データベース内のさまざまなオブジェクト・タイプが表示されます (バッファー・プール、グループなど)。これでデータベースへの接続は確立されました。次は新しい開発プロジェクトの作成に取り掛かります。

「File (ファイル)」 > 「New (新規)」 > 「Data Development Project (データ開発プロジェクト)」の順に選択して、「New Data Development Project (新規データ開発プロジェクト)」ウィンドウを開きます。プロジェクト名の入力を求められるので「Microblog」と入力し、「Next (次へ)」をクリックします。次の画面では、既存のデータベース接続を選択するか、または新しいデータベース接続を作成するよう求められます。「MBLOG」接続を選択したら、「Finish (終了)」をクリックしてダイアログを閉じます (図 18 を参照)。

図 18. データベース接続を選択する
「Select Connection (接続選択)」ウィンドウで「MBLOG」が選択された状態のスクリーン・キャプチャー

すると、Data Studio のメインのワークスペースが再び表示されます。ワークスペースの左上を見ると、「Microblog」が「Data Project Explorer (データ・プロジェクト・エクスプローラー)」ペインにプロジェクトとして表示されていることがわかります。このプロジェクトの左側にある展開アイコンをクリックして、プロジェクトを構成するさまざまなパーツを確認してください (PL/SQL パッケージ、SQL スクリプトなど)。

今度は、「status_updates」表に対してクエリーを実行して各行のデータ列に保管された XML データを返す単純な SQL スクリプトを作成します。プロジェクトを展開して表示されたなかから「SQL Scripts (SQL スクリプト)」を右クリックし、表示されたメニューで「New (新規)」 > 「SQL or XQuery Script (SQL または Xquery スクリプト)」の順に選択してください。この操作によってダイアログ・ウィンドウが開き、スクリプトの名前と編集方法を尋ねてきます。スクリプトの名前として「getAllUpdates」と入力し、「Finish (終了)」をクリックします。

すると、getAllUpdates.sql というファイルが作成され、メイン編集ウィンドウのなかに開かれます。このウィンドウに、「select data from "MBLOG".status_updates」という文を入力します。

「File (ファイル)」 > 「Save (保存)」の順にクリックしてファイルを保存します。この SQL 文をテストするため、F5 を押してスクリプトを実行します。結果は、画面の下の方にある「SQL Results (SQL の結果)」タブに表示されます。

続いて、データベース表に新しい行を挿入するためのストアード・プロシージャーを作成します。ウィンドウ左上の「Data Project Explorer (データ・プロジェクト・エクスプローラー)」ペインで、「Microblog」プロジェクトの下に表示されている「Stored Procedures (ストアード・プロシージャー)」を右クリックします。「New (新規)」 > 「Stored Procedures (ストアード・プロシージャー)」の順に選択すると、新規ストアード・プロシージャーを作成するためのダイアログ・ウィンドウが開きます。このウィンドウで新規ストアード・プロシージャーの名前として「insert_update」と入力し、「Language (言語)」ドロップダウンから「PL/SQL」を選択して「Finish (終了)」をクリックします (図 19 を参照)。

図 19. 新規ストアード・プロシージャー
新規ストアード・プロシージャー「insert_update」を設定するウィンドウのスクリーン・キャプチャー

「Parameters (パラメーター)」画面では、新規パラメーターを追加するために「Add (追加)」ボタンをクリックします。ポップアップ・ウィンドウが表示されたら、パラメーターのモードは「In」のままにして、「text」という名前を入力します。このパラメーターは、型が「VARCHAR」で、長さが「500」の PL/SQL にします。「Add (追加)」をクリックして、このパラメーターをプロシージャーに追加します。

INSERT_UPDATE」プロシージャーが「Stored Procedures (ストアード・プロシージャー)」セクションに保存され、「Editor (エディター)」ウィンドウに開きます。このコードを編集して、リスト 10 に記載するコードと同じになるようにします。MBLOG は、「status_updates」表が保管されているスキーマに置き換えてください。

リスト 10. INSERT_UPDATE ストアード・プロシージャーのコード
CREATE OR REPLACE PROCEDURE INSERT_UPDATE(IN c_text VARCHAR(500), IN display VARCHAR(5))
LANGUAGE SQL
BEGIN
    INSERT INTO "MBLOG".status_updates(data) VALUES(
    XMLDOCUMENT(XMLELEMENT(
        name "update",
        XMLATTRIBUTES(display as "display"),
        XMLFOREST(
        replace(varchar_format(current timestamp, 'YYYY-MM-DD HH24:MI:SS'), 
' ', 'T') as "date_created",
        text as "text"
)
    ))
    );
    RETURN 1;
END

新しく作成したストアード・プロシージャーをテストするには、これをデータベースにデプロイする必要があります。「Data Project Explorer (データ・プロジェクト・エクスプローラー)」ペインで「INSERT_PROCEDURE」を右クリックし、表示されたメニューで「Deploy (デプロイ)」を選択してください。ターゲット・データベースでは「Use current database (現行のデータベースを使用)」を選択し、適切なターゲット・スキーマが選択されていることを確認します。これで「Finish (終了)」をクリックすれば、ストアード・プロシージャーがコンパイルされます。「Data Source Explorer (データ・ソース・エクスプローラー)」でスキーマをナビゲートして、「Stored Procedures (ストアード・プロシージャー)」のなかから先ほどコンパイルした「INSERT_UPDATE」 プロシージャーを見つけます。このプロシージャーを右クリックして「Run (実行)」を選択すると、「Specify Parameter Values (パラメーター値の指定)」ダイアログ・ボックスが開くので、「c_text」パラメーターの値として「Testing procedure」と入力し、「c_display」パラメーターの値として「true」と入力します。入力し終わったら「OK」をクリックしてプロシージャーを実行します。計画どおりに行けば、「Run completed (実行が完了しました。)」というメッセージが表示されるはずです。このメッセージが表示されたら getAllUpdates SQL スクリプトに再び切り替えて、F5 を押します。今回は、ストアード・プロシージャーによって作成された行が新たに追加されていることがわかるはずです。

ここからはいよいよ、Web サービスを作成します。「Data Project Explorer (データ・プロジェクト・エクスプローラー)」で、「Web Services (Web サービス)」を右クリックして「New Web Service (新規 Web サービス)」を選択します。これで、「New Web Service (新規 Web サービス)」ダイアログ・ボックスが開くので (図 20 を参照)、「Microblog」プロジェクトが選択されていることを確認してから、Web サービスの名前として「StatusUpdates」と入力し、「Namespace URI (ネーム・スペース URI)」を「urn:updates」に変更します。

図 20. 新規 Web サービス
新規 Web サービスの「Edit Web Service (Web サービスの編集)」ウィンドウのスクリーン・キャプチャー

これから、前の手順で作成した SQL スクリプト、getAllUpdates.sql を、この新しい Web サービスに追加します。「Data Project Explorer (データ・プロジェクト・エクスプローラー)」で SQL スクリプト「getAllUpdates.sql」を選択し、「StatusUpdates」Web サービスにドロップします。これによって「StatusUpdates」Web サービス内に「getAllUpdates」操作が作成されます。同様に、ストアード・プロシージャー「INSERT_UPDATE」を同じ場所にドロップします。これで、「StatusUpdates」Web サービスの操作は、「getAllUpdates」と「INSERT_UPDATE」の2 つになります (図 21 を参照)。

図 21. 「StatusUpdates」Web サービスの操作
「StatusUpdates」Web サービスの操作を行っているところのスクリーン・キャプチャー

次のステップは、Web サーバー・インスタンスを作成することです。このインスタンスに、新しく作成した Web サービスをデプロイすることができます。Data Studio で「Window (ウィンドウ)」 > 「Show View (ビューの表示)」 > 「Other (その他)」の順に選択し、「Show View (ビューの表示)」ダイアログ・ボックスから「Server (サーバー)」、「Servers (サーバー)」の順に選択します。「OK」をクリックすると、ワークスペースに「Servers (サーバー)」タブが開きます (図 22 を参照)。

図22. 「Servers (サーバー)」ビューが選択された「Show View (ビューの表示)」ダイアログ・ボックス
「Servers (サーバー)」ビューが選択された「Show View (ビューの表示)」ダイアログ・ボックスのスクリーン・キャプチャー

Data Studio ウィンドウの下部では「Servers (サーバー)」タブがアクティブになっているはずです。この「Servers (サーバー)」タブの何もない空白の領域を右クリックし、「New (新規)」 > 「Server (サーバー)」の順に選択して「New Server (新規サーバー)」ウィザードを開いてください。このウィザードの最初の画面では、デフォルトのオプションを受け入れます (図 23 を参照)。

図 23. 「Define a New Server (新規サーバーの定義)」ウィンドウ
作成するサーバーのデフォルト・オプションが選択された状態の「Define a New Server (新規サーバーの定義)」ウィンドウのスクリーン・キャプチャー

サーバーのデフォルト・オプションは以下のとおりです。

  • ホスト名: localhost
  • サーバー・タイプ: IBM WASCE v2.1 Server
  • サーバー名: IBM WASCE v2.1 Server at localhost

Next (次へ)」をクリックします。「New Server (新規サーバー)」ウィザードに次に表示される「New IBM WASCE v2.1 Runtime」ウィンドウでは、JRE インストールおよび WASCE インストールの場所を指定します。それぞれに適切な値を指定して、「Next (次へ)」をクリックします (図 24 を参照)。

図 24. JRE および WASCE を指定する
JRE および WASCE が指定された画面のスクリーン・キャプチャー

上記で指定されている値は以下のとおりです。

  • JRE: jdk
  • アプリケーション・サーバー・インストール・ディレクトリー: C:\Program Files\IBM\WebSphere\AppServerCommunityEdition

「New Server (新規サーバー)」ウィザードの残りの画面では、単にデフォルトを受け入れて「Next (次へ)」をクリックしてください。最後の「Add and Remove Projects (プロジェクトの追加および除去)」画面に到達したら、「Finish (終了)」をクリックします。この時点で Web サーバーを起動して、この Web サーバーが有効であるかどうかをテストするために、「Servers (サーバー)」タブに追加したインスタンスを右クリックして「Start (開始)」オプションを選択します。起動するまでに数分かかることもありますが、辛抱してください。起動が完了すると「Console (コンソール)」タブが閉じ、「Servers (サーバー)」タブではサーバーの状態が「Started (始動済み)」として示されます (図 25 を参照)。

図 25. 起動後の Web サーバー
状態が「Started (始動済み)」の Web サーバーが表示された「Servers (サーバー)」タブのスクリーン・キャプチャー

Web サービスの定義は完了し、Web サーバーが起動中の状態になったので、Web サービスを Web サーバーにデプロイする準備は万全です。「Data Project Explorer (データ・プロジェクト・エクスプローラー)」で、「StatusUpdates」Web サービスを右クリックして、表示されるメニューから「Build and deploy (ビルドおよびデプロイ)」を選択してください。この操作によって開かれた「Deploy Web Service (Web サービスのデプロイ)」ウィザードの画面で、「Server (サーバー)」ラジオ・ボタンを選択し、ドロップダウン・リストから「IBM WASCE v2.1 Server at localhost (localhost の IBM WASCE v2.1 Server)」を選択します。「Register database connection with Web server (Web サーバーとのデータベース接続の登録)」にチェック・マークが付いていること、そしてメッセージ・プロトコルとして「REST (Web access) (REST (Web アクセス))」および「SOAP over HTTP (HTTP を介した SOAP)」の両方にチェック・マークが付いていることを確認してください。この作業が済んだら、選択した内容が図 26 に示すとおりであることを確認した上で、「Finish (終了)」ボタンをクリックして Web サービスをデプロイします。

図 26. 「Deploy Web Service (Web サービスのデプロイ)」ダイアログ
「Deploy Web Service (Web サービスのデプロイ)」ダイアログのスクリーン・キャプチャー

デプロイメントで選択された値は以下のとおりです。

  • 「Web server (Web サーバー)」セクションの「Type (タイプ)」: 「WebSphere Application Server Community Edition, version 2 (all releases) (WebSphere Application Server Community Edition バージョン 2 (すべてのリリース))」
  • 「Web server (Web サーバー)」セクションの「Server (サーバー)」: 「IBM WASCE v2.1 Server at localhost (localhost の IBM WASCE v2.1 Server)」
  • 「Data handler (データ・ハンドラー)」セクションの「Data handler (データ・ハンドラー)」: 「JDBC」
  • 「Data handler (データ・ハンドラー)」セクションの「Register database connection with Web server (Web サーバーとのデータベース接続の登録)」: 選択
  • 「Message protocols (メッセージ・プロトコル)」セクションの「REST (Web access) (REST (Web アクセス))」: 選択
  • 「Message protocols (メッセージ・プロトコル)」セクションの「SOAP over HTTP (HTTP を介した SOAP)」:選択
  • 「Parameters (パラメーター)」セクションの「Name (名前)」: 「artifact.contextRoot」、「Value (値)」: 「MicroblogStatusUpdates」
  • 「Parameters (パラメーター)」セクションの「Name (名前)」: 「artifact.soapEngine」、「Value (値)」: 「APACHE_AXIS_1_4」
  • 「Parameters (パラメーター)」セクションの「Name (名前)」: 「artifact.soapEngineDirectory」、「Value (値)」: 「<Use .jar files installed on Web server> (<Web サーバー上にインストールされた .jar ファイルを使用する> )」

おめでとうございます。エラー・メッセージが何も表示されないということは、Web サービスのデプロイに成功したということです!次のセクションでは、この Web サービスが期待通りに機能することを確認します。Web サービスをデプロイする際に問題が発生した場合には、SQL スクリプトとストアード・プロシージャーで正しいスキーマ名が使用されていることを確認してください。この 2 つで誤ったスキーマ名が使用されていることが、デプロイメントの失敗の原因として最もよくありがちだからです。


マイクロブロギング Web サービスのテスト

Web サービスがデプロイされた今、この Web サービスの機能をテストしてみます。Data Studio には、Web サービスをテストするためのユーティリティーが組み込まれていますが、このセクションでは Web ブラウザーを使用して Web サービスが機能することを確認します。テストの手段として Web ブラウザーを使用する第 1 の理由は、連載の第 2 回ではこれらの Web サービスに Adobe Flex から接続するので、絶対確実に Data Studio の外部から API を実行できなければならないためです。

私は XML データを表示するには Firefox が最も有効に機能すると思うので、可能であれば Firefox を使用することをお薦めします。他のブラウザーでは、データが少し崩れて表示される場合や、表示する前にデータをディスクにダウンロードしなければならない場合があります。まず、デプロイされた Web サービスの URL として、 http://localhost:8080/MicroblogStatusUpdates/rest/StatusUpdates/getAllUpdates までナビゲートします。

Web サービスが正常に機能していれば、図 27 のようなレスポンスを受け取ります。

図 27. Web サービスの「getAllUpdates」メソッドからのレスポンス
Web サービスの「getAllUpdates」メソッドからのレスポンスのスクリーン・キャプチャー

今度はデータを挿入するためのもう一方のメソッドを試してみます。URL として http://localhost:8080/MicroblogStatusUpdates/rest/StatusUpdates/insertUpdate?C_TEXT=It%20Works!&C_DISPLAY=true と入力してください。これによって、図 28 のようなレスポンスが返されます。

図 28. Web サービスの「insertUpdate」メソッドからのレスポンス
Web サービスの「insertUpdate」メソッドからのレスポンスのスクリーン・キャプチャー

getAllUpdates」メソッドの URL に再度ナビゲートして、行が実際に挿入されていることを確認してください。入力した行の要素は、レスポンスの最後に表示されます。すべてが適切に機能していれば、これで完了です。完全に機能する Web サービスを作成することができました。


まとめ

この連載第 1 回目の記事では IBM DB2 pureXML と Web サービスについて説明した後、DB2 Express-C をインストールして、サンプル・マイクロブロギング・アプリケーション用のデータベースを作成しました。データベースの作成に続いて説明したのは、SQL 文、SQL/XML 文、XQuery 文のそれぞれを使って DB2 データベース内の XML データを操作する方法です。記事の後半では、WebSphere Application Server Community Edition と IBM Data Studio をインストールし、status_updates 表のデータにアクセスして新しいデータを追加するための SQL スクリプトとストアード・プロシージャーを作成しました。そして作成したスクリプトとストアード・プロシージャーを Web サービスで公開する方法、そしてその Web サービスを Community Edition (WASCE) サーバーにデプロイする方法を説明し、最後に Web ブラウザーで RESTful な HTTP の GET リクエストによってメソッドをテストしました。

第 2 回では今回学んだ内容を土台に、Adobe Flex で魅力的なユーザー・インターフェース・フロントエンドを作成し、この記事で作成した Web サービスを使用します。Flex SDK のインストール方法からユーザー・インターフェースとバックエンド・コードの開発方法に至るまで、Flex アプリケーションを稼働させて Web サービスからデータを取得するために必要なすべての知識を学ぶ予定です。

参考文献

学ぶために

製品や技術を入手するために

  • DB2 Express-C: 無料版の IBM DB2 データベース・サーバーを入手してください。中小企業にとって理想的なアプリケーション開発の基礎となります。
  • WebSphere Application Server Community Edition: Apache Geronimo 技術をベースに作成されたこの軽量の Java EE アプリケーション・サーバーをダウンロードしてください。
  • IBM Data Studio: この記事で使用した IBM Data Server の IDE パッケージを入手してください。このパッケージには、データベース開発および管理に必要な基本ツールがすべて含まれています。
  • IBM 製品の評価版: DB2、Lotus、Rational、Tivoli、および WebSphere のアプリケーション開発ツールとミドルウェア製品を体験するには、評価版をダウンロードするか、IBM SOA Sandbox のオンライン試用版を試してみてください。

議論するために

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML, Information Management, Open source
ArticleID=445321
ArticleTitle=Flex マイクロブロギング・アプリケーションで pureXML を利用する: 第 1 回 DB2 pureXML を使って Web サービスを機能させる
publish-date=02232012