質問: Rubyを使ってデータベースを持つクライアント・アプリケーションの作成方法に関してアドバイスがあれば教えていただけますでしょうか? Railsサーバーがあります。こちらは作成済です。このサーバと通信を行うノートパソコン上のクライアント・アプリケーション作成を計画しております。そのノートパソコンは外に持ち出して、オフラインの状態が多くあります。なのでパソコン上にもデータベースを持って、そのユーザが必要とするデータをサーバーから引っ張ってきてコピーしておくつもりです。オフラインからオンラインに切り替わるタイミングでそれまでにできてしまったデータの差分をダウンロードして同期する仕組みです。 ただ一体何から手をつければいいのかまったく見当がつきません。 サーバー側のRailsアプリ作成に関しては文献が多くヒットしますが、クライアントアプリに関してはあまり情報がありません。どのような技術を使ってまずは制作を開始すればいいのでしょうか? Googleで検索すべき技術のキーワードでも教えていただければ幸いです。
回答: あまりに広範な質問ですのでどう答えたものか困惑していますが、とりあえずは オフラインウェブアプリケーション をとっかかりにしてはどうでしょうか。 Rails を使っているということで Ruby でのクライアント作成をと考えたのかもしれませんが、そうではなく Rails を使っているからこそ HTML ですべてを解決するという発想のほうが、スムーズに事が運ぶように見えます。 ちなみに「データベースを同期させる」というのを字面通りに考えると、レプリケーションとほぼ同等の大掛かりな仕組みが必要になります。それを避けるためには「(オフラインの間は)データベースの部分的なキャッシュ/ビューを扱う」と考えるのが良いはずです。 またどのような方法を取るにせよ、更新がありうる場合には、複数のクライアント間で起こった更新(衝突)をどのようにマージするかという問題があり、その解決には「コレであれば何でも大丈夫」という汎用的な方法はありません。ユースケース毎に考慮して地道に解決することになるでしょう。