Openness

유석현(SeokHyun Yu)·2023년 4월 11일
0

분산 시스템

목록 보기
6/27
post-thumbnail

개방성(Openness)이 적용된 시스템은 표준 규칙에 따라 서비스를 제공하고, 문법의미를 명확하게 정의한다.

이러한 서비스는 인터페이스를 통해 제공되며, 함수 이름, 매개 변수, 반환 값 등의 서비스 문법을 인터페이스 정의 언어(IDL)를 통해 정의한다.

가장 어려운 부분은 이러한 인터페이스의 의미를 명확하게 설명하는 것이다.

개방성을 설명할 때 중요한 2가지 개념이 있다.

바로 상호 운용성과 이식성이다.

상호 운용성(Interoperability)은 서로 다른 업체에서 만든 시스템이나 컴포넌트들이 공통된 표준을 바탕으로 상호작용하면서 작동하는 정도를 의미한다.

이식성(Portability)은 어떤 분산 시스템을 위해 개발된 응용 프로그램이 다른 분산 시스템에서도 실행될 수 있는 정도를 의미한다.


separating policy from mechanism

오픈 분산 시스템에서 유연성을 확보하기 위해서는, 상대적으로 작고 쉽게 교체하거나 조정할 수 있는 모음으로 구성해야 한다.

그러나 많은 이전 및 현대 시스템에서는 구성 요소들이 논리적으로만 분리되어 있고, 하나의 거대한 프로그램으로 구현된다.

이는 사용자나 응용 프로그램에 맞지 않는 구성 요소를 변경하는 것이 어려워지게 만든다.

예를 들어 웹 캐싱의 경우 사용자가 캐싱 매개 변수 중 일부를 제어할 수 없는데, 이를 해결하려면 정책(policy)메커니즘(mechanism)을 분리해야 한다.

즉, 웹 브라우저는 문서만 저장하는 기능을 제공하고 사용자가 어떤 문서를 얼마 동안 저장할지 결정할 수 있도록 해야 한다.

이렇게 사용자가 브라우저에 자신만의 정책을 구현할 수 있다면 시스템에서 더 큰 유연성을 제공할 수 있다.

profile
Backend Engineer

0개의 댓글