10 research outputs found

    Symbolic Programming of Distributed Cyber-Physical Systems

    Get PDF
    Cyber-Physical Systems (CPSs) tightly integrate physical world phenomena and cyber aspects of computational units. The composition of physical, computational and communication systems demands different levels and types of abstraction as well as novel programming methodologies allowing for homogeneous programming, knowledge representation and exchange on heterogeneous devices. Current modeling approaches, frameworks and architectures result fairly inadequate to the task, especially when resource-constrained devices are involved. This work proposes symbolic computation as an effective solution to program resource constrained CPS devices with code maintaining strict ties to high-level specifications expressed in natural language while supporting interoperability among heterogeneous devices. Design, architectural, programming, and deployment aspects of CPSs are addressed through a single formalism unifying the specification of both cyber and physical parts of CPSs. In particular, programming patterns are modeled as sequences of words adhering to natural language syntax and semantics. Given a software under test (SUT), i.e. an input program expressed as a natural language sentence, formal specifications are used to generate oracles for sentence verification and to generate input test cases. The choice of natural language inspired programming supplies a mechanism for the development of the same software on different hardware platforms, ensuring interoperability among heterogeneous devices. Formal specifications also permit to generate stress tests in order to verify that program components behave as expected in repeated execution. In order to make high-level symbolic programs run on real hardware devices with no loss of expressivity during the translation of high-level specifications into an executable implementation, this work proposes a novel software architecture, Distributed Computing for Constrained Devices (DC4CD), as a supporting platform. The proposed architecture enables symbolic processing and distributed computing on devices with very limited energy, communication and processing capabilities that can be integrated into CPSs. In particular, DC4CD has been extensively used to test the symbolic distributed programming methodology on Wireless Sensor Networks (WSNs) that include nodes with actuation abilities. The platform offers networking abstractions for the exchange of symbolic code among peer devices and allows designers to change at runtime, even wirelessly on deployed nodes, not only the application code but also system code.Cyber-Physical Systems (CPSs) tightly integrate physical world phenomena and cyber aspects of computational units. The composition of physical, computational and communication systems demands different levels and types of abstraction as well as novel programming methodologies allowing for homogeneous programming, knowledge representation and exchange on heterogeneous devices. Current modeling approaches, frameworks and architectures result fairly inadequate to the task, especially when resource-constrained devices are involved. This work proposes symbolic computation as an effective solution to program resource constrained CPS devices with code maintaining strict ties to high-level specifications expressed in natural language while supporting interoperability among heterogeneous devices. Design, architectural, programming, and deployment aspects of CPSs are addressed through a single formalism unifying the specification of both cyber and physical parts of CPSs. In particular, programming patterns are modeled as sequences of words adhering to natural language syntax and semantics. Given a software under test (SUT), i.e. an input program expressed as a natural language sentence, formal specifications are used to generate oracles for sentence verification and to generate input test cases. The choice of natural language inspired programming supplies a mechanism for the development of the same software on different hardware platforms, ensuring interoperability among heterogeneous devices. Formal specifications also permit to generate stress tests in order to verify that program components behave as expected in repeated execution. In order to make high-level symbolic programs run on real hardware devices with no loss of expressivity during the translation of high-level specifications into an executable implementation, this work proposes a novel software architecture, Distributed Computing for Constrained Devices (DC4CD), as a supporting platform. The proposed architecture enables symbolic processing and distributed computing on devices with very limited energy, communication and processing capabilities that can be integrated into CPSs. In particular, DC4CD has been extensively used to test the symbolic distributed programming methodology on Wireless Sensor Networks (WSNs) that include nodes with actuation abilities. The platform offers networking abstractions for the exchange of symbolic code among peer devices and allows designers to change at runtime, even wirelessly on deployed nodes, not only the application code but also system code

    WSN Design and Verification Using On-Board Executable Specifications

    No full text
    The gap between informal functional specifications and the resulting implementation in the chosen programming language is notably a source of errors in embedded systems design. In this paper, we discuss a methodology and a software platform aimed at coping with this issue in programming resource-constrained wireless sensor network nodes (WSNs). Whereas the typical development model for the WSNs is based on cross compilation, the proposed approach supports high-level symbolic coding of abstract models and distributed applications, as well as their test and their execution, directly on the target hardware. As a working example, we discuss the application of our methodology to specify the functional behavior of a radio transceiver chip. The resulting executable specifications are augmented with automatically generated runtime verification code. Our approach is also compared to code development for two prominent WSN general-purpose operating systems

    A Lightweight Middleware Platform for Distributed Computing on Wireless Sensor Networks

    Get PDF
    The peculiar features of Wireless Sensor Networks (WSNs) suggest to exploit the distributed computing paradigm to perform complex tasks in a collaborative manner, in order to overcome the constraints related to sensor nodes limited capabilities. In this context, we describe a lightweight middleware platform to support the development of distributed applications on WSNs. The platform provides just a minimal general-purpose software layer, while the application components, including communication and processing algorithms, as well as the exchanged data, are described symbolically, with neither preformed syntax nor strict distinction between data and code. Our approach allows for interactive development of applications on each node, and requires no cross-compilation, a common practice that makes the development of WSN applications rigid and time-consuming. This way, tasks and behavior of each node can be modified at runtime, even after the network deployment, by sending the node executable code

    A Lightweight Network Discovery Algorithm for Resource-constrained IoT Devices

    No full text
    Although quite simple, existing protocols for the IoT suffer from the inflexibility of centralized infrastructures and require several configuration stages. The implementation of these protocols is often prohibitive on resource-constrained devices. In this work, we propose a distributed lightweight implementation of network discovery for simple IoT devices. Our approach is based on the exchange of symbolic executable code among nodes. Based on this abstraction, we propose an algorithm that makes even IoT resource-constrained nodes able to construct the network topology graph incrementally and without any a priori information about device positioning and presence. The minimal set of executable symbols to be defined on the devices is identified and simulation results for different topologies are reported

    A symbolic distributed event detection scheme for Wireless Sensor Networks

    No full text
    Due to the possibility of extensive and pervasive deployment of many tiny sensor devices in the area of interest, Wireless Sensor Networks (WSNs) result particularly suitable to detect significant events and to react accordingly in industrial and home scenarios. In this context, fuzzy inference systems for event detection in WSNs have proved to be accurate enough in treating imprecise sensory readings to decrease the number of false alarms. Besides reacting to event occurrences, the whole network may infer more information to enrich the event semantics resulting from reasoning processes carried out on the individual nodes. Contextual knowledge, including spatial and temporal relationships, as well as neighborhood confidence levels, can be used to improve the detection accuracy, but requires to extend the number of variables involved in the reasoning process

    WSN Design and Verification Using On-Board Executable Specifications

    No full text

    Development of an IoT Environmental Monitoring Application with a Novel Middleware for Resource Constrained Devices

    No full text
    In this paper the development of a Mobile Health monitoring system is described. The system combines user location data with air quality information provided by a heterogeneous sensing infrastructure providing users with advises about their daily exposure to air pollutants. The highly dynamic integration of different kind of nodes, mostly characterized by rather constrained resources, of this application is crucial to implement the Internet of Things vision, and requires powerful and effective programming methodologies to abstract implementation of high-level distributed processing from hardware dependencies. We then describe our programming methodology and our novel middleware supporting distributed applications on constrained devices. Our development approach is based on distributed symbolic processing through executable code exchange among nodes, and permits to extend the capabilities of nodes even after their deployment
    corecore