고급분산시스템 기말고사 문제 샘플_이제민.hwp



 3. 분산 file system의 성능을 향상시키기 위한 방법으로 caching을 이용할 수 있다.

Client, server측에서 적용할 수 있는 caching 방식을 설명하시오.


(1) Client, server측에서 적용할 수 있는 caching 방식을 설명하시오.


Server Caching: 최근에 읽은 디스크 블럭을 서버에서 유지하고 있는 것을 말한다.

 

읽는것은 문제가 없다. 하지만 쓰기에서 문제가 발생한다. 따라서 두 개의 선택적인 동작이 가능 하다.

 

1) Write-through operation

서버가 현재 캐쉬에 데이터를 업데이트하고, 즉시 디스크에도 업데이트 하는 방식

 

2) Delayed-write

Write-through으로 인한 bottleneck을 해결하기 위한 방법이다.

서버는 단지 현재 캐쉬에 데이터를 업데이트 한다.

디스크에는 commit operation을 받았을 때 디스 에 저장 한다.

Client Caching: client 모듈은 read, write, getattr, lookup, readdir operation 결과를 캐쉬에 저장한다. 이를 통해서 서버에 전송하는 request의 수를 줄일 수 있다.


 

(2) Cachingfile service reliability와의 관계를 설명하시오.

-> Caching은 서버와 클라이언트의 작업 수행 속도를 줄일 수 있다는 큰 장점을 가지고 있다. 하지만 이러한 Cachingfile service reliability를 감소 시킨다. server의 경우 caching을 사용하는 경우 쓰기 작업을 수행하는 시간과 실제 디스크네 쓰는 시간이 다르기 때문에 디스크의 정보가 최근 정보가 아닐 수 있다. 또한 client의 경우도 각 클라이언트들이 cache에 저장한 값이 최근에 업데이트 된 값과 다를 수 있다.


(3) 둘 이상의 client가 한 fileupdate할 때의 문제점 및 해결방안을 서술하시오.

-> 둘 이상의 client가 한 fileupdate하면 자신이 update했기에 캐쉬에 저장했던 값이 다른 clientupdate로 인하여 실제 file 값과 달라지는 문제점이 발생한다. 따라서 이러한 문제점을 해결하기 위해서는 각 client들 서버의 데이터와 client 캐쉬의 데이터의 같은 지를 계속 폴링하며 확인해야 한다. 하지만 이런 polling 방식은 시간을 낭비한다는 문제점이 있다. 이러한 문제점을 해결한 방식이 callback promise. callback promiseclient가 파일을 업데이트를 하면 그 파일 캐쉬에 저장하고 있는 다른 clientcallback을 받게 되고 callback을 받았을 때만 자신의 캐쉬 값을 수정하면 된다


 

4. 다음은 Needham-Schroedersecret-key authentication protocol이다.

(1) 2번 과정을 설명하시오.


-> SA의 비밀 키로 암호화된 메시지를 A에게 보내다. 메시지 안에는 새로 만들어진 key KAB B의 비밀키로 암호화된 티켓이 들어 있다. 또한 nonce NA 를 넣어 이것이 A의 요청에 의해 반환된 메시지 인 것을 입증한다.


1번에서 A는 B와의 커뮤니케이션을 위해서 S에게 Key를 달라고 요청했다.


S는 A가 가지고 있는 비밀키를 이용해서 암호화된 메시지를 리턴 한다. 그 메시지의 내용은 다음과 같다. 이 메시지는 Kb로 암호화 되어있다. 그 암호화된 메시지에는 Kab와 A가 있다. 여기서 Kab는 A와 B의 통신을 위해서 S가 새롭게 생성해준 공유 키이다. 그리고 A는 중요한정보(ticket)이다. 


그리고 추가적으로 Na가 있다. 이것은 A->S를 할때 보낸 nonce 값이다. 따라서 이것을 S->A 메시지 않에 추가해서 넣어주면, A의 요청에 대한 S의 응답이라는것이 증명되는 것이다. 즉, 딴놈이 가짜로 응답한는것을 막을 수가 있다. 또한 S 만이 A의 비밀키를 알고 있기 때문에 이 메시지가 S에게서 보내졌다고 믿을 수 있다. 



 

(2) 5번 과정에서 {NB }KAB 를 보낼 경우, 이 방식이 안전하지 못하게 되는 이유를 설명하시오.

 

-> 만약 5번과전에서 {NB }KAB를 보내는 방식이라면 NB 의 값을 몰라도 4번 단계의 날아가는 메시지를 중간에 가로채서 B에게 보내게 되면 B는 메시지가 제대로 들어왔다고 생각하게 되어 보안이 뚫리게 된다하지만 {NB – 1}KAB 로 할 경우 NB 값을 알아야만 하므로 더 안전하다고 할 수 있다.




