0

Webサービスについてお聞きしたいのですが。

シナリオを考えてみましょう:

vfpデスクトップアプリにデータを入力します。「保存」をクリックすると、アプリはデータをローカルデータベースに保存し、それをxmlとしてリモートロケーションのWebサービス(phpファイル)に送信します。次に、Webサービスは私のデータをリモートロケーションのvfpデータベースに挿入します。たとえば、「保存」を押すとすぐに、間違いを犯したことに気付きます。エントリを変更して、もう一度[保存]をクリックします。データはWebサービスを介して再度送信され、リモートロケーションのデータが更新されます。

質問は :

最初の挿入後に2番目の更新がリモートロケーションに挿入されることを保証するにはどうすればよいですか?つまり、操作のシーケンスは、Webサーバーでの同じ操作のシーケンスを保証するということですか?

どうもありがとう。

4

1 に答える 1

0

2つのリクエストは互いに分離されており、宛先に到達するまでの時間はルートによって異なるため、通常は同じシーケンスにはなりません。ほとんどの場合、期待どおりに機能します。

前回の更新が完了するまで、クライアントに更新を待機させることができます。離れた場所からの応答を確認するだけです。

欠落している更新要求を検出できたとしても、それがないため、リモートロケーション側でできることはあまりありません。また、更新要求が届かない可能性があります。欠落しているリクエストを検出するには、2つの方法があります。各リクエストに継続的な番号を付けるか、更新に何らかのバージョンを追加します。

最初の方法として、リクエストが到着した場合は、番号が付いているかどうかを確認しますpreviousNumber + 1。そうでない場合は、エラーを報告するか、リクエストpreviousNumber + 1が到着するまでエラーを遅らせます。

2番目の方法では、リモートデータの現在のバージョンがリクエストで予想されるバージョンと同じであるかどうかを確認します。そうでない場合は、エラーを報告してください。

このバージョンは、「保存」ボタンをクリックしたときの可能性があります。2番目の更新が最初の更新の前に到着した場合、最初の更新のタイムスタンプは、2番目の要求で使用されている現在のタイムスタンプよりも小さくなります。

于 2012-04-13T06:55:29.037 に答える