ES2882599T3 - Distribución de eventos en dispositivos de borde - Google Patents

Distribución de eventos en dispositivos de borde Download PDF

Info

Publication number
ES2882599T3
ES2882599T3 ES18721569T ES18721569T ES2882599T3 ES 2882599 T3 ES2882599 T3 ES 2882599T3 ES 18721569 T ES18721569 T ES 18721569T ES 18721569 T ES18721569 T ES 18721569T ES 2882599 T3 ES2882599 T3 ES 2882599T3
Authority
ES
Spain
Prior art keywords
modules
module
declarative
iot
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18721569T
Other languages
English (en)
Inventor
Samuel John George
Cameron William Skinner
Elio Damaggio
Affan Dar
Michael R Yagley
Varun Puranik
Anca Mihaela Antochi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2882599T3 publication Critical patent/ES2882599T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0846Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/009Security arrangements; Authentication; Protecting privacy or anonymity specially adapted for networks, e.g. wireless sensor networks, ad-hoc networks, RFID networks or cloud networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un aparato, que comprende: un servicio de soporte de loT (351; 451), que incluye al menos una memoria (250) adaptada para almacenar datos en tiempo de ejecución para el dispositivo, y al menos un procesador (210) que está adaptado para ejecutar código ejecutable por procesador que, en respuesta hasta la ejecución, hace que el servicio de soporte de IoT (351; 451) realice acciones, que incluyen: almacenar una pluralidad de módulos gemelos (421, 422, 423) que corresponden respectivamente a una pluralidad de módulos (431, 432, 433) de una aplicación de borde (430) en un dispositivo de borde (311, 312, 341, 342, 343; 411), en el que la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos (431, 432, 433), y en el que la pluralidad de módulos (431, 432, 433) se pueden componer juntos en la aplicación de borde (430), y los módulos de la pluralidad de módulos (431, 432, 433) pueden usarse interoperablemente con otros módulos sin alterar la otros módulos; habilitar las comunicaciones entre los módulos de la pluralidad de módulos (431, 432, 433) y el servicio de soporte de loT (351; 451) de acuerdo con un contexto de seguridad común; determinar al menos un módulo de la pluralidad de módulos (431, 432, 433) a modificar añadiendo una regla declarativa, de modo que la regla declarativa haga determinar si se ha disparado un evento y, en respuesta a la activación del evento, comunicar la activación del evento a al menos un objetivo declarativo; y provocar la modificación del al menos un módulo determinado de la pluralidad de módulos (431, 432, 433) añadiendo la regla declarativa.

Description

