Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Oracle APEX - 普通の人々のためのコーディング

Yuji Nakakoshi
October 18, 2019
110

Oracle APEX - 普通の人々のためのコーディング

Oracle Developer Days 2019でのAPEXのセッションで使用した資料で、その後、改訂したもの。

説明ノート付き。

Yuji Nakakoshi

October 18, 2019
Tweet

More Decks by Yuji Nakakoshi

Transcript

  1. 1

  2. 2

  3. Oracle APEXを一言で説明すると「データベースで動作するWebテンプレート・エンジン」であり、それを元に した「アプリケーション開発フレームワーク」です。 特徴を3点、ご紹介します。 (Click - 左の図) デスクトップ向け、および、モバイル向けのWebアプリケーション開発を行うことができます。 (Click -

    真ん中の図) データベースに蓄積されたデータを使った、レポート、フォーム、チャート、カレンダーなどを、素早く作るこ とができます。 (Click - 右の図) IT技術者はもちろん、IT技術者でなくても、少しのSQLの知識があれば、アプリケーションを作り始められま す。 さらに、Oracle APEXはOracle Databaseが提供する機能の多くを利用することができます。 5
  4. Oracle APEXがどのように利用されているかの一例です。 Oracle APEXは幅広い業界で、利用者の規模の大小に関わらず、様々(さまざま)なビジネス上の問題を解 決するために使用されています。 (Click - 左の図) 一般の従業員、パートナー、顧客といったエンド・ユーザーを対象とした、簡易アプリケーションや、セル フ・サービス・アプリケーションを素早く開発することにより、変化の激しいビジネス上の要件にいち早く追

    従できます。 (Click - 真ん中の図) パッケージ・ソフトウェアを既存のビジネスプロセスと統合するため、および、組織が持つ特別な要件を満 たすための拡張を行うために使われています。 APEXは、Oracleが提供しているERPソフトウェアである、Oracle E-Business Suiteの公式にサポートされる拡 張ツールであり、利用者は簡単にEBSに機能追加を行うことができます。 (Click - 右の図) スプレッドシートやMS AccessによるアプリケーションをWeb化することによって、複数のユーザーが同時に 使用できる、データの複製が発生しない、安全な、アプリケーションを構築することができます。 その他、レガシーなクライアント・サーバー型のアプリケーションのWeb化にも使用されています。 6
  5. Oracle APEXの特徴になります。 (Click - 左の図) Webブラウザだけを使って開発環境にアクセスできます。また、開発したアプリケーションへは、URLとユー ザーの認証情報だけでアクセスできます。特別なクライアント・ソフトウェアは必要ありません。Webブラウ ザのみです。 (Click -

    真ん中の図) 宣言的なフレームワークであるOracle APEXのエンジンでは、アプリケーションとは定義であり、オラクルの データベースの表に保存されるデータです。ファイルへのコード生成やコンパイルは行いません。 (Click - 右の図) すべてのページの処理はデータベース内でのデータ処理であり、オラクル・データベースのスキーマで直 接実行されるPL/SQLによってページが生成されています。したがって、すべてのデータはデータベースの キャッシュを有効に使い、非常に効率的にHTMLのページが生成されます。 7
  6. 最初はHTML DBという名前でリリースされました。 最新のOracle APEXのバージョンは 19.1で、Oracle Database、Oracle REST Data ServicesおよびOracle Cloud

    Serviceと整合性が取れるよう、リリースの番号づけが変わりました。 APEXの開発が始まった当初から、一貫性のある、モダンなアプリケーションを素早く、そして容易に作成す るためのツールを提供する努力が続けられています。 (これは話さなくてもよい) より詳しくは、apex.oracle.comに記載されている方針声明を参照してください。 [https://apex.oracle.com/ja/learn/resources/sod/] 8
  7. Oracle APEXの構成要素は、もちろん、Oracle Database、それにインストールされるソフトウェアである、 Oracle APEX、それと、HTTPのリクエストをOracle Databaseに仲介する、Oracle REST Data Services (ORDS)の

    3つになります。 Oracleでは、これをRAD Stackと呼んで、プロモーションを行っています。 Oracle APEXはOracle Databaseが稼働していることが条件で、利用可能な環境として多くの選択肢が提供 されています。 無償で利用できる環境としては、 1. 検証用途であれば apex.oracle.com というホストで誰でも自分用のワークスペースを取得し、アプリ ケーションの開発ができます。 2. Oracle Cloudのアカウントを取得すると、Free Tierとして、ADWとATPそれぞれひとつ、無償で利用でき るインスタンスを作成することができます。これらのインスタンスは、1OCPU、20GBの範囲で永遠に無 料で利用可能です。 3. Oracle Database XE (Express Edition)との組み合わせで、OnPに無料でOracle APEXを利用できる環境を 作成できます。 Autonomous Database (ADW/ATP) 上でのOracle APEXのサポートも開始したことから、有償の場合は Oracle Databaseが稼働している全ての環境でOracle APEXの利用が可能です。Autonomous Databaseにつ いてはAPEXが構築済みでインスタンスが提供されるため、構築作業が不要になっています。 10
  8. Oracle REST Data Serviceも無償で利用できます。Oracle DatabaseもしくはOracle WebLogic Server Standard Editionのライセンス範囲内で有償サポートを受けることも可能です。 ORDSは、Oracle

    APEX以外にも、単体でOracle Databaseを使ったRESTサービスを実装可能にしたり、 Oracle DatabaseをJSONのドキュメント・ストアとして利用するインターフェースなども提供します。 13
  9. アーキテクチャーは単純で、ブラウザからのページのリクエストやフォームのサブミットは、ミドルティアを 経由し、データベースの内部で処理され、そこで生成されたHTMLが応答としてブラウザへ返されます。 ミドルティアはデータ処理や操作といったことは行わず、データベースで動作しているAPEXエンジンがペー ジ・リクエストを受け取り、DBのスキーマにあるデータを使った処理を行います。 (以下は時間に応じて) ミドルティアは、Javaアプリケーションサーバー上で動作するOracle REST Data Service (ORDS)を利用するこ

    とが推奨されています。 ORDSを動作させるJavaアプリケーションサーバーとしては、Oracle WebLogic Server(WLS) 、Oracle Glassfish, Tomcatがあります。また、ORDS自体にStandaloneで動作するJettyが含まれていますので、それ を使うこともできます。 HTTPサーバーをORDSの前に配置して、静的なイメージはHTTPサーバーから提供する、といった構成も一 般的です。 APEX architecture is unique. The application artifacts are stored in the database. This makes sense as APEX is not a code generator, it is interpreted from meta data. This way as the Oracle database improves over time the APEX engine inherits these improvements. 19
  10. 現在のOracle APEXでは、ロジックの記述はPL/SQLのみですが、Oracle DatabaseにはMultilingual Engineと して、GraalVMを組み込む計画があります。 年初にこのMLEを使ったOracle APEXのプロトタイプが公開されていました。 このプロトタイプでは、サーバー側のロジックをPL/SQLのみではなく、JavaScript、一部 Python で実装可能

    になっています。 フロントエンドはJavaScript一択ですから、サーバー側もJavaScriptにて記述ができるようになると、学習コス トが下がる効果が期待できます。 --- 以下、参考情報。 このプロトタイプがリリースされた時点では、Oracle Database 20cでMLEが実装予定でしたが、後ろになり ました。なので、リリース時期は未定です。 44
  11. 49