首页 \ 问答 \ 远程过程调用和Web服务有什么区别?(What is the difference between remote procedure call and web service)

远程过程调用和Web服务有什么区别?(What is the difference between remote procedure call and web service)

有关RPC和Web Service的明确定义? 快速维基百科搜索显示:

RPC:远程过程调用(RPC)是一种进程间通信技术,允许计算机程序使子程序或过程在另一个地址空间(通常在共享网络上的另一台计算机上)执行,而无需程序员明确编码这个远程交互。

Web服务:Web服务通常是通过超文本传输​​协议访问并在托管所请求的服务的远程系统上执行的应用程序编程接口(API)或Web API。 Web服务往往属于两大阵营之一:Big Web Services [1]和RESTful Web Services。

我不太清楚两件事情之间的真正区别。 似乎有一件事可以属于RPC,同时也是一种Web服务。

Web Service是RPC的更高层次的代表?


Is there any clear definition of RPC and Web Service? A quick wikipedia search shows:

RPC: Remote procedure call (RPC) is an Inter-process communication technology that allows a computer program to cause a subroutine or procedure to execute in another address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction.

Web Service: Web services are typically application programming interfaces (API) or web APIs that are accessed via Hypertext Transfer Protocol and executed on a remote system hosting the requested services. Web services tend to fall into one of two camps: Big Web Services[1] and RESTful Web Services.

I am not quite clear what the real difference between the two things. It seems that one thing could belong to RPC and is kind of web service at the same time.

Is Web Service a higher level representation of RPC?


原文:https://stackoverflow.com/questions/3028899
更新时间:2022-04-08 20:04

最满意答案

您可能正在寻找的是面向方面编程(AOP)库。

看看这个问题: 面向.NET的面向方面编程(AOP)库仍在积极开发中?


What you probably are looking for is aspect oriented programming (AOP) libraries.

Look at this question: What Aspect-Oriented Programming (AOP) libraries for .NET are still actively developed?

相关问答

更多
  • 此线程与此问题有关... https://github.com/ninject/Ninject.Web.WebApi/issues/17 我发现InRequestScope的行为似乎会改变,这取决于你如何注入它们。 例如... public ValuesController(IValuesProvider valuesProvider1, IValuesProvider valuesProvider2) { this.valuesProvider1 = valuesProvider1; th ...
  • 我们从头开始。 使用Umbraco编译的二进制文件/网站而不是源代码。 从那时起我们使用nuGet安装了MVC4和Ninject,一切似乎都运行良好。 感谢那些帮助过的人! We started from scratch. Using the Umbraco compiled binaries/website instead of the sources. From that point we installed MVC4 and Ninject using nuGet and everything see ...
  • 您可能正在寻找的是面向方面编程(AOP)库。 看看这个问题: 面向.NET的面向方面编程(AOP)库仍在积极开发中? What you probably are looking for is aspect oriented programming (AOP) libraries. Look at this question: What Aspect-Oriented Programming (AOP) libraries for .NET are still actively developed?
  • 在淘洗和淘洗之后,我发现在这里已经提出并回答了类似的问题: Ninject拦截具有某些属性的任何方法? 我在Ninject.Extensions.Interception.Planning.Strategies中使用它与InterceptorRegistrationStrategy类的源代码一起创建了一个我现在正在使用的派生。 蟋蟀 After scouring and scouring, I found that a similar question had been asked and answered ...
  • 你的ninject配置中的预处理器指令怎么样? 它应该做你想要的。 #if DEBUG kernel.Bind().To(); #else kernel.Bind().To(); #endif What about preprocessor directives in your ninject configuration. It should do what you want ...
  • 这与个人偏好一样重要。 您可以在多个解决方案中拥有项目。 我个人认为这是等待发生的灾难,但确实有它的粉丝。 我已经看到人们因此而陷入严重的混乱依赖。 如果你来重构一些东西并且需要打破一些依赖关系,你可以在它的一端拉上它,然后将整个父解决方案放在你的腿上。 它需要一些严格的训练,但如果你打破了局面,你就不会意外地将自己射中脚。 您可以将所有内容放在一个解决方案中,这也是它的粉丝,并且如果我正在开发大量库同时进行+ prototye +单元测试,它确实可以节省大量的切换。 我认为你想要的方式和我们倾向于这样做的 ...
  • 重要的是要注意,虽然实际的“条件匹配”是运行时条件,但实际上您事先知道可能的匹配集(至少在构建容器时启动时) - 这可以通过使用约定来证明。 这就是条件/上下文绑定的含义(在Ninject WIKI中有描述,并在几个问题中有所介绍)。 所以你实际上不需要在任意运行时间进行绑定,而只需要在任意时间进行解析/选择(分辨率实际上可以提前完成=>早期失败)。 这是一个可能的解决方案,其特点是: 在启动时创建所有绑定 早期失败:验证启动时的绑定(通过实例化所有绑定的IExport ) 在任意运行时选择IExport ...
  • 你走错了路。 您不应扩展SimpleContainer并使用Ninject来激活实例。 这意味着您正在使用IoC容器来获取其他IoC容器的实例。 相反,您必须更改Bootstrapper以将Ninject用作IoC容器。 网上有很多例子,例如http://caliburnmicro.codeplex.com/discussions/230861 要使用来自IPhoneContainer的Phone特定功能,您很可能必须在Ninject周围放置一个包装器并实现此接口提供的方法。 更新 您可以添加IActiva ...
  • 我对此做了一些尖峰,似乎可以将这种行为纳入拦截扩展。 但是,由于我们计划在不久的将来发布2.2版本,你必须要有点耐心。 我非常喜欢这个改变所以我打算把它添加到2.4。 穗也远没有生产力。 所有当前的单元测试都在运行。 但是有很多新功能需要添加此功能。 如果你愿意,我可以发给你一个补丁,但我不会给你任何支持和保证,它目前没有错误。 I did some spiking on this and it seems that it is possible to get that behavior into the ...
  • 这在其他人之前已经发生过,参见Ninject Issue 131 。 Arindamat提出了以下修复: _kernel .Bind() .ToConstant(new DefaultModelValidatorProviders( config.Services.GetServices( typeof (ModelValidatorProvider)) .Cast< ...

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。