2012-01-19 6 views
1

私はその質問に苦労しました。私はそれが私のアイデアの要点を掴むことを願っています。ネットワークデバイスとサーバー間の双方向データ転送を処理する方法は?

あなたが答える前に、いくつかの点を述べるだけです。これは私が学校のためにやっているプロジェクトです。それは私の考えと提案です。私はコードを探していません。私はシステムを設計するためのアイデアを聞きたい。このスレッドは、単純な答えより多くの議論です。したがって、すべての入力は大歓迎です。私は3ヶ月以上このアプリケーションを開発しており、私はブレインストーミングのためにインターネットを使用しています。

したがって、システムは複数のモバイルデバイスとコントローラデバイスで構成されています。コントローラは各モバイルデバイスが受信する質問を送信します。彼らはそれに答えます。コントローラは、電話またはデスクトップ上でリアルタイムで統計情報を見ることができます。モバイルデバイスは、対話できるようにコントローラのセッションに参加できます。

Java EEでは、コントローラデバイスのデータをServletContextに格納することができ、モバイルデバイスセッションはServletContext内のコントローラデバイスのdata_spaceに自分自身を追加できます。このようにして、コントローラは誰がログインしているか知っていて、他のモバイルデバイスの応答を取り出すことができます。ここでの問題は、ServletContextがスレッドセーフでなく、セッションがすべて複数のスレッドであるため、マルチスレッドの問題です。私はこれが良いデザインの選択肢ではないと思う問題もあります。実際、これは最も単純で間違った設計選択であると感じています。私はこの種のコミュニケーションに対処するためのシステムを設計する可能性のあるアイディアを聞きたいと思います。

また、データベースを使用することでこの問題を最もよく解決できますか?このようなデータベース中心のアプローチは、アプリケーションの速度に影響を与えますか?また、シリアルパイプラインであるため、データベースが複数のスレッドを処理するのに問題はないと思うのは間違いありません。問題のデータベースMySQL。私はコントローラのセッションの存続期間に生きるユニークなVIEWを作成することを考えています。モバイルデバイスは、ServletContextをチェックしてViewに自分自身を追加し、そこにあるデータを操作することによって、コントローラのユニークなVIEWを取得できます。これは問題に対するまともなアプローチですか?

ありがとうございます。 :)

答えて

0

良い議論。

私は最良の解決策はデータベースを使用することだと思います。 MVC Model View Controllerパターンを使用する必要があります。この場合、モバイルデバイスは、HTTP接続を介してコントローラ(Java EEサーブレット)と通信するクライアントになります。

サーブレットがデータベースを処理します。データベースがJava EEアプリケーションがデプロイされているのと同じサーバーにホストされている場合、速度は非常に良いでしょう。

VIEWを使って何を考えているのか分かりません。あなたが私のことをもっとよく説明すれば、その点で議論を続けることができます。

関連する問題