ネイティブ XML Web サービスの概要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

このトピックでは、Microsoft SQL Server のネイティブ XML Web サービスと Microsoft SQLXML を比較し、ネイティブ XML Web サービスのしくみについて説明します。また、ネイティブ XML Web サービスを使用する利点を示します。

ネイティブ XML Web サービスは、次のシナリオには適さないのでお勧めしません。

  • リアルタイム同時アクセスが非常に多く、トランザクション実行期間が短いという特性のあるアプリケーション。

  • Web ファームなどのスケールアウト。

  • 中間層の置き換えとして使用。アプリケーションのアーキテクチャの大規模なビジネス ロジックにより、中間層のコンポーネントでの処理が要求される場合。

ネイティブ XML Web サービスと SQLXML の比較

SQL Server 2005 より前のバージョンでは、SQL Server データベースへアクセスするために TDS (表形式のデータ ストリーム) を使用する必要があります。TDS は Windows ベースのデスクトップ クライアント用にサポートする必要のある専用プロトコルです。場合によっては、SQL Server クライアントでは、MDAC (Microsoft Data Access Components) を使用する必要があります。MDAC スタックは SQL Server に接続するクライアント コンピュータにインストールされます。SQL Server では、SQLXML 3.0 が SQL Server への Web ベースのアクセスをサポートする中間層コンポーネントですが、インターネット インフォメーション サービス (IIS) も使用する必要があります。

SQL Server 2005 以降では、次の図に示すように、HTTP と SOAP を組み合わせて使用することで、ネイティブ XML Web サービスによって Windows 以外の環境での代替手段が提供されます。

ネイティブ XML Web サービスと SQLXML との比較

クライアントにインストールされた MDAC も IIS の中間層に依存する SQLXML も不要になったので、SOAP と HTTP を使用するアクセスにより、より広範なクライアントから SQL Server にアクセスできます。アクセスできるクライアントには、Web ブラウザなど、既存のクライアント アプリケーションを使用する Web アプリケーション クライアントも含まれます。ネイティブ XML Web サービスを使用すると、Microsoft .NET Framework、Microsoft SOAP Toolkit、Perl、およびその他の Web 開発用のオペレーティング システムやツールセットも使用しやすくなります。

次の表に、各テクノロジで提供される機能の一部を示します。

ネイティブ XML Web サービス

Microsoft SQLXML

  • SOAP に完全に準拠したサーバー実装。SOAP 1.1 クライアントと SOAP 1.2 クライアントをサポートできます。

  • パラメータ化されたバッチの実行に対する完全サポート。

  • サーバーでの WSDL の動的生成。

  • XML テンプレート ファイルと XML スキーマ ファイル。更新可能な XML ビューをサポートします。

  • アップデートグラム。

  • XML 一括読み込み。

ネイティブ XML Web サービスのしくみ

SQL Server でネイティブ XML Web サービスを使用するには、サーバーに HTTP エンドポイントを確立する必要があります。このエンドポイントは、本質的には、HTTP ベースのクライアントからサーバーにクエリを行う際に使用されるゲートウェイです。HTTP エンドポイントが確立されると、ストアド プロシージャやユーザー定義関数を追加したり、エンドポイントのユーザーがそれらを使用可能にできます。これを行えるのは、エンドポイントの作成時か更新時です。プロシージャまたは関数が有効になると、それらは Web メソッドとして指定されます。相互に連携するようにデザインされている Web メソッドの集合を、Web サービスと呼びます。

これらの Web サービスは、WSDL フォーマットを使用して記述できます。次の図に示すように、WSDL フォーマットは SQL Server のインスタンスによって生成され、WSDL を使用できる任意の HTTP エンドポイント用に SOAP クライアントに返されます。必要な場合には、SQL Server で生成された WSDL フォーマットではなく、カスタマイズした WSDL フォーマットを使用できます。また、必要に応じて、エンドポイントを WSDL 要求に応答しないように構成できます。

ネイティブ XML Web サービスのしくみ

このようにして、SQL Server を使用できる Web サービスのコレクションを複数実装し、SOA (Service Oriented Architecture) の構築と設定に役立てることができます。詳細については、Microsoft Web サイトの MSDN オンライン ライブラリで "SOA" というキーワードで検索してください。

ネイティブ XML Web サービスを使用する利点

独自の XML Web サービスとして機能できる SQL Server のインスタンスには次の利点があります。

  • どのような Web サービス アプリケーションでも SQL Server のインスタンスにアクセス可能

    これは重要な利点です。ネイティブ XML Web サービスは XML と HTTP などのよく知られたテクノロジに基づいているので、XML を解析し HTTP 要求を送信できるデバイスであればすぐに SQL Server にアクセスできます。したがって、Windows 以外のオペレーティング システム上で実行されるアプリケーションから SQL Server に接続する必要のある異種環境でも、SQL Server に適切にアクセスできるようになります。これまでは、このような場合には JDBC (Java Database Connectivity) ドライバまたは ODBC (Open Database Connectivity) ドライバのいずれかを使用することが唯一有効な解決策でした。SQL Server のネイティブ XML Web サービスでは、これとは違う低コストの解決策が提供されます。たとえば、データベース管理者が Windows 以外のオペレーティング システムで実行される Perl で記述されたスクリプトを使用して SQL Server リソースを管理する場合には、この機能が非常に役立つ可能性があります。

  • マイクロソフトとサード パーティの両方の Web 開発ツール セットとの統合の強化

    ネイティブ XML Web サービスを使用して、SQL クエリの結果が XML 形式で返されます。SOAP や HTTP が組み込みでサポートされている Microsoft Visual Studio 2005 や JBuilder などの優れた統合開発環境 (IDE) では、定義済みのスキーマを使用することにより、SQL Server のインスタンスとの通信を抽象化するプロキシ コードの生成に、ネイティブ XML Web サービスを活用できます。ほとんどの場合、この IDE により、Web ベースのデータ アクセス向けに複数のクライアント アプリケーションから順次使用されるオブジェクトが生成および提供されます。

  • 断続的で、常時接続されないモバイル クライアント向けサポートの向上

    ネイティブ XML Web サービスを使用すると、時間や場所を問わず SQL Server のインスタンスにアクセスできるようになります。これにより、モバイル デバイスなど断続的に接続されるデバイス向けのアプリケーションを開発しやすくなります。接続が確立され、サーバーで要求が処理され始めると、TDS と SQL Server Net-Library を使用する従来のネットワーク ベースのクライアントで使用できる既存のメカニズムを使用して、そのサーバーを監視できます。

  • サーバーに組み込まれたセキュリティ対策によりファイアウォールの追加実装の必要性を軽減

    ネイティブ XML Web サービスにより、組み込みのセキュリティ レベルが Web アクセスに適用されます。一般的な Web サーバーと異なり、SQL Server 用に作成される HTTP エンドポイントでは匿名のユーザー アクセスが禁止されます。エンドポイントを作成するには、まず、そのサーバーにシステム レベルの管理特権が必要になります。また、エンドポイントで公開されるストアド メソッドは、エンドポイントの構成時にパブリックになったもののみです。