2,711 research outputs found

    Supporting Cyber-Physical Systems with Wireless Sensor Networks: An Outlook of Software and Services

    Get PDF
    Sensing, communication, computation and control technologies are the essential building blocks of a cyber-physical system (CPS). Wireless sensor networks (WSNs) are a way to support CPS as they provide fine-grained spatial-temporal sensing, communication and computation at a low premium of cost and power. In this article, we explore the fundamental concepts guiding the design and implementation of WSNs. We report the latest developments in WSN software and services for meeting existing requirements and newer demands; particularly in the areas of: operating system, simulator and emulator, programming abstraction, virtualization, IP-based communication and security, time and location, and network monitoring and management. We also reflect on the ongoing efforts in providing dependable assurances for WSN-driven CPS. Finally, we report on its applicability with a case-study on smart buildings

    Channel and active component abstractions for WSN programming - a language model with operating system support

    Get PDF
    To support the programming of Wireless Sensor Networks, a number of unconventional programming models have evolved, in particular the event-based model. These models are non-intuitive to programmers due to the introduction of unnecessary, non-intrinsic complexity. Component-based languages like Insense can eliminate much of this unnecessary complexity via the use of active components and synchronous channels. However, simply layering an Insense implementation over an existing event-based system, like TinyOS, while proving efficacy, is insufficiently space and time efficient for production use. The design and implementation of a new language-specific OS, InceOS, enables both space and time efficient programming of sensor networks using component-based languages like Insense

    Programming models for sensor networks: a survey

    Get PDF
    Sensor networks have a significant potential in diverse applications some of which are already beginning to be deployed in areas such as environmental monitoring. As the application logic becomes more complex, programming difficulties are becoming a barrier to adoption of these networks. The difficulty in programming sensor networks is not only due to their inherently distributed nature but also the need for mechanisms to address their harsh operating conditions such as unreliable communications, faulty nodes, and extremely constrained resources. Researchers have proposed different programming models to overcome these difficulties with the ultimate goal of making programming easy while making full use of available resources. In this article, we first explore the requirements for programming models for sensor networks. Then we present a taxonomy of the programming models, classified according to the level of abstractions they provide. We present an evaluation of various programming models for their responsiveness to the requirements. Our results point to promising efforts in the area and a discussion of the future directions of research in this area.

    Applying Formal Methods to Networking: Theory, Techniques and Applications

    Full text link
    Despite its great importance, modern network infrastructure is remarkable for the lack of rigor in its engineering. The Internet which began as a research experiment was never designed to handle the users and applications it hosts today. The lack of formalization of the Internet architecture meant limited abstractions and modularity, especially for the control and management planes, thus requiring for every new need a new protocol built from scratch. This led to an unwieldy ossified Internet architecture resistant to any attempts at formal verification, and an Internet culture where expediency and pragmatism are favored over formal correctness. Fortunately, recent work in the space of clean slate Internet design---especially, the software defined networking (SDN) paradigm---offers the Internet community another chance to develop the right kind of architecture and abstractions. This has also led to a great resurgence in interest of applying formal methods to specification, verification, and synthesis of networking protocols and applications. In this paper, we present a self-contained tutorial of the formidable amount of work that has been done in formal methods, and present a survey of its applications to networking.Comment: 30 pages, submitted to IEEE Communications Surveys and Tutorial

    From Formal Methods to Executable Code

    Get PDF
    Note: the cover page of this report shows an incorrect title. The title given on the first page of the document itself is correct.The objective of this work is the derivation of software that is verifiably correct. Our approach is to abstract system specifications and model these in a formal framework called Timed Input/Output Automata, which provides a notation for expressing distributed systems and mathematical support for reasoning about their properties. Although formal reasoning is easier at an abstract level, it is not clear how to transform these abstractions into executable code. During system implementation, when an abstract system specification is left up to human interpretation, then this opens a possibility of undesirable behaviors being introduced into the final code, thereby nullifying all formal efforts. This manuscript addresses this issue and presents a set of transformation methods for systems described as a network to timed automata into Java code for distributed platforms. We prove that the presented transformation methods preserve guarantees of the source specifications, and therefore, result in code that is correct by construction

    Federated Embedded Systems – a review of the literature in related fields

    Get PDF
    This report is concerned with the vision of smart interconnected objects, a vision that has attracted much attention lately. In this paper, embedded, interconnected, open, and heterogeneous control systems are in focus, formally referred to as Federated Embedded Systems. To place FES into a context, a review of some related research directions is presented. This review includes such concepts as systems of systems, cyber-physical systems, ubiquitous computing, internet of things, and multi-agent systems. Interestingly, the reviewed fields seem to overlap with each other in an increasing number of ways

    Actors that Unify Threads and Events

    Get PDF
    There is an impedance mismatch between message-passing concurrency and virtual machines, such as the JVM. VMs usually map their threads to heavyweight OS processes. Without a lightweight process abstraction, users are often forced to write parts of concurrent applications in an event-driven style which obscures control flow, and increases the burden on the programmer. In this paper we show how thread-based and event-based programming can be unified under a single actor abstraction. Using advanced abstraction mechanisms of the Scala programming language, we implemented our approach on unmodified JVMs. Our programming model integrates well with the threading model of the underlying VM

    Intermittent Computing: Challenges and Opportunities

    Get PDF
    The maturation of energy-harvesting technology and ultra-low-power computer systems has led to the advent of intermittently-powered, batteryless devices that operate entirely using energy extracted from their environment. Intermittently operating devices present a rich vein of programming languages research challenges and the purpose of this paper is to illustrate these challenges to the PL research community. To provide depth, this paper includes a survey of the hardware and software design space of intermittent computing platforms. On the foundation of these research challenges and the state of the art in intermittent hardware and software, this paper describes several future PL research directions, emphasizing a connection between intermittence, distributed computing, energy-aware programming and compilation, and approximate computing. We illustrate these connections with a discussion of our ongoing work on programming for intermittence, and on building and simulating intermittent distributed systems

    Simulating sensor networks

    Get PDF
    Tese de mestrado em Informática, apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2010Nos últimos anos, as redes de sensores sem fios conheceram um grande impulso em variadas ´áreas, nomeadamente na monitorização industrial e ambiental e, mais recentemente, na logística e noutras aplicações que envolvem processos de negócio e a chamada Internet das Coisas e dos Serviços. Contudo, e apesar dos avanços que se têm verificado tanto em termos de hardware como de software, estas redes são difíceis de programar, testar e instalar. A simulação de redes de sensores é frequentemente utilizada para testar e depurar aplicações para redes de sensores, pois permite testar a execução de das aplicações em ambientes virtuais. Esta tese aborda um problema que diz respeito a testar estas redes através de simulação: a definição (manual) de modelos. A nossa abordagem aponta para a geração de modelos de simulação directamente a partir de aplicações redes de sensores, em particular, modelos para o simulador VisualSense criados a partir de aplicações escritas em Callas, uma linguagem de programação para as redes de sensores. Para tal, criamos uma ferramenta capaz de gerar modelos que ´e paramétrica pelos modelos de rede e modelos sensores da rede que se pretende modelar, e ainda por um conjunto extensível de parâmetros de simulação. As nossas experiências mostraram resultados encorajadores na simulação de redes de grande escala, uma vez que conseguimos executar simulações com até 5000 nós. À medida que as redes de sensores sem fios começam a ser utilizadas em processos de negócio, a informação que recolhem do ambiente tem cada vez mais influência no decurso dos fluxos de trabalho associados aos processos de negócio. De um modo geral, os testes levados a cabo em fluxos de trabalho fazem uso de informação gravada em fluxos de trabalho executados previamente, tornando difícil testar o sistema como um todo. Em alternativa, e como uma segunda proposta desta tese, propomos testar fluxos de trabalho através da incorporação de resultados obtidos nas simulações das aplicações das redes de sensores. Além de cobrir os casos cobertos pela primeira abordagem, esta técnica permite testar novos fluxos de trabalho, bem como as mudanças ocorridas num determinado fluxo de trabalho por acontecimentos no ambiente.In recent years, Wireless Sensor Networks have gaining momentum in several fields, notably in industrial and environmental monitoring and, more recently, in logistics. However, and in spite of the advances in hardware and software, Wireless Sensor Networks are still hard to program, test, and deploy. Simulation is often used for testing and debugging sensor networks because they allow us to perform deployments in virtual environments. This paper addresses a key problem of testing such networks using simulation: (manual) model definition. Our approach is to generate simulation models directly from WSN applications, in particular, VisualSense simulator models from applications written in Callas, a programming language for WSN. For that purpose, we create a model generator tool that is parameter sable by network and sensor templates, and by an extensible set of simulation parameters. Our experiments show encouraging results on simulating large scale networks, as we are able to handle WSN with as many as 5000 nodes. As Wireless Sensor Networks begin to play some role in business processes, the information they gather from the environment influences the execution of workflows. Generally, the tests carried out on these systems make use of recorded information in earlier workflow executions, making it difficult to test the system as a whole. Alternatively, and as a second proposal of this thesis, we propose testing such workflows by incorporating results obtained from the simulation of sensor network applications. Besides covering the situations described in the first approach, this technique allows the testing of new workflows, as well as the changes made to a given workflow by events in the environment
    corecore