ヘッダーをスキップ

Oracle Database 概要
11gリリース1(11.1)

E05765-03
目次
目次
索引
索引

戻る 次へ

10 アプリケーション・アーキテクチャ

この章では、アプリケーション・アーキテクチャについて定義し、分散処理環境でOracleデータベース・サーバーとデータベースのアプリケーションがどのように機能するかを説明します。このマニュアルの内容は、ほとんどすべてのタイプのOracle Databaseシステム環境に適用されます。

この章の内容は、次のとおりです。

クライアント/サーバー・アーキテクチャの概要

Oracle Databaseシステムの環境では、データベース・アプリケーションとデータベースは2つの部分に分離されています。フロントエンド、すなわちクライアント部分と、バックエンド、すなわちサーバー部分です。このため、クライアント/サーバー・アーキテクチャと名付けられています。クライアントでは、データベース情報にアクセスし、キーボード、スクリーンおよびマウスなどのポインティング・デバイスを使用してユーザーと対話する、データベース・アプリケーションが実行されます。サーバーでは、Oracle Databaseソフトウェアが実行され、Oracleデータベースへの同時実行の共有データ・アクセスに必要な機能が処理されます。

クライアント・アプリケーションとOracle Databaseを同じコンピュータで実行することもできますが、クライアント部分とサーバー部分を別々のコンピュータで実行し、それらのコンピュータをネットワークで接続するほうがさらに効率的です。次の各項では、Oracle Databaseクライアント/サーバー・アーキテクチャの様々な形態について説明します。

分散処理とは、異なるシステムにある複数のプロセッサを使用して個々の作業を処理することです。図10-1に、Oracle Databaseシステムでの分散処理の例を示します。

分散処理環境でのOracle Databaseクライアント/サーバー・アーキテクチャには、次のような利点があります。

複数層アーキテクチャの概要

従来の複数層アーキテクチャ環境では、アプリケーション・サーバーはクライアントにデータを提供し、クライアントとデータベース・サーバー間のインタフェースとして機能します。このアーキテクチャは、インターネットの普及により重要度が増しています。

このアーキテクチャでは、アプリケーション・サーバーを使用して次のことを実行できます。

図10-2は、複数層アーキテクチャの例を示しています。

図10-2    複数層アーキテクチャ環境の例


画像の説明

この項の内容は、次のとおりです。

クライアント

クライアントは、データベース・サーバー上で実行される操作について要求を出します。このクライアントは、Webブラウザでも他のエンド・ユーザー・プロセスでもかまいません。複数層アーキテクチャでは、クライアントは1つ以上のアプリケーション・サーバーを介してデータベース・サーバーに接続します。

アプリケーション・サーバー

アプリケーション・サーバーは、クライアントにデータ・アクセスを提供します。また、クライアントと、さらに高度なセキュリティ・レベルを提供する1つ以上のデータベース・サーバーとの間のインタフェースとして機能します。さらに、クライアントのために一部の問合せ処理も実行するため、データベース・サーバーの負荷がある程度軽減されます。

アプリケーション・サーバーは、クライアントのためにデータベース・サーバー上で操作を実行するとき、そのクライアントの識別を想定します。アプリケーション・サーバーの権限は、クライアント操作中に不要な操作や望ましくない操作を実行できないように制限されます。

データベース・サーバー

データベース・サーバーは、クライアントにかわってアプリケーション・サーバーから要求されたデータを提供します。残りのすべての問合せ処理は、データベース・サーバーによって実行されます。

Oracleデータベース・サーバーは、個々のクライアントのかわりにアプリケーション・サーバーが実行した操作や、アプリケーション自体のために実行した操作を監査できます。たとえば、クライアント操作がクライアントに表示する情報の要求であったり、アプリケーション・サーバーの操作がデータベース・サーバーへの接続要求であったりします。

関連項目

第20章「データベース・セキュリティ」 

Webサービス・プロバイダとしてのOracle Database

Oracle Database 11gから、Oracle Databaseは、従来の複数層またはサービス指向アーキテクチャ(SOA)環境でWebサービス・プロバイダとして機能できるようになりました。SOAは、アプリケーションの機能がサービスにカプセル化されている複数層アーキテクチャです。サービスは、ネットワーク上の相互運用可能なマシン間の相互作用をサポートするよう設計されています。動的に検出することが可能で、使用可能な関数およびコール・シーケンスで問い合せることもできます。

通常、SOAサービスはWebサービスとして実装されます。WebサービスにはHTTPプロトコルを使用してアクセスでき、WSDLやSOAPなどXMLベースの一連のオープン標準に基づいています。

XML DBの一部として実装されるOracle DatabaseのWebサービス機能は、DBAが明示的に有効化する必要があります。アプリケーションは、データベースWebサービスを介して次のことを実行できます。

複数層環境では、クライアントとアプリケーション・サーバーのどちらでも、データベースWebサービスを起動できます。


注意

データベースWebサービスを使用すると、アプリケーション・サーバーがなくても、アプリケーション環境に簡単にWebサービスを追加できます。ただし、Oracle Fusion Middlewareなどのアプリケーション・サーバーを介してWebサービスを起動すると、SOA環境で、セキュリティ、スケーラビリティ、UDDI登録および信頼できるメッセージ機能の面でさらに利点があります。データベースWebサービスはOracle Fusion Middlewareと簡単に統合できるため、SOAソリューションの最適化に役立つ適切な方法です。SOAおよびWebサービスの詳細は、Oracle Fusion Middlewareのマニュアルを参照してください。 


