본문 바로가기

협동분산시스템

Middleware Protocol

반응형

미들웨어 프로토콜이란?

논리적으로는 application 아래 단에 존재한다.

 

application이 middleware 서비스를 이용하면 분산 시스템을 편하게 이용할 수 있다.

middleware가 제공할 수 있는 서비스는 크게 두가지이다.

1) 다양한 middleware 서비스를 구축할 수 있는 protocol 

2) high level communication protocol

 

1)

middleware 서비스는 주로 맞춤형 서비스가 아닌 많은 application을 대상으로 하는 범용 서비스이다.

서비스를 예로 들어보겠다.

- 인증

: 로그인 서비스

- 권한

: 인증이 된, 로그인이 된 사용자를 대상으로 서로 다른 권한을 부여한다.

- 커밋

: operation이 하나일 수도, 여러개일 수 도 있는데

원자성을 만족시키기 위해서 중간에 잘못되면 rollback한다.

- 분산 locking

: 여러 분산된 노드들이 데이터를 공유할 때, concurrency를 위해 사용

client단에서 remote resource에 접근하기 전에 서버에 lock 요청을 보낸다.

 

2)

통신 관련 프로토콜

high level communication protocol도 지원한다.

소켓으로 메세지를 보내기 전에 다른 처리를 해줘서 high level service를 제공해준다.

 

- RPC : remte procedure call
application이 transport layer를 이용해 보낼 수도 있다.
그 방법은 client가 server에 요청해서 서비스를 사용할 때, 요청 메세지를 만들어 소켓을 통해 보내고 받는다. 

하지만 application이 다 만들어서 보내서 불편하고 explicit하다.
좀 더 편하도록 나온 방법이 rpc, 위의 방법은 explicit하므로 분산 투명성이 지켜지지 않는다.
rpc는 원격지의 서버에 있는 함수 호출, 리턴값으로 응답을 받는다.

 

data streaming은 제약사항이 존재한다. 

(1) timing constraint 

(2) 동기화 : streaming 하는 데이터가 multimedia이 때문에
만약 스테레오 뮤직이면 좌우측소리를 동기화를 잘해줘야 자연스럽게 들린다.

- real-time data를 보내기 위해 설정을해주고 stream을 동기화해준다.

 

- reliable multicast service
1: N 통신으로 수신자가 하나가 아닌 그룹으로 전송한다.
multicast는 app level 의 서비스가 아닌 router단의 서비스다. 

- 실제로는 어떤 다른문제로 잘 사용하지 않는다
UDP 소켓을 사용한다.

 

-> 몇몇 미들웨어 통신 프로토콜은 transport layer의 프로토콜과 같을 수 있다.

미들웨어 시스템이 다른 프로토콜을 사용해 서비스를 제공하더라도, single interface를 제공한다.

 


기준에 따라 communication type이 몇가지로 나눠진다.


- persistent vs transient 

: 왔다갔다하는 메세지가 영구적(미들웨어가 중간에 저장이 되냐) vs 일시적

 

- synchronous vs asynchronous : C-S 모델에서 서비스 요청, 응답 패턴으로 통신할 때 구분한다. 

응답 기다리면 synchronous 기다리지 않고 다른 task하면 asynchronous

 

이 때 sender가 언제까지 기다리는지 세개의 서로 다른 동기화 포인트가 존재한다.

 

  •  일반적인건 서버의 reply를 받을 때 까지 기다린다.
  •  client 측의 middleware가 응답 메세지를 보내준다.
  •  server 측의 middleware가 응답 메세지를 보내준다.

persistence, transient 와 조합해서 사용한다.

synchronization & persistence : message queuing system

synchronization & transient communication : RPC

 

- discrete vs streaming 

: 일반 파일이면 discrete 통신, multimedia는 streaming

 

 

 

반응형

'협동분산시스템' 카테고리의 다른 글

Hard Link vs Symbolic Link  (0) 2019.06.11
Communication  (0) 2019.04.19
Code migration - 2  (0) 2019.04.16
Code migration - 1  (0) 2019.04.16
Servers : Server clusters-3  (0) 2019.04.16