EN FR
EN FR


Section: Scientific Foundations

Protocols

Today, protocols constitute a frequently used means to precisely define, implement, and analyze contracts between two or more hardware or software entities. They have been used to define interactions between communication layers, security properties of distributed communications, interactions between objects and components, and business processes.

Object interactions  [74] , component interactions  [84] , [77] and service orchestrations  [49] are most frequently expressed in terms of regular interaction protocols that enable basic properties, such as compatibility, substitutability, and deadlocks between components to be defined in terms of basic operations and closure properties of finite-state automata. Furthermore, such properties may be analyzed automatically using, e.g., model checking techniques  [44] , [56] .

However, the limited expressive power of regular languages has led to a number of approaches using more expressive non-regular interaction protocols that often provide distribution-specific abstractions, e.g., session types  [59] , or context-free or turing-complete expressiveness  [78] , [43] . While these protocol types allow conformance between components to be defined (e.g., using unbounded counters), property verification can only be performed manually or semi-automatically.

Furthermore, first approaches for the definition of aspects over protocols have been proposed, as well as over regular structures  [51] and non-regular ones  [82] , [73] . The modification of interaction protocols by aspects seems highly promising for the integration of aspects and components.