我有一個假想的軟件,它有兩個組件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. 遠程調用Flex後調用函數
- 3. iPhone應用程序本地或遠程數據庫
- 4. 在反應本地調用js函數
- 5. AJAX調用一個遠程JS函數
- 6. jquery調用遠程php函數
- 7. Ansible有條件delegate_to本地或遠程?
- 8. 打開本地或遠程文件Widget
- 9. 本地文件或遠程服務器
- 10. 決定返回本地或遠程
- 11. 本地服務或遠程服務?
- 12. 在本地備份遠程數據庫
- 13. SOAP WCF Webservice在本地或遠程調用時的行爲有所不同
- 14. 使用遠程數據本地調試swf
- 15. Pycharm上的遠程調試連接本地和遠程路徑
- 16. 使用QFuture調用本地類函數
- 17. 推送時使用的是本地或遠程版本的git?
- 18. JNA - 無法從本地函數調用回調函數
- 19. 每次調用函數或創建本地變量
- 20. 函數內不允許遠程函數調用
- 21. 從本地代碼調用JavaScript函數
- 22. 從命令行調用本地函數
- 23. 本地變量調用一個函數
- 24. 調用移植庫的本地函數
- 25. 來自UIWebview的本地函數調用
- 26. 無法在本地調試azure函數
- 27. 在本地調試C#AWS Lambda函數
- 28. 本地遠程過程調用有哪些方法?
- 29. 可以使用託管線程調用本地函數
- 30. 遠程運行本地定義的函數
RPC和本地電話將始終具有完全不同的可靠性和性能特點,所以你問的問題它不是真的有可能是「透明」切換一個爲其他。 – 2011-11-27 13:47:21
你可以查看「關於分佈式計算的一個註釋」來評論這種方法 – sdcvvc