The enormous number of things connected to the Internet requires a flexible macro-programming platform to efficiently organize functions and process data. Fog or Edge computing is an emerging architecture to fill the ...
详细信息
ISBN:
(纸本)9781538634585
The enormous number of things connected to the Internet requires a flexible macro-programming platform to efficiently organize functions and process data. Fog or Edge computing is an emerging architecture to fill the gaps between things and cloud through providing computing, storage and forwarding services close to the end devices. This paper presents ThingNet - a micro-service based macro-programming platform to enable distributed data routing and processing across IoT devices, edges and central cloud. Application providers can deploy, modify, migrate and scale application logic over underlying infrastructures. An application level service function chaining is designed to enable data flow programming. The service functions can be shared by multiple data flows to reduce resource utilisation. The platform is implemented based on open source platforms including Kubernetes and MiNifi. ThingNet has been verified through a proof of concept testbed including Raspberry Pis, Intel NUCs, and Openstack VMs.
macro-programming advocates the use of high-level abstractions to specify distributed systems as a whole. However, macro-programming implementations are often centralised. In this paper we present PICO-MP, the first f...
详细信息
ISBN:
(纸本)9781538621950
macro-programming advocates the use of high-level abstractions to specify distributed systems as a whole. However, macro-programming implementations are often centralised. In this paper we present PICO-MP, the first fully decentralised macro-programming middleware for wireless sensor and actuator network (WSAN) applications. PICO-MP incorporates a novel publish-subscribe service that can correlate events scattered across a WSAN using global formulae specifications that are automatically checked in a distributed fashion. PICO-MP has been implemented for the TinyOS operating system and validated on a case study that uses global formulae to improve energy efficiency (lifetime) of the implementation.
Massive deployments of devices across all kinds of environments pose the need for engineering their collaborative, macro-level behaviour. To address this challenge, so-called macro-programming approaches have emerged....
详细信息
ISBN:
(纸本)9798400709692
Massive deployments of devices across all kinds of environments pose the need for engineering their collaborative, macro-level behaviour. To address this challenge, so-called macro-programming approaches have emerged. A prominent nature-inspired example of macro-programming is aggregate computing. In aggregate computing, macroscopic and self-organising behaviour is declared as a functional manipulation of computational fields. Fields are macro-level abstractions mapping devices to values over time, whose computation details, typically based on an execution model of asynchronous sense-compute-interact rounds, are abstracted. In more than ten years of research, multiple software engineering concerns in aggregate computing systems have been investigated, addressing aspects at the level of the language, execution dynamics, middle-ware, and deployment. Arguably, the enabling factor for many of such investigations and results is precisely the declarative nature of the aggregate computing paradigm. In this experience report, we analyse aggregate computing through the lenses of declarative programming, and draw significant insights and perspectives related to the engineering of complex adaptive systems.
The Internet of Things promotes a view of large-scale deployments of devices able to compute, communicate, and interact with their surrounding environment. In this context, one significant challenge revolves around de...
详细信息
The Internet of Things promotes a view of large-scale deployments of devices able to compute, communicate, and interact with their surrounding environment. In this context, one significant challenge revolves around designing and programming collective processes, i.e., durable activities involving the collaboration of large groups of devices. Examples of collective processes include distributed sensing, collective decision-making, collective movement/transport, and adaptive maintenance of system-level structures. To address the issues involved in developing such kinds of system-wide behaviours, research has proposed multiple approaches, abstractions, and algorithmic solutions. In particular, the approach of aggregate processes has emerged as a promising formal technique for programming collective processes by a macro-level perspective while supporting decentralisation, abstraction, and resilience. In order to characterise (i) previous work on aggregate processes, (ii) the usages and applications that this technique may foster, and (iii) draw general design insights in the realm of collective computing, this article provides a characterisation of common problems and solutions based on aggregate processes. What results is a catalogue of design patterns for decentralised collective processes. Specifically, we provide a taxonomy of patterns, describe each pattern in a schematic form, and discuss the implications for the design of collective processes for the Internet of Things and related scenarios.
In order to simplify programming for building sensor networks, macro-programming methods have been pro- posed in prior work. Most of them are designed for the dedicated networks and specific scenarios where devices ar...
详细信息
In order to simplify programming for building sensor networks, macro-programming methods have been pro- posed in prior work. Most of them are designed for the dedicated networks and specific scenarios where devices are mostly homogeneous. Nevertheless the methods rarely consider those shared networks which are composed of heterogeneous de- vices, e.g., sensors, actuators, mobile devices, and share resources among themselves. In this paper, we present EasiSMP, a resource-oriented programming framework for these shared networks and generic application scenarios. In this framework, the devices and their functionalities are abstracted into RESTful virtual resources (VRs) each of which is labelled by a uni- form resource identifier (URI). The post-deployment VR can be globally accessed and reused to propagate new resource(s) at runtime. To support the resource propagation, programming primitives are proposed and a virtual resource engine (VRE) is studied. To perform evaluation, EasiSMP is deployed into a relic monitoring network. Experimental results show that programming using Ea-siSMP is concise, and the average deployment overhead is decreased by up to 27% compared with the node-level programming.
On the way to the materialisation of the pervasive computing vision, the technological progress swelling from mobile computing and the Internet of Things (IoT) domain is already rich of missed opportunities. Firstly, ...
详细信息
ISBN:
(纸本)9781538651759
On the way to the materialisation of the pervasive computing vision, the technological progress swelling from mobile computing and the Internet of Things (IoT) domain is already rich of missed opportunities. Firstly, coordinating large numbers of heterogeneous situated entities to achieve system-level goals in a resilient and self-adaptive way is complex and requires novel approaches to be seamlessly injected into mainstream distributed computing models. Secondly, achieving effective exploitation of computer resources is difficult, due to operational constraints resulting from current paradigms and uncomprehensive software infrastructures which hinder flexibility, adaptation, and smooth coordination of computational tasks execution. Indeed, building dynamic, context-oriented applications in small- or large-scale IoT with traditional abstractions is hard: even harder is to achieve opportunistic, QoS- and QoE-driven application task management across available hardware and networking infrastructure. In this insight paper, we analyse by the collective adaptation perspective the key directions of the impelling paradigm shift urged by forthcoming large-scale IoT scenarios. Specifically, we consider how collective abstractions and platforms can synergistically assist in such a transformation, by better capturing and enacting a notion of "collective service" as well as the dynamic, opportunistic, and context-driven traits of space-time-situated computations.
Today's distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the envi...
详细信息
Today's distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focuses on treating these systems as “composites” (i.e., heterogeneous functional complexes), recent developments in fields such as self-organising systems and swarm robotics have opened up a complementary perspective: treating systems as “collectives” (i.e., uniform, collaborative, and self-organising groups of entities). This article explores the motivations, state of the art, and implications of this “collective computing paradigm” in software engineering. In particular, it discusses its peculiar challenges, implied by characteristics like distribution, situatedness, large scale, and cooperative nature. These challenges outline significant directions for future research in software engineering, touching on aspects such as macro-programming, collective intelligence, self-adaptive middleware, learning/synthesis of collective behaviour, human involvement, safety and security in collective cyber-physical ecosystems.
暂无评论