本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
はじめに
最近の業界はサービス指向アーキテクチャ(SOA:Service‐Oriented Architecture)の話題で活気づいているようです。ITグループは情報の流れを実用的なビジネスプロセスモデルの方向へ転換しようとしており、これはデータ供給のしくみが標準化されつつあることを意味します。ここで、標準と呼ばれるものは数知れずありますが、SOAPにかなり勢いがあるように見えます。なお、SOAPは当初、ある別の頭字語を表していました。
柔軟なデータ供給の実現ということの中には、ユーザーが手慣れた方法で簡単にデータを消費でき、それが何よりもユーザーにとって有益であるという意味合いが含まれています。しかし、こうした基準は主観的なものであり、ユーザーや状況が違えば変化します。Microsoft Officeユーザーにデータを供給し、なおかつ、おそらくプラットフォームも異なるであろう専門的なアプリケーション開発者の要求も満たすためにはどうすればよいのでしょう。ユーザーがそれぞれの目的にかなった方法でデータにアクセスできるようにするためには、ユーザーの種類ごとにある種のラッパーやアダプターを提供する必要があるのでしょうか。
答えは、この種の多消費者型の順応性を備えた柔軟な標準を使うことです。幸い、SOAPはまさにその目的をかなえてくれます。Microsoft Officeアプリケーションで社内データにアクセスすることを求められている人々も、統一された標準的なアプリケーションを自分たちで構築しようと考えている人々も、データのプロバイダに個別的な要件を課すことなくそれぞれの目的を実現できます。これは今日の業界が求めているメンテナンスコストの低い順応性を実現するものでもあります。本稿の目的はSOAまたはSOAP自体のメリットや実装を論ずることではなく、それらの原理を現実に即して適用する方法を具体的に説明することにあります。
以前、MicrosoftはWebサービスの統合を促進するために、SOAPツールキットだけでなく、Microsoft Office用のWeb Services Toolkitも提供していました。基本的にどのドキュメントでもWebサービスのデータを利用するには、かなり多くのVBAコードを書く必要がありました。しかし、Microsoft Office 2007とVisual Studio 2008が.NET Framework 3.5と共に登場した時点で、その提供は終了しました。SOAPデータにアクセスするしくみをOfficeドキュメントに組み込む標準的な方法として.NETによる統合が利用されることになったからです。これによって、SOAPソースから取り出したデータを一定の管理された方法で簡単に統合することが可能となります。
本稿では、SQL Anywhere 10データベース内からSOAP/DISH Webサービスを作成し、そのWebサービスからデータを取得するコードが書かれたMicrosoft Excelワークブックを作成し、さらに、そのデータを取得するコードが書かれたMicrosoft Wordドキュメントを作成するまでの手順を具体的に説明します。ここではSQL Anywhere 10のデモデータベースを利用し、'Customer'テーブルからデータを取り出します。
概要
データに関するクライアント側の需要は拡大する一方であり、その需要を何とか満たすために、統一されたデータアクセス手法というものが重要視されるようになっています。SOAPは、クライアントのプラットフォームや目的とは関係なく、データにアクセスすることだけに的を絞ったプロトコルです。このプロトコルは、Microsoft Office 2007ユーザーもアプリケーション開発者も等しくデータにアクセスできるという高い自由度を備えています。本稿では、SQL Anywhereを使用してデータベース駆動型のWebサービスを作成し、SOAP要求を受け取って応答する方法を説明します。さらに、ExcelとWord 2007からデータにアクセスする手順も示します。具体的にはサンプルのクライアントデータを使用してExcelワークシートとWordドキュメントにデータを読み込みます。本稿を読むためにはWebサービスやサービス指向アーキテクチャの概念を熟知していることが望まれますが、その専門家である必要はありません。ただし、Office/C#プログラミングの経験がある読者を対象としています。
要件
- Microsoft Visual Studio 2008
- Microsoft Office Excel 2007
- Microsoft Office Word 2007
- SQL Anywhere 10