본문 바로가기
대학원(~2019.07)/분산처리(소프트웨어공학)

Chapter 2 - System Models [시스템 모델(2/2)]

by 카터(Carter. CHO) 2017. 3. 28.


(3) Fundamental Models


프로세스의 커뮤니케이션과 한개 이상의 메세지 전송으로 이뤄진 전체의 네크워크 모델


모델의 목적


- 우리들은 연과된 모든 인수들을 명확하게 하기 위해 모델링 한다.

- 무엇이 가능하고 불가능한것인지를 확실하게 정한다.


* Interaction - 파싱 메세지를 통해 상호작용이 가능하며, 결과적으로 커뮤니케이션과 동기화가 가능하다.

                시간적 딜레이를 대해 반영/수용하는가?


* Failure - 문제 발생시 대처 방안이 필요하다. 

            정의된 실패(Failure) 도출 할 수 있는가?


* Security - 자연적인 모듈링과 공개성(OPENNES), 노출성에 대해 내/외부 공격에 대비 하는가?

             공격의 정의가 가능한가?


(3.1) Interaction Model

- 한개 이상의 서버와 한개 이상의 서비스는 다수의 서비스를 제공한다.

- 피어 프로세스는 여러 목적을 달성하기 위해 다수와 협동한다.


* 알고리즘: 계산에 처리에 요구하는 각 스텝의 순서 정의

* 분산 알고리즘: 명료하게 정립된 각각의 프로세스 순서 정의 (현실적으로 불가능한 알고리즘- 시간, 동기화 등의 이슈) 


A,B 의 프로세스에서 진행되는 처리 시간은 그들(A,B)은 각자를 예상할 수 없다.


Interaction Processes에 영향을 미치는 두가지 요인

* 커뮤니케이션 성능

* 하나의 통일된 시간 개념(Global Clock)


커뮤니케이션 채널 성능


* Latency(잠복) : 시작된 메세지의 변환 과정에서 오는 정체

  - 첫번째 문장 시작에서 변환을 위한 시간

  - Network에 접근할 경우 소요 시간

  - OS 와의 처리 시간


* Dandwidth : 송신을 위한 전체의 정보의 양


* Jitter : 메세지를 Variation 하는 소요시간


컴퓨터 시간 그리고 시간 이벤트


* 각 컴퓨터가 소유한 Clock (Timestap)


* Local clocks (Drift rate)


* 한 곳을 바라보는 복수의 컴퓨터 Clock (Using a Global Positioning System)


두가지 다른 형태의 Interaction Model


1) Synchronous distributed systems

- It exists a Time bounds


2) Asynchronous distributed systems


- No bound (Arbitrarily long time)


Event Ordering [1978-Lamport] 논문 참고 - A model of logical time


(3.2) Failure Model


네트워크 프로세스상에서 커뮤니케이션 오류가 생겼을 때


프로세스에서 일어나는 Failure를 구분지으면,


Omisson Failure / Arbirary Failure / Timing Failure 으로 나눠진다.


1) Omisson Failure


*프로세스와 충돌 

 스텝상에서 문제를 일으킨 부분을 제거하지(Execute) 못했을 경우 일어난다.

 충돌을 Detection 방법(Timeouts)

 비동기 시스템에서는 Timeouts 방법을 사용하기 힘들다.(Nobound)

 Fail-stop을 일으키게 된다.


*초기의 커뮤니케이션(send, receive)


sender M 와 receiver Q 에 Buffer를 설치 채널 및 M,Q 의 오류를 검출


2) Arbitrary Failure

 

Arbitrary Failure의 경우 순차적으로 진행되는 프로세스를 생략한다.

Detection 하는 것이 매우 힘들다.(요청/반응이 없는 경우)


* Timing failures


* Masking faulures

  이 부분을 가장 해결하기 손쉬운 방법은 중복처리 하는 것

  Back Up Server / DB 상태를 HOT으로 적용하면 해결 가능


* Reliability of one to one communication(서버와 클라이언트의 신뢰 문제)

  Validity (유용성)

  Intergrity (무결성) 


3) Security Model


Protecting Objects


- User : 클라이언트 오브젝트를 통해 서버에게 요구하는(Invoc) 형태

- Server : 산출된 값에 대해 각각의 클라이언트에게 전달하는 형태

- Acces Right : 각각의 허용된 권한 관리 / 접근 관리


Securing Processes and Their interactions


네트워크에 그들의 커뮤니케이션을 공개하며 서비스 제공하기 때문에 공격으로 노출된다.

커뮤니케이션 실패와 보안 위협에 대해 무결성은 위협을 받는다.


1) The enemy (적)


* Server와 Client 사이에서의 신뢰성을 제고한 상태가 필요


* 커뮤니케이션 채널을 이용하여 해결하는 방법


2) Defeating Security Treats (암호 / 해독을 이용)


* 암호 : 메세지를 암호화

* 부호화 : 프로세스의 스크램블링을 통해 메세지 컨텐츠를 Hiding 하는 방법


- 권한을 이용한 방안

- 보안 채널을 이용한 방안


3) 다른 방법의 공격자 


- Denial of service (Dos)

- Mobile code (Trojan horse role)