1
我目前正在爲我創建的Java應用程序開發GUI。我想將GUI保留在與客戶其餘部分分開的過程中。這背後的理由是:在單獨的過程中擁有GUI
- 降低了崩潰的風險。例如。 GUI中的OutOfMemoryError不會使客戶端的其他部分崩潰。
- 我得到一個免費的API。如果我稍後想要允許其他人以編程方式訪問客戶端,我可以讓他們使用GUI所使用的相同API。
- 我在SWT中編寫GUI,客戶端使用IntelliJ創建。由於Eclipse具有更好的SWT支持,所以將它們分開是有意義的,這樣我就可以將Eclipse用於GUI代碼,對於其餘的IntelliJ則可以使用Eclipse。
我現在的問題是:我應該使用什麼技術來將客戶端的界面暴露給GUI? RMI是首先想到的。但是,這具有將API限制爲僅Java的缺點。我也不確定RMI適合大規模部署的情況(例如,它如何處理本地防火牆?)。但是,我不想排除它。
我還要提到的是,我有一些部署,要求,以及:
- 必須能夠爲運行非管理員。
- 必須能夠處理限制性本地防火牆限制。
- 部署必須是自動的(這是一個大型的消費者應用程序),並且可以在Windows,Mac OS X和Linux上運行。
鑑於這些限制,您將使用哪種解決方案?
*「我應該使用什麼技術來將客戶端界面暴露給GUI?「*我可能誤解了這個問題,但我傾向於簡單地將它添加到GUI的運行時類路徑中直接實例化類並使用它們的方法比使用RMI或類似技術簡單得多, t很明白GUI崩潰並希望保持客戶端運行。保持客戶端運行的目的是什麼? –
客戶端是一個備份程序,如果GUI崩潰,我仍然想保持備份運行。能夠訪問客戶端的類實例AFAIK,僅僅通過設置運行時類路徑是不可能的 – Yrlec
*「客戶端是一個備份程序。如果圖形用戶界面崩潰,我仍然希望保持備份的運行狀態。「*如果有人將電源線連接到電腦上,它會使備份恢復的更好嗎?在單獨運行B/U API進程(在同一臺機器上)不會對此有幫助;;) –