This includes architectural models such as client-server architecture, service-oriented architecture, and peer-to-peer architecture. These models provide the foundation for distributed systems and help designers understand the different aspects of distributed systems that are critical to their successful implementation.