2014-03-04 103 views
1

我有兩個Java EE Web應用程序即將發佈在同一臺物理服務器上,但在不同的網絡地址上。在Java EE應用程序之間進行同步調用的最佳方式

APP A:在公共IP地址上偵聽端口,並在必要時對應用程序B進行同步調用。

APP B:偵聽私有IP地址上的端口,並在必要時對應用A進行同步調用。

enter image description here

用於連接APP A和APP B,我正在考慮以下方案。

  • RMI
  • 消息隊列
  • 輕量級ESB

請告訴我,如果你看到其中的任何事實根據的任何明顯的優勢,或者,如果有另一種技術,我應該考慮的問題。

+0

MQ和大多數/所有ESB將被視爲異步... –

+0

是的,但是如果需要,您可以通過編程實現同步。 – Andres

+0

爲什麼你會這樣做,而不是實際的同步運輸? –

回答

1

每個積分方法都有其優點和缺點,它真的很難提出只根據你提供什麼人,但這裏是一些提示:

  • 快速輕鬆:如果你不」不介意高耦合,並且應用程序中的重大更改不是預期的(如數據庫引擎或用非Java系統替換),則可以使用RMI甚至DB過程調用。
  • 更改,擴展性和可伸縮性:如果應用程序預期將發生更改(而且他們傾向於這麼做),那麼ESB或消息隊列會很好,因爲它們會產生鬆散耦合的體系結構。這也將爲擴展提供空間(就像你將有一個新的應用程序C,需要調用A或/和B一樣)
  • HTTP可用性:如果應用程序之間有HTTP通信可用,整合方法。
  • 開發人員知識:您/團隊熟悉哪些技術。

這些其實都是小提示,如果你想進一步研究,我強烈推薦閱讀Enterprise Integration Patterns這本書。

相關問題