+ All Categories
Home > Documents > Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i Oracle iAS

Date post: 03-Feb-2022
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
39
Oracle Internet Application Server 8iOracle iASテクニカル テクニカル テクニカル テクニカル・ホワイトペーパー ・ホワイトペーパー ・ホワイトペーパー ・ホワイトペーパー 20006
Transcript
Page 1: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i((((Oracle iAS))))

テクニカルテクニカルテクニカルテクニカル・ホワイトペーパー・ホワイトペーパー・ホワイトペーパー・ホワイトペーパー

2000年年年年6月月月月

Page 2: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 2

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

目次

Oracle iAS - テクニカル・ホワイトペーパー

I. はじめに................................................................................................................... 4

Webアプリケーションの要件とトレンド ..................................................................................... 4Oracle Internet Platform:シンプル、完全、そして統合 ............................................................... 5

II. Oracle iASとは何か? .............................................................................................. 6

通信サービス ............................................................................................................................. 6Oracle HTTP Server(powerd by Apache) ............................................................................. 7Oracle HTTP Server Modules(mods) ................................................................................... 7

プレゼンテーション・サービス .................................................................................................. 9ポータル・サービス(Oracle Portal) ................................................................................... 9Apache JServ......................................................................................................................... 9Oracle JSP .......................................................................................................................... 10PL/SQL Server Pages(PSP) .............................................................................................. 10Perlインタープリタ ............................................................................................................. 11

ビジネス・ロジック・サービス ................................................................................................ 11Oracle Business Components for Java ................................................................................... 12Java開発モデル(J2EE)のサポート .................................................................................... 12Oracle8i PL/SQLエンジン .................................................................................................... 13Oracle Formsサービス ......................................................................................................... 13Oracle Reportsサービス ....................................................................................................... 14Discoverer Viewer ............................................................................................................... 14

データ管理サービス ................................................................................................................. 15Oracle8i Cache ................................................................................................................... 15

システム・サービス ................................................................................................................. 18Oracle Enterprise Manager .................................................................................................. 18Oracle Advanced Security .................................................................................................... 19

開発者キット ........................................................................................................................... 19Oracle Database Client Developer's Kit ................................................................................ 19Oracle XML Developer's Kit(XDK) ................................................................................... 19

III. Oracle iASはどのように動作するのか? .................................................................. 20

スケーラビリティ .................................................................................................................... 20ハードウェアのスケーラビリティ ........................................................................................ 20データのスケーラビリティ .................................................................................................. 21アプリケーションのスケーラビリティ .................................................................................. 21

可用性 ..................................................................................................................................... 24No Single Point of Failure ................................................................................................... 25セッションの分離 ................................................................................................................ 25接続の再ルーティング ......................................................................................................... 26障害検出と再起動 ................................................................................................................ 27

Page 3: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 3

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

フェイルオーバー ................................................................................................................ 27

ロード・バランス .................................................................................................................... 28HTTP Server、単一ホスト ................................................................................................... 28HTTP Server、複数ホスト ................................................................................................... 29Apache JServ、単一ホストおよび複数ホスト ........................................................................ 29Oracle8i JVM、単一ホスト .................................................................................................. 30Oracle8i JVM、複数ホスト .................................................................................................. 31HTTP ServerおよびOracle8i JVM ......................................................................................... 32中間層サーバー・ファーム .................................................................................................. 32

IV. 配置アーキテクチャ ............................................................................................... 33

JSP/Servletアプリケーション .................................................................................................... 34PL/SQLアプリケーション ......................................................................................................... 36Oracle Formsアプリケーション ................................................................................................. 36

V. 追加情報 ............................................................................................................... 37

Oracle iASロードマップ ........................................................................................................... 37Oracle iAS R1.0................................................................................................................... 37Oracle iAS R1.0.2 ................................................................................................................ 37

OASからの移行 ........................................................................................................................ 38

VI. まとめ.................................................................................................................. 38

Page 4: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 4

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

I. はじめにはじめにはじめにはじめに

Web アプリケーションの要件とトレンドアプリケーションの要件とトレンドアプリケーションの要件とトレンドアプリケーションの要件とトレンド

インターネットにより、企業は、顧客や自社の内部ビジネス・プロセス合理化のための非常に大きな機会を得

ています。これと同時に、これらの機会は、アプリケーションを早急にインターネット上で利用できるように

し、非常に多数のユーザーに対応できるように拡張しなければならないという新たな挑戦ももたらしました。

企業は、エンジニアを雇用してプログラムの開発や再起動発に従事させる中で、現代的かつ標準のコンポーネ

ント指向テクノロジを採用することの利点を得ています。たとえば、Java と J2EE を使用すれば、コードの開

発と再利用が容易になるだけでなく、テクノロジに精通したエンジニアリング能力を蓄積していくこともでき

ます。

中間層アプリケーション・サーバーの使用により、スケーラブルなインフラストラクチャ、トランザクション

管理、ポータル・サービス、ビジネス・インテリジェンス機能、および統合機能のすべてを導入後すぐに手に

することができるので、開発に要する時間と費用は絶対的に削減されます。そして、開発者は会社のコア・ビ

ジネス・ロジックおよびプロセスの実装に集中する時間を確保することができます。残念なことに、多くのベ

ンダーのアプリケーション・サーバー製品は顧客の要件の一部しか対象としておらず、そのためユーザーは複

数のベンダーからの製品を統合しなければなりません。さらに、これらの中間層製品とその他のソフトウェ

ア・インフラストラクチャを統合することで複雑さと費用が増してしまうのです。

今日、企業では、あらゆる一般ビジネスの遂行に必要な基本インフラを提供するために IT資源および予算の大

部分を費やしています。多くの場合、様々なベンダーが提供するデータベース、Web サーバー、アプリケーシ

ョン・サーバーおよびディレクトリの統合には、多大なエンジニアリングと保守が生じます。その結果、自社

を競合他社と差別化して競争優位を確立するための特定の技術的プロセスにかける時間も費用も少ししか残

らないのです。今日の典型的な企業では、IT資源の 80%を基本的なインフラの統合および保守に費やし、会社

独自のビジネス・プロセスに焦点を当てるためには 20%しか費やしていません。

特定のプロセス

20%

80%インフラストラクチャ

図 1. 典型的な IT 予算のブレークダウン

Oracle は、Oracle8i データベース、Oracle Internet Application Server 8i(Oracle iAS)、Oracle Internet Developer's Suiteという 3 つの主要製品で構成される、シンプルで完全、そして統合されたインターネット・プラットフォーム

を提供することで、お客様がこの比率を逆転できるようにします。Oracle のインターネット・プラットフォー

ムを使用すれば、複数のベンダーによる様々な製品を統合するための費用をなくすことができるので、お客様

の ITインフラの総所有コスト(TCO)を削減することができます。Oracle Internet Platform により、お客様は真

の付加価値サービスを作り出すことに自社の ITインフラの重点を移して、競合他社からの差別化を図ることが

できます。

Page 5: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 5

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle Internet Platform:シンプル、完全、そして統合:シンプル、完全、そして統合:シンプル、完全、そして統合:シンプル、完全、そして統合

Oracle iAS は、Oracle8i と Oracle Internet Developer's Suite を組み合わせ、インターネット・アプリケーションの

構築、配布および管理に必要なすべてを提供します。Oracle iAS と Oracle8i の組合せにより、シンプルで完全、

そして統合されたインターネット・プラットフォームが構成されます。

• シンプルシンプルシンプルシンプル。Oracle iAS と Oracle8i は、購入もインストールも単純で、管理も単純です。Oracle の主要な中間

層サービスすべてが Oracle iAS に統合されているので、お客様はポータルやトランザクショナル・アプリ

ケーション、およびビジネス・インテリジェンス機能を 1 つの製品で構築、配布することができます。OracleiAS の一連のサービスすべてが単一インストールによってすぐに利用できるように統合され、Oracle iAS とOracle8i は 1 つの管理ツールで管理することができます。

• 完全完全完全完全。データの管理に Oracle8i、アプリケーションの実行に Oracle iAS を使用する Oracle Internet Platform は、

コンテンツ管理や OLTP、モバイル、ビジネス・インテリジェンス、およびエンタープライズ統合アプリケー

ションなど、あらゆるタイプのアプリケーションを Web 上に構築および配布するための完全なソリューシ

ョンです。Oracle iAS と Oracle8i は、スケーラブルかつ可用性の高いインフラストラクチャを提供し、お客

様が自社のアプリケーションを再コーディングすることなく増え続けるユーザー数に簡単に対応できるよ

うにします。

• 統合統合統合統合。Oracle iAS は、従来のアプリケーション・サーバーの領域を超えた Oracle8i データベースに対する

高のミドルティア・サーバーです。蓄積された共通のテクノロジを活用することにより、Oracle iAS は中間

層でデータとアプリケーション・ロジックをキャッシングし、Oracle データベースを透過的に拡張します。

さらに、Oracle iAS はその堅牢なスケーラビリティ機能と可用性機能の多くを Oracle8i の成熟したテクノロ

ジから継承しています。

iAS

図 2. Oracle iAS と Oracle8i はともに、あらゆるタイプのインターネット・アプリケーションを

実行するためのシンプルで完全、そして統合されたプラットフォームを提供します。

本書では、Oracle iAS の技術概要を示します。 初に、Oracle iAS の主要コンポーネントそれぞれについて説明

することで“Oracle iAS とは何か”という疑問に答えていきます。次に、Oracle iAS の堅牢なスケーラビリティ、

可用性およびロード・バランス機能について説明し、これらの機能を示す段階的な例を用いて“Oracle iAS は

どのように動作するのか”という問いに答えます。第 3 に、図を用いた例を活用して Oracle プラットフォーム

の配布アーキテクチャについて考察します。 後に、本書のまとめで締めくくり、Oracle iAS における機能の

サポートに関するロードマップを示します。

Page 6: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 6

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

II. ORACLE iAS とは何か?とは何か?とは何か?とは何か?

インターネットにより、アプリケーション・アーキテクチャは典型的な 2 層クライアント/サーバー・モデルか

ら、プレゼンテーションとビジネス・ロジックがサーバーから配布される多様な多層構造へと移行しました。

Oracle Internet Application Server は、これらのインターネット・アプリケーションに対して理想的な環境を提供

します。

Oracle iAS は、アプリケーションを分散環境にインプリメントしてスケーラビリティと信頼性を得るために使

用される一連のサービスとユーティリティで構成されています。図 3 は、通信、プレゼンテーション、ビジネ

ス・ロジック、データ管理、およびシステム・サービスという 5 つのカテゴリに分類された Oracle iAS の主要

な要素を示しています。さらに、Oracle iAS にはこの図に示されていない開発者キットも用意されています。

以下のセクションでは、Oracle Internet Application Server のアーキテクチャの概要について説明します。

Oracle8i

Enterprise Manager, Advanced Security, OID (client)

Forms

Reports

OracleHTTPServer

(Apache)

CommunicationServices

PresentationServices

Business LogicServices

DataManagement

Services

System Services

OracleJSP

PL/SQL(PSP)

Discoverer

PERL

StoredProcedures

(Java, PL/SQL)

XML

Oracle8iCache

Components(BC4J)

Apache JServ(Servlets)

EJBs(8i JVM)

CORBAServices

OraclePortal

通信サービス通信サービス通信サービス通信サービス

Forms

プレゼンテーション・プレゼンテーション・プレゼンテーション・プレゼンテーション・サービスサービスサービスサービス

ビジネス・ロジック・ビジネス・ロジック・ビジネス・ロジック・ビジネス・ロジック・サービスサービスサービスサービス データ管理データ管理データ管理データ管理

サービスサービスサービスサービスOraclePortal

コンポーネントコンポーネントコンポーネントコンポーネント((((BC4J))))

Oracle8iCache

システム・サービスシステム・サービスシステム・サービスシステム・サービス

Enterprise Manager、、、、Advanced Security、、、、OID((((クライアント)クライアント)クライアント)クライアント)

Oracle HTTPServer

((((Apache))))

Apache JServ((((サーブレット)サーブレット)サーブレット)サーブレット)

EJB((((8i JVM))))

ストアド・ストアド・ストアド・ストアド・プロシージャプロシージャプロシージャプロシージャ

((((Java、、、、PL/SQL))))

CORBAサービスサービスサービスサービス

図 3. Oracle iAS の主要な要素

このセクションでは、Oracle iAS サービスそれぞれについて説明します。 初に、サービスについて簡単に文

