オフライン対応の Web アプリケーションの構築を考えています。
私が検討しているアーキテクチャは次のとおりです:
Web サーバー (リモート) <--> Web サーバー/キャッシュ (ローカル) <--> Browser/Prism
このモデルについて私が思い描く利点は次のとおりです。
- 展開は Web ベースで、このアプローチのすべての利点を備えています
- オフライン対応
- UI (html/js) の同期は問題ではありません
- データ同期はほぼ自動化可能
- RESTful パラダイム内にいる限り
- 必要に応じてこれを壊すことができますが、手動同期はほとんど外科的ままです
- ローカル Web サーバーはサービスとして開始されます。バックグラウンドでのデータ同期など、任意のコードを実行できます
- 私はデータを完全に管理しています (場所、サイズ制限なし、ユーザーが無意識に削除する可能性はありません)
- 拡張機能付きの Prism により、javascript をクローズド ソースに保つことができます
このアーキテクチャについて何か考えはありますか? なぜ私はそれを使うべきですか/使うべきではないのですか? 私は特に成功/ホラー ストーリーを探しています。
ロングバージョン
ノート:
- ユーザーはコンピューターの知識があまりありません。たとえば、Gears がどのように機能するかを表面的に説明することさえ、まったく問題外です。
- データが失われた場合、それが本当にユーザーのせいであっても、私は責任を負います(彼がマシン上のランダムなディレクトリを削除することを除いて)
- ユーザーに自分のマシンに何かをインストールするように要求できます。100% Web ベースである必要はなく、サンドボックスで実行する必要もありません。
この問題に対する一般的な解決策は、どういうわけか適切ではありません。ここでは、それぞれの簡単な分析を示します。歯車/HTML5:
- データを制御できず、ユーザーが警告なしに削除できます
- データの場所を制御できない (ブラウザーやプラットフォーム間で統一されていない)
- 同期を行うには、ユーザーがブラウザでアプリケーションを開く必要があります。舞台裏での自動同期なし
- ブラウザーが異なれば処理も異なり、1 台のマシンでデータを統一的に表示することはできません
- 利用可能なディスク容量が限られている
- 同期は完全に手動であり、SQL ベースのストレージはこれを面倒にします (SQL テーブルが完全に複製されていればそれほど複雑ではありませんが、私の場合はそうではありません)。これは非常に複雑な問題です。
- 私のコードはほぼ完全にオープンソース化されます (html/js)
Adobe AIR:
- 上記のいくつか
- サーバー側のインクルードなし (!)
- バックグラウンドで実行できますが、ウィンドウレスでは実行できません
- 手動同期
- Web キャッシングは複雑なようです
- どういうわけかクラッジのように感じます、私はいくつかのマシンにインストールするのに問題がありました
私の要件は次のとおりです。
- Web ベース (必須)。たとえば、ユーザー間でデータを共有するなど、さまざまな理由があります。
- オフライン (必須)。アプリケーションはオフラインで完全に使用できる必要があります (いくつかのまれな例外があります)。
- 迅速な開発 (必須)。私は、はるかに多くのビジネス リソースを持つプレーヤーと対戦する単一の開発者です。
- クローズド ソース (あると便利です)。はい、オープンソース モデルを理解しています。ただし、現時点では、競合他社に簡単に真似されたくありません。繰り返しますが、彼らはより多くのリソースを持っているので、私のハードワークを受け入れて、私よりも短い時間でより良いものにすることができます. 明らかに、彼らは独自のコードを開発している私の真似をすることができます - それは問題ありません。