1.1.2 분산 소프트웨어 시스템
분산 소프트웨어 시스템은 여러 독립적인 컴포넌트나 프로세스, 노드로 구성할 수 있는데, 이들은 서로 통신을 주고받으며 하나의 공동 목표를 달성하려고 동작합니다. 모든 구성 요소가 하나의 기기에 위치한 중앙 집중형 소프트웨어 시스템과 달리, 분산 소프트웨어 시스템은 지리적으로 다른 위치에 있는 여러 기기와 네트워크에 걸쳐 있습니다(그림 1-1 참고).
분산 시스템의 각 구성 요소는 특정 작업이나 일련의 작업 모음을 처리하며, 모두 하나의 공동 목표를 달성하려고 동작한다고 볼 수 있습니다. 각 구성 요소끼리는 원격 프로시저 호출(Remote Procedure Call, RPC)1이나 메시지 전달(message passing), 발행/구독 모델(publish/subscribe model) 같은 다양한 통신 프로토콜을 통해 서로 소통합니다.