본문 바로가기

Distributed System/이론 공부

분산시스템) Course overview

Course overview

Topics

활용 예로는 온라인 게임, 소셜 네트워크 시스템, 컨텐츠 분산 시스템(contents distribution system), 블록체인 시스템, 클라이언트/서버나 p2p 어플리케이션 등이 있다.

다중 사용자 시스템(multi-user systems)을 어떻게 설계하고 개발하는지, 커뮤니케이션 지연(communication delay) 문제를 해결하려면 어떤 부분을 고려해야 하는지, 커뮤니케이션 개체(entity)들 사이에서 무엇이 동기화(synchronized)되어야 하는지를 고려해야 한다.

커뮤니케이션 지연(communication delay) 문제

분산 시스템의 경우 사용자와 사용자가 사용하는 서비스, 원격지에 있는 리소스가 모두 분산되어 있으므로(여러 컴퓨터에 나누어져 있음) 분산 시스템이 작동하기 위해서는 분산된 노드들 사이에서의 커뮤니케이션이 필요하다.
커뮤니케이션이 필요하다는 것은 메세지나 컨텐츠 같은 것을 네트워크를 통해 주고 받아야 한다는 의미이다. 그렇기 때문에 데이터를 주고 받을 때 딜레이가 생길 수 밖에 없다.
딜레이가 작을 경우 무시할 수 있을 수준이지만 분산 시스템의 규모가 커지거나 사용자의 수가 많아지거나 리소스가 많아지는 등 스케일러블(scalable)하게 될 경우 딜레이가 커지는 문제가 발생한다.


'어떻게 스케일러블한 서비스를 사용자에게 불편함 없이 제공할 수 있는가'
가 분산 시스템 분야의 주된 목적이 될 수 있다.

Goal

서로 원격지로 떨어져있는 디바이스나 호스트 사이에 인터렉션이 발생할 때 나타는 문제점을 어떻게 해결할 것인가를 잘 이해하는 것이 일차적인 목표이다.

Tentative Project Topic

분산시스템을 개발할 때 미들웨어(Middleware) 개념을 많이 사용한다. 미들웨어 개념을 경험해 보라는 의미에서 텀 프로젝트 주제는 다음과 같다.

미들웨어 중 교수님 연구실에서 개발중인 Communication Framework(Communication Middleware, CM)을 이용해서 간단한 분산 시스템을 개발해 보는 것이다.


CM이 미들웨어 역할을 수행하고, CM에서 제공하는 통신 서비스를 이용하여 간단한 네트워크 어플리케이션을 개발한다.
클라이언트/서버 구조의 프로그램을 만든다 생각하면 된다.


CM은 자바로 되어있고 더 자세한 것은 나중에 별도로 이야기할 기회가 있을 것이다.

프로젝트 주제는 아래 두 가지 중에서 선택 가능하다.

  • CM Library를 이용하여 어블리케이션 개발
  • CM에서 제공하는 통신 서비스 자체의 문제점을 개선하거나 새로운 서비스를 제안