章で説明します。次に、サービスのインプットとアウトプットに焦点を当てて、Oracle iAS アーキテクチャに

おけるサービスの位置付けを示した図表を示します。第 3 に、図表の下にあるテキスト・ボックスに、サービ

スの機能、インプリメンテーション、およびその他の特性についてまとめます。

通信サービス通信サービス通信サービス通信サービス

これらのサービスでは、Oracle Internet Application Server で受け取った要求を処理します。これらの要求には、

Oracle HTTP Server によって処理されるものと、Oracle Internet Application Server の別の領域にルーティングさ

れて処理されるものがあります。Oracle iAS の他のコンポーネントにより、IIOP、RMI、Net8 などに対するサ

ポートも提供されます。また、Oracle iAS を使用してモバイル WAP テクノロジもサポートすることができます。

本書では、主に Oracle iAS の HTTP サービスに焦点を当てていきます。

Page 7: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 7

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle HTTP Server((((powerd by Apache))))

Oracle HTTP Server は、インターネットにおける Web リスナーの事実上の業界標準である Apache Server に基づ

いています。Apache は世界のインターネット・サイトの 60%以上で使用されており、堅牢でスケーラブルな技

術と緻密にテストされた製品を提供しています。以下の図表は、Oracle HTTP Server の主要なコンポーネント、

インプットおよびアウトプットを示しています。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTP

ApacheJServ

Oracle8i

AJP

Net8

Oracle HTTP Server機能機能機能機能::::HTTP Server および要求のディスパッッチャです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::Apache Server に基づいており、OS の 上位で実行されるのは主に C コードです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::クライアントから HTTP 要求を受け取り、ファイル・システムか

らの静的ファイルを処理し、“mods”(mod_jserv など)を介して要求を別の Oracle iAS サービスにディスパッチ

します。mods は C でインプリメントされ、HTTP Server プロセス内で実行されます。

その他その他その他その他::::HTTP Server では状態が保持されないので、プロセスやノードに障害が発生した場合でも完全なフェイル

オーバー機能が提供されます。

Oracle HTTP Server Modules((((mods))))

Mods とは、HTTP Server へのプラグインであり、ネイティブなサービス(mod_ssl など)を提供するか、また

は要求を外部プロセスにディスパッチすること(Apache JServ にディスパッチする mod_jserv など)によって

HTTP Server の機能を拡張します。Oracle HTTP Server に付属するコンパイル済み Apache mods に加え、Oracleはいくつかの標準 mods を拡張し、Oracle 独自の mods を追加しました。これについては、後続のセクションで

説明します。

mod_plsql

このモジュールは、ストアド・プロシージャへの HTTP 要求を Oracle8i エンジンにルーティングして処理され

るようにします。mod_plsql は HTTP Server プロセス内で実行します。mod_plsql は、Oracle Application Serverで言う PL/SQLカートリッジに相当する機能を提供します。

Oracle8iHTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTPNet8

Page 8: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 8

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

mod_plsql機能機能機能機能::::ステートレスな PL/SQL と Java ストアド・プロシージャへの要求をディスパッチする HTTP Server プラグイ

ンです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に C コードです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::ストアド・プロシージャ実行に対する HTTP 要求は、HTTP Serverから mod_plsql に渡され、mod_plsql によってデータベース・ストアド・プロシージャにマップされます。mod_plsqlでは、DAD(データベース・アクセス記述子)によって指定されるデータベース接続が保持されます。各 HTTP Serverプロセスには要求それぞれを処理するために再使用できるステートレスなデータベース接続があるので、接続

プーリングは不要であることに注意してください。

mod_ssl

このモジュールは、Oracle が完全にサポートする標準 HTTPS を提供します。mod_ssl により、Oracle 提供の暗

号化技法を Secure Sockets Layer(SSL)を介して使用し、HTTP Server とブラウザ・クライアント間での安全な

接続が可能になります。また、このモジュールはデジタル認証テクノロジによるインターネット上での認証に

も使用できます。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTP

mod_ssl機能機能機能機能::::SSL 接続をすぐに利用できるようにする HTTP Server プラグインです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に C コードです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::HTTP Server は、安全な HTTPS プロトコルを介してコンテンツを

処理するように構成できます。mod_ssl では、HTTP Server とブラウザ・クライアント間でのセキュリティ・ハン

ドシェイクが管理されます。

その他その他その他その他::::mod_ssl では、Oracle の暗号化技法が利用されます。

mod_perl

このモジュールは、Perl アプリケーションの要求を Oracle HTTP Server に組み込まれた Perl インタープリタに

渡します。組込み Perl インタープリタにより、外部インタプリタ・プロセスを開始するためのオーバーヘッド

が排除されます。モジュールとスクリプトが 1 度だけロードおよびコンパイルされるコード・キャッシング機

能により、サーバーはすでにロードおよびコンパイルされたコードを実行することができ、繰り返される Perl実行によって発生するオーバーヘッドを抑えることができます。これについての詳細は、Perl インタープリタ

のセクションで説明します。

mod_jserv

mod_jserv は、すべての Java Servlet および JavaServer Pages(JSP)要求を、Apache JServ プロトコル(AJP)を

介して Apache Jserv Servlet エンジンにルーティングします。JSP の場合、Oracle JSP ランタイムによって、ApacheJServ 環境内でのページの実行が管理されます。これについての詳細は、Apache JServ のセクションで説明しま

す。

Page 9: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 9

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

プレゼンテーションプレゼンテーションプレゼンテーションプレゼンテーション・サービス・サービス・サービス・サービス

Oracle iAS のプレゼンテーション・サービスは、通常、いくつかの種類のグラフィカル・プレゼンテーション

を、多くの場合 HTML書式で出力します。Oracle iAS は、Perl スクリプトや Java Servlet を使用した低レベル・

プログラミングから、Oracle Portal サービスを使用した高レベルなフレームワークまでを含む、クライアント

に配信するプレゼンテーションの多様な生成方法をサポートしています。以下のセクションでは、Oracle iASでプレゼンテーション・サービスを提供する要素について説明します。

ポータルポータルポータルポータル・サービス・サービス・サービス・サービス((((Oracle Portal))))

Oracle Portal は、ポータルの構築と管理を行うためのツールおよびランタイムです。企業では、従業員が簡単

にコンテンツを Web 上で発行し、管理できる方法を必要としています。このような企業は、自社のポータル・

データを集中管理し、サイトの一貫したルックアンドフィールを生成し、コンテンツやトランザクション、お

よびビジネス・インテリジェンス・アプリケーションへの内部アクセスを提供することを望んでいます。OraclePortal では、シングル・サインオン、パーソナライゼーション、ポートレット拡張テクノロジを採用して外部

コンテンツや企業情報、およびアプリケーションのシンプルかつ統合されたビューを提供することによって、

これらの要件すべてを満たします。

開発者は、Portal Developer's Kit APIを使用することにより、他のアプリケーションや Java および XMLを使用

して多様に配信された情報を統合することができます。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTPOracle8iPL/SQL

Net8OraclePortal

iAS or 8i

ポータルポータルポータルポータル・サービス・サービス・サービス・サービス((((Oracle Portal))))機能機能機能機能::::イントラネット・ポータル・エンジン、およびセルフサービス Web 開発ツールです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::2 つの主要な部品から成ります。エンジンは Oracle8i PL/SQL 内で実行される PL/SQLです。要求は mod_plsql を介してディスパッチされます。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Oracle Portal への HTTP 要求は、HTTP Server によって mod_plsqlに渡され、ここから Oracle8i PL/SQL エンジンにディスパッチされてストアド・プロシージャとして実行されます。

PL/SQL プロシージャは、バックエンドの Oracle8i、または Oracle iAS で実行されます。

Apache JServ

Apache JServ は、Sun Microsystems 社の Java Servlet 2.0 API 仕様に完全に準拠した Java Servlet エンジンです。

Oracle Portal と同様、Apache JServ は 2 つの主要部分にインプリメントされます。1 つは Servlet エンジンそのも

ので、このエンジンは 100% Java で構成され、バージョン 1.1 以降の Java Virtual Machine で実行します。2 つめ

は HTTP Server 拡張である mod_jserv で、これは HTTP Server プロセス内で実行され、HTTP Servlet 要求を Servletエンジンのインスタンスにディスパッチします。mod_jserv は、Apache JServ Protocol(AJP)を介して Servletエンジンと通信します。AJP は TCP/IP の 上位に位置し、Servlet エンジンをローカルまたはリモートのいずれ

かで HTTP Server から実行できるようにします。

Page 10: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 10

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTP

JDK JVMAJP

ApacheJServ

RMI

IIOP

Net8

Apache JServ機能機能機能機能::::現在、Servlet API バージョン 2.0 をサポートする Java Servlet エンジンです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::2 つの主要部分から成ります。エンジンは JVM(通常は JDK)で実行される 100% Javaです。要求は、mod_jserv を介して、AJP(Apache JServ Protocol)によってエンジンにディスパッチされます。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Servlet への HTTP 要求は、HTTP Server から mod_jserv に渡され、

ここから Jserv Servlet エンジンにディスパッチされます。エンジンは、ローカルまたはリモートで HTTP Server から実行されます。

Oracle JSP

Oracle JSP は、JavaServer Pages(JSP)のためのトランスレータおよびランタイム・エンジンです。JSP により、

プレゼンテーションとビジネス・ロジックを分離する簡単な方法が定義されるので、Java の知識がない HTML設計者でも極めて動的な Web ページを作成できます。Oracle JSP は、Apache JServ、または Servlet 仕様のバー

ジョン 2.0 以上をサポートする任意の標準 Servlet エンジンで実行できます。Oracle JSP は、JSP を Servlet にコ

ンパイルします。Oracle JSP は、ユーザーから JSP への要求に応じて動的に、または JSP 開発者によって明示

的に呼び出すことができます。Oracle JSP は、SQLJ、各国語サポート(NLS)、および付録のタグ・ライブラリ

にまでサポートを拡張することによって、データベース・アプリケーションに優れた拡張機能を提供します。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTP

JDK JVMAJP

ApacheJServ

OracleJSP

RMI

IIOP

Net8

Oracle JSP機能機能機能機能::::JavaServer Pages のためのトランスレータおよびランタイムです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::Oracle JSP は Java でインプリメントされているので、JVM で実行します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Oracle JSP は、スタンドアロン・トランスレータまたは Servletエンジンの一部として機能し、必要に応じて JSP を動的にコンパイルします。

PL/SQL Server Pages((((PSP))))

PL/SQL Server Pages は JavaServer Pages に似ていますが、サーバー側のスクリプト作成に Java ではなく PL/SQLを使用する点が異なります。Oracle PSP には、PSP コンパイラと PL/SQL Web Toolkit が含まれています。PSPは、データベース主体の Web ページの作成と実行や、PL/SQL で書かれた既存アプリケーションの活用に対し

て優れた方法を提供します。

Page 11: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 11

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTPOracle8iPL/SQL

Net8PSP

iAS or 8iiASまたはまたはまたはまたは8i

PL/SQL Server Pages((((PSP))))

機能機能機能機能::::PL/SQL Server Pages のためのトランスレータおよびランタイムです。PSP により、PL/SQL を HTML ページ

に埋め込むことができます。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::Oracle PSPは PL/SQLでインプリメントされており、バックエンドRDBMSまたはOracleiAS のいずれかで Oracle8i PL/SQL エンジンで実行されます。PSP では、Web ページの作成に PL/SQL Web Toolkitが利用されます。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Oracle PSP は、PSP ファイルを翻訳し、データベース・ストアド・

プロシージャを作成します。このストアド・プロジージャは、mod_plsql を介して Web 要求によってアクセスされ

ます。

その他その他その他その他::::注意:PL/SQL Web ページは、PL/SQL Web Toolkit を使用して直接書くこともできます。

Perl インタープリタインタープリタインタープリタインタープリタ

Perl ランタイム環境は、Oracle HTTP Server プロセスに組み込まれているので、Perl スクリプトを実行するため

の外部インタープリタの開始や IPC 呼出しを行うためのオーバーヘッドを回避できます。Oracle HTTP Serverで Perl スクリプトへの HTTP 要求が受け取られると、この要求は mod_perl にルーティングされ、ここから Perlインタープリタにルーティングされて処理されます。

HTTPS

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

HTTPPerl

Interpreter

Perl インタープリタインタープリタインタープリタインタープリタ

