[분산 시스템] 1,2강 - Introduction (분산 시스템 정의, 특징, 목표)

드림보이즈·2024년 12월 16일
0

주제 : 분산시스템의 등장 배경, 정의, 특징, 목표

1. 배경

1980년 중반부터 CPU의 발전, 속도 좋은 컴퓨터 네트워크의 등장으로 분산 시스템이 등장하였다.

2. 정의

사용자에게는 하나의 시스템으로 보이지만, 그 안은 독립적인 컴퓨터이 목적을 위해 협력한다.

collection of independent computers that appears to its users as a single coherent system

좋은 분산시스템이라면, 사용자는 single system을 사용하는 것 처럼 느끼도록 하는 것이 포인트다.

(독립적인 == autonomous )

Q. 저 정의에 따르면 로드밸런서도 분산시스템인가 => YES, 여러 서버나 리소스를 분산시키니까

3. 특징

  • 유저로부터 복잡함을 숨김
  • 사용자가 분산시스템과 상호작용할 때 consistent, uniform way하도록 (동일한 방법으로 요청하고 응답받고)
  • 확장이 용이해야
  • continuously available 할 수 있어야

미들웨어

분산시스템은 가끔 소프트웨어 형태로 제공되는데, 이 때는 미들웨어 형태로 제공된다.

미들웨어 = os와 app 레이어 사이의 레이어로, 사실 app 레이어인데 app들이 미들웨어 위에서 작동하니까.

결국 Os가 달라도 미들웨어가 같으면 통신이 가능하다.

단점은 JVM과 비슷하게, 느리다는 것이다. (미들웨어 레이어가 하나 더 있는 것이니)

4. 목표

  1. Making resource accessible : 리소스(게임, 스토리지, 클라우드)를 쉽게 사용할 수 있도록 제공
  2. Distribution transparency: 사용자에게 단일 시스템처럼 보이도록
    • 여기서 Transparency는 사용자에게 투명하게 다 보인다는 것고과 반대의 의미
  3. Openness : 표준을 따라서 개발하면 상호운용이 가능할수도 있다.
  4. Scalability : 확장성
    • 사이즈 확대, 지리적 확장성, 정책 확장성

4-1. Making resource accessible

사용자에게 Easy하게 remote resource를 제공

Groupware(CSCW) : 협동 편집, 화상회의 처럼 그룹이 사용하는 소프트웨어 등장

그 만큼 Security 문제 대두

4-2. Distribution transparency

사용자가 편하게 사용하도록 속을 숨겨라.

여러 타입의 transparency가 있는데

  • Access Transparency : 리소스를 액세스하는 '방법'을 숨김 (ex. 어떤 os를 사용하든 파일을 받아서 사용가능하도록)
  • Location : 미국인지, 한국에서 데이터가 넘어오는 지 사용자는 모름
  • Migration : 데이터를 다른 곳으로 '옮겨도' 사용자는 모름
  • Relocation : 데이터를 '사용중인데' 옮겨도 사용자는 모름
  • Replication : 많이 보는 데이터는 여러 서버에 복사해놓기
  • Failure : Fault tolerance, 하나 고장나도 사용자는 모르고 정상 사용 가능
  • Concurrency : 동시에 여러 사용자가 액세스하는데 서로 몰라도 잘 쓴다.
    - Read는 상관없는데, 누가 Write하고 있는데 다른 사용자가 액세스한다면 ? (어려움)

무조건 완벽하게 숨긴다고 좋은게 아니라, 정도에 따라 장단점이 있음.

4-3. Openness

마치 브라우저에서 여러 웹 어플을 사용하는 것처럼, 요청하고 응답받을 때 표준을 정해놓으면 어떤 분산시스템을 이용할 때도 좋을 것이다.
IDL (Interface Definition Languague)를 통해, 클라이언트가 요청전에 분산시스템이 어떤 기능을 제공하는지 알 수 있다.

Interoperability : 동일한 기능을 제공하는 여러 분산 서비스가 있어도, 사용자가 관계없이 동일한 방법으로 사용이 가능할 때
Portability : 서비스를 다른 분산시스템으로 옮겼을 때도 사용자가 사용가능한 경우

profile
시리즈 클릭하셔서 카테고리 별로 편하게 보세용

0개의 댓글