RPC(remote processing call)may be a traditional technology for data transfer. And it always comes as a collection of technologies, on this condition almost all the call via net could be called RPC. In fact, It will describe inside of RPC for themselves.
First, IBM maybe the first one to develop this technology, and Java will give a RMI on its JVM. But not all of the coder develop on JVM, and alot of people always prefer a mixture solution on RPC, not just one Language. By this need, bufferedpool(from Google) and Thrift(from Twitter) have make a language level definition for RPC, the programmer could use the common language just like IDL to finish interface, and then they will generate almost all platform language(Java,C++,C#,Go and so on), and the code will be used in program.
Later, a xml transfter protocol SOAP use xml as the transfer format, and use a UDDI to regist all service, but every company have their plan, so it can not be call in one.
Following, Rest maybe the most cool technology and make the data transfer more fascinating. It just convey data by Json, and make it have a born familliar with Web development.
In the end, there is alot of technology framework for RPC, like Zeroc Ice, Dubbo, Apache Avro, they may a good solution for people finish their rpc have to write alot code and concentre their attention on bussiness logic.