機能機能機能機能::::Web 要求された Perl スクリプト用の Perl インタープリタです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::HTTP Server プロセスにリンクされています。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Perl スクリプトへの HTTP 要求は、mod_perl によって処理中の Perlインタープリタにディスパッチされます。

ビジネスビジネスビジネスビジネス・ロジック・ロジック・ロジック・ロジック・サービス・サービス・サービス・サービス

Oracle iAS では、Java 開発アプローチとハイレベルなモデリングの両方を活用し、いくつかのビジネス・ロジッ

ク開発方法が提供されます。以下に説明するように、これらのアプローチには J2EE、EJB、Oracle BusinessComponents for Javaなどの Javaテクノロジに加え、Oracle FormsおよびReportsなどのリッチなGUI指向アプロー

チも含まれています。以下のセクションでは、Oracle Internet Application Server でビジネス・ロジック・サービ

スを提供する主要な要素について説明します。

Page 12: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 12

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle iAS 内部の Java エンジンは Oracle8i JVM です。Oracle8i JVM は当初、Oracle8i データベース用に設計さ

れましたが、3 つのデータベース・リリース後の現在では、極めて成熟したテクノロジになりました。この JVMは、当初はサーバー側環境における厳しい要求に応えるために設計されました。この有能な Java エンジンを

Oracle iAS に統合することにより、製品は Oracle8i JVM の利点をフルに活用できるようになります。Oracle8iJVM は Oracle8i と Oracle iAS の両方に共通の Java 環境なので、プラットフォーム全体がこの JVM から大きな

利点を得ることができます。これらの利点については、「Oracle iAS はどのように動作するのか」のセクション

で再び説明します。

Oracle Business Components for Java

Oracle Business Components for Java(BC4J)は 100% Java の XMLによって強化されたフレームワークであり、

多層のデータベース対応アプリケーションから再使用可能なビジネス・コンポーネントまでの生産的な開発、

移植可能な配布、および柔軟なカスタマイズを可能にします。アプリケーション開発者は、このフレームワー

クを使用して以下のことが行えます。

• 自動的にデータベースと統合される、コンポーネントのビジネス・ロジックを作成およびテストします。

• 異なるアプリケーション・タスクをサポートする、多様なデータの SQL ベース・ビュー間でビジネス・ロ

ジックを再利用します。

• Servlet、JavaServer Pages、および Java Swing シン・クライアントからビューにアクセスしたり、ビューを更

新したりします。

• 配布されたアプリケーションを修正することなく、アプリケーション機能を階層上にカスタマイズします。

Oracle8i

SQL

JDK JVM

ApacheJServ

OracleJSP

BC4J

Oracle8i JVM

IIOP

BC4J

Data

JDBC

JDBC

HTTP

データデータデータデータ

Oracle Business Components for Java機能機能機能機能::::データ主体 Java アプリケーションのためのランタイム・フレームワークです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::100% Java で、JVM 上で実行されます。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::BC4J ランタイムは、任意の JVM に配置できます。BC4J アプリ

ケーションは、Apache JServ の JSP、Oracle8i JVM の EJB、またはスタンドアロン・アプリケーションとして実行

できます。BC4J アプリケーションは、IIOP、HTTP、またはダイレクト Java コールを介して呼び出すことができ

ます。

Java 開発モデル開発モデル開発モデル開発モデル((((J2EE)のサポート)のサポート)のサポート)のサポート

高度にスケーラブルなサーバー側 Java プラットフォームとして設計された Oracle8i JVM は、J2EE(Servlet、JSPおよび Enterprise JavaBeans を含む)、CORBA およびデータベース・ストアド・プロシージャをサポートする、

エンタープライズ規模の 100% Java に準拠したサーバー環境です。Oracle8i JVM は、サーバーにおける同時実

行ユーザーの数が増えてもメモリー管理における負荷と複雑さを 小に抑えられる、その独特なアークテクチ

ャ設計によって高度なスケーラビリティを実現しています。

Page 13: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 13

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle8i JVM

EJBIIOP

CORBA

Servlet

JSPHTTP

Oracle HTTPServer

mod_8i HTTP/Net8 Stored Proceduresストアド・プロシージャストアド・プロシージャストアド・プロシージャストアド・プロシージャ

Oracle8i JVM機能機能機能機能::::セッションベースの Java VM であり、EJB、CORBAサーバー、Servlet および JSP のコンテナです。データ

ベース・ストアド・プロシージャも実行できます。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に C と Java です。Oracle8i PL/SQL エンジンおよび Oracle8i Cache とインフラストラ

クチャを共有します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::多数のクライアントから呼び出すことができます。

Oracle8i PL/SQL エンジンエンジンエンジンエンジン

Oracle8i PL/SQLエンジンは、PL/SQLストアド・プロシージャ、PL/SQL Web アプリケーション、および PL/SQLServer Pages(PSP)を実行するためのスケーラブルな環境です。Oracle8i PL/SQLエンジンは、Oracle データベー

ス・プロセス内のバックエンドでも、あるいは Oracle iAS 内の中間層でも実行できます。PL/SQL データベー

ス・ストアド・プロシージャと PSP は中間層でキャッシュされ、Oracle iAS の Oracle8i PL/SQLエンジンで実行

されるので、バックエンドにおける処理の負荷を軽減できます。

Oracle8i PL/SQLEngine

StoredProcedures

PSPs

Net8

OracleHTTPServer

(Apache)

mod_jserv

mod_perl

mod_plsql

mod_ssl

ストアド・ストアド・ストアド・ストアド・プロシージャプロシージャプロシージャプロシージャ

エンジンエンジンエンジンエンジン

PSP

Oracle8i PL/SQL エンジンエンジンエンジンエンジン

機能機能機能機能::::中間層で PL/SQL ストアド・プロシージャを実行します。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に C と PL/SQL です。Oracle8i JVM および Oracle8i Cache とインフラストラクチャを

共有します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::データベース・クライアントと、Oracle8i JVM で実行されるコー

ドから呼び出すことができます。

Oracle Forms サービスサービスサービスサービス

Oracle Forms サービスを使用して、インターネットおよび企業イントラネットを介して Oracle Forms Developerによって構築されたアプリケーションを実行できます。アプリケーション・サーバー層では、Oracle Forms サー

ビスはリスナーとランタイム・エンジンで構成されています。クライアント層では、Oracle Forms サービスは

アプリケーションにユーザー・インタフェースを提供する Java ベースの Forms シン・クライアント・アプレッ

トで構成されています。クライアントとサーバーがソケットを介して専用プロトコルによって直接通信するか

(通常、企業イントラネットに適切)、またはメッセージはインターネット環境で使用できるように HTTP を

通ってファイアウォールを抜けていきます。

Page 14: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 14

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle8iCache

HTTP

Oracle HTTPServer

Formsclient

FormsServices

Browser

JVM

Oracle8i

Net8

ブラウザブラウザブラウザブラウザ

Formsクライアントクライアントクライアントクライアント

Oracle Forms サービスサービスサービスサービス

機能機能機能機能::::Oracle Forms Developer アプリケーションのためのランタイム環境です。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::Java、C、および PL/SQL の組合せです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Forms クライアントは、ブラウザで Java アプレットとして実行さ

れ、Forms サービスと直接通信するか、または HTTP プロキシを介して通信します。Forms サービスは、データベー

スまたは Oracle8i Cache からデータを取得します。

Oracle Reports サービスサービスサービスサービス

Oracle Reports は、Oracle Reports アプリケーションを実行するためのランタイム・サービスです。企業は、デー

タ量の多いレポートを動的に生成し、その結果を Web を介して標準インターネット書式で発行できるアプリ

ケーションを迅速に配布できなければなりません。Oracle Reports サービスは、高度にスケーラブルで堅牢な

アーキテクチャによってこれを正確に実現します。

HTTP

Oracle HTTPServer

ReportsServicesBrowser

Oracle8iCache

Oracle8i

Net8ブラウザブラウザブラウザブラウザ

Oracle Reports サービスサービスサービスサービス

機能機能機能機能::::Oracle Reports のためのランタイム環境です。Web に Reports を.html および.pdf形式で公開します。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::C と PL/SQL の組合せです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Reports は、ブラウザ・クライアントによって起動でき、その要

求が HTTP Server を通して委任されます。Oracle iAS Reports サービスは、レポートを実行して結果を Web 上に公

開します。

Discoverer Viewer

Discoverer Viewer は、Web を介して Discoverer ワークブックを実行するためのランタイム環境です。DiscovererViewer を使用すると、ユーザーは標準 Web ブラウザから動的な非定型問合せと分析を実行することができます。

HTTP

Oracle HTTPServer

DiscovererViewerBrowser

Oracle8iCache

Oracle8i

Net8

ブラウザブラウザブラウザブラウザ

Page 15: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 15

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Discoverer Viewer機能機能機能機能::::Web 上で Discoverer ワークブックを実行します。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::C と PL/SQL の組合せです。HTML で出力します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Discoverer の非定型データ分析は、HTML を介してあらゆるイン

ターネット・ブラウザで利用できます。HTTP 要求は、HTTP Server を介して委任されます。

データ管理サービスデータ管理サービスデータ管理サービスデータ管理サービス

バックエンドのデータベース・インスタンスの負荷を軽減し、読取り専用データのネットワーク・ラウンドト

リップを回避するために、Oracle Internet Application Server には Oracle8i Cache が含まれています。

Oracle8i Cache

Oracle8i Cache は、Oracle Internet Application Server のコンポーネントとして中間層に常駐する、読取り専用デー

タおよびアプリケーション・キャッシュです。Oracle8i Cache は、中間層マシン内の頻繁に使用されるデータと

ストアド・プロシージャをキャッシュすることにより、Oracle データベースにアクセスするアプリケーション

のパフォーマンスとスケーラビリティを向上させます。Oracle8i Cache を使用すれば、多くの場合はアプリケー

ションの通常キャパシティの数倍も多くの要求を処理できます。

• パフォーマンス:データベース問合せを中間層で処理することにより、ネットワーク上でのデータの送受

信にかかる時間を短縮できます。

• スケーラビリティ:データベース・サーバー層における負荷を軽減することにより、既存のデータベース

でサポートできるユーザー数が増加します。

Oracle8i Cache

Cacheddata

SQLNet8OCI client

Oracle8i

Data

SQLNet8OCIクライアントクライアントクライアントクライアント データデータデータデータキャッシュキャッシュキャッシュキャッシュ

されたデータされたデータされたデータされたデータ

Oracle8i Cache機能機能機能機能::::中間層のキャッシュされたデータで、読取り専用 SQL を実行します。更新は、自動的にバックエンドの

RDBMS から伝播されます。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に C です。Oracle8i JVM および Oracle8i PL/SQL エンジンとインフラストラクチャを

共有します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::データベース・クライアント、または Oracle8i JVM と Oracle8iPL/SQL エンジンで実行されるコードによって呼び出すことができます。

Oracle8i Cache から利点を享受できるアプリケーションは?

いくつかのアプリケーションは、Oracle8i Cache を中間層に配布することによってパフォーマンスとスケーラビ

リティにおける大きな利点を引き出すことができます。Oracle8i Cache の効果は、アプリケーションの特性に

よって大きく異なります。Oracle8i Cache から も良い効果を得られるアプリケーションは、以下のものです。

• Oracle データベースからネットワークを介してデータにアクセスするアプリケーション。ローカル・ノー

ドで Oracle8i Cache を使用することにより、アプリケーションへのデータ・アクセスが高速になります。

Page 16: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 16

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

• 大量の動的な読取り専用コンテンツがあるアプリケーション。元来、アプリケーションがデータ主体であ

るほど、データ・キャッシュを使用する利点が大きくなります。データの更新は常に自動的に元のデータ

ベースから伝播されるので、データ問合せが多いアプリケーションはキャッシュによって大きな利点を得

ることができます。

• 揮発性の低い分離した表があるアプリケーション。キャッシュを用いたデータ・レプリケーション・プロ

セスは、揮発性の低いデータ・セットに対して非常に効果的です。。

Oracle8i Cache から利点を得られるアプリケーションの良い一例として、カタログ・データのある Web サイト

が挙げられます。この Web サイトの例として、たとえば本屋などがあり、ここでは題名や著者、評論、および

その他多くの情報を含む、本に関するすべての情報が入ったデータベースが保持されています。データは比較

的静的で、日に 1 度、または週に 1 度更新されます。図 4 は、Oracle8i Cache を使用せずにサイトを構築する方

