2011-11-27 52 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