Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Given the fast growing technological progress in microelectronics and wireless communication devices, in the near future, it is foreseeable that Wireless Sensor Networks (WSN) will offer and make possible a wide range of applications. However real world integration and application development on such networks composed of tiny, low power and limited resources devices are not easy. Therefore, middleware services are a novel approach offering many possibilities and drastically enhancing the application development on WSN. This survey shows the current state of research in this domain. It discusses middleware challenges in such networks and presents some representative middleware specifically designed for WSN. The selection of the studied methods tries to cover as many views of objectives and approaches as possible. We will focus on discovering similarities and differences by making classifications, comparisons and appropriateness studies. At the end we argue that most of the proposed work is at an early stage and there is still a long way to go before a middleware that fully meets the wide variety of WSN requirements is achieved. <s> BIB001 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Conventional approaches to manage and control security seem to have reached their limits in new complex environments. These environments are open, dynamic, heterogeneous, distributed, self-managing, collaborative, international, nomadic, and ubiquitous. We are currently working on a middleware platform focused on the industrial needs, UBIWARE. UBIWARE integrates Ubiquitous Computing with Semantic Web, Distributed AI, Security and Privacy, and Enterprise Application Integration. In this paper, we describe our long-term vision for the security and privacy management in complex multi-agent systems like UBIWARE, SURPAS. The security infrastructure has to become pervasive, interoperable and intelligent enough to naturally fit UBIWARE. SURPAS aims at policy-based optimal collecting, composing, configuring and provisioning of security measures. Particularly, we analyze the security implications of UBIWARE, present the SURPAS research framework, and the SURPAS abstract architecture. <s> BIB002 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Nowadays two main reasons are determining the increased number of intelligent systems in manufacturing. The first one is market-driven: demand is more and more variable and mass customization is the new way to compete in manufacturing, requiring feasible reconfigurable manufacturing systems. The second one is technology-pushed: the increasing availability of high-performance, low-power electronic components and the emerging wireless technologies are boosting the creation of intelligent systems (with personal intelligent perception, reasoning, etc.). However research should still be done in intelligent systems? field. Since the complexity both of the topic and of the consequences on manufacturing domain, a framework for addressing the overall field should be defined. We propose the framework adopted in SOCRADES, a European research project exploiting service oriented architecture paradigm both at the device and at the application level. Finally the impacts of SOCRADES architecture on manufacturing performance are described and motivated. <s> BIB003 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> This paper addresses the Internet of Things. Main enabling factor of this promising paradigm is the integration of several technologies and communications solutions. Identification and tracking technologies, wired and wireless sensor and actuator networks, enhanced communication protocols (shared with the Next Generation Internet), and distributed intelligence for smart objects are just the most relevant. As one can easily imagine, any serious contribution to the advance of the Internet of Things must necessarily be the result of synergetic activities conducted in different fields of knowledge, such as telecommunications, informatics, electronics and social science. In such a complex scenario, this survey is directed to those who want to approach this complex discipline and contribute to its development. Different visions of this Internet of Things paradigm are reported and enabling technologies reviewed. What emerges is that still major issues shall be faced by the research community. The most relevant among them are addressed in details. <s> BIB004 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Large scale bioinformatics experiments are usually composed by a set of data flows generated by a chain of activities (programs or services) that may be modeled as scientific workflows. Current Scientific Workflow Management Systems (SWfMS) are used to orchestrate these workflows to control and monitor the whole execution. It is very common in bioinformatics experiments to process very large datasets. In this way, data parallelism is a common approach used to increase performance and reduce overall execution time. However, most of current SWfMS still lack on supporting parallel executions in high performance computing (HPC) environments. Additionally keeping track of provenance data in distributed environments is still an open, yet important problem. Recently, Hydra middleware was proposed to bridge the gap between the SWfMS and the HPC environment, by providing a transparent way for scientists to parallelize workflow executions while capturing distributed provenance. This paper analyzes data parallelism scenarios in bioinformatics domain and presents an extension to Hydra middleware through a specific cartridge that promotes data parallelism in bioinformatics workflows. Experimental results using workflows with BLAST show performance gains with the additional benefits of distributed provenance support. <s> BIB005 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Radio frequency identification (RFID) is a key technology for Europe. Since the initial emergence of the technology, there has been a noticeable shift away from RFID pilot projects of the early days, towards a broad deployment of RFID in order to increase the efficiency and innovation of processes. Even though Europe is a leading player in the world of RFID technology, several challenges need to be addressed in order for RFID to reach its full potential. The funded under FP7 ICT project ASPIRE is one of the coordinated European efforts to further the advancement of this technology, in the areas of enabling technology development for RFID. In particular, the focus of ASPIRE is on design, development and adoption of an innovative, programmable, royalty-free, lightweight and privacy friendly RFID middleware. <s> BIB006 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> A smart road environment is such a traffic environment that is equipped with all necessary facilities to enable seamless mobile service provisioning to the users. However, advanced sensors and network architectures deployed within the traffic environment are insufficient to make mobile service provisioning autonomous and proactive, thus minimizing drivers’ distraction during their presence in the environment. For that, an Intelligent Transportation System, which is operating on top of numerous sensor and access networks and governing the process of mobile services provisioning to the users in self-managed and proactive way, must be deployed. Specifically, such system should provide solutions to the following two interoperability problems: interoperability between the in-car and roadside devices produced and programmed by different vendors and/or providers, and the need for seamless and flexible collaboration (including discovery, coordination, conflict resolution and possibly even negotiation) amongst the smart road devices and services. To tackle these problems, in this paper we propose UbiRoad middleware intending utilization of semantic languages and semantic technologies for declarative specification of devices’ and services’ behavior, application of software agents as engines executing those specifications, and establishment of common ontologies to facilitate and govern seamless interoperation of devices, services and humans. The main contribution of the paper includes the requirements and the architecture of complex traffic management systems and shows how such systems may benefit from utilization of semantic and agent technologies. <s> BIB007 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Most of the middlewares currently available focus on one type of device (e.g., TinyOS sensors) and/or are designed with one requirement in mind (e.g., data management). This is an important limitation since most of the AmI applications work with several devices (such as sensors, smartphones or PDAs) and use a high diversity of low-level services. Ideally, the middleware should provide a single interface for accessing all those services able to work in heterogeneous devices. To address this issue, we propose a family of configurable middleware (FamiWare) with a really flexible architecture, instead of building a single version of a middleware with a rigid structure. In this work, we present the architecture of our middleware that can be configured, following a Software Product Line approach, in order to be instantiated in a particular device fulfilling specific application requirements. Furthermore, we evaluate that the decisions taken at architecture and implementation are the adequate ones for this kind of constrained devices. <s> BIB008 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> This paper provides a survey of middleware system for Internet of Things (IoT). IoT is considered as a part of future internet and ubiquitous computing, and it creates a true ubiquitous or smart environment. The middleware for IoT acts as a bond joining the heterogeneous domains of applications communicating over heterogeneous interfaces. Comprehensive review of the existing middleware systems for IoT is provided here to achieve the better understanding of the current gaps and future directions in this field. Fundamental functional blocks are proposed for this middleware system, and based on that a feature wise classification is performed on the existing IoT-middleware. Open issues are analyzed and our vision on the research scope in this area is presented. <s> BIB009 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> One of the main advantages of using a scientific workflow management system (SWfMS) is to orchestrate data flows among scientific activities and register provenance of the whole workflow execution. Nevertheless, the execution control of distributed activities in high performance computing environments by SWfMS presents challenges such as steering control and provenance gathering. Such challenges may become a complex task to be accomplished in bioinformatics experiments, particularly in Many Task Computing scenarios. This paper presents a data parallelism solution for a bioinformatics experiment supported by Hydra, a middleware that bridges SWfMS and high performance computing to enable workflow parallelization with provenance gathering. Hydra Many Task Computing parallelization strategies can be registered and reused. Using Hydra, provenance may also be uniformly gathered. We have evaluated Hydra using an Orthologous Gene Identification workflow. Experimental results show that a systematic approach for distributing parallel activities is viable, sparing scientist time and diminishing operational errors, with the additional benefits of distributed provenance support. Copyright © 2011 John Wiley & Sons, Ltd. ::: ::: (The speed-up is based on comparisons with executions using one core in the cluster.) <s> BIB010 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Nowadays, Peer-to-Peer is responsible for more than 60% of Internet traffic. These protocols have proved to save bandwidth and computing resources in content distribution system. But, problems related to user behaviour, such as free riding, still persist, and users must be motivated to share content. In previous work, we have designed and simulated a coalition and incentive theoretical mechanism for content distribution that aims to fight against problems in user behaviour. In this pa- per, we present a real implementation of it. Since devel- oping a peer-to-peer application from scratch is a labori- ous and error prone task, we use SMEPP, a middleware that aims to ease the development of secure distributed application, to implement it. <s> BIB011 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Internet of Things (IoT) will create a cyberphysical world where all the things around us are connected to the Internet, sense and produce "big data" that has to be stored, processed and communicated with minimum human intervention. With the ever increasing emergence of new sensors, interfaces and mobile devices, the grand challenge is to keep up with this race in developing software drivers and wrappers for IoT things. In this paper, we examine the approaches that automate the process of developing middleware drivers/wrappers for the IoT things. We propose ASCM4GSN architecture to address this challenge efficiently and effectively. We demonstrate the proposed approach using Global Sensor Network (GSN) middleware which exemplifies a cluster of data streaming engines. The ASCM4GSN architecture significantly speeds up the wrapper development and sensor configuration process as demonstrated for Android mobile phone based sensors as well as for Sun SPOT sensors. <s> BIB012 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> For an arbitrary event, a lack of the prevailing context compromises understanding. In health monitoring services, this may have serious repercussions. Yet many biomedical devices tend to exhibit a lack of openness and interoperability that reduces their potential as active nodes in broader healthcare information systems. One approach to addressing this deficiency rests in the realization of a middleware solution that is heterogeneous in a multiplicity of dimensions, whilst supporting dynamic reprogramming as the needs of patients change. This paper demonstrates how such functionality may be interwoven into a middleware solution, both from a design and implementation perspective. <s> BIB013 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Web service supports interoperability for collecting, storing, manipulating and retrieving data from heterogeneous environments. The Wireless Sensor Network is a resource-constrained device, which is low cost, low power and small in size and used in various applications such as industrial control & monitoring, environmental sensing, health care, etc. The main intent is to design a middleware that hides the complexity of accessing the sensor network environment and developing an application for sensor web enablement. This concept holds great importance because integrating wireless sensor network into IP-based systems are still a challenging issue. It is very important to collect patient's details during the emergency period. To create a web service to manage patient's personal data with the help of Radio Frequency Identification Tag (RFID), Web Service is dedicated to collecting, storing, manipulating, and making available clinical information. Context-aware services are needed for searching information more accurately and to produce highly impeccable output. <s> BIB014 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Presently, middleware technologies abound for the Internet-of-Things (IoT), directed at hiding the complexity of underlying technologies and easing the use and management of IoT resources. The middleware solutions of today are capable technologies, which provide much advanced services and that are built using superior architectural models, they however fail short in some important aspects: existing middleware do not properly activate the link between diverse applications with much different monitoring purposes and many disparate sensing networks that are of heterogeneous nature and geographically dispersed. Then, current middleware are unfit to provide some system-wide global arrangement (intelligence, routing, data delivery) emerging from the behaviors of the constituent nodes, rather than from the coordination of single elements, i.e. self-organization. This paper presents the SIMPLE self-organized and intelligent middleware platform. SIMPLE middleware innovates from current state-of-research exactly by exhibiting self-organization properties, a focus on data-dissemination using multi-level subscriptions processing and a tiered networking approach able to cope with many disparate, widespread and heterogeneous sensing networks (e.g. WSN). In this way, the SIMLE middleware is provided as robust zero-configuration technology, with no central dependable system, immune to failures, and able to efficiently deliver the right data at the right time, to needing applications. <s> BIB015 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> MQTT is an open protocol developed and released by IBM. To ensure the reliability of message transmission, MQTT supports three levels of QoS. In this paper, we analyze MQTT message transmission process which consists of real wired/wireless publish client, broker server and Subscribe client. By transmitting messages through 3 levels of QoS with various sizes of payloads, we have captured packets to analyze end-to-end delays and message loss. <s> BIB016 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Achieving the vision of Ambient Intelligence, a world where devices adapt and anticipation our needs without intervention, requires a device to connect to multiple sensors to achieve this goal. One solution to this goal is to create a sensor web between sensors. This proves to be challenging due to the range of devices, different application requirements and is compounded by the fact that devices with their corresponding sensors can be mobile. Therefore a sensor web also requires the ability of heterogenous sensors to be discovered dynamically. This paper seeks to address the challenge of discovery by demonstrating how this can be achieved using a lightweight discovery service developed for this paper. AndroSIXTH aims to improve network middleware SIXTH with discovery services and extend its abilities to mobile networks. To illustrate the functionality of AndroSIXTH discovery service and its importance to the creation of Ambient Intelligent applications, a case study will be examined that demonstrates how through a seamless discovery service, an Augmented Reality environment can be created and used for maintenance and deployment of sensors for an Ambient Intelligent environment. <s> BIB017 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> We present XGSN, an open-source system that relies on semantic representations of sensor metadata and observations, to guide the process of annotating and publishing sensor data on the Web. XGSN is able to handle the data acquisition process of a wide number of devices and protocols, and is designed as a highly extensible platform, leveraging on the existing capabilities of the Global Sensor Networks (GSN) middleware. Going beyond traditional sensor management systems, XGSN is capable of enriching virtual sensor descriptions with semantically annotated content using standard vocabularies. In the proposed approach, sensor data and observations are annotated using an ontology network based on the SSN ontology, providing a standardized queryable representation that makes it easier to share, discover, integrate and interpret the data. XGSN manages the annotation process for the incoming sensor observations, producing RDF streams that are sent to the cloud-enabled Linked Sensor Middleware, which can internally store the data or perform continuous query processing. The distributed nature of XGSN allows deploying different remote instances that can interchange observation data, so that virtual sensors can be aggregated and consume data from other remote virtual sensors. In this paper we show how this approach has been implemented in XGSN, and incorporated to the wider OpenIoT platform, providing a highly flexible and scalable system for managing the life-cycle of sensor data, from acquisition to publishing, in the context of the semantic Web of Things. <s> BIB018 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Mobile smartphones along with embedded sensors have become an efficient enabler for various mobile applications including opportunistic sensing. The hi-tech advances in smartphones are opening up a world of possibilities. This paper proposes a mobile collaborative platform called MOSDEN that enables and supports opportunistic sensing at run time. MOSDEN captures and shares sensor data across multiple apps, smartphones and users. MOSDEN supports the emerging trend of separating sensors from application-specific processing, storing and sharing. MOSDEN promotes reuse and re-purposing of sensor data hence reducing the efforts in developing novel opportunistic sensing applications. MOSDEN has been implemented on Android-based smartphones and tablets. Experimental evaluations validate the scalability and energy efficiency of MOSDEN and its suitability towards real world applications. The results of evaluation and lessons learned are presented and discussed in this paper. <s> BIB019 </s> Software Toolkits: Practical Aspects of the Internet of Things—A Survey <s> IoT Middleware <s> Consumer-oriented wearable sensors such as smart watches are becoming popular, but each manufacturer uses its own data access mechanism. At the same time, the need for inferred context data is increasing in context-aware applications. A system is needed to provide a unified access to heterogeneous wearable devices for context-aware application developers. We propose ManySense—an Android-based middleware for heterogeneous consumer-oriented BSNs. Extensibility is achieved through adapter interfaces which allow sensors and context inferencing algorithms to be coupled with the middleware. Accessibility of the middleware allows third party applications to access raw sensor data and inferred context data uniformly. This paper provides two main contributions which are divided into several outcomes: (1) design and implementation of the ManySense BSN middleware that allows low-effort addition of new sensors and context inferencing algorithms through adapter interfaces, provides unified access to optionally filtered sensor data and inferred context data for third party applications, mediates control queries to sensor adapters and context inferencing adapters, and facilitates adapter development through an SDK and (2) evaluation of ManySense by comparing its performance with manual sensor data acquisition, analysis of ManySense’s extensibility through adapter interfaces, and analysis of ManySense’s accessibility from third party applications. <s> BIB020
Middleware is a type of computer software that connects different software components and applications. It consists of a set of enabling services that allow multiple processes running on one or more machines to interact with one another across a network. For many new applications, middleware components are becoming more important than the underlying OS and networking services on which the applications formerly depended  . Various types of middleware exist, including messageoriented middleware, object middleware, Remote Procedure Call middleware, database middleware, transaction middleware, and portals. Atzori et al. BIB004 summarized the relation of IoT components as being things-oriented, semantic-oriented, and internet-oriented visions. As summarized in Figure 2 , according to these characteristics, middleware in the IoT should be able to address things and internet-related issues, as well as issues related to the semantics gap, including interoperability across heterogeneous devices, context awareness, device discovery, management of resource-constrained embedded devices, scalability, management of large volumes of data, and privacy. In BIB001 , Wang et al. reviewed middleware for WSNs and provided a detailed analysis of the approaches and techniques offered by middleware to meet the requirements of WSNs. Wang et al. also discussed generic components of the middleware and a reference model of WSN-based middleware. In  , middleware was surveyed from an adaptability perspective that presented a taxonomy for adaptive middleware and its application domains and provided details for each middleware category. Context-aware middleware was also studied. The survey in  was based on the architectural aspects and provided a taxonomy of the features of a generic context-aware middleware. The survey reported in  evaluated several contextaware architectures based on relevant criteria from the ubiquitous and pervasive computing perspectives. Finally, the survey presented in BIB009 was a survey of middleware systems for the IoT. Hydra BIB010 is a middleware that bridges a scientific workflow management system and high-performance computing to enable workflow parallelization with provenance gathering. Coutinho et al. BIB005 used it to support a data parallelism solution for a bioinformatics experiment. Anggorjati et al. BIB006 introduced ASPIRE, which focused on the design, development, and adoption of an innovative, programmable, royalty-free, lightweight, and private RFID middleware. Naumenko et al. BIB002 described their long-term vision for security and privacy management in complex multiagent systems, such as UBIWARE. UBISOAP is a service-oriented middleware for WSNs BIB014 with a two-layer architecture based on SOAP. Terziyan et al. BIB007 proposed the requirements and architecture of a complex traffic management system and illustrated how such systems may benefit by using semantic and agent technologies with the UBIROAD middleware. Belmonte et al. BIB011 presented a real implementation of a coalition and incentive theoretical mechanism for content distribution that aimed to tackle the problems in user behavior by using SMEPP, a middleware that aims to ease the development of secure distributed applications. Cannata et al. BIB003 proposed that the framework for addressing intelligent systems should adopt SOCRADES, a European research project exploiting the SOA paradigm at the device and application levels. Maló et al. BIB015 presented the SIMPLE self-organized and intelligent middleware platform, which focuses on data-dissemination using multilevel subscriptions processing and a tiered networking approach to cope with many disparate, widespread, and heterogeneous sensing networks. Global sensor networks (GSNs) are designed to facilitate the deployment and programming of SNs and serve as middleware to connect the information from the IoT to the internet. GSN is a Java environment that collects live data from a set of wrappers, processing these data streams based on XML specification files, then releasing the processed data to the web. A GSN wrapper is a piece of Java code that performs data acquisition for various devices and different types of data sources, including local sensor nodes, remote sensor nodes, TinyOS nodes, CSV files, HTTP GET requests, serial ports, and USB cameras. Compared with existing middleware BIB012 , GSN implements the feature of automatic process of generating wrappers. Given these characteristics, GSN has better connectivity and configurability to deploy embedded sensor devices. In 2014, an extended version of GSN was presented by BIB018 . XGSN is capable of enriching virtual sensor descriptions with semantically annotated content using standard vocabularies. The Message Queuing Telemetry Transport (MQTT) protocol is a lightweight, real-time messaging protocol developed by IBM. Although MQTT is lightweight, it is powerful and robust enough to support smart devices in the IoT, including Arduino platform devices, smartphones, PDAs, and tablets, efficiently delivering messages between them. This makes it possible to link the IoT to the internet. The MQTT protocol has three types of service primitives: (a) at most one delivery; (b) at least one delivery; and (c) exactly one delivery. Different service primitives correspond to different QoS levels and flows. Lee et al. BIB016 analyzed the MQTT message transmission process through three levels of QoS with various payload sizes, and they also analyzed end-toend delays and message loss. Using MQTT, IoT services can be fluently and safely transmitted between the internet and devices of the IoT. Fuseki, a server providing access to the Simple Protocol and Resource Description Framework Query Language (SPARQL) 1.1 standard, uses it via HTTP and provides RESTful HTTP updating, querying, and updating. SPARQL is a querying language and data acquisition protocol developed for RDF by the W3C. It links two new web technologies, namely, Web 2.0 and the semantic web, together and might be the future querying language of mainstream network databases and data acquisition standards. After tagging heterogeneous data to form semantic data, Fuseki can be used to release such data to the web. Therefore, the IoT is connected to the traditional internet-based semantic data. Operator  , developed by Michael Kaply from IBM and arguably one of the important projects of the Mozilla labs, connects microformats and semantic data from many web pages, bringing us a new web service model. Microformats are a set of simple open data formats built upon existing and widely adopted standards designed for humans first and machines second. Operator makes it possible for us to integrate different data for different web services. An important issue is to study how the IoT should be linked to the internet for which the Operator middleware provides a possible solution. FamiWare BIB008 is a middleware family for ambient intelligence that allows the customization and instantiation of a specific middleware platform taking into consideration the peculiarities of every device and application domain, with the goal of reducing the middleware size. SIXTH BIB013 is a Java-based middleware for the Sensor Web. It allows sensor-driven applications and enables the dynamic tasking of sensor nodes to suit shifting application demands in near real time. AndroSIXTH BIB017 aims to improve network middleware SIXTH with discovery services and extend its abilities to mobile networks. MOSDEN BIB019 captures and shares sensor data across multiple apps, smartphones, and users. MOSDEN supports the emerging trend of separating sensors from applicationspecific processing, storing, and sharing. MOSDEN promotes reuse and repurposing of sensor data hence reducing the efforts in developing novel opportunistic sensing applications. MOSDEN has been implemented on Android-based smartphones and tablets. ManySense BIB020 is an Android-based middleware for heterogeneous consumer-oriented body sensor networks which allow sensors and context inferencing algorithms to be coupled with the middleware. And its accessibility allows third-party applications to access raw sensor data and inferred context data uniformly. Table 2 shows a comparison of the existing middleware from the perspective of the IoT.