関連項目

データベースWebサービスを有効化する方法および使用方法の詳細は、『Oracle XML DB開発者ガイド』を参照してください。 

Oracle Net Servicesの概要

Oracle Net Servicesにより、分散、異機種間コンピューティング環境において、企業全体の接続性が確保されます。また、Oracle Net Servicesでは、クライアント・アプリケーションからOracleデータベースへのネットワーク・セッションも使用可能です。

Oracle Net Servicesは、広範囲のネットワークでサポートされている通信プロトコルやApplication Program Interface(API)を使用して、Oracle Databaseに分散データベースと分散処理の機能を提供します。

ネットワーク・セッションの確立後は、Oracle Net Servicesはクライアント・アプリケーションおよびデータベース・サーバーのためのデータ伝達手段として機能します。また、クライアント・アプリケーションとデータベース・サーバー間の接続確立と維持の他、これらの間でのメッセージ交換を受け持ちます。Oracle Net Servicesは、ネットワーク内の各コンピュータに配置されているのでこれらのジョブを実行できます。

Oracle Net Servicesにより、位置の透過性、構成と管理の一元化および迅速なインストールと構成が実現されます。また、システム・リソースの最大化とパフォーマンスの改善が可能です。Oracle Databaseの共有サーバー・アーキテクチャによって、アプリケーションのスケーラビリティおよびデータベースへのクライアントの同時接続数が向上します。Virtual Interface(VI)プロトコルでは、メッセージ機能の負荷のほとんどを高速ネットワーク・ハードウェアに配置することで、より重要なタスクのためにCPUを解放します。

関連項目

これらの機能の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 

この項の内容は、次のとおりです。

Oracle Net Servicesの動作

Oracleがサポートする業界標準のネットワーク・プロトコルでは、データベース・サーバー上で稼働するOracle Databaseプロセスおよびネットワークの他のコンピュータ上で稼働するOracle Databaseアプリケーションのユーザー・プロセスとの間のインタフェースが提供されます。

Oracle Databaseプロトコルでは、OracleアプリケーションのインタフェースからSQL文が取り出され、それらをパッケージ化してから、サポートされている業界標準の高レベルのプロトコルまたはプログラム・インタフェースを介してOracle Databaseに送信します。また、Oracle Databaseから応答を取り込んでパッケージ化し、同じ高レベルの通信メカニズムを介してアプリケーションに送り返します。これらの機能はすべて、ネットワーク・オペレーティング・システムからは独立して実行されます。

Oracle Databaseを実行するオペレーティング・システムによっては、データベース・サーバーのOracle Net Servicesソフトウェアにドライバ・ソフトウェアが含まれており、ドライバ・ソフトウェアによって追加のOracle Databaseバックグラウンド・プロセスが起動される場合があります。

関連項目

Oracle Net Servicesの動作の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 

リスナー

インスタンスの起動時に、リスナー・プロセスによってOracle Databaseへの通信経路が確立されます。ユーザー・プロセスが接続要求を出すと、リスナーは共有サーバー・ディスパッチャ・プロセスと専用サーバー・プロセスのどちらを使用するかを判断し、適切な接続を確立します。

また、リスナー・プロセスは、データベース間の通信経路も確立します。Oracle Real Application Clustersなど、単一のコンピュータ上で複数のデータベースやインスタンスが稼働している場合は、サービス名を使用すると、インスタンスを同じコンピュータ上の他のリスナーに自動的に登録できます。サービス名では複数のインスタンスを識別でき、インスタンスは複数のサービスに属することができます。サービスに接続するクライアントは、必要なインスタンスを指定する必要がありません。

サービス情報の登録

動的サービス登録により、複数のデータベースやインスタンスの管理に伴うオーバーヘッドが低減します。リスナーがクライアントの要求を送るサービスの情報はリスナーに登録されます。サービス情報は、サービス登録と呼ばれる機能を介してリスナーに動的に登録することも、listener.oraファイルに静的に構成することもできます。

サービス登録では、インスタンスのバックグラウンド・プロセスであるPMONプロセスを利用して、インスタンス情報、インスタンスと共有サーバー・ディスパッチャの現在の状態と負荷をリスナーに登録します。登録済情報により、リスナーはクライアントの接続要求を適切なサービス・ハンドラに送ることができます。サービス登録では、listener.oraファイル内での構成は必要ありません。

初期化パラメータSERVICE_NAMESでは、インスタンスが属するデータベース・サービスが識別されます。起動時に、各インスタンスは、同じサービスに属している他のインスタンスのリスナーに登録します。データベース操作中に、各サービスのインスタンスはCPUの使用と現行の接続カウントに関する情報を、同じサービスのすべてのリスナーに渡します。これにより、動的なロード・バランシング機能と接続フェイルオーバー機能が使用可能になります。

関連項目

  • 「共有サーバー・アーキテクチャ」

  • サーバー・プロセスの詳細は、「専用サーバー構成」を参照してください。

  • リスナーの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • Oracle Real Application Clustersにおけるインスタンスの登録とクライアント/サーバー接続の詳細は、それぞれのプラットフォームに対応したOracle Real Application Clustersインストール・ガイドおよび『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

 


戻る 次へ
Oracle
Copyright © 1993, 2008 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引