遠端方法呼叫(RMI)

RMI 需要 3 個元件:客戶端,伺服器和共享遠端介面。共享遠端介面通過指定伺服器必須實現的方法來定義客戶端 - 伺服器合同。介面必須對伺服器可見,以便它可以實現方法; 介面必須對客戶端可見,以便它知道伺服器提供哪些方法(服務)。
實現遠端介面的任何物件都註定要扮演伺服器的角色。因此,伺服器也可以呼叫客戶端中的方法的客戶端 - 伺服器關係實際上是伺服器 - 伺服器關係。這稱為*回撥,*因為伺服器可以回叫客戶端。考慮到這一點,可以使用指定客戶端來實現這樣的伺服器。

共享遠端介面是任何擴充套件 Remote介面。充當伺服器的物件經歷以下操作:

  1. 通過擴充套件實現 RemoteUnicastRemoteObject ,顯式或隱式實現共享遠端介面。
  2. 匯出,如果它擴充套件 UnicastRemoteObject,或者通過傳遞給 UnicastRemoteObject#exportObject 顯式匯出。
  3. 在登錄檔中繫結,可以直接通過 Registry 或間接通過 Naming 。這只是建立初始通訊所必需的,因為可以通過 RMI 直接傳遞更多存根。

在專案設定中,客戶端和伺服器專案完全不相關,但每個專案都在其構建路徑中指定共享專案。共享專案包含遠端介面。