Skip to main content
QUICK REVIEW

[논문 리뷰] CPL: A Core Language for Cloud Computing -- Technical Report

Oliver Bračevac, Sebastian Erdweg|arXiv (Cornell University)|2016. 02. 02.
Cloud Computing and Resource Management인용 수 1
한 줄 요약

CPL은 정적 타입 검사를 지원하는 핵심 언어로, 클라우드 애플리케이션 개발과 배포를 하나의 타입 안전한 시스템으로 통합한다. 이는 조인 계산법을 영감으로 받은 채널과 유한한 다형성(bounded polymorphism)을 사용하여 런타임에 부하 분산, 장애 내성, 동적 배포 변경과 같은 기능을 안전하고 조합 가능하며 확장 가능한 서비스 조합자(combinators)로 제공한다.

ABSTRACT

Running distributed applications in the cloud involves deployment. That is, distribution and configuration of application services and middleware infrastructure. The considerable complexity of these tasks resulted in the emergence of declarative JSON-based domain-specific deployment languages to develop deployment programs. However, existing deployment programs unsafely compose artifacts written in different languages, leading to bugs that are hard to detect before run time. Furthermore, deployment languages do not provide extension points for custom implementations of existing cloud services such as application-specific load balancing policies. To address these shortcomings, we propose CPL (Cloud Platform Language), a statically-typed core language for programming both distributed applications as well as their deployment on a cloud platform. In CPL, application services and deployment programs interact through statically typed, extensible interfaces, and an application can trigger further deployment at run time. We provide a formal semantics of CPL and demonstrate that it enables type-safe, composable and extensible libraries of service combinators, such as load balancing and fault tolerance.

연구 동기 및 목표

  • 기존 클라우드 배포 DSL에서 타입 안정성과 조합 가능성의 부족을 해결하여 코드와 설정을 안전하지 않게 혼합하는 문제를 해결한다.
  • 1급, 타입화된, 고계 함수를 지원하는 서비스 조합자를 통해 클라우드 미들웨어 서비스(예: 부하 분산기)의 확장성을 보장한다.
  • 기존 도구에서 발생하는 단계 분리 문제를 해결하기 위해 애플리케이션에서 런타임에 배포 변경을 유도할 수 있도록 한다.
  • 응용 프로그램 및 배포 프로그래밍을 통합한 프로그래밍 모델을 제공하는 분산형 비동기 메시지 전달 시스템으로서 클라우드 플랫폼에 대한 형식적 기초를 제공한다.

제안 방법

  • 제한된 정량화를 지원하는 시스템 F의 변종을 기반으로 한 정적 타입 검사를 지원하는 언어로 CPL을 설계하여 확장 가능하고 매개변수화된 다형성 타입 인터페이스를 지원한다.
  • 조인 계산법을 영감으로 받아 분산형 비동기 메시지 전달 시스템으로서 클라우드 플랫폼을 모델링하고, 조인 패턴을 사용해 조율한다.
  • 1급, 이름이 부여된 서비스와 고계 함수를 지원하여 클라우드 서비스의 동적 조합을 가능하게 한다.
  • PLT Redex를 사용해 형식적 의미 이론을 정의하고, 동시성 기반의 스크립트 기반 프로토타입을 구현하여 설계의 타당성을 검증한다.
  • 유한한 다형성을 사용해 재사용 가능하고 조합 가능한 서비스 조합자(예: 유연한 부하 분산 및 장애 내성)를 정의하여 타입 안정성을 내재적으로 보장한다.
  • 애플리케이션 서비스가 실행 중에 새로운 배포 단계를 유도할 수 있도록 함으로써 런타임 배포 적응 기능을 구현한다.

실험 결과

연구 질문

  • RQ1어떻게 하면 응용 프로그램 논리와 배포 구성 설정을 안전한 조합이 가능한 단일 타입 안정 언어로 통합하여 런타임 오류를 방지할 수 있는가?
  • RQ2부하 분산 및 장애 내성과 같은 클라우드 미들웨어 서비스에 대해 단일 언어 내에서 1급, 확장 가능하고 조합 가능한 추상화를 제공할 수 있는가?
  • RQ3응용 프로그램 논리에 의해 유도되는 동적 배포 변경을 단일 언어로 얼마나 잘 모델링할 수 있는가?
  • RQ4어떻게 하면 응용 프로그램 및 배포 프로그래밍을 모두 지원하는 계산기 기반 기초를 바탕으로 분산형 비동기 시스템으로서 클라우드 플랫폼을 형식적으로 모델링할 수 있는가?

주요 결과

  • CPL은 응용 프로그램 및 배포 프로그래밍을 단일 정적 타입 언어로 통합하여 서로 다른 언어 간의 안전하지 않은 조합 문제를 제거했다.
  • 유한한 다형성과 정적 타입 인터페이스의 사용을 통해 부하 분산 및 장애 내성과 같은 클라우드 미들웨어 서비스에 대해 안전하고 조합 가능하며 확장 가능한 서비스 조합자를 실현했다.
  • 런타임 배포 적응 기능이 지원된다: 애플리케이션 서비스가 실행 중에 새로운 배포 단계를 유도할 수 있어 자가 복구 및 확장성 있는 스케일링이 가능하다.
  • PLT Redex를 사용한 형식적 의미 이론과 동시성 기반의 스크립트 프로토타입을 통해 언어 설계의 타당성과 정확성을 입증했다.
  • 사례 연구를 통해 MapReduce 및 기타 복잡한 배포 패턴이 CPL의 서비스 조합자를 안전하고 모듈식으로 표현할 수 있음을 보여주었다.
  • 언어 설계를 통해 타입 안정적이고 선언적이며 확장 가능한 클라우드 인프라 모델링이 가능해져, 배포 버그와 설정 오류를 줄였다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.