| Oracle Database 概要 10gリリース2(10.2) B19215-02 |
|
この章では、アプリケーション・アーキテクチャについて定義し、分散処理環境でOracleデータベース・サーバーとデータベースのアプリケーションがどのように機能するかを説明します。このマニュアルの内容は、ほとんどすべてのタイプのOracleデータベース・システム環境に適用されます。
この章の内容は、次のとおりです。
Oracleデータベース・システムの環境では、データベース・アプリケーションとデータベースは2つの部分に分離されています。フロントエンド、すなわちクライアント部分と、バックエンド、すなわちサーバー部分です。このため、クライアント/サーバー・アーキテクチャと名付けられています。クライアントでは、データベース情報にアクセスし、キーボード、スクリーンおよびマウスなどのポインティング・デバイスを使用してユーザーと対話する、データベース・アプリケーションが実行されます。サーバーでは、Oracleソフトウェアが実行され、Oracleデータベースへの同時実行の共有データ・アクセスに必要な機能が処理されます。
クライアント・アプリケーションとOracleを同じコンピュータで実行することもできますが、クライアント部分とサーバー部分を別々のコンピュータで実行し、それらのコンピュータをネットワークで接続するほうがさらに効率的です。次の各項では、Oracleクライアント/サーバー・アーキテクチャの様々な形態について説明します。
分散処理とは、異なるシステムにある複数のプロセッサを使用して個々の作業を処理することです。図10-1に、Oracleデータベース・システムでの分散処理の例を示します。
分散処理環境でのOracleクライアント/サーバー・アーキテクチャには、次のような利点があります。
関連項目
複数層アーキテクチャ環境では、アプリケーション・サーバーはクライアントにデータを提供し、クライアントとデータベース・サーバー間のインタフェースとして機能します。このアーキテクチャは、インターネットの普及により重要度が増しています。
このアーキテクチャでは、アプリケーション・サーバーを使用して次のことを実行できます。
図10-2は、複数層アーキテクチャの例を示しています。
クライアントは、データベース・サーバー上で実行される操作について要求を出します。このクライアントは、Webブラウザでも他のエンド・ユーザー・プロセスでもかまいません。複数層アーキテクチャでは、クライアントは1つ以上のアプリケーション・サーバーを介してデータベース・サーバーに接続します。
アプリケーション・サーバーは、クライアントにデータ・アクセスを提供します。また、クライアントと、さらに高度なセキュリティ・レベルを提供する1つ以上のデータベース・サーバーとの間のインタフェースとして機能します。さらに、クライアントのために一部の問合せ処理も実行するため、データベース・サーバーの負荷がある程度軽減されます。
アプリケーション・サーバーは、クライアントのためにデータベース・サーバー上で操作を実行するとき、そのクライアントの識別を想定します。アプリケーション・サーバーの権限は、クライアント操作中に不要な操作や望ましくない操作を実行できないように制限されます。
データベース・サーバーは、クライアントにかわってアプリケーション・サーバーから要求されたデータを提供します。残りのすべての問合せ処理は、データベース・サーバーによって実行されます。
Oracleデータベース・サーバーは、個々のクライアントのかわりにアプリケーション・サーバーが実行した操作や、アプリケーション自体のために実行した操作を監査できます。たとえば、クライアント操作がクライアントに表示する情報の要求であったり、アプリケーション・サーバーの操作がデータベース・サーバーへの接続要求であったりします。
Oracle Net Servicesにより、分散、異機種間コンピューティング環境において、企業全体の接続性が確保されます。また、Oracle Net Servicesでは、クライアント・アプリケーションからOracleデータベースへのネットワーク・セッションも使用可能です。
Oracle Net Servicesは、広範囲のネットワークでサポートされている通信プロトコルやApplication Program Interface(API)を使用して、Oracleに分散データベースと分散処理の機能を提供します。
ネットワーク・セッションの確立後は、Oracle Net Servicesはクライアント・アプリケーションとデータベース・サーバーのためのデータ伝達手段として機能します。また、クライアント・アプリケーションとデータベース・サーバー間の接続確立と維持の他、これらの間でのメッセージ交換を受け持ちます。Oracle Net Servicesは、ネットワーク内の各コンピュータに配置されているのでこれらのジョブを実行できます。
Oracle Net Servicesにより、位置の透過性、構成と管理の集中管理および迅速なインストールと構成が実現されます。また、システム・リソースの最大化とパフォーマンスの改善が可能です。Oracleの共有サーバー・アーキテクチャでは、アプリケーションのスケーラビリティとデータベースに同時に接続できるクライアント数が増大します。Virtual Interface(VI)プロトコルでは、メッセージ機能の負荷のほとんどを高速ネットワーク・ハードウェアに配置することで、より重要なタスクのためにCPUを解放します。
Oracleがサポートする業界標準のネットワーク・プロトコルでは、データベース・サーバー上で稼働するOracleプロセスおよびネットワークの他のコンピュータ上で稼働するOracleアプリケーションのユーザー・プロセスとの間のインタフェースが提供されます。
Oracleプロトコルは、OracleアプリケーションのインタフェースからSQL文を取り出し、それらをパッケージ化してから、サポートされている業界標準の高レベルのプロトコルまたはプログラム・インタフェースを介してOracleに送信します。また、Oracleからの応答を取り込んでパッケージ化し、同じ高レベルの通信メカニズムを介してアプリケーションに送り返します。これらの機能はすべて、ネットワーク・オペレーティング・システムからは独立して実行されます。
Oracleを実行するオペレーティング・システムによっては、データベース・サーバーのOracle Net Servicesソフトウェアにドライバ・ソフトウェアが含まれており、ドライバ・ソフトウェアによって追加のOracleバックグラウンド・プロセスが起動される場合があります。
インスタンスの起動時には、リスナー・プロセスによってOracleへの通信経路が確立されます。ユーザー・プロセスが接続要求を出すと、リスナーは共有サーバー・ディスパッチャ・プロセスと専用サーバー・プロセスのどちらを使用するかを判断し、適切な接続を確立します。
また、リスナー・プロセスは、データベース間の通信経路も確立します。Real Application Clustersなど、単一のコンピュータで複数のデータベースやインスタンスが稼働している場合は、サービス名を使用すると、インスタンスを同じコンピュータ上の他のリスナーに自動的に登録できます。サービス名では複数のインスタンスを識別でき、インスタンスは複数のサービスに属することができます。サービスに接続するクライアントは、必要なインスタンスを指定する必要がありません。
動的サービス登録により、複数のデータベースやインスタンスの管理に伴うオーバーヘッドが低減します。リスナーがクライアントの要求を送るサービスの情報はリスナーに登録されます。サービス情報は、サービス登録と呼ばれる機能を介してリスナーに動的に登録することも、listener.oraファイルに静的に構成することもできます。
サービス登録では、インスタンスのバックグラウンド・プロセスであるPMONプロセスを利用して、インスタンス情報、インスタンスと共有サーバー・ディスパッチャの現在の状態と負荷をリスナーに登録します。登録済情報により、リスナーはクライアントの接続要求を適切なサービス・ハンドラに送ることができます。サービス登録では、listener.oraファイル内での構成は必要ありません。
初期化パラメータSERVICE_NAMESでは、インスタンスが属するデータベース・サービスが識別されます。起動時に、各インスタンスは、同じサービスに属している他のインスタンスのリスナーに登録します。データベース操作中に、各サービスのインスタンスはCPUの使用と現行の接続カウントに関する情報を、同じサービスのすべてのリスナーに渡します。これにより、動的なロード・バランシング機能と接続フェイルオーバー機能が使用可能になります。
|
関連項目
|
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|