2012-01-19 65 views
1

我很難制定這個問題。我希望它能得到我的想法。如何處理聯網設備和服務器之間的雙向數據傳輸?

所以只是在你決定回答之前陳述幾點。這是我爲學校做的一個項目,這是我自己的想法和建議。我不是在尋找代碼。我想聽聽想法來構建一個系統。這個線程不僅僅是一個簡單的答案。所以任何和所有的輸入是受歡迎的。我將在三個月內開發此應用程序,並使用互聯網進行頭腦風暴。

所以該系統由幾個移動設備和一個控制器設備組成。控制器發送每個移動設備收到的問題。他們回答它;控制器可以在手機或桌面上實時查看統計數據。移動設備可以加入控制器的會話以便能夠進行交互。

在Java EE中,我可以將控制器設備數據存儲在ServletContext中,移動設備會話可以將它們自己添加到ServletContext中的控制器設備的data_space中。通過這種方式,控制器知道誰登錄,並且可以檢索其他移動設備的響應。這裏的問題是多線程問題,因爲ServletContext不是線程安全的,而Sessions都是多線程的。還有一個問題,我認爲這不是一個好的設計選擇。事實上,我覺得這是最直接但最錯誤的設計選擇。我希望聽到可能的想法來構建一個處理這種通信的系統。

此外,這個問題最好通過使用數據庫解決?這種以數據庫爲中心的方法會不會影響應用程序的速度?另外,我認爲數據庫在處理多個線程時沒有問題,因爲它是一個串行管道。有問題的MySQL數據庫。我正在考慮創建一個獨特的VIEW,這個VIEW在控制器會話的整個生命週期中都是活着的。移動設備可以通過檢查ServletContext來獲取控制器的唯一VIEW,然後將它們自己添加到View中並操作其中的數據。這是一個體面的方法來解決這個問題嗎?

感謝您的期待。 :)

回答

0

很好的討論。

我認爲最好的解決方案是使用數據庫。您應該使用MVC Model View Controller模式。在這種情況下,移動設備將是通過http連接與控制器(Java EE servlet)通信的客戶端。

該servlet將處理數據庫。如果數據庫託管在與部署Java EE應用程序相同的服務器上,那麼速度會非常好。

我真的不明白你在用VIEW做什麼,如果你更好地解釋我,我們可以繼續討論這一點。

相關問題