Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.

Sistema para ampliar las capacidades de un dispositivo integrado, que comprende:

un dispositivo integrado

(102) que comprende un motor de procesado del cliente (206) y por lo menos un archivo de plantillas estáticas (208);

un ordenador anfitrión (106) que tiene un cliente (104) capaz de ejecutar el motor de procesado del cliente (206);

una red de comunicaciones (108) para permitir la comunicación entre el dispositivo integrado (102) y el ordenador anfitrión (106);

por lo menos un canal de comunicación (210) gestionado controlado por el motor de procesado del cliente (206); y

por lo menos un conjunto de datos dinámicos (204) transmitidos ya sea (i) del dispositivo integrado (102) al cliente (104) o (ii) del cliente (104) al dispositivo integrado (102);

en el que, el dispositivo integrado (102) proporciona el motor de procesado del cliente (206) y dicho por lo menos un archivo de plantillas estáticas (208) al cliente (104); y

en el que, el motor de procesado del cliente (206):

analiza sintácticamente de manera funcional dicho por lo menos un archivo de plantillas estáticas (208);

utiliza de manera funcional dicho por lo menos un canal de comunicación (210) gestionado para solicitar dicho por lo menos un conjunto de datos dinámicos (204); y

realiza de manera funcional la generación de contenidos mediante un proceso seleccionado de entre el grupo constituido por la transformación, manipulación, acumulación y cualquiera de sus combinaciones,

utilizando información derivada de dicho por lo menos un archivo de plantillas estáticas (208) y dicho por lo menos un conjunto de datos dinámicos (204).

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E11174944.

Solicitante: VORNE INDUSTRIES, INC.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 1445 INDUSTRIAL DRIVE ITASCA, IL 60143 ESTADOS UNIDOS DE AMERICA.

Inventor/es: VORNE,Ramon,A, SAKS,Benjamin,D, TANG,Ke.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION H — ELECTRICIDAD > TECNICA DE LAS COMUNICACIONES ELECTRICAS > TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION... > Disposiciones, aparatos, circuitos o sistemas no... > H04L29/08 (Procedimiento de control de la transmisión, p. ej. procedimiento de control del nivel del enlace)

PDF original: ES-2524311_T3.pdf

 

google+ twitter facebookPin it
Ilustración 1 de Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.
Ilustración 2 de Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.
Ilustración 3 de Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.
Ilustración 4 de Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.
Ver la galería de la patente con 12 ilustraciones.
Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.

Fragmento de la descripción:

Método y sistema para ampliar las capacidades de dispositivos integrados a través de clientes de red.

Antecedentes

La presente invención se refiere a dispositivos integrados conectados a redes que tienen clientes tales como navegadores web que se ejecutan en uno o más ordenadores anfitriones.

Los dispositivos integrados (es decir, dispositivos que combinan software y hardware electrónicos y posiblemente piezas mecánicas u otros componentes, y que están diseñados específicamente para ejecutar una función o tarea dedicada; por ejemplo, máquinas expendedoras, electrodomésticos, controladores de motores, impresoras) se diseñan frecuentemente para funcionar en combinación con ordenadores anfitriones con el fin de proporcionar características tales como interfaces de usuario mejoradas (que usan la pantalla del ordenador anfitrión), acceso remoto (a través de una red a la cual están conectados tanto el ordenador anfitrión como el dispositivo integrado), y modernizaciones de microprogramas (cargando una versión nueva del microprograma en el dispositivo integrado desde el ordenador anfitrión). Aprovechando las capacidades y los recursos del ordenador anfitrión, el dispositivo integrado puede superar las restricciones de recursos internos que son inherentes debido a las limitaciones de coste y/o tamaño del dispositivo integrado. Estas restricciones se manifiestan frecuentemente como limitaciones en la cantidad de memoria (por ejemplo, bytes de memoria de acceso aleatorio) y/o el poder de procesado (por ejemplo, velocidad del procesador, tamaño del bus de datos, conjunto de instrucciones, y periféricos incorporados) del dispositivo integrado.

