アーキテクチャ

Oracle APEXでは、高速データ・アクセス、最高度のパフォーマンスおよびスケーラビリティが即座に提供される、データベースにカプセル化された単純なメタデータ駆動型のアーキテクチャを使用しています。

概要

Oracle APEXでは、単純な3層アーキテクチャを使用しており、リクエストはブラウザからWebサーバーを介してデータベースに送信されます。すべての処理、データ操作およびビジネス・ロジックは、データベースで実行されます。このアーキテクチャにより、そのままの状態で、待機時間なしのデータ・アクセス、最高度のパフォーマンスおよびスケーラビリティが保証されます。

アプリケーション
ORDS
APEX
この図は、ユーザーがOracle APEXのページをリクエストまたは送信した場合のプロセス・フローを示しています。

WebブラウザからのWebリクエストは、Oracle REST Data Services (ORDS)に送信され、そこでアクション対象のOracle Databaseに渡されます。データベース内で、リクエストはOracle APEXによって処理されます。処理が完了すると、その結果はORDSを介してブラウザに戻されます。

Oracle RADスタック

Oracle RADスタックは、Oracle REST Data Services (ORDS)、Oracle APEXおよびOracle Databaseという3つのコア・コンポーネントに基づいた包括的なテクノロジ・スタックです。

このスタックにより、強力で洗練されたスケーラブルな最高レベルのアプリケーションを開発およびデプロイするために必要なすべてのコンポーネントが提供されます。他に未確定の追加コンポーネントは必要ありません。また、Oracle APEXとORDSは、両方ともOracle Databaseの無償機能であるため、Oracle Databaseがあれば、このOracle RADスタックを使用できます。

  • REST Data Services (ORDS)

    ORDSは、SQLとデータベースのスキルを持つ開発者がOracle Database、Oracle Database 12c JSONドキュメント・ストアおよびOracle NoSQL DatabaseのREST APIを開発できるようにするJavaアプリケーションです。

  • APEX

    最高レベルの機能を備え、どこにでもデプロイできる洗練されたスケーラブルでセキュアなアプリケーションを構築できるOracle Databaseのネイティブ・ロー・コード開発プラットフォームです。

  • データベース

    Oracle Database - どのような規模のデプロイメントにも対応する最も完成された統合型のセキュア・データベース・ソリューションです。この強固な基盤により、Oracle APEXを使用して構築されたアプリケーションは、1日目からエンタープライズ対応となります。

Oracle RAD

メタデータ駆動

アプリケーションを作成または拡張すると、Oracle APEXによって、データベース表に格納されるメタデータが作成または変更されます。アプリケーションが実行されると、Oracle APEXエンジンがメタデータを読み取り、リクエストされたページを表示するか、ページ送信を処理します。

アプリケーション内でステートフルな動作を提供するため、Oracle APEXは、データベースのセッション・ステートを透過的に管理します。アプリケーション管理者は、標準のSQLバインド変数構文と同様に単純な置換を使用してセッション・ステートを取得および設定できます。ファイルベースのコンパイルは不要で、コードも生成されません。

すべての処理は、データベースのデータ・スキーマに直接作用するPL/SQLによって実行されます。したがって、データがデータベースで直接操作され、結果がWebブラウザに戻されるため、Oracle APEXアプリケーションは非常に効率的です。単一のリクエストでは、データベースに複数のコールが要求されることはなく、メタデータ定義に基づいて単一のAPIコールで必要なすべてのデータ処理が起動されます。

ステートレス・アクセス

Oracle APEXは、非常にスケーラブルで、そのデータベース・リクエストの管理方法に基づいて、何万人もの同時ユーザーをサポートできます。Oracle APEXエンジンに対するAPIコールでは、標準のOracleデータベース接続プールが使用されます。つまり、APIコールが処理されてレスポンスが元のブラウザに送信されると、使用された接続はデータベース接続プールに戻され、他のリクエストで使用できるようになります。

データベース・セッションは、リクエストの実行時のみアクティブとなり、それ以外の場合、ユーザーのセッションは非アクティブで、データベース・リソースを消費しません。セッション・ステート情報は、ユーザーが最初に認証されたときにブラウザ・キャッシュに格納され、後続の各リクエストとともに送信されます。