Skip to main content
QUICK REVIEW

[論文レビュー] Kickstarting Choreographic Programming

Fabrizio Montesi|arXiv (Cornell University)|Feb 9, 2015
Logic, Reasoning, and Knowledge参考文献 21被引用数 6
ひとこと要約

この論文は、並列エンドポイント間の通信フローを記述するグローバルなチャログラフィック仕様を、エンドポイントプロジェクション(EPP)を介して正しい構築、デッドロックのないエンドポイントコードにコンパイルする、チャログラフィックプログラミングというパラダイムを紹介する。このアプローチにより、開発者は形式的コンパイルによる正しさ保証を伴い、グローバルかつ高水準な視点から分散システムを記述できる。Chor言語およびそのコンパイラは、このパラダイムの具体的実装として機能する。

ABSTRACT

We present an overview of some recent efforts aimed at the development of Choreographic Programming, a programming paradigm for the production of concurrent software that is guaranteed to be correct by construction from global descriptions of communication behaviour.

研究の動機と目的

  • チャログラフィックプログラミングを、単なる仕様手法ではなく、完全に機能するプログラミングパラダイムとして確立すること。
  • 並列通信コードを正しく書くという課題に、通信行動のグローバルかつ高水準な記述に開発をシフトさせることで対処すること。
  • チャログラフィーをエンドポイントプログラムに形式的コンパイルすることで、正しさを構築段階で保証すること。
  • 既存システムとの統合と、非同期操作や型安全性といった実世界の機能をサポートすることで、実用的採用を可能にすること。
  • 将来の拡張の基盤を築くこと、例えば例外処理、相互運用性、実装マッピングの形式的検証など。

提案手法

  • 形式的言語モデルとして、プロセスがエンドポイントを表し、セッションが通信チャネルを表す『チャログラフィー計算(CC)』が用いられる。
  • チャログラフィーは、'p.e -> q.x:k; C' のような通信アクションの列として表現され、メッセージ送信と継続を指定する。
  • 独立した通信の再順序付けを許可する構文的スワップ同値関係 $\simeq_{\mathcal{C}}$ が導入され、並列実行をモデル化する。
  • エンドポイントプロジェクション(EPP)は、グローバルなチャログラフィーをローカルエンドポイントプログラムにコンパイルし、正しさとデッドロックのなさを構築段階で保証する。
  • Chor言語は、このパラダイムを実装し、セッション型付け、非同期操作、条件分岐をサポートし、実行可能コードにコンパイルされる。
  • 実装では、$\pi$-計算チャネルではなくデータベースのメッセージルーティングが用いられ、エントレープライズフレームワークや既存言語との統合を可能にする。

実験結果

リサーチクエスチョン

  • RQ1チャログラフィック仕様を、単なる仕様ではなく、一等級のプログラムとして使用できるか? これにより、完全に機能するプログラミングが可能になるか?
  • RQ2正しく構築されたコンパイルプロセス(EPP)を設計・実装し、実行可能でデッドロックのないエンドポイントコードを生成できるか?
  • RQ3このパラダイムで実用的な分散プログラミングを支えるために必要な・十分な言語機能(非同期、条件分岐、セッション型付けなど)は何か?
  • RQ4チャログラフィックプログラミングの形式的モデルを、$\pi$-計算チャネルではなくデータベースルーティングを用いた実世界の実装にどのようにマッピングできるか?
  • RQ5工業的規模のシステムでチャログラフィックプログラミングを実用可能にするために、どのような拡張(例:例外処理、相互運用性)が必要か?

主な発見

  • Chor言語およびそのコンパイラは、チャログラフィックプログラミングパラダイムを成功裏に実現しており、開発者がグローバルなチャログラフィーを記述し、正しく構築された実行可能エンドポイントプログラムにコンパイルできる。
  • 構文的スワップ同値関係 $\simeq_{\mathcal{C}}$ の使用により、独立した通信の柔軟な再順序付けが可能となり、正しさを保ちつつ並列実行をモデル化できる。
  • エンドポイントプロジェクション(EPP)により、生成されたエンドポイントコードがデッドロックのないことが保証される。なぜなら、すべての I/O アクションがグローバルに一貫したチャログラフィーから導出されるからである。
  • セッション型付けとチャログラフィーの統合により、型安全で相互運用可能な通信プロトコルが可能となり、型推論とデッドロックのなさの分析がネイティブにサポートされる。
  • データベースのメッセージルーティングを用いたChorの実装は、既存のエントレープライズシステムへの実用的ブリッジを提供するが、このマッピングの形式的検証は未解決の課題のまま残っている。
  • このアプローチは、AIOCJのようなシステムの構築にすでに使用されており、Scribbleによるプロトコル生成も可能であり、実世界への適用可能性が実証されている。

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

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

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

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