Microsoft SQL Server Analysis Services では、シン クライアント アーキテクチャがサポートされています。 Analysis Services 計算エンジンは完全にサーバー ベースであるため、すべてのクエリがサーバーで解決されます。 その結果、クエリごとにクライアントとサーバーの間のラウンド トリップが 1 回だけ必要になり、クエリの複雑さが増すにつれてスケーラブルなパフォーマンスが得られます。
Analysis Services のネイティブ プロトコルは、XML for Analysis (XML/A) です。 Analysis Services にはクライアント アプリケーション用のいくつかのデータ アクセス インターフェイスが用意されていますが、これらのコンポーネントはすべて、XML for Analysis を使用して Analysis Services のインスタンスと通信します。
さまざまなプログラミング言語をサポートするために、Analysis Services にはいくつかの異なるプロバイダーが用意されています。 プロバイダーは、TCP/IP 経由またはインターネット インフォメーション サービス (IIS) 経由で HTTP 経由で SOAP パケットで分析用 XML を送受信することで、Analysis Services サーバーと通信します。 HTTP 接続では、IIS によってインスタンス化された COM オブジェクトを使用します。これは、Analysis Services データのコンジットとして機能するデータ ポンプと呼ばれます。 データ ポンプは、HTTP ストリームに含まれる基になるデータをいかなる方法でも調べず、データ ライブラリ自体のコードで使用できる基になるデータ構造もありません。
Win32 クライアント アプリケーションは、OLE DB for OLAP インターフェイスまたは Microsoft Visual Basic® などのコンポーネント オブジェクト モデル (COM) オートメーション言語用の Microsoft® ActiveX® データ オブジェクト (ADO) オブジェクト モデルを使用して Analysis Services サーバーに接続できます。 .NET 言語でコーディングされたアプリケーションは、ADOMD.NET を使用して Analysis Services サーバーに接続できます。
既存のアプリケーションは、Analysis Services プロバイダーのいずれかを使用するだけで、変更なしで Analysis Services と通信できます。
| プログラミング言語 | データ アクセス インターフェイス |
|---|---|
| C++ | OLE DB for OLAP |
| Visual Basic 6 | ADO MD |
| .NET 言語 | ADO MD.NET |
| SOAP をサポートする言語 | 分析用 XML |
Analysis Services には、小規模および大規模の両方の組織によるデプロイ用に完全にスケーラブルな中間層を備えた Web アーキテクチャがあります。 Analysis Services では、Web サービスに対する広範な中間層のサポートが提供されます。 ASP アプリケーションは OLE DB for OLAP および ADO MD でサポートされており、ASP.NET アプリケーションは ADOMD.NET でサポートされています。 次の図に示す中間層は、多くの同時実行ユーザーに対してスケーラブルです。
クライアントと中間層の両方のアプリケーションは、プロバイダーを使用せずに Analysis Services と直接通信できます。 クライアントおよび中間層アプリケーションは、TCP/IP、HTTP、または HTTPS を介して SOAP パケットで XML for Analysis を送信できます。 クライアントは、SOAP をサポートする任意の言語を使用してコーディングできます。 この場合の通信は、HTTP を使用してインターネット インフォメーション サービス (IIS) によって最も簡単に管理されますが、TCP/IP を使用したサーバーへの直接接続もコーディングできます。 これは、Analysis Services の最も薄いクライアント ソリューションです。
表形式モードまたは SharePoint モードの Analysis Services
SQL Server 2014 では、表形式データベースおよび SharePoint サイトに発行された PowerPivot ブックの xVelocity メモリ内分析エンジン (VertiPaq) モードでサーバーを起動できます。
PowerPivot for Excel および SQL Server Data Tools (SSDT) は、SharePoint モードまたは表形式モードを使用するメモリ内データベースの作成とクエリに対応している唯一のクライアント環境です。 Excel および PowerPivot ツールを使用して作成した埋め込み PowerPivot データベースは、Excel ブック内に含まれており、Excel .xlsx ファイルの一部として保存されます。
ただし、PowerPivot ブックでは、キューブ データをブックにインポートする場合、従来のキューブに格納されているデータを使用できます。 SharePoint サイトにパブリッシュされている場合は、別の PowerPivot ブックからデータをインポートすることもできます。
注
PowerPivot ブックのデータ ソースとしてキューブを使用する場合、キューブから取得するデータは MDX クエリとして定義されます。ただし、データはフラット化されたスナップショットとしてインポートされます。 対話的にデータを操作したり、キューブからデータを更新したりすることはできません。
PowerPivot クライアントのインターフェイス
PowerPivot は、Analysis Services の確立されたインターフェイスと言語 (AMO と ADOMD.NET、MDX と XMLA) を使用して、ブック内の xVelocity メモリ内分析エンジン (VertiPaq) ストレージ エンジンと対話します。 アドイン内では、メジャーは Excel、Data Analysis Expressions (DAX) と同様の数式言語を使用して定義されます。 DAX 式は、インプロセス サーバーに送信される XMLA メッセージ内に埋め込まれます。
プロバイダー
PowerPivot と Excel の間の通信では、MSOLAP OLEDB プロバイダー (バージョン 11.0) が使用されます。 MSOLAP プロバイダー内には、クライアントとサーバーの間でメッセージを送信するために使用できる 4 つの異なるモジュール (トランスポート) があります。
TCP/IP 通常のクライアントとサーバーの接続に使用されます。
HTTP SSAS データ ポンプ サービス経由の HTTP 接続、または SharePoint PowerPivot Web サービス (WS) コンポーネントの呼び出しによって使用されます。
INPROC インプロセス エンジンへの接続に使用されます。
チャンネル SharePoint ファーム内の PowerPivot システム サービスとの通信用に予約されています。