あらゆるWebアプリケーションにリアルタイム性を提供するメリット
MeteorのようなリアルタイムWebフレームワークは、通常、その能力によって特徴付けられます。
は、コラボレーティブでレスポンシブなアプリケーションを強化するためのものですが、同じ機能が
は、従来のアプリケーションにも価値を提供します。特にMeteorで。
リアルタイム性は、開発者が使用できる永続的なデータベースとして公開されています。
クライアントとサーバーの両方から同じように利用できます。この共有データベースは、単一の
伝統的に広まってきたWebアプリケーションの状態を統一する真実のソースです。
データベース、アプリケーションサーバのインメモリ変数、インメモリの
キャッシュ、ブラウザ内のjavascript変数、ブラウザ内のDOMに対応しています。の機能があります。
状態を手動で同期する必要がないため、シングルユーザーのCRUDアプリケーションの開発も簡単になります。
異なるアプリケーション層間での状態の同期は、通常は
は定型文やバグの原因となります。従来のアプリケーションスタックを考えると
様々なデータの表現や変換を行うことができます。
- ブラウザ・ドキュメント・オブジェクト・モデル
- jQueryとのインペレーティブな同期、またはAngular、Reactなどのフレームワークとのデクラレーティブな同期。
- ブラウザのJavaScript
- AJAXおよびRESTエンドポイント(またはカスタムスキーマを備えたWebSocketのような新しいプロトコル)との手動による同期
- サーバー・ウェブアプリケーション
- ORMやSQLなどのデータベースへの直接アクセスにより、手動での同期を実現
- データベース
各レイヤーを配線するには、追加のコードが必要で、さらに
クライアントサイドのjavascriptのデータ構造、サーバーサイドのデータ構造、など様々な形態があります。
構造、およびデータベースの表現について説明します。により、ある程度の簡略化が可能です。
は、クライアントとサーバーの両方にJavaScriptを使用しています。また、データレイヤーの作成も可能です。
JSONで統一されています。例えば、リレーショナルデータベースの代わりにMongoDBを使用しています。
データベースを使用しています。 しかし、このように標準化されていても、アプリケーション開発者が
は、RESTエンドポイントでレイヤーをフックアップし、データを上下にプッシュする必要があります。
のレイヤーになります。Meteorはこのスタックを以下のようなアーキテクチャで単純化しています。
- ブラウザ・ドキュメント・オブジェクト・モデル
- Handlebar.jsをベースにしたテンプレートフレームワーク「Spacebars」と宣言的に同期しています。
- ブラウザのJavaScript
- クライアント側のデータベース(MiniMongo)とサーバー側のデータ構造をDDP(Websocketやsockjs上のトランスポート機構)を介して自動的に同期。
- サーバーJavaScript
- LiveQueryでサーバーサイドのデータ構造とデータベース(MongoDB)を自動的に同期させる。
- MongoDB
いくつかの点で、Meteorは、最初の
動的なWebアプリケーションの生成:HTMLビューを直接テンプレート化することができます。
をデータベースから取得します。この単純化されたプログラミングモデルにより、可動部分が減り
と、どんなアプリケーションでもバグが発生する可能性があります。