ES2659651T3 - Integración ininterrumpida de múltiples entornos informáticos - Google Patents

Integración ininterrumpida de múltiples entornos informáticos Download PDF

Info

Publication number
ES2659651T3
ES2659651T3 ES07700748.2T ES07700748T ES2659651T3 ES 2659651 T3 ES2659651 T3 ES 2659651T3 ES 07700748 T ES07700748 T ES 07700748T ES 2659651 T3 ES2659651 T3 ES 2659651T3
Authority
ES
Spain
Prior art keywords
environment
environments
computing environments
base
user
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
ES07700748.2T
Other languages
English (en)
Inventor
Ran Kohavi
Ran Oelgiesser
Yizhak Levy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2659651T3 publication Critical patent/ES2659651T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

Un sistema de supervisión de unificación para integrar una pluralidad de entornos informáticos (12.1 - 12.n), en el que dicha pluralidad de entornos informáticos se encuentran disponibles para su uso simultáneo por un único usuario, comprendiendo cada uno de dichos entornos informáticos un agente propio de una pluralidad de agentes, estando configurado cada agente propio de dicha pluralidad de agentes para proporcionar información con respecto a su entorno informático respectivo y para gestionar dicho entorno informático respectivo según sea indicado por dicho supervisor de unificación, en el que uno de dicha pluralidad de entornos se selecciona como un entorno base (12.1, 220), en el que dicho supervisor de unificación (16) se encuentra en comunicación con dicha pluralidad de agentes, estando configurado dicho supervisor de unificación para recibir dicha información a partir de dicha pluralidad de agentes, para realizar una orientación centralizada de dicha pluralidad de entornos informáticos de acuerdo con dicha información recibida y con el fin de incorporar entornos informáticos que no sean dicho entorno base en dicho entorno base, y para emitir instrucciones a dicha pluralidad de agentes para llevar a cabo dicha orientación, para dotar de ese modo a dicho usuario de un entorno de trabajo unificado, y en el que dicho supervisor de unificación comprende un sincronizador de ajustes de usuario (24, 300) que está configurado para mantener la consistencia de los ajustes de usuario entre dicho entorno base y dichos entornos informáticos que no sean dicho entorno base mediante la sincronización de los ajustes de usuario de dichos entornos informáticos que no sean dicho entorno base con los ajustes de usuario de dicho entorno base.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Integración ininterrumpida de múltiples entornos informáticos Campo y antecedentes de la invención
La presente invención se refiere a dotar, a un usuario que trabaja en múltiples entornos informáticos, de un único entorno unificado y, más concretamente pero no de forma exclusiva, a la integración ininterrumpida de múltiples entornos informáticos en una infraestructura de tecnología de la información (TI).
La creciente complejidad y variaciones en la implementación de entornos informáticos en la infraestructura de TI moderna han creado la necesidad de posibilitar que un único usuario trabaje de forma concurrente en múltiples entornos informáticos, teniendo cada uno características diferentes.
Los ejemplos de trabajar dentro de múltiples entornos informáticos incluyen:
1. El uso simultáneo de aplicaciones en ejecución en sistemas operativos diferentes (tales como Windows y Unix) o una versión diferente del mismo sistema operativo (tal como Windows 95 y Windows XP).
2. El uso simultáneo de aplicaciones que no pueden coexistir en el mismo entorno, por ejemplo debido a que las mismas usan versiones diferentes de bibliotecas compartidas (por ejemplo, DLL).
3. La necesidad de compatibilidad con versiones anteriores, por ejemplo, para posibilitar que los usuarios ejecuten varias versiones de la misma aplicación para fines tales como acceder al contenido producido por versiones previas de la aplicación.
4. La necesidad de acceder a entornos heredados tales como aplicaciones de gran sistema.
5. El uso simultáneo de aplicaciones en ejecución en entornos diferentes, o incluso infraestructuras o redes informáticas diferentes. Por ejemplo, agentes y revendedores que necesitan acceder a los entornos informáticos de más de un suministrador o proveedor de servicios, empleados de organizaciones que pasaron por una fusión o adquisición, usuarios remotos tales como vendedores que necesitan conectar Internet y la red corporativa.
6. Asegurar un entorno informático y recursos de red frente a amenazas externas de seguridad.
7. Requisitos normativos o empresariales para separar entornos que contienen datos regulados a partir de otros entornos y, en concreto, a partir de entornos orientados hacia el exterior, tales como Internet.
8. Creación de una mayor estabilidad global al separar entornos estables e inestables. Por ejemplo, con el fin de permitir que los empleados usen un PC doméstico no administrado para acceder a los recursos de la organización, o para permitir que los empleados creen un entorno en el que los mismos puedan instalar, evaluar y usar aplicaciones no administradas y personales.
Abordar estas necesidades de una forma que sea adecuada para el uso del día a día requiere una solución que mantenga el aislamiento entre los diversos entornos. Esto evita que los entornos informáticos planteen riesgos de seguridad y de estabilidad entre sí y evita un acceso no autorizado a los datos. No obstante, el aislamiento real del entorno en función de la separación física entre ordenadores y redes da como resultado una experiencia de usuario mala, evitando a veces una transferencia de datos empresariales esencial, y complicando inmensamente las operaciones y el flujo de trabajo.
Por lo tanto, un requisito de cualquier solución designada para el uso del día a día es crear una experiencia de usuario que sea tan carente de problemas y transparente como sea posible, reduciendo de este modo la incomodidad y la cantidad de entrenamiento que necesita el usuario para operar de forma simultánea dentro de múltiples entornos informáticos y simplificando el uso del día a día, minimizando los errores humanos y reduciendo las llamadas de asistencia.
Varias soluciones existentes abordan el problema mediante la provisión de una solución limitada a una o más de las cuestiones que se han analizado en lo que antecede.
Cuando se aborda el aislamiento de entornos, las máquinas virtuales (tales como VMWare y Microsoft virtual PC) y las tecnologías de escritorios remotos (tales como Terminal Services y Citrix) proporcionan unos medios para crear un entorno aislado, o bien encima del sistema anfitrión existente del usuario o bien mediante el acceso a un entorno físicamente separado dentro de un servidor.
Ambas soluciones permiten que un único usuario trabaje en otros entornos además de su entorno anfitrión, al tiempo que se proporciona una separación entre los entornos (es decir, evitando que los datos entren o salgan del entorno), asegurando de este modo que el entorno está verdaderamente aislado.
Un inconveniente de estos enfoques es que a veces se requiere una transferencia de datos, debido a que la mayor parte de los usuarios dependen de transferir datos entre las diversas aplicaciones que los mismos usan de forma simultánea para realizar actividades empresariales del día a día. En la actualidad hay dos enfoques principales para la transferencia de datos entre entornos:
1. Una separación completa, sin conectividad o transferencia de datos alguna, dando habitualmente como resultado incomodidad para el usuario.
5
10
15
20
25
30
35
40
45
50
55
2. Posibilitar determinadas transferencias de datos como operaciones de portapapeles, arrastrar y soltar o compartir determinadas ubicaciones de archivo. No obstante, una vez habilitados, los entornos están expuestos a riesgos de seguridad entre sí.
En la actualidad, solo un número limitado de aplicaciones, tales como Citrix Presentation Server y algunos complementos para Terminal Services, combinan las ventanas locales y remotas en un único entorno de escritorio al proporcionar una integración de ventanas ininterrumpida, permitir una integración de portapapeles, y así sucesivamente. No obstante, estas soluciones no abordan todas las cuestiones en relación con la unificación de entornos informáticos, tales como sincronizar entornos y ajustes de usuario, compartir impresoras, incorporar el acceso de usuario a las aplicaciones en ejecución en un entorno diferente, de una forma que sea transparente para el usuario. Adicionalmente, estas soluciones no se encuentran disponibles para plataformas virtualizadas (por ejemplo, VMWare y Microsoft Virtual PC).
Una cuestión adicional que se ha de abordar con el fin de proporcionar una experiencia de usuario cómoda es el procedimiento por medio del cual se elige uno de los entornos informáticos para una operación de usuario dada. Hoy en día, el enfoque más común es requerir que el usuario elija de forma manual un entorno. Esto puede dar lugar a errores humanos e incomodidad.
Un enfoque alternativo para seleccionar un entorno informático actual (que se implementa por ejemplo en Citrix Presentation Server) crea un mecanismo que permite que un administrador elija si una aplicación o tipo de datos específico se procesan de forma local o en el ordenador remoto. No obstante, este enfoque no permite decisiones granulares de una forma por archivo, tal como en función del entorno de origen del archivo.
Un escenario importante diferente para la unificación de entornos informáticos es una constelación de sistemas en la que uno o más de los entornos informáticos son entornos virtuales. Un análisis de las limitaciones de los intentos actuales de integrar máquinas virtuales en un único entorno de usuario se halla en el artículo de Raymond Chen titulado “Running old programs in a virtual machine doesn’t necessarily create a good user experience", en blogs.msdn.com/oldnewthing/archive/2005/10/05/477317.aspx. Los problemas mencionados con las soluciones actuales incluyen:
1. El usuario ha de iniciar sesión en, y / o iniciar, de forma manual, cada uno de los entornos informáticos.
2. Con el fin de operar aplicaciones en múltiples entornos informáticos, el usuario ha de moverse de forma manual entre los entornos diferentes.
3. Barras de tareas separadas para cada entorno
4. Una transferencia de datos problemática entre entornos
5. Controles de teclado diferentes para cada entorno
En el caso de uso de un entorno virtualizado, las solicitudes de patente 20060136910, 20060136911 y 20060136912 sugieren un concepto de permitir el acceso a varios entornos virtuales, ejecutándose potencialmente en la misma máquina de usuario, usando una consola de unificación. No obstante, estos enfoques no aplican el caso en el que uno de los entornos informáticos es el entorno anfitrión del usuario o un escritorio remoto.
Por lo tanto, ninguno de los enfoques actualmente disponibles proporciona una solución que es apropiada para un entorno de usuario variado, que puede incluir máquinas virtuales, la máquina anfitrión del usuario y / o escritorios remotos. Además, ninguna de las soluciones existentes tiene éxito en la unificación de todos los aspectos de la experiencia del usuario de una forma transparente y sin causar molestias al usuario.
Existe una necesidad de una solución segura que pueda proporcionar una experiencia de usuario carente de problemas (similar a la de un único entorno) con independencia de las plataformas subyacentes (tales como máquinas virtuales o escritorios remotos) o sistemas operativos. La solución debería incluir un control mejorado de la transferencia de datos entre entornos informáticos y procedimientos mejores para seleccionar un entorno informático para una operación dada.
Por lo tanto, existe una necesidad generalmente reconocida de, y sería muy ventajoso tener, un sistema y procedimiento para integrar múltiples entornos informáticos en un entorno unificado carente de las limitaciones anteriores.
El documento US 2006/0010433 A1 se refiere a sistemas y procedimientos para proporcionar una compatibilidad de soporte lógico ininterrumpida usando máquinas virtuales (VM, virtual machine). Este proporciona unos medios en el entorno anfitrión para invocar directamente uno o más archivos o aplicaciones de sistema operativo invitado y representar los mismos en el entorno anfitrión en lugar de en una ventana de VM separada. Además, El mismo permite que múltiples aplicaciones en múltiples sistemas operativos (SO), de forma respectiva, se ejecuten de forma simultánea y con la apariencia de una ejecución de forma ininterrumpida en el entorno anfitrión. La totalidad de la funcionalidad del SO invitado se integra directamente en el escritorio de SO anfitrión. Una pluralidad de representantes de aplicación son visibles por el usuario en el entorno anfitrión y una capa de lanzamiento de aplicaciones reside en el SO anfitrión. Cada representante de aplicación está asociado con una aplicación de anfitrión o de VM. La función de la capa de lanzamiento de aplicaciones es identificar si el representante de aplicación dado está lanzando una aplicación de anfitrión o de VM. Entonces, la capa de lanzamiento de
5
10
15
20
25
30
35
40
45
50
55
aplicaciones se comunica o bien con el SO anfitrión o bien con un monitor de máquinas virtuales (VMM, virtual machine monitor), de forma respectiva, para emprender la acción necesaria para lanzar la aplicación seleccionada por el usuario. El SO anfitrión comprende la capa de lanzamiento de aplicaciones y una pluralidad de representantes de aplicación que proporcionan un mecanismo automático para lanzar cualquier aplicación de anfitrión o de VM de forma ininterrumpida en el entorno anfitrión. Cuando un usuario selecciona una aplicación de anfitrión o de VM para su ejecución al hacer clic sobre su icono de aplicación asociado, el representante de aplicación seleccionado comunica una solicitud para iniciar su aplicación asociada a la capa de lanzamiento de aplicaciones del SO anfitrión. Si se determina en la capa de lanzamiento de aplicaciones que la solicitud es una aplicación de VM, la capa de lanzamiento de aplicaciones se comunica con el VMM para lanzar una VM con su SO invitado asociado. Entonces, el SO invitado lanza la aplicación de VM. Se proporciona un mecanismo al usuario en el entorno anfitrión para ver de forma colectiva todos los archivos que están asociados con una pluralidad de unidades de disco duro virtuales, con independencia de si los archivos están asociados con el sistema anfitrión o una VM.
El documento US 5 812 843 A se refiere a un sistema y procedimiento para ejecutar trabajos entre sistemas operativos diferentes. En un sistema de procesamiento de información en ejecución bajo dos sistemas operativos (SO) diferentes, una unidad de entrada de trabajos entra en un programa de control de un trabajo, que es ejecutado por el segundo sistema operativo, a través del primer sistema operativo. Una unidad de conversión / transferencia de idioma convierte el programa de control en un programa para el segundo sistema operativo, y transfiere el mismo al segundo sistema operativo. Una unidad de conversión / transferencia de datos realiza mutuamente una conversión y una transferencia entre los archivos que se usan para el primer sistema operativo y los archivos que se usan para el segundo sistema operativo. Una unidad de ejecución de trabajos ejecuta el programa para el segundo sistema operativo usando datos transferidos que están incluidos en los archivos que se usan para el segundo sistema operativo. Por lo tanto, un usuario puede ejecutar el trabajo sin ser consciente de las diferencias entre los sistemas operativos.
Anónimo: “Software agent - Wikipedia, the free encyclopedia", 9 de enero de 2006, se refiere a un agente de soporte lógico. En informática, un agente de soporte lógico es un soporte lógico que actúa como un agente para otro como en una relación de representación. Cuando actúan varios agentes, estos pueden formar un sistema de múltiples agentes. Se afirma que algunos agentes de soporte lógico son autónomos, siendo autocontenidos y capaces de tomar decisiones independientes y de emprender acciones para satisfacer objetivos internos en función de su entorno percibido.
Sumario
El objeto de la presente invención es potenciar de manera eficiente la consistencia de un entorno de trabajo unificado.
El presente objeto se soluciona por medio de la materia objeto de las reivindicaciones independientes.
Las realizaciones preferidas se definen por medio de las reivindicaciones dependientes.
De acuerdo con un primer aspecto de la presente invención, se proporciona un sistema de unificación para integrar múltiples entornos informáticos, que se encuentran disponibles para su uso simultáneo por un único usuario, en un entorno base. El sistema de unificación incluye un supervisor de unificación y una pluralidad de agentes, en los que cada agente está asociado con un entorno informático respectivo. El supervisor de unificación monitoriza la información recibida a partir de los agentes con respecto a los múltiples entornos informáticos, y realiza una orientación centralizada de los entornos informáticos de acuerdo con la información recibida. La orientación centralizada sirve para incorporar los otros entornos informáticos en el entorno base, y se puede guiar por medio de directivas designadas para dotar al usuario de un entorno unificado. El supervisor de unificación también emite instrucciones a los diversos agentes. Cada uno de los agentes proporciona información con respecto a un entorno informático respectivo al supervisor de unificación, y también puede gestionar el entorno informático respectivo según sea indicado por el supervisor de unificación.
De acuerdo con un segundo aspecto de la presente invención, se proporciona un procedimiento para integrar múltiples entornos informáticos en un único entorno unificado. Los múltiples entornos informáticos se encuentran disponibles para su uso simultáneo por un único usuario, y uno de los múltiples entornos comprende un entorno base de usuario. El procedimiento incluye las etapas de monitorizar la información recibida a partir de cada uno de los entornos informáticos con respecto a un estatus en curso del entorno informático respectivo, y realizar una orientación centralizada de los múltiples entornos informáticos de acuerdo con la información recibida con el fin de incorporar entornos informáticos que no sean el entorno base en el entorno base. De ese modo, se proporciona al usuario un entorno de trabajo unificado.
De acuerdo con un tercer aspecto de la presente invención, se proporciona un agente para su colocación en un entorno informático. El agente incluye una unidad de recopilación de información, que recopila información con respecto a un estatus en curso del entorno informático, y un proveedor de información que emite la información recopilada. La información se recopila y se proporciona de una forma que permite que el entorno informático interaccione con un sistema de unificación para incorporar múltiples entornos informáticos en un entorno base de
5
10
15
20
25
30
35
40
45
50
55
usuario.
La presente invención aborda con éxito los inconvenientes de las configuraciones conocidas en la actualidad mediante la realización de una integración centralizada basada en directivas de múltiples entornos informáticos en el entorno base del usuario, en función de la información proporcionada por agentes que están asociados con cada uno de los entornos informáticos diferentes.
A menos que se defina de otro modo, todas las expresiones técnicas y científicas que se usan en el presente documento tienen el mismo significado que entendería habitualmente un experto en la materia a la que pertenece la presente invención. A pesar de que se pueden usar procedimientos y materiales similares o equivalentes a los que se describen en el presente documento en la práctica o puesta a prueba de la presente invención, se describen en lo sucesivo procedimientos y materiales adecuados. En caso de conflicto, prevalecerá la memoria descriptiva de patente, incluyendo las definiciones. Además, los materiales, procedimientos y ejemplos son solo ilustrativos y no se tiene por objeto que sean limitantes.
La implementación del procedimiento y sistema de la presente invención comporta realizar o completar tareas o etapas seleccionadas de forma manual, automática, o una combinación de los mismos. Además, de acuerdo con la instrumentación y equipo real de las realizaciones preferidas del procedimiento y sistema de la presente invención, varias etapas seleccionadas se podrían implementar por medio de soporte físico o por medio de soporte lógico en cualquier sistema operativo de cualquier soporte lógico inalterable o una combinación de los mismos. Por ejemplo, como soporte físico, etapas seleccionadas de la invención se podrían implementar como un chip o un circuito. Como soporte lógico, etapas seleccionadas de la invención se podrían implementar como una pluralidad de instrucciones de soporte lógico que son ejecutadas por un ordenador usando cualquier sistema operativo adecuado. En cualquier caso, etapas seleccionadas del procedimiento y sistema de la invención se podrían describir como si fueran realizadas por medio de un procesador de datos, tal como una plataforma informática para ejecutar una pluralidad de instrucciones.
Breve descripción de los dibujos
La invención se describe en el presente documento, únicamente a modo de ejemplo, con referencia a los dibujos adjuntos. A continuación, con referencia específica a los dibujos con detalle, se hace hincapié en que las particularidades que se muestran son a modo de ejemplo y solo para fines de análisis ilustrativo de las realizaciones preferidas de la presente invención, y se presentan con el fin de proporcionar lo que se cree que es la descripción más útil y fácil de entender de los principios y los aspectos conceptuales de la invención. A este respecto, no se hace intento alguno de mostrar detalles estructurales de la invención con más detalle del que es necesario para una comprensión fundamental de la invención, haciendo la descripción, tomada con los dibujos, evidente a los expertos en la materia cómo se pueden materializar en la práctica las varias formas de la invención.
En los dibujos:
La figura 1 es un diagrama de bloques simplificado de un sistema de unificación para integrar múltiples entornos informáticos en un único entorno unificado, de acuerdo con una realización preferida de la presente invención.
La figura 2 es un diagrama de bloques simplificado de un supervisor de unificación, de acuerdo con una realización preferida de la presente invención.
La figura 3 es un diagrama de bloques simplificado de un sistema de archivos unificado, de acuerdo con una realización preferida de la presente invención.
La figura 4 es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un gestor de delegación de acceso, de acuerdo con una realización preferida de la presente invención.
La figura 5 es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un filtro de transferencia de datos y un sincronizador de ajustes de usuario, de acuerdo con una realización preferida de la presente invención.
La figura 6 es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un gestor de ejecución de aplicaciones, de acuerdo con una realización preferida de la presente invención.
La figura 7 es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un unificador de escritorios, de acuerdo con una realización preferida de la presente invención.
La figura 8 es un diagrama de bloques simplificado de un procedimiento para integrar múltiples entornos informáticos en un entorno unificado, de acuerdo con una realización preferida de la presente invención.
La figura 9 es un diagrama de bloques simplificado de un sistema a modo de ejemplo que posibilita que un usuario acceda a dos entornos informáticos.
La figura 10 es un diagrama de bloques simplificado de un sistema a modo de ejemplo que posibilita que un usuario acceda de forma ininterrumpida a cuatro entornos informáticos.
Descripción de las realizaciones preferidas
Las presentes realizaciones son de un sistema y procedimiento para integrar múltiples entornos informáticos en un entorno unificado. En concreto, se crea un entorno unificado en el que no es necesario que el usuario sea consciente del entorno particular en el que reside una aplicación, recurso o archivo con el fin de trabajar con esa
5
10
15
20
25
30
35
40
45
50
55
aplicación, recurso o archivo. El usuario trabaja con un escritorio que contiene las ventanas activas de la totalidad de los entornos informáticos con ajustes sincronizados y de control. Se aplica una directiva (que posiblemente está compuesta por una directiva de permisos de archivo, una directiva de acceso de red, y otras) para asegurar que la seguridad de cada uno de los entornos informáticos no ha sido puesta en peligro por el acceso a, o la transferencia de datos a partir de, otros entornos.
Tal como se ha expuesto en lo que antecede, se necesita un sistema que incorpore los requisitos de aislamiento y una experiencia de usuario transparente, y posibilite el uso del día a día de múltiples entornos informáticos, incluyendo múltiples instancias de sistema operativo encima de una tecnología de entornos informáticos convencional (tal como una máquina virtual o un escritorio remoto).
Las presentes realizaciones describen un sistema y procedimiento para la integración de entornos informáticos, que se basa en un supervisor de unificación centralizado que se comunica con agentes que están instalados en cada uno de los entornos. Los agentes dotan al supervisor de la información que se requiere para integrar todos los aspectos de la experiencia de usuario, incluyendo proporcionar un sistema de archivos unificado, posibilitar la transferencia de datos entre entornos, controlar el acceso a recursos, controles de teclado uniformes, posibilitar la ejecución de aplicaciones, y más. El supervisor usa la información proporcionada para integrar los diversos entornos de acuerdo con directivas definidas, y controla los diversos entornos a través de sus agentes respectivos. Un entorno base se selecciona de entre los múltiples entornos informáticos, por lo general el entorno de trabajo físico del usuario, y el supervisor usa la información proporcionada para integrar los otros entornos informáticos en el entorno base. La integración se puede guiar por medio de directivas que son definidas por un usuario o administrador, con el fin de adaptar el entorno unificado a las necesidades de un usuario u organización particular.
Cada aspecto de la unificación se puede implementar por medio de un componente separado dentro del supervisor, de tal modo que las capacidades del supervisor se pueden adaptar a las necesidades del usuario simplemente mediante la inclusión de los componentes necesarios.
Por lo tanto, el usuario puede trabajar como si se encontrara dentro de un único entorno informático, incluso aunque se está accediendo a los archivos y las aplicaciones se están ejecutando en múltiples entornos informáticos, cada uno con sus propias restricciones y requisitos.
Se ha de entender que las presentes realizaciones se pueden implementar en cualquier forma de múltiples entornos informáticos, con independencia de la plataforma que se usa con el fin de crear los mismos (tales como máquinas virtuales y tecnologías de escritorios remotos), y del sistema operativo en uso (tal como Windows, Linux, etc.).
Los principios y el funcionamiento de un sistema y procedimiento de unificación de acuerdo con la presente invención se pueden entender mejor con referencia a los dibujos y las descripciones adjuntas.
Antes de explicar con detalle al menos una realización de la invención, se ha de entender que la invención no está limitada en cuanto a su aplicación a los detalles de construcción y la disposición de los componentes que se exponen en la siguiente descripción o que se ilustran en los dibujos. La invención es capaz de otras realizaciones o de ponerse en práctica o llevarse a cabo de diversas formas. Asimismo, se ha de entender que la fraseología y la terminología que se emplean en el presente documento son para fines de descripción y no se deberían considerar como limitantes.
En lo sucesivo, a aquellas partes que sean las mismas que las de las figuras previas se les dan los mismos números de referencia, y no se describen de nuevo excepto según sea necesario para una comprensión de la presente realización.
A continuación se hace referencia a la figura 1, que es un diagrama de bloques simplificado de un sistema de unificación para integrar múltiples entornos informáticos en un entorno base, de acuerdo con una realización preferida de la presente invención. El sistema de unificación 10 integra múltiples entornos informáticos12.1 - 12.n, que se encuentran disponibles para su uso simultáneo por un único usuario, en un entorno base 12.1. La integración se realiza al tiempo que se hacen cumplir los requisitos y restricciones individuales de cada entorno informático, y sin poner en peligro la seguridad de ninguno de los entornos informáticos individuales. Todos los aspectos de los entornos informáticos se pueden unificar en la práctica, incluyendo la integración visual del escritorio y la barra de tareas, un sistema de archivos unificado, ejecución de aplicaciones, y más. De este modo se dota al usuario de un entorno de trabajo cómodo al tiempo que se mantiene la integridad de los entornos informáticos individuales.
En la realización preferida, uno de los entornos informáticos se selecciona como un entorno base 12.1, y su agente se selecciona como el agente de entorno base 14.1. El supervisor de unificación 16 incorpora los entornos informáticos restantes en el entorno base 12.1 (en lo sucesivo, también se hace referencia al concepto de incorporar un entorno informático en el entorno base como integrar los entornos informáticos). Por lo general, el ordenador de trabajo de extremo del usuario se selecciona como el entorno base. El entorno base 12.1 establece el entorno de usuario (en términos de ajustes, preferencias, y así sucesivamente) y el escritorio base del usuario (en términos de controles, interfaces y entrada) en los que se van a integrar los entornos informáticos 12.2- 12.n restantes. Por lo tanto, no es necesario que el usuario defina de forma activa un conjunto de preferencias, ajustes y así sucesivamente, para el entorno unificado; el proceso de integración es completamente transparente al usuario. El
5
10
15
20
25
30
35
40
45
50
55
entorno base 12.1 también establece el sistema de archivos base, tal como se analiza en el contexto del unificador de sistemas de archivos en lo sucesivo.
Cada entorno informático 12.x está asociado con un agente 14.x, que se comunica con el supervisor de unificación 16. Preferiblemente, el agente reside dentro del entorno informático (al igual que para el entorno informático 12.1). Cada agente 14.x dota al supervisor de unificación de información acerca del entorno informático 12.x asociado. Esta información puede incluir entrada de usuario, atributos de aplicación, atributos de sistema, y así sucesivamente. El supervisor de unificación 16 recibe la información a partir del agente de entorno base 14.1 y el resto de los agentes 14.2 - 14.n, realiza una orientación centralizada de los múltiples entornos informáticos, y emite instrucciones al entorno base 12.1 y los agentes 14.2- 14.n en consecuencia. La orientación centralizada se realiza de acuerdo con la información recibida, e incorpora los otros entornos informáticos 12.2 - 12.n en el entorno base 12.1.
El proceso de unificación se puede guiar por medio de una directiva definida que establece la medida de la unificación o aislamiento que se mantiene entre los entornos informáticos indicados, y permite que la unificación se adapte a la constelación de sistemas específica y a las necesidades del usuario. La integración se puede realizar con cualquier grado de rigor que sea requerido por el usuario. Por ejemplo, se puede dar al usuario un acceso sin restricciones al sistema de archivos base (que incorpora la totalidad de los sistemas de archivos de los múltiples entornos informáticos, tal como se describe en lo sucesivo). Como alternativa, se pueden aplicar permisos diferentes para entornos informáticos diferentes. El supervisor de unificación 16 puede ser un componente autónomo del sistema, o puede residir en uno de los entornos informáticos, preferiblemente el entorno base. El funcionamiento del supervisor de unificación 16 se describe con detalle en lo sucesivo.
Además, preferiblemente cada agente 14.x gestiona el entorno informático respectivo según sea indicado por las instrucciones emitidas por medio del supervisor de unificación 16. De este modo se forma un sistema en el que el supervisor de unificación 16 es capaz de coordinar los recursos y operaciones de la totalidad de los entornos informáticos de una forma centralizada, creando en la práctica un único entorno unificado para el usuario.
Se ha de entender que la figura 1 ilustra un sistema a modo de ejemplo no limitante. El número y la naturaleza de los entornos informáticos y sus agentes pueden diferir de lo que se muestra.
Los ejemplos de tipos diferentes de entornos informáticos 12.x incluyen:
a. Máquina virtual (que, en el presente documento, también se denomina entorno virtual) 12.3
b. Ordenador de extremo 12.4
c. Servidor 12.5
d. Escritorio remoto 12.n
La totalidad de los diversos entornos informáticos pueden ejecutar el mismo sistema operativo. Como alternativa, puede que el sistema operativo no sea el mismo para la totalidad de los entornos informáticos. Esto posibilita que un usuario trabaje con aplicaciones que se ejecutan en sistemas operativos diferentes, tales como aplicaciones heredadas que requieren una versión previa del sistema operativo.
Algunos o la totalidad de los entornos informáticos se pueden conectar por medio de una red de datos. Por lo tanto, el usuario puede estar trabajando de forma simultánea en un ordenador personal (PC, personal Computer), ejecutando una máquina virtual en el PC, y comunicándose con un servidor a través de una red.
En la realización preferida, los datos pueden ser etiquetados por el supervisor de unificación 16 y / o un agente 14.x. La etiqueta ayuda en el cumplimiento de las directivas por el supervisor de unificación, y posibilita un control adicional de las operaciones que experimenta esta unidad de datos. La etiqueta puede incluir metadatos tales como el entorno informático en el que se crearon o se modificaron por última vez los datos, el propietario / modificador de los datos, el origen de la unidad de datos si se originaron fuera del entorno informático (por ejemplo, correo electrónico, mensajería instantánea y dispositivo). Para los archivos, los metadatos también pueden incluir una lista de cambios en el archivo o su ruta. Las unidades de datos se pueden marcar visualmente (por ejemplo, una superposición de iconos por encima del icono existente) de acuerdo con sus metadatos. Además, los archivos se pueden transformar (por ejemplo, cifrarse) de forma automática de acuerdo con sus metadatos.
A continuación se hace referencia a la figura 2, que es un diagrama de bloques simplificado de un supervisor de unificación, de acuerdo con una realización preferida de la presente invención. Preferiblemente, el supervisor de unificación 16 incluye uno o más de los siguientes componentes:
a. Unificador de sistemas de archivos 21
b. Gestor de delegación de acceso 22
c. Filtro de transferencia de datos 23
d. Sincronizador de ajustes de usuario 24
e. Gestor de ejecución de aplicaciones 25
f. Unificador de escritorios 26
Cada uno de los componentes enumerados se describe con detalle en lo sucesivo.
5
10
15
20
25
30
35
40
45
50
55
A continuación se hace referencia a la figura 3, que es un diagrama de bloques simplificado de una realización a modo de ejemplo de un sistema de archivos unificado, de acuerdo con una realización preferida de la presente invención. El unificador de sistemas de archivos 21 crea un sistema de archivos unificado, que dota al usuario de un aspecto y una sensación de un sistema de archivos unificado, a lo largo de múltiples entornos informáticos (incluyendo rutas o nombres de archivo uniformes, etc.) incluso aunque cada entorno pudiera tener su propio sistema de archivos. La totalidad de los entornos informáticos del usuario puede acceder al sistema de archivos unificado, creando de este modo una experiencia de usuario con aún menos problemas.
El unificador de sistemas de archivos 21 establece el sistema de archivos del entorno base como el sistema de archivos base, haciéndolo accesible a la totalidad de los otros entornos 240 y 260, preferiblemente sujeto a una directiva de permisos que se hace cumplir por medio del supervisor de unificación. Entonces, unas operaciones de acceso a archivos seleccionadas que son desencadenas por los entornos 240 y 260 en su sistema de archivos local se monitorizan y se reflejan en el sistema de archivos base. De esta forma, la totalidad de los entornos informáticos pueden acceder al sistema de archivos base como si este fuera su sistema de archivos local, además de acceder a su sistema de archivos local. La totalidad de los entornos informáticos son capaces de navegar, leer, escribir y eliminar archivos, acceder a carpetas en red y soportes extraíbles que son accesibles desde dentro del sistema de archivos base. Además, los nombres y rutas de archivo pueden ser uniformes para la totalidad de los entornos informáticos. Como alternativa, los nombres y rutas de archivo pueden ser diferentes en los diversos entornos informáticos (por ejemplo, una determinada carpeta en uno del entorno 240 o 260 se puede redirigir a una carpeta diferente en el sistema de archivos base). Cualquier cambio en un nombre o ruta de archivo se ve inmediatamente reflejado en la totalidad de los otros entornos.
Preferiblemente, se restringe el uso del sistema de archivos unificado por medio de una directiva de permisos, evitando de este modo la exposición mutua a riesgos de seguridad o un acceso no autorizado entre entornos. A cada uno de los entornos 220, 240 y 260 se puede asignar una directiva individual, para permitir o bloquear la navegación, la lectura, la escritura y la eliminación de archivos del sistema de archivos unificado. La directiva de permisos también puede requerir transformar los archivos que son escritos o leídos por cualquiera de los entornos. Los permisos se pueden determinar por medio de parámetros que incluyen el usuario, la afiliación del usuario, tipo de archivo, carpeta, tipo de unidad, ruta, usuario, el entorno en el que se creó o se modificó por última vez el archivo, y una etiqueta (con metadatos de archivo).
El unificador de sistemas de archivos 21 también puede incluir un transformador de archivos, que transforma los archivos que son escritos o leídos del sistema de archivos base por cualquiera de los entornos, según sea especificado por la directiva de permisos. Los permisos se pueden determinar por medio del entorno en el que se creó o se modificó por última vez el archivo, el propio usuario, el tipo de archivo, la ubicación del archivo, y cualesquiera otros metadatos que se hubieran adjuntado al archivo (es decir, una etiqueta). Por ejemplo, cualquier archivo escrito en el sistema de archivos base por uno diferente de los entornos diferentes 240 y 260, se puede cifrar con una clave de cifrado que está asociada con este entorno para hacer cumplir una directiva y permitir un acceso futuro solo por parte del mismo entorno informático.
Por lo tanto, el usuario trabaja con un sistema de archivos, pero se siguen haciendo cumplir los requisitos de acceso individuales de cada uno de los entornos informáticos separados. Se puede definir una directiva de permisos flexible y granular, que proporciona un control sobre el acceso a archivos más grande que el que se encuentra actualmente disponible para un sistema de archivos convencional. Permisos de archivo diferentes para un archivo dado, en función del entorno informático que está usando el usuario para realizar la operación de archivos.
A continuación se hace referencia a la figura 4, que es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un gestor de delegación de acceso, de acuerdo con una realización preferida de la presente invención. El gestor de delegación de acceso 400 delega cada operación actual en el entorno informático adecuado, de tal modo que el contenido o los recursos se procesan de forma automática en el entorno informático correcto.
El gestor de delegación de acceso 400 recibe información a partir de los agentes 410, y monitoriza las operaciones de usuario. Cuando se detecta una operación de usuario 910 (por ejemplo, se abre un archivo), el gestor de delegación de acceso 400 determina el entorno informático en el que se debería realizar la operación, bloqueando posiblemente la operación original y solicitando que otro entorno realice la operación 920 (o al realizar una sustitución por una operación diferente si la operación original no se puede realizar en el entorno elegido).
El gestor de delegación de acceso 400 selecciona el entorno informático adecuado en función de una directiva de acceso, que se puede basar en criterios diferentes para tipos diferentes de operaciones. Por ejemplo, el entorno adecuado para procesar un archivo se puede determinar de acuerdo con el nombre, la extensión, el contenido, el propietario, el tipo de unidad, los permisos o cualesquiera otros metadatos del archivo (incluyendo el entorno informático en el que se creó el mismo, su origen, etc.) con los que se haya etiquetado el mismo. El entorno para el acceso de red se puede determinar de acuerdo con el dominio, el formato de dirección, el protocolo, los permisos de acceso o cualquier otra característica de comunicación.
5
10
15
20
25
30
35
40
45
50
55
Las operaciones de archivos delegadas pueden incluir, entre otros, procedimientos de ejecución y de cierre, y acceso a recursos de red. Dentro de los entornos basados en Windows, estas también pueden incluir la invocación de verbos de intérprete de comandos tales como hacer doble clic sobre un archivo, clic derecho, abrir archivos usando diálogos de archivos. El archivo se puede transferir al entorno delegado por cualquier procedimiento, o se puede acceder al mismo a través del sistema de archivos unificado si este componente se implementa en el sistema.
El acceso de red delegado puede incluir la navegación en sitios web y el acceso a cualquier recurso remoto o local usando cualquier protocolo.
A continuación se hace referencia a la figura 5, que es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un filtro de transferencia de datos, de acuerdo con una realización preferida de la presente invención. El filtro de transferencia de datos 100 proporciona un control basado en directivas de la transferencia de datos entre entornos. A cada entorno 220 y 240 se le asigna una directiva de transferencia de datos que indica la transferencia de datos aya partir de cada uno de los otros entornos, proporcionando de este modo una directiva de transferencia específica para cada par posible de entornos.
La transferencia de datos 930 se puede permitir o bloquear, o puede requerir la transformación de datos de acuerdo con parámetros tales como: entorno de origen, entorno objetivo, tipo de los datos, origen de los datos, propietario de los datos, contenido de los datos, y cualesquiera metadatos con los que se hayan etiquetado los datos.
En la realización preferida, el filtro de transferencia de datos 100 incluye el transformador de datos 110, que transforma datos durante la transferencia, con el fin de cumplir con la directiva de transferencia de datos. La transformación puede incluir una conversión a otro formato, excluyendo, eliminando o extrayendo determinadas partes del mismo, cifrado / descifrado o reconstrucción de información.
El filtro de transferencia de datos 100 se puede aplicar para todos los canales de comunicación entre los entornos 220 y 240, incluyendo: operaciones de copiar y pegar, operaciones de arrastrar y soltar, transferir datos a partir de o a un dispositivo (tal como un soporte extraíble o una impresora), transferir datos que se obtienen a través de un canal de comunicación que se encuentra disponible en un entorno informático ya un entorno informático diferente, transferencia de archivos entre entornos informáticos usando el sistema de archivos unificado y sincronización de ajustes de usuario (que se analiza en lo sucesivo).
Haciendo referencia de nuevo a la figura 5, un sincronizador de ajustes de usuario 300 mantiene la consistencia de los ajustes de usuario en la totalidad de los múltiples entornos informáticos, al tiempo que se evita la distribución de datos que pudieran perjudicar al aislamiento del entorno. Por lo general, cada entorno informático tiene un grupo de ajustes 310, que pueden ser diferentes de los ajustes equivalentes en un entorno informático diferente. Con el fin de proporcionar una experiencia de usuario unificada, estos ajustes se han de unificar (es decir, sincronizar y / o combinar) en un grupo unificado de ajustes que son de aplicación por la totalidad de los entornos informáticos. En la realización preferida se usan los ajustes del sistema base como la base para la unificación, y los ajustes de los otros entornos informáticos se sincronizan con los del sistema base. Como alternativa, los ajustes de uno de los otros entornos informáticos se pueden usar como la base para unificar los ajustes. Son ejemplos de los ajustes de usuario para el sistema operativo Windows: impresora por defecto, página de inicio por defecto, favoritos, ubicación de carpetas especiales (tales como Mis Documentos y Mis Imágenes), y ajustes para aplicaciones de usuario (tales como iniciales, libreta de direcciones, esquemas de color, etc.)
La unificación de los ajustes entre los diversos entornos informáticos se controla por medio del sincronizador de ajustes de usuario 300 de acuerdo con una directiva de sincronización. La directiva de sincronización se puede aplicar en dos niveles - por entorno y / o por ajuste - y puede permitir la sincronización de los ajustes entre cualquier par de entornos, bloquear la sincronización o permitir la sincronización después de transformar los ajustes según sea requerido por el filtro de transferencia de datos 100.
Los procedimientos de unificación pueden incluir una sincronización unidireccional o bidireccional entre los entornos 220 y 240, y aplicar los cambios en tiempo real, a petición o como una tarea programada. La unificación de ajustes también se puede realizar tras la creación o terminación de un entorno informático.
A continuación se hace referencia a la figura 6, que es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un gestor de ejecución de aplicaciones, de acuerdo con una realización preferida de la presente invención. El gestor de ejecución de aplicaciones 500 posibilita que un usuario o administrador integre aplicaciones seleccionadas en el entorno base, al posibilitar que el usuario desencadene la ejecución de una aplicación 520 que está instalada en un entorno informático diferente del entorno base.
En muchos casos, un usuario (o administrador) requiere que una aplicación que está instalada en un entorno informático se encuentre disponible para su ejecución a partir de otro entorno informático (una aplicación que se pone a disposición de otros entornos informáticos se denomina aplicación publicada). En este caso, un comando de ejecución único 950 es creado por el gestor de ejecución 500. Este comando se encuentra disponible en el otro entorno informático (o entornos informáticos seleccionados). Cuando se usa el comando de ejecución 950, la aplicación publicada se ejecuta en el entorno 240 o 260 en el que la reside misma.
5
10
15
20
25
30
35
40
45
50
55
El comando de ejecución 950 se puede desencadenar de cualquier forma de ejecución convencional: usando una línea de comandos, un atajo, una interfaz de usuario hecha a medida, o un menú de usuario tal como el menú de inicio de Windows.
El comando de ejecución 950 puede aceptar parámetros que se transfieren a la aplicación publicada 520 original tras la ejecución. Los tipos de archivo se pueden asociar con una aplicación publicada 520, y los archivos de este tipo se pueden procesar por medio de la aplicación publicada incluso aunque cada uno de la aplicación y el archivo residen en un entorno informático diferente.
En la realización preferida, un administrador publica las aplicaciones deseadas a partir de cada entorno en el entorno base, posibilitando de este modo que el usuario inicie estas aplicaciones usando los procedimientos de ejecución convencional en el entorno base.
A continuación se hace referencia a la figura 7, que es un diagrama de bloques simplificado de múltiples entornos informáticos que interaccionan a través de un unificador de escritorios, de acuerdo con una realización preferida de la presente invención. El unificador de escritorios 600 incorpora la interacción del usuario con todas las aplicaciones activas 620 en los entornos informáticos 220, 240 y 260 diferentes, en el escritorio 610 del sistema base (que, en el presente documento, se denomina escritorio base). La integración puede incluir una integración de ventanas ininterrumpida, integración de control de aplicaciones e integración de control y de ajustes de escritorio y / o de entradas, tal como se explica en lo sucesivo. El escritorio base 610 puede incluir aspectos de escritorio tales como la barra de tareas, imagen en segundo plano, ajustes de representación activos, gestor de aplicaciones, iconos de bandeja, estado de entrada (tal como Bloq Num), y otros.
El proceso de unificación posibilita que las ventanas de la totalidad de los entornos informáticos funcionen visualmente como ventanas locales (una integración de ventanas ininterrumpida). Preferiblemente, todas las ventanas en el escritorio unificado aparecen en la barra de tareas con icono, título y estatus de actividad, y realizan acciones, tales como minimizar, maximizar, restablecer y cerrar una ventana, tanto cuando son desencadenadas por una aplicación en cualquier entorno informático, o según se controlan a partir de la ventana o la barra de tareas dentro del entorno base 220.
Las operaciones tales como cerrar una ventana o atajos de teclado (por ejemplo, alt - tab, win - m, ctrl - alt - esc en el sistema operativo Windows) que tienen lugar en el entorno base 220 y se presentan en el escritorio base 610, funcionan según lo esperado a partir de un único escritorio (por ejemplo, win - m minimizará la totalidad de las ventanas en todos los entornos informáticos, alt - tab alternará entre las ventanas de todos los entornos informáticos, etc.). De forma similar, los estados de entrada de usuario (tales como estado de Bloq Num y estado de Bloq Mayús) se aplican de manera uniforme a todas las ventanas, en función del estado de entrada de usuario del entorno base 220, y se sincronizan con el entorno base cuando se cambian en uno cualquiera de los entornos.
Los menús u objetos gráficos, tales como iconos de bandeja que son creados por aplicaciones, aparecen como si estos existieran visualmente en el escritorio base 610, y cualquier operación 990 que se realice sobre estos objetos se delega de vuelta al entorno 240 o 260 de origen. Preferiblemente, el unificador de escritorios 600 incorpora los iconos de bandeja de otros entornos informáticos (y su texto de información sobre herramientas y gráfico de icono) en el área de iconos de bandeja del entorno base. Preferiblemente, la interacción del usuario con la totalidad de los iconos de bandeja (por ejemplo, realizando una acción de menú de contexto o haciendo doble clic) se realiza de manera uniforme, con independencia del entorno de origen de un icono dado. Preferiblemente, los ajustes de escritorio, tales como el tema del escritorio, el tamaño de fuente y el área de trabajo, son establecidos por el entorno base.
Preferiblemente, las aplicaciones activas 620 de los entornos creados por máquinas virtuales encima de una única estación de trabajo física 240 y 260 se integran visualmente en el escritorio base 610. Las ventanas de la máquina virtual funcionan visualmente como ventanas locales (es decir, una integración de ventanas ininterrumpida). Preferiblemente, las aplicaciones de la máquina virtual aparecen en la barra de tareas del escritorio base con icono, título y estatus de actividad, y realizan acciones tales como minimizar, maximizar y cerrar cuando se desencadenan a partir del entorno informático 240 y 260 original o a partir de la ventana o la barra de tareas dentro del entorno base 220.
Con el fin de permitir una experiencia de usuario familiar y un comportamiento mejor cuando se representa vídeo o gráficos muy exigentes en el interior de un entorno virtual, preferiblemente se realiza una integración de ventanas ininterrumpida de una forma fuera de banda. La integración fuera de banda tiene lugar sin interpretar los datos gráficos del entorno, y dependiendo de la representación directa del motor de virtualización (por ejemplo, VMWare Player o Microsoft Virtual PC) del escritorio de máquina virtual encima de la representación del entorno base.
Una integración de ventanas ininterrumpida fuera de banda se puede implementar por medio del siguiente procedimiento. Cuando se inicia un entorno informático virtual, la ventana de máquina virtual se crea y se actualiza por medio del motor de virtualización (por ejemplo, VMWare Player o Microsoft Virtual PC) para incluir el escritorio de la máquina virtual. El unificador de escritorios 600 no representa el escritorio de máquina virtual al ocultar la ventana de máquina virtual. En su lugar, siempre que una ventana de aplicación se deba representar en la máquina virtual, el
5
10
15
20
25
30
35
40
45
50
55
agente en ejecución en el interior de la VM mide el área (la ubicación, la anchura y la altura) de la ventana y envía esta información de metadatos al supervisor de unificación. El supervisor de unificación representa, a su vez, la ventana de máquina virtual al usuario, pero recorta (cercena) el área de ventana original para encajar solo con el área apropiada de la ventana de aplicación, y oculta el resto de la ventana de máquina virtual. El resultado es que la aplicación se contempla en la pantalla del usuario de forma similar a cualquier otra ventana de aplicación en ejecución en el escritorio del usuario.
Cuando se van a representar ventanas adicionales, los agentes de todos los entornos informáticos relevantes envían de forma similar la información de área de la totalidad de las ventanas al supervisor de unificación que, a su vez, extiende el área recortada (el área visible por el usuario) con el fin de unir la totalidad de las áreas de las ventanas, mostrando solo las porciones relevantes. Mediante la aplicación del mismo proceso a varios entornos informáticos, los escritorios de múltiples entornos informáticos se integran en el escritorio base.
Con el fin de soportar el foco y el orden Z de las ventanas a partir de entornos diferentes (dando al usuario la ilusión de ventanas que cubren otras ventanas y un orden entre las diferentes ventanas), el agente de entorno base también puede cambiar el recorte de una ventana de máquina virtual de acuerdo con el orden Z de la ventana; ocultando las áreas de una ventana en ejecución en el entorno diferente que debería cubrir la ventana de máquina virtual.
Con el fin de proporcionar un botón de barra de tareas para cada aplicación / ventana que se ejecuta en un entorno que no sea el escritorio base, y para soportar la minimización, la maximización y la activación de esta ventana, se presenta el concepto de una ventana de tipo instantánea. Para cualquier ventana que exista en el interior de un entorno informático que no sea el escritorio base, preferiblemente se crea una ventana de tipo instantánea en el escritorio base, de tal modo que aparece una entidad de barra de tareas con el icono y el texto correlativos. Cualquier operación que se realiza sobre la ventana de tipo instantánea siempre se refleja en la ventana de entorno correlativa (por ejemplo, cuando la ventana de tipo instantánea se maximiza, se minimiza, se activa, se restablece o se cierra, se realiza la misma acción sobre su ventana correlativa, y viceversa). Esto también permite el comportamiento familiar de un mecanismo de control de escritorio general tal como minimizar la totalidad de las ventanas (la tecla Win - m en Windows de Microsoft), conmutar entre aplicaciones (la combinación de teclas alt + tab en Windows de Microsoft), etc.
Los menús u objetos gráficos tales como iconos de bandeja que son creados por aplicaciones aparecen, preferiblemente, como si los mismos existieran visualmente en el escritorio base 610, y cualquier operación que se realice sobre los mismos se delega de vuelta al entorno 240 o 260 de origen.
Para soportar la unificación de iconos de bandeja, se aplica un concepto similar de icono de bandeja de tipo instantánea. Para cada icono de bandeja que se presenta en un entorno que no sea el entorno base, se crea un icono de bandeja de tipo instantánea en el entorno base. El icono de bandeja de tipo instantánea siempre está sincronizado en cuanto a la imagen del icono, el texto de información sobre herramientas y el estado con su icono de bandeja correlativo en el entorno relevante. Cualquier acción que se realice sobre el icono de bandeja de tipo instantánea se realiza de forma automática asimismo sobre el icono de bandeja original. Esto incluye hacer clic sobre el icono, mover el puntero por encima del icono, hacer doble clic sobre el icono, hacer clic derecho sobre el icono, ocultar el icono, cambiar el texto o la imagen del icono de bandeja, y así sucesivamente.
Preferiblemente, cualquier estado de escritorio o estado de entrada que se encuentre activo en el escritorio base se sincroniza de forma automática con la totalidad de los otros entornos (en el caso del sistema operativo Windows, este puede incluir estado de Bloq Num, estado de Bloq Mayús, propiedad de ventana activa, resolución de pantalla activa, área de trabajo activa, idioma activo, etc.)
A pesar de que están integradas en el escritorio base 610, las ventanas activas 620 a partir de entornos diferentes se pueden diferenciar visualmente, por ejemplo por medio de un icono o recuadro de color.
Cuando se integran en un sistema, los componentes que se han descrito en lo que antecede crean un entorno de trabajo unificado que se construye sobre entornos informáticos separados. El entorno de trabajo unificado se beneficia de las ventajas de mantener los atributos de los entornos informáticos individuales, y la cantidad requerida de aislamiento y seguridad entre los entornos informáticos, al tiempo que se mantiene una experiencia de usuario similar a un sistema de un único entorno. Por lo tanto, se libera al usuario de la necesidad de conmutar entre entornos, de entender la estructura interna del sistema o de recordar a qué recursos, datos y aplicaciones se debería acceder a partir de cada entorno.
En la realización preferida, se usa una consola de gestión para controlar y gestionar los múltiples agentes y / o el supervisor de unificación, posiblemente para su uso por parte de un administrador de sistemas.
A continuación se hace referencia a la figura 8, que es un diagrama de bloques simplificado de un procedimiento para integrar múltiples entornos informáticos en un único entorno unificado, de acuerdo con una realización preferida de la presente invención. Los múltiples entornos informáticos se encuentran disponibles para su uso simultáneo por un único usuario, en un entorno unificado.
5
10
15
20
25
30
35
40
45
50
En la etapa 81, se monitoriza la información recibida a partir de cada uno de los entornos informáticos. La información describe el estatus en curso del entorno respectivo. El término estatus tiene por objeto describir todos los aspectos del entorno informático que están implicados en la incorporación de los otros entornos informáticos en el entorno base. Preferiblemente, tal información incluye información acerca de las aplicaciones actuales, estructuras de datos, operaciones de usuario, ajustes y así sucesivamente. La información acerca de un entorno informático dado puede ser proporcionada por un agente que está instalado en el entorno informático.
En la etapa 82, se realiza una orientación centralizada de los múltiples entornos informáticos de acuerdo con la información recibida, y con directivas designadas para dotar al usuario del entorno unificado.
Preferiblemente, el procedimiento incluye adicionalmente gestionar los entornos informáticos de acuerdo con la orientación centralizada (la etapa 83).
Este proceso se realiza repetidamente para proporcionar una unificación y ejecutabilidad continua de los múltiples entornos informáticos en el entorno base, dotando de este modo al usuario de un entorno de trabajo unificado.
La orientación centralizada puede incluir realizar una o más de las siguientes etapas:
1. Incorporar los sistemas de archivos de los otros entornos informáticos en el sistema de archivos base (preferiblemente, de acuerdo con una directiva de permisos).
2. Delegar operaciones en un entorno informático adecuado (que, preferiblemente, se selecciona de acuerdo con una directiva de acceso).
3. Controlar la transferencia de datos entre los entornos informáticos (preferiblemente, de acuerdo con una directiva de transferencia de datos).
4. Transformar datos que se están transfiriendo entre los entornos informáticos.
5. Mantener la consistencia de los ajustes de usuario entre los entornos informáticos, preferiblemente de acuerdo con una directiva de sincronización.
6. Posibilitar la ejecución de aplicaciones a partir de los entornos informáticos diferentes.
7. Integrar los escritorios de entorno informático en el escritorio del entorno base, formando de este modo un escritorio unificado.
Preferiblemente, al menos uno de los entornos informáticos es una máquina virtual.
Una realización preferida adicional de la presente invención es un agente que se coloca en un entorno informático, con el fin de permitir que el entorno informático interaccione con un sistema de unificación. El agente incluye una unidad de recopilación de información que recopila información acerca del estatus en curso del entorno informático, y un proveedor de información que emite la información recopilada al sistema de unificación.
Se espera que, durante la vigencia de la presente patente, se desarrollen muchos entornos informáticos, sistemas operativos, sistemas de archivos, operaciones informáticas y aplicaciones relevantes, y el ámbito de las expresiones correspondientes tiene por objeto incluir la totalidad de tales nuevas tecnologías a priori.
Objetos, ventajas y características novedosas adicionales de la presente invención se volverán evidentes a un experto en la materia tras el examen de los siguientes ejemplos, que no se tiene por objeto que sean limitantes. Adicionalmente, cada una de las diversas realizaciones y aspectos de la presente invención tal como se ha bosquejado en lo que antecede en el presente documento y tal como se reivindica en la sección de reivindicaciones en lo sucesivo halla soporte experimental en los siguientes ejemplos.
Ejemplos
A continuación se hace referencia a los siguientes ejemplos, que, junto con las descripciones, ilustran la invención de una forma no limitante.
Lo siguiente presenta dos realizaciones a modo de ejemplo. Cada realización incluye un subconjunto de los componentes que se han descrito en lo que antecede, para crear un sistema que posibilite que un usuario trabaje de forma concurrente en múltiples entornos informáticos al tiempo que los mismos se integran de forma transparente en un entorno unificado.
A continuación se hace referencia a la figura 9, que es un diagrama de bloques simplificado de un sistema a modo de ejemplo que posibilita que un usuario acceda a dos entornos informáticos, al tiempo que se proporciona una integración transparente entre esos dos entornos.
En el presente ejemplo, se definen dos entornos informáticos:
1. El Entorno A 220 es una instancia de sistema operativo que está asignada a una estación de trabajo física, y sirve como el entorno base (que proporciona el escritorio base y el sistema de archivos base).
2. El Entorno B 260 es un entorno virtual, en aras de un ejemplo creado por VMWare Player, en ejecución dentro de la misma estación de trabajo física que el Entorno A 220, con otra instancia del sistema operativo convencional. El Entorno B 260 es capaz de ejecutar aplicaciones y procesar unidades de datos. El Entorno B
5
10
15
20
25
30
35
40
45
50
260 es un entorno seguro y separado y, por defecto, ninguna entidad externa, incluyendo el Entorno A 220, tiene acceso a su sistema operativo, datos, aplicaciones, red o procesos en ejecución. Por lo tanto, el Entorno B 260 funciona como un entorno informático separado.
El Entorno A 220 sirve para el uso personal del día a día y operaciones empresariales no reguladas o no confidenciales, mientras que el Entorno B 260 sirve para acceder a uno o más servicios internos, aplicaciones y / o datos definidos, y para realizar tareas orientadas a empresas que, potencialmente son confidenciales o delicadas.
La creación del Entorno B 260 de la forma descrita podría ser un resultado de varios aspectos empresariales, de gestión o normativos con el fin de:
1. Mantener el Entorno B 260 seguro frente a amenazas externas de seguridad tales como virus, caballos de Troya y gusanos.
2. Separar la conectividad de Internet disponible en el Entorno A 220 con respecto a las operaciones empresariales del Entorno B 260.
3. Cumplir con regulaciones o contratos que requieren que determinados flujos de trabajo, servicios o datos se separen de cualquier otro flujo de trabajo de usuario, con el fin de mantenerse restringidos y auditados.
El filtro de transferencia de datos 100 se aplica para controlar la transferencia de datos entre los entornos, y se establece una directiva de transferencia de datos. En aras del presente ejemplo, la directiva de transferencia de datos para operaciones de portapapeles y de arrastrar y soltar entre los dos entornos consiste en:
1. La transferencia de datos desde el Entorno A 220 hasta el Entorno B 260 se permite solo con una transformación a texto o formato de mapa de bits, para reducir al mínimo los riesgos de seguridad y de código malicioso.
2. Se prohíbe la transferencia de datos desde el Entorno B 260 hasta el Entorno A 220, para evitar la fuga de datos confidenciales.
La impresión a partir del Entorno B 260 se permite después de la recepción de la confirmación de un administrador.
El Entorno A 220 se define como el entorno base para el sistema de archivos unificado 700. De este punto en adelante, el sistema de archivos unificado 700 es usado por el Entorno B 260 para acceder a, crear o anular unidades de datos de usuario.
De acuerdo con una directiva de etiquetado de datos, todas las unidades de datos que se originan a partir del Entorno A 220 o uno de sus recursos accesibles (ya sean archivos, correo electrónico o cualquier otra unidad de datos) se etiquetan como normales, y todas las unidades de datos que se originan a partir del Entorno B 260 se etiquetan como confidenciales.
Los archivos que se etiquetaron como confidenciales se diferencian visualmente por medio de una marca de cerradura en su icono de archivo, y también se pueden cifrar por medio del sistema de archivos unificado 700 cuando se escriben los mismos en el sistema de archivos base en el Entorno A 220.
Una directiva de permisos se establece y se hace cumplir por medio del sistema de archivos unificado 700.
En aras del presente ejemplo, el sistema de archivos unificado 700 posibilita lo siguiente:
1. La unidad D del sistema de archivos del Entorno B se integra en el sistema de archivos base del Entorno A como una unidad D. Por lo tanto, cualquier acceso a la unidad D por parte de una aplicación en ejecución en el Entorno B se verá reflejado en la unidad D correspondiente del sistema de archivos base en el Entorno A.
2. La unidad C del sistema de archivos del Entorno B no se integra en el sistema de archivos base. Por lo tanto, ningún acceso a la unidad C por parte de una aplicación en ejecución en el Entorno B se verá reflejado en el sistema de archivos base.
3. Operaciones de lectura, escritura y eliminación que se realizan por medio del Entorno B 260 sobre archivos que se han etiquetado como normales por medio del sistema de archivos unificado están sujetas a directivas de permisos.
4. Cualquier archivo que se etiquete como confidencial (creado o cambiado por el Entorno B) se cifra y, por lo tanto, no es accesible a través del Entorno A.
La directiva de permisos asegura que, a pesar de que todos los archivos son visibles para navegar a través de ambos entornos 220 y 260, se establece una directiva para permitir leer y escribir archivos que se etiquetan como confidenciales solo a través del Entorno B 260. El Entorno A 220 puede leer físicamente los archivos pero no puede procesar los mismos, debido a que estos están cifrados. Por otro lado, puede que el Entorno B 260 no pueda leer, escribir o eliminar cualquier archivo que se etiquete como normal (el sistema de archivos unificado 700 bloqueará un intento de este tipo).
Cuando se realiza un intento de procesar un archivo, que está etiquetado como confidencial, la operación se detecta por medio del gestor de delegación de acceso 400, y se examina la etiqueta. Entonces, el gestor de delegación de
5
10
15
20
25
30
35
40
45
50
55
acceso 400 delega la operación para su procesamiento adicional por el Entorno B 260.
Para hacer la totalidad del flujo de trabajo transparente al usuario, se aplica el unificador de escritorios 600, y el escritorio del Entorno A 220 se usa como el escritorio base 610. Cualesquiera ventanas activas 620 que aparecen encima del Entorno B 260 se detectan por medio del unificador de escritorios 600 y se integran visualmente en el escritorio 610 del Entorno A. Por lo tanto, las ventanas del Entorno B funcionan visualmente como ventanas locales, aparecen en la barra de tareas con icono, título y estatus de actividad, y realizan acciones de ventanas convencionales (tales como maximizar y minimizar) cuando se desencadenan. Cualquier cambio realizado en la ventana activa del Entorno B se delega en el Entorno B 260 y es procesado por el mismo. Todos los estados de entrada, de teclado y de ratón se sincronizan entre los entornos diferentes. La totalidad de los atributos de escritorio tales como la resolución de pantalla, el tamaño de fuente y el área de trabajo activa se cambian de forma automática en el Entorno B 260 para encajar con el escritorio 610 del Entorno A.
El acceso a la intranet de la organización está asignado al Entorno B 260 en el presente ejemplo. Por lo tanto, cuando se intenta abrir un URL o un enlace a una ubicación de intranet, la operación se detecta por medio del gestor de delegación de acceso 400 y la ubicación del URL solicitado se determina como la intranet. Entonces, la operación se delega en un navegador que reside sobre el Entorno B 260.
El acceso a Internet, por otro lado, solo se permite a través del Entorno A 220, y un intento de abrir un URL que está asociado con Internet se delegará por medio del gestor de delegación de acceso 400 en el navegador que reside sobre el Entorno A 220.
Otra forma de acceder a aplicaciones designadas de una organización, en aras del presente ejemplo una aplicación de recursos humanos (rR. HH.) 520, es a través del gestor de ejecución de aplicaciones 500. La aplicación de RR. HH. 520 reside en el Entorno B 260, y se le asigna un comando de ejecución único. Cuando este comando es ejecutado por el usuario usando un atajo de menú de inicio, el comando se delega en el Entorno B 260 para la ejecución de la aplicación de RR. HH. 520.
En el presente ejemplo, en aras de la comodidad del usuario, el administrador también crea un atajo encima del escritorio base 610 que desencadena el comando de ejecución. Presionar el atajo desencadena la ejecución de la aplicación de RR. HH. 520 encima del Entorno B 260. Unificador de escritorios 600 asegura que las ventanas activas de la aplicación de RR. HH. 620 se integran de forma ininterrumpida en el escritorio 610 del Entorno A, con independencia del hecho de que la propia aplicación resida en un entorno diferente.
Con el fin de proporcionar una experiencia de usuario carente de problemas, se aplica un sincronizador de ajustes de usuario 300 para asegurar que ajustes personales tales como favoritos de navegador, página de inicio, etc. se sincronizan entre los entornos. A pesar de que los navegadores aparentan ser iguales, la directiva de acceso que se hace cumplir por medio del gestor de delegación de acceso 400 permite que cada entorno acceda solo a su contenido designado, y la operación se delega en un entorno diferente cuando sea necesario.
También se aplica una directiva de sincronización, evitando la sincronización de ajustes que podrían presentar un riesgo de seguridad para el Entorno B 260, tales como contraseñas almacenadas y el historial de autocompletar del navegador. Por lo tanto, los cambios en estos elementos de ajustes en el Entorno B 260 no se sincronizarán con el Entorno A 220.
Las unidades de datos que se descargan de Internet se etiquetan como normales. Un intento de copiar datos en el Entorno B 260 usando el portapapeles desencadenará el filtro de transferencia de datos 100. Entonces, la etiqueta y el formato del archivo se examinan y se comparan con la directiva de transferencia de datos, dando como resultado una solicitud de transformar los datos a un formato de texto o de imagen. La transformación se realiza por medio del transformador de datos 110, y los datos se copian en el Entorno B 260 en el formato transformado.
Para evitar la fuga de datos confidenciales, cualquier intento de copiar datos a partir del Entorno B 260 en el Entorno A 220 usando el portapapeles se detecta por medio del filtro de transferencia de datos 100, que examina la etiqueta 'confidencial'. La operación se bloquea y se audita de acuerdo con la directiva de transferencia de datos.
De esta forma, se logra una transferencia de datos entre entornos sin perjudicar a la seguridad de entornos confidenciales tales como el Entorno B 260, al tiempo que se proporciona una experiencia de usuario carente de problemas que se asemeja a un único entorno unificado.
A continuación se hace referencia a la figura 10, que es un diagrama de bloques simplificado de un sistema a modo de ejemplo que posibilita que un usuario acceda de forma ininterrumpida a cuatro entornos informáticos.
En aras del presente ejemplo, se crean cuatro entornos informáticos:
1. El Entorno A 220 es una instancia de sistema operativo que está asignada a una estación de trabajo física, y que ejecuta un sistema operativo convencional tal como Windows XP de Microsoft. El Entorno A sirve como el entorno base.
2. El Entorno B 240 es un entorno virtual, en aras de un ejemplo creado por VMWare, dentro de la misma
5
10
15
20
25
30
35
40
45
50
55
estación de trabajo física que el Entorno A, y que ejecuta otra instancia de Windows XP de Microsoft.
3. El Entorno C 260 es un entorno virtual, en aras de un ejemplo creado por Microsoft Virtual PC dentro de la misma estación de trabajo física que el Entorno A, y que ejecuta una versión más antigua de sistema operativo tal como Windows 98 de Microsoft.
4. El Entorno D 280 es un entorno de escritorio remoto, en aras de un ejemplo creado por Citrix o Terminal Services.
Estos múltiples entornos informáticos se pueden crear con el fin de solucionar una o más de las siguientes necesidades de TI, tal como se describe en la sección de antecedentes:
1. Uso simultáneo de aplicaciones que se ejecutan en sistemas operativos diferentes.
2. Uso simultáneo de aplicaciones que no pueden coexistir en el mismo entorno.
3. La necesidad de acceder a entornos heredados.
4. Estabilidad
5. Independencia de la TI
En aras del presente ejemplo, a los múltiples entornos informáticos se les asignan las siguientes funciones:
1. El Entorno A 220 se usa para el uso empresarial del día a día, y para ejecutar la aplicación de soporte de clientes A 550 para un primer conjunto de clientes.
2. El Entorno B 240 se usa para ejecutar la aplicación de soporte de clientes B 520 para un conjunto diferente de clientes. Esta aplicación comparte los mismos recursos con la aplicación de soporte de clientes A 550, pero requiere una versión diferente de estos recursos. Esta es la razón por la que las dos aplicaciones no pueden coexistir en el mismo entorno.
3. El Entorno C 260 se usa para ejecutar una aplicación de RR. HH. 530 que no es compatible con sistemas operativos como los del Entorno A 220 o B 240, y requiere el sistema operativo del entorno C 260.
4. El Entorno D 280 se usa para acceder al entorno de gran sistema central 540 de la organización.
El Entorno A 220 se define como el entorno base para el sistema de archivos unificado 700 y unificador de escritorios 600, tal como se describe en el ejemplo anterior.
Debido a que los entornos informáticos no se están separando por fines de seguridad, se permite una transferencia de datos entre la totalidad de los entornos informáticos. No obstante, debido a que el entorno C 260 ejecuta una versión más antigua de sistema operativo, las unidades de datos en formatos que no eran soportados por Windows 98 de Microsoft (tal como la versión más nueva de Microsoft Office) se transforman a un formato de texto o de imagen por medio de un transformador de datos 110 antes de transferirse.
Observando que los entornos separados ejecutan múltiples aplicaciones con requisitos en conflicto, una directiva de permisos se hace cumplir por medio del sistema de archivos unificado 700 con el fin de evitar que tales aplicaciones compartan recursos de archivos tales como DLL o archivos de configuración, evitando de este modo todo conflicto entre las mismas. Esto se puede realizar mediante la exclusión, del sistema de archivos unificado 700, de determinadas rutas o tipos de archivo.
Además, el sistema de archivos unificado 700 separa los archivos creados por aplicaciones en conflicto, incluso si estos tienen la misma extensión o tipo de archivo. Para hacer esto, todas las unidades de datos creadas por una aplicación designada se etiquetan para indicar el entorno en el que se crearon las mismas. La directiva de permisos posibilita que cada entorno lea, escriba y elimine solo aquellos archivos que sean etiquetados por su propia aplicación residente.
La ejecución de una instancia específica de una aplicación, en aras del presente ejemplo para atender a un cliente que es soportado por la aplicación de soporte de clientes B 520, se realiza a través del gestor de ejecución de aplicaciones 500. El gestor de ejecución de aplicaciones 500 crea un comando de ejecución único tal como se describe en el ejemplo anterior. Entonces, se crean enlaces a cada instancia de la aplicación 520 designada dentro del entorno base de escritorio (en este caso, el Entorno A 220). Estos enlaces se pueden colocar en el escritorio del entorno base, el menú de inicio y / o dentro de un menú de iconos de bandeja.
Cuando el usuario intenta acceder a una unidad de datos, el procesamiento se delega en el entorno correcto por medio del gestor de delegación de acceso 400.
En aras del presente ejemplo, una unidad de datos que es creada por la aplicación de soporte de clientes B 520 se etiqueta (o tiene una extensión de archivo única). Por lo tanto, un intento de acceder a la unidad de datos desencadena el gestor de delegación de acceso 400. El entorno de procesamiento se determinará como el Entorno B 240 en el que reside la aplicación de soporte de clientes B 520, y la operación se delegará en el mismo.
También se aplica un sincronizador de ajustes de usuario 300, manteniendo la consistencia de los ajustes entre entornos. Por ejemplo, un cambio en la impresora por defecto a través del entorno C 260 se detecta por medio del sincronizador de ajustes de usuario 300 y se compara con la directiva de sincronización. En aras del presente ejemplo, no se aplica restricción de seguridad alguna a los ajustes de usuario y, por lo tanto, se permite la
sincronización y el cambio se hace en la impresora por defecto de la totalidad de los otros entornos 220, 240 y 280.
Las realizaciones que se han descrito en lo que antecede posibilitan la creación de entornos informáticos capaces de ejecutar múltiples instancias de sistemas operativos y aplicaciones, al tiempo que se proporciona una experiencia de usuario que se asemeja a trabajar en un único entorno unificado.
5 Se aprecia que determinadas características de la invención que, por claridad, se describen en el contexto de realizaciones separadas, también se pueden proporcionar en combinación en una única realización. A la inversa, diversas características de la invención que, por brevedad, se describen en el contexto de una única realización, también se pueden proporcionar por separado o en cualquier subcombinación adecuada.
A pesar de que la invención se ha descrito junto con realizaciones específicas de la misma, es evidente que muchas 10 alternativas, modificaciones y variaciones serán obvias a los expertos en la materia. En consecuencia, se tiene por objeto abarcar la totalidad de aquellas alternativas, modificaciones y variaciones que caigan dentro del amplio ámbito de las reivindicaciones adjuntas. Todas las publicaciones, patentes y solicitudes de patente que se mencionan en la presente memoria descriptiva se incorporan en el presente documento en su totalidad por referencia en la memoria descriptiva, en la misma medida que si se hubiera indicado concreta e individualmente que 15 cada publicación, patente o solicitud de patente individual se incorporara en el presente documento por referencia. Además, no se ha de interpretar la mención o identificación de referencia alguna en la presente solicitud como una admisión de que tal referencia se encuentre disponible como técnica anterior de la presente invención.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    REIVINDICACIONES
    1. Un sistema de supervisión de unificación para integrar una pluralidad de entornos informáticos (12.1 - 12.n), en el que dicha pluralidad de entornos informáticos se encuentran disponibles para su uso simultáneo por un único usuario, comprendiendo cada uno de dichos entornos informáticos un agente propio de una pluralidad de agentes, estando configurado cada agente propio de dicha pluralidad de agentes para proporcionar información con respecto a su entorno informático respectivo y para gestionar dicho entorno informático respectivo según sea indicado por dicho supervisor de unificación, en el que uno de dicha pluralidad de entornos se selecciona como un entorno base (12.1, 220), en el que dicho supervisor de unificación (16) se encuentra en comunicación con dicha pluralidad de agentes, estando configurado dicho supervisor de unificación para recibir dicha información a partir de dicha pluralidad de agentes, para realizar una orientación centralizada de dicha pluralidad de entornos informáticos de acuerdo con dicha información recibida y con el fin de incorporar entornos informáticos que no sean dicho entorno base en dicho entorno base, y para emitir instrucciones a dicha pluralidad de agentes para llevar a cabo dicha orientación, para dotar de ese modo a dicho usuario de un entorno de trabajo unificado, y
    en el que dicho supervisor de unificación comprende un sincronizador de ajustes de usuario (24, 300) que está configurado para mantener la consistencia de los ajustes de usuario entre dicho entorno base y dichos entornos informáticos que no sean dicho entorno base mediante la sincronización de los ajustes de usuario de dichos entornos informáticos que no sean dicho entorno base con los ajustes de usuario de dicho entorno base.
  2. 2. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que al menos uno de dichos entornos informáticos comprende un entorno virtual, o en el que dicho entorno base comprende un entorno anfitrión de usuario y al menos uno de dicha pluralidad de entornos informáticos comprende un entorno virtual en ejecución encima de dicho entorno anfitrión de usuario, o en el que al menos uno de dichos entornos informáticos comprende un escritorio remoto (12.n), o en el que al menos dos de dichos entornos informáticos operan con sistemas operativos diferentes, o en el que al menos uno de dicho supervisor de unificación y dichos agentes se puede ejecutar adicionalmente para etiquetar datos mediante la adición de metadatos, o en el que dicho supervisor de unificación comprende un gestor de ejecución de aplicaciones que está configurado para posibilitar la ejecución de una aplicación de un entorno informático que no sea dicho entorno base a partir de dicho entorno base.
  3. 3. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho supervisor de unificación comprende un unificador de sistemas de archivos, y en el que dicho unificador de sistemas de archivos está configurado para incorporar los sistemas de archivos respectivos de dichos entornos informáticos que no sean dicho entorno base en un sistema de archivos de dicho entorno base, y para posibilitar el acceso a dicho sistema de archivos de dicho entorno base a partir de dichos entornos informáticos que no sean dicho entorno base, dotando de ese modo a dicho usuario de un acceso unificado a un sistema de archivos respectivo de cada uno de dicha pluralidad de entornos informáticos, pudiendo ejecutarse opcionalmente dicho unificador de sistemas de archivos para hacer cumplir una directiva de permisos para el acceso a archivos por cada uno de dicha pluralidad de entornos informáticos.
  4. 4. Un sistema de supervisión de unificación de acuerdo con la reivindicación 3, en el que dicho unificador de sistemas de archivos comprende un transformador de archivos, que está configurado para transformar archivos que se están transfiriendo entre dicho sistema de archivos de dicho entorno base y un sistema de archivos de otro de dicha pluralidad de entornos informáticos, o en el que dicha directiva de permisos es de acuerdo con parámetros de acceso a archivos que comprenden al menos uno de un grupo que consiste en: un tipo de archivo, una carpeta, un tipo de unidad, una ruta, un usuario, un entorno en el que se creó el archivo, un entorno en el que se modificó por última vez el archivo, y una etiqueta.
  5. 5. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho supervisor de unificación comprende un gestor de delegación de acceso que está configurado para delegar operaciones en uno adecuado de dicha pluralidad de entornos informáticos.
  6. 6. Un sistema de supervisión de unificación de acuerdo con la reivindicación 5, en el que dicho gestor de delegación de acceso está configurado adicionalmente para monitorizar las operaciones de usuario en dichos entornos informáticos, y para seleccionar un entorno adecuado para una operación de usuario actual de acuerdo con una directiva de acceso, o en el que dicho gestor de delegación de acceso está configurado adicionalmente para bloquear que una tarea de procesamiento se realice sobre un entorno informático no adecuado, o en el que dicho gestor de delegación de acceso está configurado para seleccionar un entorno adecuado para una operación de procesamiento de archivos actual de acuerdo con parámetros que comprenden al menos uno de un grupo que consiste en: nombre de archivo, extensión de archivo, contenido de archivo, propietario del archivo, tipo de unidad, tipo de archivo, permisos y una etiqueta, o en el que dicho gestor de delegación de acceso está configurado para seleccionar un entorno adecuado para una operación de acceso web actual de acuerdo con parámetros de selección de entornos que comprenden al menos uno de un grupo que consiste en: dominio, formato de dirección, protocolo, permisos de acceso, una etiqueta y características de comunicación.
  7. 7. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho supervisor de unificación comprende un filtro de transferencia de datos que está configurado para controlar operaciones de transferencia de datos entre dicha pluralidad de entornos informáticos de acuerdo con una directiva de transferencia
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    de datos.
  8. 8. Un sistema de supervisión de unificación de acuerdo con la reivindicación 7, en el que dicho filtro de transferencia de datos se puede ejecutar para bloquear una operación de transferencia de datos, o en el que dicho filtro de transferencia de datos comprende un transformador de datos, que está configurado para transformar datos que se están transfiriendo entre dicha pluralidad de entornos informáticos, o en el que una operación de transferencia de datos comprende uno de un grupo que consiste en: transferencia de archivos entre dicha pluralidad de entornos informáticos, operación de copiar, operación de pegar, operación de arrastrar y soltar, operaciones de impresión, transferencia de datos a un dispositivo, transferencia de datos a partir de un dispositivo, transferencia de datos a o a partir de un recurso y sincronización de ajustes de usuario.
  9. 9. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho sincronizador de ajustes de usuario está configurado para controlar dicho mantenimiento de la consistencia de los ajustes de usuario de acuerdo con una directiva de sincronización, aplicándose la directiva de sincronización de una forma por entorno o de una forma por ajuste.
  10. 10. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho supervisor de unificación comprende un gestor de ejecución de aplicaciones que está configurado para posibilitar la ejecución de una aplicación de un entorno informático que no sea dicho entorno base a partir de dicho entorno base, y en el que dicho gestor de ejecución de aplicaciones se puede ejecutar para establecer un comando de ejecución para ejecutar dicha aplicación dentro de dichos entornos informáticos que no sean dicho entorno base, de tal modo que dicha aplicación se ejecuta cuando dicho comando de ejecución se desencadena a partir de dicho entorno base.
  11. 11. Un sistema de supervisión de unificación de acuerdo con la reivindicación 1, en el que dicho supervisor de unificación comprende un unificador de escritorios que está configurado para incorporar escritorios respectivos de entornos informáticos que no sean dicho entorno base en un escritorio de dicho entorno base.
  12. 12. Un sistema de supervisión de unificación de acuerdo con la reivindicación 11, en el que dicho unificador de escritorios está configurado para combinar ventanas activas de dichos entornos informáticos en una imagen visual integrada, o en el que dicho unificador de escritorios está configurado para realizar dicha combinación fuera de banda o en el que dicho unificador de escritorios está configurado para incorporar barras de tareas de dichos entornos informáticos en una barra de tareas de dicho sistema base, o en el que dicho unificador de escritorios está configurado para proporcionar una entrada de usuario unificada y controles para dicho escritorio unificado, o en el que dicho unificador de escritorios está configurado para combinar iconos de bandeja de dichos múltiples entornos informáticos en un área de iconos de bandeja de dicho entorno de escritorio base o en el que dicho unificador de escritorios está configurado adicionalmente para sincronizar parámetros de escritorio en dichos entornos informáticos que no sean dicho entorno base con parámetros respectivos de dicho escritorio de dicho entorno base.
  13. 13. Un procedimiento para su uso en un sistema de supervisión de unificación (16) para integrar una pluralidad de entornos informáticos (12.1 - 12.n) en un único entorno unificado, en el que dicha pluralidad de entornos informáticos se encuentran disponibles para su uso simultáneo por un único usuario, y en el que uno de dicha pluralidad de entornos se selecciona como un entorno base (12.1, 220), que comprende:
    monitorizar la información recibida a partir de una pluralidad de agentes (14.1 - 14.n), en el que cada uno de dichos entornos informáticos (12.1 - 12.n) comprende un agente propio de dicha pluralidad, con respecto a un estatus en curso del entorno informático respectivo, en el que dicha información con respecto a un estatus en curso de un entorno informático de dicha pluralidad de entornos informáticos es proporcionada por el agente propio que está comprendido en el entorno informático;
    realizar una orientación centralizada de dicha pluralidad de entornos informáticos de acuerdo con dicha información recibida con el fin de incorporar entornos informáticos que no sean dicho entorno base en dicho entorno base;
    emitir instrucciones a dicha pluralidad de agentes para llevar a cabo dicha orientación, en el que cada agente propio está configurado para gestionar el entorno informático respectivo según sea indicado por el supervisor de unificación; y
    mantener la consistencia de los ajustes de usuario entre dicho entorno base y dichos entornos informáticos que no sean dicho entorno base mediante la sincronización de los ajustes de usuario de dichos entornos informáticos que no sean dicho entorno base con los ajustes de usuario de dicho sistema base, dotando de ese modo a dicho usuario de un entorno de trabajo unificado.
  14. 14. Un procedimiento de acuerdo con la reivindicación 13, en el que al menos uno de dichos entornos informáticos comprende un entorno virtual, o en el que uno de dicha pluralidad de entornos informáticos comprende un entorno informático físico de hospedaje que soporta dicho entorno virtual, o que comprende adicionalmente incorporar los sistemas de archivos respectivos de dichos entornos informáticos que no sean dicho entorno base en un sistema de archivos de dicho entorno base de acuerdo con una directiva de permisos, dotando de ese modo a dicho usuario de un acceso unificado a un sistema de archivos respectivo de cada uno de dicha pluralidad de entornos informáticos, o que comprende adicionalmente delegar operaciones en uno adecuado de dicha pluralidad de entornos informáticos, en el que se selecciona dicho entorno informático adecuado, o que comprende adicionalmente controlar la
    transferencia de datos entre dicha pluralidad de entornos informáticos, o que comprende adicionalmente transformar datos que se están transfiriendo entre dicha pluralidad de entornos informáticos.
  15. 15. Un soporte legible por ordenador que almacena instrucciones ejecutables por ordenador que, cuando son llevadas a cabo por un procesador, dan lugar a que el procesador realice el procedimiento de una de las 5 reivindicaciones 13 y 14.
