Backend Development 9 min read

Understanding RESTful, SOAP, RPC, SOA, and Microservices: Differences and Relationships

This article explains the concepts, design principles, and key differences among RESTful, SOAP, RPC, SOA, and microservices, and outlines why microservices have emerged as an evolution of SOA, illustrated with typical framework examples and architectural evolution diagrams.

Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Mike Chen's Internet Architecture
Understanding RESTful, SOAP, RPC, SOA, and Microservices: Differences and Relationships

Many students are unclear about communication protocols and the distinctions between RPC, SOA, and micro‑services; large companies often ask about their relationships and core differences.

1. Introduction to RESTful, SOAP, RPC, SOA and micro‑services

2. Focus on the differences between SOA and micro‑services

3. Why use a micro‑service architecture

What is RESTful

RESTful is an architectural style that provides design principles and constraints; an application that satisfies these constraints is called a RESTful service.

Main design principles:

Resources and URIs

Uniform interface (HTTP methods such as GET, PUT, POST)

Resource representation

Resource linking

State transfer

In short, the core of RESTful is that the backend publishes resources as URIs , and the frontend accesses those resources via URIs, using HTTP verbs to indicate the operation.

What is SOAP

SOAP (Simple Object Access Protocol) is a lightweight, XML‑based data‑exchange protocol. Like HTTP, it is a transport protocol, but its request payload is formatted as XML.

SOAP messages are XML‑based and fit any router, firewall, or proxy because they conform to HTTP.

SOAP can be implemented in any language as long as a correct SOAP request is sent; SOAP‑based services run unchanged across platforms.

What is RPC

RPC (Remote Procedure Call) allows a client on one machine to invoke a function or method on a server machine and receive the result.

RPC hides low‑level communication details; developers do not need to handle sockets or raw HTTP.

It follows a request‑response model similar to HTTP.

Calling a remote function via RPC feels like calling a local function.

Common RPC frameworks

RMI – Java’s built‑in remote method invocation using the Java Remote Method Protocol.

Hessian – a lightweight HTTP‑based remoting tool with binary encoding.

Thrift – a scalable cross‑language service framework that generates client and server code from an IDL.

Dubbo – Alibaba’s RPC framework.

Spring Cloud – a full‑stack micro‑service suite providing configuration, discovery, circuit‑breaker, routing, etc.

In essence, micro‑services are a refined form of RPC; Spring Cloud builds HTTP‑based RPC on top of Spring Boot.

What is SOA

SOA (Service‑Oriented Architecture) encapsulates business functions of different applications as services, exposing them via interfaces and contracts for reuse.

SOA is a component model that connects services through well‑defined interfaces; services are the building blocks of SOA.

SOA vs. Micro‑services

Micro‑services are an evolution of SOA, offering finer granularity and independent processes that do not affect each other.

Micro‑services typically expose generic interfaces such as HTTP RESTful, which are language‑ and platform‑agnostic.

They favor decentralized, distributed deployment, making them suitable for large‑scale internet business scenarios.

Key differences:

Micro‑services are more fine‑grained and run as independent processes.

Micro‑services use universal interfaces (e.g., HTTP RESTful) that any client can call.

Micro‑services adopt a distributed, decentralized deployment model.

Why Micro‑services

Architecture evolves with business needs: from a single‑application monolith to vertical applications, then to distributed service architectures, and finally to micro‑services when services become sufficiently fine‑grained and independent.

Typical evolution steps include:

Single‑application architecture – one app for low traffic.

Vertical application architecture – split into independent apps as traffic grows.

Distributed service architecture – extract core business as independent services.

Flow‑computing architecture – add a scheduling center to manage cluster capacity.

Each stage highlights the key technology (ORM, MVC, RPC, SOA) that becomes critical at that point.

Below is an illustration of Dubbo’s platform evolution (image omitted for brevity).

backend architecturemicroservicesRPCRESTfulSOASOAP
Mike Chen's Internet Architecture
Written by

Mike Chen's Internet Architecture

Over ten years of BAT architecture experience, shared generously!

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.