5. Message-oriented middleware remote procedure-call 기반 미들웨어의 특징을 각각 간단히 서술하고 장단점을 비교하시오.


. Message-oriented middleware

상이한 애플리케이션 간 통신으로 일반적으로 비동기 방식으로 지원하는 메시지 전달을 기반으로 한 것을 가리킨다. message queue를 이용하여 전달된 메시지가 활성화 될 때 까지 수집하고 저장한다.

 

- 동기식/비동기식 모두를 지원 (그러나 대부분 큐를 사용한 비동기적방식 사용)

- Non-blocking

- 큐를 이용하여 한쪽 에플리케이션으로부터 다른 쪽 에플리케이션으로 메시지 전송

- Message queue API 제공

- 베이스 스테이션 결함 허용

- 환경 설정 간단함

 

. remote procedure-call

하나의 프로그램이 네트워크에 연결되어있는 다른 컴퓨터에서 서브루틴이나 프로시저를 실행할 수 있도록 한 IPC(프로세스간의 통신)이라고 할 수 있다. 쉽게 말하면, 내 프로그램이 다른 컴퓨터에서 실행되고 있는 프로그램 내의 함수를 실행할 수 있도록 하는 것이다. 일종의 서버 클라이언트 개념이다.

 

- 동기식 방식

- senderreceiver 모두 동시에 on-line상태야 통신이 가능하다.

- 함수 처리결과가 올 때까지 blocking상태이다.

 

. /단점

RPC는 동기식 방식 통신으로 즉각적이고 빠른 통신이 필요한 경우에 적합하다. 은행 창구에서의 입금이나 출금 등과 같이 즉각적인 응답이 필요한 온라인 업무에서 필요하다. 하지만 분산환경에서 상이한 애플리케이션들은 항상 같은 시간에 동작하고 있지 않으며 네트워크 상황이나 서로다른 애플리케이션들의 변경상항들로 인하여 이기종간의 네트워크 분산화를 어렵게 만드는 요인이 된다.

MOM은 일반적으로 비동기적 방식 으로 사용한다. 즉각적인 응답을 원하는 경우가 아니라 다소 느리고 안정적인 응답을 필요로 하는 경우에 많이 사용된다. 여러 가지 일을 종합적으로 처리한 후에야 결과가 나오는 통계 작성 등에는 메시지 기반 미들웨어가 상당한 장점이 있다.

또한 프로그램들은 각각 다른 시간에 실행이 가능하며, 애플리케이션의 구조상에 별다른 제한이 없으며, many-to-one의 통신 형태로 서로 통신이 가능하다. 이기종간의 네트워크 분산화를 쉽게 구성할 수 있다


6. Web Service Description Language 에 대해 설명하시오.

 

1. 웹 서비스 기술 언어 WSDL(Web Service Description Language)

 

. WSDL의 정의

- 웹 서비스의 서식과 프로토콜을 표준 방식으로 기술하고 게시하기 위한 언어이다.

- 추상화/구체화 파트가 존재한다.

. WSDL의 역할

- 서비스 컴포넌트에서의 인터페이스 기술

- OpenXML 기반의 명세를 통하여 서비스를 이용하고자 하는 사용자의 참조

 

2. WSDL의 구조 및 구성요소

. 웹서비스를 위한 wsdl의 구조


-------------------------------요 위까지만 적으면 답일꺼 같습니다. 밑은 참고 자료----------------------

 

 

. WSDL의 구성요소


 

 

 

 

7. 프로세스나 객체들간 통신 시 marshalling 이 이용되어야 하는 (1) 필요성 (2) 그 역할을 설명하시오.

 

1) 필요성 : 분산화 환경을 쉽고 빠르게 구성하고 프로세서 간의 서비스(객체)를 사용하기 위해서 프로세서나 객체의 형태와는 관계없이 사용할 수 있는 방식이 필요하였다.

 

 

2) 역할 : 클라이언트에서 원격 객체를 호출하기 위해서 필요한 모든 정보를 묶어서 클라이언트에게 전송하여 클라이언트가 사용하고자 하는 객체의 형태에 관계없이 같은 방식으로 인터페이스 함수를 사용할 수 있게 해준다.


'Computer Science > 분산처리 시스템' 카테고리의 다른 글

Distributed Transactions  (0) 2013.06.03
Time  (0) 2013.06.03
Naming Server  (0) 2013.05.28

+ Recent posts