我有一個假想的軟件,它有兩個組件A和B.組件B可以在本地部署在與A相同的機器上,也可以遠程部署組件B.我想知道是否有任何編程語言中的技術/方法/配置可以透明地處理對B的API的調用,而不管B是本地部署還是遠程部署。爲了結束開發者,它應該顯示爲相同的函數調用。在本地或遠程調用函數
回答
如果您使用遠程調用(例如,通過使用.net remoting或Java RMI),即使這兩個組件部署在同一臺計算機上,也可以執行調用。
在Windows中,您可以使用COM/DCOM
來實現您想要實現的目標。從程序的角度來看,組件可以是遠程的或本地的並不重要,它仍然被實例化並以相同的方式使用。
在COM/DCOm中,對本地部署組件的調用是否是本地函數調用?當組件出現在同一臺機器上並通過直接函數調用調用API時,我想避免使用套接字。但是當組件被遠程部署時,系統應該使用RPC或任何其他機制。 –
只需將B的API Url或位置保存爲應用程序的一個配置文件中的可配置文件,並試圖在整個應用程序中訪問此配置設置即可完成,但需要做的一件事是指向本地API或Remote Api。
因此,就最終開發人員而言,只有在應用程序的配置文件中進行更改,其餘功能調用保持不變,而不管組件B是本地部署還是遠程部署。
例如:一個Php應用程序試圖訪問在互聯網上任何地方部署的API web服務。
感謝
在引用文本時,用>字符作爲行的前綴。縮進四個空格將文本格式化爲代碼,消除了換行並使文本變得難以閱讀。 – Amy
- 1. 從遠程腳本塊調用函數
- 2. 從遠程函數調用
- 3. 遠程調用Flex後調用函數
- 4. 使用通用參數本地或遠程執行powershell腳本
- 5. Asyncsocket:沒有本地或遠程地址
- 6. WebView:從遠程HTML調用本地JavaScript
- 7. 遠程過程調用與本地過程調用
- 8. iPhone應用程序本地或遠程數據庫
- 9. 調試GWT應用程序在本地/遠程,而在Tomcat
- 10. 在反應本地調用js函數
- 11. jquery調用遠程php函數
- 12. AutobahnJS:遠程調用異步函數
- 13. 從函數調用遠程sproc
- 14. AJAX調用一個遠程JS函數
- 15. 遠程調用bash腳本失敗,但在本地運行
- 16. 打開本地或遠程文件Widget
- 17. Ansible有條件delegate_to本地或遠程?
- 18. 本地文件或遠程服務器
- 19. 決定返回本地或遠程
- 20. 授權訪問(遠程或本地)
- 21. 本地服務或遠程服務?
- 22. NSIncrementalStore - 使用本地和遠程數據
- 23. 在本地備份遠程數據庫
- 24. SOAP WCF Webservice在本地或遠程調用時的行爲有所不同
- 25. 使用遠程數據本地調試swf
- 26. 我的本地PowerShell腳本如何調用遠程PowerShell腳本?
- 27. Pycharm上的遠程調試連接本地和遠程路徑
- 28. 如何遠程調用正在Eclipse中調試的applet函數?
- 29. 使用QFuture調用本地類函數
- 30. 推送時使用的是本地或遠程版本的git?
RPC和本地電話將始終具有完全不同的可靠性和性能特點,所以你問的問題它不是真的有可能是「透明」切換一個爲其他。 – 2011-11-27 13:47:21
你可以查看「關於分佈式計算的一個註釋」來評論這種方法 – sdcvvc