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 PDF

Info

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
Application number
ES13397517.7T
Other languages
English (en)
Inventor
Ari Metsäpelto
Timo Harju
Antti Nivala
Juha Lepola
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.)
M Files Oy
Original Assignee
M Files Oy
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 M Files Oy filed Critical M Files Oy
Application granted granted Critical
Publication of ES2691382T3 publication Critical patent/ES2691382T3/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates 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)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. 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. 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. 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. 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. 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. 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. 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 ejecuta
    siempre que el dispositivo cliente continúa accediendo al contenido (212) específico de la cámara (211) de documentos accedida.
  8. 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 ordenador
    configurado 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.
  9. 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.
  10. 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.
  11. 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 programa
    de ordenador un código que lleva a cabo un método según cualquiera de las reivindicaciones 1 a 6.
ES13397517.7T 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 Active ES2691382T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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