Oracle Application ExpressとOracle Formsとの重要な違いを理解しておくことは、アプリケーションを再開発する場合に非常に役に立ちます。
Oracle Application Expressでは、クライアント(Webブラウザ)とデータベースとの間に一定のステートが保持されるのではなく、ステートレスなトランザクションが実行されます。データベース・セッションは、ページのリクエスト時または送信時にのみ利用されます。Oracle Application Expressは、論理的なトランザクション(レコードの更新時など)が開始されてから終了されるまでステートレスであるため、ペシミスティック・ロックではなくオプティミスティック・ロックが使用されることになります。
Oracle Formsでは、ペシミスティック・ロックが使用されるため、ユーザーからレコードの更新がリクエストされると、そのレコードはロックされます。このロックは、そのレコードの処理が完了(コミット)するか、または取り消される(ロール・バック)されるまで保持されます。ステートレスなWebアプリケーションでペシミスティック・ロックが使用されない主な理由の1つは、トランザクションの途中でユーザーがWebブラウザを閉じるか、接続が失われた場合、そのレコードがロックされたままになるためです。
アプリケーションの作成ウィザードまたはページの作成ウィザードを使用してフォーム・ページを生成すると、行の自動フェッチと行の自動処理のプロセスも作成されます。これには、オプティミスティック・ロックを施行するMD5チェックサムの検証が組み込まれています。
アプリケーションの作成ウィザードまたはページの作成ウィザードを使用してフォーム・ページを生成すると、行の自動フェッチと行の自動処理のプロセスも作成されます。これには、オプティミスティック・ロックを施行するMD5チェックサムの検証が組み込まれています。レコードが更新または削除されてデータベースに送られる前に、最初に作成されたMD5と現在のデータベース・レコードのMD5の値が比較されて、両者が同一であることが確認されます。これらが異なる場合、そのデータベース・レコードは問い合されてから更新されており、ユーザーにエラーが表示されます。
HTMLアプリケーションの1つの特徴は、ユーザーがページと対話するときに、表示されるページが、検証やフィールドの表示、非表示などのアクションを実行しないことです。検証は、ユーザーがページを処理するために送信したときに実行されます。ただし、このデフォルトの動作は、JavaScriptおよびAjaxを利用して変更することができます。ページのロードに必要な時間は、転送速度と、そのWebブラウザのページ表示速度の影響を受けます。したがって、ページの重さ(サイズ)とそのページのパフォーマンスは相反するため、クライアント側の対話性をすべてHTMLアプリケーションに複製することはお薦めしません。クライアント側のアクションはクリティカルなもののみを実装することをお薦めします。
Oracle Formsでは、ユーザーへの画面の表示に、異なる基盤テクノロジが使用されています。他方、Application Expressでは、WebブラウザでHTMLが表示されます。そのため、画面およびアイテムの設計仕様は大きく異なります。
画面設計を再検討する場合、Oracle Formsでよく使用される画面レイアウトのいくつか(問合せ/更新リージョンなど)は、Oracle Application Expressで再作成できません。マスター/ディテール/ディテール情報を表示するための対話グリッドの使用など、他の画面設計の概念はすぐに再作成できます。
開発者の方には、Oracle Formsアプリケーションで使用されているのと正確に同じルック&フィールや機能を再作成しようとしないことを強くお薦めします。たとえば、Application ExpressはEnter QueryモードとExecute Queryモードの概念をサポートしていません。標準Webページ機能ではないため、開発者はApplication Expressでそのような機能を実装しようとしないことをお薦めします。代わりに、アプリケーションの作成ウィザードとページの作成ウィザードを使用して、最新式の直観的なWeb 2.0アプリケーションを作成することをお薦めします。
Application Expressのユニバーサル・テーマは完全応答型のテーマで、画面サイズに基づいて調整されます。タブレットとスマートフォンでは画面サイズがデスクトップより大幅に小さいため、リージョンのサイズと位置を変更し、ラベルも左でなくアイテムの上部に移動することで、画面に応じたページが生成されます。Application Expressは、そのものとしてはOracle Formsのページにあるとおりの、リージョンやアイテムの座標の位置やピクセル・パーフェクトなレイアウトをサポートしません。Application Expressはグリッド・レイアウトを使用して要素や属性(新しい行、新規フィールド、列スパンおよび行スパン)を記述し、要素配置を指定します。
Oracle Formsから変換する際の、主要な側面の1つは、ビジネス・ユーザー・インタフェースに固有のロジックを複製することです。ビジネス・ロジックとユーザー・インタフェースを操作するロジックを切り離すことが重要です。ユーザー・インタフェースの実装に違いがあるとしても、元のアプリケーションの大部分の関連ロジックは、問題になりません。Oracle Application Expressは、プロセス、演算、検証を使用してビジネス・ロジックを実装します。Oracle Application Expressのアイテム定義のデフォルトおよびソース値を利用することによって、複製できるロジックもあります。
新しいアプリケーションを正しく動作させるために重要な点は、その機能がそれぞれいつどのように動作するかを理解することです。Oracle Application Expressの任意のコンポーネント(リージョン、アイテム、ブランチ、プロセス、計算および検証)に対して条件付きロジックを追加できるため、元のビジネス・ロジックを再現する際の柔軟性も大きくなります。