d e s c r ip c ió n
Distribución de eventos en dispositivos de borde
a n t e c e d e n t e s
El Internet de las cosas ("loT") generalmente se refiere a un sistema de dispositivos capaces de comunicarse a través de una red. Los dispositivos pueden incluir objetos cotidianos como tostadoras, cafeteras, sistemas de termostato, lavadoras, secadoras, lámparas, automóviles y similares. Los dispositivos también pueden incluir sensores en edificios y máquinas de fábrica, sensores y actuadores en sistemas industriales remotos y similares. Las comunicaciones de red se pueden utilizar para la automatización de dispositivos, la captura de datos, el envío de alertas, la personalización de la configuración y muchas otras aplicaciones.
El documento WO 2014 182692 A1 describe un sistema que comprende una pluralidad de dispositivos que se comunican a través de una red de Internet de las cosas (loT). Los dispositivos se pueden adaptar a través de un servicio de adaptación basado en red, en el que la pluralidad de dispositivos que utilizan el servicio de adaptación basado en red corresponde a diferentes clientes, tales como aplicaciones y servicios. El servicio de adaptación puede utilizar factores como, por ejemplo, contenido, contexto, políticas, decisiones previas y eventos al realizar la adaptación. El servicio de adaptación permite formas dinámicas de adaptación entre aplicaciones y servicios.
El documento US 0 005 820 A1 divulga un sistema para virtualizar dispositivos y centros de IoT. En particular, se divulga un servicio de nube de IoT primario registrando dispositivos de IoT propiedad de usuarios que se han suscrito al servicio de nube de IoT primario. El sistema incluye además una lógica de gestión de dispositivos de IoT en el servicio de nube de IoT principal para proporcionar acceso a los datos generados por los dispositivos de IoT primarios y para controlar los dispositivos de IoT que responden a la entrada del usuario. Se describe además que la lógica de gestión de dispositivos de IoT establece un canal de comunicación con un servicio de nube de IoT externo que responde a un usuario que registra uno o más dispositivos de IoT externos controlados por el servicio de nube de IoT externo. Una vez que el servicio en la nube de IoT externo proporciona a la lógica de administración de dispositivos de IoT acceso a uno o más dispositivos de IoT externos, la lógica de administración de dispositivos de IoT genera representaciones virtuales de uno o más dispositivos de IoT externos para permitir el acceso del usuario a la información generada por dispositivos de IoT externos y permitir al usuario controlar los dispositivos de IoT externos a través de las representaciones virtuales.
s u m a r io d e l a d iv u l g a c ió n
Por tanto, el objeto de la presente invención es descentralizar la detección de eventos de forma más eficaz.
Este objeto se resuelve mediante el objeto de las reivindicaciones independientes.
Las realizaciones se definen mediante las reivindicaciones dependientes.
Este resumen se proporciona para presentar una selección de conceptos en una forma simplificada que se describen con más detalle a continuación en la descripción detallada. Este sumario no pretende identificar características clave o características esenciales del tema reivindicado, ni pretende ser utilizado para limitar el alcance del tema reivindicado.
En pocas palabras, la tecnología divulgada generalmente se dirige a la tecnología de IoT. En un ejemplo de la tecnología, se almacenan una pluralidad de módulos gemelos que corresponden respectivamente a una pluralidad de módulos de aplicaciones de borde en una pluralidad de dispositivos de borde. En algunos ejemplos, la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos. En algunos ejemplos, se hace que se modifique al menos un módulo de la pluralidad de módulos agregando una regla declarativa que se determina, de modo que la regla declarativa determina si un evento se ha disparado en función de que se haya determinado que ha ocurrido un evento en particular y, en respuesta al desencadenamiento del evento, comunicar el desencadenamiento del evento a al menos un objetivo declarativo. En algunos ejemplos, el al menos un módulo determinado de la pluralidad de módulos se modifica añadiendo la regla declarativa.
Se apreciarán otros aspectos y aplicaciones de la tecnología descrita al leer y comprender las figuras y la descripción adjuntas.
b r e v e d e s c r ip c ió n d e l o s d ib u j o s
Se describen ejemplos no limitativos y no exhaustivos de la presente divulgación con referencia a los siguientes dibujos. En los dibujos, los mismos números de referencia se refieren a partes similares en las diversas figuras a menos que se especifique lo contrario. Estos dibujos no están necesariamente dibujados a escala.
Para una mejor comprensión de la presente divulgación, se hará referencia a la siguiente descripción detallada, que debe leerse en asociación con los dibujos adjuntos, en los que:
La figura 1 es un diagrama de bloques que ilustra un ejemplo de un entorno adecuado en el que se pueden emplear aspectos de la tecnología;
La figura 2 es un diagrama de bloques que ilustra un ejemplo de un dispositivo informático adecuado según aspectos de la tecnología descrita;
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un sistema;
La figura 4 es un diagrama de bloques que ilustra un ejemplo de un sistema que puede usarse como un subconjunto del sistema de la figura 3;
La figura 5 es un diagrama de flujo que ilustra un proceso de ejemplo para la tecnología de IoT que puede ser realizado, por ejemplo, por un servicio de soporte de IoT; y
La figura 6 es un diagrama de flujo que ilustra un proceso de ejemplo para la tecnología de IoT que se puede realizar, por ejemplo, mediante un dispositivo de borde, de acuerdo con aspectos de la presente divulgación.
d e s c r ip c ió n d e t a l l a d a
La siguiente descripción proporciona detalles específicos para una comprensión profunda y una descripción habilitante de varios ejemplos de la tecnología. Un experto en la técnica comprenderá que la tecnología se puede practicar sin muchos de estos detalles. En algunos casos, las estructuras y funciones bien conocidas no se han mostrado o descrito en detalle para evitar oscurecer innecesariamente la descripción de ejemplos de la tecnología. Se pretende que la terminología utilizada en esta divulgación se interprete de la manera más amplia y razonable, aunque se utilice junto con una descripción detallada de ciertos ejemplos de la tecnología. Aunque se pueden enfatizar ciertos términos a continuación, cualquier terminología que se pretenda interpretar de manera restringida se definirá de manera abierta y específica como tal en esta sección de descripción detallada. A lo largo de la memoria descriptiva y las reivindicaciones, los siguientes términos toman al menos los significados asociados explícitamente en este documento, a menos que el contexto indique lo contrario. Los significados identificados a continuación no limitan necesariamente los términos, sino que simplemente proporcionan ejemplos ilustrativos de los términos. Por ejemplo, cada uno de los términos "basado en" y "basado sobre" no es exclusivo, y es equivalente al término "basado, al menos en parte, en", e incluye la opción de estar basado en factores adicionales, algunos de los cuales pueden no estar descritos en este documento. Como otro ejemplo, el término "vía" no es exclusivo, y es equivalente al término "vía, al menos en parte", e incluye la opción de ser vía factores adicionales, algunos de los cuales pueden no estar descritos en este documento. El significado de "en" incluye "en" y "sobre". La frase "en una realización" o "en un ejemplo", como se usa en el presente documento, no se refiere necesariamente a la misma realización o ejemplo, aunque puede hacerlo. El uso de designadores numéricos textuales particulares no implica la existencia de designadores numéricos de menor valor. Por ejemplo, recitar "un widget seleccionado del grupo que consta de un tercer foo y un cuarto compás" no implicaría en sí mismo que hay al menos tres foo, ni que hay al menos cuatro bar, elementos. Las referencias en singular se hacen simplemente por claridad de lectura e incluyen referencias en plural a menos que se excluyan específicamente las referencias en plural. El término "o" es un operador inclusivo "o" a menos que se indique específicamente lo contrario. Por ejemplo, las frases "A o B" significan "A, B o A y B". Como se usa en este documento, los términos "componente" y "sistema" pretenden abarcar hardware, software o diversas combinaciones de hardware y software. Así, por ejemplo, un sistema o componente puede ser un proceso, un proceso que se ejecuta en un dispositivo informático, el dispositivo informático o una porción del mismo.
En pocas palabras, la tecnología divulgada generalmente se dirige a la tecnología de IoT. En un ejemplo de la tecnología, se almacenan una pluralidad de módulos gemelos que corresponden respectivamente a una pluralidad de módulos de aplicaciones de borde en una pluralidad de dispositivos de borde. En algunos ejemplos, la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos. En algunos ejemplos, se hace que se modifique al menos un módulo de la pluralidad de módulos agregando una regla declarativa que se determina, de modo que la regla declarativa determina si un evento se ha disparado en función de que se haya determinado que ha ocurrido un evento en particular y, en respuesta al desencadenamiento del evento, comunicar el desencadenamiento del evento a al menos un objetivo declarativo. En algunos ejemplos, el al menos un módulo determinado de la pluralidad de módulos se modifica añadiendo la regla declarativa.
Los dispositivos de IoT pueden comunicarse con un servicio de soporte de IoT para recibir servicios de IoT, ya sea comunicándose directamente con el servicio de soporte de IoT o indirectamente a través de uno o más dispositivos intermediarios, como los dispositivos de puerta de enlace. Los dispositivos de borde pueden incluir dispositivos de IoT y/o dispositivos de puerta de enlace. Las aplicaciones en dispositivos de borde pueden componerse de módulos.
En algunos ejemplos, los módulos son reutilizables, por ejemplo, no dependen de estar en un entorno específico. En cambio, los módulos se pueden utilizar con otras combinaciones de módulos, por ejemplo, para formar una aplicación diferente. En algunos ejemplos, cada módulo tiene la "ilusión" de que es el único módulo presente, pero puede comunicarse con otros módulos y con el servicio de soporte de IoT u otro punto final. En algunos ejemplos, las comunicaciones entre cada módulo de una aplicación y con el servicio de soporte de IoT se llevan a cabo de acuerdo con un contexto de seguridad común. En algunos ejemplos, el contexto de seguridad común define un servicio de aprovisionamiento que utilizarán los módulos.
En algunos ejemplos, el servicio de soporte de loT puede realizar modificaciones de aplicaciones iniciadas en la nube en dispositivos de borde. En algunos ejemplos, las modificaciones de aplicaciones en dispositivos de borde se pueden realizar en uno o más módulos del dispositivo de borde, sin volver a implementar toda la aplicación.
La modificación de módulos en dispositivos de borde puede incluir el despliegue de reglas declarativas en dispositivos de borde. Las reglas declarativas pueden incluir reglas que se disparan en función de eventos. Tal regla declarativa puede determinar, con base en la regla, si ha ocurrido un evento en particular. Por ejemplo, un evento puede activarse en función de que la temperatura en una habitación en particular alcance un nivel en particular. La regla declarativa puede hacer que el módulo que incluye la regla declarativa se comunique con uno o más objetivos declarativos en respuesta al desencadenante del evento. Los objetivos declarativos pueden incluir el servicio de soporte de IoT, pero también pueden incluir uno o más dispositivos de borde.
Dispositivos ilustrativos/entornos operativos
La figura 1 es un diagrama del entorno 100 en el que se pueden practicar aspectos de la tecnología. Como se muestra, el entorno 100 incluye dispositivos informáticos 110, así como nodos de red 120, conectados a través de la red 130. Aunque los componentes particulares del entorno 100 se muestran en la figura 1, en otros ejemplos, el entorno 100 también puede incluir componentes adicionales y/o diferentes. Por ejemplo, en ciertos ejemplos, el entorno 100 también puede incluir dispositivos de almacenamiento en red, administradores de mantenimiento y/u otros componentes adecuados (no mostrados). Los dispositivos informáticos 110 mostrados en la figura 1 puede estar en varias ubicaciones, incluso en las instalaciones, en la nube o similares. Por ejemplo, los dispositivos informáticos 110 pueden estar en el lado del cliente, en el lado del servidor o similares.
Como se muestra en la figura 1, la red 130 puede incluir uno o más nodos de red 120 que interconectan múltiples dispositivos informáticos 110 y conectan dispositivos informáticos 110 a la red externa 140, por ejemplo, Internet o una intranet. Por ejemplo, los nodos de red 120 pueden incluir conmutadores, enrutadores, centros, controladores de red u otros elementos de red. En ciertos ejemplos, los dispositivos informáticos 110 se pueden organizar en bastidores, zonas de acción, grupos, conjuntos u otras divisiones adecuadas. Por ejemplo, en el ejemplo ilustrado, los dispositivos informáticos 110 se agrupan en tres conjuntos de servidores identificados individualmente como primer, segundo y tercer conjuntos de servidores 112a-112c. En el ejemplo ilustrado, cada uno de los conjuntos de servidores 112a-112c está acoplado operativamente a un nodo de red correspondiente 120a-120c, respectivamente, que se denominan comúnmente nodos de red "top-of-rack" o "TOR". Los nodos de red TOR 120a-120c pueden entonces acoplarse operativamente a nodos de red adicionales 120 para formar una red informática en una topología jerárquica, plana, de malla u otros tipos adecuados de topología que permita las comunicaciones entre los dispositivos informáticos 110 y la red externa 140. En otros ejemplos, múltiples conjuntos de servidores 112a-112c pueden compartir un único nodo de red 120. Los dispositivos informáticos 110 pueden ser virtualmente cualquier tipo de dispositivo informático de propósito general o específico. Por ejemplo, estos dispositivos informáticos pueden ser dispositivos de usuario como ordenadores de escritorio, ordenadores portátiles, ordenadores de tableta, dispositivos de visualización, cámaras, impresoras o teléfonos inteligentes. Sin embargo, en un entorno de centro de datos, estos dispositivos informáticos pueden ser dispositivos de servidor, tales como ordenadores servidores de aplicaciones, ordenadores servidores de computación virtual u ordenadores servidores de archivos. Además, los dispositivos informáticos 110 pueden configurarse individualmente para proporcionar servicios informáticos, de almacenamiento y/u otros servicios informáticos adecuados.
En algunos ejemplos, uno o más de los dispositivos informáticos 110 es un dispositivo de IoT, un dispositivo que comprende parte o la totalidad de un centro de IoT, un dispositivo que comprende parte o la totalidad de una etapa final de la aplicación, o similar, como se explica en mayor detalle a continuación.
Dispositivo informático ilustrativo
La figura 2 es un diagrama que ilustra un ejemplo de dispositivo informático 200 en el que se pueden practicar aspectos de la tecnología. El dispositivo informático 200 puede ser virtualmente cualquier tipo de dispositivo informático de propósito general o específico. Por ejemplo, el dispositivo informático 200 puede ser un dispositivo de usuario tal como un ordenador de escritorio, un ordenador portátil, un ordenador de tableta, un dispositivo de visualización, una cámara, una impresora o un teléfono inteligente. Asimismo, el dispositivo informático 200 también puede ser un dispositivo servidor tal como un ordenador servidor de aplicaciones, un ordenador servidor informático virtual o un ordenador servidor de archivos, por ejemplo, el dispositivo informático 200 puede ser un ejemplo de dispositivo informático 110 o nodo de red 120 de la figura 1. El dispositivo informático 200 también puede ser un dispositivo de IoT que se conecta a una red para recibir servicios de IoT. Asimismo, el dispositivo informático 200 puede ser un ejemplo de cualquiera de los dispositivos ilustrados o mencionados en las figuras 3-5, como se describe con mayor detalle a continuación. Como se ilustra en la figura 2, el dispositivo informático 200 incluye el circuito de procesamiento 210, la memoria operativa 220, el controlador de memoria 230, la memoria de almacenamiento de datos 250, la interfaz de entrada 260, la interfaz de salida 270 y el adaptador de red 280. Cada uno de estos componentes enumerados anteriormente del dispositivo informático 200 incluye al menos un elemento de hardware.
El dispositivo informático 200 incluye al menos un circuito de procesamiento 210 configurado para ejecutar instrucciones, tales como instrucciones para implementar las cargas de trabajo, procesos o tecnología aquí descritos. El circuito de procesamiento 210 puede incluir un microprocesador, un microcontrolador, un procesador de gráficos, un coprocesador, una matriz de puertas programables en campo, un dispositivo lógico programable, un procesador de señales o cualquier otro circuito adecuado para procesar datos. El circuito de procesamiento 210 es un ejemplo de un núcleo. Las instrucciones mencionadas anteriormente, junto con otros datos (por ejemplo, conjuntos de datos, metadatos, instrucciones del sistema operativo, etc.), pueden almacenarse en la memoria operativa 220 durante el tiempo de ejecución del dispositivo informático 200. La memoria operativa 220 también puede incluir cualquiera de una variedad de dispositivos/componentes de almacenamiento de datos, tales como memorias volátiles, memorias semivolátiles, memorias de acceso aleatorio, memorias estáticas, cachés, memorias intermedias u otros medios utilizados para almacenar información en tiempo de ejecución. En un ejemplo, la memoria operativa 220 no retiene información cuando el dispositivo informático 200 está apagado. Más bien, el dispositivo informático 200 puede configurarse para transferir instrucciones desde un componente de almacenamiento de datos no volátil (por ejemplo, el componente de almacenamiento de datos 250) a la memoria operativa 220 como parte de un proceso de arranque u otro proceso de carga. En algunos ejemplos, se pueden emplear otras formas de ejecución, como la ejecución directamente desde la memoria 250 de almacenamiento de datos, por ejemplo, eXecute In Place (XIP).
La memoria operativa 220 puede incluir 4ta Generación de memoria de doble velocidad de datos (DDR4), 3ra Generación de memoria de doble velocidad de datos (DDR3), otra memoria dinámica de acceso aleatorio (DRAM), memoria de alto ancho de banda (HBM), memoria de cubo de memoria híbrida, memoria apilada en 3D, memoria estática de acceso aleatorio (SRAM), memoria magnetorresistiva de acceso aleatorio (MRAM) , memoria pseudoestática de acceso aleatorio (PSRAM) u otra memoria, y dicha memoria puede comprender uno o más circuitos de memoria integrados en un DIMM, SIMM, SODIMM, Known Good Die (KGD) u otro paquete. Dichos dispositivos o módulos de memoria operativa pueden organizarse según canales, rangos y bancos. Por ejemplo, los dispositivos de memoria operativos pueden acoplarse al circuito de procesamiento 210 a través del controlador de memoria 230 en canales. Un ejemplo de dispositivo informático 200 puede incluir uno o dos DIMM por canal, con uno o dos rangos por canal. La memoria operativa dentro de un rango puede operar con un reloj compartido y una dirección compartida y un bus de comando. Además, un dispositivo de memoria operativo puede organizarse en varios bancos donde un banco puede considerarse como una matriz direccionada por fila y columna. Basándose en tal organización de la memoria operativa, las direcciones físicas dentro de la memoria operativa pueden ser referidas por una tupla de canal, rango, banco, fila y columna.
A pesar de la discusión anterior, la memoria operativa 220 específicamente no incluye ni abarca los medios de comunicación, ningún medio de comunicación ni ninguna señal per se.
El controlador de memoria 230 está configurado para interconectar el circuito de procesamiento 210 con la memoria operativa 220. Por ejemplo, el controlador de memoria 230 puede configurarse para interconectar comandos, direcciones y datos entre la memoria operativa 220 y el circuito de procesamiento 210. El controlador de memoria 230 también puede configurarse para abstraer o gestionar de otro modo ciertos aspectos de la gestión de memoria desde o para el circuito de procesamiento 210. Aunque el controlador de memoria 230 se ilustra como un único controlador de memoria separado del circuito de procesamiento 210, en otros ejemplos, pueden emplearse múltiples controladores de memoria, el controlador o controladores de memoria pueden integrarse con la memoria operativa 220 o similar. Además, los controladores de memoria pueden integrarse en el circuito de procesamiento 210. Estas y otras variaciones son posibles.
En el dispositivo informático 200, la memoria de almacenamiento de datos 250, la interfaz de entrada 260, la interfaz de salida 270 y el adaptador de red 280 están interconectados al circuito de procesamiento 210 mediante el bus 240. Aunque, la figura 2 ilustra el bus 240 como un solo bus pasivo, otras configuraciones, como una colección de buses, una colección de enlaces punto a punto, un controlador de entrada/salida, un puente, otros circuitos de interfaz, o cualquier colección de los mismos también pueden emplearse adecuadamente para interconectar la memoria de almacenamiento de datos 250, la interfaz de entrada 260, la interfaz de salida 270 o el adaptador de red 280 al circuito de procesamiento 210.
En el dispositivo informático 200, la memoria de almacenamiento de datos 250 se emplea para el almacenamiento de datos no volátiles a largo plazo. La memoria de almacenamiento de datos 250 puede incluir cualquiera de una variedad de dispositivos/componentes de almacenamiento de datos no volátiles, como memorias no volátiles, discos, unidades de disco, discos duros, unidades de estado sólido o cualquier otro medio que se pueda utilizar para la almacenamiento no volátil de información. Sin embargo, la memoria de almacenamiento de datos 250 específicamente no incluye ni abarca los medios de comunicación, ningún medio de comunicación ni ninguna señal per se. A diferencia de la memoria operativa 220, el dispositivo informático 200 emplea la memoria de almacenamiento de datos 250 para el almacenamiento de datos no volátiles a largo plazo, en lugar de para el almacenamiento de datos en tiempo de ejecución.
Además, el dispositivo informático 200 puede incluir o acoplarse a cualquier tipo de medio legible por procesador como medio de almacenamiento legible por procesador (por ejemplo, memoria operativa 220 y memoria de almacenamiento de datos 250) y medios de comunicación (por ejemplo, señales de comunicación y ondas de radio). Mientras que el término medio de almacenamiento legible por procesador incluye la memoria operativa 220 y la memoria de almacenamiento de datos 250, el término "medio de almacenamiento legible por procesador", a lo largo de la especificación y las reivindicaciones, ya sea que se use en singular o plural, se define aquí de modo que el término "medios de almacenamiento legibles por procesador" excluye específicamente y no incluye medios de comunicación, ningún medio de comunicación o cualquier señal per se. Sin embargo, el término "medio de almacenamiento legible por el procesador" abarca la memoria caché del procesador, la memoria de acceso aleatorio (RAM), la memoria de registro y/o similares.
El dispositivo informático 200 también incluye la interfaz de entrada 260, que puede configurarse para permitir que el dispositivo informático 200 reciba entradas de los usuarios o de otros dispositivos. Además, el dispositivo informático 200 incluye una interfaz de salida 270, que puede configurarse para proporcionar una salida desde el dispositivo informático 200. En un ejemplo, la interfaz de salida 270 incluye una memoria intermedia de cuadros, un procesador de gráficos, un procesador de gráficos o un acelerador, y está configurada para representar pantallas para su presentación en un dispositivo de visualización visual separado (como un monitor, proyector, ordenador cliente de computación virtual, etc.). En otro ejemplo, la interfaz de salida 270 incluye un dispositivo de presentación visual y está configurada para representar y presentar presentaciones para su visualización. En otro ejemplo más, la interfaz de entrada 260 y/o la interfaz de salida 270 pueden incluir un receptor/transmisor asíncrono universal (UART), una interfaz de periféricos en serie (SPI), un circuito interintegrado (I2C), una entrada/salida de propósito general (GPIO) y/o similares. Además, la interfaz de entrada 260 y/o la interfaz de salida 270 pueden incluir o estar interconectadas con cualquier número o tipo de periféricos.
En el ejemplo ilustrado, el dispositivo informático 200 está configurado para comunicarse con otros dispositivos informáticos o entidades a través del adaptador de red 280. El adaptador de red 280 puede incluir un adaptador de red por cable, por ejemplo, un adaptador Ethernet, un adaptador Token Ring o un adaptador de Línea de Suscriptor Digital (DSL). El adaptador de red 280 también puede incluir un adaptador de red inalámbrico, por ejemplo, un adaptador Wi-Fi, un adaptador Bluetooth, un adaptador ZigBee, un adaptador de Evolución a Largo Plazo (LTE), SigFox, LoRa, Powerline o un adaptador 5G.
Aunque el dispositivo informático 200 se ilustra con ciertos componentes configurados en una disposición particular, estos componentes y disposición son simplemente un ejemplo de un dispositivo informático en el que se puede emplear la tecnología. En otros ejemplos, la memoria de almacenamiento de datos 250, la interfaz de entrada 260, la interfaz de salida 270 o el adaptador de red 280 pueden acoplarse directamente al circuito de procesamiento 210, o acoplarse al circuito de procesamiento 210 a través de un controlador de entrada/salida, un puente u otro circuitos de interfaz. Son posibles otras variaciones de la tecnología.
Algunos ejemplos de dispositivo informático 200 incluyen al menos una memoria (por ejemplo, memoria operativa 220) adaptada para almacenar datos en tiempo de ejecución y al menos un procesador (por ejemplo, unidad de procesamiento 210) que está adaptado para ejecutar código ejecutable por procesador que, en respuesta hasta la ejecución, permite al dispositivo informático 200 realizar acciones.
Sistemas ilustrativos
La figura 3 es un diagrama de bloques que ilustra un ejemplo de un sistema (300). El sistema 300 puede incluir la red 330, así como el servicio de soporte de IoT 351, los dispositivos de IoT 341-343, los dispositivos de puerta de enlace 311 y 312, el dispositivo de servicio de aprovisionamiento 315 y la etapa final de la aplicación 313 y el depósito de módulos 319, que se conectan todos a la red 330. El término "dispositivo de IoT" se refiere a un dispositivo destinado a hacer uso de servicios de IoT. Un dispositivo de IoT puede incluir prácticamente cualquier dispositivo que se conecte a la nube para utilizar los servicios de IoT, incluso para la recopilación de telemetría o cualquier otro propósito. Los dispositivos de IoT incluyen cualquier dispositivo que pueda conectarse a una red para hacer uso de los servicios de IoT. Los dispositivos de IoT pueden incluir objetos cotidianos como tostadoras, cafeteras, sistemas de termostato, lavadoras, secadoras, lámparas, automóviles y similares. Los dispositivos de IoT también pueden incluir, por ejemplo, una variedad de dispositivos en un edificio "inteligente" que incluyen luces, sensores de temperatura, sensores de humedad, sensores de ocupación y similares. Los servicios de IoT para los dispositivos de IoT se pueden utilizar para la automatización de dispositivos, la captura de datos, el envío de alertas y/o la personalización de la configuración. Sin embargo, la lista anterior simplemente incluye algunos de los muchos posibles usuarios de los servicios de IoT. Dichos servicios pueden emplearse para, o junto con, numerosas otras aplicaciones, tanto si dichas aplicaciones se describen en el presente documento como si no. En algunos ejemplos, los dispositivos de IoT 341-343 y los dispositivos de puerta de enlace 311 y 312 son dispositivos de borde, por ejemplo, un dispositivo conectado que no sea un dispositivo de servicio de soporte de IoT o un dispositivo de etapa final en la nube, mientras que el servicio de soporte de IoT 351 es un servicio en la nube y/o dispositivo.
La etapa final de la aplicación 313 se refiere a un dispositivo, o varios dispositivos, como un sistema distribuido, que realiza acciones que permiten la recopilación de datos, el almacenamiento y/o las acciones que se tomarán en función de los datos de IoT, incluido el acceso y control de usuarios, el análisis de datos, visualización de datos, control del almacenamiento de datos, acciones automáticas tomadas en base a los datos de IoT y/o similares. Por ejemplo, la etapa final de la aplicación 313 puede incluir un dispositivo o varios dispositivos que realizan funciones de etapa final en apoyo de los servicios de loT. En algunos ejemplos, al menos algunas de las acciones tomadas por la etapa final de la aplicación pueden ser realizadas por aplicaciones que se ejecutan en la etapa final de la aplicación 313.
El término "servicio de soporte de IoT" se refiere a un dispositivo, o varios dispositivos, como un sistema distribuido, al que, en algunos ejemplos, los dispositivos de IoT se conectan a la red para servicios de IoT. En algunos ejemplos, el servicio de soporte de IoT es un centro de IoT. En algunos ejemplos, se excluye el centro de IoT y los dispositivos de IoT se comunican con una etapa final de la aplicación, directamente o a través de uno o más intermediarios, sin incluir un centro de IoT, y un componente de software en la etapa final de la aplicación funciona como servicio de soporte de IoT. Los dispositivos de IoT reciben servicios de IoT a través de la comunicación con el servicio de soporte de IoT.
En algunos ejemplos, los dispositivos de puerta de enlace 311 y 312 son cada uno un dispositivo o varios dispositivos, como un sistema distribuido. En algunos ejemplos, los dispositivos de puerta de enlace pueden ser dispositivos de borde que sirven como intermediarios de red entre uno o más dispositivos de IoT y un servicio de soporte de IoT.
En algunos ejemplos, el dispositivo de servicio de aprovisionamiento 315 se refiere a un dispositivo, o varios dispositivos, como un sistema distribuido, que realizan acciones para aprovisionar un dispositivo de borde a un servicio de soporte de IoT.
En algunos ejemplos, el depósito de módulos 319 se refiere a un dispositivo, o varios dispositivos como un sistema distribuido, que almacenan módulos para su implementación en dispositivos de borde (por ejemplo, dispositivos de IoT 341-343 y/o dispositivos de puerta de enlace 311 y 312). En algunos ejemplos, el depósito de módulos 319 no se utiliza y los módulos para la implementación en los dispositivos de borde pueden almacenarse en su lugar en el servicio de soporte de IoT 351 o en la etapa final de la aplicación 313.
Cada uno de los dispositivos de IoT 341-343, y/o los dispositivos que comprenden el servicio de soporte de IoT 351 y/o la etapa final de la aplicación 313 y/o los dispositivos de puerta de enlace 311 y 312 y/o el dispositivo de servicio de provisión 315 pueden incluir ejemplos de dispositivo informático 200 de la figura 2. El término "servicio de soporte de IoT" no se limita a un tipo particular de servicio de IoT, sino que se refiere al dispositivo con el que se comunica el dispositivo de IoT, después del aprovisionamiento, para al menos una solución de IoT o servicio de IoT. Es decir, el término "servicio de soporte de IoT", tal como se utiliza en toda la especificación y las afirmaciones, es genérico para cualquier solución de IoT. El término servicio de soporte de IoT simplemente se refiere a la porción de la solución/servicio de IoT a la que se comunican los dispositivos de IoT aprovisionados. En algunos ejemplos, la comunicación entre los dispositivos de IoT y una o más etapa final de aplicaciones se produce con un servicio de soporte de IoT como intermediario. El servicio de soporte de IoT está en la nube, mientras que los dispositivos de IoT son dispositivos de borde. La figura 3 y la descripción correspondiente de la figura 3 en la especificación ilustra un sistema de ejemplo con fines ilustrativos que no limita el alcance de la divulgación.
La red 330 puede incluir una o más redes informáticas, incluidas redes cableadas y/o inalámbricas, donde cada red puede ser, por ejemplo, una red inalámbrica, una red de área local (LAN), una red de área amplia (WAN) y/o una red global como Internet. En un conjunto de LAN interconectadas, incluidas aquellas basadas en arquitecturas y protocolos diferentes, un enrutador actúa como un enlace entre las LAN, lo que permite que los mensajes se envíen de una a otra. Además, los enlaces de comunicación dentro de las LAN suelen incluir par de hilos trenzados o cable coaxial, mientras que los enlaces de comunicación entre redes pueden utilizar líneas telefónicas analógicas, líneas digitales dedicadas completas o fraccionadas, incluidas T1, T2, T3 y T4, redes digitales de servicios integrados (ISDN), líneas de abonado digital (DSL), enlaces inalámbricos que incluyen enlaces por satélite u otros enlaces de comunicaciones conocidos por los expertos en la técnica. Además, los ordenadores remotos y otros dispositivos electrónicos relacionados podrían conectarse de forma remota a LAN o WAN a través de un módem y un enlace telefónico temporal. En esencia, la red 330 incluye cualquier método de comunicación mediante el cual la información pueda viajar entre el servicio de soporte de IoT 351, los dispositivos de IoT 341-343 y/o la etapa final de la aplicación 313. Aunque cada dispositivo o servicio se muestra conectado como conectado a la red 330, eso no significa que cada dispositivo se comunica con los demás dispositivos mostrados. En algunos ejemplos, algunos dispositivos/servicios que se muestran solo se comunican con otros dispositivos/servicios que se muestran a través de uno o más dispositivos intermediarios. Además, otra red 330 se ilustra como una red, en algunos ejemplos, la red 330 puede incluir en su lugar múltiples redes que pueden o no estar conectadas entre sí, con algunos de los dispositivos que se muestran comunicándose entre sí a través de una red de las múltiples redes y otros de los dispositivos mostrados comunicándose entre sí con una red diferente de las múltiples redes.
Como ejemplo, los dispositivos de IoT 341-343 son dispositivos que están destinados a hacer uso de los servicios de IoT proporcionados por el servicio de soporte de IoT, que, en algunos ejemplos, incluye uno o más servicios de soporte de IoT, como el servicio de soporte de IoT 351. Los dispositivos de IoT 341-343 pueden acoplarse al servicio de soporte de IoT 351, directamente, a través de la red 330, a través de un dispositivo de puerta de enlace (por ejemplo, dispositivo de puerta de enlace 312), a través de múltiples dispositivos de puerta de enlace y/o similares.
El sistema 300 puede incluir más o menos dispositivos que los ilustrados en la figura 3, que se muestra solo a modo de ejemplo.
La figura 4 es un diagrama que ilustra un ejemplo de un sistema 400. En algunos ejemplos, el sistema 400 puede emplearse como un subconjunto del sistema 300 de la figura 3. La figura 4 y la descripción correspondiente de la figura 4 en la especificación ilustra un sistema de ejemplo con fines ilustrativos que no limitan el alcance de la divulgación.
En algunos ejemplos, el sistema 400 incluye el dispositivo de borde 411, el servicio de aprovisionamiento 415, el servicio de soporte de IoT 451 y el depósito de módulos 419. El dispositivo de borde 411 puede incluir la aplicación 430 y la aplicación 430 puede incluir los módulos 431-433. El dispositivo de borde 411 puede ser un dispositivo de IoT y/o un dispositivo de puerta de enlace. El servicio de soporte de IoT 451 puede incluir los servicios 471-473 y módulos gemelos 421-423. Aunque no se muestra en la figura 4, en algunos ejemplos, el dispositivo de borde 411 puede comunicarse con el servicio de soporte de IoT 451 a través de uno o más dispositivos intermediarios, tales como dispositivos de puerta de enlace.
En algunos ejemplos, los módulos 431-433 son reutilizables, por ejemplo, no dependen de estar en un entorno específico. En cambio, los módulos se pueden utilizar con otras combinaciones de módulos, por ejemplo, para formar una aplicación diferente. En algunos ejemplos, cada módulo tiene la "ilusión" de que es el único módulo presente, pero puede comunicarse con otros módulos y con el servicio de soporte de IoT u otro punto final. En algunos ejemplos, cada módulo puede actuar de forma aislada de cada uno de los otros módulos. En algunos ejemplos, las comunicaciones entre cada módulo de una aplicación y con el servicio de soporte de IoT se llevan a cabo de acuerdo con un contexto de seguridad común. En algunos ejemplos, el contexto de seguridad común define un servicio de aprovisionamiento que utilizarán los módulos.
En algunos ejemplos, los módulos gemelos 421-423 sirven como una "representación en la nube" de un módulo correspondiente, por ejemplo, los módulos 431-433. En algunos ejemplos, cada módulo gemelo es un conjunto de primitivas aisladas de forma segura que comprenden primitivas de comunicación y sincronización de estado. En algunos ejemplos, cada módulo gemelo incluye metadatos sobre el módulo correspondiente, como qué tipo de módulo es, información diversa sobre el módulo, así como información relevante sobre el dispositivo en el que se encuentra el módulo (por ejemplo, tipo de dispositivo, capacidades , ubicación y/o similares, cuando sea relevante para el módulo). En algunos ejemplos, al menos una porción de cada módulo gemelo se sincroniza con el módulo correspondiente. En algunos ejemplos, los módulos gemelos se pueden consultar y se pueden utilizar para responder consultas sobre el módulo correspondiente. Por ejemplo, se podría realizar una consulta para determinar qué cerraduras inteligentes de una habitación están cerradas, qué luces inteligentes de la habitación están encendidas o cuál es la temperatura de la habitación, y el módulo correspondiente podría responder con la información adecuada.
Cada módulo gemelo puede tener su propio canal de telemetría independiente a su módulo correspondiente. Cuando se agregan o eliminan módulos de los dispositivos, el servicio de soporte de IoT 451 puede actualizarse en consecuencia agregando o eliminando los módulos gemelos correspondientes, por ejemplo, automáticamente. Aunque la figura 4 muestra solo un dispositivo de borde y los módulos gemelos correspondientes para los módulos en el dispositivo de borde, puede haber numerosos dispositivos de borde, y el servicio de soporte de IoT 451 puede almacenar un módulo gemelo correspondiente para cada módulo de cada dispositivo de borde que ha sido provisto con servicio de soporte de IoT 451.
Los servicios 471-473 pueden realizar varias funciones en el servicio de soporte de IoT 451. Los servicios 471-473 pueden comunicarse entre sí, con otros componentes en el servicio de soporte de IoT 451, con módulos gemelos y con módulos (incluidos los módulos 431-433). Los servicios 471-473 pueden incluir, por ejemplo, servicios de análisis, servicios de traducción portátiles, servicios lógicos, servicios de componentes de telemetría, servicios de gestión de módulos, servicios de filtrado, servicios de procesamiento por lotes, servicios de compresión, servicios de aprendizaje automático, servicios de inteligencia artificial (AI) y/o similar.
Los ejemplos de módulos pueden incluir módulos de registro, módulos de telemetría, módulos de análisis, módulos de configuración de AI, módulos de gestión, módulos de filtrado, módulos de procesamiento por lotes, módulos de compresión, módulos de lectores de sensores, módulos de comunicaciones de módulos, módulos de funciones y/o similares. En algunos ejemplos, cada uno de los módulos y cada uno de los servicios y otros elementos de la infraestructura apoyan una noción de módulos de "primera clase". Una noción de módulos de "primera clase" significa que los módulos y servicios reconocen qué es un módulo directamente sin requerir traducción cuando se hace referencia a un módulo. En algunos ejemplos, el uso de módulos como una noción de primera clase hace que la comunicación entre módulos y la comunicación de servicio a módulo sea relativamente simple, porque la comunicación a un módulo puede referirse directamente al módulo al que se comunica. En algunos ejemplos, con una noción de módulos de primera clase, los módulos se pueden empaquetar, hacer referencia y autenticar, y los mensajes se pueden enviar hacia y desde los módulos.
En algunos ejemplos, cada uno de los módulos es independiente. Los módulos se pueden componer y distribuir entre dispositivos en diversas disposiciones sin necesidad de modificar el código interno de los módulos o de los servicios de soporte, incluso entre dispositivos heterogéneos. Por ejemplo, los módulos se pueden agregar y/o eliminar de una aplicación de borde sin requerir modificaciones en el código de ninguno de los módulos. Los módulos se pueden usar en diferentes configuraciones en diferentes aplicaciones de borde, por ejemplo, para que un módulo se pueda reutilizar entre muchas aplicaciones de borde diferentes componiendo aplicaciones de diferentes combinaciones de módulos. En algunos ejemplos, cada módulo tiene, en efecto, la "ilusión" de que es una aplicación completa, y no tiene que tener en cuenta qué más está sucediendo en el dispositivo. Cada módulo puede actuar de forma aislada de otros módulos en el mismo dispositivo. La comunicación declarativa se puede definir hacia y desde módulos individuales, por ejemplo, entre dos módulos y/o entre un módulo y un servicio en la nube. En algunos ejemplos, los módulos se pueden reutilizar en aplicaciones u otras soluciones. Los módulos que componen una aplicación de borde también pueden ser construidos por diferentes partes.
En algunos ejemplos, una aplicación de borde puede estar compuesta por módulos y una funcionalidad de tiempo de ejecución de borde. En algunos ejemplos, la funcionalidad del tiempo de ejecución de borde también puede ser un módulo. En algunos ejemplos, la funcionalidad en tiempo de ejecución puede realizar funciones de administración de módulos, como módulos de configuración, realizar registros y métricas por módulo, enrutamiento de comunicación entre módulos y entre módulos en la nube, administrar capacidades fuera de línea del dispositivo de borde, ayudar en la implementación de módulos en la dirección del servicio de soporte de IoT, y/o similares.
Como se mencionó anteriormente, en algunos ejemplos, cada módulo de una aplicación comparte el mismo contexto de seguridad. En algunos ejemplos, esto puede incluir conectarse de forma segura al mismo punto final, establecer una conexión segura con el mismo servidor seguro con autenticación mutua/bidireccional y/o similares. En algunos ejemplos, el contexto de seguridad compartida también incluye el aprovisionamiento con el mismo proceso o servicio de aprovisionamiento. En algunos ejemplos, hay múltiples canales y múltiples sesiones debido a los múltiples módulos, y cada uno de los múltiples canales se autentica individualmente. Sin embargo, en algunos ejemplos, los múltiples canales comparten la misma conexión segura.
En algunos ejemplos, el aprovisionamiento de un dispositivo de borde se puede realizar como sigue. El dispositivo de borde 411 puede tener un indicador de recursos uniforme (URI) de punto final que se instala en la fábrica. En algunos ejemplos, en el primer encendido y el primer inicio, se garantiza criptográficamente que el dispositivo de borde 411 se conecta al servicio de aprovisionamiento 415 y no a ningún otro lugar. Además, el dispositivo de borde 411 puede almacenar información de identidad sobre sí mismo, así como metadatos opcionales, por ejemplo, metadatos de geolocalización. Además, el servicio de aprovisionamiento 415 puede tener algún método para verificar la identidad del dispositivo de borde 411.
La fuente utilizada para verificar la identidad del dispositivo de IoT 411 puede proporcionar el servicio de aprovisionamiento 415 con metadatos adicionales. El servicio de aprovisionamiento 415 también puede contener reglas y/o un motor de reglas que se utiliza para enrutar la solicitud de aprovisionamiento de un dispositivo de borde a la solución de soporte de IoT correcta. Por ejemplo, una regla puede incluir una definición de que todos los dispositivos de borde dentro de una determinada región geográfica deben ser aprovisionados a una solución de IoT ubicada en una determinada región. El servicio de aprovisionamiento 415 puede configurarse con información sobre cómo conectar un dispositivo a una o más soluciones de soporte de IoT independientes.
Después de que el servicio de aprovisionamiento 415 selecciona un servicio de soporte de IoT 451 para el dispositivo de borde 411, el servicio de aprovisionamiento 411 puede enviar una solicitud para registrarse en el servicio de soporte de IoT 451. La solicitud puede incluir información de conexión asociada con el dispositivo de puerta de enlace 411. El servicio de soporte de IoT 451 puede entonces registrar cada módulo en el dispositivo de borde 411 en un registro en el servicio de soporte de IoT 451. En algunos ejemplos, como parte del registro, el servicio de soporte de IoT 451 crea un identificador separado para cada módulo en el dispositivo de borde 411. Estos identificadores pueden ser utilizados por componentes del servicio de soporte de IoT 451 para mapear canales de comunicación seguros entre el servicio de soporte de IoT y los módulos correspondientes.
En algunos ejemplos, a continuación, la información criptográfica sobre el dispositivo de borde 411 se comunica desde el servicio de soporte de IoT 451 al servicio de aprovisionamiento 415 y, a su vez, la información criptográfica sobre el dispositivo de borde 411 se comunica desde el servicio de aprovisionamiento 415 al dispositivo de borde 411. Como parte de esta comunicación, el servicio de soporte de IoT 451 puede poner en cola los comandos para el dispositivo de borde 411, o los comandos de cola que se enviarán para que el dispositivo de borde 411 se complete posteriormente. En un ejemplo, esto completa el proceso de aprovisionamiento. La información criptográfica también puede incluir credenciales, el nombre de servidor del servicio de soporte de IoT 451 seleccionado, información de conectividad para que el dispositivo de borde 411 se conecte con el servicio de soporte de IoT 451 y/o similares. En otros ejemplos, el proceso de aprovisionamiento se completa de alguna otra manera.
Después de que se completa el aprovisionamiento, en algunos ejemplos, las comunicaciones entre el dispositivo de borde 411 y el servicio de soporte de IoT 451 pueden ocurrir directamente y/o de una manera "normal" (o a través de dispositivos de puerta de enlace, pero no a través del servicio de aprovisionamiento 415). En algunos ejemplos, el servicio de aprovisionamiento 415 no está nuevamente involucrado en las comunicaciones entre el dispositivo de borde 411 y el servicio de soporte de IoT 451, a menos que, por ejemplo, el dispositivo de borde 411 deba ser reaprovisionado.
En algunos ejemplos, el dispositivo de borde 411 envía un mensaje inicial al servicio de soporte de loT 451, como un paquete de bienvenida o similar, y el servicio de soporte de IoT 451 devuelve un mensaje al dispositivo de borde 411 con las etapas que el dispositivo de borde 411 debe seguir antes que el dispositivo de borde 411 puede comenzar a enviar datos al servicio de soporte de IoT 451. Dichas etapas pueden incluir, por ejemplo, actualizar el firmware del dispositivo de borde 411, cambiar un archivo de configuración y/o similares.
En algunos ejemplos, el dispositivo de borde 411 retiene la memoria criptográfica del servicio de aprovisionamiento 415 y puede ser redirigido al servicio de aprovisionamiento 415 durante la vida útil del dispositivo de borde 411 para reaprovisionar el dispositivo de borde 411. En algunos ejemplos, ciertos eventos pueden hacer que el dispositivo de borde 411 inicie el reaprovisionamiento, tal como el dispositivo de borde 411 que se revende, un cambio en las regiones geográficas o similares.
En algunos ejemplos, los módulos gemelos en el servicio de soporte de IoT 451 tienen cada uno un módulo correspondiente y actúan como representaciones virtuales del módulo al que corresponden. Los módulos gemelos pueden almacenar información sobre el módulo, incluidas las propiedades del módulo, y del dispositivo en el que se encuentra el módulo cuando sea relevante. Un módulo gemelo puede incluir el tipo de módulo, tipo de dispositivo en el que se encuentra el módulo cuando sea relevante para el módulo, varias propiedades del módulo y varias propiedades relevantes del dispositivo en el que se encuentra el módulo, capacidades del módulo y/o similares. Las propiedades exactas almacenadas en el módulo gemelo pueden depender del tipo de módulo. Por ejemplo, un módulo sensor de temperatura de un dispositivo puede almacenar la temperatura actual determinada por el módulo. Un módulo gemelo asociado con la función de un dispositivo inteligente puede almacenar el estado, por ejemplo, si una cerradura inteligente está bloqueada o desbloqueada, si una luz inteligente está encendida o apagada, y/o similares. Al menos una porción de la información en el módulo gemelo puede sincronizarse basándose en el módulo actualizando la información en el módulo gemelo basándose en el módulo. Además, la información del módulo gemelo puede consultarse.
En algunos ejemplos, los módulos gemelos pueden incluir al menos etiquetas y propiedades. En algunos ejemplos, las propiedades pueden incluir propiedades informadas y propiedades deseadas.
En algunos ejemplos, las propiedades informadas indican las propiedades del módulo informadas al servicio de soporte de IoT. Por ejemplo, para un dispositivo de IoT que es una cerradura, el módulo gemelo asociado con un módulo para la función de bloqueo de la cerradura inteligente puede tener una propiedad correspondiente que indique si el estado informado está bloqueado o desbloqueado. En algunos ejemplos, una propiedad deseada indica el estado que debe tener la propiedad que el dispositivo real debe tener en ese momento. La propiedad deseada puede ser igual o diferente a la propiedad informada. Si la propiedad deseada es diferente a la propiedad informada correspondiente, se pueden tomar acciones para resolver la discrepancia.
Es posible que algunos dispositivos no siempre estén conectados y que, por ejemplo, se conecten a la red solo unas pocas veces al día, o en el caso de un error. En este ejemplo, los datos pueden almacenarse en memoria intermedia localmente y un evento específico puede activar una conexión y una carga de datos. Los módulos gemelos pueden actualizarse cuando se produce una conexión. En consecuencia, en el caso de un dispositivo de conexión intermitente, un módulo gemelo puede no estar actualizado hasta que se produzca una conexión.
En algunos ejemplos, el servicio de soporte de IoT puede implementar módulos en dispositivos de borde. La implementación puede realizarse por varias razones diferentes. Por ejemplo, los módulos se pueden implementar para configurar aplicaciones en dispositivos de borde según las circunstancias, para agregar nueva funcionalidad a los dispositivos de borde existentes, para la implementación de aplicaciones en nuevos dispositivos de borde y/o similares.
Por ejemplo, se pueden implementar módulos para configurar aplicaciones en dispositivos periféricos según las circunstancias. Por ejemplo, se puede determinar que una cantidad considerable de telemetría proviene de un dispositivo de IoT en particular que se conecta al servicio de soporte de IoT a través de una puerta de enlace. En respuesta, el servicio de soporte de IoT podría implementar un módulo en la puerta de enlace que agregue los datos de telemetría. El servicio de soporte de IoT también podría implementar o alternativamente un módulo de análisis en la puerta de enlace, donde el módulo de análisis realiza análisis de los datos de telemetría, de modo que los análisis se pueden realizar en la puerta de enlace en lugar de enviar todos los datos de telemetría a la nube. Por consiguiente, la implementación de módulos en dispositivos periféricos se puede utilizar para configurar aplicaciones en dispositivos periféricos según sea necesario o de otro modo.
La implementación de módulos también se puede utilizar para agregar nuevas funciones a un dispositivo de borde existente. Por ejemplo, la inteligencia artificial se puede agregar a un dispositivo de borde existente. Como otro ejemplo, un termostato puede haber sido previamente ajustable mediante comandos de voz y ajustable de forma remota, por ejemplo, a través de una red. El servicio de soporte de IoT podría agregar la implementación de un módulo de aprendizaje automático al termostato, por ejemplo, para que el termostato pudiera ajustarse a sí mismo basándose en el aprendizaje automático. De manera similar, el servicio de soporte de IoT podría implementar un módulo de reconocimiento facial en una cámara que antes no tenía capacidades de reconocimiento facial. Si una habitación contuviera (1) un dispositivo conectado capaz de recibir comandos de voz y (2) dispositivos conectados sin capacidad de voz nativa, el servicio de soporte de loT podría proporcionar módulos al dispositivo conectado sin capacidad de voz nativa y, por lo tanto, permitir que los dispositivos conectados respondan a los comandos de voz.
La implementación de módulos también se puede utilizar para nuevos dispositivos de borde. Cuando se aprovisiona un nuevo dispositivo de borde o se coloca en un entorno particular por primera vez, el servicio de soporte de IoT puede detectar el dispositivo de borde y, en respuesta, implementar los módulos apropiados para el entorno en el que se coloca el nuevo dispositivo de borde. Por ejemplo, si los sensores de movimiento en una habitación en particular están configurados de cierta manera con cierto módulo, y se coloca un nuevo sensor de movimiento en la habitación, el servicio de soporte de IoT puede configurar el nuevo sensor de movimiento con módulos similares a los otros sensores de movimiento en la habitación.
De esta manera, los dispositivos de borde no necesitan incluir ningún código que no sea el de aprovisionamiento y respuesta a las instrucciones de implementación del servicio de soporte de IoT. Los dispositivos de borde no necesitan tener ningún código para realizar sus funciones particulares y/o tener ninguna funcionalidad de IoT, hasta después de que el servicio de soporte de IoT haga que el código sea implementado en ellos. De esta manera, un cliente puede comprar un dispositivo conectado "vainilla" que no incluye código para realizar las funciones "previstas" del dispositivo. En cambio, en algunos ejemplos, el dispositivo de borde se conectará a la nube y el servicio de soporte de IoT implementará los módulos para dicha funcionalidad en el dispositivo de borde.
El servicio de soporte de IoT puede implementar indirectamente los módulos en los dispositivos de borde, en algunos ejemplos. Por ejemplo, la solución de IoT puede enviar, al dispositivo de borde en el que se implementarán los módulos, un comando para descargar los módulos desde un repositorio de módulos. En otros ejemplos, el servicio de soporte de IoT puede enviar directamente los módulos al dispositivo de borde. Por ejemplo, el depósito de módulos 419 puede omitirse en algunos sistemas. En otros ejemplos, el servicio de soporte de IoT puede enviar, al dispositivo de borde en el que se desplegarán los módulos, un comando para descargar los módulos desde un repositorio de módulos, tal como el repositorio de módulos 419 de la figura 4.
Al implementar módulos, en algunos ejemplos, el servicio de soporte de IoT determina uno o más módulos a implementar e identifica el dispositivo de borde en el que implementar los módulos determinados. El servicio de soporte de IoT puede hacer que los módulos determinados se implementen en el dispositivo de borde identificado. El servicio de soporte de IoT también puede actualizar los módulos gemelos en función de los módulos implementados, de modo que cada uno de los módulos implementados tenga un módulo gemelo correspondiente almacenado en el servicio de soporte de IoT.
En algunos ejemplos, la implementación de módulos en los dispositivos periféricos está impulsada por la nube. En algunos ejemplos, el servicio de soporte de IoT en sí mismo impulsa la implementación de los módulos en los dispositivos de borde. En algunos ejemplos, la implementación de los módulos puede basarse en reglas en el servicio de soporte de IoT y, en otros ejemplos, el conjunto de módulos requeridos en dispositivos periféricos particulares puede ser determinado por un operador de solución de IoT y comunicado al servicio de soporte de IoT. El servicio de soporte de IoT podría implementar los módulos en consecuencia. En otros ejemplos, una aplicación de etapa final en la etapa final de la aplicación puede impulsar la implementación de módulos en los dispositivos de borde.
La implementación en la nube de módulos en dispositivos periféricos puede tener muchos beneficios, incluida la reutilización del código. Algunas funciones se pueden reutilizar en muchas soluciones y tipos de dispositivos diferentes. Por ejemplo, el mismo módulo de inteligencia artificial se puede reutilizar en muchos tipos de soluciones y/o en muchos tipos de dispositivos de borde. De manera similar, el mismo módulo de análisis puede ser reutilizable en muchos tipos de soluciones y/o en muchos tipos de dispositivos de borde. En estos ejemplos, el mismo módulo con el mismo código se puede implementar en muchos dispositivos de borde diferentes, que pueden incluir diferentes tipos de dispositivos de borde, sin necesidad de modificar el código en los módulos implementados o en los otros módulos ya presentes en los dispositivos de borde en el que se implementan los módulos.
En algunos ejemplos, el servicio de soporte de IoT puede realizar modificaciones de aplicaciones iniciadas en la nube en dispositivos de borde. En algunos ejemplos, las modificaciones de aplicaciones en dispositivos de borde se pueden realizar en uno o más módulos del dispositivo de borde, sin necesidad de volver a implementar toda la aplicación. Las modificaciones pueden incluir actualizaciones, configuraciones y/o similares.
De esta forma, las configuraciones se pueden cambiar de forma independiente. Por ejemplo, si se requiere cambiar la porción de análisis de una aplicación en un dispositivo de borde, el servicio de soporte de IoT puede hacer que el módulo que controla el análisis se actualice, de modo que una configuración específica en el módulo de análisis se pueda cambiar sin tener que volver a desplegar toda la aplicación de borde.
En algunos ejemplos, para ciertas funcionalidades como la inteligencia artificial (AI) o el reconocimiento facial, el entrenamiento puede realizarse en la nube, mientras que el modelo obtenido del entrenamiento puede implementarse en el dispositivo de borde. En algunos ejemplos, si se actualiza el modelo, el servicio de soporte de IoT puede hacer que se cambie el modelo en la AI, al tiempo que modifica solo el modelo de AI y no requiere que se vuelva a implementar toda la aplicación.
En algunos ejemplos, el servicio de soporte de loT puede recibir una solicitud declarativa o similar desde la etapa final de la aplicación. En algunos ejemplos, la solicitud declarativa se puede descomponer en configuraciones individuales que se envían a los dispositivos periféricos. En algunos ejemplos, las configuraciones individuales son ejecutadas por el dispositivo de borde y tienen el efecto de configurar cómo el dispositivo de borde envía los datos de telemetría. En algunos ejemplos, la configuración individual no se limita a solo datos de telemetría, sino que el código de uno o más módulos en el dispositivo de borde se puede modificar de cualquier manera adecuada.
Una vez que el dispositivo de IoT descompone la solicitud declarativa en configuraciones individuales, se pueden identificar los dispositivos periféricos de destino asociados con la configuración. Por ejemplo, una solicitud declarativa puede ser una solicitud para proporcionar una alerta cuando se identifica una cara en particular en un edificio en particular. La solicitud se puede dividir en configuraciones individuales que modificarán módulos de reconocimiento facial particulares en dispositivos de borde particulares.
En algunos ejemplos, se identifican los dispositivos de borde particulares para los que se modificará el módulo. A continuación, las configuraciones pueden comunicarse a los dispositivos de borde identificados. Al recibir las configuraciones, el dispositivo de borde identificado puede proceder a actualizar los módulos relevantes en base a las configuraciones recibidas.
Como se discutió anteriormente con respecto a las implementaciones de módulos, el servicio de soporte de IoT puede implementar indirectamente actualizaciones de los módulos en los dispositivos de borde, en algunos ejemplos, y en otros ejemplos, el servicio de soporte de IoT puede enviar, al dispositivo de borde al que están los módulos para ser actualizado, un comando para descargar el nuevo código para el módulo desde un depósito de módulos, tal como el depósito de módulos 419 de la figura 4.
En algunos ejemplos, parte del procesamiento, la inteligencia y/o la computación que ocurren en el servicio de soporte de IoT pueden descargarse a los dispositivos de borde cambiando uno o más servicios en el servicio de soporte de IoT en uno o más módulos que luego pueden implementarse en los dispositivos de borde.
Si bien puede ser ventajoso tener alguna funcionalidad en la nube, también puede ser ventajoso tener alguna funcionalidad en el perímetro. El procesamiento en el borde puede ser ventajoso para los lazos de control estrictos de baja latencia que requieren o se benefician de una respuesta en tiempo real o casi en tiempo real. El procesamiento en el borde puede ser ventajoso por razones de privacidad y confidencialidad de los datos, y para proteger contra la imprevisibilidad inherente de la Internet pública. Los servicios de IoT aún se pueden administrar desde la nube mientras se descarga un procesamiento particular al borde, donde es ventajoso hacerlo. La capacidad de mover la funcionalidad de la nube al borde también puede permitir una mayor flexibilidad.
En algunos ejemplos, un servicio en la nube completo (por ejemplo, uno de los servicios 471-473) puede convertirse en un módulo (por ejemplo, uno de los módulos 431-433) para ser implementado en dispositivos de borde (por ejemplo, dispositivo de borde 411), y el servicio en la nube puede dejar de ejecutarse una vez que los módulos estén funcionando en los dispositivos de borde. En algunos ejemplos, una porción de un servicio en la nube puede transformarse en un nuevo módulo, o agregarse como nuevo código a un módulo existente, que puede usarse para modificar módulos existentes en dispositivos de borde como se discutió anteriormente con respecto a las modificaciones iniciadas en la nube de módulos en dispositivos de borde. En estos ejemplos, la porción restante del servicio en la nube aún puede ejecutarse.
Cuando se determina qué dispositivos de borde deben tener qué módulos, incluidos los módulos que pueden haber sido servicios en la nube, se puede utilizar una jerarquía de dispositivos de borde. Por ejemplo, la jerarquía puede basarse en la ubicación o en categorías particulares de dispositivos dentro de ubicaciones jerárquicas. Por ejemplo, la ubicación de un dispositivo de IoT puede definirse por ciudad, edificio, piso y habitación.
En este ejemplo, "ciudad" es el nivel superior de la jerarquía de ubicación. En este ejemplo, debajo de "ciudad" en la jerarquía de ubicación se está construyendo. En este ejemplo, cada dispositivo de IoT en un edificio en particular también se encuentra en la ciudad en la que reside el edificio. De manera similar, en este ejemplo, cada dispositivo de IoT en un piso en particular pertenece al edificio en el que reside el piso y en la ciudad en la que reside el edificio. De manera similar, en este ejemplo, cada dispositivo de IoT en una habitación en particular pertenece al piso en el que reside la habitación, y así sucesivamente. De esta forma, en este ejemplo, los metadatos de ubicación son jerárquicos. En este ejemplo, cuando se asigna la habitación en la que reside el dispositivo de IoT, en función de cómo se define la categoría jerárquica, también se definen el piso, el edificio y la ciudad.
De esta manera, por ejemplo, todos los sensores de temperatura en un edificio particular pueden tener un módulo particular. Un servicio en la nube en particular podría descargarse en el borde convirtiendo el servicio en la nube en un módulo que se implementará en el borde, y este módulo podría implementarse, por ejemplo, en todos los sensores de temperatura en un edificio en particular. En el momento de la descarga, el módulo se puede implementar en cada sensor de temperatura del edificio. La implementación puede ser una implementación de larga data en algunos ejemplos, de modo que, cuando se coloca un nuevo sensor de temperatura en este edificio, el módulo se puede implementar automáticamente en el sensor de temperatura.
Las jerarquías también pueden basarse en categorías distintas de la ubicación, como la funcionalidad y/o el tipo de dispositivo. Por ejemplo, todos los dispositivos que recopilan datos podrían ser un nivel de una jerarquía, para el cual ciertos módulos podrían implementarse en todos esos dispositivos, y esta jerarquía podría subdividirse aún más en función de las categorías jerárquicas particulares de datos que se recopilen. Un dispositivo que recopila un tipo particular de datos puede tener un tipo particular de módulo implementado en el dispositivo en algunos ejemplos.
Por ejemplo, en algunos ejemplos, el entrenamiento de AI se puede realizar en la nube y el modelo puede cambiarse de servicio a un módulo que se implementa en el perímetro. El módulo podría implementarse en todos los dispositivos de borde relevantes en el edificio 44.
De esta manera, los dispositivos de borde para los que se implementarán los módulos pueden determinarse en función de la posición determinada de los dispositivos de borde en la jerarquía. Por ejemplo, como se discutió anteriormente, un módulo particular se puede implementar en todos los sensores de temperatura en el edificio 43. Como también se discutió anteriormente, en algunos ejemplos, tal despliegue puede ser de larga duración, de modo que, por ejemplo, si un sensor de temperatura que carece del módulo particular se activa en el edificio 43, el módulo particular puede desplegarse automáticamente al sensor de temperatura.
Descargar cierta funcionalidad de la nube al borde puede ser útil, por ejemplo, en la optimización de líneas de producción en una planta de fabricación. En algunos ejemplos, las líneas de producción están compuestas por varias máquinas, cada una de las cuales contiene muchos sensores, que producen miles de puntos de datos por segundo. Estos sensores pueden emitir una gran cantidad de datos de telemetría como temperatura, humedad, velocidad del motor, etc., pero también pueden producir datos complejos como mapas de diagnóstico de la máquina, estado de la máquina, datos de audio o video. Además, en algunos ejemplos, estos puntos de datos se analizan para extraer información sobre el estado de la máquina individual, pero también se agregan a nivel de la línea de producción para informar y optimizar los rendimientos de producción. En algunos ejemplos, los requisitos de baja latencia, conservación del ancho de banda de la red y preservación de la privacidad hacen que sea ventajoso realizar la computación y el procesamiento lo más cerca posible de los sensores y, al mismo tiempo, la agregación a nivel de la línea de producción para análisis y control agregados.
Descargar cierta funcionalidad de la nube al borde también puede ser útil en edificios inteligentes. La tecnología de sensores se puede utilizar para ahorrar energía, realizando tareas simples como encender y apagar las luces automáticamente cuando alguien entra o sale de una habitación. Los sensores de infrarrojos pasivos (PIR), las fotocélulas simples y los sensores de CO2 pueden permitir estas tareas. Las puertas de enlace de campo se pueden usar en edificios para permitir la comunicación de los sistemas de control y automatización de edificios para aplicaciones tales como control de calefacción, ventilación y aire acondicionado (HVAC), control de iluminación, control de acceso y sistemas de detección de incendios y sus equipos asociados.
La tecnología de automatización de edificios generalmente se basa principalmente en sistemas convencionales basados en reglas en los que los programadores humanos hacen el "trabajo pesado" de la creación y modificación de reglas. Estos sistemas, a menudo implementados en soluciones de servidor en las instalaciones, pueden volverse frágiles a medida que evolucionan y se forman múltiples capas de parches de reglas para dar cuenta de una gran cantidad de nuevas excepciones a las reglas. Por el contrario, en algunos ejemplos, las soluciones de edificios inteligentes pueden permitir la capacidad de obtener y analizar niveles más ricos de datos, lo que permite la ejecución de tareas más sofisticadas que van mucho más allá de la gestión del consumo de energía. En algunos ejemplos, un edificio inteligente sabe cómo se usa el espacio en cada momento, cuántas personas hay en cada habitación, cuánto tiempo hay en la fila para el almuerzo en la cafetería, dónde hay un escritorio libre, cómo ajustar el entorno al confort personalizado. preferencias de un individuo y/o similares. Esta conciencia puede traducirse en un entorno de trabajo más cómodo y rentable para los ocupantes del edificio.
En algunos ejemplos, se puede usar una arquitectura descentralizada de automatización de edificios donde la analítica puede ejecutarse localmente en dispositivos de borde, en lugar de en la nube o en un servidor central. Los procesadores integrados energéticamente eficientes pueden permitir la capacidad de procesar análisis dentro de la propia unidad de sensor o ejecutar análisis avanzados dentro de las puertas de enlace de campo locales. En algunos ejemplos, con este enfoque, los datos enviados a través de la red pueden ser simplemente el resumen final del análisis, que es más delgado en volumen y permite un tiempo de respuesta más corto.
Al eliminar la carga de definir reglas efectivas de parte de los expertos humanos y transferirlas al algoritmo, los sistemas de aprendizaje automático basados en datos pueden ser herramientas excelentes para un análisis de datos enriquecido, particularmente cuando se emplean cámaras o soluciones de sensores más avanzadas en la capa de detección. El aprendizaje profundo se puede utilizar en muchos dominios de aprendizaje automático, especialmente en el procesamiento y comprensión de la visión, el habla y el lenguaje natural, así como en escenarios de fusión de sensores involucrados en hacer que los edificios sean inteligentes. Con Deep Learning, el algoritmo puede definir un cálculo de extremo a extremo, desde los datos sin procesar del sensor hasta el resultado final. En algunos ejemplos, en este modelo, el propio algoritmo determina cuáles son las características correctas y cómo calcularlas. Esto puede resultar en un nivel de cálculo mucho más profundo y complejo. En algunos ejemplos, dichos algoritmos se ejecutan en dispositivos periféricos para garantizar resultados en tiempo real en algunos de los escenarios descritos anteriormente.
Aunque anteriormente se analizan ejemplos particulares de aplicaciones de descarga de un procesamiento particular de la nube al borde, la divulgación no se limita a las aplicaciones de ejemplo particulares discutidas anteriormente. La descarga de un procesamiento particular de la nube al borde también puede ser útil en otras aplicaciones adecuadas, como los vehículos conectados, por ejemplo. Por ejemplo, la descarga de un procesamiento particular de la nube al borde se puede utilizar para las gestiones de logística de transporte o flota utilizando un módulo de puerta de enlace en el vehículo para la coordinación y agregación de datos de dispositivos adicionales y/o para sistemas avanzados de asistencia a la conducción (ADAS).
Como ejemplo de descarga de un servicio en la nube como un módulo a los dispositivos de borde, aquí se da un caso de uso donde los datos del sensor (ejemplo, datos de temperatura) se agregan en un módulo de análisis de flujo (un módulo lógico personalizado también funciona).
Luego, en este ejemplo, si el promedio de los últimos 10 minutos está por encima de un umbral:
• Se invoca una función (que llama a un método directo en el dispositivo para apagarlo); y
• Se envía un mensaje a un Service Bus Q, que luego es procesado por las aplicaciones de Logic para crear un ticket.
En este ejemplo, en este flujo:
• Los dispositivos envían mensajes d2c mediante un kit de desarrollo de software (SDK) de IoT con un tipo de propiedad = 'temp'
• Rutas de IoT Hub: type = 'temp' ^ stream analytics job 1
• trabajo de análisis de flujo 1:
° Realiza consulta:
SELECT Deviceld, AVG (temp) AS [Avg] INTO shutdownFunction, alertQueue FROM input TIMESTAMP BY Time GROUP BY Deviceld, TumblingWindow (minuto, 10) HAVING [Avg]> 100
° Salidas:
■ shutdownFunction está configurado para ir a una función shutdown ()
■ alertQueue está configurado para ir a una cola de bus de servicio (SB) alertQueue
En este ejemplo, el volumen de datos que fluye a la nube puede ser demasiado grande, por lo que el propietario de la solución quiere mover partes de este flujo en los dispositivos periféricos, específicamente: el trabajo de análisis de flujo y la función de apagado.
En este ejemplo, en el flujo migrado:
• El módulo del sensor puede verse exactamente como la aplicación del dispositivo en el flujo anterior, enviando mensajes d2c con: type = 'temp'
• El módulo de análisis de flujo está configurado con un trabajo que ejecuta la misma consulta. El único comportamiento diferente es que el análisis de transmisión usa el enrutamiento en tiempo de ejecución para enrutar a un punto final de salida en lugar del propio. Una forma posible de hacer esto es agregando una propiedad especial llamada salida ASA (el análisis de flujo ya requería salidas con nombre en la nube).
• La función simplemente espera los mensajes entrantes (con el mismo formato de análisis de flujo que en el flujo anterior) y llama a un método directo en el dispositivo local utilizando el SDK de IoT Hub local sin cambios de código.
• El tiempo de ejecución de borde está configurado para enrutar:
° type = 'tem p'^ stream analytics job 1
° ASA_analytics_output = 'shutdownFunction' ^ Function shutdown ()
° ASA_output = 'alertQueue' ^ cloud
■ Rutas de loT Hub:
° ASA_output = 'alertQueue' ^ SB queue alertQueue
En este ejemplo, prácticamente no hay cambios en el código. En este ejemplo:
Figure imgf000015_0001
La modificación de módulos iniciada por la nube se analiza anteriormente. La modificación de módulos en dispositivos de borde puede incluir el despliegue de reglas declarativas en dispositivos de borde. Las reglas declarativas pueden incluir reglas que se disparan en función de eventos. Tal regla declarativa puede determinar, con base en la regla, si ha ocurrido un evento en particular. Por ejemplo, un evento puede activarse en función de que la temperatura en una habitación en particular alcance un nivel en particular. Cuando el evento se activa, la regla declarativa puede hacer que el módulo que incluye la regla declarativa comunique a uno o más objetivos declarativos el hecho de que el evento se activó. Los objetivos declarativos pueden incluir el servicio de soporte de IoT, pero también pueden incluir uno o más dispositivos periféricos u otro módulo en el mismo dispositivo periférico.
Los objetivos declarativos particulares pueden depender de la naturaleza exacta de la regla declarativa y del evento. Por ejemplo, un evento puede desencadenarse en respuesta a la detección de un incendio, y la regla puede hacer que se notifique a personas y/o dispositivos particulares sobre la detección de un incendio en una ubicación en particular.
En un ejemplo, se puede enviar una configuración a un generador, donde la configuración incluye una regla declarativa. La regla declarativa puede especificar que una alarma generada por un generador provoca, a través de una regla declarativa en un módulo del dispositivo de borde, la notificación de la alarma que se enviará desde el módulo a un servicio de aplicación lógica en la nube.
En varios ejemplos, las nuevas reglas declarativas que se activan en función de eventos pueden generarse e implementarse recientemente en el borde, y/o las reglas declarativas existentes que se activan en función de eventos ya pueden ejecutarse en un servicio en la nube en el servicio de soporte de IoT y cambiarse a una configuración de un módulo y desplegado hasta el borde.
En algunos ejemplos, para un dispositivo de borde puede que solo se conecte a la red unas pocas veces al día, o en el caso de un error específico, y los datos se almacenan en memoria intermedia localmente. En algunos de estos ejemplos, una regla declarativa puede provocar, en respuesta a la activación basada en el evento que se detecta, una conexión a la red y una carga de datos.
En algunos ejemplos, las reglas declarativas que incluyen disparadores basados en eventos pueden implementarse en base a interfaces de programa de aplicación (API) de eventos que admiten una configuración declarativa de enrutamiento de eventos.
En algunos ejemplos, el enrutamiento declarativo basado en eventos puede ocurrir en el borde mientras es administrado por el servicio de soporte de IoT, de modo que el servicio de soporte de IoT coordina de manera centralizada el manejo de eventos sin interrupciones, aunque la detección de eventos y el enrutamiento y la notificación de eventos detectados es realizado por varios dispositivos de borde.
En algunos ejemplos, la regla declarativa se configura en el servicio de soporte de IoT. En algunos ejemplos, el servicio de soporte de IoT descompone la regla declarativa en configuraciones. En algunos ejemplos, algunas o todas las configuraciones son reglas de ámbito de dispositivo único que se implementan posteriormente en dispositivos de IoT. En algunos ejemplos, los metadatos del dispositivo y/u otra información, incluida la información jerárquica, como la información jerárquica discutida anteriormente, se pueden usar al descomponer la regla declarativa en configuraciones y determinar en qué dispositivos de IoT se deben implementar las configuraciones.
Por ejemplo, en algunos ejemplos, se puede establecer una regla declarativa en el servicio de soporte de IoT con el fin de "siempre que haya un error en un dispositivo de puerta de enlace para sistemas HVAC en un edificio en un área definida en particular, envíe una notificación al dispositivo de alarma en ese edificio ". Cuando la regla declarativa se configura en el servicio de soporte de IoT, puede descomponerse en configuraciones que se envían a los dispositivos relevantes, según las categorías jerárquicas. Las configuraciones individuales en los dispositivos de IoT hacen que el evento se active cuando se detecta un error en un dispositivo de puerta de enlace que recibió la configuración, donde los dispositivos de puerta de enlace para sistemas HVAc en edificios en el área predefinida recibieron la configuración. En algunos ejemplos, cuando hay un nuevo dispositivo que es un dispositivo de puerta de enlace para un sistema HVAC en un edificio en el área particular predefinida, el nuevo dispositivo recibe automáticamente la configuración.
Procesos ilustrativos
Para mayor claridad, los procesos descritos en este documento se describen en términos de operaciones realizadas en secuencias particulares por dispositivos o componentes particulares de un sistema. Sin embargo, se observa que otros procesos no se limitan a las secuencias, dispositivos o componentes indicados. Por ejemplo, ciertos actos pueden realizarse en diferentes secuencias, en paralelo, omitirse o pueden complementarse con actos o características adicionales, ya sea que tales secuencias, paralelismos, actos o características se describan en el presente documento. Asimismo, cualquier tecnología descrita en esta divulgación puede incorporarse en los procesos descritos u otros procesos, ya sea que esa tecnología se describa específicamente junto con un proceso o no. Los procesos descritos también pueden realizarse en o por otros dispositivos, componentes o sistemas, ya sea que dichos dispositivos, componentes o sistemas se describan en el presente documento o no. Estos procesos también pueden realizarse de diversas formas. Por ejemplo, pueden incorporarse a un artículo de fabricación, por ejemplo, como instrucciones legibles por procesador almacenadas en un medio de almacenamiento legible por procesador o realizarse como un proceso implementado por ordenador. Como ejemplo alternativo, estos procesos pueden codificarse como instrucciones ejecutables por el procesador y transmitirse a través de un medio de comunicaciones.
La figura 5 es un diagrama de flujo que ilustra un proceso de ejemplo (580) para la tecnología de IoT, que puede ser realizado, por ejemplo, por un servicio de soporte de IoT, tal como el servicio de soporte de IoT de la figura 3 y/o figura 4.
En el ejemplo ilustrado, la etapa 581 ocurre primero. En la etapa 581, en algunos ejemplos, se almacena una pluralidad de módulos gemelos que corresponden respectivamente a una pluralidad de módulos de aplicaciones de borde en una pluralidad de dispositivos de borde. En algunos ejemplos, la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos. Como se muestra, la etapa 582 ocurre a continuación en algunos ejemplos. En la etapa 582, en algunos ejemplos, se habilitan las comunicaciones entre los módulos y el servicio de soporte de IoT según un contexto de seguridad común.
Como se muestra, la etapa 583 ocurre a continuación en algunos ejemplos. En la etapa 583, en algunos ejemplos, se determina al menos un módulo de la pluralidad de módulos que se van a modificar añadiendo una regla declarativa, de modo que la regla declarativa hace que se determine si se ha disparado un evento en función de que se haya determinado que un evento particular han ocurrido y, en respuesta al desencadenamiento del evento, comunicar el desencadenamiento del evento a al menos un objetivo declarativo. Como se muestra, la etapa 584 ocurre a continuación en algunos ejemplos. En la etapa 584, en algunos ejemplos, el al menos un módulo determinado de la pluralidad de módulos se modifica añadiendo la regla declarativa. A continuación, el proceso puede pasar a un bloque de retorno, donde se reanuda el resto de los procesos.
La figura 6 es un diagrama de flujo que ilustra un proceso de ejemplo (690) para la tecnología de IoT, que puede realizarse, por ejemplo, mediante un dispositivo de borde, tal como uno de los dispositivos de borde de la figura 3 y/o figura 4.
En el ejemplo ilustrado, la etapa 691 ocurre primero. En la etapa 691, en algunos ejemplos, se ejecuta una pluralidad de módulos. En algunos ejemplos, la pluralidad de módulos se puede componer juntos en una aplicación para el dispositivo de borde. En algunos ejemplos, los módulos de la pluralidad de módulos pueden usarse de manera interoperable con otros módulos sin alterar los otros módulos. Como se muestra, la etapa 692 ocurre a continuación en algunos ejemplos. En la etapa 692, en algunos ejemplos, se habilitan las comunicaciones entre los módulos de la pluralidad de módulos y un servicio de soporte de IoT según un contexto de seguridad común.
Como se muestra, la etapa 693 ocurre a continuación en algunos ejemplos. En la etapa 693, en algunos ejemplos, basándose en instrucciones de un servicio de soporte de IoT, se modifica al menos un módulo de la pluralidad de módulos para agregar una regla declarativa. Como se muestra, la etapa 694 ocurre a continuación en algunos ejemplos. En la etapa 694, en algunos ejemplos, se determina si la regla declarativa se ha activado basándose en que se ha determinado que ha ocurrido un evento particular. Como se muestra, la etapa 695 ocurre a continuación en algún ejemplo. En la etapa 695, en algunos ejemplos, la activación del evento se comunica a al menos un objetivo declarativo. A continuación, el proceso puede pasar al bloque de retorno, donde se reanuda el resto de los procesos.
Conclusión
Si bien la descripción detallada anterior describe ciertos ejemplos de la tecnología y describe el mejor modo contemplado, no importa cuán detallado aparezca en el texto lo anterior, la tecnología se puede practicar de muchas maneras. Los detalles pueden variar en la implementación, aunque todavía están incluidos en la tecnología descrita en este documento. Como se señaló anteriormente, la terminología particular utilizada al describir ciertas características o aspectos de la tecnología no debe tomarse en el sentido de que la terminología se está redefiniendo en este documento para restringirla a características, rasgos o aspectos específicos con los que se asocia esa terminología. En general, los términos usados en las siguientes reivindicaciones no deben interpretarse como que limitan la tecnología a los ejemplos específicos descritos en este documento, a menos que la descripción detallada defina explícitamente dichos términos.