法の基本的な例を示しています。Web サイトの静的コンテンツ(Welcome ページ、図など)は、中間層の HTTPServer によって直接ファイル・システムから処理されます。バックエンドのデータベースにはすべてのカタロ

グ・データが格納されているので、動的な要求それぞれについて問合せの実行が必要になります。本来、Webサイトへの要求のほとんどは動的問合せです。これは、ユーザーは多くの場合、題名や著者、主題、またはそ

の他の変数によって本を検索するためです。したがって、図中では HTTP Server とデータベース間にある多数

の双方向矢印によって示されているように、データベース・インスタンスに対する多数の要求が生じます。ユー

ザー数が増えれば、データベースに対して多数の要求が同時に行われることになります。単一のデータベー

ス・インスタンスが多大な負荷によって応答が遅くなるだけで、スケーラビリティのボトルネックになってし

まいます。

Staticcontent

Data readsData writes

Catalog data

HTTP Server

静的静的静的静的コンテンツコンテンツコンテンツコンテンツ

カタログ・カタログ・カタログ・カタログ・データデータデータデータ

データ読取りデータ読取りデータ読取りデータ読取りデータ書込みデータ書込みデータ書込みデータ書込み

図 4. キャッシュなし。静的コンテンツは中間層で処理されます。すべてのカタログ問合せはバックエンドで

実行されます。複数の四角形は、HTTP Server が複数のノードで実行されることを示しています。

CPU バウンド・データベースのボトルネックは、問合せの処理を中間層に委任することによって解決できます。

これは、図 5 に示すように、Oracle8i Cache でカタログ・データをキャッシングすることによって実現します。

ここでは、カタログ問合せのすべてが中間層ノードでローカルに処理されます。これにより、各データ問合せ

におけるネットワークのラウンドトリップを排除できるので、パフォーマンスが向上します。また、データベー

スの負荷を軽減することによって、アプリケーションのスケーラビリティを向上させることができます。デー

タベースは、もはやボトルネックではなくなります。

Data writesData reads

Staticcontent

Catalog data

HTTP Server Oracle8i Cache

静的静的静的静的コンテンツコンテンツコンテンツコンテンツ

カタログ・カタログ・カタログ・カタログ・データデータデータデータ

データ読取りデータ読取りデータ読取りデータ読取り データ書込みデータ書込みデータ書込みデータ書込み

図 5. キャッシュあり。すべてのカタログ問合せは中間層で実行されるので、バックエンドの負荷が低減します。

多数の中間層ノード上のキャッシュ・データにより、スケーラビリティが向上します。

Page 17: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 17

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle8i Cache のアーキテクチャ

図 6 は、Oracle8i Cache の基本的なアーキテクチャを示しています。あらゆる OCI(Oracle Call Interface)クラ

イアントが、Oracle8i Cache の存在によって利点を得ることができます。SQL文を受け取ると、OCIはその SQL文を解析し、コンテキスト(サーバーおよびセッション)、文のタイプ(問合せ、DML、PL/SQL など)、およ

び SQL文を SQLルート・アナライザ(SRA)に渡します。SRA は、OCIに対して文をローカルで Cache にルー

ティングするか、またはリモートで元のデータベースにルーティングするかを指示します。 初に、読取り専

用問い合わせでないすべてが自動的にバックエンドにルーティングされます。SRA では、読取り専用問合せを

受け取ると、ハッシュ・アルゴリズムを使用して実行プランが 適化されます。SQL文字列からハッシュを生

成し、それをハッシュ表で検索することは、非常にオーバーヘッドが少なく高速な操作です。ハッシュによっ

て SQL 文が以前にないものであると示されても、SRA は OCI に対し、問合せを Cache にルーティングするこ

とを指示します。キャッシュ内の検索では、“失敗”することもまれにありますが、これは 1 回だけです。な

ぜならば、Metadata Manager のハッシュ表が更新され、以後一致する SQL文は即座に元のデータベースにルー

ティングされるようになるためです。

Web Clients

Application + Application Server

Oracle8i Cache OCI

Metadata Manager

Data Set Manager Cache

Origin DB

“hit” “miss”

Client Tier

Middle Tier

Database Tier

SQL Route Analyzer

Webクライアントクライアントクライアントクライアント

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

元の元の元の元のデータベースデータベースデータベースデータベース

キャッシュキャッシュキャッシュキャッシュ“ヒットヒットヒットヒット” “失敗失敗失敗失敗”

クライアント層クライアント層クライアント層クライアント層

中間層中間層中間層中間層

データベース層データベース層データベース層データベース層

図 6. Oracle8i Cache のアーキテクチャ

この図の Data Set Manager は、ユーザーが Cache のレプリケーション・プロパティを構成する Cache 管理ツー

ルを表しています。

Oracle8i Cache の設定

図 7 に示されているように、キャッシュの構成は単純で、リスト・ボックスからデータベースを選択し、キャッ

シュされる表を選択するだけでほとんど済んでしまいます。キャッシュはディスクに保存されるので、キャッ

シュの 大サイズは空のディスク領域の大きさまでに制限されます。監視できるキャッシュのパフォーマンス

設定には、以下のものがあります。

• ヒット/失敗の件数とパーセント:これにより、キャッシュされる情報が正しいかどうかを判断することが

できます。失敗が多すぎる場合には、キャッシュする表を見直す必要があります。

• CPU 利用率:キャッシュ・ホスト・マシンにおける CPU 使用量とプロセッサの非アイドル時間です。

• メモリー/ディスク率グラフ:Cache メモリーを使用して実行された問合せ(ヒット)の率です(つまり、

ディスクでのヒットを必要としないキャッシュ・ヒット)。

• メモリー/スワップ・データ・グラフ:キャッシュ・ノードのメモリーの使用が多すぎないか、または少な

すぎないかを示します。

Page 18: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 18

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

図 7. Oracle8i Cache の構成

Cache と元のデータベースとの同期は、ユーザー定義の時間間隔で起こるように設定でき、完全リフレッシュ

と増分リフレッシュのいずれかとして実行できます。増分リフレッシュでは、 後のリフレッシュ後に変更さ

れたデータのみを更新すればよいので、多くの場合、完全リフレッシュを定期的に実行するよりも効果的なア

プローチになります。将来、Oracle8i Cache では、ある特定のイベントに応じて同期が実行されるトリガー・ベー

スのリフレッシュなど、さらなる同期オプションが提供される予定です。

システムシステムシステムシステム・サービス・サービス・サービス・サービス

システム管理およびセキュリティ・サービスを提供するために、Oracle Internet Application Server には、OracleEnterprise Manager と Oracle Advanced Securityが含まれています。これらのシステム・サービスにより、Oracle環境全体への包括的な管理フレームワークと、SSL(Secure Sockets Layer)に基づく暗号化および認証機能を介

したネットワーク・セキュリティが提供されます。

Oracle Enterprise Manager

Oracle Enterprise Manager は、Oracle プラットフォームを集中管理するための統合されたソリューションを提供

するシステム管理ツールです。グラフィカルなコンソールと Oracle Management Servers、Oracle Intelligent Agents、共通サービスおよび管理ツールを組み合わせることにより、Oracle Enterprise Manager は Oracle iAS と Oracle8iの両方を管理する包括的なシステム管理プラットフォームを提供します。

OracleManagement

ServerOEM Client

IntelligentAgent

IntelligentAgent

IntelligentAgentRepository

OEMクライアントクライアントクライアントクライアント

リポジトリリポジトリリポジトリリポジトリ

Oracle Enterprise Manager機能機能機能機能::::Oracle8i Cache、Oracle Forms および Reports の各サービスを含む、Oracle プラットフォーム全体を管理でき

ます。将来のリリースでは、OEM には HTTP Server へのサポートが追加される予定です。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::C と Java の組合せです。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::スタンドアロンまたアプレットとして Java コンソールを使用し

た、Oracle Enterprise Manager へのユーザー・インタフェースです。このコンソールは Oracle Management Server(OMS)に接続され、各ノードの Intelligent Agents によって管理されたノードからデータを取得します。

Page 19: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 19

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle Advanced Security

Oracle Advanced Securityは、Oracle8i Cache、Oracle8i JVM、および Oralce8i PL/SQLへの包括的なセキュリティ・

サービス・スイートを提供します。機能は 2 つに分けられます。第 1 に、そのネットワーク・セキュリティ機

能によって企業のネットワークが保護され、企業ネットワークが安全にインターネットへと拡張されます。第

2 に、セキュリティとディレクトリ・サービスを統合することにより、エンタープライズ・ユーザー管理とシ

ングル・サインオン機能が提供されます。

Oracle8i Cache

Secure SecureOracle8i JVM

Oracle8i PL/SQL

安全安全安全安全 安全安全安全安全

図 8. Oracle Advanced Security により、Oracle8i Cache、Oracle8i JVM、および iAS の

Oracle8i PL/SQL コンポーネントに対する双方向の接続が保護されます。

開発者キット開発者キット開発者キット開発者キット

Oracle Database Client Developer's Kit

Oracle Database Client Developer's Kit には、Oracle8i と Java2 Enterprise Edition サポート(JMS、SQLJ、JDBC、JNDI)に対するクライアント・ライブラリが含まれています。開発者は、自分が書くアプリケーションにライブラリ

を含めます。これらのアプリケーションは Oracle iAS で実行し、Oracle8i データベースにアクセスします。

JDBCC libraries

OCI

LDAP client

Net8

Javalibraries

SQLJ

JMS

EJB client

Net8

Net8

LDAPand others

Net8

LDAP

AdvancedSecurity SSL and

others

Dat

abas

e/D

irect

ory

Dat

abas

e/D

irect

ory

JNDI

IIOP

Cライブラリライブラリライブラリライブラリ

LDAPクライアントクライアントクライアントクライアント

Javaライブラリライブラリライブラリライブラリ

EJBクライアントクライアントクライアントクライアント

データベース

データベース

データベース

データベース

/ディレクトリ

ディレクトリ

ディレクトリ

ディレクトリ

データベース

データベース

データベース

データベース

/ディレクトリ

ディレクトリ

ディレクトリ

ディレクトリ

Oracle Database Client Developer's Kit機能機能機能機能::::データベースおよびOracle8i Cacheアプリケーションのライブラリです。Oracle ClientとEnterprise Javaサポー

トが含まれています。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::主に Java と C です。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::Java ライブラリは JVM で実行されます。データベース・クライ

アント C ライブラリは、C クライアント・アプリケーションにリンクできます。

Oracle XML Developer's Kit((((XDK))))

Oracle XML Developer's Kit(XDK)には、XML対応アプリケーションと Web サイトで使用される XMLコンポー

ネント・ライブラリとユーティリティが含まれています。XDK for Java は、Oracle の XML Parser、XSL Translator、XML Class Generator、XSQL Servlet、および XML Transviewer Beans で構成されます。XMLコンポーネントは、

C および PL/SQL言語でも利用できます。

Page 20: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 20

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

JDK JVM

ApacheJServ

OracleJSP

BC4J

Oracle8iJVM

BC4J

XDK forJava

XDK forJava

Oracle XML Developer's Kit機能機能機能機能::::XML 対応アプリケーション開発のためのツールキットです。

インプリメンテーションインプリメンテーションインプリメンテーションインプリメンテーション::::Java バージョンは 100% Java なので、JVM で実行します。

Oracle iAS アーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付けアーキテクチャにおける位置付け::::XDK ランタイムは任意の JVM に配布できます。

III. ORACLE iAS はどのように動作するのか?はどのように動作するのか?はどのように動作するのか?はどのように動作するのか?

Oracle iAS は、複数のノードに渡って実行し、多数のユーザーをサポートできるようにアプリケーションを拡

張する堅牢なサーバーです。このセクションでは、Oracle iAS のスケーラビリティ、可用性、およびロード・

バランス機能について説明し、Oracle iAS がどのように動作するのかを見ていきます。

スケーラビリティスケーラビリティスケーラビリティスケーラビリティ

システムのスケーラビリティとは、一般的に、負荷が大きい状況下で満足できるパフォーマンスを提供するシ

ステムの能力のことを指します。スケーラビリティは、システムのボトルネックによって常に制限されてしま

います。このようなボトルネックは、ハードウェア・ノードのメモリーである場合もあれば、ノードの処理能

力や、その他のハードウェア以外のシシテムにおける制限などがあります。ハードウェア・ノードのメモリー

