An Architectural Style for the Internet of Things Systems
Internet of Things, Software Architecture, Architectural Style, Architecture Description Languages
The Internet of Things (IoT) has been contributing to a new technological revolution, promoting a significant social impact. The basic idea of IoT is to enable connectivity, interaction, and integration of uniquely addressable intelligent objects that collaborate with other to achieve common goals. Although IoT is a promising paradigm for the integration of communication devices and technologies, it is necessary to review the traditional methods of software development, considering the particularities required by IoT systems. Given the fundamental role of software architecture in the development of software intensive systems, the challenges related to the development of IoT systems must be considered at the architectural level. Software architecture allows stakeholders to reason about project decisions prior to implementation, to define constraints, to analyze quality attributes, and be better oriented in terms of system maintenance and evolution. This work focuses on a specific pillar of software architecture: architectural styles. An architectural style is the specification of the architectural elements commonly used by a particular class of systems, along with a set of constraints on how these elements are used. An architectural style provides a starting point for a coherent modeling of the software architecture, allowing the reuse of elements and a set of previously defined and validated architectural decisions, facilitating the architecture modeling process. The literature has a lot of information about IoT and architectural styles, but there is a gap in their integration. The advantages offered by the use of architectural styles can benefit the architectural specification of IoT systems but, to date, there is no specific architectural style for this type of system in the literature. In order to contribute to fill this gap, the main objective of this work is to propose an architectural style that offers guidelines for modeling the software architecture of IoT systems. The proposed IoT style complies with ISO / IEC 30141, which represents an international consensus on IoT system architecture. The style specification will be performed using the SysADL language, an Architectural Description Language (ADL) focused on the modeling of intensive software systems, which includes adequate abstractions for the modeling of IoT systems. The evaluation of the proposal will be done: (i) by modeling a real IoT system, designed to automatically control the temperature in intelligent environments, following the proposed IoT style; (ii) a controlled experiment to evaluate the benefits provided by the use of style.