[클라우드컴퓨팅/CloudComputing] 2. Architecture
분산 시스템의 2가지 형태
1. 소프트웨어 아키텍처
- 논리적으로 어떻게 구성되어 있는지에 대한 것을 말함
소프트웨어 아키텍처 스타일의 분류
- 계층구조(상위 계층은 하위계층에게 요구)
- 객체 기반(객체 간 상호작용)
- 데이터 중심(공유데이터 공간이 있고, upload하고 download)
- 이벤트 기반(컴포넌트에게 publish, deliver) 아키텍쳐가 있다.
2. 시스템 아키텍처
- Real Machine에서 어떻게 배치되고 구현되어 있는지에 대한 것을 말함
시스템 아키텍처의 종류
1. Centralized Architectures
1.1 Client-Server model
- 클라이언트에서 서버에 request를 보내고 응답받는 형식
- idempotent(클라이언트가 요청이 중복되어도 결과값이 같은 경우) 거나 아닌 경우가 있다.
- 보통 웹에서는 idempotent인 편
- vertical(수직적)이다.
1.2 application layering
- 유저 인터페이스 레벨,
- 프로레싱 레벨,
- 데이타 레벨
Vertical distribution
- c-s application
- multi-tired architecture
Horizontal distribution
- horizontal
- 서버와 클라이언트역할을 둘다 하는 servent가 있다. ( Server+Client)
- overlay network
2. Decentralized Architectures
2.1 Structed peer to peer
- 링형태(여러 peer들이 데이터 나눠가짐. peer들은 servant)
- 콘텐트 어드레스 네트워크(좌표)
2.2 Unstructed peer to peer
- construct overlay network : 주변 neighbor에게 수소문해 원하는 데이터 찾음
- two-layered approach : random overlay를 좀 더 정형화해 찾기 쉽게함
- an illustration: overlay를 정형화함 도넛모양
3. Hybrid
client-server 과 p to p의 차이점
- client-server은 수직적, centralized, 서버만 있으면 되지만 구축해야한다
- p to p은 수평적, decentralized, 서버x 구축비용x, 다른 peer들이 가진 데이터를 빨리 찾는 것이 중요