Centrándose más en la cuestión de las restricciones de memoria en los dispositivos integrados, resulta particularmente preocupante la memoria de acceso aleatorio (RAM). Típicamente, los microcontroladores de un solo chip, que con frecuencia se usan en dispositivos integrados, tienen una RAM limitada y se basan en otros tipos de memoria (por ejemplo, memoria flash) para almacenar programas y otros datos constantes. Por ejemplo, una plataforma de microprocesador actualmente popular para dispositivos integrados es la ARM7. Dos de los proveedores líderes de ARM7, Atmel Corporation y NXP Semiconductors, ofrecen ambos, dispositivos ARM7 con conectividad de red (en forma de controladores de acceso a los medios de Ethernet). La familia AT91SAM7X de Atmel proporciona una memoria flash que es cuatro veces la cantidad de memoria RAM (por ejemplo, el AT91SAM7XC512 de gama alta incluye una flash de 512 KB y una RAM de 128 KB). La diferencia es aún más pronunciada en el NXP LPC2368, que incluye 512 KB de flash y solamente 58 KB de RAM. Puesto que la RAM es frecuentemente un recurso muy limitado en dispositivos integrados, resulta especialmente deseable reducir el uso de RAM en dispositivos integrados.

Dos técnicas comunes para aprovechar las capacidades y los recursos de los ordenadores anfitriones son: i) instalar software personalizado en cada ordenador anfitrión que interaccionará con el dispositivo integrado, o ii) incorporar un servidor HTTP en el dispositivo integrado que genere contenido adecuado para un cliente HTTP (es decir, un navegador web) en el ordenador anfitrión. Cada método tiene sus puntos fuertes y sus puntos débiles.

Un punto fuerte del software personalizado es que permite que los dispositivos integrados, limitados en cuanto a recursos, aprovechen exhaustivamente las capacidades y los recursos del ordenador anfitrión, debido a la capacidad del software personalizado de acceder a y controlar muchos aspectos del ordenador anfitrión.

Un punto débil del software personalizado es que típicamente necesita ser instalado y mantenido en cada ordenador anfitrión que accederá al dispositivo integrado. En la práctica, esto frecuentemente resulta farragoso, consume mucho tiempo, y es caro, especialmente en entornos comerciales en los que típicamente solo a los departamentos de IT se les permite instalar software. Cada versión nueva del software personalizado requiere actualizaciones o instalaciones nuevas, y con frecuencia surgen problemas de compatibilidad debido a interacciones entre el software personalizado y versiones diferentes de sistemas operativos del ordenador, combinaciones diferentes de otras aplicaciones de software personalizado instaladas en el ordenador anfitrión, y/o desadaptaciones entre versiones del software personalizado y versiones de los dispositivos integrados.

Un punto fuerte de incorporar un servidor HTTP en el dispositivo integrado es que proporciona un cliente que ocupa un "espado cero", lo cual significa que se puede usar un cliente HTTP convencional (por ejemplo, un navegador web) de un ordenador anfitrión para acceder al dispositivo integrado desde cualquier ordenador anfitrión que tenga instalado el cliente. Puesto que la gran mayoría de ordenadores personales tienen navegadores web pre-instalados, esto constituye una mejora principal con respecto al software personalizado.

Un punto débil de la incorporación de un servidor HTTP en el dispositivo integrado es que las restricciones de recursos del dispositivo integrado, tales como las limitaciones antes mencionadas de memoria y poder de procesado, pueden tener un impacto importante en la experiencia del usuario en términos de i) calidad, tal como la facilidad de utilización de una interfaz de usuario o la sofisticación de un informe que pueda ser generado, ii) cantidad, tal como el tamaño de un informe que pueda ser generado o el tamaño de un archivo que pueda ser leído,

Ni) sensibilidad, tal como la rapidez con la que el dispositivo integrado puede generar contenido solicitado, y/o iv) escalabilidad, tal como el número de clientes a los que se puede prestar servicio simultáneamente.

Aunque existen tecnologías disponibles que proporcionan grados variables de procesado del lado del cliente (por ejemplo, el Reproductor Flash® de Adobe Systems Incorporated, OpenLaszlo de Laszlo Systems Incorporated, y el Entorno en Tiempo de Ejecución Java de Sun Microsystems Incorporated), estas tecnologías típicamente no están diseñadas u optimizadas de manera específica para trabajar con dispositivos integrados, y, por lo tanto, típicamente no tienen en cuenta los requisitos y limitaciones especiales de los dispositivos integrados de recursos restringidos. Como consecuencia, las tecnologías existentes padecen en general uno o más de los siguientes problemas:

