特集:効率的なデータベース開発の実践

DBアクセス用のXML Webサービスとは?

初音玲
2009/02/06

 業務システム構築にデータベース(以下、DB)アクセスは欠かせないが、筆者の場合、WebアプリケーションやWindowsアプリケーションからRDBMSを直接使うのではなく、間にXML Webサービスを挟んで使うような構成を提案するように心掛けている。

 例えば、図1のような構成である。本稿ではこのようなXML Webサービスを活用したDBアクセスの実装について解説する。

図1 XML Webサービスを中核に置いたシステム構成例
DB=データベース。FW=ファイアウォール。アプリ=アプリケーション。

 このような構成によりDBアクセスをXML Webサービスで一元管理すれば、次のような利点が生まれる。

  • DBとの接続に必要なミドルウェアの設定がXML Webサービスのサーバだけに限られるため、導入の手間も少なくて済む

  • DBアクセス・ロジックをXML Webサービスに集約することで、想定外のDBアクセス・コードを除外できる

  • UI(ユーザー・インターフェイス)部分を除外した形で実装することになるので、ロジック部分が明確になる(MVC(モデル/ビュー/コントロール)分離に近い形)

  • XML Webサービス部分の構築に比較的スキルの高い人員を配置することで、開発プロジェクト全体の人員最適化が行いやすい

  • (.NETでは)XML Webサービスの使い方は、通常のメソッド呼び出しとほぼ同じになるため、関数に対して単体テストを行う要領でXML Webサービスのテストが行え、DBアクセス回りのTDD(Test Driven Development:テスト駆動開発)が行いやすい

 また、クライアントから直接DBへアクセスする際には、パフォーマンス向上を狙ってストアド・プロシージャがよく利用されるが、DBアクセスを行うXML Webサービス(以下、DBアクセスXML Webサービス)でもストアド・プロシージャと同様のパフォーマンス向上の効果が見込まれる。XML Webサービスの特徴として「HTTPプロトコル経由でメッセージ転送を行うため、送受信するデータ量が多いと速度的な問題が生じる」という欠点がよく挙げられるが、パフォーマンス改善効果により転送データ量も最適化されるので、実際に速度的な問題が発生することはあまりないだろう。

 なお、本稿で取り扱うXML WebサービスはSOAP(Simple Object Access Protocol)形式である(SOAPについては「SOAPの正体、その目論見」を参照してほしい。ちなみにSOAP形式以外では、より汎用的でシンプルなREST(Representational State Transfer)形式などがある)。また本稿では、XML WebサービスをASP.NET Webサービスとして構築する(もちろんWCFサービスで同様のことが行える)。

 DBはOracle Databaseを利用する(もちろん、本稿の考え方はSQL Serverに対しても適用可能だ)。本稿で利用している開発環境はVisual Studio 2008であるが、以降の説明は基本的にVisual Studio 2005以降を利用することを想定している。開発言語はVB(Visual Basic)とする。

 本稿の前半では、ASP.NET Webサービスの基本的な開発方法や単体テストの方法を紹介し、後半で本稿の目的であるDBアクセスXML Webサービスを開発する手順を説明する。


 INDEX
  [特集]効率的なデータベース開発の実践
  DBアクセス用のXML Webサービスとは?
  1.DBアクセス用のXML Webサービス
    2.XML Webサービスの作成
    3.XML Webサービスの単体テストの実行
    4.XML WebサービスのWebメソッドへのパラメータの考察
    5.DBアクセスXML Webサービスを作成する
    6.DBアクセスXML Webサービスを使ってみる

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

.NET開発者中心に生まれ変わりました

.NET開発者中心コーナー

- PR -

@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH