Managerを説明します。この章の内容は、次のとおりです。Servicesの概要」を参照してください。Netの主要な機能は、クライアント・アプリケーションとOracleデータベース・サーバー間の接続を確立して維持することです。Netは複数の通信レイヤーで構成されており、クライアントとデータベース・サーバーはデータの共有、変更、操作が可能です。この項で説明する項目は、次のとおりです。クライアント/サーバー・アプリケーション接続のスタック通信アーキテクチャ図5-1では、接続が確立された後のクライアントとデータベース・サーバーの様々なレイヤーを示します。注意:SDPプロトコルはサポートされていますが、この図には含まれていません。Interconnection(OSI)モデルに基づいています。OSIモデルでは、いくつかのコード・レイヤーを通じてあるノードから別のノードに情報が渡される、スタックのような形式でコンピュータ間の通信が行われます。次のレイヤーがあります。Supportが、OSIモデルのセッション層にどのように適合しているかを示します。関連項目:OSIスタックの詳細は、次のURLを参照してください。http://www.ietf.org図5-1で示すように、クライアント/サーバー・スタックには、次の内容が含まれます。Interface(OCI)を使用して、データベース・サーバーとの対話型操作を実行します。OCIは、クライアント・アプリケーションとデータベース・サーバーが理解できるSQL言語とのインタフェースを提供するソフトウェア・コンポーネントです。Interfaceプログラマーズ・ガイド』プレゼンテーションキャラクタ・セットの相違は、クライアントとデータベース・サーバーを異なるオペレーティング・システム上で実行している場合に発生します。プレゼンテーション層によって、あらゆる相違を解決します。接続ごとに最適化を実行し、必要な場合のみ変換を実行します。Common(TTC)です。TTCは、クライアントとデータベース・サーバー間のキャラクタ・セットの相違または形式の相違に対して、キャラクタ・セットとデータ型の変換を行います。初期の接続時に、TTCは内部データとキャラクタ・セットの表現の違いを評価したり、2つのコンピュータが通信するために変換が必要かどうかを判断します。Foundationレイヤーは、クライアント・アプリケーションとデータベース・サーバー間の接続の確立および維持、両者間のメッセージ交換の役割を担います。Substrate(TNS)と呼ばれるテクノロジのおかげで実行できます。TNSは、すべての業界標準プロトコルに対して単一の共通インタフェースを提供します。TNSは、peer-to-peerのアプリケーション接続を可能にします。ここでは、複数のコンピュータ(ネットワーキング環境で使用される場合はノードと呼ばれます)が相互に直接交信でき、中間のデバイスは必要ありません。Foundationレイヤーは、クライアント・アプリケーション要求を受け取り、すべての一般的なコンピュータ・レベルの接続性の問題を解決します。次のような問題があります。Foundationレイヤーは、クライアント上と同じタスクを実行します。リスナーと一緒に機能して着信接続要求を受け取ります。Foundationレイヤーは、ネーミング・メソッドを使用して通信し名前を解決します。セキュリティ・サービスを使用して安全な接続を実現します。Foundationレイヤーとネットワーク・プロトコル・レイヤーとの間に位置し、TNS機能をクライアント/サーバー接続で使用する業界標準のプロトコルにマッピングする役割を担います。このレイヤーは次のネットワーク・プロトコルをサポートします。PipesSDPネットワーク・プロトコルすべてのOracleソフトウェアは、クライアント/サーバー接続処理の際、2台のコンピュータのトランスポート層間でコンピュータ・レベルの接続を確立するために、既存のネットワーク・プロトコル・スタックを必要とします。ネットワーク・プロトコルは、クライアント・コンピュータからデータベース・サーバー・コンピュータまで、データを送ることに責任があります。supportレイヤーに渡されます。Protocol(TCP/IP)は、ネットワークを介したクライアント/サーバー間の対話に使用される標準の通信プロトコルです。Layer(SSL)プロトコルのTCP/IPでは、クライアント上のOracleアプリケーションとリモートのOracleデータベースが、TCP/IPとSSLを介して通信できます。Securityが必要です。Walletに格納します。クライアントがデータベース・サーバーと接続を開始すると、SSLは証明書を使用して両者間のハンドシェイクを実行します。ハンドシェイクの実行中、次の処理が行われます。Suiteについてネゴシエーションを行い、交換するメッセージに適用します。使用する構成によっては、データベース・サーバーはクライアントの公開鍵で暗号化したメッセージにサーバー自身の証明書を入れてクライアントに送信します。データベース・サーバーは、この同じメッセージを使用して、クライアントの証明書を送るように要求する場合もあります。クライアントは、それ自身の秘密鍵を使用してこのメッセージの暗号化を解除し、データベース・サーバーの証明書に認証局のシグネチャがあることを確認します。必要に応じてクライアントは、このユーザーの証明書をデータベース・サーバーに送信します。証明書によって、ユーザーの情報が正しいことと、公開鍵が実際にそのユーザーのものであることが保証されます。データベース・サーバーはこのユーザーの証明書を調べて、認証局のシグネチャがあることを確認します。Pipesプロトコルは、分散アプリケーションを使用したクライアントとデータベース・サーバー間で、プロセス間通信を提供する高水準のインタフェースです。サーバー側のプロセスがパイプを生成し、クライアント側のプロセスが名前によってそれをオープンします。これによって互いに、一方が書き込む情報を他方が読み取ることができます。LAN環境で使用することを念頭に設計されています。Pipesを使用するネットワーク上でクライアント/サーバーの接続が可能です。Pipesを使用したネットワーク通信をサポートするホスト・システム上で実行されている場合)。Protocol(SDP)は、Infinibandネットワーク・ピア間の業界標準のワイア・プロトコルです。InfinibandネットワークでSDPを使用すると、データの中間的なレプリケーションが除去され、メッセージ交換の負荷がCPUからネットワーク・ハードウェアへ移動することにより、TCP/IPのオーバーヘッドが削減されます。RDBMSネットワーク・プロトコルを通じてクライアント・アプリケーションから渡された情報は、データベース・サーバー側にある同様の通信スタックで受信されます。データベース・サーバー側でのプロセス・フローは、クライアント側でのプロセス・フローの逆になり、情報は通信レイヤーを通ってさかのぼります。OCIのかわりに、データベース・サーバーはOracleプログラム・インタフェース(OPI)を使用します。OCIから送信される各文に対して、OPIは応答します。OCIが25行のデータのフェッチを要求すると、OPIはフェッチした25行のデータをOCIに戻します。Connectivity(JDBC)ドライバにより、JavaアプリケーションはOracleデータベースにアクセスします。Oracleには、2つのJDBCドライバが用意されています。OCIドライバは、クライアント/サーバーのJavaアプリケーションで使用されるレベル2のJDBCドライバです。OCIドライバは、JDBCの呼出しをOCIの呼出しに変換します。Netを通してOracleデータベース・サーバーに送信されます。JDBCシン・ドライバは、Javaアプレットが使用するレベル4のドライバです。JDBCシン・ドライバは、Javaソケットを通してOracleデータベース・サーバーに直接接続を確立します。Netの軽量実装に支援されます。図5-3では、JDBCドライバが使用するスタック通信レイヤーを示します。注意:SDPプロトコルはサポートされていますが、この図には含まれていません。OCIドライバは、標準のクライアント/サーバー通信スタックと同様の通信スタックを使用します。FoundationレイヤーのJava実装と、JavaTTCと呼ばれるTTCのJava実装を使用します。Webクライアント接続のスタック通信アーキテクチャTTCによるプレゼンテーションに加えて、Oracleデータベース・サーバーは、Webクライアントがデータベース内にアクセスする機能に使用できる、その他の多数のプレゼンテーションをサポートしています。リスナーは、これを容易にするため、データベースで要求されるあらゆるプレゼンテーションをサポートします。DBへのHTTP接続またはFTP接続で使用するスタック通信レイヤーを示しています。WebDAV接続では、HTTPおよびFTPと同じスタック通信レイヤーが使用されます。リスナーのアーキテクチャデータベース・サーバーは、クライアント・アプリケーションからの初期接続を、リスナーを通じて受け取ります。Foundationレイヤーの最上位に位置するアプリケーションです。図5-5では、初期接続時のクライアントとデータベース・サーバー上にある様々なレイヤーを示します。注意:SDPプロトコルはサポートされていますが、図5-5には含まれていません。リスナーは、クライアント要求を受け取ってOracleデータベース・サーバーに渡します。クライアントがデータベース・サーバーとのネットワーク・セッションを要求するたびに、リスナーは初期要求を受信します。各リスナーは、リスニング・エンドポイントを指定する1つ以上のプロトコル・アドレスで構成されます。これらのプロトコル・アドレスのいずれか1つで構成されたクライアントが、そのリスナーに接続要求を送ります。リスナーはクライアント要求を受信すると、そのクライアント要求を処理する適切なサービス・ハンドラを選択してクライアント要求を転送します。リスナーはデータベース・サービスとそのサービス・ハンドラが利用可能かどうかを、サービス登録から判断します。サービス登録時、インスタンスのバックグラウンド・プロセスであるPMONプロセスは、次に関する情報をリスナーに提供します。データベースが提供するデータベース・サービスの名前サービスに対応付けられているインスタンスの名前と、その現在および最大のロード情報インスタンスに使用可能なサービス・ハンドラ(ディスパッチャと専用サーバー)。これには、タイプ、プロトコル・アドレス、現在および最大のロード情報が含まれます。この情報によって、リスナーはクライアントの要求を適切に渡すことができます。図5-6では、インスタンスがリスナーに情報を登録する様子を示します。登録できるすべての情報を示しているわけではありません。画像の説明オプションで、リスニング・エンドポイント、つまりポート番号を、リスナーに動的に登録できます。DB、HTTP、FTPおよびWebDAVのリスニング・エンドポイントがリスナーに登録されます。インスタンスの起動時にリスナーが実行していない場合、PMONはサービス情報を登録できません。PMONは、定期的にリスナーに接続を試みますが、リスナーが起動されてからPMONがリスナーに登録するまで、最大で60秒間遅延することがあります。REGISTERを使用します。これは特に高可用性が求められる構成で有益です。リスナーが受信した要求を受け取るのが、対応するインスタンスが登録されるより前の場合は、リスナーは要求を拒否します。インスタンスが制限されたモードの場合、PMONはリスナーにこのインスタンスへの全接続をブロックするよう指示します。クライアントが接続しようとすると、次のいずれかのエラーが発生します。Databaseエラー・メッセージ』を参照してください。図5-7は、HTTP接続を行うブラウザとデータベース接続を行うクライアントを使用して、接続を確立するときのリスナーのロールを示しています。データベースは、サービス、インスタンスおよびサービス・ハンドラに関する情報をリスナーに登録します。クライアントはリスナーに初期接続を確立します。リスナーはクライアント要求を解析し、要求されたデータベース・サービスのサービス・ハンドラに転送します。SQL言語リファレンス』を参照してください。DB開発者ガイド』を参照してください。データベース・サーバー・プロセス・アーキテクチャリスナーに登録されているサービス・ハンドラのタイプに基づいて、リスナーは要求を共有サーバー・プロセスまたは専用サーバー・プロセスのいずれかに転送します。この項で説明する項目は、次のとおりです。共有サーバー・プロセス図5-8で示すように、共有サーバー・プロセスは、共有サーバー・アーキテクチャで使用されます。共有サーバー・アーキテクチャでは、クライアントは最終的にディスパッチャへの接続を行います。PMONプロセスは、ディスパッチャの場所とロード情報をリスナーに登録するため、リスナーは要求を最もロード量の少ないディスパッチャに転送できます。ディスパッチャは、複数のクライアント接続を同時にサポートできます。各クライアント接続は、バーチャル・サーキットにバインドされます。バーチャル・サーキットは、ディスパッチャが使用する共有メモリーの1つで、クライアント・データベースの接続要求および応答を目的としています。ディスパッチャは、要求が到着するとバーチャル・サーキットを共通キューに配置します。アイドル状態の共有サーバーは、共通キューからバーチャル・サーキットを取り出して要求を処理し、共通キューから次のバーチャル・サーキットを取り出す前に、取り出したバーチャル・サーキットを放棄します。この方法によって、サーバー・プロセスの小規模プールが大量のクライアントを処理できるようになります。専用サーバー・プロセス図5-9は、専用サーバー・アーキテクチャを示しています。専用サーバー・アーキテクチャでは、各クライアントは専用サーバー・プロセスへの接続を行います。サーバー・プロセスは、他のいずれのクライアントとも共有されません。PMONは専用サーバー・プロセスに関する情報をリスナーに登録します。これによってリスナーは、クライアント要求を受け取って転送する際に、専用サーバー・プロセスを開始できます。注意:専用サーバー・アーキテクチャは、HTTP、FTPまたはWebDAVクライアントをサポートしていません。データベース・クライアントのみサポートします。Managerはルーターの一種です。これにより、クライアントの接続要求は次のホップに送信されたり、データベース・サーバーに直接送信されます。Managerに構成されているセッション多重化およびアクセス制御機能を利用できます。Managerは3つのコンポーネントで構成されています。Administration)リスナーは、クライアント接続を受け取り、一連の規則と照合して、アクセスの可否を判断します。アクセスが許可されると、リスナーは最小接続回数の接続を選択してゲートウェイ・プロセスに要求を転送します。Managerに転送するか、またはデータベース・サーバーに直接、転送します。既存のサーバーへの接続がある場合、ゲートウェイは既存の接続を介してこの接続を多重化、または集中化させます。CMADMINは、ゲートウェイ・プロセスとリスナーの状態を監視して、必要に応じてプロセスを停止または開始します。Controlユーティリティの要求に応答します。図5-10では、リスナーは接続要求を選別します。ゲートウェイ・プロセスでは、CMADMINプロセスを登録します。CMADMINプロセスでは、リスナーを登録します。最後にリスナーは、接続要求をゲートウェイ・プロセスに転送します。リスナーが、4番目のクライアントへのアクセスを拒否していることに注意してください。ゲートウェイ・プロセスは3つの有効なクライアント接続を受け取り、データベースへの単一のネットワーク・プロトコル接続を介してそれらを多重化します。Netはアーキテクチャ上のソリューションを提供しているため、インターネットやイントラネット環境における拡張性をさらに高めることができます。Managerと共有サーバー・アーキテクチャによって、さらにスケーラブルになっている様子を示します。Managerを使用すると、Webアプリケーション・サーバーのネットワークI/Oの負荷を一部オフロードすることができます。共有サーバーによって、複数の同時ユーザーを処理できます。