[분산처리] Distributed Systems (5th Ed. by G. Coulouris) 2단원 정리
Chapter 2 : System models
Physical model : the most explicit way where to describe a system
representing underlying hardware elements of a distributed system that abstracts away from specific details of the computer and networking technologies employed.
ULS : ultra large scale (Distributed system)
Architectural model : a system in terms of the computational and communication tasks performed by its computational elements
시스템을 구성하는 각각의 component와 그 사이의 관계
to make the system reliable, manageable, adaptable, and cost effective
communication이 위주.
Remote invocation : RPC(local address space에 있는 procedure가 불릴 수 있음. Remote procedure call), RMI(Remote method invocation. resembles remote procedure calls. calling object can invoke a method in a remote object)
Indirect communication : group communication(multi or broadcast), publish-subscribe system(consumer가 소비하고 publisher가 배포)
client-server : invocation-result (HTTP server)
peer-to-peer : 누구든 server가 될 수 있고 누구든 client가 될 수 있다. (BitTorrent)
tolerance의 가장 간단한 방법 : 물리적으로 중복시키기.
placement - cache : proxy server - cache역할을 하는 서버로, client와 server 사이의 connection에 있음. proxy를 거치도록.
placement - mobile code : applets - code is downloaded to the browser and runs there. 최신의 코드로 유지해야 하는 문제가 있음. delay가 없음. variability of bandwidth 문제도 없음.
placement - mobile agent : 목적을 가지고 특정한 일을 한다.
layering : component들이 어떻게 layered되어 있는지. 일종의 모듈화 -> interaction을 고려해야 한다. (Middleware)
vertical organization. 계층화 -> overhead를 유발한다.
tier : 일종의 layering. 기능에 따라서 나눔.
Thin client : 힘든 일은 server에서 하고 결과만 client로 가져온다. (applet과 반대. server에서 code를 실행)
Fundamental model : an abstract perspective in order to examine individual aspects of a distributed system.
분산 시스템을 보는 측면에 따라서 interaction model, failure model, security model의 세 개로 나눔.
Interaction : the processes interact by passing messages, resulting in communication and coordination between process
Failure : threatened whenever a fault occurs (failure를 유발하는 원인)
Security : the modular nature of DS and their openness exposes them to attack by both external and internal agents. (노출이 많아서 위험이 많음.)
Algorithm : sequence of steps to be taken in order to perform a desired computation
Distributed algorithm : a definition of the steps to be taken by each of the processes of which the system is composed.
performance of channel : latency, bandwidth, jitter(variation in the time taken to deliver a series of messages)
clock drift rate : rate at which a computer clock deviates from a perfect reference clock
Synchronous distributed system : lower, upper bound가 있어서 그 안에 reply를 받아야 한다.
Asynchronous distributed system : no bound. 일반적인 인터넷 환경.
Event ordering = logical clock (integer를 증가하는 순서로 부여되니까.)
resident event는 순서가 있음. (logical clock에 의해서. 외부 event의 순서와는 상관없기 때문에.)
omission failure : crash. 문제가 발생하면 멈춤. 정상적인 failure. fail-stop model. time-out을 통한 crash detection.
communication channel에서 발생할 수도 있음.
arbitrary failure : 예측이 불가능하고, detection이 어려움. 문제가 발생되도 계속 실행됨. (큰 문제가 발생 가능)
Y2K 문제.
timing failure : 시간으로 인한 failure. limit을 지키지 못한 경우도. synchronous system에서 적용이 가능하다.
security model : communication channel에서는 메일 서버인 척 하는 메일 서버가 아닐 수도 있음. 암호화, 인증을 한 뒤 전송을 할 필요가 있음. -> Cryptography(암호 작성), Encryption(암호화)