我正在爲基本的在線協作IDE構建Java應用程序。在這個應用程序中,客戶端將命令發送到服務器,將這些命令序列化,然後將結果返回給每個客戶端。我試圖確定能最大限度地提高性能,效率和代碼簡單性的架構風格。客戶機 - 服務器和發佈 - 訂閱混合的體系結構
目前,我正在使用客戶端 - 服務器模型和發佈 - 訂閱模型之間的一種混合。客戶端向服務器發送命令(即請求編輯代碼,遠程編譯等)。對於特定的客戶端命令,在服務器響應命令之前,客戶端上的文件實際上並未更改。由於該項目的主要目標之一是IDE允許實時協作,所以輸入的每個按鍵都會發送客戶端命令。這是客戶端 - 服務器方面。
但是,由於客戶端還必須接收從其他客戶端轉發給他們的事件,因此它不是純粹的客戶端 - 服務器設置。我正在使用ExecutorService類來實現這種發佈 - 訂閱行爲。
我的問題是 - 是否存在與此類應用程序相對應的特定體系結構風格?我可以採用另一種方法來實現應用程序目標嗎?或者,也許我已經在使用最好的建築風格了?
對我來說,他們不是對抗者。基本上,「客戶端 - 服務器」更多地關於工作負載分佈,而「Pub-Sub」則關於消息分發實現。 Quake服務器是一樣的:) – mikalai