https://doi.org/10.22463/2011642X.2783
Recibido: 20 de abril de 2021 - Aprobado: 4 de noviembre de 2021
Cómo citar:
Z. J. Ibarra-Cuevas & F. E. Martínez-Pérez, “Protocolo de comunicación inteligente para una arquitectura enfocada en internet de las cosas como solución a desafíos de interoperabilidad”, Revista Ingenio, vol. 19(1), pp. 9-15, 2022
El objetivo del Internet de las Cosas es contar con sensores inteligentes colaborando directamente sin participación humana, habilitando a los objetos físicos para ver,escuchar y pensar de forma que se les permita compartir información y coordinar decisiones.Actualmente existen protocolos de comunicación para Internet de las Cosas que cumplen con ciertos requisitos que éste demanda, sin embargo, pocos son los trabajos que permiten un procesamiento inteligente de la información, dejando este análisis a cargo de otros componentes de la arquitectura.En este trabajo se propone un protocolo de comunicación para una arquitectura enfocada en Internet de las cosas con base en la transferencia de estado representativo (REST, Representational State Transfer) combinado con la metodología publicar/suscribir con infraestructura de servicio de mensajería.El protocolo puede administrar una gran cantidad de dispositivos, cuenta con un formato de mensaje compacto para que requiera poca capacidad de procesado, utiliza el lenguaje de programación Java pensando en la interoperabilidad, usa sockets para hacer posible que haya un gran número de comunicaciones simultaneas e implementa agentes inteligentes para la construcción de mensajes significativos para la toma de decisiones.
Palabras clave: Agentes Inteligentes, Arquitectura de tres capas, Arquitectura Orientada a Servicios, Internet de las Cosas, Protocolo de Comunicación
The goal of the Internet of Things is to have smart sensors collaborating directly without human participation, enabling physical objects to see, hear and think in a way that allows them to share information and coordinate decisions.Currently, there are communication protocols for the Internet of Things that meet certain requirements that it demands, however, few are the jobs that allow intelligent information processing,leaving this analysis in charge of other components of the architecture.In this work,a communication protocol is proposed for an architecture focused on the Internet of Things based on Representational State Transfer (REST) combined with the publish/subscribe methodology with messaging service infrastructure.The protocol can manage a large number of devices, has a compact message format so that it requires little processing capacity, uses the Java programming language with interoperability in mind, uses sockets to allow a large number of simultaneous communications and implements intelligent agents for the construction of meaningful messages for decision making.
Keywords:Intelligent Agents,Three-layer Architecture, Service Oriented Architecture, Internet of Things, Communication Protocol.
En [3-4-5-6] se resalta que uno de los principales retos y objetivos de IoT es lograr la interconexión de múltiples redes y dispositivos para que la recopilación de datos,el intercambio de recursos,análisis y gestión puedan llevarse a través de un medio heterogéneo.Se han propuesto múltiples soluciones para este reto,como las arquitecturas que se presentan en [7-8].El modelo básico de tres capas, la Arquitectura orientada a Servicios(SoA, Service Oriented Architecture),la Arquitectura orientada a Recursos (ROA,Resource Oriented Architecture), el proyecto AKARI, entre otras, son arquitecturas distribuidas de capas donde cada capa tiene su propia funcionalidad para lograr la interconexión.Comúnmente en muchas de estas implementaciones los protocolos que se utilizan en la capa de aplicación son; el Protocolo de aplicación restringida(CoAP, Constrained Application Protocol),el de Transporte de telemetría de cola de mensajes (MQTT, Message Queue Telemetry Transport), el Protocolo extensible de mensajería y presencia (XMPP, Extensible Messaging and Presence Protocol),entre otros [7-8].Sin embargo,ninguna de estas opciones comunica la información de forma inteligente,es decir,se limitan a transmitir todo dato que obtengan del exterior hacia una unidad central de procesamiento.
En [9] se describe una categorización de cuatro tipos de servicios que debe brindar IoT; (1) los Servicios relacionados con la Identidad son de los más básicos e importantes ya que se encargan de dar un mecanismo para poder identificar a los objetos del mundo real.(2) Los Servicios de Agregación de Información recopilan los datos provenientes del exterior.(3) Los Servicios de Colaboración Consciente se encargan de analizar los datos de los servicios de agregación para una toma de decisiones.Y finalmente los (4) Servicios Generalizados tienen como objetivo proporcionar la información obtenida por los servicios de colaboración consciente a cualquier persona, en cualquier momento y desde cualquier lugar.
La mayoría de los protocolos de aplicación anteriormente mencionados proporcionan únicamente servicios relacionados con la Identidad y Agregación de Información.Por lo que en el presente trabajo se desarrolla un protocolo de comunicación que conecte las entidades involucradas en una Arquitectura enfocada en Internet de las Cosas añadiendo servicios más valiosos.Dichas entidades además de encargarse de brindar los servicios básicos de Identidad y de Agregación de Información,también se busca que sea posible proporcionar Servicios de Colaboración Consciente y Servicios Generalizados dotando de cierta inteligencia a los objetos físicos.Con la combinación de estos servicios se busca que los objetos sean capaces de tomar decisiones para hacer que el sistema sea valioso proporcionando información útil a los usuarios.
El documento está organizado de la siguiente manera:en la sección dos se discuten trabajos y desafíos relacionados con la investigación.En la sección tres se describe la metodología utilizada,se abordan los antecedentes del proyecto y se describe a detalle los elementos de la arquitectura y las características del protocolo de comunicación desarrollado.La sección cuatro expone los resultados que se obtuvieron al implementar el protocolo de comunicación desarrollado usando la arquitectura previamente descrita.En la sección seis se discuten los resultados obtenidos.Finalmente,la sección siete concluye el documento.
2. Trabajo RelacionadoEn el cómputo de borde y niebla los datos masivos generados por diferentes tipos de dispositivos de IoT se pueden procesar en el borde de la red en lugar de transmitirlos a una infraestructura de nube centralizada [5].Esto con el objetivo de que el proceso de análisis de la información esté más cerca del origen de ésta,es decir,de los dispositivos finales y de los usuarios (Figura 1).
Dentro de los desafíos para IoT se identifican diversas áreas y perspectivas hacia futuras investigaciones como las descritas en [3].En [5] se plantea la integración de cómputo de borde y niebla con IoT, y en [10] se describen diferentes arquitecturas,modelos y aplicaciones de cómputo de borde en IoT.Nuestra investigación se centra en proponer una alternativa de solución para los desafíos de Interoperabilidad y para la integración de IoT con computo de borde y niebla.
2.1 InteroperabilidadEsta investigación toma como base el trabajo denominado “Interfaz portable utilizando internet y tecnología orientada a aspectos, para la definición de tareas robotizadas basadas en visión computacional” presentado en [12].Este trabajo propuso desarrollar e implementar una arquitectura que habilita el establecimiento de comunicaciones entre diversos clientes para la liberación de tareas críticas mediante una interfaz gráfica usando Internet.Se investigaron los requerimientos y componentes funcionales necesarios en IoT [2] para realizar las adaptaciones necesarias y de esta forma crear una propuesta de protocolo de comunicación aplicado a la Arquitectura que a continuación se describe.
3.1 Elementos de la Arquitectura y sus característicasExisten dos Interfaces de Programación de Aplicaciones (API,Application Programing Interface)para comunicaciones en IoT[2]:(1) API basada en REST (Representational State Transfer) (2) API basada en WebSocket.En este trabajo se consideraron ambas alternativas para la conexión de diferentes servicios;para establecer comunicación con los dispositivos o “cosas”se utiliza WebSocket y para establecer comunicación con los usuarios finales se utiliza REST,por tal razón,dentro de la entidad de servidor de la Figura 2 puede visualizarse un Servidor WebSocket que se usa para establecer un enlace de red bidireccional entre un “cliente” (Sensor) y un “servidor”.En la misma Figura 2 también se visualiza el Servidor HTTP el cual se utiliza para administrar las conexiones con los usuarios finales.
Para activar el Servidor WebSocket y poder establecer conexión con los sensores,se creó un objeto de tipo ServerSocket y se enlazó al puerto 10578 como se muestra en la Figura 3.De la misma forma se crea un servidor HTTP enlazado al puerto 8080 destinado a responder solicitudes de los usuarios,es decir,brindar la información que los sensores están obteniendo del medio físico.
Se requiere una respuesta rápida a cada uno de los clientes conectados a los dos servidores antes mencionados.Es por ello,que para cada una de las conexiones entrantes se crea una instancia de ServidorHilo que hereda de la clase Thread (Figura 4),para que puedan trabajar independientemente una de otra, es decir, cada dispositivo o usuario,conectado a los Servidores podrá ejecutar acciones paralelamente para dar una respuesta rápida.
El primer bloque de tipos de mensaje (con código que comienza con el número 1 en la Tabla 2)se utilizan para establecer una conexión entre un nuevo dispositivo y el servidor. El último código de este bloque es para desconectase del servidor.El segundo bloque de tipos de mensaje (con código que empieza con el número 2 en la Tabla 2) corresponde a la suscripción a “tópicos” y publicación de información en dichos tópicos,la descripción a detalle de esta forma de comunicar la información se describe en la sub-subsección.
3.2.4 Metodología para IoT.El tercer bloque de tipos de mensaje (con código que comienza con el número 3 en la Tabla 2)tiene como objetivo el establecimiento de administradores.Finalmente,el cuarto bloque de tipos de mensaje (con código que comienza con el número 4 en la Tabla 2)se utiliza para determinar si la conexión con determinado cliente sigue activa.En la Figura 5 se puede visualizar la conexión que se implementó de los contenedores de los Agentes de JADE.El conjunto de estos contenedores crea una Capa de Análisis horizontal a través de los dispositivos en la red,con este modelo,se propone algo diferente a lo que las Arquitecturas actuales de IoT ofrecen,ya que el análisis de los datos del exterior se realiza inmediatamente después de que se obtienen.
En el Servidor HTTP se implementó el manejo de URLs (Localizadores uniformes de recursos) para que los usuarios pudieran solicitar la información fácilmente desde uno de sus dispositivos móviles.La implementación se llevó a cabo en una red local,así que cuando un usuario accede al sitio Web de una URL habilitada en el Servidor HTTP mediante un navegador web o mediante la aplicación móvil, se envía una petición al Servidor HTTP y este responde al cliente enviando una página Web de HTML con la información solicitada.
Como se visualiza en las interfaces graficas (Figura 7 y Figura 8),el Servidor es capaz responder y mostrar eficientemente la información que se obtuvo desde los sensores utilizando el protocolo de comunicación desarrollado dentro del modelo de Arquitectura que también se plantea en este trabajo.
[1] S. Vashi, J. Ram, J. Modi, S. Verma, and C. Prakash, “Internet of Things(IoT):A vision,architectural elements,and security issues,” 2017.Doi:https://doi.org/10.1109/I-SMAC.2017.8058399
[2] R.M. Gomathi,G.H.S. Krishna,E.Brumancia, and Y. M.Dhas,“A Survey on IoT Technologies,Evolution and Architecture,”2018.Doi:https://doi.org/10.1109/ICCCSP.2018.8452820
[3] K.L. M. Ang and J. K. P. Seng, “Application Specific Internet of Things (ASIoTs): Taxonomy, Applications, Use Case and Future Directions,” IEEE Access, 2019. Doi:https://doi.org/10.1109/ACCESS.2019.2907793
[4] B.TORĞUL,L. Şağbanşua, and F. B. Balo,“Internet of Things: A Survey,” International Journal of Applied Mathematics, Electronics and Computers, 2016. Doi:https://doi.org/10.18100/ijamec.267197
[5] J. Lin, W. Yu, N. Zhang, X. Yang, H. Zhang, and W. Zhao, “A Survey on Internet of Things:Architecture, Enabling Technologies,Security and Privacy,and Applications,” IEEE Internet of Things Journal, 2017.Doi:https://doi.org/10.1109/JIOT.2017.2683200
[6] I. Yaqoob et al.,“Internet of Things Architecture:Recent Advances, Taxonomy,Requirements,and Open Challenges,” IEEE Wireless Communications, vol.24(3), pp. 10–16,Jun.2017.Doi:https://doi.org/10.1109/MWC.2017.1600421
[7] A. Čolaković and M. Hadžialić,“Internet of Things (IoT):A review of enabling technologies,challenges,and open research issues,” Computer Networks,vol. 144, pp. 17–39, 2018. Doi: https://doi.org/10.1016/j.comnet.2018.07.017
[8] M. Bharti,R. Kumar, and S.Saxena, “Architectural Survey on Internet-of-Things,”2019.Doi:https://doi.org/10.1109/ICIIP47207.2019.8985897
[9] A. I. A. Ahmed et al.,“Service management for iot:Requirements,taxonomy, recent advances and open research challenges,”IEEE Access,vol.7,pp.155472–155488,2019.Doi: https://doi.org/10.1109/ACCESS.2019.2948027
[10] W.Yu et al.,“A Survey on the Edge Computing for the Internet of Things,” IEEE Access, vol.6,pp. 6900–6919,2018.Doi: https://doi.org/10.1109/ACCESS.2017.2778504
[11] M. Noura,M. Atiquzzaman,and M. Gaedke,“Interoperability in Internet of Things:Taxonomies and Open Challenges,”Mobile Networks and Applications,2019.Doi:https://doi.org/10.1007/s11036-018-1089-9
[12] F. E. Martínez Pérez,“Interfaz portable utilizando Internet y tecnología Orientada a Aspectos,para la definición de tareas robotizadas basadas en visión computacional,” M.S. thesis.Universidad Autónoma de San Luis Potosí, 2005
[13] V. Gazis,“A Survey of Standards for Machine-to-Machine and the Internet of Things,”IEEE Communications Surveys and Tutorials, 2017. Doi: https://doi.org/10.1109/COMST.2016.2592948
[14] G. Fortino, W. Russo, C. Savaglio, W. Shen, and M. Zhou,“Agent-oriented cooperative smart objects:From IoT system design to implementation,” IEEE Transactions on Systems,Man, and Cybernetics:Systems, vol.48(11),pp.1949–1956,2018,doi: https://doi.org/10.1109/TSMC.2017.2780618
[15] I. Luis, F. Gélvez,P. D. Luz, and M. Santos, “Internet de las Cosas:una revisión de vulnerabilidades,amenazas y contramedidas,”Revista Ingenio,vol.17(1), pp. 36–44, 2020.Doi:https://doi.org/10.22463/2011642X.2370
* Estudiante. Correo: a246224@alumnos.uaslp.mx
** Doctor.Correo: eduardo.perez@uaslp.mx