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

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サービスを使ってみる


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH