Microsoft BizTalk Adapter for Oracle Database のアーキテクチャについて説明します。
Oracle データベース アダプターアーキテクチャの理解は、次の場合に役立ちます。
Oracle データベース アダプターと Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK の関係について説明します。
ソリューション内のデータをより適切にセキュリティで保護できるように、セキュリティ境界について理解します。
Oracle データベース アダプターのバインド プロパティについて説明します。
インストールに関する問題のトラブルシューティングを行います。
このトピックでは、Oracle データベース アダプターを使用して Oracle データベースを操作するエンド ツー エンド ソリューションのアーキテクチャと、Oracle データベース アダプターの内部アーキテクチャについても説明します。
アダプター アーキテクチャの概要
Microsoft BizTalk Adapter for Oracle Database は、Windows Communication Foundation (WCF) カスタム バインディングです。 このバインドには、Oracle データベースとの通信を可能にする 1 つのカスタム トランスポート バインド要素が含まれています。 Oracle Database アダプターは、Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK ランタイムによってラップされ、WCF チャネル アーキテクチャを介してアプリケーションに公開されます。 Oracle Database アダプターは、Oracle Data Provider for .NET (ODP.NET) と Oracle クライアントを介して Oracle データベースと通信します。このクライアントは、Windows 用 Oracle Data Access Components (ODAC) の一部です。
次の図は、Oracle Database アダプターを使用して開発されたソリューションのエンド ツー エンド アーキテクチャを示しています。
アダプターの消費
Oracle データベース アダプターは、Oracle データベースを WCF サービスとしてクライアント アプリケーションに公開します。 Oracle データベースで操作を実行し、データにアクセスするために、クライアント アプリケーションは WCF チャネルを介して Oracle Database アダプターと SOAP メッセージを交換します。 前の図は、Oracle データベース アダプターを使用できる 4 つの方法を示しています。 これらは次のとおりです。
WCFchannel モデル アプリケーションを使用します。 WCF チャネル モデル アプリケーションは、WCF チャネル モデルを使用して Oracle データベースに対して操作を実行し、ORACLE データベース アダプターと SOAP メッセージを直接交換します。 WCF チャネル モデルを使用した Oracle データベース アダプターのソリューション開発の詳細については、「WCF チャネル モデルを 使用した Oracle データベース アプリケーションの開発」を参照してください。
WCF サービス モデル アプリケーションを使用します。 WCF サービス モデル アプリケーションは、WCF クライアントでメソッドを呼び出して、Oracle データベースに対する操作を実行します。 WCF クライアントは、Oracle データベース アダプターによって公開される操作を .NET メソッドとしてモデル化します。 Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK または WCF ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用して、Oracle データベース アダプターによって公開されるメタデータから WCF クライアント クラスを作成できます。 WCF サービス モデルと Oracle データベース アダプターの詳細については、「WCF サービス モデルを使用した Oracle データベース アプリケーションの開発」を参照してください。
Microsoft BizTalk WCF-Custom アダプターを使用するように構成された BizTalk 受信場所または送信ポートを介して。 WCF-Custom アダプターを使用すると、WCF 機能拡張機能を使用できます。 WCF-Custom アダプターを使用すると、Oracle DB バインディングと受信場所または送信ポートの動作を選択して構成できます。 BizTalk Server ソリューションで Oracle データベース アダプターを使用する方法の詳細については、「 BizTalk アプリケーションの開発」を参照してください。
IIS でホストされる Web サービスを介して。 このシナリオでは、アダプターを使用して生成された WCF サービス プロキシは、標準の WCF Http バインディングを使用して IIS でホストされます。 これにより、サービス コントラクトが Web サービスとして外部ユーザーに公開されます。 IIS は実行時にアダプターを自動的にホストします。このアダプターは、Oracle データベースと通信します。
Oracle データベース アダプターと ODAC は、アダプターを使用するアプリケーションまたはサービスで常にインプロセスでホストされます。
Oracle データベース アダプターと WCF
WCF は、クライアントとサービス間のチャネルを介した SOAP メッセージの交換に基づくプログラミング モデルを提供します。 これらのメッセージは、通信しているクライアントとサービスによって公開されるエンドポイント間で送信されます。 エンドポイントは次で構成されます。
メッセージを受信する場所を指定するエンドポイント アドレス
バインディング。メッセージの交換に使用される通信プロトコルを指定します。
コントラクト。エンドポイントによって公開される操作とデータ型を指定します。
バインディングは、メッセージをエンドポイントと交換する方法を定義するために、互いに積み重ねる 1 つ以上のバインド要素で構成されます。 少なくとも、バインディングでは、エンドポイントとメッセージを交換するために使用されるトランスポートとエンコードを指定する必要があります。 エンドポイント間のメッセージ交換は、1 つ以上のチャネルで構成されるチャネル スタックを介して行われます。 各チャネルは、エンドポイント用に構成されたバインディング内のバインディング要素の 1 つの具象実装です。 WCF ドキュメントには、WCF と WCF プログラミング モデルの詳細が含まれています。
Microsoft BizTalk Adapter for Oracle Database は、WCF カスタム バインディングである Oracle DB バインディング (Microsoft.Adapters.OracleDB.OracleDBBinding) を公開します。 既定では、このバインディングには 1 つのカスタム トランスポート バインド要素である Oracle DB Adapter Binding Element (Microsoft.Adapters.OracleDB.OracleDBAdapter) が含まれています。これにより、Oracle データベースに対する操作が可能になります。
Microsoft.Adapters.OracleDB.OracleDBBinding (Oracle DB バインディング) と Microsoft.Adapters.OracleDB.OracleDBAdapter (Oracle DB アダプター バインド要素) はパブリック クラスであり、構成システムにも公開されます。 Oracle DB アダプター バインド要素はパブリックに公開されているため、Oracle データベース アダプターの機能を拡張できる独自のカスタム WCF バインドを構築できます。 たとえば、WCF チャネルまたはサービス モデル ソリューションでエンタープライズ シングル サインオン (SSO) をサポートするカスタム バインドを実装できます。 これを行う理由は、データベース操作を 1 つの多機能操作に集約するか、カスタム アプリケーションによって実装された操作と Oracle データベースに対する操作の間でスキーマ変換を実行するためです。
Oracle データベース アダプターは、Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK 上に構築され、WCF LOB アダプター SDK ランタイム上で実行されます。 WCF LOB アダプター SDK は、Oracle データベース アダプターがユーザーとアダプター クライアントに豊富な機能セットを提供するために使用するソフトウェア フレームワークとツール インフラストラクチャを提供します。
Oracle データベース アダプターと WCF LOB アダプター SDK
Microsoft BizTalk Adapter for Oracle Database は、Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK によって提供される機能を活用し、Oracle Data Provider for .NET (ODP.NET) を介して Oracle データベースへの接続を提供する一連のコア コンポーネントを実装します。
WCF LOB アダプター SDK は、Oracle データベース アダプターが Windows Communication Foundation (WCF) とインターフェイスするソフトウェア レイヤーとして機能します。 ODP.NET は、Oracle データベース アダプターが Oracle データベースとインターフェイスするレイヤーとして機能します。
次の図は、Oracle データベース アダプター、WCF LOB アダプター SDK、および ODP.NET の内部コンポーネント間の関係を示しています。
ODP.NET
Oracle データベース アダプターは、ODP.NET と Oracle クライアントを介して Oracle データベースに接続します。 これらのコンポーネントはどちらも Oracle Data Access Components (ODAC) の一部です。
ODP.NET は、ADO.NET インターフェイスと一貫性のある Oracle データベースのデータ プロバイダーを実装します。 Oracle データベース アダプターは、ODP.NET によって公開されるクラスを使用して Oracle データベースを操作します。
Oracle クライアントは、Oracle データベースへの接続を提供します。 Oracle データベース アダプターへの接続 URI を指定して、Oracle データベースへの接続を確立します。 接続 URI は、次の 2 つの方法で指定できます。
tnsnames.ora の使用。 この方法では、アダプター クライアントによって提供される接続 URI に、tnsnames.ora ファイルで指定されたネット サービス名のみが含まれます。 アダプターは、サーバー名、サービス名、ポート番号などの接続パラメーターを、ファイル内のネット サービス名エントリから抽出します。 この方法を使用するには、Oracle クライアントを実行しているコンピューターが、tnsnames.ora ファイルに Oracle データベースのネット サービス名を含むように構成する必要があります。
tnsnames.ora を使用しない。 この方法では、アダプター クライアントは接続 URI で接続パラメーターを直接指定します。 これにより、クライアント コンピューターの tnsnames.ora ファイルに net サービス名が存在する必要はありません。 この方法では、クライアント コンピューターに tnsnames.ora ファイルが存在する必要もありません。
接続 URI の詳細については、「 Oracle データベースへの接続を作成する」を参照してください。