2011-11-27 216 views
1

我有一個假想的軟件,它有兩個組件A和B.組件B可以在本地部署在與A相同的機器上,也可以遠程部署組件B.我想知道是否有任何編程語言中的技術/方法/配置可以透明地處理對B的API的調用,而不管B是本地部署還是遠程部署。爲了結束開發者,它應該顯示爲相同的函數調用。在本地或遠程調用函數

+0

RPC和本地電話將始終具有完全不同的可靠性和性能特點,所以你問的問題它不是真的有可能是「透明」切換一個爲其他。 – 2011-11-27 13:47:21

+1

你可以查看「關於分佈式計算的一個註釋」來評論這種方法 – sdcvvc

回答

0

如果您使用遠程調用(例如,通過使用.net remoting或Java RMI),即使這兩個組件部署在同一臺計算機上,也可以執行調用。

0

在Windows中,您可以使用COM/DCOM來實現您想要實現的目標。從程序的角度來看,組件可以是遠程的或本地的並不重要,它仍然被實例化並以相同的方式使用。

+0

在COM/DCOm中,對本地部署組件的調用是否是本地函數調用?當組件出現在同一臺機器上並通過直接函數調用調用API時,我想避免使用套接字。但是當組件被遠程部署時,系統應該使用RPC或任何其他機制。 –

0

只需將B的API Url或位置保存爲應用程序的一個配置文件中的可配置文件,並試圖在整個應用程序中訪問此配置設置即可完成,但需要做的一件事是指向本地API或Remote Api。

因此,就最終開發人員而言,只有在應用程序的配置文件中進行更改,其餘功能調用保持不變,而不管組件B是本地部署還是遠程部署。

例如:一個Php應用程序試圖訪問在互聯網上任何地方部署的API web服務。

感謝

+0

在引用文本時,用>字符作爲行的前綴。縮進四個空格將文本格式化爲代碼,消除了換行並使文本變得難以閱讀。 – Amy