Claims (12)

r e iv in d ic a c io n e s
1. Un aparato, que comprende:
un servicio de soporte de loT (351; 451), que incluye al menos una memoria (250) adaptada para almacenar datos en tiempo de ejecución para el dispositivo, y al menos un procesador (210) que está adaptado para ejecutar código ejecutable por procesador que, en respuesta hasta la ejecución, hace que el servicio de soporte de IoT (351; 451) realice acciones, que incluyen:
almacenar una pluralidad de módulos gemelos (421,422, 423) que corresponden respectivamente a una pluralidad de módulos (431, 432, 433) de una aplicación de borde (430) en un dispositivo de borde (311, 312, 341, 342, 343; 411),
en el que la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos (431, 432, 433), y
en el que la pluralidad de módulos (431,432, 433) se pueden componer juntos en la aplicación de borde (430), y los módulos de la pluralidad de módulos (431,432, 433) pueden usarse interoperablemente con otros módulos sin alterar la otros módulos;
habilitar las comunicaciones entre los módulos de la pluralidad de módulos (431, 432, 433) y el servicio de soporte de loT (351; 451) de acuerdo con un contexto de seguridad común;
determinar al menos un módulo de la pluralidad de módulos (431, 432, 433) a modificar añadiendo una regla declarativa, de modo que la regla declarativa haga determinar si se ha disparado un evento y, en respuesta a la activación del evento, comunicar la activación del evento a al menos un objetivo declarativo; y
provocar la modificación del al menos un módulo determinado de la pluralidad de módulos (431, 432, 433) añadiendo la regla declarativa.
2. El aparato de la reivindicación 1, en el que la regla declarativa provoca, además, al activarse la regla declarativa basándose en que se ha determinado que ha ocurrido un evento particular, que el dispositivo de borde que incluye el módulo se conecte a una red y realice una carga de datos.
3. El aparato de la reivindicación 1, en el que el al menos un objetivo declarativo incluye al menos un dispositivo de borde (311, 312, 341, 342, 343; 411).
4. El aparato de la reivindicación 1, en el que el al menos un objetivo declarativo incluye el servicio de soporte de loT (351; 451).
5. Un método que comprende:
almacenar una pluralidad de módulos gemelos que corresponden respectivamente a una pluralidad de módulos (431, 432, 433) de una aplicación de borde en un dispositivo de borde (311, 312, 341, 342, 343; 411),
en el que la pluralidad de módulos gemelos incluye individualmente metadatos asociados con el módulo correspondiente de la pluralidad de módulos (431,432, 433),
en el que la pluralidad de módulos (431, 432, 433) se pueden componer juntos en la aplicación de borde (430), y los módulos de la pluralidad de módulos (431,432, 433) pueden usarse interoperablemente con otros módulos sin alterar la otros módulos;
usar al menos un procesador (210) de un servicio de soporte de loT (351; 451) para identificar al menos un módulo de la pluralidad de módulos (431, 432, 433) para ser modificado mediante la inclusión de una regla declarativa, de modo que el declarativo las causas de la regla determinan si un evento se ha disparado y, en respuesta a la activación del evento, comunican la activación del evento a al menos un objetivo declarativo; y
hacer que el al menos un módulo identificado de la pluralidad de módulos (431, 432, 433) se modifique mediante la inclusión de la regla declarativa.
6. El método de la reivindicación 5, en el que la regla declarativa provoca, además, cuando la regla declarativa se activa basándose en que se ha determinado que ha ocurrido un evento particular, el dispositivo de borde (311, 312, 341, 342, 343; 411) que incluye el módulo para conectar y realizar una carga de datos.
7. El método de la reivindicación 5, en el que el al menos un objetivo declarativo incluye al menos un dispositivo de borde (311, 312, 341, 342, 343; 411).
8. El método de la reivindicación 5, en el que el al menos un objetivo declarativo incluye el servicio de soporte de loT (351; 451).
9. Un aparato, que comprende:
un dispositivo de borde (311, 312, 341, 342, 343; 411), que incluye al menos una memoria (250) adaptada para almacenar datos en tiempo de ejecución para el dispositivo, y al menos un procesador (210) que está adaptado para ejecutar el código ejecutable por el procesador que, en respuesta a la ejecución, hace que el dispositivo de borde (311, 312, 341, 342, 343; 411) realice acciones, las acciones incluyen:
ejecutar una pluralidad de módulos (431, 432, 433),
en el que la pluralidad de módulos (431, 432, 433) se pueden componer juntos en una aplicación para el dispositivo de borde (311, 312, 341, 342, 343; 411), y
en el que los módulos de la pluralidad de módulos (431,432, 433) pueden usarse interoperablemente con otros módulos sin alterar los otros módulos;
habilitar las comunicaciones entre los módulos de la pluralidad de módulos (431,432, 433) y un servicio de soporte de loT (351; 451) de acuerdo con un contexto de seguridad común;
basándose en instrucciones de un servicio de soporte de loT (351; 451), modificar al menos un módulo de la pluralidad de módulos (431, 432, 433) para agregar una regla declarativa;
determinar si se ha activado la regla declarativa; y
en respuesta a la activación de la regla declarativa, comunicando la activación del evento a al menos un objetivo declarativo.
10. El aparato de la reivindicación 9, que incluye además las acciones, cuando se activa la regla declarativa basándose en que se ha determinado que ha ocurrido un evento particular, conectarse a una red y realizar una carga de datos.
11. El aparato de la reivindicación 9, en el que el al menos un objetivo declarativo incluye al menos un dispositivo de borde (311, 312, 341, 342, 343; 411).
12. El aparato de la reivindicación 9, en el que el al menos un objetivo declarativo incluye el servicio de soporte de loT (351; 451).
ES18721569T 2017-05-09 2018-04-11 Distribución de eventos en dispositivos de borde Active ES2882599T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762503787P 2017-05-09 2017-05-09
US15/784,046 US11221892B2 (en) 2017-05-09 2017-10-13 Distribution of events in edge devices
PCT/US2018/026990 WO2018208408A1 (en) 2017-05-09 2018-04-11 Distribution of events in edge devices