1. No están diseñadas para minimizar explícitamente el uso de memoria (por ejemplo, RAM y/o flash) y/o el ancho de banda de procesado en el servidor (es decir, dispositivo integrado) y, por lo tanto, pueden no ejecutarse de manera eficaz en dispositivos integrados de recursos restringidos.

2. No proporcionan herramientas para leer, escribir, y/o manipular de manera arbitraria archivos grandes cuando se tienen en cuenta los recursos limitados de los dispositivos integrados.

3. No están diseñadas para actualizar dinámicamente contenido o lo hacen de manera ineficaz.

4. No separan limpiamente el contenido estático (que puede ser almacenado en memoria caché por el cliente) del contenido dinámico.

5. No están diseñadas para un procesado general en el lado del cliente (por ejemplo, se centran en el procesado de la capa de presentación).

6. Requieren herramientas de desarrollo privativas (por ejemplo, disponibles solamente en una empresa en particular, y/o solamente para una plataforma en particular) limitando de este modo las opciones de desarrollo.

7. Requieren componentes del lado del servidor, lenguajes de programación y/o lenguajes de guión de instrucciones (scripting) que en general no están disponibles para los dispositivos integrados o que resultan adecuados de manera deficiente... [Seguir leyendo]

 


Reivindicaciones:

1. Sistema para ampliar las capacidades de un dispositivo integrado, que comprende:

un dispositivo integrado (102) que comprende un motor de procesado del cliente (206) y por lo menos un archivo de plantillas estáticas (208);

un ordenador anfitrión (106) que tiene un cliente (104) capaz de ejecutar el motor de procesado del cliente (206);

una red de comunicaciones (108) para permitir la comunicación entre el dispositivo integrado (102) y el ordenador anfitrión (106);

por lo menos un canal de comunicación (210) gestionado controlado por el motor de procesado del cliente (206); y

por lo menos un conjunto de datos dinámicos (204) transmitidos ya sea (i) del dispositivo integrado (102) al cliente (104) o (ii) del cliente (104) al dispositivo integrado (102);

en el que, el dispositivo integrado (102) proporciona el motor de procesado del cliente (206) y dicho por lo menos un archivo de plantillas estáticas (208) al cliente (104); y

en el que, el motor de procesado del cliente (206):

analiza sintácticamente de manera funcional dicho por lo menos un archivo de plantillas estáticas (208);

utiliza de manera funcional dicho por lo menos un canal de comunicación (210) gestionado para solicitar dicho por lo menos un conjunto de datos dinámicos (204); y

realiza de manera funcional la generación de contenidos mediante un proceso seleccionado de entre el grupo constituido por la transformación, manipulación, acumulación y cualquiera de sus combinaciones,

utilizando información derivada de dicho por lo menos un archivo de plantillas estáticas (208) y dicho por lo menos un conjunto de datos dinámicos (204).

2. Sistema según la cláusula 1, en el que el dispositivo integrado (102) se comunica simultáneamente de manera funcional con una pluralidad de clientes (104), siendo cada uno de ellos capaz de ejecutar un motor de procesado del cliente (206) proporcionado por el dispositivo integrado (102).

3. Sistema según cualquiera de las reivindicaciones anteriores, en el que el motor de procesado del cliente (206) está configurado de por lo menos una de las siguientes maneras:

el motor de procesado del cliente (206) se comunica con una pluralidad de dispositivos integrados (102) utilizando una pluralidad de canales de comunicación gestionados (210);

el motor de procesado del cliente (206) genera de manera funcional una pluralidad de tipos de contenido a partir de un único archivo de plantillas estáticas (208), siendo opcionalmente cada tipo de contenido generado seleccionado de entre el grupo constituido por informes, documentos, hojas de cálculo, páginas web y cualquiera de sus combinaciones;

el motor de procesado del cliente (206) está compuesto por un código escrito en JavaScript;

el motor de procesado del cliente (206) utiliza un único archivo de plantillas estáticas (208) con una pluralidad de conjuntos de datos dinámicos (204) para generar contenido; y

