반응형
Reference
1. Thomas Erl_ Zaigham Mahmood_ Ricardo Puttini - Cloud Computing_ Concepts, Technology & Architecture-Prentice Hall,
2. Cloud Computing class by Professor Heonchang-Yu of the Department of Computer Science and Engineering at Korea University
- Physical Model : 시스템을 가장 명확하게 기술하는 방법
- Architectural model : 컴퓨팅 요소에 의해 수행되는 계산 및 통신 시스템
- Fundamental model : 분산형 시스템의 개별 측면을 조사하기 위한 추상 모델 (interaction model, failure model, security model)
Physical Models
- 분산 시스템의 hardware 요소를 추상화하여 표현
Architectural Models
- 시스템을 신뢰있고, 관리할 수 있으며, 적용성 및 비용성 측면에서 효율적이도록 하는 것이 주 관심사
- 3단계 접근 방식을 채택
- 핵심 architectural element 검토
- 복합 architectural 패턴 검사
- middleware 플랫폼 검토
- 4가지 주요 질문
- 분산 시스템에서 통신하고 있는 entities는 무엇인지
- 그들이 어떻게 통신하는지, 어떤 통신 패러다임을 사용하는지
- 전반적으로 어떤 role과 responsibilities가 있는지
- physical distributed infrastructure와 어떻게 mapping되는지
- Communicating entities - DS에서 통신하는 entity는 process이다.
- Problem-oriented 추상화
- Communication 패러다임
- IPC - DS에서의 IPC → 비교적 낮은 지원
- Remote invocation - DS 내 통신 entitiy 간 필요한 기술을 호출
- Request-reply protocol - 클라이언트와 서버 간 메시지 교환으로 통신
- Remote procedure calls (RPC) - 원격 프로시저 호출
- Remote method invocation (RMI) - remote object 내 메소드 호출
- Indirect communication
- Group communication - 일대다 통신을 지원하는 multiparty 패러다임
- Publish-subscribe system - 다수의 생산자가 동일한 소비자에게 관심있는 정보 항목(이벤트)을 배포하는 정보 전달 시스템
- Message queue - 생산자 process가 지정된 큐에 메시지를 보낼 수 있는 point-to-point 서비스
- Tuple spaces - process가 tuple의 임의 항목을 영속적인 tuple 공간에 배치함으로써 보다 간접적인 통신 서비스 제공
- Distributed shared memory - 물리적 메모리를 공유하지 않는 process 간 데이터 공유
- Role 과 Responsibilities
- Client-server
- 클라이언트 process는 공유 자원에 접근하기 위해 서버 process와 상호 작용(호출/결과 메시지 쌍)
- 서버는 다른 서버의 클라이언트일 수 있다.
- Peer-to-peer
- 모든 process가 유사한 역할을 수행, 역할을 구분하지 않고 peer로서 상호 작용한다.
- 서비스 사용자가 소유한 네트워크 및 컴퓨팅 자원을 해당 서비스에 지원하기 위해 사용 가능
- 각 오브젝트는 여러 컴퓨터에서 복제되어 부하를 더욱 분산하고 개별 컴퓨터의 연결이 끊겼을 때 resilience를 제공
- Client-server
- Placement
- entity가 네트워크에 의해 상호 연결된 다수의 시스템으로 구성되는 기본 physical distributed infrastructure에 매핑되는 방식
- Placement 전략
- 여러 서버에 대한 서비스 매핑
- Caching - 요청이 들어오면 먼저 캐시를 확인한다. 웹 브라우저는 최근 방문한 웹 페이지 및 기타 캐시를 유지한다 Web Proxy Server - 서비스 가용성 및 성능 향상
- Mobile code - 클라이언트가 웹 서버에 저장된 코드를 요청, 브라우저에 코드가 저장되어 실행됨
- Mobile agent - 정보 수집과 같은 작업을 대행하여 네트워크 내에서 컴퓨터 간 이동하며 결과를 가지고 돌아오는 프로그램
- Architectural patterns
- Layering - 복잡한 시스템을 여러 계층으로 분할,각 계층은 하위 계층에서 제공하는 서비스를 이용한다.
- Platform - 가장 낮은 level의 hardware, software 계층
- Middleware - 개발자에게 편리한 프로그래밍 모델을 제공하는 software 계층
- Tiered architecture - 특정 계층의 기능을 구성하고 이 기능을 적절한 서버 및 물리적 노드에 배치하는 기술
- Two-tier solution - 클라이언트와 서버의 2개의 process로 분할 메시지 교환이 1회뿐이라 빠르다
- Three-tier solution - 논리 요소에서 물리 서버로의 일대일 매핑
- Thin Clients - 무거운 작업은 server에 맡기고 결과만 받아오는 것 사용자 코드에 application 코드를 다운받지 않고 서버에서 실행
Fundamental Models
- 네트워크를 통해 메시지를 전송하여 서로 통신하는 process
- 기본 모델
- Interaction - 각 process가 메시지를 전달함으로써 상호 작용하여 통신
- Failure - 장애를 정의하고 분류
- Security - 공격이 일어날 수 있는 형식을 정의하고 분류
Interaction model
- 분산 알고리즘 - 시스템이 구성되는 과정에서 각 알고리즘이 실행하는 순서의 정의
- 통신 채널의 성능
- latency - 프로세스 간 메시지 전송에서의 지연
- Bandwidth - 전송할 수 있는 정보의 총량
- Computer clocks and timing events
- 각 컴퓨터에는 internal clock이 존재
- local clock에 따라 다른 시간 값이 제공
- 두 가지 변형
- Synchronous distributed systems - bounded
- process의 각 실행 단계에 하한, 상한 존재
- 채널을 통한 메시지 전송에 제한 시간 존재
- Asynchronous distributed systems - no bounded
- prcoess의 실행 속도는 임의로 오래 걸릴 수 있음
- 실행과 관련된 시간 간격에 대한 제약이 없다.
- Synchronous distributed systems - bounded
- Event ordering
- 한 process의 event가 다른 process의 event에 대해서 언제 발생했는지 확인
- Lamport가 logical time model 제시
- logical ordering - 마치 번호표와 같이 상대적 순서만 따짐
Failure model
⇒ Omission failure, arbitary failure, timing failure
Omission Failures
- process 누락 - process 충돌
- 프로그램 중지
- 타임아웃 - 충돌 탐지
- Communication primitives: send, receive
- 메시지 m을 발신 메시지 버퍼에 삽입 후 송신
- 통신 채널은 m을 q의 착신 메시지 버퍼로 전송
- 착신 메시지 버퍼에서 m을 가져와 전달함으로써 수신
- communication 누락 failure
- P의 발신 메시지 버퍼에서 메시지를 q의 착신 메시지 버퍼로 전송하지 않은 경우
- send-omission failure : 송신 process와 발신 메시지 버퍼 사이의 메시지 손실
- receive-omission failure : 착신 메시지 버퍼와 수신 process 사이의 메시지 손실
Arbitrarily failures
- process의 실행 단계를 일부 생략하거나 의도하지 않은 처리 시 발생
- 프로세스가 응답하는지 확인하는 식으로는 탐지할 수 없다.
- 통신 채널에서의 arbitrarilly failure - 메시지가 손상되거나 잘못된 메시지가 전달
Timing failures
- 프로세스 실행 시간, 메시지 전달 시간 등 시간 제한이 설정된 동기식 분산 시스템에서 발생
- 비동기 분산 시스템은 발생 X
Masking failures
- 데이터 복제본을 보유하고 있는 여러 서버 중 하나가 crash 나더라도 서비스를 계속 제공할 수 있다.
- 서비스는 장애를 완전히 숨기거나 허용 가능한 장애 유형으로 변경하여 masking 한다.
Reliability of one-to-one communications
- Validity : 발신 메시지 버퍼 내의 모든 메시지는 최종적으로 착신 메시지 버퍼로 전달된다.
- Integrity: 수신된 메시지가 발송된 메시지와 동일하며, 두 번 배달되는 메시지는 없다.
Security model
- object(User, process) 보호
- Users: 서버에 호출을 보내는 클라이언트 프로그램을 실행하여 object의 작업을 실시
- Server: 각 호출에서 지정된 작업을 수행하고 결과를 클라이언트로 보낸다.
- Access rights: object의 작업을 수행할 수 있는 user를 지정
- The enemy
- process 위협
- server: 송신자의 ID를 신뢰할 정보가 없으면 서버는 작업을 거부
- client: 전달된 메시지의 소스가 어디서 온 것인지 알 수 없는 경우가 있음
- communication channel 위협
- 적이 메시지를 복사, 변경, 주입할 수 있음
- 메시지 복사본을 저장하고 나중에 replay
- 서비스 거부
- 네트워크 내의 서버스 또는 메시지 전송에 대해 무의미한 다수의 호출을 함으로써 적이 인증된 사용자의 활동을 방해
- mobile code
- 다른 곳에서 프로그램 코드를 수신하고 실행하는 프로세스로써 보안 문제를 발생함(Trojan horse role)
- security threat 제거
- Authentication - 발신인이 제공하는 ID 증명
- 메시지의 신뢰성을 보증하기 위해 암호화된 인증 부분을 포함시킴
- Secure Channels - 암호화와 인증을 통해서
- 기존 통신 계층 위에 위치한 계층
- 각 process는 주 계약자의 신원을 확실히 알고 있다.
- Authentication - 발신인이 제공하는 ID 증명
- process 위협
반응형
'Computer Science > Cloud computing' 카테고리의 다른 글
[Cloud computing] 9. Global States (0) | 2022.12.04 |
---|---|
[Cloud computing] 8. Logical Clock (0) | 2022.12.04 |
[Cloud computing] 6. Parallel & Distributed (0) | 2022.10.24 |
[Cloud computing] 5. Virtualization (0) | 2022.10.14 |
[Cloud computing] 3. Architecture (0) | 2022.10.13 |