ORDA とは Object Relational Data Access の略で、オブジェクト指向プログラミングとリレーショナルデータベースの利点を組み合わせたデータアクセス方法で、開発者はデータアクセスの管理よりもビジネス問題の解決に集中することができます。
ORDAを初めて使う人も、すでに使いこなして知識を増やしたい人も、このブログ記事を学習プロセスの道しるべとして考えてみてください。
このブログ記事には以下の内容が含まれています。
さて、本題に入りましょう。
なぜORDAに注目する必要があるのか?
技術的な詳細を説明する前に、ORDA の利点をいくつか挙げてみましょう。
すべてがオブジェクトになる
ORDAは、データベースを含め、すべてがオブジェクトである世界です。
このアプローチにより、オブジェクト指向のアプローチで4Dデータベース全体にアクセスすることができ、データの扱いが容易になり、コードの複雑さを軽減することができます。 ORDAはデータを実世界の概念にマッピングするため、データの利用が簡単になり、リレーショナルストラクチャーを深く理解する必要性がなくなります。
クラスによるビジネス指向のコード
ORDAにはデータモデルに特化したクラスが付属しています。クラスのおかげで、データの物理的な実装の複雑さを隠すことができ、アプリケーションはサービスの公開が簡単になり、そしてより管理しやすく、保守しやすくなり、他のアプリケーションとシームレスに統合することができます。
すぐに使えるパフォーマンス
ORDAは、コンテキストや レイジーローディングなどのいくつかの最適化技術を提供することで、アプリケーションのパフォーマンスを向上させることができます。これらのテクニックは、実行する必要があるデータベースクエリの数を減らし、アプリケーションの応答時間を短縮するのに役立ちます。そしてこの最大の利点はというと、SQLやORMツールとは異なり、プログラミングが必要ないことです。
スケーラビリティの向上
ORDAは、分散データベースアーキテクチャをサポートすることにより、アプリケーションのスケーラビリティを向上させることができます。つまり、データを複数のデータベースサーバーに分散させることで、パフォーマンスを向上させ、より大量のデータを処理することができます。
オープンで拡張可能
ORDAを使用すれば、異なるシステムのシームレスな統合を実現することができます。RESTサーバーと組み合わせることで、AngularやReactなどのWebフレームワークなどの他のツール向けに制御されたAPIで(自分のクラスを通じて)ビジネスロジックを公開することができます。
ORDAの利点と、この技術がどのようにあなたのアプリケーションにプラスの影響を与えるかを学んだところで、ここからは技術的な詳細に飛び込んでみましょう。
ORDAのグローバルな概要
このスキーマは、すべてのORDAの使用に関するグローバルな概要を示しています。
- ORDAはあなたのデータを扱うためのAPIと、ビジネスAPIとして公開される堅牢な抽象化レイヤーを提供します。
- データへのアクセスをフィルタリングするための完全なパーミッションのシステムが利用可能です。
- ORDAでは、リモートデータストアまたはREST APIを使用してRESTサーバーで作業することができます。
- クライアント・サーバーモードで作業する場合、ORDAを使用することができます。
- ORDAのコードは、Webアプリケーション(4DACTION、4Dタグ)でも使用することができます。
この図は、ORDAがどのように異なる4Dの機能と接続するかの概要を示しています。この概要を把握できたら、以下のステップに従って、学習の旅を始めましょう。
では、ラーニングジャーニーをはじめましょう!
ステップ1 – メインコンセプト
ORDAの主なコンセプトはここにまとめられてます。
まず、データストア、データクラス、エンティティ、エンティティセレクションという用語に慣れましょう。ORDAを使用する際に頻繁に目にすることになるので、これらの概念の意味を理解することが重要です。
ステップ2 – ORDAのAPI
次に、ORDAのオブジェクト指向APIを見て、それらのAPIでどのようにデータを扱うことができるかを発見してください。
例えば、最も頻繁に使用されるAPIは、データベース上でクエリを実行するためのquery()です。
各APIについてよく知るために、実際に動作させることができるデモアプリケーションのあるブログ記事のリストを紹介します。
- オブジェクト指向のアプローチでデータベースにクエリを実行する
- 現在の選択項目をORDAに行ったり来たりする
- CRUDアクション
- 論理的な操作
- エンティティの処理
- オブジェクトとコレクションの操作
- 統計情報の計算
- 計算式による順序付け
- 数式を使ったクエリ
- 属性パスの名前付きプレースホルダー
- 名前付きプレースホルダー
- エンティティセレクション: extract() および refresh() メソッド
- 構造情報を取得するためのメンバーメソッド
- 2つのエンティティセレクションの比較
- 最適化されたロック機構
- エンティティのロック
- 汎用コードの記述
- 汎用コードの例
- ORDAチートシート
ORDAでリレーションの力を再発見する
先に述べたように、ORDAは オブジェクト指向プログラミングとリレーショナルデータベースの利点を組み合わせたデータアクセスの方法です。
さらに進んで、ORDAを使ったリレーションから得られるすべての利点について知りたい方は、以下の動画集をご覧ください。そこでは、多くのコード行を書くことなく、ユーザーフレンドリーなインターフェースを構築する方法について学べます。
クラシック4Dコードとリンクさせる
もしあなたがまだクラシックな4Dコードを使っているなら(多くの開発者が今も使っているコードです)、必要に応じてそれをORDAコードと混ぜることができます。
これは、あなたのアプリケーションにORDAの概念を徐々に導入するのに便利です。
詳しくはこの ブログ記事をご覧ください。
ステップ3 – ORDA抽象化レイヤー。
ORDAをさらに進めるには、抽象化レイヤーを活用します。
このレイヤーでは、ORDAデータモデルクラスを通して、すべてのビジネスロジックを実装することになります。
クラスを扱うことで、オブジェクト指向プログラミングにさらに一歩踏み込むことになります。各クラスはビジネスロジックを関数で取り込むことができます。
計算属性とエイリアスの利点を是非知ってください。計算式とそのビジネスロジックを定義した計算属性を簡単に設計することができます。また、データモデル内の他の属性と同様にエイリアスを定義することもできます。
したがって、開発者は物理的な実装レイヤーを処理する代わりに、この抽象化レイヤーを利用することになります。
- ORDAクラスの世界へようこそ
- データモデルを扱うORDAクラス
- ORDAデータモデルクラスとREST
- ORDAデータモデルクラスを使ったTIPS
- 計算された属性によるマジックショー
- エイリアスにご挨拶
step 4 – リモートで作業する
さて、ここからはさらに楽しい時間です 🙂
クライアント・サーバー
ORDAはクライアントサーバーモードで使用することができます。dsコマンドを使用してデータストアオブジェクトを取得し、データでの作業を開始します。
ここでは、C/Sで作業するための特定の機能についての詳細を説明します。
リモートデータストア
クライアント・サーバー環境の場合、接続できるデータベースは現在のデータベースに制限されます。これには途切れることのないネットワーク接続が必要となります。
しかしリモートデータストアのおかげで、アプリケーションは4D Serverに公開されている別のリモート4Dデータベースからデータを取得すること ができます!
この機能により、多くのユースケースがカバーされます。
- アプリケーションをオフラインで動作するように構成し、リモートデータにアクセスできるときだけローカルデータを同期させる。
- 複数のサーバーにデータを公開し、必要に応じて切り替える。
- データモデルを異なるデータベース(例:ローカルデータ、国際データなど)に分割する。そうすれば、データが異なる場所に分散していても、1つの4Dクライアントコード(プロジェクトメソッドとフォームオブジェクト)でアクセスすることができます。
詳しくは、こちらのブログ記事をご覧ください。
REST API
RESTサーバーAPIは、ORDAの概念に依存しています。
REST APIの使い方を学ぶための有益なブログ記事を紹介します。
ステップ5 – リクエストの最適化
ORDAを使用してリモートで作業する場合、必要な属性のみをサーバーに問い合わせるために、リクエストが自動的に最適化されることに留意してください。その上、あなたはパフォーマンスを向上させるために独自の最適化ルールをカスタマイズすることもできます。
ステップバイステップで詳しく学ぶには、こちらのブログ記事のリストをご覧ください。
そして、Summit 2020で行われたライブ動画デモをご紹介します。
step 6 – データへのアクセスをフィルタリングするパーミッションシステム
データへのアクセスをフィルタリングすることは、アプリケーションへの悪意のあるアクセスを防ぐために必須の機能です。
v19R8以降では、不正なユーザーからデータを保護するための強力で完全にカスタマイズ可能なシステムを利用することができます。これは、誰がアクセスするか、どのデータにアクセスするかによって、データを保護するシステムです。
RESTリクエスト、リモートデータストアで受け取ったリクエスト、4DACTIONや4DタグのようなWebプロセスなど、すべてのWebプロセスを対象としています。
詳しくは、こちら のブログ記事をご覧ください。
最後に
ORDAは、開発プロセスやデータアクセスをより速く、より効率的にすることができる強力なツールであることを忘れないでください。
このブログ記事があなたのお役に立てれば幸いです。フォーラムで遠慮なく質問してください。
ORDAでお役に立てることをうれしく思います。