Question: 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: 
> 
> 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.
• Data is formatted for transfer using XML, improving or eliminating marshalling, unmarshalling, and various other translation-related requirements normally coded by a developer. 
• Data is passed using standardized protocols such as HTTP or SMTP, which have published well-defined standards. 
• The underlying exposed service is well-defined using a known accepted mechanism, WSDL. 
• Services are found using a well-defined standard, UDDI, and the more advanced ebXML. 

Specifically WSDL provides a number of key pieces of information:

• A definition of the format of the messages that are passed between two endpoints using its and elements and appropriate schema definitions. 
• The semantics of the service: how it might be called to make a synchronous request/reply, synchronous reply-only or asynchronously communicate. 
• The end point and transport of the service via the element: that is, who provides the service. 
• An encoding via the element, that is how the service is accessed.