CAPITULO 3 MODELO DE INTERACCIÓN SEMÁNTICA EN WOT
3.1.2 Metodología para la creación del modelo
3.1.2.3 Paso 3: Definir diferentes niveles de abstracción del modelo
3.1.2.3.6 Vista de Servicios del Modelo
Para la vista de servicios se decidió utilizar la metodología SOMF y la herramienta
Enterprise Architect Modeling Tool. El objetivo es definir los servicios que debe exponer el modelo de interacción semántica para que los OS puedan compartir su funcionalidad con otros OS.
3.1.2.3.6.1 Metodología de Creación de Servicios
Se basa en service-oriented methodology framework - SOMF. Se parte del ciclo de vida de los servicios, las características del negocio, escenarios de calidad y el marco de referencia de los conceptos especializados descritos más arriba. En general se modelan tres etapas:
1. Conceptualización de Servicios 2. Análisis de Servicios
3.1.2.3.6.2 Conceptualización de Servicios
Para la conceptualización se han utilizado los tres diagramas de SOMF. El primero de los diagramas es el modelo conceptual de atributos que se presenta en la siguiente Figura 15:
Unifica los atributos del comportamiento colaborativo y de los objetos compartibles en el descubrimiento de nuevos conceptos de niveles superiores. En la Tabla 7, se describen los nuevos conceptos:
Concepto Descripción
Contrato Colaboración
Dos de los objetivos comunes por defecto son: que exista un contrato de colaboración mutua y una confianza en los datos recibidos.
Contextualización Para el logro de los objetivos comunes debe existir un sentido de
pertenencia el cual se logra trabajando en el mismo contexto. Capacidades de colaboración
Un objeto semántico tiene las capacidades para colaborar con otros, cuando reúne las características de altruismo, reputación, confianza mutua y reciprocidad.
Utilizable
Un objeto semántico que se puede compartir, localizar y acceder es completamente utilizable por otro. La durabilidad, permitirá establecer cuánto tiempo puede ser usado el mismo.
Apropiable Es un objeto semántico que puede ser migrado, archivado y
personalizado en otra plataforma para su uso particular. Colaboración
La colaboración se logra cuando los objetos semánticos han definido un contrato de colaboración en un contexto dado. Los objetos deben tener capacidad de colaboración comprobada para poder participar.
Reutilización Es un objeto semántico que expone todas las características para
su reutilización, ya sea utilizándolo o apropiándolo. Objeto Semántico Colaborativo
Es un objeto semántico que tiene todas las características para colaborar con otros y ser reutilizado con el fin de generar sistemas más complejos de servicios.
Tabla 7. Conceptos de Nivel Superior
El segundo diagrama es el modelo de árbol de decisión de atributos. Para este árbol se inicia con la clasificación de Mathew, ya que propone unos atributos reutilizables al modelo semántico de los objetos de la WoT. Posteriormente se relaciona a los atributos descubiertos en el diagrama de la Figura 15. El diagrama se presenta en la Figura 16:
Figura 16. Modelo de Árbol de Decisión de Atributos
En este diagrama (Figura 16), se descubren servicios conceptuales asociados a los diferentes tipos de objetos semánticos, los cuales se describen en la Tabla 8:
Concepto Descripción
Identificación (gestión)
Definición
Servicio que devuelve toda la información de metadatos y capacidades del objeto semántico. Por defecto todos los objetos tienen la capacidad "core", por tanto el servicio admite todos los tipos de objetos. Para compartirlo utiliza una URI única y comandos REST en formato JSON para interactuar, estableciendo servicios de:
GET: Usado para recuperar los datos actuales de las variables de estado del objeto semántico. Ej. temperatura actual
PUT: Usado para actualizar el estado de una variable del objeto semántico o crear variables nuevas en el objeto dando su identificación.
DELETE: Usado para remover un recurso. Se podría borrar el valor de un umbral específico.
Concepto Descripción
POST: Crea un nuevo recurso. Se puede utilizar para colocar un valor de un umbral específico.
OPTIONS: Recupera las operaciones permitidas en el recurso.
Este servicio está ligado al servidor IoT y al índice semántico a construir. También depende de la estrategia de comunicación: Coap o MQTT, así cuando se quiera definir debe establecerse como quedará finalmente el mismo.
Objetos participantes
Todos.
Reutilizar
(Descubrimiento)
Definición
Es un servicio compuesto, que devuelve la información de identificación, más la información necesaria para reutilizar el objeto semántico. Es decir, une el servicio de identificación más el servicio de apropiación junta.
Objetos participantes
Plug, Sticky, Social, Smart
Contextualizar
Definición
Es un servicio que permite definir los objetivos y relacionarlos a un contexto particular. Este contexto puede existir o crearse uno nuevo. Una vez que se adhiere el objeto a un contexto este hace parte de la comunidad de objetos del mismo contexto. El objeto puede estar varios contextos a la vez.
La identificación del objeto tiene unos elementos básicos de contextualización que de por si indican algo de los mismos y por ello cualquier objeto se puede contextualizar, solo que en diferentes niveles.
El contexto empieza desde la identificación del usuario o propietario del objeto.
Objetos participantes
Todos los objetos.
Apropiación
Definición
Es un servicio compuesto que permite:
Archivar: Recibe la información de metadatos del objeto en un formato compacto, para su transferencia y posterior almacenamiento local.
Migrable: Contiene la información de su construcción, descripción del sistema, plataformas y código fuente para su construcción.
Personalización: Almacenar en el objeto semántico de las personas sus intereses u objetivos relacionados al contexto.
Objetos participantes
Plug, Sticky, Social, Smart
Colaborar
Definición
Es la unión de la información de contextualización y contrato de colaboración. Esta información se puede presentar en diferentes formas con el fin de establecer las redes de objetos que se forman a partir de las colaboraciones de otros. También define los algoritmos, medidas y elementos que debe tener en cuenta para una colaboración efectiva.
Objetos participantes
Social, Smart Contrato
Definición
Para que se realice un contrato entre dos o más objetos es necesario que estén en el mismo contexto y persigan objetivos iguales. El contrato define las interfaces de colaboración y el ECA (evento, condición, acción) correspondiente.
Concepto Descripción
Objetos participantes
Social, Smart
Tabla 8. Tipos de Datos Semánticos
Finalmente se presenta el diagrama conceptual de asociación, el cual permite establecer las relaciones entre los diferentes servicios conceptuales identificados, a la vez que se describen los servicios atómicos y los compuestos. La Figura 17, muestra el diagrama:
Figura 17. Diagrama Conceptual de Asociación
La descripción de cada uno de los servicios identificados y sus usuarios se presenta en la Tabla 9.
Servicio Descripción
srvReutilización Es una clasificación superior de servicios relacionados a la posibilidad de ser objetos reutilizables.
srvIdentificación
Servicio Compuesto de Identificación. El cual dependiendo de las funcionalidades del objeto permite realizar operaciones básicas de gestión de información del OS.
srvApropiación Es un servicio compuesto que permite establecer los métodos necesarios para que se apropie el objeto semántico.
Servicio Descripción
srvContrato
Es un servicio que permite formar comunidades de objetos semánticos que se encuentran en un mismo contexto. Define los prototipos de los cuales va a recibirDatos, recibirInformación y recibirComandos.
srvColaborar
Es un servicio que agrupa a la contextualización y al contrato. Adiciona funcionalidades de presentación de datos e información adecuados dependiendo del objeto que solicita la colaboración.
srvContextualización Es un servicio compuesto que define una serie de servicios para el manejo del mismo.
srvContextoPrimario Es un tipo de contexto que viene dado por datos directos de las variables de estado de los objetos semánticos
srvContextoSecundario Son servicios que pre-procesan los datos de las variables de estado de los objetos semánticos y permiten enviar información relevante
srvIdentificador
Retorna un documento JSON o XML con la información de metadatos del objeto y sus capacidades. Cuando se trata de servicio de contexto responde al "Who" Ej. RFID, para el secundario retorna la información adicional relacionada al objeto semántico.
srvEnviarDatos Servicio que retorna el dato actual de una de las variables de estado del objeto semántico.
srvEnviarComando Este servicio recibe una petición con el fin de realizar un cambio en el estado del objeto semántico.
srvEnviarEstado
Este servicio retorna información del tipo de objeto con el fin de establecer las capacidades del objeto semántico. Adicionalmente retorna una lista de variables de estado y sus datos actuales.
srvArchivar
Envía toda la información del objeto semántico empaquetado en un archivo comprimido el cual puede ser almacenado localmente por el cliente para su posterior uso y reutilización.
srvMigrar Es un servicio que retorna la información sobre la construcción misma del
objeto semántico, descripción del sistema, plataformas y código fuente.
srvPersonalizar
Retorna los atributos personalizables y almacena las mismas en el origen del objeto siempre y cuando lo soporte. Si no puede almacenarlos en el origen, los almacena localmente para enviarlos como parámetros de personalización al objeto. Para los servicios de contexto corresponde a la captura de información de personalización con un usuario particular Ej. Enviar alerta cuando temperatura = 30. Para el secundario puede ser más complejo y responder a fórmulas matemáticas hechas con las variables personalizables.
srvLocalización
Es un servicio que permite utilizar datos que responden a "Dónde" se encuentra el objeto semántico y los datos relacionados. Ej. GPS para el primario y distancia entre dos sensores para el secundario.
srvTiempo Retorna información del "cuándo" sucede el evento. Ejemplo tiempo. Para el secundario puede calcular tiempo transcurrido entre eventos
srvActividad
Es un servicio que permite establecer un evento o suceso que ocurre en el entorno del objeto semántico. Ej. Abre una puerta. Para el secundario puede ser predecir las acciones del usuario.
srvGestionContexto Es un servicio que define contextos y permite relacionar los mismos a los objetos semánticos específicos.
srvObjetivos
Permite definir objetivos en un contexto particular. El objetivo es una operación ECA y el contexto esta dato por los servicios de localización, tiempo y actividad comunes a varios objetos semánticos. Define los indicadores de calidad que se utilizarán para medir los objetivos.
ObjetoSemantico Es un cliente que se representa así mismo y es también fuente de servicios y solicitud de servicios
Servicio Descripción
ClienteWeb Este cliente puede ser un humano o una aplicación web que solicita los servicios de personalización.
Tabla 9. Servicios y Usuarios Identificados
3.1.2.3.6.3 Análisis de Servicios
Se realiza un análisis contextual y estructural combinado en un sólo diagrama (Figura 18), con el fin de identificar las relaciones de los servicios específicos:
Figura 18. Diagrama Relaciones de los servicios
En este diagrama, el concepto de los servicios es el mismo que del modelo conceptual anterior, pero aparece un clúster de servicios de objetos semánticos, el cual permitirá el acceso a todos los servicios a los objetos semánticos mismos. Adicionalmente se definen de manera lógica las relaciones de los servicios, estableciendo las agregaciones y las generalizaciones correspondientes. Esto permitirá orientar la construcción de los servicios y como éstos se reutilizan entre sí.
3.1.2.3.6.4 Diseño de Servicios
Figura 19. Modelo de Composición de Servicios
Se ha decidido utilizar el modelo de composición (Figura 19), con el fin de mostrar claramente en que puntos los usuarios del sistema hacen uso de los servicios (Cliente OS y Cliente Web). No se hace el diagrama lógico, ya que es igual al diagrama de análisis y no se desean hacer complejos los servicios a proveer por parte del objeto semántico. También se evitó utilizar el diagrama de transacciones, con el fin de no hacer más complicada la definición de los servicios encontrados.