RESTfulベースのORMを使用する場合、たとえば、AJAXアプリケーションとClient Delphiアプリケーションの両方で、同じDelphiサーバーを呼び出し、送信形式としてJSON、リモート接続レイヤーとしてHTTP / 1.1、データにアクセスするためのDelphiおよびJavascriptオブジェクトを使用できます。
たとえば、ブラウザでhttp:// localhost:8080 / root / SampleRecordと入力すると、次のようなメッセージが表示されます。
[{"ID":1},{"ID":2},{"ID":3},{"ID":4}]
そして、http:// localhost:8080 / root / SampleRecord / 1を要求すると、次のようになります。
{"ID":1,"Time":"2010-02-08T11:07:09","Name":"AB","Question":"To be or not to be"}
JavaScriptについて少し知っていれば、これはどのAJAXアプリケーションでも使用できます。
また、同じHTTP / 1.1 RESTfulリクエスト(GET / POST / PUT / DELETE / LOCK / UNLOCK ...)は、どのクライアントHTTP/1.1アプリケーションでもすでに利用可能です。フレームワークは、非常に高速なカーネルモードhttp.sys
(Windows上の他のどのHTTPサーバーよりも高速)とクライアント用の高速HTTPAPIを使用してサーバーを実装します。HTTPSを使用して安全な接続を処理することもできます。
IMHO、このようなORMを使用する方が、データベース接続のみを使用するよりも優れています。理由は次のとおりです。
- これは、より厳密にn層の原則に従います。ビジネスルールはDelphiサーバーで1回記述され、サービスとビジネスオブジェクトを使用したRESTful操作のみを使用します。
- 接続にはHTTP/1.1を使用します。これは、直接のデータベース接続よりも高速で、インターネット全体でより標準的であり、HTTPSを介して強力に保護できます。
- JSONとRESTfuloverHTTPは、AJAXアプリケーションのデファクトスタンダードです(MicrosoftでもWCFに使用しています)。
- データはJSONを使用して送信されます。これは、複数のフロントエンドに非常に適した形式です。
- ステートレスアプローチは、接続されていないモードでも非常に強力です。
- データベースのローカルの小さなレプリケーションを使用すると(これにはSQLiteをお勧めします)、非接続モード(DelphiクライアントまたはHTML 5クライアントの場合)でクライアントにアクセスできます。