やノードの処理能力の場合、このようなシステムはそれぞれメモリー・バウンドまたは CPU バウンドであると

言えます。システムのスケーラビリティを改善する も効率的な方法は、そのボトルネックを識別することで

あり、システムを再構成してそのボトルネックを解消することです。Oracle iAS は、ユーザーが発生し得る多

様なシステムのボトルネックに対応できるようにすることで、スケーラブルな環境を提供します。

Oracle iAS は、3 つの主要な方法によって Web アプリケーションの高度なスケーラビリティを実現します。第 1に、Oracle iAS は広範なハードウェアおよび OS 上で動作するので、ユーザーはアプリケーションを変更するこ

となくハードウェアを交換できます。第 2 に、Oracle iAS は中間層のデータベース・データとストアド・プロ

シージャをキャッシングすることによって、システムのスケーラビリティを飛躍的に向上させることができま

す。これにより、バックエンドのデータベースでは多数の同時実行ユーザーに対応できます。第 3 に、Oracle iASは単一ノードまたは複数ノードのクラスタに配布できるので、ステートレスなアプリケーションとステートフ

ルなアプリケーションの両方を拡張できます。

ハードウェアのスケーラビリティハードウェアのスケーラビリティハードウェアのスケーラビリティハードウェアのスケーラビリティ

Oracle iAS と Oracle8i の両方で構成される Oracle Internet Platform では、ロー・エンドのハードウェアからクラ

スタまで、多様なハードウェアとオペレーティング・システムを選択できます。Oracle iAS と Oracle8i では、

Microsoft 社の OS、すべての主要な UNIX プラットフォーム、およびその他の多様なシステムをサポートして

Page 21: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 21

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

います。したがって、ユーザーは使用しているソフトウェア・プラットフォームを変更したりアプリケーショ

ンを再度書いたりすることなく、ハードウェアと OS を自由に選択できます。

Windows NTWindows 2000

OrLinux

Windows2000 Cluster

SolarisHP/UX

AIXUNIX Cluster Mainframeまたはまたはまたはまたは クラスタクラスタクラスタクラスタ

クラスタクラスタクラスタクラスタ メインフレームメインフレームメインフレームメインフレーム

図 9. ハードウェアのスケーラビリティ。Oracle iAS と Oracle8i は広範なハードウェアおよび

OS 上で動作します。

データのスケーラビリティデータのスケーラビリティデータのスケーラビリティデータのスケーラビリティ

データ主体のアプリケーションを実行するシステムでは、1 つの単一ノード・データベース・インスタンスが

スケーラビリティのボトルネックになることがあります。起こり得る問題の 1 つには、データベース・ノード

のメモリーに制約があり、頻繁なページングによってパフォーマンスが低下することが挙げられます。多くの

場合、この問題は単にマシンにメモリーを追加するだけで安価に解決できます。

より一般的な問題は、データベース・ノードが CPU バウンドである場合です。多くのシステムには、多数の同

時クライアントからのすべての問合せとトランザクション処理を実行している単一ノードが存在します。

データベース・ストアド・プロシージャのようなアプリケーション・コードは、データベース・データの近く

で実行することによって、パフォーマンス全体の利点を得られることが多いのですが、これらのアプリケーシ

ョンはデータベース・ノード上で追加の CPU サイクルを必要とします。データベース CPU 制約は、企業がデー

タベース・アプリケーションを企業イントラネットおよびインターネットを介してより多くのユーザーが使用

できるようにしだすと、ますます明確になります。Oracle8i Cache と Oracle iAS をともに使用すれば、データお

よびアプリケーション処理の負荷をバックエンドのデータベース・ノードから中間層に移すことによってこの

問題に直接対応することができます。

Oracle8i Cache を使用してデータ処理の負荷をバックエンドから中間層に移すシナリオの例を示す図 4 と図 5を参照してください。Oracle8i Cache により、元のデータベースではデータの更新とより少数のデータ問合せに

対応するだけで済むため、より多くのユーザーをサポートできます。アプリケーションでは、ネットワークを

介してデータベースに問い合わせる代わりにローカルのデータ・キャッシュに問い合わせればよいので、より

優れたパフォーマンスを引き出すことができます。

アプリケーションのスケーラビリティアプリケーションのスケーラビリティアプリケーションのスケーラビリティアプリケーションのスケーラビリティ

Oracle iAS は、アプリケーションの実行に対して非常に優れたインフラストラクチャを提供します。このセク

ションでは、Oracle iAS 環境でステートレスおよびステートフルのアプリケーション両方のスケーラビリティ

がどのように提供されるかについて説明します。

Page 22: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 22

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

ステートレスおよびステートフルなスケーラビリティ

Oracle Internet Application Server では、ステートレスおよびステートフルなトランザクショナル Web アプリケー

ションがサポートされます。ステートレスなアプリケーションでは、環境内に状態情報が保持されません。た

だし、ブラウザのデータベースやクッキーなどの永続的ストアに状態情報を格納することは可能です。ステー

トレスなアプリケーションの例として、ユーザーのカート内のコンテンツをデータベースに保存するショッピ

ング・カート・プログラムがあります。ユーザーが要求を発行するたびに、アプリケーションは永続的ストア

から状態情報を取り出し、要求を処理し、データベースを更新し、クライアントに応答を送信します。アプリ

ケーション自体では、連続的なクライアント・コール間においてユーザーのショッピング・カートは追跡され

ません。このタイプのアプリケーションは、CGIスクリプト、ステートレス Java Servlet、あるいはその他多様

な方法によってインプリメントされます。

クライアントのセッション状態クライアントのセッション状態クライアントのセッション状態クライアントのセッション状態

ノードA

データベース

ノードB

クライアント

ロード・バランサ

図 10. ステートレス・アプリケーション。この図では、ノード A 上のアプリケーション・メモリーには

クライアント固有のセッション状態は保持されません。その代わりに、この情報はデータベースに

保存されます。後続の要求では、クライアントはノード A またはノード B によってサービスされます。

これらのノードはいずれも、セッション状態にアクセスできます。

一方、ステートフルなアプリケーションは、連続したクライアント・コール間で、ランタイム環境内にセッシ

ョン状態情報を保持します。ショッピング・カート・アプリケーションは、このモデルを使用してインプリメ

ントすることもできます。この場合、ユーザーのショッピング・カート内のコンテンツは毎回クライアントの

ブラウザに送信されるのではなく、アプリケーションそのものによって追跡されます。たとえば、Java Servletの場合、各ユーザー・セッションに固有の HttpSession オブジェクトに状態情報をアタッチすることによって、

セッション状態が保持されます。ユーザーがサーバーに新規 HTTP 要求を発行するたびに、サーバーによって

その要求がユーザーの HttpSession オブジェクトに関連付けられます。

クライアントのセッション状態クライアントのセッション状態クライアントのセッション状態クライアントのセッション状態

ノードA

データベース

ノードB

クライアント

ロード・バランサ

図 11. ステートフルなアプリケーション。この例では、クライアント固有のセッション状態がノード A に

保持されます。後続の各要求では、セッション状態にアクセスするためにクライアントは

(ノード B ではなく)ノード A によってサービスされる必要があります。

多くのアプリケーションは、ステートレス・モデルまたはステートフル・モデルのいずれかを使用するように

作成でき、それぞれのアプローチには様々な利点があります。今日、インターネット上で実行される Web アプ

リケーションの大部分は、ステートレス・モデルによってインプリメントされています。上の図に示されてい

Page 23: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 23

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

るように、ステートレス・アプリケーションには、複数のアプリケーション・サーバー・インスタンスのいず

れによってもほとんどのクライアント要求をサービスできるという利点があります。これにより、よりスケー

ラブルで障害に強いアーキテクチャを生成できる場合があります。一方、ステートフルなアプリケーションで

は状態保持が少なくて済むため、作成がより簡単になります。また、アプリケーションのステートフルなイン

プリメンテーションによってパフォーマンスが向上する場合があります。たとえば、クライアント・セッショ

ンが大量の状態で構成されており、短期間のうちに多数の呼出しがサーバーに対して実行されるアプリケーシ

ョンなどがこれに該当します。ステートフルなアプローチでは、呼出しのたびにセッション状態をアプリケー

ション環境に繰り返しロードすることが回避されます。

Oracle iAS は、ステートレスなアプリケーションとステートフルなアプリケーションの両方に対してスケーラ

ビリティを提供します。Java アプリケーションに関しては、Oracle iAS 内のどこで Java を実行すべきかに関す

る一般的なヒントを以下に示します。

• ステートレス Java アプリケーションは、JDK JVM でスケーラビリティが高くなります。

• ステートフル Java アプリケーションは、Oracle8i JVM 内でスケーラビリティが高くなります。

JVM は、ステートレスなアプリケーションとステートフルなアプリケーションの両方をサポートしますが、そ

の個々のアーキテクチャは、以下に説明するようにどちらか一方のほうがより適している場合があることに注

意してください。

Oracle iAS は、Oracle Forms、Oracle Reports、および PL/SQLアプリケーションに対しても極めてスケーラブル

なアーキテクチャを提供します。これらの Oracle iAS サービスのスケーラビリティ特性に関する詳細は、追加

のホワイトペーパーを参照してください。

Oracle iAS における Java アプリケーションのスケーラビリティ

JDK JVM は、多数のクライアントに迅速なパフォーマンスを提供することによって拡張できます。これは、主

にステートレスな Java アプリケーションにおいて優れた効果が得られますが、その理由は VM で多くの状態を

保持することによる負荷を回避できるためです。

クライアント

JDK JVM上のApache JServ

HTTP Server

クライアント

クライアント

クライアント

状態なし状態なし状態なし状態なし

図 12. JDK JVM 上のステートレスなアプリケーション。クライアントが増えても、連続する要求間で

管理される状態が増えることはありません。JDK JVM は、このシナリオで優れた動作を示します。

ただし、ステートフルなアプリケーションでは、多数の同時実行ユーザーがシステムにアクセスした場合、JDKJVM で多数のメモリー管理を同時実行することが強制されます。状態の管理によって、JDK JVM のスケーラ

ビリティが抑制されることがあります。

Page 24: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 24

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

クライアント

JDK JVM上のApache JServ

HTTP Server

クライアント

クライアント

クライアント

図 13. JDK JVM のステートフルなアプリケーション。このメモリーを管理することによって、

JDK JVM のパフォーマンスが低下することがあります。

Oracle8i JVM はセッションベースの JVM で、ステートフルなアプリケーションの処理に大変優れています。

ハードウェアのキャパシティの限界に達するまで、パフォーマンスが低下することはありません。Oracle8i JVMでクライアントのメモリー領域が分離されるのと同様に、JVM では各ユーザーのメモリー領域を個別にガベー

ジ収集することができます。このアーキテクチャでは、同時実行のガベージ収集は行われません。この理由は、

典型的な JVM でステートフルなアプリケーションを実行した場合に、スケーラビリティの主なボトルネック

になることが多いためです。

Oracle8i JVM

クライアント

HTTP Server

クライアント

クライアント

クライアント

図 14. Oracle8i JVM のステートフルなアプリケーション。Oracle8i JVM では、その分離された

メモリー管理の結果、同時実行のガベージ収集は行われません。

可用性可用性可用性可用性

Oracle iAS でアプリケーションを実行するクライアントでは、様々なタイプのハードウェアおよびソフトウェ

ア障害の際にサービスの損失がまったくないか、ほとんどないことが理想的です。Oracle iAS では、システム

の可用性を保持するための多数の機能とメカニズムが提供されます。

• Oracle iAS では、1 個所の障害がシステム停止に至ることはありません。(No Single Point of Failure)

• Oracle iAS では、セッションを分離し、セッション障害の影響を 小限に抑えます。

• Oracle iAS では、自動的に障害を発見し、接続を再ルーティングし、プロセスを再起動し、場合によっては

セッションをフェイルオーバーします。

Page 25: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 25

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

No Single Point of Failure

Oracle iAS に用意されている柔軟な配置モデルにより、1 個所の障害がシステム停止を引き起こさぬよう OracleiAS を配置することができます。つまり、システムのどのノードで障害が発生した場合でも、Oracle iAS は機

能し続け、クライアント要求にサービスを提供することができます。図 15 は、アプリケーション・サーバー

とデータベースの両方を含む、Oracle システム全体において、1 個所の障害によってはシステム停止に至らな

い Oracle iAS と Oracle8i の配置例を示しています。どのノードで障害が発生しても、システムは機能し続ける