ES07700748.2T 2006-01-17 2007-01-17 Integración ininterrumpida de múltiples entornos informáticos Active ES2659651T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US75903206P 2006-01-17 2006-01-17
US759032P 2006-01-17
PCT/IL2007/000057 WO2007083299A2 (en) 2006-01-17 2007-01-17 Seamless integration of multiple computing environments

Publications (1)

Publication Number Publication Date
ES2659651T3 true ES2659651T3 (es) 2018-03-16

Family

ID=38288006

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07700748.2T Active ES2659651T3 (es) 2006-01-17 2007-01-17 Integración ininterrumpida de múltiples entornos informáticos

Country Status (7)

Country Link
US (1) US8606895B2 (es)
EP (1) EP1977347B1 (es)
JP (1) JP5483884B2 (es)
KR (1) KR20080092432A (es)
CN (1) CN101583940B (es)
ES (1) ES2659651T3 (es)
WO (1) WO2007083299A2 (es)

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678624B2 (en) 2011-09-27 2017-06-13 Z124 Unified desktop triad control user interface for a phone manager
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US20130104062A1 (en) 2011-09-27 2013-04-25 Z124 Unified desktop input segregation in an application manager
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US9529494B2 (en) 2011-09-27 2016-12-27 Z124 Unified desktop triad control user interface for a browser
US8321437B2 (en) * 2005-12-29 2012-11-27 Nextlabs, Inc. Detecting behavioral patterns and anomalies using activity profiles
KR20080085210A (ko) 2006-01-17 2008-09-23 카이다로 (이스라엘) 리미티드 네트워크 환경에서의 데이터 보안
US7853669B2 (en) 2007-05-04 2010-12-14 Microsoft Corporation Mesh-managing data across a distributed set of devices
US7912860B2 (en) * 2007-06-25 2011-03-22 Microsoft Corporation Strongly typed tags
US8296785B2 (en) * 2007-10-12 2012-10-23 International Business Machines Corporation Providing links between application programs
US9436840B2 (en) * 2007-12-27 2016-09-06 Safend Ltd. System and method for securely storing information
US9076342B2 (en) 2008-02-19 2015-07-07 Architecture Technology Corporation Automated execution and evaluation of network-based training exercises
US9298747B2 (en) 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8484174B2 (en) 2008-03-20 2013-07-09 Microsoft Corporation Computing environment representation
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration
US9753712B2 (en) 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
JP4670889B2 (ja) * 2008-04-02 2011-04-13 日本電気株式会社 仮想計算機におけるファイルシステム高速化方法及びそのシステム
KR101506683B1 (ko) * 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
US8543935B2 (en) * 2008-08-20 2013-09-24 Red Hat, Inc. Full-screen heterogeneous desktop display and control
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
US8812451B2 (en) * 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
US9680964B2 (en) * 2009-03-11 2017-06-13 Microsoft Technology Licensing, Llc Programming model for installing and distributing occasionally connected applications
US8413139B2 (en) 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
JP5481308B2 (ja) 2009-11-30 2014-04-23 株式会社Nttドコモ データ制御装置及びプログラム
US8849924B2 (en) * 2010-04-08 2014-09-30 Microsoft Corporation Network infrastructure management
US9767274B2 (en) 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US9558051B1 (en) 2010-05-28 2017-01-31 Bormium, Inc. Inter-process communication router within a virtualized environment
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9135038B1 (en) 2010-05-28 2015-09-15 Bromium, Inc. Mapping free memory pages maintained by a guest operating system to a shared zero page within a machine frame
US9148428B1 (en) 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US10310696B1 (en) 2010-05-28 2019-06-04 Bromium, Inc. Supporting a consistent user interface within a virtualized environment
US9104837B1 (en) 2012-06-18 2015-08-11 Bromium, Inc. Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US8972980B2 (en) * 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US8862545B2 (en) 2010-06-15 2014-10-14 Microsoft Corporation Multi-environment configuration of data integration projects
JP5351853B2 (ja) 2010-08-05 2013-11-27 株式会社エヌ・ティ・ティ・ドコモ 情報処理端末及びリソース解放方法
KR20120068573A (ko) 2010-12-17 2012-06-27 삼성전자주식회사 심리스 애플리케이션 통합 장치 및 방법
US9178981B2 (en) * 2010-12-22 2015-11-03 Lg Electronics Inc. Mobile terminal and method of sharing information therein
US20120174021A1 (en) * 2011-01-04 2012-07-05 Motorola, Inc. Systems and methods for displaying android applications launchers in webtop application tray
US9323562B2 (en) * 2011-01-21 2016-04-26 Red Hat, Inc. Providing seamless copy-paste operations in a virtual machine environment
US10057298B2 (en) * 2011-02-10 2018-08-21 Architecture Technology Corporation Configurable investigative tool
US10067787B2 (en) 2011-02-10 2018-09-04 Architecture Technology Corporation Configurable forensic investigative tool
US8866701B2 (en) 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US9210213B2 (en) 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
US8578006B2 (en) * 2011-03-29 2013-11-05 Symantec Corporation Enabling selective policy driven propagation of configuration elements between and among a host and a plurality of guests
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US8839245B1 (en) 2012-06-18 2014-09-16 Bromium, Inc. Transferring files using a virtualized application
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US9921860B1 (en) 2011-05-25 2018-03-20 Bromium, Inc. Isolation of applications within a virtual machine
US10846396B1 (en) 2011-05-25 2020-11-24 Hewlett-Packard Development Company, L.P. Downloading data in a dedicated virtual machine
US20160124698A1 (en) 2011-08-24 2016-05-05 Z124 Unified desktop triad control user interface for an application launcher
US8842057B2 (en) 2011-09-27 2014-09-23 Z124 Detail on triggers: transitional states
US11416131B2 (en) 2011-09-27 2022-08-16 Z124 Unified desktop input segregation in an application manager
US9703468B2 (en) * 2011-09-27 2017-07-11 Z124 Unified desktop independent focus in an application manager
US9268589B2 (en) * 2011-12-09 2016-02-23 Yahoo! Inc. Method and system for deploying multiple distributed application stacks on a target machine
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
JP5979893B2 (ja) * 2012-02-01 2016-08-31 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US9245108B1 (en) 2012-03-13 2016-01-26 Bromium, Inc. Dynamic adjustment of the file format to identify untrusted files
CN102662741B (zh) * 2012-04-05 2014-04-02 华为技术有限公司 虚拟桌面的实现方法、装置和系统
US9516451B2 (en) 2012-04-10 2016-12-06 Mcafee, Inc. Opportunistic system scanning
US8955036B2 (en) * 2012-04-11 2015-02-10 Mcafee, Inc. System asset repository management
US9049207B2 (en) 2012-04-11 2015-06-02 Mcafee, Inc. Asset detection system
US8954573B2 (en) 2012-04-11 2015-02-10 Mcafee Inc. Network address repository management
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
JPWO2013168221A1 (ja) * 2012-05-08 2015-12-24 株式会社Synclogue 同期プログラム、同期サーバ、及び同期方法
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US20150145763A1 (en) * 2012-06-15 2015-05-28 Nikon Corporation Electronic device
US10095662B1 (en) 2012-06-18 2018-10-09 Bromium, Inc. Synchronizing resources of a virtualized browser
US9384026B1 (en) 2012-06-18 2016-07-05 Bromium, Inc. Sharing and injecting cookies into virtual machines for retrieving requested web pages
US9201850B1 (en) 2012-06-18 2015-12-01 Bromium, Inc. Composing the display of a virtualized web browser
US11023088B2 (en) 2012-06-18 2021-06-01 Hewlett-Packard Development Company, L.P. Composing the display of a virtualized web browser
US9727534B1 (en) 2012-06-18 2017-08-08 Bromium, Inc. Synchronizing cookie data using a virtualized browser
US9734131B1 (en) 2012-06-18 2017-08-15 Bromium, Inc. Synchronizing history data across a virtualized web browser
US9015234B2 (en) 2012-07-25 2015-04-21 Lg Cns Co., Ltd. Automated distributed testing administration environment
EP2891038B1 (en) 2012-08-31 2020-06-24 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
CN103679035B (zh) * 2012-09-24 2016-12-28 腾讯科技(深圳)有限公司 安全性检测方法与装置
US9678978B2 (en) * 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
EP2943878B1 (en) 2013-01-08 2018-09-19 BlackBerry Limited Clipboard management
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9292328B2 (en) 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
US10623243B2 (en) * 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US9813461B2 (en) * 2013-11-04 2017-11-07 Cisco Technology, Inc. Viewing full screen applications in a sharing session
US10599565B2 (en) 2013-12-24 2020-03-24 Hewlett-Packard Development Company, L.P. Hypervisor managing memory addressed above four gigabytes
US10027764B2 (en) 2013-12-31 2018-07-17 Google Llc Associating network-hosted files with network-hosted applications
US10404769B2 (en) * 2013-12-31 2019-09-03 Google Llc Remote desktop video streaming alpha-channel
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
CN105094764B (zh) * 2014-05-04 2019-01-08 中国移动通信集团公司 电子设备应用的生成方法及装置
US9680873B1 (en) 2014-06-30 2017-06-13 Bromium, Inc. Trusted network detection
WO2016018414A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Display of multiple instances
US10311122B1 (en) 2014-08-22 2019-06-04 Bromium, Inc. On-demand unprotected mode access
US20160119359A1 (en) * 2014-10-28 2016-04-28 Samyutam Software Solutions Pvt. Ltd System and method for providing a secure access in an organization system
JP6511946B2 (ja) * 2015-05-11 2019-05-15 富士ゼロックス株式会社 情報処理システム、情報処理装置及び情報処理プログラム
US10803766B1 (en) 2015-07-28 2020-10-13 Architecture Technology Corporation Modular training of network-based training exercises
US10083624B2 (en) 2015-07-28 2018-09-25 Architecture Technology Corporation Real-time monitoring of network-based training exercises
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
CN108256349A (zh) * 2017-12-29 2018-07-06 北京奇虎科技有限公司 网页防护的方法及装置
US10783012B2 (en) 2018-04-20 2020-09-22 CopyBucket, Inc. Systems and methods for efficient inter-device data exchange
US10817604B1 (en) 2018-06-19 2020-10-27 Architecture Technology Corporation Systems and methods for processing source codes to detect non-malicious faults
US10749890B1 (en) 2018-06-19 2020-08-18 Architecture Technology Corporation Systems and methods for improving the ranking and prioritization of attack-related events
CN110826653B (zh) * 2018-08-08 2024-02-09 耀客明道物联网(武汉)有限公司 一种基于物联网的储藏品管理系统及管理方法
US10291479B1 (en) * 2018-12-13 2019-05-14 LogicMonitor, Inc. Discovering a computer network topology for an executing application
US11429713B1 (en) 2019-01-24 2022-08-30 Architecture Technology Corporation Artificial intelligence modeling for cyber-attack simulation protocols
US11128654B1 (en) 2019-02-04 2021-09-21 Architecture Technology Corporation Systems and methods for unified hierarchical cybersecurity
US11887505B1 (en) 2019-04-24 2024-01-30 Architecture Technology Corporation System for deploying and monitoring network-based training exercises
US11797319B2 (en) * 2019-05-10 2023-10-24 Dell Products L.P. Copy and paste in virtual console with keyboard play
US11403405B1 (en) 2019-06-27 2022-08-02 Architecture Technology Corporation Portable vulnerability identification tool for embedded non-IP devices
JP7138230B2 (ja) * 2019-09-25 2022-09-15 株式会社日立製作所 計算機システム、データ制御方法及び記憶媒体
US11444974B1 (en) 2019-10-23 2022-09-13 Architecture Technology Corporation Systems and methods for cyber-physical threat modeling
US11503075B1 (en) 2020-01-14 2022-11-15 Architecture Technology Corporation Systems and methods for continuous compliance of nodes
WO2024103083A1 (en) 2022-11-14 2024-05-23 Xephor Solutions GmbH Computing system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995033235A1 (fr) * 1994-05-31 1995-12-07 Fujitsu Limited Systeme et procede d'execution d'un travail entre differents systemes d'exploitation
US6178443B1 (en) * 1996-12-20 2001-01-23 Intel Corporation Method and apparatus for propagating user preferences across multiple computer environments
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
JPH11338810A (ja) 1998-05-29 1999-12-10 Toshiba Corp 情報端末装置、環境設定方法及び記録媒体
US6131096A (en) * 1998-10-05 2000-10-10 Visto Corporation System and method for updating a remote database in a network
JP2000322393A (ja) * 1999-05-13 2000-11-24 Nec Soft Ltd 運用管理システム
US6380940B1 (en) 1999-07-30 2002-04-30 Curl Corporation Processing graphical objects having origins defined with elasticity
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6836888B1 (en) * 2000-03-17 2004-12-28 Lucent Technologies Inc. System for reverse sandboxing
EP1305687B1 (en) 2000-05-24 2008-07-30 Voltaire Ltd. Filtered application-to-application communication
US7039801B2 (en) * 2000-06-30 2006-05-02 Microsoft Corporation System and method for integrating secure and non-secure software objects
WO2003005224A1 (en) * 2001-07-05 2003-01-16 Findbase Llc Method and system for co-joining computational space cells in a networked environment
US7603469B2 (en) * 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
US20030169305A1 (en) * 2002-01-31 2003-09-11 Hodges Matthew Erwin System for transmitting state-specifications as entry parameters to virtual reality systems
GB2399902A (en) 2003-03-28 2004-09-29 Hewlett Packard Development Co Security in trusted computing systems
US8972977B2 (en) * 2004-06-30 2015-03-03 Microsoft Technology Licensing, Llc Systems and methods for providing seamless software compatibility using virtual machines
WO2006010257A1 (en) * 2004-07-30 2006-02-02 Research In Motion Limited Method and system for coordinating device setting between a communications client and its host device
US7484247B2 (en) * 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US7735081B2 (en) * 2004-12-17 2010-06-08 Intel Corporation Method, apparatus and system for transparent unification of virtual machines
US7765544B2 (en) * 2004-12-17 2010-07-27 Intel Corporation Method, apparatus and system for improving security in a virtual machine host
US8479193B2 (en) * 2004-12-17 2013-07-02 Intel Corporation Method, apparatus and system for enhancing the usability of virtual machines
KR20080085210A (ko) 2006-01-17 2008-09-23 카이다로 (이스라엘) 리미티드 네트워크 환경에서의 데이터 보안

