3

シナリオ: ユーザーは、ユーザーが指定したタスクを処理するサーバー側エンティティ (サーバー) との永続的な双方向接続を形成するクライアント ソフトウェアにログインします。サーバーサイド エンティティは、ユーザーのタスクの処理中にエラーが発生したり、さらにユーザー入力が必要になったりすると、クライアント ソフトウェアに通知し、クライアントが何をすべきかを決定するまで待機します。クライアント ソフトウェアは、新しいユーザー指定の入力を受け取り、これをサーバー側に送信します。サーバー側は、新しいユーザー指定の入力で最後に停止したところから続行します。このフィードバック サイクルは、処理が完了するまで続きます。段階的に更新されるユーザー入力はすべてサーバー側に保存され、クライアント ソフトウェアからアクセスおよび変更できます。したがって、クライアントが特定の入力を削除すると、その変更はすぐにサーバー側に反映されます。

クライアント側では、ソケットを使用してサーバーに接続していると思われます...

サーバーについては、Jetty や Netty のようにさまざまな Java サーバーがたくさんあるようで、少し迷っています。また、ここで車輪を再発明しようとしないように注意を払っています。

サーバーの構築は正しいアプローチですか? またはオンデマンドで特定のタスクを完了する Web サービスを構築しますか?

また、万能のソリューションを探しているだけでなく (おそらく希望的観測)、私の現在の状況に関するあらゆる洞察を受け入れています。

4

1 に答える 1

2

Netty は、ソケット サーバーを再発明することなく、これに必要と思われる多くの機能を提供します。そうは言っても、クライアントとサーバー間の双方向のリアルタイム通信が実際に必要であることを確認します。クライアントとサーバーの通信がリアルタイムである必要がないように問題を作り直すことができれば、RESTful Web サービスのようなものが可能になり、(私の経験では) 複雑さが大幅に軽減され、エラーが発生しにくくなります。

于 2011-06-13T18:56:02.040 に答える