great_park
great_park
great_park
전체 방문자
오늘
어제
05-29 05:32
  • 분류 전체보기 (124)
    • Computer Science (48)
      • Database (9)
      • Operating System (8)
      • Computer Network (0)
      • Computer Architecture (9)
      • Cloud computing (9)
      • Algorithm (13)
    • Algorithm PS (62)
      • DFS & BFS (21)
      • Floyd-Warshall (1)
      • Dijkstra (0)
      • Divide and Conquer (0)
      • Dynamic Programing (22)
      • Greedy (0)
      • BackTracking (11)
      • Binary Search (6)
      • Brute Force (0)
      • Sorting (0)
      • Stack & Queue (1)
      • Number Theory (0)
    • 기타 (12)
      • AWS (3)
      • Docker (1)
      • 기타 (8)
    • 2023 Google Solution Challenge (1)

최근 글

인기 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록
반응형

태그

  • dp
  • Docker
  • Database
  • pub/sub
  • Binary Search
  • dfs
  • BOJ
  • 알고리즘
  • operating system
  • mysql
  • php
  • cloud computing
  • Binarysearch
  • BFS
  • LIS
  • backtracking
  • DeadLock
  • Computer Architecture
  • Single-Cycle Datapath
  • Node.js
hELLO · Designed By 정상우.
great_park

great_park

[Cloud computing] 7. Models
Computer Science/Cloud computing

[Cloud computing] 7. Models

2022. 12. 4. 23:05
반응형

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를 제공
  • 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의 실행 속도는 임의로 오래 걸릴 수 있음
      • 실행과 관련된 시간 간격에 대한 제약이 없다.
  • 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는 주 계약자의 신원을 확실히 알고 있다.
반응형
저작자표시 (새창열림)

'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
    'Computer Science/Cloud computing' 카테고리의 다른 글
    • [Cloud computing] 9. Global States
    • [Cloud computing] 8. Logical Clock
    • [Cloud computing] 6. Parallel & Distributed
    • [Cloud computing] 5. Virtualization
    great_park
    great_park
    GitHub : https://github.com/great-park

    티스토리툴바