Publications (1)

Publication Number Publication Date
ES2882599T3 true ES2882599T3 (es) 2021-12-02

Family

ID=64096748

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18721569T Active ES2882599T3 (es) 2017-05-09 2018-04-11 Distribución de eventos en dispositivos de borde

Country Status (4)

Country Link
US (9) US10970138B2 (es)
EP (4) EP3622694B1 (es)
ES (1) ES2882599T3 (es)
WO (4) WO2018208409A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11740949B2 (en) 2017-05-09 2023-08-29 Microsoft Technology Licensing, Llc Distribution of events in edge devices

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10728043B2 (en) * 2015-07-21 2020-07-28 Entrust, Inc. Method and apparatus for providing secure communication among constrained devices
WO2017165708A1 (en) 2016-03-23 2017-09-28 FogHorn Systems, Inc. Efficient state machines for real-time dataflow programming
US10523662B2 (en) * 2016-09-16 2019-12-31 Sap Se In-memory database advanced programming model
US10425242B2 (en) * 2016-10-14 2019-09-24 Microsoft Technology Licensing, Llc IoT provisioning service
US10798216B2 (en) 2016-10-15 2020-10-06 Microsoft Technology Licensing, Llc Automatic provisioning of IoT devices
US11764991B2 (en) 2017-02-10 2023-09-19 Johnson Controls Technology Company Building management system with identity management
US10262019B1 (en) * 2017-09-22 2019-04-16 EMC IP Holding Company LLC Distributed management optimization for IoT deployments
US20190158370A1 (en) * 2017-11-17 2019-05-23 Electronics And Telecommunications Research Institute Computing system and method for intelligent ioe information framework
US10841156B2 (en) * 2017-12-11 2020-11-17 Ati Technologies Ulc Mobile application for monitoring and configuring second device
CN108632101B (zh) * 2018-05-31 2020-02-14 北京百度网讯科技有限公司 用于更新配置对象的方法和装置、边缘计算设备、介质
US10817275B2 (en) * 2018-06-28 2020-10-27 EMC IP Holding Company LLC Automated internet of things based software patching
US20200014591A1 (en) * 2018-07-06 2020-01-09 Hitachi, Ltd. Method and system of device deployment integrating with automatic configuration and asset management
US10187253B1 (en) * 2018-08-08 2019-01-22 CSG Media, LLC System and method for network provisioning using bulk ordering
US11080078B2 (en) 2018-09-19 2021-08-03 Microsoft Technology Licensing, Llc Processing files via edge computing device
US10834017B2 (en) * 2018-11-11 2020-11-10 International Business Machines Corporation Cloud-driven hybrid data flow and collection
CN109685202B (zh) * 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
US10430179B1 (en) * 2019-03-07 2019-10-01 Capital One Services, Llc Methods and systems for managing application configurations
US11616839B2 (en) 2019-04-09 2023-03-28 Johnson Controls Tyco IP Holdings LLP Intelligent edge computing platform with machine learning capability
CN111835578B (zh) * 2019-06-06 2021-10-15 北京骑胜科技有限公司 信息传输管理方法、信息传输管理装置及可读存储介质
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
WO2021033110A1 (en) * 2019-08-16 2021-02-25 Nubix, Inc. System and method for programming devices
US11874692B2 (en) 2019-08-16 2024-01-16 Nubix, Inc. Method for deploying containerized security technologies on embedded devices
US11875167B2 (en) 2020-03-23 2024-01-16 Nubix, Inc. Method for deploying containerized protocols on very small devices
US20210064981A1 (en) * 2019-08-26 2021-03-04 International Business Machines Corporation Controlling performance of deployed deep learning models on resource constrained edge device via predictive models
US11102064B2 (en) * 2019-08-28 2021-08-24 International Business Machines Corporation Dynamically adapting an internet of things (IOT) device
CN110738739B (zh) * 2019-10-22 2022-08-16 同济大学 一种面向机器人装配的数字孪生系统的构建系统
CN114586000A (zh) * 2019-10-31 2022-06-03 惠普发展公司,有限责任合伙企业 提供以用户为中心的应用
US11894944B2 (en) 2019-12-31 2024-02-06 Johnson Controls Tyco IP Holdings LLP Building data platform with an enrichment loop
US20210200912A1 (en) 2019-12-31 2021-07-01 Johnson Controls Technology Company Building data platform with graph based policies
US11163544B2 (en) * 2020-03-23 2021-11-02 David Lee Vertical solution integrator
US11537999B2 (en) 2020-04-16 2022-12-27 At&T Intellectual Property I, L.P. Facilitation of automated property management
US11810595B2 (en) 2020-04-16 2023-11-07 At&T Intellectual Property I, L.P. Identification of life events for virtual reality data and content collection
US11568987B2 (en) * 2020-04-17 2023-01-31 At&T Intellectual Property I, L.P. Facilitation of conditional do not resuscitate orders
US11568456B2 (en) 2020-04-17 2023-01-31 At&T Intellectual Property I, L.P. Facilitation of valuation of objects
CN111711994B (zh) * 2020-04-30 2022-08-02 成都慧简联信息科技有限公司 一种多通道LoRaWAN网关下行调度方法
US11677746B2 (en) * 2020-10-30 2023-06-13 Microsoft Technology Licensing, Llc Device capability model sharing
CN114531467B (zh) * 2020-11-04 2023-04-14 中移(苏州)软件技术有限公司 一种信息处理方法、设备和系统
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US11516311B2 (en) * 2021-01-22 2022-11-29 Avago Technologies International Sales Pte. Limited Distributed machine-learning resource sharing and request routing
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
US11769066B2 (en) * 2021-11-17 2023-09-26 Johnson Controls Tyco IP Holdings LLP Building data platform with digital twin triggers and actions
US11934966B2 (en) 2021-11-17 2024-03-19 Johnson Controls Tyco IP Holdings LLP Building data platform with digital twin inferences
US11704311B2 (en) 2021-11-24 2023-07-18 Johnson Controls Tyco IP Holdings LLP Building data platform with a distributed digital twin
US20230213901A1 (en) 2022-01-03 2023-07-06 Johnson Controls Tyco IP Holdings LLP Building management system with adaptive edge processing on local servers
US11757710B2 (en) * 2022-01-20 2023-09-12 International Business Machines Corporation Computer technology for security enforcement during edge computations
US20240111263A1 (en) * 2022-09-29 2024-04-04 Johnson Controls Tyco IP Holdings LLP Systems and methods for optimization and autoconfiguration of edge processing devices

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671809B1 (en) 2000-05-10 2003-12-30 General Dynamics Decision Systems, Inc. Software-defined communications system execution control
US7275098B1 (en) 2003-06-27 2007-09-25 Emc Corporation Methods and apparatus for administering software modules in a storage area network management application
US8131838B2 (en) 2006-05-31 2012-03-06 Sap Ag Modular monitor service for smart item monitoring
US9141410B2 (en) 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US9563480B2 (en) 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
US9841517B2 (en) 2012-09-28 2017-12-12 Wireless Seismic, Inc. Wireless seismic system with phased antenna array
US9853826B2 (en) 2013-02-25 2017-12-26 Qualcomm Incorporated Establishing groups of internet of things (IOT) devices and enabling communication among the groups of IOT devices
CN105453047B (zh) 2013-05-06 2019-12-10 康维达无线有限责任公司 提供物联网(iot)适配服务的系统和方法
US9350550B2 (en) 2013-09-10 2016-05-24 M2M And Iot Technologies, Llc Power management and security for wireless modules in “machine-to-machine” communications
KR101560470B1 (ko) 2014-01-07 2015-10-16 한국과학기술원 스마트 연결 장치 및 스마트 연결 장치를 활용하여 IoT 장치를 제어하기 위한 방법
US9727314B2 (en) 2014-03-21 2017-08-08 Ca, Inc. Composite virtual services
US20150288619A1 (en) 2014-04-04 2015-10-08 Minerva Networks, Inc. Distributed service management platform
US10248399B2 (en) 2014-05-28 2019-04-02 Samsung Electronics Co., Ltd Apparatus and method for controlling Internet of Things devices
US20160065653A1 (en) 2014-08-26 2016-03-03 Fujitsu Limited Internet of things (iot) device configuration construction
US10171371B2 (en) 2014-09-30 2019-01-01 International Business Machines Corporation Scalable metering for cloud service management based on cost-awareness
US20170257341A1 (en) * 2014-10-03 2017-09-07 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic generation of unique identifiers in a system of connected things
KR101943430B1 (ko) 2014-11-05 2019-01-29 삼성전자주식회사 사용자 장치, 사용자 장치의 구동방법, 서비스제공장치 및 서비스제공장치의 구동방법
GB2532432B (en) 2014-11-18 2021-09-08 Arm Ip Ltd Methods of accessing a remote resource from a data processing device
US20160149836A1 (en) 2014-11-26 2016-05-26 Ecrio, Inc. Communication and Messaging Architecture for Affiliated Real-Time Rich Communications Client Devices
US20160197773A1 (en) * 2015-01-07 2016-07-07 Kii, Inc. Techniques for sharing applications
US9262152B1 (en) 2015-01-22 2016-02-16 Bank Of America Corporation Modular system including management and deployment of software updates and revisions
US10762475B2 (en) 2015-02-25 2020-09-01 Siemens Schweiz Ag Digital twins for energy efficient asset maintenance
US10083291B2 (en) 2015-02-25 2018-09-25 Verisign, Inc. Automating internet of things security provisioning
US10673959B2 (en) * 2015-03-25 2020-06-02 Intel Corporation Accessing service of Internet of Things
EP3278213A4 (en) * 2015-06-05 2019-01-30 C3 IoT, Inc. SYSTEMS, METHODS AND DEVICES FOR AN APPLICATION DEVELOPMENT PLATFORM OF AN INTERNET OF THE THINGS OF A COMPANY
US10999380B2 (en) * 2015-06-05 2021-05-04 Convida Wireless, Llc Method and apparatus of interworking M2M and IoT devices and applications with different service layers
US10114618B2 (en) * 2015-06-08 2018-10-30 Cisco Technology, Inc. Autonomous mobile sensor movement path simulation with an integrated developer environment
US9606817B1 (en) 2015-06-23 2017-03-28 Symantec Corporation Systems and methods for virtualizing internet of things (IoT) devices
US9977415B2 (en) * 2015-07-03 2018-05-22 Afero, Inc. System and method for virtual internet of things (IOT) devices and hubs
KR20170042156A (ko) 2015-10-08 2017-04-18 삼성전자주식회사 전자 장치 및 전자 장치의 서비스 지원 방법
US9838359B2 (en) * 2015-10-29 2017-12-05 Ca, Inc. Separation of IoT network thing identification data at a network edge device
US10776080B2 (en) 2015-12-14 2020-09-15 Afero, Inc. Integrated development tool for an internet of things (IOT) system
US10631040B2 (en) 2015-12-14 2020-04-21 Afero, Inc. System and method for internet of things (IoT) video camera implementations
US10270827B2 (en) 2015-12-21 2019-04-23 Intel Corporation Telemetry based feedback for improved media streaming
US10083055B2 (en) 2016-02-12 2018-09-25 At&T Intellectual Property I, L.P. Management of IoT devices in a virtualized network
AU2017240796A1 (en) * 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
US11190438B2 (en) 2016-04-25 2021-11-30 Convida Wireless, Llc Twinning service for groups of internet of things (IOT) devices
US10187258B2 (en) 2016-04-26 2019-01-22 Cognito Networks, Inc. Creating and managing dynamic internet of things entities
US10908627B2 (en) 2016-05-25 2021-02-02 Alper Uzmezler Edge analytics control devices and methods
US10606818B2 (en) * 2016-06-21 2020-03-31 International Business Machines Corporation Sensor module registration and configuration
CN109314716B (zh) 2016-07-02 2022-03-29 英特尔公司 用于物联网的认知边缘处理
US10104672B2 (en) * 2016-08-09 2018-10-16 Wipro Limited Method and a system for identifying operating modes of communications in mobile edge computing environment
US10404569B2 (en) 2016-08-22 2019-09-03 General Electric Company Internet of things associate
US10778810B2 (en) 2016-09-25 2020-09-15 Salesforce.Com, Inc. Staging and deployment to multiple service clouds
US10089610B2 (en) * 2016-09-26 2018-10-02 The Toronto-Dominion Bank Automatic provisioning of services to network-connected devices
KR102389004B1 (ko) * 2016-10-07 2022-04-22 콘비다 와이어리스, 엘엘씨 일반적 상호연동 및 확장성을 위한 서비스 계층 리소스 관리
US10067994B2 (en) 2016-10-07 2018-09-04 Bank Of America Corporation Real time event capture and transformation of transient data for an information network
US20180137219A1 (en) 2016-11-14 2018-05-17 General Electric Company Feature selection and feature synthesis methods for predictive modeling in a twinned physical system
US10255067B2 (en) * 2016-11-22 2019-04-09 Sap Se Development of internet of things (IoT) applications
US11204808B2 (en) 2016-12-12 2021-12-21 Intel Corporation Offload computing protocol
US10362482B2 (en) 2016-12-21 2019-07-23 T-Mobile Usa, Inc. Network operation and trusted execution environment
WO2018128598A1 (en) 2017-01-04 2018-07-12 Intel Corporation Simulation of internet of things systems
US10268524B2 (en) 2017-01-31 2019-04-23 Moj.Io Inc. Processing telemetry data streams based on an operating state of the data source
US10120669B2 (en) 2017-03-09 2018-11-06 Nec Corporation System and method for deploying application components on distributed it resources
US10782668B2 (en) * 2017-03-16 2020-09-22 Siemens Aktiengesellschaft Development of control applications in augmented reality environment
US20180307472A1 (en) * 2017-04-20 2018-10-25 Sap Se Simultaneous deployment on cloud devices and on on-premise devices
US10305879B2 (en) 2017-04-29 2019-05-28 Cisco Technology, Inc. Restricting fake multicast service announcements
US10970138B2 (en) * 2017-05-09 2021-04-06 Microsoft Technology Licensing, Llc Modular applications using a common provisioning service
JP6881028B2 (ja) * 2017-05-24 2021-06-02 株式会社リコー 画像形成装置、システムおよび制御方法
US10521223B1 (en) 2017-08-22 2019-12-31 Wells Fargo Bank, N.A. Systems and methods of a metadata orchestrator augmenting application development
WO2019060758A1 (en) 2017-09-22 2019-03-28 Intel Corporation DEVICE MANAGEMENT SERVICES BASED ON NON-REST MESSAGING
US10262019B1 (en) 2017-09-22 2019-04-16 EMC IP Holding Company LLC Distributed management optimization for IoT deployments
US10476751B2 (en) 2017-10-19 2019-11-12 Microsoft Technology Licensing, Llc IoT cloud to cloud architecture
US10581798B2 (en) 2017-10-27 2020-03-03 At&T Intellectual Property I, L.P. Network based distribution for compute resource and application accessibility
US10620947B2 (en) 2018-02-15 2020-04-14 Wipro Limited Method and system for migrating monolithic enterprise applications to microservice architecture
US10728340B2 (en) 2018-03-29 2020-07-28 Servicenow, Inc. Internet of things (IOT) platform for device configuration management and support
US11140019B2 (en) 2018-06-01 2021-10-05 David M. Sherr Software-defined network resource provisioning architecture
US11438413B2 (en) 2019-04-29 2022-09-06 EMC IP Holding Company LLC Intelligent data storage and management for cloud computing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11740949B2 (en) 2017-05-09 2023-08-29 Microsoft Technology Licensing, Llc Distribution of events in edge devices

