0

タイトルにあるように、アイテムに対して行われたユーザーアクション(追加/削除/更新)のイベント(要件)を使用することを計画しています。今ここに私が答えようとしているいくつかの質問があります、そして私は誰かがすでに同じ問題セットに遭遇したと感じています:

1)オブジェクトID生成サーバーとクライアント?モバイルクライアントがオフラインの場合(新しく作成されたオブジェクトのIDを生成する必要があります)、このオブジェクトに対する後続のアクションで参照できるようにします。最善のアプローチは何でしょうか?ローカルIDを生成してから、サーバーで生成されたグローバルIDを割り当てます(オブジェクトがサーバーにプッシュされた後)。私たちの建築チームはこれが正しいアプローチであると考えていますが、個人的にはそれの利点はわかりません。特に、ユーザーが他のモバイルデバイスにログオンして、すべてのイベントをダウンロードする場合(受信するIDは何であるか)、グローバルまたはグローバル+ローカル。このアプローチは、クライアント側でUUID(時間+ハードウェアID+ユーザーID+インクリメントID/ランダムID)に似たものを生成するよりも優れていますか?

2)複数のモバイル/ Webクライアントを処理する適切な方法は何ですか(ユーザーは単一または複数のクライアントにログオンできます)。ここでの最初の質問は、競合の解決です。ここでは、オブジェクトにバージョンがあり、楽観的ロックをサポートしています。したがって、コミットを実行した最初の人が勝者です。これは明らかなようです。他の質問は同期です。理想的には、更新された情報のみをクライアントにダウンロードするとよいでしょう。そのため、彼に知られていないイベントをクライアントに送信する必要があります。このためには、明らかに、どのイベントがどのデバイスから発生するかという情報が必要です。これは、各イベントのsourceIdをサーバーに送信するためのもう1つのポイントです。しかし、2つ以上のWebセッションをどのように処理できますか?私はWEBプログラミングに関しては初心者ですが、ステートレスになりたいのですが、ブラウザ上の一部のスクリプトは、Webクライアントで生成され、サーバーに即座に送信されるすべてのイベントのソースIDとして使用されるある種のセッションIDを生成する必要があることを意味しますか? ?

誰かが同じような仕事をしましたか?どのような解決策を使用しましたか/問題が発生しましたか?

4

1 に答える 1

0

使用しているバックエンドのタイプについては言及していません。Oracle バックエンドを使用している場合は、Database Mobile Server (DMS) を確認する必要があります。

http://www.oracle.com/technetwork/products/database-mobile-server/overview/index.html

競合の解決を含め、データの同期を処理します。モバイル アプリがローカル データベースの読み取りと書き込みを行い、残りは DMS が処理します。また、サポートされているクライアント プラットフォームでのデバイス/アプリケーション管理も処理します。

1) で述べた問題については、一意の識別子をクライアント側で作成するか、サーバー側で作成するかという質問のようです。アーキテクチャをより完全に理解していないと、どちらの方法にも明確な利点はありません。いずれの場合でも、実装する方法に関係なく、DMS は一意の識別子を一方から他方に伝達できます。

あなたのプロジェクトで頑張ってください。

-- エリック・ジェンセン、Oracle PM

于 2013-02-04T19:42:01.760 に答える