Also Published As

Publication number Publication date
KR20080092432A (ko) 2008-10-15
WO2007083299A3 (en) 2009-04-16
CN101583940B (zh) 2012-10-31
EP1977347B1 (en) 2017-12-27
EP1977347A4 (en) 2010-10-06
EP1977347A2 (en) 2008-10-08
JP2009525513A (ja) 2009-07-09
US20090328033A1 (en) 2009-12-31
JP5483884B2 (ja) 2014-05-07
US8606895B2 (en) 2013-12-10
CN101583940A (zh) 2009-11-18
WO2007083299A2 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
ES2659651T3 (es) Integración ininterrumpida de múltiples entornos informáticos
US11593055B2 (en) Selective screen sharing
US8589947B2 (en) Methods, systems, and media for application fault containment
US10607007B2 (en) Micro-virtual machine forensics and detection
US9923926B1 (en) Seamless management of untrusted data using isolated environments
US9501310B2 (en) Micro-virtual machine forensics and detection
US9348636B2 (en) Transferring files using a virtualized application
US9626204B1 (en) Automated provisioning of secure virtual execution environment using virtual machine templates based on source code origin
US11023088B2 (en) Composing the display of a virtualized web browser
US9110701B1 (en) Automated identification of virtual machines to process or receive untrusted data based on client policies
US8769268B2 (en) System and methods providing secure workspace sessions
US9542216B2 (en) Richer model of cloud app markets
US9104837B1 (en) Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US9558051B1 (en) Inter-process communication router within a virtualized environment
US9727534B1 (en) Synchronizing cookie data using a virtualized browser
US9460293B1 (en) Clipboard hardening
US10311122B1 (en) On-demand unprotected mode access
US9734131B1 (en) Synchronizing history data across a virtualized web browser
CN115053221A (zh) 用于异构多设备交互的安全用户界面分发方法
Arthur et al. Privacy‐aware shared UI toolkit for nomadic environments
Löhr et al. Trusted virtual domains on OpenSolaris: Usable secure desktop environments
Halsey et al. Using Scripting Tools for Troubleshooting
Weber et al. Requirements and Design Guidelines for a Trusted Hypervisor Interface
FARROW The Numbers