Also Published As

Publication number Publication date
EP3622696A1 (en) 2020-03-18
US11354175B2 (en) 2022-06-07
US10970138B2 (en) 2021-04-06
EP3622697A1 (en) 2020-03-18
WO2018208409A1 (en) 2018-11-15
US20180332117A1 (en) 2018-11-15
US11204816B2 (en) 2021-12-21
WO2018208406A1 (en) 2018-11-15
EP3622697B1 (en) 2022-11-02
US20180329968A1 (en) 2018-11-15
US11354174B2 (en) 2022-06-07
US20180329763A1 (en) 2018-11-15
WO2018208408A1 (en) 2018-11-15
EP3622696B1 (en) 2021-07-07
US20220004445A1 (en) 2022-01-06
EP3622695B1 (en) 2021-09-22
EP3622694A1 (en) 2020-03-18
US20180331901A1 (en) 2018-11-15
US20180331916A1 (en) 2018-11-15
EP3622695A1 (en) 2020-03-18
US20180332116A1 (en) 2018-11-15
US20180331906A1 (en) 2018-11-15
US11182224B2 (en) 2021-11-23
US11221892B2 (en) 2022-01-11
EP3622694B1 (en) 2023-03-29
US11204815B2 (en) 2021-12-21
US20200394087A1 (en) 2020-12-17
US11740949B2 (en) 2023-08-29
WO2018208407A1 (en) 2018-11-15
US10698747B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
ES2882599T3 (es) Distribución de eventos en dispositivos de borde
ES2887725T3 (es) Servicio de aprovisionamiento de IoT
US20200367057A1 (en) Single sign-in for iot devices
US10476751B2 (en) IoT cloud to cloud architecture
EP3535942B1 (en) Iot device authentication
CN110301131B (zh) 用于分层设备集合的上下文感知设备许可
US20240130002A1 (en) Technologies for wireless sensor networks