4.1 クライアント/サーバー・アプリケーションのOracle Netスタック通信の理解
データベース・サーバーとはデータベースを管理するOracleソフトウェアのことで、クライアントとはサーバーの情報を要求するアプリケーションのことです。クライアントとサーバーが通信する方法をクライアント/サーバー・スタックと呼びます。
ネットワーク・プロトコルを通じてクライアント・アプリケーションから渡された情報(クライアント通信スタックによって送信されたもの)は、データベース・サーバー側にある同様の通信スタックで受信されます。データベース・サーバー側でのプロセス・フローは、クライアント側でのプロセス・フローの逆になり、情報は通信レイヤーを通ってさかのぼります。
次の図は、接続が確立された後のクライアント上とデータベース・サーバー上の様々なレイヤーを示しています。
この通信アーキテクチャは、Open Systems Interconnection (OSI)モデルに基づいています。OSIモデルでは、いくつかのコード・レイヤーを介して一方のノードから他方のノードへ情報を渡す、スタックのような形式でコンピュータ間の通信が行われます。次のレイヤーがあります。
-
物理レイヤー
-
データ・リンク・レイヤー
-
ネットワーク・レイヤー
-
トランスポート・レイヤー
-
セッション・レイヤー
-
プレゼンテーション・レイヤー
-
アプリケーション・レイヤー
次の図では、Oracle Net FoundationレイヤーとOracle Protocol SupportからなるOracle NetソフトウェアがOSIモデルのセッション・レイヤーにどのように適合しているかを示します。
この項では、次の項目について説明します。
4.1.1 クライアント通信スタックについて
クライアント通信スタックには次のものが含まれています。
4.1.1.1 クライアント・アプリケーション・レイヤー
データベースとのセッション時、クライアントはOracle Call Interface(OCI)を使用して、データベース・サーバーとの対話型操作を実行します。OCIは、アプリケーションとSQL間のインタフェースを提供するソフトウェア・コンポーネントです。
親トピック: クライアント通信スタックについて
4.1.1.2 プレゼンテーション・レイヤー
クライアントとデータベース・サーバーが異なるオペレーティング・システムで実行されている場合、文字セットの相違が発生します。プレゼンテーション・レイヤーによって、すべての相違が解決されます。接続ごとに最適化され、必要に応じて変換が実行されます。
クライアント/サーバー・アプリケーションが使用するプレゼンテーション・レイヤーは、Two-Task Common(TTC).ですTTCは、クライアントとデータベース・サーバー間の文字セットの相違または形式の相違に対して、文字セットとデータ型の変換を行います。初期の接続時に、TTCは内部データと文字セットの表現の違いを評価したり、2つのコンピュータが通信するために変換が必要かどうかを判断します。
親トピック: クライアント通信スタックについて
4.1.1.3 Oracle Net Foundationレイヤー
Oracle Net Foundationレイヤーは、クライアント・アプリケーションとデータベース・サーバー間でのメッセージの交換に加え、これらの間の接続を確立および維持します。Oracle Net Foundationレイヤーは、Transparent Network Substrate (TNS)テクノロジによってこれらのタスクを実行できます。TNSは、すべての業界標準OSIトランスポート・プロトコルおよびネットワーク・レイヤー・プロトコルに単一の共通インタフェースを提供します。TNSによって、ピアツーピア・アプリケーション接続が可能になります。複数のコンピュータが相互に直接通信でき、中間デバイスは必要ありません。
クライアント側で、Oracle Net Foundationレイヤーは、クライアント・アプリケーション要求を受け取り、すべての一般的なコンピュータ・レベルの接続性の問題を解決します。次のような問題があります。
-
データベース・サーバーや接続先の場所
-
接続に含まれるプロトコルの数
-
それぞれの機能に基づいた、クライアントとデータベース・サーバー間の中断の処理方法
サーバー側で、Oracle Net Foundationレイヤーはクライアント側と同じタスクを実行します。また、リスナーとともに機能して着信接続要求を受信します。
接続の確立と維持に加えて、Oracle Net Foundationレイヤーは、ネーミング・メソッドを使用して通信し名前を解決します。また、セキュリティ・サービスを使用して安全な接続を実現します。
親トピック: クライアント通信スタックについて
4.1.1.4 Oracle protocol supportレイヤー
Oracle protocol supportレイヤーは、Oracle Net Foundationレイヤーの最下位に位置します。これは、クライアント/サーバー接続で使用される業界標準のプロトコルにTNS機能をマッピングする役割を担います。このレイヤーは次のネットワーク・プロトコルをサポートしています。
-
Transport Layer Security (TLS)付きTCP/IP
-
Named Pipes
-
Sockets Direct Protocol(SDP)
-
Exadirect
クライアント/サーバー接続の際、すべてのOracleソフトウェアは、トランスポート・レイヤーの2台のコンピュータ間のコンピュータ・レベルの接続を確立するために、既存のネットワーク・プロトコル・スタックが必要です。ネットワーク・プロトコルは、クライアント・コンピュータからデータベース・サーバー・コンピュータまで、データを送る役割があります。ここで、データはサーバー側のOracle protocol supportレイヤーに渡されます。
親トピック: クライアント通信スタックについて