[論文レビュー] CPL: A Core Language for Cloud Computing -- Technical Report
CPLは静的に型付けされたコア言語であり、クラウドアプリケーション開発とデプロイメントを1つの型安全なシステムに統合する。join-calculusにインspiredされたチャネルと境界付き多相性を用いて、実行時におけるロードバランシング、フェイルセーフティ、動的デプロイメント変更のための安全で合成可能で拡張可能なサービスコンビネータを可能にする。
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では、しばしばコードと設定を安全でない方法で統合しているため、型安全性と合成可能性の欠如に対処する。
- 最初等の型付き高階関数を備えたサービスコンビネータを通じて、クラウドミドルウェアサービス(例:ロードバランサ)の拡張性を実現する。
- 現在のデプロイメントツールにおける段階分離を克服し、アプリケーションが実行時中にデプロイメント変更をトリガーできるようにする。
- アプリケーションプログラミングとデプロイメントプログラミングを統合した同一モデルを備えた、クラウドプラットフォームの形式的基盤を提供する。
提案手法
- 境界付き多相性を備えたSystem Fの変種に基づく静的型付け言語CPLを設計し、拡張可能でパラメトリックに多相的なサービスインターフェースをサポートする。
- join-calculusにインspiredされた、参加パターンを用いた協調制御を用いて、分散的で非同期的メッセージ渡しシステムとしてクラウドプラットフォームをモデル化する。
- 名前付きの第一級サービスを導入し、高階関数をサポートすることで、クラウドサービスの動的合成を可能にする。
- PLT Redexを用いて形式的意味論を実装し、並列的なScalaベースのプロトタイプを実装して設計の妥当性を検証する。
- 境界付き多相性を用いて、再利用可能で合成可能で型安全なサービスコンビネータ(例:スケーラブルなロードバランシング、フェイルセーフティ)を定義する。
- 実行時デプロイメント適応を実証するため、アプリケーションサービスが実行中に新しいデプロイメントステップをトリガーできるようにする。
実験結果
リサーチクエスチョン
- RQ1どのようにして、異なる言語間の不安全な合成を回避するため、アプリケーション論理とデプロイメント設定を1つの型安全な言語に統合できるか?
- RQ2ロードバランシングやフェイルセーフティといったクラウドミドルウェアサービスのための、最初等で拡張可能かつ合成可能な抽象化を1つの言語内で提供できるか?
- RQ3アプリケーション論理によって実行時にトリガーされる動的デプロイメント変更を、どの程度統合言語モデルで実現できるか?
- RQ4計算式に基づく基盤を用いて、アプリケーションプログラミングとデプロイメントプログラミングを両立できる、分散的で非同期的なシステムとしてクラウドプラットフォームを形式的にモデル化できるか?
主な発見
- CPLは、アプリケーションとデプロイメントプログラミングを1つの静的型付け言語に統合し、異なる言語間の不安全な合成を排除した。
- 境界付き多相性と静的型付けインターフェースの使用により、ロードバランシングやフェイルセーフティなどのクラウドミドルウェアサービスのための安全で合成可能で拡張可能なコンビネータが可能になった。
- 実行時デプロイメント適応がサポートされている:アプリケーションサービスが実行中に新しいデプロイメントステップをトリガーでき、自己修復やスケーラブルなスケーリングを実現できる。
- PLT Redexにおける形式的意味論と並列的なScala実装により、言語設計の実現可能性と正しさが示された。
- 事例研究により、MapReduceやその他の複雑なデプロイメントパターンが、CPLのサービスコンビネータを安全かつモジュラーに表現できることを示した。
- 言語設計により、型安全で宣言的かつ拡張可能なクラウドインfraのモデル化が可能となり、デプロイメントバグや設定エラーが削減された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。