REST: Representational State Transfer

ABSTRACT OF THE DISSERTATION

  • 월드 와이드 웹은 큰 성공을 이뤘고, 이젠 모던 웹 아키텍처를 가이드하기 위한 모델이 필요하다.
  • 이 연구는 네트워크 기반 어플리케이션의 설계를 이해하고 평가함으로써 아키텍처의 기능적, 성능적, 사회적 요구를 분석하기 위해 시작됐다.
  • 이 논문에서는 Representational State Transfer (REST) 아키텍처 스타일을 소개하며, REST가 모던 웹 아키텍처의 개발과 설계를 어떻게 가이드할 수 있는지 설명할 것이다.
  • REST는 컴포넌트 상호작용의 확장성, 인터페이스의 범용성, 컴포넌트의 독립된 배포, 상호작용 레이턴시를 줄이는 중계 컴포넌트, 보안, 레거시 시스템 캡슐화를 강조한다.
  • 마지막으로 Hypertext Transfer Protocol(HTTP)과 Uniform Resource Identifier(URI)에 REST를 적용하며 배운 교훈에 대해 설명하겠다.

INTRODUCTION

  • 아키텍처는 90년대 소프트웨어 공학 연구의 중심이 되었다. 좋은 아키텍처는 진공 상태에서 만들어지지 않는다. 아키텍처 레벨의 모든 설계는 기능적, 사회적 요구 맥락에 맞춰 결정되어야 한다.
  • 지난 수백년간의 프로젝트 실패 경험으로부터 "형태는 기능을 따른다"라는 원칙이 만들어졌지만, 소프트웨어 실무자들은 종종 이 원칙을 무시한다.
  • 처음 세 챕터에서는 이키텍처를 이해하기 위한 프레임워크를 정의하고, 챕터 4에서는 웹 설계의 요구사항에 대해 논의한다. 챕터 5에서는 하이퍼 미디어 시스템을 위한 REST 아키텍처 스타일에 대해 자세히 소개할 것이다.

CHAPTER 1. Software Architecture

  • 연구 분야로서의 소프트웨어 아키텍처에 대한 관심에도 불구하고, 연구자들 사이에는 아키텍처 정의에 어떤 것을 포함해야 하는지에 대한 의견 일치가 거의 없다.
  • 이 챕터에서는 소프트웨어 아키텍처에 대한 일관된 용어를 정의한다.

1.1. Run-time Abstraction

  • 소프트웨어 아키텍처는 시스템이 운영되는 일부 단계의 런타임 요소들을 추상화한 것이다. 시스템은 각각의 아키텍처에 따라 여러 부분에서 여러 계층으로 추상화될 수 있다.
  • 소프트웨어 아키텍처의 심장은 추상화 원칙이다. 복잡한 시스템은 더 많은 계층으로 추상화될 것이다.
  • 시스템은 구동, 초기화, 처리, 재초기화, 정지와 같은 여러 운영 단계를 거치며, 각 운영 단계는 자신의 아키텍처를 가진다.

1.2. Elements

  • 소프트웨어 아키텍처는 아키텍처 요소(컴포넌트, 커넥터, 데이터)의 구성과 관계의 제약으로 정의된다.
    • 컴포넌트(Component): 명령과 인터페이스를 통한 데이터 변환을 제공하는 내부 상태의 추상 단위.
    • 커넥터(Connector): 컴포넌트 간의 통신, 조정 또는 협력을 매개하는 추상 매커니즘.
    • 데이터(Datum): 컴포넌트가 커넥터를 통해 수신하는 정보.

1.3. Configurations

  • 구성은 시스템 런타임 동안 이뤄지는 아키텍처 요소 사이의 관계 구조다.

1.4. Properties

  • 소프트웨어 아키텍처의 속성 집합은 컴포넌트, 커넥터, 데이터에서 파생되는 모든 특성을 포함한다.
  • 속성은 아키텍처의 제약 집합에 의해 유도된다.

1.5. Styles

  • 아키텍처 스타일은 요소들의 역할과 기능을 제한하는 제약 집합으로 이뤄진다.
  • 서로 다른 시스템의 아키텍처를 직접 비교하는 것은 어려운 일인데, 스타일은 아키텍처의 일반적인 성격을 정의하고 분류하는 매커니즘이다.

참고자료

이 문서를 인용한 문서