Oracle FormsアプリケーションのOracle APEXおよびOracle Autonomous Databaseへの移行
ストアド・プロシージャおよびPL/SQLパッケージは、Oracle APEXでネイティブに動作するため、Oracle Formsアプリケーションを最新のWebアプリケーションに簡単に移行するための明確なプラットフォームとして、より多くの機能、複雑さを軽減し、開発とメンテナンスのコストを削減できます。
Oracle APEXはローコード開発プラットフォームで、世界最高レベルの機能を備え、スケーラブルなセキュアなエンタープライズ・アプリを構築して、どこにでもデプロイできます。現実の問題を解決し、即時に価値を提供する魅力的なアプリケーションを迅速に開発およびデプロイできます。高度なソリューションを提供するために、さまざまなテクノロジーの専門家である必要はありません。
アーキテクチャ
このアーキテクチャは、オンプレミスのOracle FormsアプリケーションをOracle Cloud Infrastructure上のOracle APEXアプリケーションに移動するプロセスを示しています。
次の図は、このリファレンス・アーキテクチャを示しています。

図forms-apps-apex.pngの説明
アーキテクチャには次のコンポーネントがあります。
- リージョン
OCIリージョンとは、可用性ドメインをホストする1つ以上のデータ・センターを含む、ローカライズされた地理的領域のことです。リージョンは他のリージョンから独立しており、長距離の場合は複数の国または大陸にまたがる領域を分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害が、リージョン内の他の可用性ドメインに影響することはありません。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、OCIリージョンで設定した、カスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには、VCNの作成後に変更できる複数の非重複クラスレス・ドメイン間ルーティング(CIDR)ブロックを含めることができます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- ロード・バランサー
Oracle Cloud Infrastructure Load Balancingは、単一のエントリ・ポイントから複数のサーバーへの自動トラフィック分散を提供します。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可されるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processingは、トランザクション処理ワークロード向けに最適化された、自動運転、自己保護、自己修復が可能なデータベース・サービスです。ハードウエアの構成や管理、ソフトウェアのインストールを行う必要はありません。OCIは、データベースの作成、バックアップ、パッチ適用、アップグレードおよびチューニングを処理します。
- アイデンティティおよびアクセス管理
Oracle Cloud Infrastructure Identity and Access Management (IAM)は、OCIおよびOracle Cloud Applicationsのユーザー・アクセス制御を提供します。IAM APIおよびユーザー・インタフェースを使用すると、アイデンティティ・ドメインとその中のリソースを管理できます。各OCI IAMアイデンティティ・ドメインは、スタンドアロンのアイデンティティおよびアクセス管理ソリューション、または別々のユーザー・移入を表します。
- 監査
Oracle Cloud Infrastructure Auditサービスでは、サポートされているすべてのOCIパブリック・アプリケーション・プログラミング・インタフェース(API)エンドポイントへのコールがログ・イベントとして自動的に記録されます。すべてのOCIサービスは、Oracle Cloud Infrastructure Auditによるロギングをサポートしています。
レコメンデーション
- VCN
VCNを作成する際、各サブネットのクラウド・リソースに必要なIPアドレスの数を確認します。クラスレス・ドメイン間ルーティング(CIDR)表記を使用して、必要なIPアドレスに十分な大きさのサブネット・マスクとネットワーク・アドレス範囲を指定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
-
サブネットを設計する際は、機能およびセキュリティ要件を考慮してください。同じ層またはロール内のすべてのコンピュート・インスタンスは、同じサブネットに配置する必要があります。
リージョン・サブネットを使用します。
- セキュリティ・リスト
セキュリティ・リストを使用して、サブネット全体に適用されるイングレスおよびエグレス・ルールを定義します。
- クラウド・ガード
Oracleが提供するデフォルト・レシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプと、それらに対して実行できるアクションを指定できます。たとえば、可視性がパブリックに設定されているOCIオブジェクト・ストレージ・バケットを検出できます。
Oracle Cloud Guardをテナンシ・レベルで適用して、広範な範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。
また、管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースには、パブリック・インターネットからアクセスできないこと、および顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、OCIはレシピのポリシーに対して操作を検証し、いずれかのポリシーに違反する操作を防止します。
- スキーマ
Oracle Formsが構築されたデータベース構造をそのまま保持し、それをOracle APEXのスキーマとして使用します。
- ビジネス・ロジック
Oracle Formsのビジネス・ロジックのほとんどは、トリガーとプログラム・ユニット、イベントにあります。Oracle FormsのOracle APEXへの移行を開始する前に、ビジネス・ロジックをデータベース内のストアド・プロシージャ、ファンクションおよびパッケージに移行します。
考慮事項
- データ・ブロック
Oracle Formsのデータ・ブロックは、Oracle APEXに関連付けられ、各ページは複数のリージョンおよびコンポーネントに分割されます。ユニバーサル・テーマで使用可能なOracle APEXコンポーネント・テンプレートを確認します。
- トリガー
Oracle Formsでは、トリガーによってほとんどすべてのものが制御されます。Oracle APEXでは、制御は、ページの送信時にアクティブ化され、検証、計算、動的アクションおよびプロセスによって管理される柔軟な条件に基づいています。
- アラート
Oracle APEXのほとんどのメッセージは、ページの送信時に生成されます。
- 連結ライブラリ
Oracle APEXは、ユニバーサル・テーマをサポートするJavaScriptおよびCSSライブラリを処理します。このライブラリは、柔軟で動的なアプリケーションに必要なすべてのコンポーネントをサポートします。独自のJavaScriptおよびCSSは、主にページ属性を使用して、いくつかの方法で含めることができます。データベース内にBLOB (
#APP_IMAGES#
)として存在する参照ファイルとしてインライン・コードを追加するか、中間層(通常はOracle REST Data Services (ORDS)によって処理される)に配置するかを選択できます。参照ファイルがOracle WebLogic Server上にある場合、ファイルの場所には#IMAGE_PREFIX#
という接頭辞が付きます。 - 編集者
Oracle APEXには、テキスト領域とリッチ・テキスト・エディタがあり、これはOracle Formsのエディタと同等です。
- 値のリスト(LOV)
Oracle APEXでは、LOVはアイテム・タイプと結合されます。ラジオ・グループは、少数の価値観でうまく機能します。中間サイズ・セットのリストを選択し、大きいデータ・セットのポップアップLOVを選択します。Oracle APEXのLOV問合せには、Oracle Formsのレコード・グループからの問合せを使用できます。Oracle APEX内のLOVは、SQL問合せによって動的に駆動することも、静的に定義することもできます。静的定義では、各エントリに様々な条件を適用できます。これらのLOVは、ラジオ・グループや選択リストなどのアイテム、またはレポート内の列に関連付けて、コードをラベルに変換できます。
- パラメータ
Oracle APEXのページ・アイテムは、レポートで選択したレコードなどの情報を次のページに渡すために、ページ間で移入されます。多数のアイテムを含むより大きなフォームは、通常、全体として送信され、ページ・プロセスによってデータが処理され、次のページに分岐します。これらの値は、多くの場合、デフォルトで、セッション・ステート・セキュリティ、アイテム、ページおよびアプリケーション・レベルでのURL改ざんから保護できます。
- ポップアップ・メニュー
ポップアップ・メニューは、Oracle APEXでは最初から使用できませんが、リストを使用して作成し、ボタンをメニューに関連付けることで作成できます。
- プログラム・ユニット
Oracle Formsのプログラム・ユニットで定義されたストアド・プロシージャおよびストアド・ファンクションをデータベース・ストアド・プロシージャおよびファンクションに移行し、Oracle APEXのプロセス、検証および計算でデータベース・ストアド・プロシージャおよびファンクションを使用します。
- プロパティ・クラス
Oracle Formsのプロパティ・クラスを使用すると、開発者はコンポーネントの各インスタンス間で共通の属性を利用できます。Oracle APEXでは、データ・ディクショナリにユーザー・インタフェースのデフォルト値を定義して、特定の表または列に対してアイテムまたはレポートが作成されるたびに、同じ機能がデフォルトで適用されます。アプリケーションのスタイルについては、特定のルック・アンド・フィールを持つコンポーネントにクラスを適用できます。ユニバーサル・テーマには、宣言的に再構成できるデフォルトのスキンがあります。
-
レコード・グループ
レコード・グループ内の問合せを使用して、Oracle APEXで動的LOVを定義します。
- レポート
Oracle APEXの対話モード・レポートには、ユーザーがレポートをカスタマイズおよび操作できる多数の実行時操作オプションが付属しています。クラシック・レポートは、実行時操作オプションを提供しない単純なレポートですが、SQLに基づいています。
- メニュー
Oracle Formsには、データベース・ロールによって制御される特定のメニュー・ファイルがあります。アクティブなユーザーがいないため、
.mmx
ファイルを更新する必要があります。Oracle APEXのメニューは、上側または左側のいずれかになります。これらのメニューは、静的に定義することも、動的に駆動することもできます。静的ナビゲーション・エントリは、認可スキームまたはカスタム条件で制御できます。動的メニューでは、SQL内にセキュリティ表を統合できます。 - プロパティ
Oracle APEXで導入されたページ・デザイナは、Oracle Formsと似ています。特に、複数のコンポーネントを一度に編集する機能に関しては、交差する属性のみです。