タイトルにあるように、アイテムに対して行われたユーザーアクション(追加/削除/更新)のイベント(要件)を使用することを計画しています。今ここに私が答えようとしているいくつかの質問があります、そして私は誰かがすでに同じ問題セットに遭遇したと感じています:
1)オブジェクトID生成サーバーとクライアント?モバイルクライアントがオフラインの場合(新しく作成されたオブジェクトのIDを生成する必要があります)、このオブジェクトに対する後続のアクションで参照できるようにします。最善のアプローチは何でしょうか?ローカルIDを生成してから、サーバーで生成されたグローバルIDを割り当てます(オブジェクトがサーバーにプッシュされた後)。私たちの建築チームはこれが正しいアプローチであると考えていますが、個人的にはそれの利点はわかりません。特に、ユーザーが他のモバイルデバイスにログオンして、すべてのイベントをダウンロードする場合(受信するIDは何であるか)、グローバルまたはグローバル+ローカル。このアプローチは、クライアント側でUUID(時間+ハードウェアID+ユーザーID+インクリメントID/ランダムID)に似たものを生成するよりも優れていますか?
2)複数のモバイル/ Webクライアントを処理する適切な方法は何ですか(ユーザーは単一または複数のクライアントにログオンできます)。ここでの最初の質問は、競合の解決です。ここでは、オブジェクトにバージョンがあり、楽観的ロックをサポートしています。したがって、コミットを実行した最初の人が勝者です。これは明らかなようです。他の質問は同期です。理想的には、更新された情報のみをクライアントにダウンロードするとよいでしょう。そのため、彼に知られていないイベントをクライアントに送信する必要があります。このためには、明らかに、どのイベントがどのデバイスから発生するかという情報が必要です。これは、各イベントのsourceIdをサーバーに送信するためのもう1つのポイントです。しかし、2つ以上のWebセッションをどのように処理できますか?私はWEBプログラミングに関しては初心者ですが、ステートレスになりたいのですが、ブラウザ上の一部のスクリプトは、Webクライアントで生成され、サーバーに即座に送信されるすべてのイベントのソースIDとして使用されるある種のセッションIDを生成する必要があることを意味しますか? ?
誰かが同じような仕事をしましたか?どのような解決策を使用しましたか/問題が発生しましたか?