レベル: 中級 Xiao Feng Zhao, Staff Software Engineer, IBM Qiang Wang, Staff Software Engineer, IBM Susan Malaika, Senior Technical Staff Member, IBM Keith Wells, Senior Software Engineer, IBM
2008年 12月 19日 フォーム開発を後押しする XFG (XML Forms Generator) は、XHTML 文書に XForms マークアップを組み込んだ機能的で妥当性のあるフォームを素早く、自動的に生成します。フォームを生成するための入力は、XML データ・インスタンス (XML Schema を伴う場合とそうでない場合) にすることも、WSDL 文書にすることもできます。SQL スクリプトとストアード・プロシージャーをベースとする Data Web Services は、従来の Web Services のデータベース関連アプリケーションですが、この Data Web Services をデータベースとの直接接続によって視覚的に生成できるようにするクライアント・ツールが、IBM® Data Studio です。この Data Studio と XFG とを統合すれば、Data Studio によって生成された Data Web Services から XForm/XHTML を生成することが可能になります。この統合によって、UI ページ開発とデータ・アクセス開発のシームレスな結合、Data Web Services から UI を開発する際のワークロードの軽減、そして検証が完全にサポートされた pureXML™ UI 開発の視覚化などのメリットがもたらされます。
XForms と XML Forms Generator
 |
