簡短版本:需要關於爲客戶/服務器應用程序選擇java網絡框架的建議(優缺點),該客戶/服務器應用程序的用戶數/請求數較少且數據量較大。建議選擇java的網絡框架
可能的選項:
- RMI
- 阿帕奇河
- Netty的(這似乎更面向異步,它可以做同步調用?)
- 一些其他的框架,這將使我的生活變得更輕鬆? :)
龍版本:目前的項目,我的工作是用Java編寫的桌面應用程序,允許用戶優化供應鏈的一部分。請注意,到目前爲止,該應用程序僅限桌面。它在本地機器上安裝了一個數據庫,就是這樣。現在我們有新的要求來更改代碼以支持共享/網絡數據庫。在網絡服務器上安裝數據庫並啓動應用程序的多個實例(如預期的那樣)出現了很多問題。最大的問題來自數據庫交互不是在考慮併發的情況下開發的。我們有很多的鎖等待和幾個死鎖發生。我們決定修改數據訪問層以解決新的需求。
似乎無法編寫DAL以允許併發訪問,而無需分離客戶端和服務器中的應用程序,該服務器將處理數據訪問以及可能的某些業務邏輯。我們不需要非常高性能的解決方案,但沒有那麼多的消息,但問題在於數據量。
一個典型的應用場景是這樣的:
- 啓動應用程序從一個CSV文件(通常是600MB-1GB之間)
- 導入數據,並將其保存以供將來使用
- 添加場景配置(非常少量的數據)並將它們存儲起來
- 啓動優化(從步驟1獲取數據,應用配置,應用一些優化/限制)
- 顯示opti結果結果。
第4步將在服務器上完成,第1-3步和第5步將在客戶端上執行。
你們有意見/建議嗎? 謝謝。
據我所知,問題是你在本地機器上有一個600Mb - 1GB的文件,需要將它上傳到服務器。我對嗎? – 2013-03-19 22:49:47
@PiotrGwiazda是的,基本上你是對的。該文件將在本地機器上導入,並轉換爲應用程序使用的數據格式,並應存儲到數據庫以供在步驟4中使用。同樣在第3步,簡單配置更改(更改雙字段,將一些實體添加到列表中)也應該被存儲。 – 2013-03-20 08:00:13