# A Survey of Techniques for Discovering, Using, and Paying for Third-Party IoT Sensors
## 3 Related Work for Sharing IoT Devices
### Related Research for Integrating IoT Devices  
A common technique for integrating IoT devices is using a wrapper that can virtually integrate any IoT device [19]. A wrapper is a piece of code developed individually to integrate each IoT device. These wrappers are usually developed by the developers of the system/solution that offers IoT device integration, or by the provider of the IoT device. Several solutions/systems have used wrappers to integrate IoT devices, including LSM [13], OpenIoT [49], and (GSN) middleware [50]. Application Programming Interfaces (APIs), which are software that allow for IoT applications to interact with IoT devices [51], can provide an interface for deployed IoT devices to be integrated with IoT applications. One API can provide an interface for integrating several IoT devices. Several solutions/systems have used APIs to integrate IoT devices, including Simurgh [44] and Agri-IoT [22]. Although using a wrapper or API technique can virtually support the integration of any IoT device, it is not scalable due to the need to develop a wrapper or API for each IoT device or group of IoT devices. Also, IoT-ownership depends on the system/solution that uses these wrappers or APIs. Other IoT device integration techniques are providing information like Uniform Resource Locators (URLs) for IoT applications and are expecting IoT applications to use their own IoT platform or middleware to integrate IoT devices. [PERSON] and [PERSON] [37] have proposed providing a Universal Resource Identifier (URI) for the repository that has the required information to integrate IoT devices. [PERSON] et al. [36] have provided unique identifications for IoT devices, such as endpoints that allow for IoT applications to integrate \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Scalable** & **IoT-Owned** & **Interoperable** & **Full Support of Indexing IoT Devices** \\ \hline Ref. [21] evaluates & & & \\ indexing up to & & & None of the related work fully supports indexing IoT devices \\ \hline \hline \end{tabular}
\end{table} 
Table 6: The related research that addresses indexing Internet of Things devices challenges. with IoT devices. The scalability, IoT-ownership, and ability to support heterogeneous IoT devices depend on the IoT platform and/or the middleware used by IoT applications. Simurgh [44] uses APIs and low-level programming libraries to integrate IoT devices and obtain their data. These APIs are developed by Simurgh developers, volunteer developers, or IoT device providers. Simurgh contains an API access management layer that provides the necessary information to manage the integration of IoT devices. [PERSON] et al. [52] have proposed a Context-Aware Sensor Configuration Model (CASCoM) to provide automation in the integration of IoT devices for IoT middleware, such as GSN [50]. CASCoM has the ability to integrate IoT devices without the need for a wrapper or API, and it is easy to use for non-IT experts. However, CASCoM needs all the information related to IoT devices and data processing components to be stored in a repository. [PERSON] et al. [52] have conducted an experiment to integrate up to 10,000 IoT devices. The experiment shows that CASCoM can be up to 250 times faster (respectively) in comparison to some existing techniques, such as GSN. [PERSON] et al. [53] have proposed the Internet of Things Protocol (IoTP), which supports IoT data aggregation from the network layer among heterogeneous IoT devices to improve interoperability. IoTP does not rely on routing protocols; thus, it is a more generic protocol and supports interoperability. IoTP requires another layer to manage the aggregation of IoT data. The authors have ran an experiment with a total of 50 IoT devices to evaluate IoTP by measuring several metrics including transmitted data, network efficiency, and average delay. Based on the review of related work, all of the techniques except for [53] do not provide support for interoperable integration due to either the need for an API or wrapper for almost each different IoT device.