ことができます。ロード・バランサは、複数の HTTP Server のいずれにでも要求を送信することができます。

次に HTTP Server は、任意の Apache JServ インスタンスに要求をディスパッチします。Apache JServ で実行す

る OCIプログラムは、任意の Cacheインスタンスに問合せを発行します。これらの Cacheインスタンスは、OracleParallel Server で実行する Oracle8i の複数インスタンスによって、バックエンドでサポートされています。この

図に示されているネットワーク・ロード・バランサは Oracle iAS の一部ではなく、サードパーティ製品である

ことに注意してください。可溶性を高めるため、これ自体、冗長な構成に配置される場合がます。

HTTPServer

Client Networkload-

balancer

HTTPServer

HTTPServer

ApacheJServ

ApacheJServ

ApacheJServ

Oracle8i

Oracle8iCache

Oracle8iCache

Oracle8iCache

HTTPServer

Oracle8i

クライアント ネットワーク・ロード・バランサ

図 15. No Single Point of Failure。障害発生ポイントがまったくない、Oracle iAS と Oracle8i の配置例です。

セッションの分離セッションの分離セッションの分離セッションの分離

セッションの分離は、ユーザーのセッションを相互に保護することによってダメージを 小限に抑えるための

いくつかのアーキテクチャのひとつです。あるユーザーのセッションで障害が発生しても、他のユーザーの

セッションには影響を与えません。Oracle iAS では、Oracle8i JVM、Oracle8i PL/SQL、Forms サービス、Reportsサービスなどでセッション分離が採用されています。セッション分離は、Oracle8i JVM と JDK JVM の違いを

決定づける機能であることに注意してください。図 16 に示されているように、JDK JVM ではセッション分離

メカニズムは採用されていません。1 つのクライアントが、JDK JVM に障害を引き起こすようなセッションに

遭遇した場合、その JDK JVM インスタンス上のセッションの全ユーザーに支障をきたすことになります。図

17 は、セッションの分離によって Oracle8i JVM 内で同時実行ユーザーがどのように保護されるのかを示してい

ます。

Page 26: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 26

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

バグバグバグバグ

クライアント

JDK JVM上のApache JServ

HTTP Server

クライアント

クライアント

クライアント

図 16. JDK JVM。典型的な JDK JVM にはセッションの分離はありません。あるユーザーの

セッション障害が、すべてのユーザーのセッションに障害をもたらすことがあります。

Oracle8i JVM では、以下のロード・バランスのセクションで説明されるマルチプロセス共有サーバー・アーキ

テクチャが採用されています。このアーキテクチャでは、効果的に同時実行セッションが相互に隔離されるの

で、やっかいな Java セッションによって引き起こされる 悪の事態でも、その実行中のプロセスに障害が発生

するだけです。したがって、たった 1 つのクライアントの状態を失うだけで済みます。その他のユーザー・セッ

ションは影響を受けず、ダウンしたプロセスがサーバーによって再作成されます。

Oracle8i JVM

バグバグバグバグ

クライアント

HTTP Server

クライアント

クライアント

クライアント

図 17. Oracle8i JVM は、セッションを互いに分離します。1 つのセッションで障害が発生した場合でも、 その他のセッションに影響はありません。

接続の再ルーティング接続の再ルーティング接続の再ルーティング接続の再ルーティング

要求にサービスを提供しているプロセスまたはノードに突然障害が発生した場合、Oracle iAS 内で実行中の

セッションはどうなるのでしょうか。いくつかのシナリオでは、セッションへのクライアント要求は別のサー

バーを利用するために再ルーティングされ、したがって障害はクライアントから隠蔽されます。Oracle iAS の

ステートレスなサービスに障害が発生した場合は、クライアント要求はサービスの代替インスタンスに再ルー

ティングされます。クライアントがステートフルなアプリケーションにアクセスしている場合は、クライアン

トは代替ルートを介してアプリケーションのインスタンスに再ルーティングされます。

図 18 は、障害が発生した HTTP Server ノードにおける接続の再ルーティングの例を示しています。この例では、

クライアントは Oracle8i JVM でステートフルなアプリケーションを実行しています。サーバーは、機能してい

るサービスを介して要求を透過的に再ルーティングするので、クライアントがそのセッションに継続してアク

セスする様子を見ることができます。

Page 27: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 27

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

クライアント ネットワーク・ロード・バランサ

ノードAのHTTP Server

ノードBのHTTP Server

Oracle8i JVM

Oracle8i JVM

Oracle8i JVM

A. クライアント要求が受け取られ、HTTP Server インス

タンスと Oracle8i JVM インスタンスにルーティングされ

ます。

Oracle8i JVM

Oracle8i JVM

Oracle8i JVM

クライアント ネットワーク・ロード・バランサ

ノードAのHTTP Server

ノードBのHTTP Server

B. Oracle8i JVM のアプリケーションはステートフルで、

セッション状態はインスタンスに保持されます。また、

クッキーはクライアントのブラウザに戻されます。

Oracle8i JVM

Oracle8i JVM

Oracle8i JVM

クライアント ネットワーク・ロード・バランサ

ノードAのHTTP Server

ノードBのHTTP Server

C. ここで、要求の間に、ノード Aの HTTP Server に障害

が発生しました。

Oracle8i JVM

Oracle8i JVM

Oracle8i JVM

クライアント ネットワーク・ロード・バランサ

ノードAのHTTP Server

ノードBのHTTP Server

D. 次の要求は、代替 HTTP Server を介して目的の Oracle8iJVM インスタンスにルーティングされます。

図 18. HTTP Server ノードで障害が発生した場合の接続の再ルーティング

図 18 に関しては、障害の発生が HTTP Server プロセスのみで、ノード全体ではない場合は、Oracle iAS によっ

てこの障害が発見され、プロセスが再び開始されます。

障害検出と再起動障害検出と再起動障害検出と再起動障害検出と再起動

サーバー・プロセスに障害が発生した場合、システムでは適切な処置が必要であり、おそらくメモリーのクリー

ンアップや障害が起きたプロセスの再起動が実行されます。Oracle iAS では、以下のタイプのプロセス障害を

検出し、必要に応じてそれらのプロセスを再起動します。

• HTTP Server::::HTTP Server 内の Watchdog プロセスにより、HTTP Server の子プロセスが監視され、障害発

生プロセスが再起動されます。

• Apache JServ::::各 HTTP Server プロセス内で実行する mod_jserv により、あらゆる Apache JServ インスタン

スの障害が検出され、このインスタンスへの要求のルーティングが却下されます。Oracle iAS の将来のリ

リースでは、リモートの Apache JServ インスタンスの自動再起動がサポートされる予定です。

• Oracle8i JVM、、、、Oracle8i PL/SQL、、、、Oracle8i Cache::::プロセス・モニター(PMON)プロセスにより、これ

らの Oracle iAS サービスのサーバー・プロセスが管理されます。PMON はサーバー・プロセスの障害を検

出し、クリーンアップ後にそれを再起動します。

フェイルオーバーフェイルオーバーフェイルオーバーフェイルオーバー

様々な障害の可能性(たとえば誰かがコンピュータの電源を切るなど)があっても、クライアントではサービ

スの損失に気づかないようにしなければなりません。フェイルオーバーは、システム障害をユーザーから隠蔽

するインフラストラクチャです。ステートレスなサービスに障害が起きると、Oracle iAS ではサービスの代替

インスタンスに対してフェイルオーバー要求が発行されます。これは、接続の再ルーティングに似ています。

ステートフルなサービスに障害が発生した後は、Oracle iAS ではいくつかのタイプのセッション状態を代替イ

ンスタンスにフェイルオーバーできます。たとえば、Oracle iAS では、Oracle8i Cache 内のセッション状態のス

テートフルなフェイルオーバーがサポートされています。

Page 28: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 28

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

図 19 は、Oracle8i Cache における透過的アプリケーション・フェイルオーバー(TAF)機能を示しています。

Cache ノードに障害が起きた場合、クライアント・セッションは代替インスタンスに自動的に再作成されます。

クライアント HTTPServer

ApacheJServ

Oracle8iCache

Oracle8iCache

A. クライアントは、キャッシュにステートフルなセッシ

ョンがあります。

クライアント HTTPServer

ApacheJServ

Oracle8iCache

Oracle8iCache

B. 元のキャッシュ・インスタンスがダウンした場合、

セッションは別のノードで再作成されます。

図 19. Oracle8i Cache におけるステートフルなセッションのフェイルオーバー

ロードロードロードロード・バランス・バランス・バランス・バランス

効果的なロード・バランスにより、システムで処理資源を効率的に使用できるようになり、スケーラビリティ

を 大限に引き出せるようになります。Oracle iAS では、単一ノード、または複数ノード配置におけるノード

間のスレッドとプロセスの両方で効率的にロード・バランスが実行されます。さらに、Oracle iAS は中間層サー

バー・ファームに配置できます。

このセクションでは、以下の配置例を参照しながら、いくつの Oracle iAS コンポーネントでロード・バランス

機能が提供されるのかを見ていきます。

• HTTP Server、単一ホスト

• HTTP Server、複数ホスト

• Apache JServ、単一ホストおよび複数ホスト

• Oracle8i JVM、単一ホスト

• Oracle8i JVM、複数ホスト

• HTTP Server および Oracle8i JVM

• 中間層サーバー・ファーム

その他の iAS サービスの多くでも、ロード・バランス機能が提供されることに注意してください。Forms、Reports、およびその他 iAS サービスにおけるロード・バランスに関する詳細は、追加のホワイトペーパーを参照してく

ださい。

HTTP Server、単一ホスト、単一ホスト、単一ホスト、単一ホスト

Oracle HTTP Server では、シンプルかつ効率的なメカニズムを使用して、サービスの単一インスタンス内にお

ける HTTP Server プロセス間のロード・バランスが実行されます。マスターHTTP Server プロセスは、クライア

ント要求そのものに対してサービスを提供しませんが、子プロセスのグループを生成し、監視します。子プロ

セスは mutex を使用して、共有ソケットから順番に HTTP 要求を受け取ります。mutex インスタンスは 1 つであ

り、現在 mutex を所有している子プロセスのみがソケットから要求を取り出すことができます。子が要求を受

け取ると、要求にサービスを提供する前に mutex を放し、他の利用可能な子が mutex を取得します。このよう

にして、ソケットへのアクセスが順次実行されますが、子は並列に要求をサービスできます。図 20 は、この

メカニズムを示しています。

Page 29: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 29

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Client

Child process

Child process

Child process

Masterprocess

Client Port 80 Mutex

クライアント

ポート80

子プロセス

マスター・プロセス

クライアント

子プロセス

子プロセス

A. 1 つの mutex が、同一ソケットでリスニングしている

すべての子によって共有されます。

Client

Child process

Child process

Child process

Masterprocess

Client Port 80 Mutex

クライアント

ポート80

子プロセス

マスター・プロセス

クライアント

子プロセス

子プロセス

B. クライアント要求は、mutex をもつ子によってサービ

スされます。

Client

Child process

Child process

Child process

Masterprocess

Client Port 80 Mutex

クライアント

ポート80

子プロセス

マスター・プロセス

クライアント

子プロセス

子プロセス

C. mutex は、利用可能な子に渡されます( 初の要求が

サービスされる前)。

Client

Child process

Child process

Child process

Masterprocess

Client Port 80 Mutex

クライアント

ポート80

子プロセス

マスター・プロセス

クライアント

子プロセス

子プロセス

D. 次のクライアント要求が、mutex をもつ新たな子に

よってサービスされます。

図 20. 単一ホスト上の HTTP Server におけるロード・バランス

HTTP Server、複数ホスト、複数ホスト、複数ホスト、複数ホスト

HTTP Server は、複数のノード上で実行できます。クライアント要求は、DNS ラウンドロビンまたは例えば CiscoLocal Director などのサードパーティ方法によって、ホスト・インスタンス間でロード・バランスされます。

CiscoLocal Director

ノードAのHTTP Server

ノードBのHTTP Server

クライアント

クライアント

A. 初の要求が、Local Director によって 1 つのノードに

ディスパッチされます。

ノードAのHTTP Server

ノードBのHTTP Server

Cisco Local Director

クライアント

クライアント

B. 次の要求が、Local Director によって別のノードにディ

スパッチされます。

図 21. 複数ホスト上の HTTP Server 間におけるロード・バランス

