É uma especificação e set de implementações que permitem que software em diferentes ambientes e sistemas operacionais possam executar chamadas remotas de procedimentos pela Internet. Usa HTML como transporte e XML para codificação. Foi projetado para ser simples o bastante para permitir a transmissão, o processamento e o retorno de estruturas de dados complexas.