Skip to main content
QUICK REVIEW

[論文レビュー] Applied Choreographies

Saverio Giallorenzo, Fabrizio Montesi|arXiv (Cornell University)|Oct 13, 2015
Logic, programming, and type systems被引用数 5
ひとこと要約

本稿では、高水準の choreographic specification と低水準の service-oriented computing (SOC) 実装の間のギャップを埋める形式的フレームワーク、Applied Choreographies を導入する。コンパイルを三段階に分解することで、名前からデータへの関連付け、エンドポイントプロジェクション、状態の分散という段階を経て、行動的対応性とデッドロックフリーな実装を保証し、choreography から SOC プロセス合成に至るまで正しさを構築する。

ABSTRACT

Choreographic Programming is a correct-by-construction paradigm where a compilation procedure synthesises deadlock-free, concurrent, and distributed communicating processes from global, declarative descriptions of communications, called choreographies. Previous work used choreographies for the synthesis of programs. Alas, there is no formalisation that provides a chain of correctness from choreographies to their implementations. This problem originates from the gap between existing theoretical models, which abstract communications using channel names (à la CCS/π-calculus), and their implementations, which use low-level mechanisms for message routing. As a solution, we propose the theoretical framework of Applied Choreographies. In the framework, developers write choreographies in a language that follows the standard syntax and name-based communication semantics of previous works. Then, they use a compilation procedure to transform a choreography into a low-level, implementation-adherent calculus of Service-Oriented Computing (SOC). To manage the complexity of the compilation, we divide its formalisation and proof in three stages, respectively dealing with: a) the translation of name-based communications into their SOC equivalents (namely, using correlation mechanisms based on message data); b) the projection of a choreography into a composition of partial, single-participant choreographies (towards their translation into SOC processes); c) the translation of partial choreographies and the distribution of choreography-level state into SOC processes. We provide results of behavioural correspondence for each stage. Thus, given a choreography specification, we guarantee to synthesise its faithful and deadlock-free service-oriented implementation.

研究の動機と目的

  • 理論的 choreographies とその低水準な SOC 実装の間の正しさのギャップを埋めること。
  • グローバルな choreography から分散した SOC プロセスへの行動的意味論を保つコンパイルパイプラインを形式化すること。
  • すべてのコンパイル段階においてデッドロックフリーかつ行動的対応性を保証すること。
  • 宣言的通信仕様から実用的で正しく構築された service-oriented システムを合成可能にすること。
  • 現実世界の分散システムにおける choreographic programming の形式的基盤を提供すること。

提案手法

  • フレームワークは三段階のコンパイルプロセスを用いる:(1) SOC における名前ベース通信をデータベースの関連付けメカニズムに翻訳すること;(2) グローバル choreography を部分的で参加者固有の choreography にプロジェクションすること;(3) choreography レベルの状態を SOC プロセスに分散すること。
  • 選択、条件分岐、再帰的構造を扱いながら意味論を保つように、choreographic コンポーネントを統合する関数を導入する。
  • フレームワークは、choreographic 構造をサービスグループにマッピングする翻訳関数 ⌊·⌋_l を定義し、通信構造と制御フローを保つ。
  • ラベル付き遷移系を介して行動的対応性を確立し、各コンパイル段階が観察可能な振る舞いを保つことを保証する。
  • 通信の安全性と進行性を強制する基盤として、セッション型とグローバル型を活用する。
  • すべての段階で構造的操作的意味論と対応定理を用いて、フレームワークを形式的に検証する。

実験結果

リサーチクエスチョン

  • RQ1choreographic specification から低水準な SOC プロセスへの形式的コンパイルチェーンを、行動的意味論を保つ形で構築できるか?
  • RQ2choreography における名前ベース通信を、SOC システムにおけるデータベース関連付けに忠実にマッピングできるか?
  • RQ3エンドポイントプロジェクションと状態分散を段階的に形式的に分解・検証でき、正しさを保証できるか?
  • RQ4choreographic specification から合成された SOC 実装において、デッドロックを保証的に回避できるか?
  • RQ5フレームワークはすべてのコンパイル段階で行動的対応性を保っているか?

主な発見

  • フレームワークは、choreography から SOC プロセスへの三段階のコンパイルパイプラインを成功裏に確立し、各段階で形式的な行動的対応性を達成した。
  • 名前ベース通信からデータベース関連付けへの翻訳は、形式的に定義され、通信構造と意味論を保つことが証明された。
  • エンドポイントプロジェクションは正しく形式化されており、各参加者のローカルビューがグローバル choreography から忠実に導出されることを保証する。
  • choreography レベルの状態を SOC プロセスに分散させることに成功し、行動的対応性を損なわず、デッドロックを導入しない。
  • 元の choreography がデッドロックフリーであれば、最終的な SOC 実装においてもデッドロックフリーであることが保証される。
  • コンパイルプロセス全体が形式的に検証されており、高水準の仕様から低水準の実装への正しく構築された正しさが保証されている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。