What is the difference between remote procedure call and web service?

xiao 啸 picture xiao 啸 · Jun 12, 2010 · Viewed 48.2k times · Source

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?

Answer

Wayne Hartman picture Wayne Hartman · Jun 12, 2010

Is Web Service a higher level representation of RPC?

Yes, it is. A web service is a specific implementation of RPC. At its lowest level, Web Service connects to the Socket, using the HTTP protocol, to negotiate sending a payload that is executed in a remote space (remote space can be the same computer). All these remote call abstractions, at its core, are RPCs.