Apache JServ、単一ホストおよび複数ホスト、単一ホストおよび複数ホスト、単一ホストおよび複数ホスト、単一ホストおよび複数ホスト

(mod_jserv を介した)HTTP Server により、Servlet 要求は Apache JServ インスタンスにロード・バランスされ

ます。Apache JServ インスタンスは、単一ホスト上で同時実行することも、複数ホストに分散して実行するこ

ともできます。mod_jserv は、システム管理者によって多様なコンテナ・インスタンスに加重が提供される加

重アルゴリズムに基づいて、新しい要求を Servlet コンテナに割り当てます。このように、より強力なハードウェ

アで実行する Apache JServ インスタンスには、より小さいマシンのインスタンスよりも多くの要求が割り当て

られます。図 22 は、このシナリオの例を示しています。

Page 30: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 30

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

HTTPServer

ApacheJServ

ApacheJServ

ApacheJServ

ApacheJServ

Client

ApacheJServ

クライアント

図 22. Apache JServ のロード・バランス。Apache JServ は、1 つのノードで複数回インスタンシエート

することも、多数のノードに分散させることも可能です。

Oracle8i JVM、単一ホスト、単一ホスト、単一ホスト、単一ホスト

Oracle8i JVM、Oracle8i PL/SQLエンジン、および Oracle8i Cache は、Oracle8i マルチスレッド・サーバーを活用

します。Oracle8i マルチスレッド・サーバーは、サーバー・プロセスの効率的な使用によってスループットを

大にする、優れたロード・バランス・メカニズムです。このメカニズムは、2 つの主要部分に分けられます。

第 1 に、クライアント要求がサーバーのディスパッチャ・プロセス間でロード・バランスされます。第 2 に、

ディスパッチャ・プロセスによって要求が共通のキューに入れられ、これによって、複数の共有サーバー・プ

ロセス間で要求処理が効率的にロード・バランスされます。図 23 および 24 は、このメカニズムを示していま

す。この図では、例として Oracle8i JVM が使用されていますが、Oracle8i PL/SQLエンジンと Oracle8i Cache についても同様に説明できます。

クライアント リスナー・プロセス

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

プロセス・モニター(PMON)

A. Oracle8i JVMのPMONプロセスによって一連のディス

パッチャ・プロセスが監視され、Oracle リスナーにロー

ド情報が渡されます。

クライアント リスナー・プロセス

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

プロセス・モニター(PMON)

B. クライアントによってOracle8i JVMへの接続が開始さ

れると、クライアントはまずリスナー・プロセスに接続

します。

ディスパッチャAが利用可能

クライアント リスナー・プロセス

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

プロセス・モニター(PMON)

C. リスナーは、 も負荷の少ないディスパッチャ・プロ

セスにクライアントをリダイレクトすることで応えま

す。

クライアント リスナー・プロセス

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

プロセス・モニター(PMON)

D. クライアントは、新たに割り当てられたディスパッチ

ャに直接接続します。

図 23. Oracle8i JVM のディスパッチャを介したロード・バランス

Page 31: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 31

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

Oracle8i JVM は、ディスパッチャ間でのロード・バランスを提供するだけではありません。Oracle8i JVM は、

実際に要求を実行する共有サーバー・プロセス間でもロード・バランスを実行します。ディスパッチャ・プロ

セスにより、要求が共有キューに入れられます。この要求は、サーバー・プロセスによってデキューされ、

初に入った要求から順にサービスされます。

Shared serverprocess

Shared serverprocessRequest

queue

Dispatcherprocess A

Dispatcherprocess B

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

要求キュー

共有サーバー・プロセス

共有サーバー・プロセス

A. ディスパッチャAとディスパッチャBそれぞれが要求

をキューに入れます。

Shared serverprocess

Shared serverprocessRequest

queue

Dispatcherprocess A

Dispatcherprocess B

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

要求キュー

共有サーバー・プロセス

共有サーバー・プロセス

B. サーバー・プロセスが利用可能になると、キューの

も上にある要求がデキューされ、サービスされます。

Shared serverprocess

Shared serverprocessRequest

queue

Dispatcherprocess A

Dispatcherprocess B

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

要求キュー

共有サーバー・プロセス

共有サーバー・プロセス

C. ディスパッチャ B からの要求が、キューの 上位に移

動します。

Shared serverprocess

Shared serverprocessRequest

queue

Dispatcherprocess A

Dispatcherprocess B

ディスパッチャ・プロセスA

ディスパッチャ・プロセスB

要求キュー

共有サーバー・プロセス

共有サーバー・プロセス

D. 別のサーバー・プロセスが利用可能になると、その

サーバーによってキューの も上にある要求がサービス

されます。

図 24. Oracle8i JVM における共有サーバー・プロセス間のロード・バランス

Oracle8i JVM、複数ホスト、複数ホスト、複数ホスト、複数ホスト

Oracle8i JVM では、複数ノードでも同様に優れたロード・バランスが提供されます。単にクライアント要求を

単一ノード上のディスパッチャ・プロセスに再ルーティングするだけでなく、リスナーは単純なアルゴリズム

を使用して、複数ノード間に分散されたディスパッチャに要求をロード・バランスします。リスナーは、 初

に も負荷の軽いノードを選択し、次にそのノードにおける も負荷の軽いディスパッチャを選択することに

よってディスパッチャを選択します。

リスナー・プロセス

ノードBのディスパッチャ

ノードBのディスパッチャ

ノードBのPMON

ノードAのディスパッチャ

ノードAのPMON

ノードAのディスパッチャ

クライアント

図 25. 複数ノード間での Oracle8i JVM のロード・バランス。Oracle8i JVM のリスナー・プロセスにより、

クライアント要求が も負荷の軽いノード上の も負荷の軽いディスパッチャにリダイレクトされます。

Page 32: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 32

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

HTTP Server およびおよびおよびおよび Oracle8i JVM

ここで、2 つの部分をまとめて、Oracle iAS が提供する、Oracle8i JVM によってサービスされるクライアント

HTTP 要求に対するロード・バランスの 5 つのステップを見てみましょう。

Client NetworkLoad

Balancer

HTTP Servers Oracle8iListeners

Oracle8iDispatchers

Oracle8iSharedServersPorts Processes

1 2 3 4 5

AB

CD

E

F

G

クライアント ネットワーク・ロード・バランサ

Oracle8iリスナー

Oracle8iディスパッチャ

Oracle8i共有サービス

ポート プロセス

図 26. HTTP Server と Oracle8i JVM を利用するクライアント要求のサービスには、

5 段階のロード・バランスが関連しています。

A:::: クライアント HTTP 要求が、ネットワーク・ロード・バランサを通して受信されます。

B:::: ロード・バランスの第 1 段階は、要求が HTTP Server ノードの 1 つにルーティングされた際に発生します。

ネットワーク・ロード・バランサはノードをランダムに選択するか、または も負荷の少ないノードを選

択します。

C:::: HTTP Server ノード内では、サーバー・プロセスによって順に要求がサービスされます。準備の整ってい

るプロセスによって要求がサービスされます。

D:::: Oracle8i JVM は、複数のリスナー・プロセス間でロード・バランスを実行できます。リスナーは、ランダ

ムに選択されます。

E:::: リスナーによって、Oracle8i JVM ノードで も負荷の軽いノード、およびそのノード上で も利用可能な

ディスパッチャが決定されます。リスナーは、選択されたディスパッチャにクライアント(HTTP Serverプロセス)をリダイレクトします。

F:::: HTTP Server プロセスは、割り当てられた Oracle8i ディスパッチャに直接接続します。

G:::: ディスパッチャによって要求がエンキューされ、共有サーバー・プロセスによってサービスされます。共

有サーバー・プロセスが利用可能になると、要求にサービスが提供されます。

この要求のサービスには、5 段階のロード・バランスが関連しています。これは、図 26 の下部にあるサークル

1 から 5 によって示されています。

中間層サーバー中間層サーバー中間層サーバー中間層サーバー・ファーム・ファーム・ファーム・ファーム

中間層サーバー・ファームとは、一般に、企業が中間層アプリケーション・サーバーを比較的廉価な複数のハー

ドウェア(たとえば、1-または 2-CPU Intel マシンなど)セットで実行する場合における典型的な配置アーキテ

クチャのことです。企業では、しばしば各ノードで類似したソフトウェア構成を実行し、さらにスケーラビリ

ティが必要な場合には、さらにハードウェアを購入してソフトウェア環境をレプリケートしています。ネット

Page 33: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 33

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

ワーク・ロード・バランサの種類によっては、要求はファームのノード間に分散されます。図 27 に示すよう

に、Oracle iAS は中間層サーバー・ファームに簡単に配置できます。

iAS

HTTPServer

Java

Forms

PL/SQL

Networkload-

balancer

iAS

Cached dataHTTP

Server

Java

Forms

PL/SQL

Cached data

ネットワーク・ロード・バランサ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ

図 27. 中間層サーバー・ファームに配置された Oracle iAS。この図は、HTTP Server、Java、PL/SQL、Forms、および Oracle8i Cache サービスを利用した Oracle iAS 構成を示しています。

IV. 配置アーキテクチャ配置アーキテクチャ配置アーキテクチャ配置アーキテクチャ

Oracle iAS には、そのサービスを単一ノードで、または多数の構成における分散システム間で実行できる、柔

軟な配置モデルが用意されています。これらの構成は、3 つの基本カテゴリに分類できます。

• ワンボックスワンボックスワンボックスワンボックス::::これは も単純な構成で、データベースとすべての Oracle iAS コンポーネントを 1 つのマ

シンに配置します。ワンボックス構成は、開発用途に適しており、小規模なアプリケーション配置に適し

ています。

• 多層多層多層多層::::多層構成では、Oracle iAS のコンポーネントはデータベースから別々の層に取り出されます。このよ

うな構成では、多くの場合、HTTP Server およびその他の Oracle iAS コンポーネントによってアプリケーシ

ョンのスケーラビリティおよび可用性を向上させることができます。

• Cache を使用した多層を使用した多層を使用した多層を使用した多層::::このカテゴリでは、構成に Oracle8i Cache を追加することで、単純な多層構成よ

りも優れたアプリケーションとデータのスケーラビリティを得ることができます。

このセクションでは、これら 3 つの基本的な配置カテゴリを 3 つのアプリケーション・モデルの例に適用しま

す。具体的には、JSP/Servlet アプリケーション、PL/SQLアプリケーション、そして Forms アプリケーションを

取り上げ、それぞれについてワンボックス、多層、Cache を使用した多層構成における配置を示します。

ここでの配置についての説明では、アプリケーション自体のインプリメンテーションはそれほど考慮しないこ

とに注意してください。実際、Oracle iAS モデルの利点は、ユーザーがスケーラビリティや信頼性、可用性に

おける新たな要件に対応するために、アプリケーション・コードを変更することなくアプリケーションを再配

置できる点にあるのです。

Page 34: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 34

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

JSP/Servlet アプリケーションアプリケーションアプリケーションアプリケーション

このセクションでは、一般的な JSP または Java Servlet アプリケーションにおける基本的な配置オプションにつ

いて説明します。Oracle8i JVM を使用することも可能な選択肢なのですが、この例では、Java アプリケーショ

ンは JDK JVM 上の Apache JServ で実行すると仮定しています。

ワンボックス

図 28 は、一般的な JSP または Servlet アプリケーションにおける も基本的な構成を示しています。以下に示

すこの構成やその他の構成では、外側の四角形はハードウェア・ノードを示しています。ソフトウェア・サー

ビスおよび要素は、ノード内に様々な形で示されています。この例では、HTTP Server、Apache JServ、および

Oracle8i データベース・インスタンスが 1 つのマシンに共存しています。

ワンボックス構成は単純かつ CPU をあまり消費しない、開発や小規模なシステムに適しています。多くの場合、

本番システムでは多層構成のほうがよいサービスが得られます。

Oracle 8iHTTPServer

ApacheJServ Dataデータデータデータデータ

図 28. JSP/Servlet アプリケーション:ワンボックス。この構成では、

必要なすべてのサービスが単一ノード上に置かれます。

多層

多層構成では、バックエンドのマシンから HTTP Server および Apache JServ サービスが取り出されます。図 29は多層配置の例を示していますが、これら 2 つの Oracle iAS サービスは各中間層ノードで動作しています。図

中の重なった四角形は、層のスケーラビリティと信頼性を向上させるために、複数のマシンが使用されている

