본문 바로가기

Distributed System/이론 공부

(22)
분산시스템) 시스템 아키텍쳐(2) - 비중앙 집중식 Decentralized architectures 중앙집중식 방식에서 중요한 것은 client-server 관점에서 컴포넌트를 어디에 둘지 수직적인 관점이었고 이와 반대로 수평적인 관점에서도 생각해 볼 수 있다. Decentralized architectures는 서버와 클라이언트의 구분이 없다. 모든 노드들이 동일한 기능을 수행한다. 따라서 client-server 대신 peer라는 용어를 사용한다. 소위 말하는 P2P 시스템이 Decentralized architectures이다. 장점 앞서 말했듯이 중앙집중식 방식은 single point of failure, bottleneck, 확장성 등의 문제가 있을 수 있다. 이를 해결하기 위해 나온 것이 Decentralized 방식이다. 한 지점이 문제가..
분산시스템) 시스템 아키텍쳐(1) - 중앙 집중식 System architectures 분산 시스템은 논리적으로 또는 물리적으로 어디에 위치해 있어야 하는지, 시스템 소프트웨어의 역할에 따라 시스템 아키텍쳐를 고려할 수 있다. 이는 크게 Centralized architectures와 Decentralized architectures 두 가지 경우로 고려해 볼 수 있다. 위의 아키텍쳐 스타일과 연관지어서 생각할 수도 있지만 별개로 생각해 볼 수 있어 다른 관점이라고 볼 수 있다. Centralized architectures 우리가 익히 알고있는 client-server 아키텍쳐이다. 클라이언트가 서비스를 서버에 request하면 서버는 reply하는 식으로 서비스를 이용한다.(Request-reply pattern) client는 일반적으로 reque..
분산시스템) 아키텍쳐 Architectures 분산 시스템을 구성하는 서버와 클라이언트 측의 아키텍처를 디자인 할 때 어떤 부분을 고려해야하는지 살펴보자. 아키텍쳐라는 것은 주로 하드웨어는 있다고 치고 이 분산 시스템을 구성하는 소프트웨어 컴포넌트들을 어떻게 구성해야할지에 대한 문제이다. 설계하려는 시스템의 소프트웨어가 어떤 구조를 가질지 설계하고 실제 설계한 내용을 개발해서 구체화하면 그게 시스템 아키텍쳐이다. Goals of Distributed System and Architectures 이번 포스트에서 다루는 system architecture나 software architecture, 그냥 architecture 모두 software component들 사이의 관계를 어떻게 구성할건지에 대한 문제이다. 특히 일반 시..
분산시스템) 분산시스템 종류 및 Pitfalls Types of distributed systems 1) Distributed computing systems 컴퓨팅 파워를 필요로하는 서비스를 요청할 때 사용할 수 있다. 주로 공학 시뮬레이션과 같이 계산량이 많은 task를 대신 수행해주는 시스템이다. 2) Distributed information systems 우리가 주로 아는 분산 시스템은 이 부류에 들어간다. 정보를 제공해주는 시스템이다. 정보는 여러가지가 있을 수 있다. WWW나 게임도 이 부류에 들어간다. 3) Distributed pervasive systems 가장 마지막에 나온 것이다. 무선 네트워크 기능이 활성화되고 컴퓨팅 디바이스의 크기가 작아지면서 등장하였다. 분산 시스템을 제공하는 환경이 다이나믹한 환경에서 제공된다는 것이다. ..
분산시스템) 목표(4) - Scalability Goals - Scalability 가장 중요한 목적 중 하나이다. 분산 시스템은 리소스가 서로 다 흩어져있는 상황에서 많은 사용자를 서포트할 수 있으면 좋은 시스템이다. Measurement of scalability scalability는 세 가지 측면이 있다. 세 가지 모두에서 scalable한 시스템은 좋은 시스템이지만 그렇게 되기 쉽지 않다. 보통 세 가지 중 두 가지 정도에서 scalable한 시스템을 만든다. 1) Size 여기서 규모는 사용자 수 즉 사용자 규모 측면과 분산 시스템 컴포넌트 측면에서의 규모에 대한 scalability를 말한다. 많은 수의 컴포넌트로 구성하면 규모있는 분산시스템이 된다. 결국 같은 이야기다. 많은 수의 사용자를 감당하려면 많은 수의 컴포넌트가 필요하다. 분산..
분산시스템) 목표(3) - Openness Goals - Openness 목적 개방성이 되기 위해선 분산 시스템의 서비스를 제공할 때 standard rule에 따라 제공해야한다. 모든 분산 시스템의 목적이 될 수는 없고 개방성을 따르는 시스템의 목적이 될 수 있다. 사용자는 분산 시스템에서 제공하는 서비스를 요청하고 분산 시스템은 사용자에게 서비스를 제공한다. 요청하고 제공하는 방식을 표준으로 마련해두면 사용자 입장에서 어떤 분산 시스템이건 동일한 방법으로 요청할 수 있어 사용하기 편해진다. standard rule In computer networks, standard rules govern the format, contents, and meaning of messages sent and received. And rules are formal..
분산시스템) 목표(2) - Distribution transparency Goals - Distribution transparency 정의 사용자로 하여금 이 시스템이 커다란 하나의 시스템이라고 느끼게 해야 한다. 사용자로 하여금 리소스가 분산되어 있다는 사실을 가능하면 숨기고자 한다. 그 이유는 사용자가 분산 시스템의 존재 자체를 인식하지 않고 서비스를 편하게 이용하도록 하기 위해서이다. 숨김(transparent)이 보장되는 시스템은 사용자에게 그 사용자가 사용하는 애플리케이션이 마치 하나의 컴퓨터 시스템에서 제공하는 서비스를 이용한다는 느낌을 주는 게 가장 이상적이다. 사용자는 로컬에서 사용하고 있다고 느끼는 게 가장 이상적이라고 볼 수 있다. 종류 Transparency Description Access Hide differences in data representat..
분산시스템) 목표(1) - Making resources accessible Making resources accessible 사용자가 리모트 리소스를 쉽게 사용하도록 하는 것이 목적이다. 리모트 리소스를 쉽게 액세스할 수 있도록 하는 예로는 그룹웨어(groupware) 가 있다. 그룹웨어는 분산 시스템 중 하나로 애플리케이션 밑에 있다는 개념의 미들웨어와 달리 그냥 애플리케이션이다. 개인이 사용하는 것이 아니고 사용자 그룹이 리소스를 같이 공유하면서 협동 작업을 쉽게 할 수 있는 소프트웨어를 그룹웨어라고 한다. 다른 말로 CSCW(Computer Supported Cooperative Software)라 한다. 예로는 화상회의(teleconferencing)와 협동 편집(collaborative editing)이 있다. 리모트 리소스를 사용하는 것이 활발해지면 다른 리소스나 사..
분산시스템) 목표 overview Goals Making resources accessible 리소스를 편하게 접근하도록 사용자에게 제공한다. 여기서 리소스는 로컬 리소스가 아니고 리모트 리소스(remote resources)를 말한다. 예로는 스토리지 서비스, 멀티미디어 서비스, 게임 서비스 등 다양한 예가 있다. 요새는 특정 데이터나 스토리지와 같은 단일 유닛의 서비스 뿐만 아니라 작업 환경 자체를 서비스로 제공해준다. 대표적인 예는 아마존 웹서비스(AWS)가 있다. Distribution transparency 목적이라기보다 추구하는 바인데, 사용자로 하여금 이 시스템이 커다란 하나의 시스템이라고 느끼게 해야한다. 이를 위해 가능하면 분산되어 있다는 것을 숨겨야한다. 궁극적으로는 사용자가 요청한 서비스가 로컬에서 이루어진다고 생각하..
분산시스템) 미들웨어(Middleware) Middleware Distributed systems are often organized by means of a layer of software logically placed between a higher-level layer consisting of users and applications, and layers underneath consisting of operating systems and basic communication facilities such a system is sometimes called middleware 미들웨어와 계층적 구조 분산 시스템은 보통 서비스로 제공될 때 미들웨어 형태로 제공되는 경우가 많다. 그렇다면 미들웨어는 무엇인가. 미들웨어 또한 소프트웨어이다. 계층적으로 ..