el motor de procesado del cliente (206) recupera componentes adicionales de sí mismo utilizando canales de comunicación gestionados.

4. Sistema según la reivindicación 1 o 2, en el que, cuando el motor de procesado del cliente (206) utiliza un único archivo de plantillas estáticas (208) con una pluralidad de conjuntos de datos dinámicos (204) para generar contenido, presentando cada conjunto de datos dinámicos (204) la misma forma y representando variaciones sustancialmente de la misma información, y estando opcionalmente configurado de por lo menos una de las siguientes maneras:

cada conjunto de datos dinámicos (204) representa una versión más reciente de información contenida dentro de un conjunto de datos dinámicos (204) previo, y por lo menos una parte del contenido generado se actualiza en el tiempo basándose en el conjunto de datos dinámicos (204) más reciente; y

cada conjunto de datos dinámicos (204) se transforma en una parte de contenido, y se acumula con otras de dichas partes de contenido para crear un contenido generado final.

5. Sistema según cualquiera de las reivindicaciones anteriores, en el que dicho por lo menos un archivo de plantillas estáticas está configurado de por lo menos una de las siguientes maneras:

dicho por lo menos un archivo de plantillas estáticas comprende por lo menos una instrucción de incluir por lo menos un archivo de plantilla estática por referencia;

dicho por lo menos un archivo de plantillas estáticas (208) comprende unas instrucciones de generación de informe, comprendiendo opcionalmente las instrucciones de generación de informe una de entre las siguientes: instrucciones de diseño de página, instrucciones de formateo de datos, y cualquiera de sus combinaciones; y

dicho por lo menos un archivo de plantillas estáticas (208) comprende uno de entre las siguientes instrucciones: instrucciones literales, instrucciones abstractas y cualquiera de sus combinaciones.

6. Sistema según cualquiera de las reivindicaciones anteriores, en el que dicho por lo menos un conjunto de datos dinámicos (204) proporciona información en tiempo real.

7. Sistema según cualquiera de las reivindicaciones anteriores, que comprende además un mecanismo de almacenamiento en memoria caché del cliente para almacenar en memoria caché uno de entre los siguientes: el motor de procesado del cliente (206), dicho por lo menos un archivo de plantillas estáticas (208), y cualquiera de sus combinaciones.

8. Sistema según cualquiera de las reivindicaciones anteriores, en el que el dispositivo Integrado (102) almacena de forma comprimida uno de entre los siguientes: el motor de procesado del cliente (206), dicho por lo menos un archivo de plantillas estáticas (208), y cualquiera de sus combinaciones, siendo opcionalmente la forma comprimida

gzip.

9. Sistema según cualquiera de las reivindicaciones anteriores, en el que el dispositivo integrado (102) comunica al cliente (104) en forma comprimida uno de entre los siguientes: el motor de procesado del cliente (206), dicho por lo menos un archivo de plantillas estáticas (208), dicho por lo menos un conjunto de datos dinámicos (204), y cualquiera de sus combinaciones, siendo opclonalmente la forma comprimida gzip.

10. Sistema según cualquiera de las reivindicaciones anteriores, en el que dicho por lo menos un conjunto de datos dinámicos (204) comprende por lo menos uno de entre datos de formato JSON y datos de formato XML.

11. Sistema según cualquiera de las reivindicaciones anteriores, en el que dicho por lo menos un canal de comunicación gestionado (210) se implementa utilizando uno de entre los siguientes: XMLHttpRequest, manipulación de documentos, y cualquiera de sus combinaciones.

12. Sistema según cualquiera de las reivindicaciones anteriores, en el que el contenido generado comprende elementos seleccionados de entre el grupo constituido por diagramas, gráficos, tablas, Informes, documentos, hojas de cálculo, dibujos, páginas web, y cualquiera de sus combinaciones.

13. Sistema según cualquiera de las reivindicaciones anteriores, estando configurado de una de las siguientes maneras:

las solicitudes de conjuntos de datos dinámicos (204) comprenden por lo menos una sentencia SELECT SQL; y

dicho por lo menos un conjunto de datos dinámicos (204) se asegura por cifrado.

14. Sistema según cualquiera de las reivindicaciones anteriores, en el que el sistema se utiliza para fabricar aplicaciones de gestión de rendimiento.