Towards a Taxonomy of Software Mediators for Systems-of-Systems - Garcés, Lina; Oquendo, Flavio; Nakagawa, Elisa Yumi (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2018: Anais do XII Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2018)
Systems-of-Systems (SoS) refer to alliances of operational and managerial independent software-intensive systems, sometimes distributed and found in critical application domains. The independence of constituent systems brings big challenges to design SoS software architectures. Such architectures must be dynamic, evolve along the time, and allow the execution of, sometimes unknown in design time, emergent behaviours to accomplish SoS missions. Moreover, SoS architectures must connect heterogeneous systems, making possible their communication, coordination, and collaboration in a seamless way. In another perspective, mediators are architectural elements that enable required interactions among heterogeneous software entities. Despite the benefits offered by mediators, mainly at overcoming interoperability issues of software systems, no investigation has been made about which mediators can be used in SoS architectures to address challenges imposed by the nature of such heterogeneous, distributed and complex software-intensive systems. The main contribution of this paper is a taxonomy of software mediators that can be used by software architects as a library of solutions when designing their SoS. Twelve types of mediators in three categories are proposed allowing capabilities of communication and control of constituent systems' interactions, and conversion of heterogeneous messages exchanged through the mediation infrastructure. This taxonomy was established based on knowledge and experience from other types of complex systems that use mediators, and authors previous experience at architecting SoS. Categories in the taxonomy were defined based on the intrinsic characteristics of SoS architectures and well-established architectural patterns and styles. To observe the feasibility of this taxonomy, the software architecture of a Flood Monitoring System-of-Systems (FMSoS) was established using mediators as first-class software entities. Based on FMSoS architecture it was possible to have preliminary evidence to conclude that, architectures containing the proposed mediators are low coupled, support dynamic configurations during the SoS execution, and are able to address quality attributes such as flexibility, scalability, and interoperability.