Teniendo en cuenta lo anterior, se presenta la vista estática de la arquitectura ( Figura 3). Esta arquitectura fue inferida a partir del estado del arte y de los elementos identificados para el establecimiento del modelo de interacción semántica propuesto.
Figura 3. Vista Estática de la Arquitectura Propuesta
La arquitectura propuesta une los conceptos más importantes presentados, además de las perspectivas de solución. La arquitectura es orientada a servicios, conducida por un modelo semántico y distribuida en capas bien definidas. La explicación de cada una de las capas y elementos que intervienen se describe a continuación: Capa de objetos: Esta es la capa del dispositivo físico que puede ser conectado
a Internet, disponible en la web, en donde los objetos pueden ser etiquetados con RFID, enviar información a través de sensores (Ej. Arduino), ser dispositivos inteligentes como teléfonos móviles, tarjetas y objetos, que a su vez se conectan con varios tipos de sensores/actuadores para interactuar con su entorno. De acuerdo con los conceptos presentados anteriormente en esta capa se tienen dispositivos inteligentes y sus respectivas EI.
Capa Middleware: Esta capa puede utilizar cualquier middleware o servidor IoT existente que exponga un API de programación con las siguientes características mínimas:
- Debe permitir el acceso a los datos y metadatos de cualquier objeto que tenga relacionado utilizando esquemas estandarizados como XML o JSON. - Debe permitir realizar búsquedas de objetos por metadatos o palabras clave. Con ello, la arquitectura delega el problema de heterogeneidad al middleware
diferentes funcionalidades y capacidades que no ameritan la construcción de uno personalizado. El middleware proporciona la primera información de los RIoT que existen en el entorno.
Capa de Objeto Semántico: En esta capa lo primero que se crea es una interfaz en formato de servicio web, en la que se implementan operaciones básicas que se debe desarrollar para cada middleware diferente del que provengan los objetos, las operaciones básicas definidas son:
- empujarDatos (id, medición): permite registrar en el middleware nuevas mediciones provenientes de los sensores relacionados con el dispositivo. El “id” corresponde al identificador del sensor que le da el middleware
seleccionado y “medición” corresponde a los datos en el formato que lo pide el API del middleware seleccionado.
- tirarDatos (id, medición): realiza una solicitud de los datos crudos reportados en un intervalo de tiempo por los sensores del dispositivo. El “id” corresponde al identificador del sensor que le da el middleware seleccionado y “medición” corresponde a los parámetros de rango de fechas en el formato que lo pide el API del middleware seleccionado.
- leerMetadatos (id): realiza una petición al middleware sobre el archivo de descripción del dispositivo. El formato en lo posible debe ser JSON. El “id” corresponde al identificador del sensor que le da el middleware seleccionado. - ejecutarAcción (id, acción): realiza una petición de cambio de estado de un actuador del dispositivo. No todos los middleware soportan esta funcionalidad y puede ser que esta interface no se pueda desarrollar. El “id” corresponde al identificador del sensor que le da el middleware seleccionado y “acción” corresponde al comando que recibe el dispositivo en el formato
que lo pide el API del middleware seleccionado.
Estas operaciones (métodos) permitirán posteriormente realizar el proceso de indexación semántica y anotación semántica mediante la creación de objetos semánticos.
Esta capa también crea una vista digital de cada de los objetos que están conectados al sistema. Se crea la vista digital para un conjunto de metadatos adaptados a la ontología del objeto semántico propuesto. Después se lleva a cabo un proceso de indexación semántica de cada uno de los objetos y sus funciones, mediante la aplicación de los conceptos de recuperación de información, de modo que las aplicaciones, los objetos y las personas pueden hacer preguntas sobre ellos cuando tienen una necesidad de información específica. Por último, la misma identificación de objetos se almacena como un servicio web semántico para su uso. Para cada contexto de consulta existe un índice semántico, que puede indexar los mismos objetos semánticos, pero para diferentes propósitos.
La red semántica se modela con RDF y OWL que se almacenan en una base de conocimientos de ontologías–BCO, las cuales permiten inferencias sobre la red
social de los objetos y las personas. Las ontologías identificadas pueden ser de objetos, de interacciones, de personas y de dominio específicos. Sin embargo, como el modelo también se ocupa de la gestión de perfiles de usuario, esta información se puede almacenar en ontologías. Las ontologías deben ser dinámicas de acuerdo al contexto de información.
Capa de Servicio: Esta capa permite exponer las funcionalidades de los objetos semánticos y de contexto a las aplicaciones y a la red social de objetos y personas a través de servicios web. Toda la información almacenada en el índice semántico es encapsulada y expuesta a través de servicios web, así es posible que las aplicaciones, personas e incluso otros objetos puedan consumir los metadatos, datos y demás información de contexto de una manera interoperable y transparente. Esta capa también permite proveer la información y servicios necesarios para soportar diferentes escenarios de interacción semántica M2M y M2H. La interfaz define los siguientes grupos de métodos estandarizados para su consumo:
- Los servicios básicos del índice son métodos basados en consultas que usan lenguaje natural para retornar los sensores que concuerdan con la información requerida. Por ejemplo el método buscar(consulta, idioma), retorna un conjunto de resultados (sensores), ordenados por relevancia, la relevancia depende del modelo de similitud semántica que aplica el indexador, opcionalmente puede especificar el idioma de búsqueda, para esto la ontología, debe tener sinónimos en los conceptos en el idioma requerido los cuales se describen como labels.
- Los servicios de geolocalización se desarrollan sobre la base del API de Geonames y la información contenida en sus bases de datos. Los servicios desarrollados en el índice permiten la obtención de lugares cercanos basados en texto en lenguaje natural que se tiene que ser un lugar, así como los lugares cerca de una ubicación geo-posicional designado y las divisiones políticas relacionadas, con el fin de encontrar las áreas donde los sensores se encuentran. Por ejemplo obtenerConsultaCiudades(consulta), esta función busca cuales conceptos corresponden a un lugar geográfico dependiendo de los sensores que satisfacen la consulta en lenguaje natural provista.
- Los servicios web de los sensores permiten encapsular a los servicios REST del servidor IoT, para el caso de estudio se utilizó el servidor Xively. Se crean métodos como obtener metadatos y datos de los sensores en formato JSON y con la posibilidad de establecer un rango de tiempo en la consulta de datos. Por ejemplo obtenerJSONSensor(idSensor), esta función permite obtener Información de metadatos en formato JSON directamente del servidor Xively. Se debe crear un servicio por cada middleware
seleccionado párrafo indexación.
- Por último, los servicios contextualesdel caso de estudio, estos servicios dependen del caso de estudio en particular. Por ejemplo, para el caso de contaminación ambiental se construyeron servicios a la medida. Los servicios permiten la identificación de los biotopos a partir de los datos geo
posicionales de los sensores devueltos como resultado de la consulta. También proporciona métodos para el análisis de las diferentes variables de la ontología elegida y para la categorización de los sensores que se encuentran en cada variable. Los métodos se encuentran con más detalle en el anexo 5 del caso de estudio. Estos métodos se debe crear para cada contexto de información y hecho a la medida de las necesidades de las aplicaciones.
Capa de Aplicación: Esta capa, que permite a las aplicaciones distribuidas utilizar mashups de Web 3.0 y Telco 3.015, integrar diversos objetos y personas
para generar nuevos servicios de información, incluyendo los nuevos dispositivos que se pueden crear para reutilizar esta infraestructura. Estas aplicaciones pueden acceder directamente a los servicios de los objetos a través de una consulta al índice semántico, que presentará los objetos y sus servicios más adecuados para su uso, en orden de relevancia. Los objetos de la IoT, que se pueden beneficiar de esta capa son los smart-*, los cuales pueden iniciar procesos de interacción con otros sensores y dispositivos.
Red social de cosas y personas: Esta es la capa más compleja de la arquitectura propuesta, ya que se debe integrar varios conceptos que se discutieron en la definición del modelo conceptual. Sus componentes y funciones son:
- Cada objeto semántico tiene autonomía en esta red social, ya que contiene en sí mismo, toda la información y los conocimientos necesarios para interoperar con otros objetos semánticos.
- La red social puede generar nuevos servicios que se deben mostrar en el repositorio de servicios web semánticos, de modo que otros objetos y aplicaciones pueden utilizarlos.
- En esta capa se pueden implementar los mecanismos sociales, ya sea publicando en una red social existente o creando una interfaz que permita enviar y recibir los mensajes de interacción.
- En esta capa se debe trabajar también lo relacionado a la seguridad y privacidad, inicialmente se pueden conceder permisos a través de la misma red social; sin embargo deben estar relacionados al middleware seleccionado en las capas inferiores.
- Se pueden desarrollar interfaces transparentes con técnicas de realidad aumentada con el fin de facilitar los procesos de interacción M2M y M2H.
15 Es una propuesta que se hace cuando los servicios de telecomunicaciones y la Web 3.0 trabajen en servicios conjuntos e interoperables.