ES2691382T3 - Un método, un aparato y un producto de programa de ordenador para extender una aplicación en un dispositivo cliente - Google Patents
Un método, un aparato y un producto de programa de ordenador para extender una aplicación en un dispositivo cliente Download PDFInfo
- Publication number
- ES2691382T3 ES2691382T3 ES13397517.7T ES13397517T ES2691382T3 ES 2691382 T3 ES2691382 T3 ES 2691382T3 ES 13397517 T ES13397517 T ES 13397517T ES 2691382 T3 ES2691382 T3 ES 2691382T3
- Authority
- ES
- Spain
- Prior art keywords
- client device
- camera
- document
- extension elements
- document management
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Un método para adaptar aún más una aplicación (200) en un dispositivo cliente, comprendiendo el método: - formar una conexión desde el dispositivo cliente a un servidor (210), en donde el servidor (210) comprende una o más cámaras (211, 216) de documentos, comprendiendo cada cámara (211, 216) de documentos contenido (212, 218) para la aplicación (200) y elementos (215, 217) de extensión específicos de cámara, en donde dicha aplicación (200) es una aplicación de gestión de documentos de un sistema operativo del dispositivo cliente, cuya aplicación de gestión de documentos se ha extendido con elementos de extensión de espacio de nombres de shell; - acceder a contenido (212) específico de una cámara (211) de documentos de la una o más cámaras (211, 216) de documentos en el servidor (210) por el dispositivo cliente; - recibir uno o más elementos (215) de extensión específicos de cámara de la cámara (211) de documentos accedida, cuyos elementos (215) de extensión específicos de cámara están configurados para extender aún más los elementos de extensión de espacio de nombres de shell en dicho dispositivo cliente y en donde dichos uno o más elementos de extensión comprenden lógica de software en forma de instrucciones de lenguaje de programación; - ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar los elementos de extensión de espacio de nombres de shell de la aplicación de gestión de documentos en el dispositivo cliente según dicho uno o más elementos (215) de extensión específicos de cámara recibidos, en donde la lógica de software se ejecuta siempre que el dispositivo cliente continúe accediendo al contenido (212) específico de la cámara (211) de documentos accedida.
Description
5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Un método, un aparato y un producto de programa de ordenador para extender una aplicación en un dispositivo cliente
Campo de la invención
La presente invención se refiere a una solución para extender una aplicación en un dispositivo cliente.
Antecedentes de la invención
Las funcionalidades de software se pueden extender o adaptar con otro software o módulos de software. La Interfaz de Programación de Aplicaciones (API) es una técnica por medio de la cual un software se puede usar por programas en lugar de usar el software por un usuario a través de una interfaz de usuario. Agregado, enchufable, complemento y extensión son ejemplos de componentes por medio de los cuales se pueden adaptar funcionalidades de aplicaciones. Tal componente normalmente comprende lógica de programa. La lógica de programa se incorpora a la aplicación de destino, por lo que la lógica puede utilizar la interfaz de programación de aplicaciones con el fin de lograr la adaptación de la funcionalidad de la aplicación de destino.
“Microsoft Windows™” es un sistema operativo que tiene un sistema de gestión de archivos, que incluye una interfaz de usuario, como parte del sistema operativo. El sistema de gestión de archivos de Windows funciona en la aplicación “Windows Explorer”, pero también puede funcionar en otras aplicaciones que se ejecutan en el sistema operativo si necesitan características de gestión de archivos. El sistema de gestión de archivos de Windows comprende la aplicación “Windows Explorer” (“Explorer.exe”) y otros módulos de programa, como librerías de enlace dinámico (DLL), una de las cuales se denomina “Shell32.dll” en varias versiones del sistema operativo Windows. Uno o más de estos módulos de programa también pueden funcionar en otras aplicaciones que se ejecutan en el sistema operativo si la aplicación o las aplicaciones necesitan características de gestión de archivos. Por ejemplo, partes relevantes del sistema de gestión de archivos de Windows funcionan en aplicaciones de procesamiento de textos (por ejemplo, “Microsoft Word”, “Apache OpenOffice Writer”) y otros tipos de aplicaciones, algunas de las cuales son parte del sistema operativo Windows y algunas de las cuales están instaladas en la parte superior del sistema operativo, proveyendo a tales aplicaciones una funcionalidad comúnmente necesaria, tal como una interfaz de usuario para abrir archivos y guardar archivos de un sistema de archivos.
El sistema de gestión de archivos de Windows está principalmente dirigido a gestión genérica de la presencia de archivos y ubicación física. El sistema de gestión de archivos de Windows se puede adaptar según las situaciones de uso (por ejemplo, búsquedas de imágenes o archivos de música), pero tal adaptación se lleva a cabo mediante una funcionalidad incorporada de Windows. Esto significa que la funcionalidad de gestión de archivos no está adaptada según el contenido de una forma que se desvía de la forma en que el sistema operativo se ha programado inicialmente. El sistema de gestión de archivos de Windows también se puede adaptar más allá de la funcionalidad incorporada de Windows con una técnica de Extensión de Espacio de Nombres de Shell (una técnica de Microsoft). Cuando el sistema de gestión de archivos de Windows se adapta con la técnica de Extensión de Espacio de Nombres de Shell, las extensiones del sistema de gestión de archivos se instalan en un ordenador local. Tales extensiones (extensiones de espacio de nombres de shell) son módulos de programa, típicamente librerías de enlace dinámico (DLL). La extensión se puede usar de esta manera constantemente con independencia de la situación de uso. Además, la extensión se puede utilizar según reglas que se han programado para la extensión en sí misma. Esto significa que cualquier cambio en la funcionalidad de extensión necesita ser instalado por separado en cada dispositivo cliente.
Una publicación US 2010/0005476 describe un dispositivo electrónico adaptado para ser conectado de forma extraíble a una estación central, en donde el dispositivo electrónico incluye una aplicación portátil adaptada para ser ejecutada en la estación central y al menos en una interfaz de módulo asegurada. El dispositivo comprende además un módulo de extensión o complemento para la aplicación portátil, en donde el módulo de extensión está adaptado para establecer comunicación con el módulo asegurado cuando la aplicación portátil se ejecuta en la estación central.
Una publicación EP 0 810 524 describe un método para operar un ordenador servidor local de una red cliente- servidor, en donde se recibe una solicitud de un ordenador cliente. Se hace una determinación de si la solicitud requiere una información generada dinámicamente desde un objeto servlet de la red cliente-servidor. Si es así, se puede cargar un objeto servlet específico correspondiente a la solicitud desde un ordenador servidor remoto de la red cliente-servidor. El objeto servlet especificado entonces se ejecuta para obtener información generada dinámicamente correspondiente a la solicitud.
Una publicación US 2010/0122271 describe un sistema que ejecuta un complemento para un navegador web. Durante la operación, el sistema obtiene el complemento como un módulo de código nativo y ejecuta el módulo de código nativo en un entorno de tiempo de ejecución seguro. El sistema permite la comunicación entre el módulo de código nativo y el navegador web proporcionando un puente de interfaz entre el módulo de código nativo y el navegador web.
5
10
15
20
25
30
35
40
45
50
55
La publicación US 2012/0117609 describe un sistema servidor que recibe e instala múltiples complementos de proveedor de notificaciones. Cada uno de los complementos de proveedor de notificaciones implementa la misma interfaz de software. Cada uno de los complementos de proveedor de notificaciones puede proporcionar notificaciones que afirman cosas diferentes. Las notificaciones proporcionadas por los complementos de proveedor de notificaciones se pueden usar para controlar el acceso de los usuarios a un recurso.
La funcionalidad genérica del sistema de gestión de archivos de Windows no se puede extender exclusivamente vinculándola a un cierto propósito de uso, y la extensión necesita ser muy discreta con el fin de no perturbar otros propósitos de uso de la gestión de archivos. Por esta y otras razones bien conocidas entre los profesionales familiarizados con el sistema de gestión de archivos de Windows, la creación de extensiones de espacio de nombres de shell requiere habilidades especiales de programación y consume mucho tiempo, haciendo la técnica de extensión de espacio de nombres de shell en su forma tradicional inadecuada o indeseable si el sistema de gestión de archivos de Windows necesita ser adaptado a varios propósitos de uso diferentes y limitados.
Compendio de la invención
Ahora se ha inventado un método mejorado y un equipo técnico que implementa el método, mediante el cual una aplicación de gestión de documentos de un dispositivo cliente, cuya aplicación de gestión de documentos se basa en Extensión de Espacio de Nombres de Shell, puede ser especializada según diferentes propósitos. Varios aspectos de la invención incluyen un método, un dispositivo cliente y un medio legible por ordenador que comprende un programa de ordenador almacenado en el mismo, que se caracterizan por lo que se establece en las reivindicaciones independientes. Varias realizaciones de la invención se describen en las reivindicaciones dependientes.
Según un primer aspecto, un método para extender una aplicación en un dispositivo cliente, comprende formar una conexión desde el dispositivo cliente a un servidor con el fin de acceder a una cámara de documentos en el servidor; recibir uno o más elementos de extensión desde la cámara de documentos, en donde dichos uno o más elementos de extensión comprenden lógica de software; ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar una aplicación de gestión de documentos del dispositivo cliente según dichos uno o más elementos de extensión.
Según un segundo aspecto, un dispositivo cliente comprende un procesador, una memoria que incluye un código de programa de ordenador, la memoria y el código de programa de ordenador configurados para, con el procesador, hacer que el dispositivo cliente realice al menos lo siguiente: formar una conexión a un servidor con el fin de acceder a una cámara de documentos en el servidor; recibir uno o más elementos de extensión desde la cámara de documentos, en donde dichos uno o más elementos de extensión comprenden lógica de software; ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar una aplicación de gestión de documentos según dichos uno o más elementos de extensión.
Según un tercer aspecto, un producto de programa de ordenador comprende un medio legible por ordenador que lleva un código de programa de ordenador incorporado en el mismo para su uso con un ordenador, comprendiendo el código de programa de ordenador: código para formar una conexión desde un dispositivo cliente a un servidor con el fin de acceder a una cámara de documentos en el servidor; código para recibir uno o más elementos de extensión desde la cámara de documentos, en donde dichos uno o más elementos de extensión comprenden lógica de software; código para ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar una aplicación de gestión de documentos del dispositivo cliente según dichos uno o más elementos de extensión.
Según una realización, la adaptación de la aplicación de gestión de documentos comprende afectar a una parte de la aplicación de gestión de documentos que es una extensión de un sistema de gestión de archivos del sistema operativo del aparato.
Según una realización, una interfaz de usuario de la aplicación de gestión de documentos se adapta según uno o más elementos de extensión.
Según una realización, la adaptación de la aplicación de gestión de documentos se mantiene siempre que el dispositivo cliente esté usando la cámara de documentos.
Según una realización, el dispositivo cliente es capaz de acceder a más de una cámara de documentos, en donde al menos dos de las cámaras de documentos comprenden elementos de extensión individuales, por lo que una aplicación de gestión de documentos del dispositivo cliente se adapta según uno o más elementos de extensión de tal cámara de documentos, a la que el dispositivo cliente está accediendo en ese momento.
Según una realización, se solicita a un usuario del dispositivo cliente un permiso para ejecutar la lógica de software en dicho dispositivo cliente.
Según una realización, un elemento de extensión comprende además una firma digital que autentica el origen del elemento de extensión.
5
10
15
20
25
30
35
40
45
50
55
Descripción de los dibujos
A continuación, se describirán varias realizaciones de la invención con más detalle con referencia a los dibujos adjuntos, en los que
La Fig. 1 muestra un ejemplo de un sistema de gestión de documentos; y La Fig. 2 muestra un ejemplo de la presente realización.
Descripción detallada de las realizaciones
A continuación, se describirán varias realizaciones de la invención en el contexto de un sistema de gestión de documentos tal como M-Files® del solicitante. Se ha de observar, sin embargo, que la invención no está limitada a tal sistema de gestión de documentos. De hecho, las diferentes realizaciones tienen aplicaciones ampliamente en cualquier entorno cliente-servidor donde el software de cliente se basa en Extensión de Espacio de Nombres de Shell. Sin embargo, a continuación, el término “sistema de gestión de documentos” se refiere al sistema de gestión de datos, sistema de gestión de contenidos, sistema de gestión de contenido empresarial, donde M-Files® es un ejemplo. El sistema de gestión de documentos se integra en Windows por medio de Extensión de Espacio de Nombres de Shell. Esto significa que el contenido del sistema de gestión de documentos se muestra como parte del sistema de gestión de archivos de Windows.
El propósito de las presentes realizaciones es adaptar la funcionalidad del sistema de gestión de documentos extendiendo la funcionalidad del sistema de gestión de archivos de Windows de tal manera que la Extensión de Espacio de Nombres de Shell del software de cliente para el sistema de gestión de documentos se pueda adaptar según cualquier situación donde se usen archivos y documentos del sistema de gestión de documentos.
La Figura 1 ilustra un ejemplo simplificado de un sistema de gestión de documentos. El sistema comprende al menos un servidor 100 configurado para almacenar documentos y archivos. El servidor 100 puede tener diferentes cámaras de documentos (es decir, almacenamientos de documentos) para diferentes propósitos. El sistema de gestión de documentos también comprende uno o más dispositivos cliente 101, 102, 103 que tienen un acceso al servidor 100 y a los documentos almacenados en el mismo. En el ejemplo de la Figura 1, un dispositivo cliente 101 recupera un documento D1 del servidor 100, por el cual un dispositivo cliente 103 almacena un documento D2 en el servidor. Cada uno de los dispositivos cliente 101, 102, 103 comprende un software de cliente que proporciona una vista del contenido del servidor 100. El software de cliente del sistema de gestión de documentos comprende una Extensión de Espacio de Nombres de Shell, por la que la visualización del contenido del sistema de gestión de documentos se visualiza según el sistema operativo del dispositivo cliente.
A continuación, se describe una solución para extender (es decir, adaptar) tal software de cliente del sistema de gestión de documentos. La adaptación puede tener efecto solamente cuando sea necesario, por lo que la adaptación se puede realizar para servir solamente a un propósito de uso limitado. Por esto, se puede lograr una mejora notable en la experiencia del usuario en la gestión de documentos y contenidos. Esto se debe a que en lugar de o además de las funciones genéricas, es posible realizar una función diseñada independientemente para cada uso.
Aclaremos esto con un ejemplo. La gestión genérica de archivos en Windows es capaz de proporcionar funciones genéricas tales como Añadir archivo o Eliminar archivo al usuario. Cuando un software de cliente de un sistema de gestión de documentos extiende el sistema de gestión de archivos de Windows con una Extensión de Espacio de Nombres de Shell hacia la gestión genérica de documentos, entonces el software de cliente se asemeja al sistema de gestión de archivos genérico, proporcionando funciones tales como Añadir documento, Eliminar documento, Añadir archivo a un documento de múltiples archivos, Revisar, Registrarse.
Un software de cliente de un sistema de gestión de documentos que se adapta aún más, por otro lado, puede proporcionar funciones adaptadas para diferentes industrias o propósitos. Como ejemplo, un sistema de gestión de contenidos para Recursos Humanos puede proporcionar funciones tales como Contratar un empleado o Despedir un empleado, y puede dejar de lado las funciones genéricas de gestión de archivos. Como otro ejemplo, un sistema de gestión de archivos para el cuidado de la salud puede proporcionar una función adicional tal como Diagnosticar una imagen de rayos X. Por medio de métodos tradicionales, no ha sido posible una extensión dinámica de un software de cliente basado en Extensión de Espacio de Nombres de Shell de un sistema de gestión de documentos para propósitos específicos.
Las presentes realizaciones proporcionan una solución, por medio de la cual las Extensiones de Espacio de Nombres de Shell en un sistema de gestión de documentos se pueden extender aún más para propósitos específicos de una manera sensible al contexto. Esto se puede lograr almacenando extensiones de software de cliente con los documentos almacenados en la cámara de documentos que reside en el servidor del sistema de gestión de documentos. El contenido de la cámara de documentos se puede usar a través de la gestión de archivos de Windows, aparentemente como parte del sistema de gestión de archivos de Windows, por medio del software de cliente y extensión o extensiones de software de cliente del sistema de gestión de documentos. Cuando un software de cliente se usa por el dispositivo cliente para navegar en la cámara de documentos, los elementos de extensión
5
10
15
20
25
30
35
40
45
50
55
60
concernientes a esta cámara de documentos se transmiten al software de cliente y se usan según las presentes realizaciones. En otras palabras, lógica del programa, tal como instrucciones de programación que se incorporan en los elementos de extensión se almacenan en cámaras de documentos que se sitúan en el servidor, pero se ejecutan en el software de cliente mientras el software de cliente está usando la cámara de documentos que almacena los elementos de extensión.
En una realización, la interfaz de usuario del software de cliente se implementa como extensión de la aplicación Windows Explorer (y de otras aplicaciones que usan el sistema de gestión de archivos de Windows), por la cual el sistema de gestión de archivos de Windows llega a estar adaptado de una manera específica de la industria cuando se accede a los documentos/archivos desde la cámara de documentos relacionada con la industria en cuestión del sistema de gestión de documentos.
Técnicamente, el software de cliente para el sistema de gestión de documentos se puede implementar entre otras cosas por la técnica de Extensión de Espacio de Nombres de Shell de Windows, y también adapta el sistema de gestión de archivos de Windows cuando se usan cámaras de documentos del sistema de gestión de documentos a través del sistema de gestión de archivos de Windows. Los elementos de extensión que se originan desde las cámaras de documentos están configurados para extender incluso más la operación del componente de Extensión de Espacio de Nombres de Shell. Por lo tanto, las realizaciones de la presente solución se refieren particularmente a extender constantemente el elemento de extensión instalado dinámicamente según la cámara de documentos usada.
La Figura 2 ilustra un ejemplo de una realización. Un servidor 210 almacena dos cámaras 211, 216 de documentos, que en este ejemplo son una cámara 211 de documentos para recursos humanos (HR) y una cámara 216 de documentos médicos. Ambas cámaras 211, 216 de documentos almacenan documentos 212, 218 y elementos 215, 217 de extensión para un software 200 de cliente. El software 200 de cliente tiene un sistema 201 de gestión de archivos (por ejemplo, Windows) que comprende estructuras 205, 207 que reflejan el contenido del servidor. Cada una de estas estructuras 205, 207 corresponde a una cierta cámara 211, 216 de documentos en el servidor 210. Además, cada una de estas estructuras 205, 207 proporciona un acceso a los datos en la cámara 211, 216 de documentos correspondiente. Se puede observar a partir de la Fig. 2 que las estructuras 205, 207 comprenden datos de los elementos 215, 217 de extensión, respectivamente. Los elementos 215, 217 de extensión se han transferido al software 200 de cliente para ponerlos en vigor en el software de cliente. Se ha de observar que estos elementos de extensión se utilizan solamente cuando el software de cliente ejecuta el contenido de tal cámara de documentos donde se origina el elemento de extensión.
Los elementos de extensión pueden personalizar asuntos específicos de la interfaz de usuario del software de cliente, tales como añadir/eliminar/modificar comandos, cambiar colores, crear manejadores de eventos, etc. Como proceso, la personalización se realiza ejecutando la lógica de software del elemento de extensión en el cliente, es decir, ejecutando instrucciones de lenguaje de programación que se incorporan en los elementos de extensión. Los elementos de extensión se pueden proporcionar como componentes de agregado que extienden la operación del software de cliente.
En la realización anterior, los elementos de extensión se almacenan en la cámara de documentos en el servidor. Esto hace que los elementos de extensión sean más fáciles de entregar, instalar, actualizar y mantener para el software de cliente. Además, asegura al servidor que los elementos de extensión se usan realmente en el software de cliente. Además, hace más fácil la gestión del contenido y los elementos de extensión asociados para los administradores del sistema, debido a que los elementos de extensión se almacenan junto con el contenido en la cámara de documentos en el servidor, haciendo por lo tanto que los elementos de extensión se incluyan en las copias de seguridad de la cámara de documentos, aliviando a los administradores del sistema de la tarea de aplicar procedimientos de copia de seguridad adicionales a los elementos de extensión. También, llega a ser más fácil mover o copiar el contenido y los elementos de extensión asociados desde un servidor a otro. Se aprecia que los elementos de extensión también se pueden almacenar en el dispositivo cliente. Sin embargo, en tal caso, cada uno de los elementos de extensión necesita ser actualizado y mantenido por separado, lo que disminuye las ventajas antes mencionadas. Los elementos de extensión también se pueden almacenar en el servidor, pero fuera de la cámara de documentos (es decir, sin ser considerados que son parte del contenido general de la cámara de documentos que se almacena en el servidor). Sin embargo, en tal caso, no se logran algunas de las ventajas antes mencionadas.
Almacenar elementos de extensión en una cámara de documentos en un servidor, transferir los elementos de extensión desde el servidor al cliente y adaptar el comportamiento del software de cliente ejecutando instrucciones de programación incorporadas en los elementos de extensión crea retos adicionales que no están presentes en las soluciones tradicionales en las que los usuarios o administradores de sistemas instalan explícitamente aplicaciones o extensiones de software en ordenadores locales. Uno de los retos está relacionado con la seguridad de los ordenadores locales. Los usuarios de un sistema de gestión de documentos típicamente permiten que una aplicación cliente de un sistema de gestión de documentos se ejecute en el ordenador local del usuario. Tal permiso se da implícitamente por el usuario instalando la aplicación cliente. Sin embargo, no es deseable que tal permiso permitiese también que otros módulos de software, creados potencialmente por diferentes proveedores o personas, se ejecuten en el ordenador del usuario.
5
10
15
20
25
30
35
40
45
50
55
60
El reto es incluso mayor en un sistema de gestión de documentos en el que el software de cliente comprende una Extensión de Espacio de Nombres de Shell, debido a que las Extensiones de Espacio de Nombres de Shell se pueden ejecutar potencialmente dentro del proceso de cualquier aplicación que el usuario haya instalado en el ordenador local. Como consecuencia, cualquier elemento de extensión que el sistema de gestión de documentos use para adaptar el software de cliente para un propósito específico también se puede ejecutar potencialmente en cualquier aplicación, lo que crea un riesgo de seguridad debido a que los elementos de extensión en el servidor se podrían crear por proveedores o personas arbitrarios no de confianza del usuario del ordenador local. Este entorno operativo difiere del entorno operativo de los sistemas de gestión de documentos tradicionales, la interfaz de usuario de los cuales está basada en una aplicación dedicada separada del sistema de gestión de documentos, en lugar de estar basada en una Extensión de Espacio de Nombres de Shell que extiende el sistema de gestión de archivos de Windows como en la presente realización. Desde el punto de vista de la seguridad, una interfaz de usuario que se basa en una aplicación dedicada separada es más fácil de extender y adaptar debido a que el entorno de ejecución de tal aplicación es bien conocido y se puede controlar completamente mediante el sistema de gestión de documentos. También, el entorno operativo descrito de la presente realización difiere de otros sistemas de gestión de documentos tradicionales que están basados en la web, es decir, a los que se accede por el usuario con un navegador web. Un navegador web es similar a una aplicación separada y dedicada, en que proporciona un entorno de ejecución aislado y opcionalmente restringido o de “entorno aislado”, haciendo más fácil extender y adaptar la interfaz de usuario sin introducir riesgos de seguridad para el usuario. Sin embargo, estos enfoques alternativos no pueden proporcionar el mismo nivel de integración con el sistema de gestión de archivos de Windows como puede hacerlo un sistema de gestión de documentos basado en Extensión de Espacio de Nombres de Shell, haciendo deseable desarrollar medios que permitan el uso seguro de elementos de extensión en un software de cliente que se basa en una Extensión de Espacio de Nombres de Shell.
En una realización, los retos de seguridad descritos anteriormente se resuelven utilizando algoritmos criptográficos para calcular, en un servidor, una comprobación aleatoria (o “firma”) de los elementos de extensión que incorporan instrucciones de programación; cifrar la comprobación aleatoria con la clave privada de un certificado de seguridad emitido por una organización en la que se supone que el usuario confía; asociar la “firma digital” resultante con el elemento de extensión; y utilizar una clave pública en un ordenador cliente para presentar al usuario una información verificada sobre la identidad de la parte que creó la extensión o la puso a disposición en la cámara de documentos. Entonces, se presenta al usuario un cuadro de diálogo con una interfaz de usuario que acepta o rechaza el elemento de extensión correspondiente. Los métodos de firma digital de contenido son bien conocidos en la técnica, y por lo tanto no se describe en detalle el proceso de firma digital de elementos de extensión.
Si los requisitos de seguridad son menos estrictos, se puede omitir el uso de firmas digitales y se puede presentar al usuario de la aplicación cliente una simple pregunta de si el usuario permite que un elemento de extensión se ejecute en el ordenador del usuario. Aunque este enfoque protege al usuario contra la ejecución de elementos de extensión arbitrarios sin el consentimiento del usuario, no es suficiente en muchos casos de uso práctico debido a que el usuario no tiene una base razonable para decidir qué elementos de extensión permitir que se ejecuten y cuáles no. Esto conduce fácilmente al usuario o bien a rechazar todos los elementos de extensión (incluso los seguros y necesarios), o bien a aceptar todos los elementos de extensión (incluso los desconocidos y arriesgados). Debido a esto, es deseable el uso de elementos de extensión firmados digitalmente.
Además, en una realización, los riesgos de seguridad se mitigan proporcionando un entorno de ejecución separado y restringido (“entorno aislado”) para ejecutar el código incorporado en los elementos de extensión. El entorno aislado puede comprender uno o más procesos adicionales creados por el sistema de gestión de documentos en el ordenador local. El software de cliente del sistema de gestión de documentos puede asegurar que cualquier código incorporado en los elementos de extensión que pudiera plantear riesgos de seguridad si se ejecuta en el entorno de ejecución por defecto, se ejecuta en el “entorno aislado”. O, el software de cliente puede ejecutar todo código incorporado en los elementos de extensión en el “entorno aislado”. El código que se ejecuta en tal “entorno aislado” puede comunicar con el entorno de ejecución por defecto de la Extensión de Espacio de Nombres de Shell por medio de comunicación entre procesos, tal como el Modelo de Objetos Componentes (COM), conductos con nombre, o conexiones.
Los elementos de extensión pueden extender la funcionalidad de la Extensión de Espacio de Nombres de Shell implementada por el sistema de gestión de documentos, pero también la funcionalidad del software de cliente del sistema de gestión de documentos en general. Los elementos de extensión también pueden extender la funcionalidad de todas de tales aplicaciones que están usando el sistema de gestión de archivos de Windows a través de las llamadas vistas de “Diálogos Comunes”.
La descripción anterior usa ejemplos donde Windows es el sistema operativo y la técnica para hacer las extensiones relacionadas con el sistema operativo para el software es Extensión de Espacio de Nombres de Shell. Sin embargo, las presentes realizaciones se pueden utilizar en otros sistemas operativos y sus técnicas de extensión también.
Las diversas realizaciones de la invención se pueden implementar con la ayuda de un código de programa de ordenador que reside en una memoria y hace que los aparatos pertinentes lleven a cabo la invención. Por ejemplo, un dispositivo cliente puede comprender circuitería y electrónica para manejar, recibir y transmitir datos, un código de programa de ordenador en una memoria y un procesador que, cuando se ejecuta el código de programa de
ordenador, hace que el dispositivo cliente lleve a cabo las características de una realización. Aún más, un dispositivo servidor puede comprender circuitería y electrónica para manejar, recibir y transmitir datos, un código de programa de ordenador en una memoria y un procesador que, cuando se ejecuta el código de programa de ordenador, hace que el dispositivo servidor lleve a cabo las características de una realización.
5 Es obvio que la presente invención no está limitada únicamente a las realizaciones presentadas anteriormente, sino que se puede modificar dentro del alcance de las reivindicaciones adjuntas.
Claims (11)
- 5101520253035404550REIVINDICACIONES1. Un método para adaptar aún más una aplicación (200) en un dispositivo cliente, comprendiendo el método:- formar una conexión desde el dispositivo cliente a un servidor (210), en donde el servidor (210) comprende una o más cámaras (211, 216) de documentos, comprendiendo cada cámara (211, 216) de documentos contenido (212, 218) para la aplicación (200) y elementos (215, 217) de extensión específicos de cámara, en donde dicha aplicación (200) es una aplicación de gestión de documentos de un sistema operativo del dispositivo cliente, cuya aplicación de gestión de documentos se ha extendido con elementos de extensión de espacio de nombres de shell;- acceder a contenido (212) específico de una cámara (211) de documentos de la una o más cámaras (211,216) de documentos en el servidor (210) por el dispositivo cliente;- recibir uno o más elementos (215) de extensión específicos de cámara de la cámara (211) de documentos accedida, cuyos elementos (215) de extensión específicos de cámara están configurados para extender aún más los elementos de extensión de espacio de nombres de shell en dicho dispositivo cliente y en donde dichos uno o más elementos de extensión comprenden lógica de software en forma de instrucciones de lenguaje de programación;- ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar los elementos de extensión de espacio de nombres de shell de la aplicación de gestión de documentos en el dispositivo cliente según dicho uno o más elementos (215) de extensión específicos de cámara recibidos, en donde la lógica de software se ejecuta siempre que el dispositivo cliente continúe accediendo al contenido (212) específico de la cámara (211) de documentos accedida.
- 2. El método según la reivindicación 1, en donde la adaptación de la aplicación de gestión de documentos comprende afectar a una parte de la aplicación de gestión de documentos.
- 3. El método según la reivindicación 1, comprendiendo además- adaptar una interfaz de usuario de la aplicación (200) de gestión de documentos según uno o más elementos (215) de extensión específicos de cámara.
- 4. El método según la reivindicación 1, en donde el dispositivo cliente es capaz de acceder a más de una cámara (211, 216) de documentos, en donde al menos dos de las cámaras (211, 216) de documentos comprenden elementos (215, 217) de extensión específica de cámara individual, en donde la aplicación de gestión de documentos del dispositivo cliente está adaptada según uno o más elementos (215, 217) de extensión específicos de cámara de la cámara (211, 216) de documentos a la que el dispositivo cliente tiene acceso actual en ese momento.
- 5. El método según la reivindicación 1, comprendiendo además- solicitar a un usuario del dispositivo cliente un permiso para ejecutar la lógica de software en dicho dispositivo cliente.
- 6. El método según la reivindicación 1, en donde un elemento de extensión comprende además una firma digital que autentica el origen del elemento de extensión.
- 7. Un dispositivo cliente que comprende un procesador, una memoria que incluye un código de programa de ordenador, la memoria y el código de programa de ordenador configurados para, con el procesador, hacer que el dispositivo cliente realice al menos lo siguiente:- formar una conexión a un servidor (210), donde el servidor (210) comprende una o más cámaras (211, 216) de documentos, cada cámara (211, 216) de documentos que comprende contenido (212, 218) para una aplicación (200) del dispositivo cliente y elementos (215, 217) de extensión específicos de cámara, en donde dicha aplicación (200) es una aplicación de gestión de documentos de un sistema operativo del dispositivo cliente, cuya aplicación de gestión de documentos se ha extendido con elementos de extensión de espacio de nombres de shell;- acceder a contenido (212) específico de una cámara (211) de documentos de la una o más cámaras (211,216) de documentos en el servidor (210);- recibir uno o más elementos (215) de extensión específicos de cámara de la cámara (211) de documentos accedida, cuyos elementos (215) de extensión específicos de cámara están configurados para extender aún más los elementos de extensión de espacio de nombres de shell en el dispositivo cliente y en donde dichos uno o más elementos de extensión comprenden lógica de software en forma de instrucciones de lenguaje de programación;- ejecutar la lógica de software en dicho dispositivo cliente con el fin de adaptar los elementos de extensión de espacio de nombres de shell de la aplicación de gestión de documentos en el dispositivo cliente según dichos uno o más elementos (215) de extensión específicos de cámara recibidos, en donde la lógica de software se ejecutasiempre que el dispositivo cliente continúa accediendo al contenido (212) específico de la cámara (211) de documentos accedida.
- 8. El dispositivo cliente según la reivindicación 7, en donde la adaptación de la aplicación de gestión de documentos está configurada para afectar a una parte de la aplicación de gestión de documentos.5 9. El dispositivo cliente según la reivindicación 7, comprendiendo además un código de programa de ordenadorconfigurado para, con el procesador, hacer que el dispositivo cliente realice al menos lo siguiente:- adaptar una interfaz de usuario de la aplicación de gestión de documentos según el uno o más elementos (215) de extensión específicos de cámara.
- 10. El dispositivo cliente según la reivindicación 7, en donde el dispositivo cliente es capaz de acceder a más de una 10 cámara (211, 216) de documentos, en donde al menos dos de las cámaras (211, 216) de documentos comprenden elementos (215, 217) de extensión específicos de cámara individuales, en donde la aplicación de gestión de documentos del dispositivo cliente está adaptada según uno o más elementos (215, 217) de extensión específicos de cámara de la cámara (211, 216) de documentos a la cual el dispositivo cliente tiene acceso actual en ese momento.15 11. El dispositivo cliente según la reivindicación 7, comprendiendo además- recibir un permiso de un usuario para ejecutar la lógica de software en dicho dispositivo cliente.
- 12. El dispositivo cliente según la reivindicación 7, en donde un elemento de extensión comprende además una firma digital que autentica el origen del elemento de extensión.
- 13. Un producto de programa de ordenador que comprende un medio legible por ordenador que lleva un código de 20 programa de ordenador incorporado en el mismo para uso con un ordenador, comprendiendo el código de programade ordenador un código que lleva a cabo un método según cualquiera de las reivindicaciones 1 a 6.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201213537695 | 2012-06-29 | ||
US13/537,695 US9135030B2 (en) | 2012-06-29 | 2012-06-29 | Method, an apparatus and a computer program product for extending an application in a client device |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2691382T3 true ES2691382T3 (es) | 2018-11-27 |
Family
ID=48748138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13397517.7T Active ES2691382T3 (es) | 2012-06-29 | 2013-06-12 | Un método, un aparato y un producto de programa de ordenador para extender una aplicación en un dispositivo cliente |
Country Status (3)
Country | Link |
---|---|
US (1) | US9135030B2 (es) |
EP (1) | EP2680140B1 (es) |
ES (1) | ES2691382T3 (es) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US8180891B1 (en) | 2008-11-26 | 2012-05-15 | Free Stream Media Corp. | Discovery, access control, and communication with networked services from within a security sandbox |
US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
US20140366045A1 (en) * | 2013-06-07 | 2014-12-11 | Microsoft Corporation | Dynamic management of composable api sets |
US11030385B2 (en) | 2015-03-30 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enhanced preview technology for application add-ins |
US10642532B2 (en) | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928323A (en) | 1996-05-30 | 1999-07-27 | Sun Microsystems, Inc. | Apparatus and method for dynamically generating information with server-side software objects |
US5974549A (en) * | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US6775835B1 (en) * | 1999-07-30 | 2004-08-10 | Electric Planet | Web based video enhancement apparatus method and article of manufacture |
US6883168B1 (en) * | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US7000230B1 (en) * | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
WO2002019082A2 (en) * | 2000-08-31 | 2002-03-07 | Computer Associates Think, Inc. | Method and system for messaging |
US20030079052A1 (en) * | 2001-10-24 | 2003-04-24 | Kushnirskiy Igor Davidovich | Method and apparatus for a platform independent plug-in |
EP1355231A3 (en) * | 2001-11-21 | 2003-10-29 | Sun Microsystems, Inc. | Processing data files using plug-ins |
US7269833B2 (en) * | 2001-12-12 | 2007-09-11 | Sun Microsystems, Inc. | Scriptable plug-in application programming interface |
US7069562B2 (en) * | 2001-12-12 | 2006-06-27 | Sun Microsystems, Inc. | Application programming interface for connecting a platform independent plug-in to a web browser |
US7231523B1 (en) * | 2003-09-02 | 2007-06-12 | Sun Microsystems, Inc. | Method and apparatus for facilitating secure extension of an application |
US20050149213A1 (en) * | 2004-01-05 | 2005-07-07 | Microsoft Corporation | Media file management on a media storage and playback device |
US20060069689A1 (en) * | 2004-06-08 | 2006-03-30 | Gregory Karklins | Method for accessing and browsing a PLC provided within a network |
US7624086B2 (en) * | 2005-03-04 | 2009-11-24 | Maxsp Corporation | Pre-install compliance system |
US20060265508A1 (en) * | 2005-05-02 | 2006-11-23 | Angel Franklin J | System for administering a multiplicity of namespaces containing state information and services |
US7630999B2 (en) * | 2005-07-15 | 2009-12-08 | Microsoft Corporation | Intelligent container index and search |
US7599954B2 (en) * | 2005-08-18 | 2009-10-06 | Microsoft Corporation | Customizing a file open dialog using a namespace extension to allow searching |
US8239882B2 (en) * | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
US20080288301A1 (en) * | 2006-02-03 | 2008-11-20 | Zywave, Inc. | Data processing system and method |
US8589955B2 (en) * | 2008-02-12 | 2013-11-19 | Nuance Communications, Inc. | System and method for building applications, such as customized applications for mobile devices |
US8220035B1 (en) * | 2008-02-29 | 2012-07-10 | Adobe Systems Incorporated | System and method for trusted embedded user interface for authentication |
US7512661B1 (en) * | 2008-03-31 | 2009-03-31 | International Business Machines Corporation | Mounting email addresses in a file system |
US9058483B2 (en) * | 2008-05-08 | 2015-06-16 | Google Inc. | Method for validating an untrusted native code module |
FR2933510B1 (fr) | 2008-07-04 | 2010-10-15 | Oberthur Technologies | Dispositif electronique portable comprenant une application portable et un module securise pouvant communiquer entre eux, et procede de communication associe |
US8675000B2 (en) * | 2008-11-07 | 2014-03-18 | Google, Inc. | Command buffers for web-based graphics rendering |
US8294723B2 (en) * | 2008-11-07 | 2012-10-23 | Google Inc. | Hardware-accelerated graphics for web applications using native code modules |
US8352967B2 (en) | 2008-11-10 | 2013-01-08 | Google Inc. | Safe browser plugins using native code modules |
US20100318609A1 (en) * | 2009-06-15 | 2010-12-16 | Microsoft Corporation | Bridging enterprise networks into cloud |
US8195824B2 (en) * | 2009-10-28 | 2012-06-05 | Samsung Electronics Co., Ltd | User service profile-based plug-in update method and apparatus for internet protocol television service |
US8468146B2 (en) * | 2010-04-13 | 2013-06-18 | Infosys Limited | System and method for creating search index on cloud database |
US8667480B1 (en) * | 2010-04-19 | 2014-03-04 | Google Inc. | Automatically updating browser extensions, and applications thereof |
CN103403694B (zh) * | 2010-09-13 | 2019-05-21 | 索尼电脑娱乐美国公司 | 附加组件管理 |
US8869038B2 (en) * | 2010-10-06 | 2014-10-21 | Vistracks, Inc. | Platform and method for analyzing real-time position and movement data |
US8694988B2 (en) * | 2010-10-22 | 2014-04-08 | Adobe Systems Incorporated | Runtime extensions |
US8689004B2 (en) | 2010-11-05 | 2014-04-01 | Microsoft Corporation | Pluggable claim providers |
US8775554B2 (en) * | 2010-12-30 | 2014-07-08 | Microsoft Corporation | Cloud-based web page applications for extending functionality |
JP5773787B2 (ja) * | 2011-07-21 | 2015-09-02 | キヤノン株式会社 | 情報処理装置およびその制御方法およびプログラム |
US20130055369A1 (en) * | 2011-08-24 | 2013-02-28 | Mcafee, Inc. | System and method for day-zero authentication of activex controls |
US9262148B2 (en) * | 2011-09-12 | 2016-02-16 | Microsoft Technology Licensing, Llc | Modular architecture for distributed system management |
US20130166697A1 (en) * | 2011-12-22 | 2013-06-27 | Gregory P. Manning | Multiconfiguration device cloud entity protocol |
-
2012
- 2012-06-29 US US13/537,695 patent/US9135030B2/en active Active
-
2013
- 2013-06-12 EP EP13397517.7A patent/EP2680140B1/en active Active
- 2013-06-12 ES ES13397517.7T patent/ES2691382T3/es active Active
Also Published As
Publication number | Publication date |
---|---|
EP2680140A2 (en) | 2014-01-01 |
EP2680140B1 (en) | 2018-07-18 |
US9135030B2 (en) | 2015-09-15 |
US20140007262A1 (en) | 2014-01-02 |
EP2680140A3 (en) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2691382T3 (es) | Un método, un aparato y un producto de programa de ordenador para extender una aplicación en un dispositivo cliente | |
US10305937B2 (en) | Dividing a data processing device into separate security domains | |
JP5296106B2 (ja) | セキュアなブラウザベースのアプリケーション | |
EP3238120B1 (en) | Binary translation of a trusted binary with input tagging | |
US10341119B2 (en) | Apparatuses and methods for trusted module execution | |
US9860253B2 (en) | System and method for embedding first party widgets in third-party applications | |
US20140365755A1 (en) | Firmware authentication | |
EP3238129A1 (en) | Input verification | |
BR112013030584B1 (pt) | Sistema e método para preservar referências em caixas de areia, e mídia de armazenamento não transitório legível por computador | |
US20220309182A1 (en) | System and method for performing trusted computing with remote attestation and information isolation on heterogeneous processors over open interconnect | |
US20130067585A1 (en) | Separate script context to isolate malicious script | |
US9734137B2 (en) | Secure third-party document editing | |
US20190065405A1 (en) | Security aware non-speculative memory | |
US8826005B1 (en) | Security for software in a computing system | |
BR112014017283B1 (pt) | Método implementado por máquina, meio legível por máquina tangível e dispositivo compreendendo um atualizador de aplicação | |
US20050210448A1 (en) | Architecture that restricts permissions granted to a build process | |
JP2023015177A (ja) | ハードウェアの信頼できる実行環境の待ち時間の低減 | |
JP6898519B2 (ja) | 暗号化キーのセキュリティ | |
Yason | Diving Into IE 10’s Enhanced Protected Mode Sandbox | |
US20230367892A1 (en) | Secure embedded web browser | |
Allen | Windows Vista Application Development Requirements for User Account Control Compatibility | |
US20240171543A1 (en) | Protectively displaying specific fields in specific views of a secure interface | |
US20160088018A1 (en) | System and method for configuring a computer system according to security policies | |
US10248412B2 (en) | Sharing applications by modifying attributes | |
Aley et al. | Interacting with Other Software |