よく使われる頭字語
- HTML: Hypertext Markup Language
- HTTP: Hyper Text Transfer Protocol
- REST: REpresentational State Transfer
- SOAP: Simple Object Access Protocol
- UI: User Interface
- W3C: World Wide Web Consortium
- WSDL: Web Services Description Language
- XHTML: Extensible Hypertext Markup Language
- XML: Extensible Markup Language
|
|
XForms は、フォーム・データの表示と収集のために W3C によって開発された標準です。W3C 勧告で述べられているように (「参考文献」を参照)、XForms は「Web のための次世代のフォーム」となるように意図されています。この勧告の宣言によると、「従来の XHTML フォームを XForms モデル、インスタンス・データ、そしてユーザー・インターフェースの 3 つの部分に分割することで、フォームのコンテンツからプレゼンテーションを分離し、再利用を可能にし、強い型付けを行います。これによって、サーバーとやりとりする回数を減らすとともに、機器への依存性を低くし、スクリプト作成の必要性を減らします」。XForms 文書に備わったデータ・モデルには、1 つ以上の XML インスタンス文書が含まれます。フォームはこれらの XML インスタンス文書を操作して、バックエンド・システムへの送信を可能にします。
XML Forms Generator は、フォーム開発を後押しするツールです。このツールは、XHTML 文書に XForms マークアップを組み込んだ機能的で妥当性のあるフォームを素早く、自動的に生成します (この記事では、XHTML 文書と XForms マークアップの組み合わせを「XHTML/XForm」と呼びます)。フォームを生成するための入力は、XML データ・インスタンス (XML Schema を伴う場合とそうでない場合) にすることも、WSDL 文書にすることもできます。
XML Forms Generator はオープンソースの Eclipse ワークベンチのプラグインとして、2005年4月に alphaWorks に初めてリリースされました。Eclipse ワークベンチのダウンロード・サイトへのリンクについては、「参考文献」を参照してください。同じく「参考文献」に記載されている alphaWorks ページの XML Forms Generator のへのリンクでは、このツールについて学べるとともに、ツールをダウンロードしてインストールすることができます。
Data Studio と Data Web Services
IBM Data Studio は統合データ管理環境として、データベース・オブジェクト、クエリー、データベース・ロジック、そして pureQuery アプリケーションを作成するための完全な開発環境およびテスト環境を提供します。Data Studio のツールでは、SQL および XQuery 用に統合されたクエリー・エディターを使って短時間でデータベース・アプリケーションを開発できるだけでなく、アプリケーションとクエリーを手軽に最適化することも、対話型ルーチン・デバッガーで (Java™ コードおよび SQL の) ストアード・プロシージャーを作成およびテストすることもできます。また、Java アプリケーション内部の SQL を素早く開発、あるいはカスタマイズできるようにもなります。
IBM Data Studio ソリューションに組み込まれている多くの新機能の 1 つに、Data Web Services のサポート機能があります。Data Web Services は、IBM データベース・サーバーのための次世代の Web サービス・プロバイダーで、REST スタイルのサービス (HTTP の GET/POST バインディング)、SOAP over HTTP Web サービス、自動 WSDL 生成をサポートする完全な Web サービス・インターフェースを提供します。Data Web Services は IBM DB2® データベース・ファミリー、IBM IDS (Informix® Dynamic Server) の他、よく使用されている Web サーバーの大多数をサポートします (Apache Tomcat v5.5、IBM WebSphere® Application Server V6.1、IBM WebSphere Application Server Community Edition V1.1 など)。Data Studio を使用して Data Web Services を作成する方法についての詳細を学ぶには、公開されている developerWorks の記事を読んでください (「参考文献」を参照)。
XFG を Data Studio に統合する理由
Data Studio はデータベース層とミドルウェア層での Data Web Services 開発を大幅に簡易化します。一方、XFG は WSDL ファイルからフォームを生成することによって、XForms ベースの UI 開発を効率化します。したがって、XFG を Data Studio に統合すれば、Data Studio と XFG 両方の機能を利用する包括的なソリューションを作成して、データベース開発、Web サービス開発、および XForms ベースの UI 開発全般にわたってプロセスを自動化および迅速化することができます。
XFG と Data Studio との統合によってもたらされる明らかな価値には、以下のものがあります。
- XFG は、Data Studio でのデータベース・プロジェクトにとって、迅速なプロトタイプ化ツールおよび XML メッセージのビジュアライザーになります。
- XFG は、迅速な UI 開発によって Data Studio を補完します。
- XFG は、DB2 pureXML データを XHTML/XForm に可視化することができます。
- XFG は、データベースのメタデータおよび XML Schema から検証情報を生成します。
- 統合によって、開発のワークロードを減らすことができると同時に、ユーザー・エクスペリエンスを大幅に改善することができます。
XFG と Data Studio はどちらも Eclipse プラグインであることが、統合を容易にしています。XFG を簡単に Data Studio に統合できるようにするには、更新サイトから XFG プラグインをダウンロードして Eclipse にインストールしてください (XML Forms Generator については「参考文献」を参照)。
XFG と Data Studio が連動する仕組み
このセクションでは、XFG と Data Studio が連動して Web アプリケーションを作成する仕組みを説明します。図 1 に、XFG と Data Studio によって構成されるアーキテクチャーとこの両者の間の相互作用を示します。
図 1. Data Studio と XFG によって構成されるアーキテクチャーおよび相互作用
相互作用のフローでは、まず Data Studio がデータベースのメタデータから Data Web Services を生成します。すると、XFG は生成された Data Web Services とデータベース両方のメタデータを利用して XHTML/XForm を生成します。生成された XHTML/XForm は、最終的に REST/SOAP を介して Data Web Services と通信します。
Data Studio と XFG が連動する仕組みについて段階を追って詳しく説明するため、これから以下の表に記載した構成に基づく小規模な患者情報管理アプリケーションを作成します。
| 列名 | 列の型 | 必須かどうか | 内容 |
|---|
| ID | INTEGER | 必須 | テーブルに挿入された各レコードに固有の ID |
|---|
| NAME | VARCHAR(10) | 必須 | 各患者の名前 |
|---|
| BIRTHDAY | DATE | 必須 | 各患者の誕生日 |
|---|
| HEIGHT | DECIMAL | 必須 | 各患者の身長 |
|---|
| WEIGHT | DECIMAL | 必須 | 各患者の体重 |
|---|
| DESCRIPTION | VARCHAR(10) | 必須 | 各患者についての簡単な説明 |
|---|
この例を実行してみるには、無料の DB2 Express-C をダウンロードしてください (ダウンロード・サイトについては「参考文献」を参照)。DB2 Control Center を使用してデータベースを作成してから、図 2 の説明に合うように表を作成します。この記事では、スキーマに「DB2ADMIN」を使用して「PATIENT」という名前の表を作成しました。
Data Web Services を作成する
DB2 で表を作成した後、私たちは Data Studio を使用して Data Web Services を作成しました。そのために、Data Studio では Web サービスを定義するために作成された SQL を使用します (この記事のように SQL ステートメントを単独で作成するか、ストアード・プロシージャーを作成してください)。SQL ステートメントを使用して、Data Web Services の WSDL ですべてのパラメーターを入力パラメーターにマッピングします。Data Studio と XFG は両方とも、無名パラメーターと名前付きパラメーターという 2 つのパラメーター・スタイルをサポートします。
無名パラメーターを使用した場合の SQL ステートメントは以下のようになります。
INSERT INTO DB2ADMIN.PATIENT (NAME, BIRTHDAY, HEIGHT, WEIGHT, DESCRIPTION) VALUES (?,?,?,?,?)
このように、値は変数プレースホルダー (?,?,?,?,?) によって表されます。
名前付きパラメーターを使用する場合には、SQL ステートメントには以下のように、挿入される値を保持する名前付き変数のリストを使用します。
INSERT INTO DB2ADMIN.PATIENT (NAME, BIRTHDAY, HEIGHT, WEIGHT, DESCRIPTION) VALUES (:NAME, :BIRTHDAY, :HEIGHT, :WEIGHT, :DESCRIPTION)
名前付きパラメーターの場合、生成される XHTML/XForm 内での各ラベルは、それぞれに対応するパラメーター名と同じになります。一方、無名パラメーターの場合には、各ラベルには p1、p2 といった具合に名前が割り当てられます。ここでは、このプロセス全体については説明しません。SQL ファイルから Data Web Services を作成する方法を調べるには、「参考文献」を参照してください。この記事のサンプルでは、insertPatient.sql という名前の SQLファイルを作成した後、対応するサービスを作成し、WSDL ファイル insertPatient.wsdl を生成しました。
XHTML/XForm を生成する
Data Studio でサービスを作成してデプロイしたら、今度は XFG を使用して、サービスと通信するための XHTML/XForm とそれに対応する XML ファイルを生成することができます。
- XFG で insertPatient.wsdl ファイルを選択し、この WSDL ファイルを右クリックして XForms Generator メニュー項目から Generate XHTML/XForms ウィザードを選択します。図 2 に、このウィザードの最初のステップを示します。
図 2. XFG のウィザードによる最初のステップ
このステップでは、基礎となるデータベースに接続するためのユーザー名とパスワードが必要です。「Generate validation information (妥当性検査情報を生成する)」オプションと「Retrieve PureXML instance from Database (データベースから PureXML インスタンスを取得する)」オプションは、どちらも DB2 での pureXML サポートで使用します。この 2 つのオプションについては連載第 2 回の記事で説明するので、今回はチェック・ボックスのチェック・マークを外したままにしておいてください。
- XFG によるフォーム生成の操作を選択します。ここでは、insertPatient 操作を選択してください。
図 3 ターゲット操作の選択
- 生成された XHTML ファイルを配置する場所を指定します。
図 4. ターゲット・ファイルの場所の指定
- 図 5 で強調表示されているサブミット・ターゲットを、デプロイした Web サービスのエンドポイントに変更します。エンドポイント (点線の枠を参照) が正しく設定されていない限り、生成された XHTML/XForm は Web サービスと通信することができません。
図 5. 出力文書のカスタマイズ
- XML インスタンスの作成オプションを図 6 のように構成します。
図 6. XML インスタンスの作成に合わせたオプションの選択
- XML インスタンス・ファイルを配置する場所を入力するか、選択します。
図 7. XML ファイルの場所の指定
- XML スキーマ・ファイルの場所を指定します。
図 8. スキーマ・ファイルの場所の指定
- 最後に Finish をクリックして XHTML/XForm を生成します。生成された XHTML ファイルの名前は、insertPatient.xhtml となります。
リスト 1 を見るとわかるように、insertPatient.xhtml には XFG によって XForms モデルおよび関連するバインド属性が生成されます (リスト 1 の拡大版を参照)。XForms モデルには、XFG がデータの制約を XForms バインド属性として生成します。これらの属性はデータベース・メタデータ (列の型、長さ、必須かどうかなど) に対応します。
リスト 1. 生成された XForms モデルとバインド属性
insertPatient.xhtml を Firefox で表示すると、図 9 の画面になります (図 9 の拡大版を参照)。
図 9. Firefox ブラウザーでの insertPatient XHTML/XForm の表示
insertPatient.xhtml をレンダリングして表示される画面からは、以下のことがわかります。
- すべての必須フィールドの後には、赤いアスタリスクが付きます。DESCRIPTION フィールドを除くすべてのフィールドは必須フィールドです。
- 誤った値を入力すると、ユーザーに検証エラーをアラートするために該当箇所のラベル表示が赤に変わります。図 9 では、10 進数でなければならない「HEIGHT」に、ストリング値が入力されています (図 9 をカラー表示で見ていれば、ラベルが赤くなっていることがわかるはずです)。
- ※訳注: 上記段落の「図 9」は、原文では「Figure 5」となっておりますが、「Figure 9」の誤りのようなので、「図 9」と訳してあります。
- このフォームのすべてのフィールドには、ヒントとなるメッセージがあります。上記の図では、「HEIGHT is (decimal, REQUIRED)」というメッセージが表示されています。
- フィールドの型が日付型やブール型のフィールド、または特殊なウィジェットによって仮想フィールドにすることができるその他のフィールドについては、値を編集するときに、対応するウィジェットが値フィールドに表示されます。例えば、日付型のフィールドにはデートピッカー、ブール型のフィールドにはチェックボックスが表示されるといった具合です。
insertPatient.xhtml を使用すれば、フォームをサブミットするという方法で Web サービスと通信することが可能です。Web サービスは前に記載した SQL INSERT ステートメントを呼び出し、フォームの値で構成される行を表に挿入します。バックエンドのデータベース表にアクセスして、表の内容を確認してください。対応するレコードが正常に表に追加されていることがわかるはずです。
まとめ
この記事では、XForms, XForms Generator、Data Studio、Data Web Services を概説した後、XFG を Data Studio に統合する理由について説明しました。続いて、XFG が Data Studio と連動して、完全なデータ・サービス・ソリューションを作成するためのシームレスな方法をエンド・ユーザーに提供する仕組みを説明しました。この連載の第 2 回では、XFG での DB2 pureXML サポートについて要点をまとめます。pureXML インスタンスに対応する登録済みの XML スキーマを利用して、XFG と Data Studio との統合によって pureXML インスタンスを XHTML/XForm に表示する方法を学んでください。
参考文献 学ぶために
製品や技術を入手するために
- Web Tools Platform (WTP) Project: Eclipse の WTP プロジェクトを入手して、Eclipse プラットフォームを Web および Java EE アプリケーションの開発用ツールで拡張してください。このプロジェクトには、開発を容易にする各種言語に対応したソースとグラフィカル・エディター、ウィザード、組み込みアプリケーション、そしてアプリケーションのデプロイメント、実行、テストをサポートするツールと API が含まれています。
- DB2 Express-C:DB2 Express 9 データベース・サーバーの試用版を無料でダウンロードしてください。
- DB2 for Linux™, UNIX™, and Windows: DB2 のハイパフォーマンスと使い易さ、そして自己記述的な XML の利点を兼ね備えた対話型データ・サーバーの無料試用版をダウンロードしてください。
- alphaWorks の XML Forms Generator: 標準ベースのデータ駆動型 Eclipse プラグインをダウンロードしてください。このプラグインは、XML データ・インスタンスまたは WSDL 文書から、XHTML 文書に XForms マークアップを組み込んだ機能的フォームを生成します。
- IBM Data Studio: 統合データベース開発環境の無料試用版をダウンロードしてください。データ・アクセスの効率性とパフォーマンスを向上させるこの環境では、アプリケーションを素早く設計、開発、デプロイメントできます。
- IBM 製品評価用試用版ソフトウェア: developerWorks から直接ダウンロードできる試用版ソフトウェアで、次のプロジェクトを構築してください。DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® によるアプリケーション開発ツールおよびミドルウェア製品の試用版が揃っています。
議論するために
著者について  | 
|  | Xiao Feng Zhao は、China Software Development Laboratory の China Emerging Technology Institute に勤務するスタッフ・ソフトウェア・エンジニアです。IBM インキュベーター・プロジェクトを専門とする彼は、Web 2.0、SOA、J2EE、そして Web 技術に関心を持っています。現在取り組んでいるのは、Ajax および SOA 標準に対応した PoCs 開発です。 |
 | 
