Web services are now preferred over Remote Procedure Calls.
What is main difference between them?
Currently most Web services architectures adopt RPC as their architectural style. But because of the complexity of RPC, there are bottlenecks of RPC-style Web services in Web-scale applications. REST not only can make full use of Web features, but also has the advantage of simplicity. So REST becomes a new alternative to RPC for Web services architecture. In this paper, at first the brief introductions of RPC and REST are provided. Then two kinds of architectural styles are analyzed and compared from the perspectives of scalability, coupling, and security. In the end the development trend of Web services architecture is prospected.
Copied from: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5339611
Web Service a higher level representation of RPC. A web service is a specific implementation of RPC. At its lowest level, all a web service is, is connecting to a socket, using the HTTP protocol to negotiate sending a payload that is executed in a remote space (it may even be on the same computer, for all the consumer knows). All those abstractions are at its core RPC.
Copied from: What is the difference between remote procedure call and web service
Further attributes of a Web Service in addition to what Wayne wrote: allows a platform independent way of a RPC, is discoverable and self describing (compare that with a Win32 RPC)