The development of distributed computing systems involves complex concerns related to integrating numerous communication styles, technologies (Internet of Things, cloud, big data, etc.), stakeholders (architects, developers, integrators, etc.) and addressing a multitude of application domains (smart cities, health, mobility, etc.). Existing architectural description languages fail to rigorously bridge the gap between the abstract representation of communication styles and those supported by existing execution infrastructures. In this paper, we propose an approach combining semi-formal and formal languages which considers modeling and formalization from both the structural and communication behavior perspectives. As a prerequisite, we build reusable model libraries to specify and verify communication styles for modeling software architectures of distributed systems. First, we propose a metamodel to describe high-level concepts of architecture in a component–port–connector fashion focusing on different communication styles. Then, we formalize those concepts and their semantics following some properties (specifications) to check architectural conformance. To validate our work, we provide a set of reusable connector libraries within a set of properties to define architectures for systems with explicit communication models that are common to most distributed systems including message passing, remote procedure calls, and distributed shared memory. Through reuse of these specified and verified connectors, we demonstrate how concrete software architectures for a given application domain can be developed.

Communication, Component, Connector, Formalization, Meta-modeling, Reuse
Future Generation Computer Systems
Department of Systems and Computer Engineering

Rouland, Q. (Quentin), Hamid, B. (Brahim), & Jaskolka, J. (2020). Formal specification and verification of reusable communication models for distributed systems architecture. Future Generation Computer Systems, 108, 178–197. doi:10.1016/j.future.2020.02.033