|  | Qiang Wang は、China Software Development Laboratory の China Emerging Technology Institute でテクニカル・リーダーを務めています。専門は、IBM インキュベーター・プロジェクトと SOA 関連のトピックです。彼が関心を持っている分野には、J2EE、SOA、MDA/MDD、AOP、RUP、そしてプロジェクト管理があります。現在は、産業関連の SOA ソリューションのリーダーとして活躍しています。 |
 | 
|  | Susan Malaika は (IBM Software Group の一部である) IBM Information Management Groupのシニア・テクニカル・スタッフです。専門分野は XML、Web、データベースであり、Global Grid Forum ではグリッド環境でデータをサポートする標準を開発しました。彼女は IBM 製品のソフトウェア開発者としての経験の他に、インターネット・スペシャリスト、データ・アナリスト、アプリケーションの設計者および開発者としての経験もあります。また Web に関する共著作があり、トランザクション処理や XML に関する記事も執筆しています。彼女は IBM Academy of Technology の一員でもあります。 |
 | 
|  | Keith Wells は、ノースカロライナ州リサーチ・トライアングル・パークにある IBM のソフトウェア・エンジニアです。この数年間、Emerging Technologies および Emerging Technologies Toolkit に取り組んできました。彼は現在、合成文書、モデル駆動開発、ソフトウェア標準、XML ベース技術でのさまざまな可能性を調査しています。 |
記事の評価
|