ことを示しています。層の間にある点線はファイアウォールを示しており、図には単に提案として示されてい

ます。以下のこの例およびその他の多くの例では、ファイアウォールの配置位置に関しては多くの選択肢があ

ります。この例では、たとえば、ファイアウォールは Oracle iAS ノードの外側(左側)に配置することも可能

です。

PossibleFirewall

HTTPServer

ApacheJServ

O8iDataデータデータデータデータ

配置可能な配置可能な配置可能な配置可能なファイアウォールファイアウォールファイアウォールファイアウォール

の位置の位置の位置の位置

図 29. JSP/Servlet アプリケーション:HTTP Server 層。この構成では、HTTP Server と Apache JServ は

データベース・インスタンスから別々のノードに配置されます。この構成は、

通常、ワンボックス構成よりもスケーラブルで障害に強くなります。

図 30 は、より進んだ構成のバリエーションを示しています。ここでは、HTTP Server と Apache JServ はそれぞ

れ独立したノードで実行します。この構成では、Servlet コンテナそれぞれが独自のノードを所有するため、よ

り信頼性のある Servlet 環境が実現します。HTTP Server の複数ノードのいずれでも、Apache JServ の複数ノー

Page 35: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 35

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

ドの任意ノードに要求をディスパッチできることに注意してください。図中では 2 つの層を結ぶ交差する 3 つ

の線によって示されています。

HTTPServer

ApacheJServ

O8iDataデータデータデータデータ

図 30. JSP/Servlet アプリケーション:HTTP Server 層、Apache JServ 層。この構成では、

HTTP Server と Apache JServ の Servlet コンテナは個別のノードに分離して実行されます。

Cache を使用した多層

この配置の 3 つ目のカテゴリでは、構成に Oracle8i Cache を追加し、バックエンドのデータベースの負荷を軽

減することによってさらに優れたデータおよびアプリケーションのスケーラビリティを実現します。図 31 と

32 は、たった 2 つの配置例を示しています。もちろん、他にも多数のバリエーションが可能です。

ここでも、図中の点線は構成内でファイアウォールを配置できる一例を示しているだけです。Oracle iAS のユー

ザーは、ユーザー独自の特定要件や弱点に応じてファイアウォールを配置できます。たとえば、Oracle8i Cacheインスタンスに重要なデータを保持しているユーザーであれば、必ず Cache がファイアウォールの裏側になる

ようにします。また、一般データのみをキャッシュするユーザーであれば、応答性を向上させるために Cacheノードをファイアウォールの手前に配置することができます。

HTTPServer

ApacheJServ

O8iData

Cached data

データデータデータデータ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ

図 31. JSP/Servlet アプリケーション:HTTP Server 層、Apache JServ および Cache 層。

この構成では、システムへのスケーラブルなデータ・アクセスが実現されます。

データ問合せが中間層キャッシュから直接行われるので、

バックエンドのデータベースではより多くのユーザーに対応できます。

OPS

HTTPServer

ApacheJServ

O8i OPSData

Cached data

データデータデータデータ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ

図 32. JSP/Servlet アプリケーション:HTTP Server 層、Apache JServ 層、Cache 層、および OPS。この構成では、データベース・ノードが Oracle Parallel Server によって冗長になっていることで、

システム全体で No Single Point of Failure を実現しています。この構成では実証済みのスケーラビリティ、

障害回復性、および可用性が提供されます。

Page 36: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 36

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

PL/SQL アプリケーションアプリケーションアプリケーションアプリケーション

PL/SQL アプリケーションの配置でも、前述の JSP/Servlet アプリケーションの配置と同様のオプションと利点

が提供されます。注意すべき違いとしては、PL/SQLコードはデータベース・プロセス内でストアド・プロシー

ジャとして実行される点です。図 33 に示すように、Oracle8i Cache を追加することによって、この PL/SQLコー

ドを中間層にレプリケートして実行することができます。通常、これによってアプリケーションのスケーラビ

リティが飛躍的に向上し、バックエンドのデータベース・ノードにおける CPU サイクルの負荷を軽減すること

ができます。

このような構成に配置できる PL/SQLアプリケーションの一例として、Oracle iAS の Oracle Portal サービスが挙

げられます。Oracle Portal のインプリメンテーションに関する詳細は、Portal サービスのセクションを参照して

ください。

HTTPServer

O8i

DataPL/SQL

データデータデータデータ

A. ワンボックス: も簡単で、開発に 適。

HTTPServer

O8i

DataPL/SQL

データデータデータデータ

B. 多層:よりスケーラブル。

PossibleFirewall

OPS

PL/SQLHTTPServer

Cached data O8i OPS

DataPL/SQL

データデータデータデータ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ 配置可能な配置可能な配置可能な配置可能な

ファイアウォールファイアウォールファイアウォールファイアウォールの位置の位置の位置の位置

C. Cache を使用した多層:よりスケーラブルなアプリケーションおよびデータ・アクセス。

図 33. PL/SQL アプリケーションの配置オプション

Oracle Forms アプリケーションアプリケーションアプリケーションアプリケーション

Oracle Forms アプリケーションは、前述の JSP/Servlet および PL/SQL アプリケーションと同様の構成に配置し

て、同様の利点を得ることができます。図 34 はいくつかの例を示しています。

HTTPServer

FormsService

O8iDataデータデータデータデータ

A. ワンボックス: も簡単で、開発に 適。

HTTPServer

FormsService

O8iDataデータデータデータデータ

B. 多層:よりスケーラブル。

Page 37: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 37

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

PossibleFirewall

HTTPServer

FormsService

Cached data O8i

Dataデータデータデータデータ

キャッシュキャッシュキャッシュキャッシュされたデータされたデータされたデータされたデータ 配置可能な配置可能な配置可能な配置可能な

ファイアウォールファイアウォールファイアウォールファイアウォールの位置の位置の位置の位置

C. Cache を使用した多層:よりスケーラブルなデータ・アクセス。

図 34. Oracle Forms アプリケーションの配置オプション

V. 追加情報追加情報追加情報追加情報

Oracle iAS ロードマップロードマップロードマップロードマップ

このセクションでは、本書で説明した機能の入手に関する一般的な指示を示します。

Oracle iAS R1.0

Oracle iAS R1.0 では、コード・ベースの大部分を Oracle8i データベースのバージョン 8.1.6.1 から利用していま

す。このリリースでは、本書で取り上げた機能のすべてではないものの、ほとんどがサポートされます。

• 統合された製品の単一インストール。Oracle iAS R1.0 では、含まれるすべてのコンポーネントをインストー

ルしてすぐに利用できる、単一の統合されたインストーラーが提供されます。

• データの完全なキャッシュとアプリケーションの制限されたキャッシュ。Oracle iAS R1.0 では、Oracle8iCache によるデータおよびアプリケーションのキャッシング機能は提供されません。

• Apache JServ の Servlet と JSP。iAS R1.0 の Java Servlet と JSP は、Apache JServ コンテナでは実行できま

すが、Oracle iAS 内の Oracle8i JVM では実行できません。

• Oracle8i PL/SQL エンジン。Oracle iAS R1.0 では、PL/SQLコードと PSP はバックエンドのデータベースで

のみ実行できます。

• Oracle8i Cache を使用した Forms および Reports サービス。Forms および Reports サービスでは、Oracle iASの将来のリリースで、Oracle8i Cache が使用できます。

• Oracle Portal サービス、Discoverer Viewer サービス。Oracle iAS R1.0 では、すべてのオペレーション・シ

ステムにおいては利用することができません。

Oracle iAS R1.0.2

Oracle iAS R1.0.2 では、コード・ベースの大部分を Oracle8i データベースのバージョン 8.1.7 から利用していま

す。このリリースでは、本書で取り上げたすべての機能がサポートされます。

• アプリケーションの完全なキャッシュ。Oracle8i Cache を使用した Oracle iAS では、データ・キャッシング

に加え、PL/SQLと Java コードのキャッシングと中間層における実行がサポートされます。また、すべての

Oracle iAS Java コードは、Oracle8i Cache のキャッシュされたデータにアクセスできます。

• Oracle8i JVM の Servlet と JSP。Oracle iAS R1.0.2 では、Oracle8i JVM 内の Java Servlet と JSP がサポートさ

れます。これにより、これらの Java コードを Apache JServ または Oracle8i JVM のいずれで実行するかを選

択することができます。

Page 38: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 38

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

• EJB 1.1。Oracle iAS R1.0.2 では、Entity Beans のサポートを含め、EJB 1.1 仕様がサポートされます。

• Javaのパフォーマンス。Oracle iAS R1.0.2では、ユーザーはOracle8i JVM Acceleratorを使用してOracle8i JVM内で実行している場合、Java バイトコードをネイティブにコンパイルしてパフォーマンスを拡張すること

ができます。

• Oracle8i PL/SQL エンジン。R1.0.2 では、PL/SQLコードと PSP をバックエンドのデータベースまたは中間

層の Oracle iAS で実行できます。

• Oracle8i Cache を使用した Forms および Reports サービス。Oracle iAS R1.0.2 では、Forms および Reportsサービスで Oracle8i Cache を利用できます。

• Oracle Portal サービス。Oracle iAS R1.0.2 には、すべてのオペレーティング・システムにおけるポータル・

サービスが用意されています。

• Discoverer Viewer サービス。Oracle iAS R1.0.2 には、Discoverer Viewer サービスが用意されています。

OAS からの移行からの移行からの移行からの移行

Oracle iAS は、Oracle の初期アプリケーション・サーバー製品である OAS(Oracle Application Server)をさらに

機能拡張した統合プラットフォーム製品です。 も一般的な OAS コンポーネントから新しいプラットフォー

ムへの移行には、スムーズな移行パスが用意されています。OAS PL/SQL カートリッジのユーザーは、mod_plsqlの使用にほとんど、あるいはまったく苦労しないでしょう。同様に、Java Servlet や JSP、および EJB などの標

準 Java コンポーネントを利用していた OAS ユーザーも、これらのコンポーネントを Oracle iASプラットフォー

ムに移行するのにほとんど、あるいはまったく苦労しません。JWeb、ECO、JCO、LiveHTMLおよび C および

COBOL カートリッジなど、Oracle iAS ではサポートされない OAS コンポーネントは一部だけです。詳細につ

いては、Oracle iAS マニュアルの OAS からの移行を参照してください。

Oracle iAS は、その機能が Oracle iAS 内に含まれているその他すべての Oracle 中間層製品の移行パスでもあり

ます。これらの初期製品には、Oracle Forms Server、Oracle Reports Server などがあります。これらのサービスの

ユーザーに対しては、統合された Oracle iAS への移行によって生じる問題は特にありません。

VI. まとめまとめまとめまとめ

Oracle Internet Application Server は、Oracle が提供する新しいミドルティア・サーバー製品です。この製品を

Oracle8i とともに使用することにより、J2EE とモデルベースのアプリケーションの両方を含む、あらゆるタイ

プのインターネット・アプリケーションを実行するためのシンプルで完全、そして統合されたプラットフォー

ムが提供されます。Oracle iAS は、成熟した Oracle テクノロジの利点や信頼性と、Oracle8i Cache や Oracle HTTPServer Powered by Apache など新しい機能の利点と簡易性を組み合わせています。Oracle iAS は高度なスケーラ

ビリティ、可用性、およびロード・バランス機能を提供します。Oracle iAS は多様な構成に配置できるので、

ユーザーはさらなるパフォーマンスまたは信頼性を得るために、使用しているアプリケーション・コードを変

更することなくアプリケーションを再配置できます。

Oracle iAS では、ポータル・サービスやトランザクショナル・アプリケーション配置、柔軟な配置、エンター

プライズ統合、およびビジネス・インテリジェンス・サービスのすべてを導入後すぐに利用できるようにサポー

トしており、あらゆるベンダーが提供する広範な中間層サービスを提供します。したがって、Oracle iAS のお

客様は、異なるベンダーによる製品集合から多数の単一製品を選択し、統合する時間と費用に悩まされる必要

Page 39: Oracle Internet Application Server 8i Oracle iAS

Oracle Internet Application Server 8i(Oracle iAS)テクニカル・ホワイトペーパー 39

Oracle Corporation 発行の

「Oracle Internet Application Server 8i (Oracle iAS)Technical White Paper, Oracle Server Technologies」の翻訳版です。

がなく、新規アプリケーションと既存のアプリケーションの両方を低コストで迅速にインターネット上で実行

することができます。


Recommended