BizTalk Adapter for Oracle Database のアーキテクチャの概要

Microsoft BizTalk Adapter for Oracle Database のアーキテクチャについて説明します。

Oracle Database アダプター アーキテクチャの理解は、次の場合に役立ちます。

  • Oracle Database アダプターと Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK の関係について説明します。

  • セキュリティ境界を理解して、ソリューション内のデータをより適切にセキュリティで保護できるようにします。

  • Oracle Database アダプターのバインド プロパティについて説明します。

  • インストールに関する問題のトラブルシューティングを行います。

このトピックでは、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 クライアント (Windows 用 Oracle Data Access Components (ODAC) の一部である) を介して Oracle データベースと通信します。

次の図は、Oracle Database アダプターを使用して開発されたソリューションのエンドツーエンド アーキテクチャを示しています。

Oracle データベース アダプターのアーキテクチャ図

アダプターの使用

Oracle Database アダプターは、Oracle データベースを WCF サービスとしてクライアント アプリケーションに公開します。 Oracle データベースで操作を実行し、データにアクセスするために、クライアント アプリケーションは WCF チャネルを介して ORACLE データベース アダプターと SOAP メッセージを交換します。 前の図は、Oracle Database アダプターを使用できる 4 つの方法を示しています。 これらは次のとおりです。

  • WCFchannel モデル アプリケーションを使用します。 WCF チャネル モデル アプリケーションは、WCF チャネル モデルを使用して Oracle データベース アダプターと SOAP メッセージを直接交換することで、Oracle データベースに対する操作を実行します。 WCF チャネル モデルを使用した Oracle Database アダプターのソリューション開発の詳細については、「WCF チャネル モデルを 使用した Oracle Database アプリケーションの開発」を参照してください。

  • WCF サービス モデル アプリケーションを使用します。 WCF サービス モデル アプリケーションは、WCF クライアントでメソッドを呼び出して、Oracle データベースに対する操作を実行します。 WCF クライアントは、Oracle Database アダプターによって公開される操作を .NET メソッドとしてモデル化します。 Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK または WCF ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用して、Oracle データベース アダプターによって公開されるメタデータから WCF クライアント クラスを作成できます。 WCF サービス モデルと Oracle データベース アダプターの詳細については、「WCF サービス モデルを 使用した Oracle データベース アプリケーションの開発」を参照してください。

  • BizTalk 受信場所または Microsoft BizTalk WCF-Custom アダプターを使用するように構成された送信ポートを使用します。 WCF-Custom アダプターを使用すると、WCF 拡張機能を使用できます。 WCF-Custom アダプターを使用すると、Oracle DB バインディングと受信場所または送信ポートの動作を選択して構成できます。 BizTalk Server ソリューションで Oracle Database アダプターを使用する方法の詳細については、「BizTalk アプリケーションの開発」を参照してください。

  • IIS でホストされる Web サービスを使用します。 このシナリオでは、アダプターを使用して生成された WCF サービス プロキシは、標準の WCF Http バインディングを使用して IIS でホストされます。 これにより、サービス コントラクトが Web サービスとして外部ユーザーに公開されます。 IIS は実行時にアダプターを自動的にホストします。これにより、Oracle データベースと通信します。

    Oracle Database アダプターと 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 アダプター バインド要素 (Microsoft.Adapters.OracleDB.OracleDBAdapter) が含まれています。これにより、Oracle データベースに対する操作が可能になります。

    Microsoft.Adapters.OracleDB.OracleDBBinding (Oracle DB Binding) と Microsoft.Adapters.OracleDB.OracleDBAdapter (Oracle DB Adapter Binding Element) はパブリック クラスであり、構成システムにも公開されます。 Oracle DB アダプター バインド要素はパブリックに公開されているため、Oracle データベース アダプターの機能を拡張できる独自のカスタム WCF バインドを構築できます。 たとえば、WCF チャネルまたはサービス モデル ソリューションでエンタープライズ シングル サインオン (SSO) をサポートするカスタム バインドを実装できます。 これを行う理由は、データベース操作を 1 つの多機能操作に集約するか、カスタム アプリケーションによって実装された操作と Oracle データベースに対する操作の間でスキーマ変換を実行するためです。

    Oracle データベース アダプターは、Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK の上に構築され、WCF LOB アダプター SDK ランタイム上で実行されます。 WCF LOB アダプター SDK は、Oracle Database アダプターがユーザーとアダプター クライアントに豊富な機能セットを提供するために使用するソフトウェア フレームワークとツール インフラストラクチャを提供します。

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 の内部コンポーネント間の関係を示しています。

Oracle Database アダプターの内部アーキテクチャ

ODP.NET

Oracle Database アダプターは、ODP.NET と Oracle クライアントを介して Oracle データベースに接続します。 これらのコンポーネントはどちらも Oracle Data Access Components (ODAC) の一部です。

ODP.NET は、ADO.NET インターフェイスと一致する Oracle データベースのデータ プロバイダーを実装します。 Oracle Database アダプターは、ODP.NET によって公開されるクラスを使用して Oracle データベースを操作します。

Oracle クライアントは、Oracle データベースへの接続を提供します。 Oracle データベース アダプターへの接続 URI を指定して、Oracle データベースへの接続を確立します。 接続 URI は、次の 2 つの方法で指定できます。

  • tnsnames.ora の使用。 この方法では、アダプター クライアントによって提供される接続 URI に、tnsnames.ora ファイルで指定された net サービス名のみが含まれます。 アダプターは、サーバー名、サービス名、ポート番号などの接続パラメーターを、ファイル内の net サービス名エントリから抽出します。 この方法を使用するには、Oracle クライアントを実行しているコンピューターを、tnsnames.ora ファイルに Oracle データベースの net サービス名を含むように構成する必要があります。

  • tnsnames.ora を使用しない。 この方法では、アダプター クライアントは接続 URI で接続パラメーターを直接指定します。 クライアント コンピューターの tnsnames.ora ファイルに net サービス名が存在する必要はありません。 この方法では、クライアント コンピューターに tnsnames.ora ファイルが存在する必要もありません。

    接続 URI の詳細については、「 Oracle データベースへの接続を作成する」を参照してください。

次へ

Oracle データベース アプリケーションのセキュリティ保護