Multiparty session types (MPST) are a specification and verification framework for distributed message-passing systems. The communication protocol of the system is specified as a global type, from which a collection of local types (local process implementations) is obtained by endpoint projection. A global type is a single disciplining entity for the whole system, specified by one designer that has full knowledge of the communication protocol. On the other hand, distributed systems are often described in terms of their components: a different designer is in charge of providing a subprotocol for each component. The problem of modular specification of global protocols has been addressed in the literature, but the state of the art focuses only on dual input/output compatibility. Our work overcomes this limitation. We propose the first MPST theory of multiparty compositionality for distributed protocol specification that is semantics-preserving, allows the composition of two or more components, and retains full MPST expressiveness. We introduce hybrid types for describing subprotocols interacting with each other, define a novel compatibility relation, explicitly describe an algorithm for composing multiple subprotocols into a well-formed global type, and prove that compositionality preserves projection, thus retaining semantic guarantees, such as liveness and deadlock freedom. Finally, we test our work against real-world case studies and we smoothly extend our novel compatibility to MPST with delegation and explicit connections.
翻译:多方会话类型 (Multiparty session types, MPST) 是一种分布式消息传递系统的规范和验证框架。系统的通信协议被规定为全局类型,通过端点投影获得一组本地类型(本地进程实现)。全局类型是整个系统的单个规定实体,由具有完全通信协议知识的设计者指定。另一方面,分布式系统通常是通过组件来描述的:每个组件都由不同的设计者提供子协议。文献中已经解决了全局协议的模块化规范问题,但现有技术仅关注双重输入/输出兼容性。我们的工作克服了这一局限性。我们提出了第一个 MPST 多方组合分布式协议规范的混合类型,这种类型是语义保持的,允许两个或多个组件的组合,并保留了完整的 MPST 表达能力。我们引入了混合类型来描述相互交互的子协议,定义了一种新的兼容关系,明确描述了将多个子协议组合成良好形式全局类型的算法,并证明了组合性保留了投影,从而保持了语义保证,如存活性和无死锁性。最后,我们根据真实案例测试了我们的工作,并顺利将我们的新型兼容性扩展到具备委托和显式连接的 MPST。