- freely available
Sensors 2015, 15(9), 24343-24373; https://doi.org/10.3390/s150924343
2. PUCK over Bluetooth
2.2. Related Work
2.3.1. Sensor Protocol
2.3.2. System Architecture
- Communication Layer: This layer includes the Bluetooth hardware and its protocol. When a request is received, the layer forwards the request string to the service layer for processing. After the service layer finishes processing the request, a response string is returned to the communication layer to be sent back to the client.
- Service Layer: The service layer handles business logic of the system. This layer itself consists of three modules: sensor data repository, response engine, and memory management unit (MMU). Sensor data repository archives historical records of sensor observations. In order to parse the commands and compose the response messages on low-memory IoT devices, we propose a response engine. This unit is equipped with a buffering mechanism to handle large requests and responses. In this way, the maximum memory consumption at any time for reading and writing a document is equal to the buffer size. For our implementation, the buffer size is considered 1 KB which is more than enough for the commands of PUCK and sensor protocol. When the request is processed by the response engine, the response comes from the MMU (if the command relates to PUCK memory), or from the sensor data repository (if the request contributes to the sensor protocol). By following this technique, we can successively parse and compose large commands (~100 KB) on class-1 IoT devices.
- Sensor Layer: The sensor layer consists of physical sensors and a sensor controller. The sensor controller tasks sensors to collect sensor observations. Next, it sends the collected sensor observations to the sensor data repository of the service layer.
3.2. Related Work
3.3.2. System Architecture
- Communication Layer: The communication layer is responsible for managing HTTP requests and responses, including the network related protocols and hardware (e.g., Network Interface Card). When a request is received by a TinySOS service, the communication layer forwards the XML request to the service layer for further processing. After the service layer finishes the task, an XML response is returned to the communication layer, and then sent back to the client.
- Service Layer: This layer consists of three modules: XML processor unit (XPU), response engine, and sensor data repository. As the XML documents are significantly too large to be stored in the memory of class-1 devices, the TinySOS service needs a new way to parse XML documents. Instead of the traditional XML parsers that load the whole XML document into memory, we propose the use of the XML processor unit (XPU) which reads and parses XML documents buffer by buffer. The XPU not only extracts the request criteria parameters, but also composes the GetObservation responses. The request criteria extracted by the XPU is forwarded to the response engine. If it is a GetCapabilities request or a DescribeSensor request, the response engine retrieves a predefined XML file (e.g., the Capabilities document and the SensorMLs) from the permanent memory, and forwards it to the communication layer. If the request is a GetObservation operation, the response engine uses the XPU to compose the GetObservation response according to the criteria, and forwards the response to the communication layer. In addition, as an SOS should have the ability to return the historical observations, the TinySOS stores sensor measurements in a sensor data repository. Depending on the device, the sensor data repository could be located in either the main memory (RAM) or the permanent memory (e.g., micro SD card).
- Sensor Layer: The sensor layer consists of the physical sensors and the sensor controllers. The sensor controllers work closely with sensors. For example, a sensor controller can task sensors to collect sensor observations and send the collected sensor observations to the sensor data repository in the service layer. The sensor controller would play an important role in supporting SPS on IoT objects.
4. SOS over CoAP
4.2. Related Work
4.3.1. Device Architecture
4.3.2. SOS Integration to CoAP
- XML-to-CoAP Converter: This component receives the core SOS requests (GetCapabilities, DescribeSensor, and GetObservation) from the user. As those requests are encoded in heavy-weight XML, they need to be reformatted to simpler format requests encapsulated in UDP messages. The message consists of several fields defined by the CoAP specification. The body of the message has the same content of the sensor protocol already elaborated in Section 2.3.1.
- CoAP-to-XML Converter: This component receives CoAP messages and coverts them to SOS responses. As the CoAP messages are flat texts, they need to be encoded in XML format before being sent back to the user.
- Communication Handler: The communication handler checks user requests in relation to compatibility to the core SOS operations. If the request is validated, the relevant SOS response is forwarded to the user.
5. OGC SensorThings API
5.2. Related Work
5.3.1. API Components and Ecosystem
5.3.2. System Architecture
- Communication Layer: Similarly with the previous protocols, the communication layer contributes to device interactions over the network. Unlike the TinySOS that uses the heavy-weight XML format, and CoAP that transmits messages in UDP packets, the OGC SensorThings API applies a basic flat format (delimited by space) in all communications except for the registration requests. When a Thing is registering itself on the server, the requests are formatted in JSON which are already hardcoded in the device’s memory. In other cases, communications are based on the flat text format that is more suitable for IoT devices to process the messages with no need for a parser.
- Business Logic Layer: The business logic layer simultaneously has the functionalities of both the client and the server. The client role is because a Thing demands to interact with the IoT data service in order to register itself, and to upload the sensor observations. The data uploader component plays the client role during device registration. This unit also sends periodic requests for publishing sensor measurements. In order to accept tasking requests from clients, the Thing should also contain a server, which is named the response engine component in this architecture. Similarly with the TinySOS and CoAP, the response engine reads HTTP requests buffer by buffer. After processing the requests, the task might be sent to the sensor/actuator layer, and the relevant response passed to the communication layer. Since in OGC SensorThings API, a Thing is always connected to a data service, the Thing does not need to record the sensor readings on its own memory. Therefore, unlike the other protocols, in the device architecture of this API (Figure 10), the “sensor data repository” component was completely removed from the device architecture.
- Sensor/Actuator Layer: The sensor/actuator layer consists of physical sensors, actuators, and their controllers. The sensor controller manages sensors and actuators. For example, the sensor controller can command a sensor to collect measurements, or give an actuator the task of carrying out an action.
6. Evaluation and Results
6.2. Performance Evaluation
6.2.1. Memory Occupation
|Simple Web Service||PUCK over Bluetooth||TinySOS||SOS over CoAP||OGC SensorThings|
6.2.2. Request Size
6.2.3. Response Length
6.2.4. Response Latency
7. Conclusions and Future Work
7.2. Future Work
Conflicts of Interest
A.1. Sample Requests and Responses Used in Section 6.2
A.1.1. Simple Web Server
A.1.2. PUCK over Bluetooth
A.1.4. SOS over CoAP
A.1.5. OGC SensorThings API
- Telecommunication Standardization Sector of ITU. Series Y: Global information infrastructure, internet protocol aspects and next-generation networks. In Recommendation ITU-T Y, 2060–Overview of the Internet of Things; IUT: Geneva, Switzerland, 2012; pp. 1–6. [Google Scholar]
- Bormann, C.; Castellani, A.P.; Shelby, Z. CoAP: An Application Protocol for Billions of Tiny Internet Nodes. IEEE Internet Comput. 2012, 16, 62–67. [Google Scholar] [CrossRef]
- Institute of Electrical and Electronics Engineers. IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries; ISBN 1-55937-079-3. IEEE: New York, NY, USA, 1991. [Google Scholar]
- Rodriguez, M.J.; Martínez, J.F.; Castillejo, P.; López, L. Combining Wireless Sensor Networks and Semantic Middleware for an Internet of Things-Based Sportsman/Woman Monitoring Application. Sensors 2013, 13, 1787–1835. [Google Scholar] [CrossRef] [PubMed]
- Cox, S. Observations and Measurements—XML Implementation. Open Geospatial Consortium Inc.: 2011. Available online: http://www.opengis.net/doc/IS/OMXML/2.0 (accessed on 1 February 2013).
- Botts, M.; Robin, A. OpenGIS® Sensor Model Language (SensorML) Implementation Specification. Open Geospatial Consortium Inc.: 2007. Available online: http://portal.opengeospatial.org/files/?artifact_id=21273 (accessed on 1 May 2013).
- Na, A.; Priest, M. OpenGIS® Sensor Observation Service Implementation Standard. Open Geospatial Consortium Inc.: 2007. Available online: https://portal.opengeospatial.org/files/?artifact_id=26667 (accessed on 1 November 2012).
- Simonis, I.; Dibner, P.C. OpenGIS® Sensor Planning Service Implementation Specification. Implementation Specification OGC: 2007. pp. 1–21. Available online: http://portal.opengeospatial.org/files/?artifact_id=23180 (accessed on 1 November 2012).
- O’Reilly, T. OGC® Puck Protocol Standard Version 1.4. Open Geospatial Consortium, OGC Encoding Standard OGC: 2010. Available online: https://portal.opengeospatial.org/files/?artifact_id=47604 (accessed on 1 May 2012).
- Shelby, Z.; Hartke, K.; Bormann, C. Constrained Application Protocol (CoAP). draft-ietf-core-coap-18, 2013. Available online: https://tools.ietf.org/html/draft-ietf-core-coap-18 (accessed on 1 November 2013).
- Bröring, A.; Maué, P.; Janowicz, K.; Nüst, D.; Malewski, C. Semantically-enabled sensor plug & play for the sensor web. Sensors 2011, 11, 7568–7605. [Google Scholar] [PubMed]
- Delin, K.A.; Jackson, S.P. The Sensor Web: A New Instrument Concept. In Proceedings of the 2001 Symposium on Integrated Optics: International Society for Optics and Photonics, San Jose, CA, USA, 20–26 January 2001; pp. 1–9.
- Leopold, M.; Dydensborg, M.B.; Bonnet, P. Bluetooth and sensor networks: A reality check. In Proceedings of the 1st International Conference on Embedded Networked Sensor Systems, Los Angeles, CA, USA, 5–7 November 2003; pp. 103–113.
- Hill, J.; Szewczyk, R.; Woo, A.; Hollar, S.; Culler, D.; Pister, K. System architecture directions for networked sensors. ACM SIGOPS Oper. Syst. Rev. 2000, 34, 93–104. [Google Scholar] [CrossRef]
- Bluetooth SIG. Available online: http://www.bluetooth.com/Pages/Basics.aspx (accessed on 2 September 2013).
- Ferrari, P.; Flammini, A.; Marioli, D.; Sisinni, E.; Taroni, A. A Bluetooth-based sensor network with web interface. IEEE Trans. Instrum. Meas. 2005, 54, 2359–2363. [Google Scholar] [CrossRef]
- Priyantha, N.B.; Kansal, A.; Goraczko, M.; Zhao, F. Tiny Web Services: Design and Implementation of Interoperable and Evolvable Sensor Networks. In Proceedings of the 6th ACM Conference on Embedded Network Sensor Systems, Raleigh, NC, USA, 4–7 November 2008; pp. 253–266.
- Jazayeri, M.A.; Huang, C.-Y.; Liang, S.H.L. TinySOS: Design and implementation of interoperable and tiny web service for the internet of things. In Proceedings of the First ACM SIGSPATIAL Workshop on Sensor Web Enablement, Redondo Beach, CA, USA, 6–9 November 2012.
- Dixon, C.; Mahajan, R.; Agarwal, S.; Brush, A.J.; Lee, B.; Saroiu, S.; Bahl, V. The Home Needs an Operating System (and an App Store). In Proceedings of the HotNets IX, Monterey, CA, USA, 20–21 October 2010.
- Botts, M. SWE and IoT. Botts Innovative Research, SWE-IoT ad-hoc during OGC TC, March 2012. Available online: http://www.ogcnetwork.net/system/files/SWE_and_IoT_Botts.pdf (accessed on 1 November 2013).
- Fairgrieve, S.; Grumman, N. Sensor Web Standards and the IoT. In Proceedings of the Expanding GeoWeb to IoT Workshop during COM.Geo, Washington, DC, USA, 23–25 May 2011.
- Pirt, B. Bringing IoT to the Mass Market—What should a standard do? IoT Workshop at OGC TC. November 2011. Available online: http://www.ogcnetwork.net/learn/iot_workshop_Nov2011 (accessed on 1 February 2012).
- Percivall, G. Collaborative Development of Open Standards for Expanding GeoWeb to the Internet of Things. In Proceedings of the Expanding GeoWeb to IoT Workshop during COM.Geo, Washington, DC, USA, 24 May 2011.
- Broring, A.; Remke, A.; Lasnia, D. SenseBox—A Generic Sensor Platform for the Web of Things. In Proceedings of the MobiQuitous, Copenhagen, Denmark, 6–9 December 2011; pp. 186–196.
- Resch, B.; Mittlboeck, M.; Lippautz, M. Pervasive Monitoring—An Intelligent Sensor Pod Approach for Standardised Measurement Infrastructures. Sensors 2010, 10, 11440–11467. [Google Scholar] [CrossRef] [PubMed][Green Version]
- Van Dam, T.; Langendoen, K. An adaptive energy-efficient MAC protocol for wireless sensor networks. In Proceedings of the 1st International Conference on Embedded Networked Sensor Systems, Los Angeles, CA, USA, 5–7 November 2003.
- Fielding, R.T.; Taylor, R.N. Principled design of the modern Web architecture. ACM Trans. Internet Technol. (TOIT) 2002, 2, 115–150. [Google Scholar] [CrossRef]
- Kuladinithi, K.; Bergmann, O.; Pötsch, T.; Becker, M.; Görg, C. Implementation of CoAP and its Application in Transport Logistics. In Proceedings of the Extending the Internet to Low power and Lossy Networks (IP+SN 2011), Chicago, IL, USA, 11 April 2011.
- Kovatsch, M.; Duquennoy, S.; Dunkels, A. A Low-Power CoAP for Contiki. In Proceedings of the Eighth IEEE International Conference on Mobile Ad-Hoc and Sensor Systems, Valencia, Spain, 17–22 October 2011; pp. 855–860.
- Curbera, F.; Duftler, M.; Khalaf, R.; Nagy, W.; Mukhi, N.; Weerawarana, S. Unraveling the Web services web: An introduction to SOAP, WSDL, and UDDI. IEEE Internet Comput. 2002, 6, 86–93. [Google Scholar] [CrossRef]
- Moritz, G.; Golatowski, F.; Timmermann, D. A lightweight SOAP over CoAP transport binding for resource constraint networks. In Proceedings of the 2011 IEEE 8th International Conference on Mobile Adhoc and Sensor Systems (MASS), Valencia, Spain, 17–22 October 2011.
- Lerche, C.; Laum, N.; Moritz, G.; Zeeb, E.; Golatowski, F.; Timmermann, D. Implementing Powerful Web Services for Highly Resource-Constrained Devices. In Proceedings of the 7th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), Seattle, WA, USA, 25 March 2011; pp. 332–335.
- Groba, H.; Clarke, S. Web Services on Embedded Systems: A Performance Study. In Proceedings of the 8th IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops), Mannheim, Germany, 29 March–2 April 2010; pp. 726–731.
- Castellani, A.P.; Gheda, M.; Bui, N.; Rossi, M.; Zorzi, M. Web Services for the Internet of Things through CoAP and EXI. In Proceedings of the IEEE International Conference on Communications Workshops (ICC), Kyoto, Japan, 5–9 June 2011; pp. 1–6.
- Efficient XML Interchange (EXI) Format 1.0. W3C Working Draft 2008. Available online: http://www.w3.org/TR/2008/WD-exi-20080919 (accessed on 2 October 2013).
- XML Technology. Available online: http://www.w3.org/standards/xml (accessed on 2 October 2013).
- OGC Web Services Common Standard. Available online: http://portal.opengeospatial.org/files/?artifact_id=38867 (accessed on 19 February 2014).
- Hui, J.W.; Culler, D.E. IP is dead, long live IP for wireless sensor networks. In Proceedings of the 6th ACM Conference on Embedded Network Sensor Systems, Raleigh, NC, USA, 4–7 November 2008; pp. 15–28.
- Duquennoy, S.; Grimaud, G.; Vandewalle, J.J. The Web of Things: Interconnecting Devices with High Usability and Performance. In Proceedings of the International Conference on Embedded Software and Systems (ICESS ’09), Hangzhou, China, 25–27 May 2009; pp. 323–330.
- Kindberg, T.; Barton, J.; Morgan, J.; Becker, G.; Caswell, D.; Debaty, P.; Gopal, G.; Frid, M.; Krishnan, V.; Morris, H.; et al. People, places, things: Web presence for the real world. Mob. Netw. Appl. 2002, 7, 365–376. [Google Scholar] [CrossRef]
- Luckenbach, T.; Gober, P.; Arbanowski, S.; Kotsopoulos, A.; Kim, K. TinyREST—A protocol for integrating sensor networks into the internet. In Proceedings of the Workshop on Real-World Wireless Sensor Network (REALWSN), Stockholm, Sweden, 20–21 June 2005.
- Drytkiewicz, W.; Radusch, I.; Arbanowski, S.; Popescu-Zeletin, R. pREST: A REST-based protocol for pervasive systems. In Proceedings of the IEEE International Conference on Mobile Ad-hoc and Sensor Systems (MASS’04), Lauderdale, FL, USA, 25–27 October 2004; pp. 340–348.
- Smith, C.U.; Woodside, M. Performance validation at early stages of software development. In System Performance Evaluation: Methodologies and Applications; Performance 99: Istanbul, Turkey, 1999. [Google Scholar]
- Pfister, C. Getting Started with the Internet of Things; Maker Media Inc.: Sebastopol, CA, USA, 2011; pp. 30–100. [Google Scholar]
- Lynch, G.S. Single Point of Failure: The 10 Essential Laws of Supply Chain Risk Management; ISBN 978-0-470-42496-4. John Wiley and Sons: Hoboken, NJ, USA, 7 October 2009. [Google Scholar]
- Al-Alawi, A.I. Wi-Fi technology: Future market challenges and opportunities. J. Comput. Sci. 2006, 2, 13–18. [Google Scholar]
- Jazayeri, M.A.; Liang, S.H.L. Security and Privacy: Two Prominent Aspects for the Internet of Things. In Proceedings of the Spatial Knowledge and Information Canada Conference, Banff, AB, Canada, 7–9 February 2014.
© 2015 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/4.0/).