Skip to main content
QUICK REVIEW

[論文レビュー] Choreographies for Reactive Programming

Marco Carbone, Fabrizio Montesi|arXiv (Cornell University)|Jan 24, 2018
Formal Methods in Verification参考文献 4被引用数 5
ひとこと要約

この論文は、反応型プログラミングと共同プログラミングの指定を統合することで、モジュラーで合成可能かつ形式的に正しい分散システムを可能にする、Governed Components (GC) という言語を紹介する。GC は、コンポーネントの振るまいと通信プロトコルを分離することで、実行時における共同プログラミングの強制を通じて型安全で、構築時に正しく保証された相互作用を実現する。これにより、異なるプロトコル間でコンポーネントを柔軟に置き換え可能にしつつ、通信の安全性と進行性を維持できる。

ABSTRACT

Modular programming is a cornerstone in software development, as it allows to build complex systems from the assembly of simpler components, and support reusability and substitution principles. In a distributed setting, component assembly is supported by communication that is often required to follow a prescribed protocol of interaction. In this paper, we present a language for the modular development of distributed systems, where the assembly of components is supported by a choreography that specifies the communication protocol. Our language allows to separate component behaviour, given in terms of reactive data ports, and choreographies, specified as first class entities. This allows us to consider reusability and substitution principles for both components and choreographies. We show how our model can be compiled into a more operational perspective in a provably-correct way, and we present a typing discipline that addresses communication safety and progress of systems, where a notion of substitutability naturally arises.

研究の動機と目的

  • コンポーネントベースのシステムにおける再利用性と、分散環境における厳密な通信プロトコルの必要性の間にある緊張を解消すること。
  • 振るまいと通信の共同プログラミングを分離することで、再実装を伴わずに複数のプロトコル間でコンポーネントを再利用可能にすること。
  • 実行時に共同プログラミングがコンポーネント相互作用を支配する形式的モデルを提供し、通信の安全性と進行性を保証すること。
  • インターフェースだけでなく、行動的能力に基づく新しい置き換え原理を提供し、異なる数や順序の相互作用を要するプロトコルにおいてもコンポーネントを再利用可能にすること。
  • 高レベルの共同プログラミングコンポーネントを、操作的対応が保証される並行プロセスモデルに形式的にコンパイルする戦略を設計し、意味論的正しさを保証すること。

提案手法

  • 反応型コンポーネントにバインダーを導入し、入力が利用可能になると動的に出力を生成するようにすることで、柔軟でデータ駆動型の計算を可能にする。
  • 共同プログラミングは一等級のエンティティとして扱われ、コンポーネント間通信の順序と構造を指定し、実行時に調整役として機能する。
  • GC プログラムを標準 I/O 原子を用いた並行プロセスモデルにコンパイルするコンパイラを設計し、操作的対応の結果により操作的意味論を保持する。
  • 通信の安全性と進行性を保証する型付けの体系を定義し、サブタイプ関係により、異なるプロトコル間でのコンポーネントの置き換えを可能にする。
  • コンポーネントの振るまい(反応型)と通信構造(共同プログラミング)を分離することで、独立した進化と再利用が可能になる。
  • コンポーネントの置き換えがインターフェースだけでなく、行動的能力に基づくものであることをサポートし、異なる数や順序の相互作用を要するプロトコルにおいてもコンポーネントを再利用可能にする。

実験結果

リサーチクエスチョン

  • RQ1反応型コンポーネントを、異なるプロトコル間での再利用を可能にしつつ、通信の安全性と進行性を保つ方法で合成することは可能か?
  • RQ2通信シーケンスをハードコードせずに、共同プログラミングを実行時における調整役として第一級の存在として用いるにはどうすればよいか?
  • RQ3モジュラーかつ合成可能な環境において、コンポーネントの振るまいとプロトコル準拠の間の形式的関係は何か?
  • RQ4異なる数や順序の相互作用を要するプロトコル間で再利用可能な、新しい置き換え原理を定義することは可能か?
  • RQ5高レベルの共同プログラミングコンポーネントを、操作的意味論を保証する並行プロセスに形式的にコンパイルする、形式的に正しい戦略を設計するにはどうすればよいか?

主な発見

  • 提案された言語モデル、Governed Components (GC) は、コンポーネントの振るまいと通信プロトコルを明確に分離し、モジュラーかつ合成可能なシステム設計を実現した。
  • GC から並行プロセスモデルへのコンパイラは、操作的対応の結果により、操作的意味論を保持していることが証明された。
  • 型付けの体系により、通信の安全性と進行性が保証され、サブタイプ関係により、異なるプロトコル間での柔軟なコンポーネントの置き換えが可能である。
  • 本モデルは、新しい置き換え原理をサポートする:コンポーネントは、その反応型の振るまいがプロトコルの要件を満たしている限り、異なる数や順序の相互作用を要するプロトコルでも再利用可能である。
  • 本アプローチにより、メッセージの順序や反応の数に関する抽象化が可能となり、分散システムにおける再利用性が著しく向上した。
  • 本モデルは、Multiparty Session Types と Choreographic Programming の間の位置づけにあり、静的型システムやモノリシックな共同プログラミング言語には見られない、実行時の共同プログラミングの管理を提供する。

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

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

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

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