||This study proposes the design and implementation of a RESTful Smart IoT middleware, named ACAN. IoT middleware is a software between the operation system and the application； it can be used to bridge heterogeneous devices and applications, and can provide users with more system services. ANCA has the following design goals: device management, interoperability, platform portability, context awareness, data logging, and security/privacy. The “device management” goal is to allow users to register for smart objects and control their access. The “interoperability” goal is to make devices using the Message Queuing Telemetry Transport (MQTT) protocol and the Constrained Application Protocol (CoAP) communicate with the middleware. The goal of “platform portability” is to allow ACAN to run on any Linux-like platform supporting the Python language. The goal of “context awareness” is to allow ACAN to automatically select between MQTT and CoAP when receiving RESTful commands from users. The goal of “data logging” is to allow users to keep a certain number of historical data. The goal of “security” is to use the Secure Sockets Layer (SSL) to encrypt packets for preventing data theft. The goal of “privacy” is to incorporate proper access control to prevent data from unauthorized accesses. This study also implements ACAN design on an Intel i7 PC, and sets up a website for creating user accounts for smart object registration and access control management. In addition, the study also realizes some smart objects by using Raspberry Pi boards equipped with temperature sensors, humidity sensors, and light-emitting diodes to verify if the ACAN implementation reaches all design goals.|
|| L. Atzori, A. Iera, G. Morabito, “The Internet of Things: A survey”, Computer Networks, Vol. 54, Issue 28 October 2010, pp. 2787–2805.|
 S. Bandyopadhyay, M. Sengupta, S. Maiti, S. Dutta, “A Survey of Middleware for Internet of Things” , WiMo/CoNeCo 2011, CCIS 162, 2010, pp. 288–296.
 Organization for the Advancement of Structured Information Standards, “MQTT Version 3.1.1 PLUS Errata 01”, 10 December 2015.
 U. Hunkeler, H. L. Truong, A. S. Clark, “MQTT-S – A Publish/Subscribe Protocol For Wireless Sensor Networks”, Communication Systems Software and Middleware and Workshops, 2008. COMSWARE 2008. 3rd International Conference on, 6-10 January 2008.
 Internet Engineering Task Force “The Constrained Application Protocol”, June 2014.
 V. Karagiannis, P. Chatzimisios, F. Vazquez-Gallego, J. A. Zarate, ”A Survey on Application Layer Protocols for the Internet of Things”, Transaction on IoT and Cloud Computing, Vol. 1, No. 1, January 2015.
 R. T. Fielding, “Architectural Styles and the Design of Network-based Software Architectures”, University of California, 2000.
 E. Rescorla, “SSL and TLS: Designing and Building Secure Systems”, 2000.
 R. Sandhu, E. Coyne, H. Feinstein, C. Youman, “Role-based access control models”, IEEE Computer, Vol. 29, No. 2, February 1996, pp. 38-47.
 Wiki,” Comma-separated values”
 M. Owens, “The Definitive Guide to SQLite”, 2006.
 R. Light, “Mosquitto-an Open Source MQTT v3.1 Broker , 2013.
 M. Grinberg, “Flask Web Development: Developing Web Applications with Python”, April 2014
 European Commission, “Networked Embedded System middleware for Heterogeneous Physical”, Sixth Framework Programme, September 2005.
 V. Terziyan, O. Kaykova, D. Zhovtobryukh, “UbiRoad: Semantic Middleware for Cooperative Traffic Systems and Services”, International Journal On Advances in Intelligent Systems, Vol.3, No.3 and 4, 2010, pp.286-302
 Raspberry Pi, “Model B+ Spec.”
 Github, ”CoAPthon”
 Github, “Adafruit_Python_DHT”
 Github, ” paho.mqtt.python”