A very common architecture for distributed systems is Service-Oriented Architecture (SOA). It's not a new invention, as this architectural style is almost as old as computer networking. There are many aspects of SOA ranging from an Enterprise Service Bus (ESB) to cloud-native microservices.
If your applications include web, mobile, or Internet-of-Things (IoT) interfaces, this chapter will help you understand how they can be built with a focus on modularity and maintainability. As most of the current systems work in a client-server (or other network topology) manner, learning about SOA principles will help you design and improve such systems.
The following topics will be covered in this chapter:
- Understanding SOA
- Adopting messaging principles
- Using web services
- Leveraging managed services and cloud providers