{'fraction_non_alphanumeric': 0.018957345971563982, 'fraction_numerical': 0.0, 'mean_word_length': 5.511013215859031, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Protocol Refinement : Formalization and Verification

Cross-organizational business processes are not adequately supported by traditional methods, which fail to separate the interactions and business relationships of the participants from their internal implementations. We adopt a recent approach that gives primacy to the interactions among the participants. In this approach, a (business) protocol describes an interaction among two or more participants in high-level terms, specifically, via the creation and manipulation of the commitments among the participants. In this manner, a protocol offers increased flexibility to the participants while supporting a notion of correctness: all commitments that are activated are discharged. This paper addresses a key challenge in engineering using business protocols. Specifically, it lifts the notion of refinement from objects (as in traditional software engineering) to protocols. Intuitively, it is clear that some interactions are refinements of others. For example, in intuitive terms, PayViaCheck is a kind of Pay. This paper provides a formal definition of protocols and of refinement with respect to a mapping between two protocols. It proposes an approach based on model checking using which we can compute whether refinement holds between any two protocols with respect to a mapping. We have implemented this approach over the MCMAS model checker and have evaluated it on several protocols occurring in the literature.