第4回 Webサービス・プロバイダを作ろう(前編)
連載もいよいよ大詰め。最後のテーマ「Webサービス・プロバイダ」の作成だ。データベースを利用したWebサービス・プロバイダも簡単に作れることが実感できるだろう。(編集局)
中林 紀彦
日本アイ・ビー・エム株式会社
2003/3/5
第3回では、Webサービスを利用するアプリケーション(Webサービス・クライアント)の作成方法を紹介しました。そこで、今回はWebサービスを提供するアプリケーション(Webサービス・プロバイダ)の作成手順を解説します。
前回はサービス利用者側の話をしましたが、今回はサービスを提供する側の話です。サービスの提供者(Webサービス・プロバイダ)は、サービスを作成してUDDIレジストリに登録するか、WSDLを利用者に公開します()。利用者はUDDIレジストリやWSDLから利用できるサービスを探し、SOAPを使って提供者にリクエストします。最後に、提供者はリクエストに基づき、SOAPを使って利用者にサービスを提供します。
図1 Webサービスの構成(再掲) |
データベースの準備
今回は、気象情報をWebサービスで提供するアプリケーションを作成していきます。
まず、気象情報を格納するデータベースを準備します。このデータベースは、日付別・都道府県別の気象情報を持つテーブル(weather)と、天気の画像データを持つテーブル(weather_img)で構成します。
データベース:weather
|
|||||||||||||||||||||||||||||||||||||||||||||
|
■データベース、テーブル、インデックスの作成
では、上記の仕様を満たすデータベースを作成しましょう。まず、以下のようなDDLファイルを用意します。
CREATE DATABASE WEATHER; |
create_db_weather.ddl |
このDDLファイルを使って、DB2のインスタンス・ユーザー(この連載ではdb2inst1)でデータベースを作成します。
$ db2 -tvf create_db_weather.ddl |
データベースを作成したら、次はテーブルです。以下のようなDDLファイルを用意します。
CONNECT TO weather; |
create_tb_weather.ddl |
DB2コマンドを実行し、テーブルを作成します。
$ db2 -tvf create_tb_weather.ddl |
以上で、データベースの中に2つのテーブルが作成されます。
■データの挿入
テーブルを用意したら、中に入れるデータを準備します。以下のような、日付別・都道府県別気象情報テーブル(weather)用のCSVファイルと、天気画像テーブル(weather_img)用のCSVおよび画像ファイルを用意します。
2003-02-25,東京都,曇り |
weather.csv |
晴れ,1.gif |
weather_img.csv |
気象情報テーブル用データの日付は、データを取り出すときに「CURRENT DATE」で今日の日付を、「date(days(CURRENT DATE) + 1)」で明日の日付のデータを取り出すので、適宜変更してください。また、都道府県と天候についても好みに応じて変更してください。
天気画像については、インターネットでフリーの画像ファイルを探してみるといいでしょう。今回は、IILdotJP(http://www.iil.jp/)の天気アイコンを利用させていただきました。また、weather_img.csv中の画像ファイル名は適宜修正してください。
画像ファイルを扱う際のポイントは、weather_imgテーブルのBLOB型(注)のサイズを画像のファイルサイズ以上にすることです。
注:BLOB型については http://www.db2.jp/db2manual/ja_JP/index.htm?openup=admin/r0008472.htm を参照ください。 |
データをインポートするために以下のDDLファイルを用意します。
CONNECT TO weather; |
import_weather.ddl |
CONNECT TO weather; |
import_img.ddl |
画像ファイルのPATH(下線部分)は環境に合わせて修正してください。ディレクトリを指定する際、最後に「/」がないとエラーになるので気を付けましょう。また、画像ファイルがないか、PATHが間違っていても正常に終了したように見えるので注意する必要があります。
では、weatherテーブルへデータをインポートします。
$ db2 -tvf import_weather.ddl |
次に、weather_imgテーブルへデータをインポートします。
$ db2 -tvf import_img.ddl |
うまくインポートできたでしょうか? 確認のため、簡単なSQLを用意してデータをチェックしてみましょう。以下のtest.sqlファイルを作成して、db2コマンドを実行します。
connect to weather; |
test.sql |
$ db2 -tvf test.sql |
BLOB型の画像データも含めて、以下のように見えれば成功です。
2003-02-25 群馬県 曇り 曇り x'4
749 |
1/2
|
|
||||
|
連載 Kylix 3とDB2で作るWebサービス・アプリ |
Linux Squareフォーラム プログラミング関連記事 |
特集:オブジェクト指向に生まれ変わるPHP5[前編] 現在開発中のPHP5は、オブジェクト指向機能が大幅に強化される。次世代PHPはどのような言語になるのか? |
|
特集:Windows開発者に贈る
Kylixの全貌 注目の開発環境「Borland Kylix」がいよいよ見えてきた。ここに、英語版の発売を目前に控えたKylixの機能やアーキテクチャを紹介しよう |
|
特集:Kylixプログラミング作法 GUIの構築やコンポーネントとコードの関係、 Object Pascalの仕様など。 これらの点を、実際に日本語ベータ版でプログラミングしながら分かりやすく解説 |
|
連載:PHP4で作るWeb-DBシステム(全5回) PHPはWebサーバとデータベースを結びつけるものだ。そのためPHPでの開発を開始するには、OS、データベース、Webサーバ、そしてPHPと、多くのソフトウェアのインストールを行う必要がある |
|
連載:ステップ・バイ・ステップ・シェルスクリプト(全7回) Linuxの中でシェルスクリプトはネットワークの設定、デーモンの起動など重要な役割を果たしている。この連載では、シェルスクリプトで実用的なプログラムを組むことを目標にして、シェルの基本的な知識を説明する |
|
連載:Kylix
3とDB2で作るWebサービス・アプリ(全5回) Kylix 3とDB2 V8.1を使って、Webサービス・アプリを作ってみよう。トライアル版も用意されているので、実際に試しながら読んでほしい |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|