A Semantic Framework for the Design of Distributed Reactive Real-Time Languages and Applications - Sanabria-Ardila, Mateo; Díaz-López, Daniel; Garzón-Alfonso, Wilmer; Benavides Navarro, Luis Daniel (My University, 2020)
The proliferation of on-demand internet services delivered over a network of a heterogeneous set of computing devices has created the need for high-performing dynamic systems in real-time. Services such as audio and video streaming, self-driving cars, the Internet of things (IoT), or instant communication on social networks have forced system designers to ethink the architectures and tools for implementing computer systems. Reactive programming has been advocated as a programming paradigm suitable for implementing dynamic applications with complex and heterogeneous architectural needs. However, there is no consensus on the core set of features that a reactive framework must-have. Furthermore, the current set of features proposed in reactive tools seems very restricted to cope with the actual needs for concurrency and distribution in modern systems. In this paper, several alternative semantics for distributed reactive languages are investigated, addressing complex open issues such as glitch avoidance, explicit distribution support, and constructs for explicit time management. First, we propose a reactive event-based programming language with explicit support for distribution, concurrency, and explicit time manipulation (ReactiveXD). Second, we present a reactive event-based semantic framework called Distributed Reactive Rewriting Framework (DRRF). The framework uses rewriting logic to model the components of a distributed base application, observables, and observers, and predicates supporting explicit time manipulation. Finally, to validate the proposal, the paper discusses the specification of the semantics of ReactiveXD and a scenario describing a case of intrusion detection on IoT networks

La proliferación de servicios de Internet bajo demanda entregados a través de una red de una heterogeneidad conjunto de dispositivos informáticos ha creado la necesidad de sistemas dinámicos de alto rendimiento en tiempo real. Servicios como transmisión de audio y video, automóviles autónomos, Internet de las cosas (IoT) o comunicación instantánea en las redes sociales han obligado a los diseñadores de sistemas a repensar las arquitecturas y herramientas para implementar sistemas informáticos. La programación reactiva se ha defendido como un paradigma de programación adecuado para implementando aplicaciones dinámicas con necesidades arquitectónicas complejas y heterogéneas. Sin embargo, hay No hay consenso sobre el conjunto básico de características que debe tener un marco reactivo. Además, el conjunto actual de las características propuestas en las herramientas reactivas parece muy restringido para hacer frente a las necesidades reales de concurrencia y Distribución en sistemas modernos. En este artículo, varias semánticas alternativas para lenguajes reactivos distribuidos se investigan, abordando problemas abiertos complejos como la prevención de fallas, el soporte de distribución explícito y constructos para la gestión explícita del tiempo. Primero, proponemos un lenguaje de programación reactivo basado en eventos con soporte explícito para distribución, simultaneidad y manipulación explícita del tiempo (ReactiveXD). Segundo, presentamos un marco semántico reactivo basado en eventos llamado Distributed Reactive Rewriting Framework (DRRF). El marco utiliza la lógica de reescritura para modelar los componentes de una aplicación base distribuida, observables y observadores y predicados que apoyan la manipulación explícita del tiempo. Finalmente, para validar el propuesta, el documento analiza la especificación de la semántica de ReactiveXD y un escenario que describe un caso de detección de intrusiones en redes IoT
Keywords: Internet de las cosas; Computación semántica; Aplicaciones web; Redes LOT; Distributed computing; the Internet of Things (IoT); Logical clocks; Maude; Reactive programming; Rewriting logic; Cybersecurity applications; Real-time languages