BRPI0915636B1 - Método e sistema para iniciar um aplicativo - Google Patents
Método e sistema para iniciar um aplicativo Download PDFInfo
- Publication number
- BRPI0915636B1 BRPI0915636B1 BRPI0915636-4A BRPI0915636A BRPI0915636B1 BR PI0915636 B1 BRPI0915636 B1 BR PI0915636B1 BR PI0915636 A BRPI0915636 A BR PI0915636A BR PI0915636 B1 BRPI0915636 B1 BR PI0915636B1
- Authority
- BR
- Brazil
- Prior art keywords
- context
- application
- change
- policy
- configuration
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
separação de estado para alterações da aplicação trata-se do fato de que estados da aplicação podem ser armazenados e recuperados utilizando políticas que definem vários contextos no quais a aplicação é utilizada. os estados da aplicação podem definir configurações ou usos da aplicação, incluindo conexões e interações com outras aplicações. as aplicações que são virtualizadas podem possuir o estado que é definido dentro de um contexto de utilização e múltiplos estados ou configurações podem ser armazenados e retornados baseados no contexto de utilização. as políticas podem definir o contexto e quais parâmetros a serem salvos, e podem ser aplicadas quando as aplicações são operadas de uma maneira virtualizada.
Description
[0001] As aplicações podem ser modificadas de várias maneiras diferentes. Em alguns casos, uma aplicação pode ser modificada pela atualização de registros, alteração de arquivos de configuração, atualização de bibliotecas de ligação dinâmica, ou por outros mecanismos. Cada alteração para a aplicação pode afetar partes de um sistema operacional, o que por sua vez pode afetar outras aplicações que executam no ambiente do sistema operacional.
[0002] Os estados da aplicação podem ser armazenados e recuperados utilizando políticas que definem vários contextos nos quais a aplicação é utilizada. Os estados da aplicação podem definir configurações ou usos da aplicação, incluindo conexões e interações com outras aplicações. Aplicações que são virtualizadas podem ter o estado que é definido dentro de um contexto de utilização e múltiplos estados ou configurações podem ser armazenados e retornados baseado no contexto de utilização. As políticas podem definir o contexto e quais parâmetros a serem salvos, e podem ser aplicadas quando as aplicações são operadas de uma maneira virtualizada.
[0003] Este sumário é proporcionado para introduzir uma seleção de conceitos de uma forma simplificada, os quais são adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindicado, nem é pretendido para ser utilizado para limitar o escopo do assunto reivindicado.
[0004] Nos desenhos,
[0005] A FIGURA 1 é uma ilustração de diagrama de uma concretização apresentando um sistema para armazenar diferentes configurações baseado no contexto de uma aplicação.
[0006] A FIGURA 2 é uma ilustração de fluxograma de uma concretização apresentando um método para operação com diferentes configurações de contexto.
[0007] As aplicações podem ser operadas em estados ou configurações diferentes. Um tal mecanismo é através da virtualização da aplicação. Quando uma aplicação é configurada para um contexto particular, a informação da configuração pode ser salva e retornada para uso posterior. A aplicação pode ser configurada para operar em vários estados diferentes e um conjunto de políticas gerencia as configurações.
[0008] O estado no qual uma aplicação é executada pode inclui configurações do sistema operacional, a presença e a operação de várias outras aplicações, a configuração de serviços acessados através de uma rede ou de outra conexão, e vários outros fatores. A configuração e a operação da aplicação podem ser diferentes para diferentes estados.
[0009] Por exemplo, algumas aplicações podem possuir uma relação simbiótica com outras aplicações. O comportamento ou performance de uma aplicação por si só pode ser diferente do comportamento ou performance de uma aplicação com outra aplicação integral. Em tal exemplo, uma configuração pode ser definida para a aplicação no estado de operação solo, e uma configuração separada pode ser definida para a aplicação quando a segunda aplicação simbiótica está presente e operando.
[00010] Em uma típica concretização, as aplicações podem ser operadas em um ambiente virtual. O ambiente virtual pode ser capaz de aceitar diferentes conjuntos de parâmetros de configuração baseado em um contexto particular. Em alguns casos, um ambiente virtual pode ser um ambiente de máquina virtual. Em outros casos, um ambiente virtual pode ser um ambiente de aplicação virtual.
[00011] Para o propósito deste relatório descritivo e das concretizações, uma configuração da aplicação pode se referir ao modo no qual uma aplicação é definida ou configurada. Uma configuração da aplicação pode incluir qualquer elemento que possa ser alterado ou conjunto, incluindo estes elementos que afetam a performance, funções, aparência, ou outras características operacionais da aplicação.
[00012] Para o propósito deste relatório descritivo e das concretizações, um estado da aplicação pode ser referir ao contexto no qual uma aplicação é executada. O estado pode incluir um sistema operacional e quaisquer parâmetros ou configurações do sistema de operação ou quaisquer aplicações instaladas ou executando. O estado pode incluir a condição e a configuração de qualquer outro elemento que possa interagir com a aplicação, incluindo componentes de hardware, serviços disponíveis através de uma rede, outras aplicações executando, dispositivos periféricos, e qualquer outro item.
[00013] Para os propósitos deste relatório descritivo e das concretizações, um contexto da aplicação pode ser uma categoria de um estado da aplicação. Enquanto o estado pode incluir qualquer variável que possa afetar uma aplicação, um contexto pode ser uma ampla categoria que pode ser utilizada para classificar e armazenar uma configuração. Por exemplo, os contextos podem ser definidos para sessões, ambientes de aplicação virtual, ambientes de máquina virtual, contextos específicos do usuário, contextos específicos da máquina, contextos específicos de grupo de usuários ou de grupo de máquinas, contextos onde duas ou mais aplicações interagindo operam em conjunto, e outros contextos.
[00014] Por todo este relatório descritivo, números de referência iguais significam os mesmos elementos por toda a descrição das figuras.
[00015] Quando elementos são referidos como estando “conectados” ou “acoplados”, os elementos podem estar diretamente conectados ou acoplados ou um ou mais elementos intermediários também podem estar presentes. Em contraste, quando elementos são referidos como estando “diretamente conectado” ou “diretamente acoplado”, não existem elementos intermediários presentes.
[00016] O assunto pode ser incorporado como dispositivos, sistemas, métodos e/ou produtos de programa de computador. Por consequência, alguma parte ou todo o assunto pode ser incorporado em hardware e/ou em software (incluindo firmware, software residente, microcódigo, máquinas de estado, arranjos de portas, etc.). Adicionalmente, o assunto pode assumir a forma de um produto de programa de computador em um meio de armazenamento utilizável por computador ou legível por computador possuindo código de programa utilizável por computador ou legível por computador incorporado no meio para uso pelo sistema de execução de instrução ou em conexão com o sistema de execução de instrução. No contexto deste documento, um meio utilizável por computador ou legível por computador pode ser qualquer meio que possa conter, armazenar, comunicar, propagar, ou transportar o programa para uso pelo ou em conexão dom sistema, aparelho, ou dispositivo de execução de instrução.
[00017] O meio utilizável por computador ou legível por computador pode ser, por exemplo, mas não limitado a isto, um sistema, aparelho, dispositivo ou meio de propagação eletrônico, magnético, ótico, eletromagnético, infravermelho, ou semicondutor. A título de exemplo e não de limitação, o meio legível por computador pode compreender meio de armazenamento do computador e meio de comunicação.
[00018] O meio de armazenamento do computador inclui meio volátil e não volátil, removível e não removível implementado em qualquer método ou tecnologia para armazenamento de informação, tal como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. O meio de armazenamento do computador inclui, mas não está limitado à RAM, ROM, EEPROM, memória tlash ou outra tecnologia de memória, CDROM, discos versáteis digitais (DVD) ou outro armazenamento ótico, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros dispositivos magnéticos de armazenamento, ou qualquer outro meio que possa ser utilizado para armazenar a informação desejada e que possa ser acessado por um sistema de execução de instrução. Observe que o meio utilizável por computador ou legível por computador poderia ser um papel ou outro meio adequado sobre o qual o programa é impresso à medida que o programa pode ser eletronicamente capturado, por exemplo, através de varredura ótica do papel ou de outro meio, então compilado, interpretado, ou de outro modo processado de uma maneira adequada, se necessário, e então armazenado em uma memória do computador.
[00019] O meio de comunicação tipicamente incorpora instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulado tal como uma onda portadora ou outro mecanismo de transporte e inclui qualquer meio de distribuição de informação. O termo “sinal de dados modulado” significa um sinal que possui uma ou mais de suas características estabelecidas ou alteradas de uma maneira a codificar a informação no sinal. A título de exemplo, e não de limitação, o meio de comunicação pode incluir meio com fios tal como uma rede com fios ou conexão direta com fio, e meio sem fios tal como meio acústico, RF, infravermelho e outros meios sem uso de fios. Combinações de qualquer um dos ditos acima também estão incluídas dentro do escopo de meio legível por computador.
[00020] Quando o assunto é incorporado no contexto geral de instruções executáveis por computador, a concretização pode compreender módulos de programa, executados por um ou mais sistemas, computadores ou outros dispositivos. Geralmente, os módulos de programa incluem rotinas, programas, objetos, componentes, estruturas de dados, etc., que executam tarefas particulares ou implementam tipos de dados abstratos particulares. Tipicamente, a funcionalidade dos módulos de programa pode ser combinada ou distribuída como desejado em várias concretizações.
[00021] A Figura 1 é um diagrama de uma concretização 100 apresentando um sistema com um sistema de separação e gerenciamento de estado. A concretização 100 é um exemplo de um sistema que pode armazenar e gerenciar configurações para uma aplicação baseado no contexto ou no estado da aplicação.
[00022] O diagrama da Figura 1 ilustra componentes funcionais de um sistema. Em alguns casos, o componente pode ser um componente de hardware, um componente de software, ou uma combinação de hardware e software. Alguns componentes podem ser software em nível de aplicação, enquanto outros componentes podem ser componentes em nível de sistema operacional. Em alguns casos, a conexão de um componente com outro pode ser uma conexão próxima onde dois ou mais componentes estão operando em uma única plataforma de hardware. Em outros casos, as conexões podem ser feitas através de conexão de rede percorrendo longas distâncias. Cada concretização pode utilizar diferentes arquiteturas de hardware, de software e de interconexão para alcançar as funções descritas.
[00023] A concretização 100 é um exemplo dos elementos funcionais que podem constituir um sistema de execução com múltiplos estados para uma aplicação. Diferentes configurações 104 da aplicação 102 podem ser executadas em um sistema de execução 106 baseado no contexto no qual a aplicação é para ser executada.
[00024] Várias concretizações podem possuir diferentes níveis de configurações que podem ser executadas para uma aplicação. Por exemplo, uma aplicação que é instalada e executada dentro de um ambiente de sistema operacional pode possuir um conjunto de arquivos de configuração que definem uma configuração. Um conjunto diferente de arquivos de configuração pode ser utilizado para iniciar a aplicação 102 baseado no contexto associado com os arquivos de configuração.
[00025] Em outro exemplo, uma aplicação pode ser executada dentro de um ambiente virtual e, em adição aos arquivos de configuração do exemplo anterior, parâmetros de registrador, bibliotecas de ligação dinâmica e vários outros elementos de configuração podem ser variados entre contextos. Tais ambientes virtuais podem ser ambientes de máquina virtual ou ambientes de aplicação virtual. Quando um ambiente virtual é utilizado para executar uma aplicação, um conjunto muito amplo e rico de elementos de configuração pode ser variado entre os contextos.
[00026] Uma aplicação 102 pode ser qualquer tipo de programa executável ou conjunto de programas, serviços, ou outras operações que são executadas dentro de um ambiente de computação. Em vários casos, uma aplicação pode possuir uma coleção de elementos executáveis tais como arquivos que podem ser executados diretamente dentro de um ambiente de sistema operacional ou executados dentro de um ambiente de aplicação, tais como scripts, subrotinas, bibliotecas, ou outros componentes.
[00027] Várias aplicações 102 podem operar em conjunto com outras aplicações ou serviços. Por exemplo, uma aplicação 102 pode operar com um serviço de Rede que é acessado através da Internet. Em tal exemplo, a aplicação pode executar algumas operações e o serviço da Rede pode executar outras operações de modo a distribuir uma experiência do usuário.
[00028] Em outro exemplo, uma aplicação 102 pode ser operáveis por si só ou com outra aplicação que “funciona como uma extensão” ou é pelo menos parcialmente integrada com a primeira aplicação. Um exemplo pode ser uma aplicação tal como um programa de processamento de texto que pode exibir uma barra de ferramentas, itens de menu, ou outras ligações para uma aplicação de edição de documento quando a aplicação de edição de documento está operacional. Quando a aplicação de edição de documento não está disponível, a aplicação de processamento de texto pode possuir uma interface com o usuário, mas pode possuir uma segunda interface com o usuário e o segundo conjunto de funções disponíveis quando a aplicação de edição de documento está disponível.
[00029] Em tal exemplo, a aplicação 102 pode possuir uma configuração 104 definida para um estado ou contexto quando operando sozinha, e uma segunda configuração 104 para um segundo estado ou contexto quando operando com uma segunda aplicação. Cada configuração 104 pode ser definida separadamente e gerenciada utilizando um sistema de monitoramento de alteração 108 em conjunto com um conjunto de políticas 110.
[00030] O sistema de monitoramento de alteração 108 pode detectar e armazenar alterações para uma configuração da aplicação 104. O sistema de monitoramento de alteração 108 pode detectar uma alteração, classificar a alteração e determinar se a alteração é aplicável para um ou mais contextos nos quais a aplicação 102 está executando ou será executada. A definição de como as alterações e contextos são classificados e de como as alterações são distribuídas podem ser definidas nas políticas 110.
[00031] A concretização 100 apresenta uma aplicação separada 102 e um conjunto de configurações 104. Em algumas concretizações, as configurações 104 podem ser armazenadas como um conjunto de arquivos ou de parâmetros que podem ser implementados na parte de cima de configurações preestabelecidas que podem ser definidas dentro da aplicação 102. Em tais concretizações, as configurações 104 podem ser vistas como um arquivo “deita” ou grupo de alterações a partir da preestabelecida.
[00032] Em outras concretizações, uma aplicação pode ser definida como um pacote que inclui uma das configurações 104. Um pacote de aplicação deferente pode ser criado para cada configuração. Tais concretizações podem ser utilizadas onde os parâmetros dentro de uma configuração são predominantes ou onde as alterações da configuração são utilizadas quando a aplicação é iniciada. Um exemplo de tais alterações da configuração pode ser parâmetros do registrador que definem opções utilizadas pela aplicação durante a inicialização do computador.
[00033] O sistema de execução 106 pode ser qualquer ambiente, espaço de trabalho, ou mecanismo capaz de executar a aplicação 102. Em algumas concretizações, o sistema de execução 106 pode ser um ambiente de sistema operacional no qual várias outras aplicações e serviços operam, incluindo o sistema de monitoramento de alteração 108, por exemplo. Em algumas concretizações, o sistema de execução 106 pode ser um ambiente virtual tal como uma máquina virtual ou um ambiente de aplicação virtual. Ainda em outras concretizações, o sistema de execução 106 pode ser uma plataforma de hardware separada que executa a aplicação 102.
[00034] A arquitetura da concretização 100 pode ser qualquer tipo de arquitetura de computação. Em algumas concretizações, vários dos componentes ilustrados na concretização 100 podem ser executados em uma única plataforma de hardware tal como um computador pessoal ou computador servidor. Em outras concretizações, alguns dos componentes podem ser executados em uma plataforma de hardware enquanto outros componentes podem ser executados em uma plataforma de hardware separada. Algumas concretizações podem utilizar várias diferentes plataformas de hardware para implementarem a concretização 100. Tais concretizações podem ser denominadas de uma configuração entre máquinas.
[00035] Em algumas arquiteturas entre máquinas, alguns dos componentes da concretização 100 podem ser implementados como máquinas virtuais ou operados dentro de ambiente de aplicação virtual. Uma máquina virtual pode ser uma simulação de software de uma plataforma de hardware e pode conter um sistema operacionai e pode funcionar como se a máquina virtual fosse uma plataforma de hardware dedicada separada.
[00036] A virtualização da aplicação pode criar cópias específicas da aplicação de todos os recursos compartilhados. Cada aplicação pode possuir uma configuração separada de recursos potencialmente compartilhados tais como entradas de registradores, bibliotecas de ligação dinâmica, e outros objetos que podem ser empacotados com a aplicação. O pacote pode ser executado em uma cache, criando uma aplicação virtual. Quando uma aplicação virtual é empregadas, ela pode utilizar sua própria cópia destes recursos compartilhados.
[00037] Um gerenciador de contexto 112 pode determinar um contexto no qual uma aplicação está operando ou estará operando. O gerenciador de contexto 112 pode monitorar a presença, configuração e outros parâmetros de vários diferentes recursos que podem estar disponíveis para a aplicação 102. O gerenciador de contexto 112 pode determinar um estado para uma aplicação que pode ser utilizado pelo sistema de monitoramento de alteração 108 para armazenar configurações de forma apropriada. O gerenciador de contexto 112 também pode definir um estado para um ativador de aplicação 126 que pode selecionar entre várias configurações 104 baseado no estado ou no contexto.
[00038] O gerenciador de contexto 112 pode ser uma aplicação ou serviço que continuamente monitora várias facetas de um sistema. Em alguns casos, tal gerenciador de contexto 112 pode operar em uma única plataforma de hardware e monitorar várias condições. A plataforma de hardware pode ser a mesma plataforma de hardware na qual a aplicação 102 pode ser executada. Em outras concretizações, o gerenciador de contexto 112 pode ser um serviço que opera de forma remota a partir da plataforma de hardware na qual a aplicação 102 é executada.
[00039] O gerenciador de contexto 112 pode coletar várias informações, metadados, e parâmetros sobre o estado no qual uma aplicação está sendo operada ou será operada. O gerenciador de contexto 112 pode coletar qualquer informação pertinente que possa ser utilizada dentro das políticas 110 para manipular as configurações de diferentes maneiras. Diferentes concretizações podem coletar diferentes conjuntos de informações e metadados para determinar um estado atual.
[00040] Exemplos de metadados contextuais podem incluir quais aplicações virtuais 114 estão presentes ou não presentes, a presença de várias máquinas virtuais 116, a presença e a configuração de um sistema operacional 118, a presença e a configuração de várias outras aplicações 120 e de outros serviços de rede 122, bem como outras informações de estado 124. Outras informações de estado podem ser uma sessão na qual uma aplicação é operada, membro em um grupo de usuários ou dispositivos, ou outros parâmetros.
[00041] As outras informações de estado 124 podem incluir informações sobre uma sessão que pode incluir metadados sobre uma sessão. Por exemplo, a informação de estado 124 pode incluir o tipo de sessão, o qual pode ser uma sessão conectando dois ou mais dispositivos ou usuários específicos, ou uma sessão conectando dois ou mais dispositivos ou usuários gerais. Os metadados da sessão também podem incluir vários parâmetros de conexão, tais como os protocolos utilizados dentro de uma sessão ou o endereço ou portas utilizadas para estabelecer uma sessão. Em algumas concretizações, uma aplicação pode criar vários diferentes tipos de sessões com outras aplicações ou serviços, e a presença, ausência, ou configurações das sessões podem ser definidas como parte do contexto para a aplicação.
[00042] A presença e a configuração de outros componentes interativos podem definir uma parte do contexto para uma aplicação. A aplicação 102 pode interagir com as aplicações virtuais 114, com as máquinas virtuais 116, com as aplicações 120 e com os serviços de rede 122 em diferentes capacidades. Em alguns casos, a performance ou operação de uma aplicação pode ser afetada pela presença, ausência, ou configuração de vários componentes interativos externos à aplicação 102.
[00043] A presença, ausência e em alguns casos, a configuração de um componente com o qual uma aplicação interage pode definir um novo estado para uma aplicação. Por exemplo, uma aplicação pode adicionar ou remover componentes de interface com o usuário para outras aplicações ou serviços. Quando outra aplicação está presente e configurada, uma primeira aplicação pode proporcionar um certo conjunto de componentes de interface com o usuário ou funcionalidade que se ligue ou utilize a funcionalidade proporcionada pela outra aplicação. Quando a outra aplicação não está presente ou configurada de forma diferente, a primeira aplicação pode apresentar uma interface com o usuário ou funcionalidade alternativa.
[00044] Um componente com o qual a aplicação interage pode ser um componente virtual. Em alguns casos, uma aplicação pode ser executada virtualmente utilizando o sistema de execução 106 enquanto outra aplicação também pode ser executada virtualmente. Devido ao fato de ambas as aplicações serem executadas virtualmente, cada aplicação pode operar sem interagir com outra em uma configuração preestabelecida. Entretanto, quando ambas as aplicações estão operacionais, cada aplicação pode ser configurada para passar dados, controle, ou outros sinais entre cada aplicação. Em tal caso, cada aplicação pode possuir uma configuração designada 104 que define os pontos de interação e permite que a interação ocorra, mesmo quando ambas as aplicações são operadas virtualmente e separada- mente. Em tal caso, ambas as aplicações podem ser iniciadas simultaneamente ou sequencialmente com as configurações apropriadas de modo que as aplicações podem interagir.
[00045] Os componentes virtuais podem apresentar opções de configuração diferentes dos componentes que são instalados e operando dentro do mesmo sistema operacional que a aplicação 102. Em geral, os componentes virtuais podem operar de forma agnóstica aos outros componentes e podem ser configurados de maneiras particulares para interagirem com outras aplicações em ambientes separados, incluindo ambientes convencionais de sistema operacional ou outros ambientes virtuais.
[00046] O contexto pode incluir vários parâmetros ou configurações de um sistema operacional 118. Por exemplo, um contexto pode incluir informação geral sobre um sistema operacional, tal como o tipo de sistema operacional, a versão específica e outros parâmetros sobre o sistema operacional nativo. Um contexto também pode incluir adições ou alterações para o ambiente do sistema operacional, tal como parâmetros do registrador, a presença e a configuração de arquivos tais como bibliotecas de ligação dinâmica, parâmetros utilizados pelo sistema operacional para acessar vários dispositivos de hardware periféricos e interfaces, e qualquer outro tipo de parâmetro.
[00047] Em algumas concretizações, as configurações 104 podem ser aplicadas quando uma aplicação é iniciada. Algumas concretizações também podem permitir que uma configuração 104 seja aplicada para uma aplicação 102 após a aplicação começar a execução.
[00048] Algumas concretizações podem permitir que algumas configurações 104 possam estar aptas a serem aplicadas após o começo da execução enquanto outras configurações 104 somente podem ser aplicadas quando uma aplicação inicia. Em tais concretizações, duas ou mais configurações 104 podem ser aplicadas para uma única instância de uma aplicação 102. Por exemplo, uma configuração de toda a companhia pode ser definida, a qual estabelece parâmetros preestabelecidos para toda a companhia para uma aplicação. Uma segunda configuração pode ser aplicada, a qual contém parâmetros específicos do usuário que podem ou não adicionalmente ajustar a configuração para toda a companhia em relação às preferências pessoais de um usuário.
[00049] Em outro exemplo, uma aplicação 102 pode interagir com várias outras aplicações ou serviços de rede. Cada serviço de rede ou aplicação pode ser definido dentro de uma configuração separada 104 de modo que quando a aplicação 102 é iniciada, várias configurações diferentes 104 podem ser aplicadas, cada uma permitindo que uma aplicação ou serviço separado seja acessado.
[00050] Uma aplicação 102 também pode interagir com vários serviços de rede 122 que podem estar disponíveis através de uma rede de área local (LAN), de uma rede de longa distância (WAN), ou de qualquer outra rede, incluindo a Internet. Em vários casos, um serviço da Rede pode ser utilizado para proporcionar dados em respostas às consultas e a outras operações ou serviços. Uma configuração 104 pode ser definida para execução da aplicação 102 quando o serviço da Rede ou outro serviço de rede 122 está presente. Tal configuração pode incluir vários parâmetros tais como portas, protocolos, endereços e outras informações de configuração de comunicação, bem como funcionalidade específica de configuração a ser disponível através da aplicação 102.
[00051] A configuração 104 pode incluir componentes de interface com o usuário, ligações, ou outros itens configuráveis que podem permitir que um serviço de rede 122 seja acessado em certas instâncias.
[00052] Por exemplo, um programa processador de texto pode utilizar um serviço de dicionário que é proporcionado como um serviço de rede 122. Quando o serviço de dicionário está disponível, o programa processador de texto pode possuir ligações para o serviço de dicionário na interface com o usuário, tais como uma seleção de menu para acessar o serviço de dicionário. Quando o serviço de dicionário é selecionado, uma consulta pode ser enviada para o serviço de rede e uma resposta recebida. A resposta pode ser exibida dentro do programa processador de texto como se o serviço de dicionário fosse parte do programa processador de texto. Em tal caso, um usuário pode não perceber que um serviço de rede foi ativado. Quando o serviço de dicionário não está disponível, a configuração 104 pode substituir uma versão local ou pode tornar uma função de dicionário inativa, invisível, ou de outro modo inacessível.
[00053] O gerenciador de contexto 112 pode definir um contexto dentro do qual uma aplicação está atualmente operando ou é pretendida para ser operada. O contexto pode ser utilizado em conjunto com as políticas 110 para criar uma configuração específica 104 que pode ser retornada quando um ativador de aplicação 126 inicia a aplicação 102. O gerenciador de contexto 112 também pode detectar um contexto atual que pode ser utilizado pelo ativador de aplicação 126 para selecionar a configuração 104 ou o grupo de configurações 104 apropriado.
[00054] O contexto no qual uma aplicação executa pode ser definido pelas políticas 110. Um contexto pode ser uma classificação ou tipo de estado. Em vários casos, um estado pode possuir vários contextos. Por exemplo, uma aplicação 102 pode interagir com outra aplicação operando em uma máquina virtual 116 bem como interagir com um serviço de rede 122. A presença de uma máquina virtual 116 pode definir um contexto de máquina virtual e a presença de serviços de rede pode definir um contexto capacitado com rede. Em alguns casos, dois ou mais diferentes contextos podem se aplicados.
[00055] Quando múltiplas configurações 104 podem ser aplicadas para uma única instância de uma aplicação 102, múltiplos contextos independentes podem ser definidos para uma instância específica. No exemplo acima, um contexto de máquina virtual e um contexto capacitado com rede podem ser definidos separadamente e de forma independente.
[00056] Quando uma única configuração 104 pode ser aplicada para uma instância de uma aplicação 102, um contexto pode ser definido, o qual é o conjunto de vários diferentes fatores. No exemplo acima, um único contexto pode ser definido, o qual inclui uma máquina virtual e serviços capacitados com rede e uma única configuração 104 pode ser criada. Conf igurações separadas podem ser criadas para uma máquina virtual sem serviços capacitados com rede e para serviços capacitados com rede sem a máquina virtual.
[00057] As políticas 110 podem definir o tipo de contexto e como as alterações para uma configuração de aplicação são para ser manipuladas baseadas no contexto. Por exemplo, algumas alterações podem ser descartadas enquanto outros tipos de alterações podem ser armazenados. Quando múltiplas configurações independentes são utilizadas, uma política pode definir um tipo de alteração a ser armazenado em um contexto, mas não outro.
[00058] A Figura 2 é uma ilustração de fluxograma de uma concretização 200 apresentando um método para operar com configurações independentes do contexto. A concretização 200 é um exemplo de várias operações que podem ser executadas pelos componentes da concretização 100, incluindo um ativador de aplicação 126, um gerenciador de contexto 112, um sistema de monitoramento de alteração 108, e um sistema de execução 106.
[00059] Outras concretizações podem utilizar diferentes etapas de ordenação, adicionais ou menos etapas, e nomenclatura ou terminologia diferentes para realizar funções similares. Em algumas concretizações, várias operações ou conjuntos de operações podem ser executados em paralelo uns com os outros, de uma maneira síncrona ou assíncrona. Aqui, as etapas selecionadas foram escolhidas para ilustrar alguns princípios de operações de uma forma simplificada.
[00060] A concretização 200 ilustra um método para ativar uma aplicação, detectar alterações para a configuração da aplicação, e armazenar as alterações em um depósito de configurações para reutilização posterior.
[00061] Um comando pode ser recebido para ativar uma aplicação no bloco 202. Em vários casos, um comando pode ser iniciado por uma entrada do usuário tal como a seleção de um ícone ou a entrada de um comando em uma linha de comandos. Em outros casos, um comando para ativar uma aplicação pode ser iniciado por outra aplicação ou serviço, incluindo um serviço de rede.
[00062] O contexto para a aplicação pode ser determinado no bloco 204. O contexto pode ser definido em uma política e conjuntos de parâmetros de configuração para a aplicação podem ser criados para contextos específicos. O contexto pode ser determinado de qualquer maneira. Em algumas concretizações, um gerenciador de contexto tal como o gerenciador de contexto 112 na concretização 100, pode ser utilizado para determinar o contexto atual ou pretendido.
[00063] O contexto pode ser um contexto atual ou um contexto pretendido. Um contexto atual pode ser determinado pela percepção do estado atual de vários parâmetros, sistemas, e serviços com os quais uma aplicação pode interagir. Um contexto pretendido pode ser um contexto que pode existir quando a aplicação está executando.
[00064] Um contexto pretendido pode ser utilizado quando várias aplicações que podem interagir umas com as outras são ativadas em sucessão ou substancialmente simultaneamente. Cada aplicação no grupo de aplicações ativadas pode ser configurada para operar com as outras aplicações, mas tal contexto pode existir quando todas as aplicações tiverem sido iniciadas e tiverem feito conexões umas com as outras.
[00065] Se não existir configuração definida para o contexto no bloco 206, uma configuração preestabelecida pode ser selecionada no bloco 208. Se uma configuração for definida para o contexto no bloco 206, a configuração pode ser carregada no bloco 210.
[00066] Em algumas concretizações, duas ou mais configurações podem ser carregadas e aplicadas baseadas no contexto. Em tais concretizações, várias configurações podem ser aplicada em sucessão, com a última configuração aplicada sendo apta a sobregravar um ambiente de uma configuração anterior.
[00067] Algumas concretizações podem aplicar um esquema de prioridade para determinar quais parâmetros de quais configurações podem ser aplicados quando mais do que uma configuração estabelece um parâmetro. Em um esquema de prioridade de sucessão, a última configuração aplicada pode dominar. Entretanto, em outros esquemas, métricas ou regras diferentes podem ser aplicadas. Tais regras podem ser definidas em um conjunto de políticas.
[00068] Uma vez que as configurações são definidas, a aplicação pode ser executada utilizando as configurações no bloco 212.
[00069] Em várias concretizações onde múltiplas configurações são utilizadas, a aplicação pode ser executada em um ambiente virtual, tal como uma máquina virtual dedicada ou dentro de uma ambiente de virtualização de aplicação. Por virtualizar uma aplicação, vários parâmetros podem ser alterados ou configurados de uma maneira mais fácil do que se a aplicações estivesse operando dentro de um ambiente de sistema operacional convencional com várias outras aplicações. Por exemplo, um ambiente virtual pode permitir que parâmetros de registradores ou bibliotecas de ligação dinâmica que podem de outra forma ser compartilhados com outra aplicação serem alterados para a aplicação virtual.
[00070] Se uma alteração for detectada no bloco 214, um processo pode começar para criar ou modificar um ambiente de configuração baseado no contexto da aplicação.
[00071] O contexto pode ser classificado no bloco 216. Em algumas concretizações, uma instância específica pode incluir vários diferentes contextos, cada um possuindo um parâmetro ou um pequeno número de parâmetros que podem ser independentes de outros contextos. Em outras concretizações, um único contexto pode ser definido para qualquer situação que possa conter vários parâmetros ou descritores diferentes. Um conjunto de políticas pode definir os contextos.
[00072] A alteração pode ser classificada pelo tipo no bloco 218. O tipo da alteração pode ser uma classificação geral da alteração como definida em uma política de modo que a alteração pode ser disposta de forma apropriada.
[00073] Para cada classificação de contexto no bloco 220, a alteração pode ser disposta nos blocos seguintes. A concretização 200 é um exemplo de uma concretização onde dois ou mais contextos podem existir para uma situação particular. Em outras concretizações, um único contexto pode ser definido e o e a repetição “para” do bloco 220 pode ser executado uma única vez para o contexto.
[00074] Se a política não especificar como o tipo de alteração é manipulado no bloco 222, uma política preestabelecida pode ser aplicada no bloco 224. Caso contrário, a política atual pode ser aplicada.
[00075] A política atual ou política preestabelecida pode declarar se a alteração é para ser salva ou desconsiderada no bloco 226. Se a alteração for para ser desconsiderada no bloco 226, a alteração pode não ser armazenada no bloco 230. Se a alteração for para ser salva no bloco 226, a configuração pode ser atualizada para o contexto no bloco 228.
[00076] O processo pode continuar no bloco 220 para o próximo contexto, se existir um. Quando cada um dos contextos tiver sido processado no bloco 220, o processo pode retornar para o bloco 212 para execução adicional da aplicação.
[00077] A concretização 200 é um exemplo de um processo que pode ser utilizado para determinar um contexto e salvar uma alteração para uma aplicação baseado no contexto. Quando uma aplicação é reiniciada no mesmo contexto, a configuração pode ser retornada e a aplicação pode se comportar de acordo com a alteração.
[00078] A descrição precedente do assunto foi apresentada para propósito de ilustração e de descrição. Não é pretendido que ela seja exaustiva ou que limite o assunto á forma precisa revelada, e outras modificações e variações podem ser possíveis de acordo com as instruções acima. A concretização foi escolhida e descrita de modo à melhor explicar os princípios da invenção é de sua aplicação prática para desse modo permitir outros versados na técnica melhor utilizarem a invenção nas várias concretizações e nas várias modificações à medida que sejam adequadas para o uso particular contemplado. É pretendido que as reivindicações anexas sejam construídas para incluírem outras concretizações alternativas exceto até onde limitado pela técnica anterior.
Claims (15)
1. Método para iniciar um aplicativo, caracterizado pelo fato de que compreende: receber (202) um comando para iniciar um aplicativo (102); determinar (204) um contexto para a aplicação (102), sendo o contexto definido em uma política (110); determinar (206) se uma configuração (104) é definida para o contexto, se nenhuma configuração (104) é definida para o contexto, usar (208) uma configuração padrão, se uma configuração (104) for definida para o contexto, carregar (210) a configuração (104) para o contexto; executar (212) o aplicativo (102) usando a configuração; se for detectada uma alteração na configuração (214), iniciar um processo para modificar uma configuração com base no contexto do aplicativo (102); classificar (216) o contexto (216); classificar (218) a alteração por tipo, em que um tipo de alteração é uma classificação da alteração conforme definida na política (110); para cada classificação de contexto (220), determinar se a política especifica como o tipo de alteração é tratado e se a política não especifica como o tipo de alteração é tratado, aplicar uma política padrão, aplicar a política em que a política ou a política padrão declara se a alteração deve ser salva ou desconsiderada; determinar (226) se deseja salvar ou desconsiderar a alteração, se a alteração deve ser salva, armazenar a alteração com base no contexto, se isso estiver definido na política ou na política padrão e atualizar (228) a configuração do contexto, se a alteração deve ser desconsiderada, desconsiderar a alteração com base no contexto, se isso estiver definido na política ou na política padrão e não armazenar (230) a alteração.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o contexto compreende um contexto específico da sessão.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o contexto compreende um contexto entre máquinas.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o contexto entre máquinas compreende pelo menos uma máquina virtual.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a aplicação compreende vários recursos, e a alteração afeta pelo menos um dos recursos.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que um dos vários recursos é uma segunda aplicação.
7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a aplicação é executada em uma primeira plataforma de hardware, um dos recursos é executado em uma segunda plataforma de hardware.
8. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a aplicação é executada em um primeiro contexto virtual.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que pelo menos um dos vários recursos está em um segundo contexto virtual.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o primeiro contexto virtual é um contexto de virtualização de aplicação.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o segundo contexto virtual é um contexto de virtualização de aplicação.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que o dito segundo contexto virtual é um contexto de máquina virtual.
13. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o primeiro contexto virtual é um primeiro contexto de máquina virtual.
14. Sistema, caracterizado pelo fato de que compreende: um iniciador de aplicativos configurado para iniciar um aplicativo (102) em resposta ao recebimento de um comando para iniciar o aplicativo (102); um gerenciador de contexto (112) configurado para: determinar um contexto para a aplicação (102), sendo o contexto definido em uma política (110); determinar se uma configuração (104) está definida para o contexto se nenhuma configuração (104) estiver definida para o contexto, usar (208) uma configuração padrão, se uma configuração (104) for definida para o contexto, carregar (210) a configuração (104) para o contexto; um sistema de execução (106) configurado para executar a aplicação (102) usando a configuração; um sistema de monitoramento de alterações (108) configurado para: determinar uma alteração na configuração; classificar o contexto; classificar a alteração por tipo, em que um tipo de alteração é uma classificação da alteração conforme definida em uma política; determinar pelo menos um contexto para a alteração; para cada classificação de contexto, determine se a política (110) especifica como o tipo de alteração é manipulada e se a política não especifica como o tipo de alteração é manipulada, aplicar uma política padrão ou aplicar a política, em que a política ou a política padrão determina se a alteração deve ser salva ou desconsiderada; determinar (226) se deseja salvar ou desconsiderar a alteração, se a alteração tiver que ser salva, armazenar a alteração com base no contexto, se isso estiver definido na política ou na política padrão e atualizar a configuração do contexto, se a alteração deve ser desconsiderada, desconsiderar a mudança com base no contexto, se isso estiver definido na política ou na política padrão e não armazenar a alteração.
15. Sistema, de acordo com a reivindicação 14, caracterizado pelo fato de que os vários contextos compreendem pelo menos um do grupo composto de: um contexto específico da sessão; um contexto específico do tipo de sessão; um contexto entre máquinas; e um contexto de aplicação dupla.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/181,315 US8024732B2 (en) | 2008-07-28 | 2008-07-28 | State separation for application changes |
| US12/181.315 | 2008-07-28 | ||
| PCT/US2009/050895 WO2010014431A2 (en) | 2008-07-28 | 2009-07-16 | State separation for application changes |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| BRPI0915636B1 true BRPI0915636B1 (pt) | 2020-09-15 |
Family
ID=41569680
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0915636-4A BRPI0915636B1 (pt) | 2008-07-28 | 2009-07-16 | Método e sistema para iniciar um aplicativo |
Country Status (10)
| Country | Link |
|---|---|
| US (4) | US8024732B2 (pt) |
| EP (1) | EP2321720B1 (pt) |
| JP (1) | JP5588440B2 (pt) |
| KR (1) | KR101618901B1 (pt) |
| CN (1) | CN102105861B (pt) |
| AU (1) | AU2009276851B2 (pt) |
| BR (1) | BRPI0915636B1 (pt) |
| CA (2) | CA2728817C (pt) |
| RU (1) | RU2490695C2 (pt) |
| WO (1) | WO2010014431A2 (pt) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8225134B2 (en) * | 2007-04-06 | 2012-07-17 | Cisco Technology, Inc. | Logical partitioning of a physical device |
| US8024732B2 (en) | 2008-07-28 | 2011-09-20 | Microsoft Corporation | State separation for application changes |
| US8429395B2 (en) | 2009-06-12 | 2013-04-23 | Microsoft Corporation | Controlling access to software component state |
| US20110219365A1 (en) * | 2010-03-05 | 2011-09-08 | Microsoft Corporation | High and low value application state |
| CN102238208A (zh) | 2010-04-29 | 2011-11-09 | 国际商业机器公司 | 用于激活虚拟方案中的虚拟机的方法和装置 |
| US8484569B2 (en) | 2010-06-30 | 2013-07-09 | International Business Machines Corporation | Saving and restoring collaborative applications in context |
| US9116728B2 (en) | 2010-12-21 | 2015-08-25 | Microsoft Technology Licensing, Llc | Providing a persona-based application experience |
| US9176742B2 (en) * | 2010-12-27 | 2015-11-03 | Microsoft Technology Licensing, Llc | Converting desktop applications to web applications |
| US8813167B2 (en) * | 2010-12-30 | 2014-08-19 | Apple Inc. | Dynamic device configuration using predicates |
| KR101595527B1 (ko) * | 2011-03-22 | 2016-02-22 | 한국전자통신연구원 | 넷스토어 기반의 서비스 네트워크 동적 구성 시스템 및 서비스 네트워크 동적 구성 방법 |
| CN103890711B (zh) * | 2011-06-29 | 2018-05-08 | 亚马逊科技公司 | 数据安全锁同步 |
| US8663018B2 (en) | 2011-06-29 | 2014-03-04 | Amazon Technologies, Inc. | Data locker synchronization |
| US20130091197A1 (en) | 2011-10-11 | 2013-04-11 | Microsoft Corporation | Mobile device as a local server |
| US20130111372A1 (en) * | 2011-10-31 | 2013-05-02 | General Electric Company | Preference management methods and apparatus |
| CN102520944B (zh) * | 2011-12-06 | 2014-07-02 | 北京航空航天大学 | Windows应用程序虚拟化的实现方法 |
| WO2013103382A1 (en) | 2012-01-06 | 2013-07-11 | Ge Intelligent Platforms, Inc. | Apparatus and method for creating and presenting control logic |
| US9092247B2 (en) * | 2012-03-29 | 2015-07-28 | Microsoft Technology Licensing, Llc | Persistent and resilient worker processes |
| CN102929650A (zh) * | 2012-07-11 | 2013-02-13 | 北京金山安全软件有限公司 | 一种应用程序运行环境独立配置的方法、装置及移动设备 |
| US9589039B2 (en) * | 2012-12-13 | 2017-03-07 | Sybase, Inc. | Synchronization of metadata in a multi-threaded system |
| US9413784B2 (en) * | 2013-09-06 | 2016-08-09 | Microsoft Technology Licensing, Llc | World-driven access control |
| US9572104B2 (en) * | 2015-02-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Dynamic adjustment of user experience based on system capabilities |
| US9734000B2 (en) | 2015-06-18 | 2017-08-15 | Microsoft Technology Licensing, Llc | Seamless transitions between applications and devices |
| CN105677421B (zh) * | 2016-01-06 | 2020-01-03 | 惠州Tcl移动通信有限公司 | 一种移动终端的桌面启动器的定制方法及系统 |
| US11314546B2 (en) * | 2016-11-18 | 2022-04-26 | Data Accelerator Ltd | Method and system for executing a containerized stateful application on a stateless computing platform using machine learning |
| CN106502717B (zh) * | 2016-09-22 | 2020-04-14 | 华为技术有限公司 | 应用程序运行方法及装置 |
| US10452410B2 (en) | 2016-10-25 | 2019-10-22 | International Business Machines Corporation | Context aware user interface |
| CN106777266B (zh) * | 2016-12-28 | 2020-05-15 | 重庆可兰达科技有限公司 | 一种基于预缓存提升客户端开屏展现率的方法 |
| US10810009B2 (en) * | 2017-07-14 | 2020-10-20 | Microsoft Technology Licensing, Llc | Visualizations of software project and contributor activity |
| JP7102756B2 (ja) * | 2018-02-02 | 2022-07-20 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
| CN110727430B (zh) * | 2019-09-30 | 2023-08-25 | 奇安信科技集团股份有限公司 | 由服务器执行的数据处理方法、装置、系统、介质 |
| US11789712B2 (en) * | 2021-09-06 | 2023-10-17 | Jpmorgan Chase Bank, N.A. | Data configuration deployment framework |
| US12493474B2 (en) * | 2023-01-05 | 2025-12-09 | Dell Products L.P. | Application performance on a containerized application management system cluster |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63104144A (ja) * | 1986-10-21 | 1988-05-09 | Nec Corp | 高速コンテクスト切替装置 |
| JPH02173828A (ja) * | 1988-12-27 | 1990-07-05 | Nec Corp | 割込み処理方式 |
| US5212789A (en) * | 1989-10-12 | 1993-05-18 | Bell Communications Research, Inc. | Method and apparatus for updating application databases used in a distributed transaction processing environment |
| WO1996027827A1 (en) * | 1995-03-06 | 1996-09-12 | Intel Corporation | A computer system with unattended on-demand availability |
| US6249291B1 (en) * | 1995-09-22 | 2001-06-19 | Next Software, Inc. | Method and apparatus for managing internet transactions |
| TW444165B (en) * | 1998-05-12 | 2001-07-01 | Primax Electronics Ltd | Hot plug and play universal serial bus switch device and control method |
| US6961681B1 (en) * | 2000-09-12 | 2005-11-01 | Microsoft Corporation | System and method providing virtual applications architecture |
| US7289102B2 (en) * | 2000-07-17 | 2007-10-30 | Microsoft Corporation | Method and apparatus using multiple sensors in a device with a display |
| US20020087734A1 (en) * | 2000-12-29 | 2002-07-04 | Marshall Donald Brent | System and method for managing dependencies in a component-based system |
| US7243267B2 (en) * | 2002-03-01 | 2007-07-10 | Avaya Technology Llc | Automatic failure detection and recovery of applications |
| US20040153973A1 (en) * | 2002-11-21 | 2004-08-05 | Lawrence Horwitz | System and method for automatically storing and recalling application states based on application contexts |
| EP1658563B1 (en) * | 2003-08-28 | 2013-06-05 | MIPS Technologies, Inc. | Apparatus, and method for initiation of concurrent instruction streams in a multithreading microprocessor |
| JP2005165847A (ja) * | 2003-12-04 | 2005-06-23 | Fujitsu Ltd | ポリシールールシナリオ制御装置及び制御方法 |
| EP1562113B1 (en) * | 2004-02-03 | 2018-05-23 | Sap Se | An application management system and a method of managing an application |
| EP1784725A1 (en) | 2004-08-03 | 2007-05-16 | Softricity, Inc. | System and method for controlling inter-application association through contextual policy control |
| US7606973B2 (en) * | 2004-09-08 | 2009-10-20 | International Business Machines Corporation | System and method for pervasive computing with a portable non-volatile memory device |
| US7716651B2 (en) * | 2005-01-26 | 2010-05-11 | Microsoft Corporation | System and method for a context-awareness platform |
| KR100715846B1 (ko) * | 2005-02-14 | 2007-05-10 | 삼성전기주식회사 | 퍼베이시브 환경에서 Subtyping 기반의 탄력적인서비스 구성을 이용하는 응용 프로그램 재구성 방법 및 그시스템 |
| US20070033382A1 (en) * | 2005-08-05 | 2007-02-08 | International Business Machines Corporation | Dynamic configuration of terminals for professional or customer usage |
| US7434218B2 (en) * | 2005-08-15 | 2008-10-07 | Microsoft Corporation | Archiving data in a virtual application environment |
| WO2007020735A1 (ja) | 2005-08-18 | 2007-02-22 | Matsushita Electric Industrial Co., Ltd. | 競合解決装置 |
| US7716461B2 (en) * | 2006-01-12 | 2010-05-11 | Microsoft Corporation | Capturing and restoring application state after unexpected application shutdown |
| RU2295752C1 (ru) * | 2006-03-20 | 2007-03-20 | Закрытое акционерное общество "1С Акционерное общество" | Способ управления синхронизацией обновлений программного обеспечения |
| US8001528B2 (en) * | 2006-03-30 | 2011-08-16 | Microsoft Corporation | Organization of application state and configuration settings |
| US20090204966A1 (en) * | 2008-02-12 | 2009-08-13 | Johnson Conrad J | Utility for tasks to follow a user from device to device |
| US8024732B2 (en) * | 2008-07-28 | 2011-09-20 | Microsoft Corporation | State separation for application changes |
| US8381222B2 (en) * | 2009-04-01 | 2013-02-19 | International Business Machines Corporation | Policy driven automation—specifying equivalent resources |
-
2008
- 2008-07-28 US US12/181,315 patent/US8024732B2/en active Active
-
2009
- 2009-07-16 WO PCT/US2009/050895 patent/WO2010014431A2/en not_active Ceased
- 2009-07-16 KR KR1020117001567A patent/KR101618901B1/ko not_active Expired - Fee Related
- 2009-07-16 RU RU2011103058/08A patent/RU2490695C2/ru active
- 2009-07-16 AU AU2009276851A patent/AU2009276851B2/en not_active Ceased
- 2009-07-16 BR BRPI0915636-4A patent/BRPI0915636B1/pt not_active IP Right Cessation
- 2009-07-16 CA CA2728817A patent/CA2728817C/en active Active
- 2009-07-16 CA CA2978284A patent/CA2978284C/en active Active
- 2009-07-16 CN CN200980130465.6A patent/CN102105861B/zh active Active
- 2009-07-16 JP JP2011521184A patent/JP5588440B2/ja active Active
- 2009-07-16 EP EP09803377.2A patent/EP2321720B1/en active Active
-
2011
- 2011-08-12 US US13/208,484 patent/US8458701B2/en active Active
-
2013
- 2013-06-03 US US13/907,974 patent/US8984512B2/en active Active
-
2015
- 2015-03-11 US US14/644,773 patent/US9304791B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US9304791B2 (en) | 2016-04-05 |
| EP2321720B1 (en) | 2019-06-26 |
| CN102105861A (zh) | 2011-06-22 |
| RU2011103058A (ru) | 2012-08-10 |
| CA2978284A1 (en) | 2010-02-04 |
| WO2010014431A2 (en) | 2010-02-04 |
| CA2728817A1 (en) | 2010-02-04 |
| JP2011529607A (ja) | 2011-12-08 |
| KR101618901B1 (ko) | 2016-05-09 |
| JP5588440B2 (ja) | 2014-09-10 |
| EP2321720A4 (en) | 2011-10-26 |
| AU2009276851B2 (en) | 2014-06-26 |
| US20110302581A1 (en) | 2011-12-08 |
| US20150186164A1 (en) | 2015-07-02 |
| CA2728817C (en) | 2020-03-10 |
| AU2009276851A1 (en) | 2010-02-04 |
| CA2978284C (en) | 2020-01-28 |
| US20100023738A1 (en) | 2010-01-28 |
| KR20110038048A (ko) | 2011-04-13 |
| US8458701B2 (en) | 2013-06-04 |
| RU2490695C2 (ru) | 2013-08-20 |
| WO2010014431A3 (en) | 2010-04-01 |
| CN102105861B (zh) | 2016-05-04 |
| US20130263134A1 (en) | 2013-10-03 |
| US8024732B2 (en) | 2011-09-20 |
| US8984512B2 (en) | 2015-03-17 |
| EP2321720A2 (en) | 2011-05-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| BRPI0915636B1 (pt) | Método e sistema para iniciar um aplicativo | |
| CN101470621B (zh) | 虚拟机配置系统 | |
| US9934064B2 (en) | Storing and resuming application runtime state | |
| US8336046B2 (en) | Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources | |
| US20250124006A1 (en) | System to support native storage of a container image on a host operating system for a container running in a virtual machine | |
| CN103699372B (zh) | 从中央存储装置引导计算机系统 | |
| US10574524B2 (en) | Increasing reusability of and reducing storage resources required for virtual machine images | |
| KR102238942B1 (ko) | 가상화 인스턴스 내의 파일의 계층화된 액세스를 위한 방법 및 장치 | |
| CN102200921A (zh) | 智能引导设备选择和恢复 | |
| US10481924B2 (en) | Dynamically managing a serial port interface connected to a direct console user interface (DCUI) of virtualization software using headless flags | |
| EP4078362B1 (en) | Layered composite boot device and file system for operating system booting in file system virtualization environments | |
| Takemura et al. | The book of Xen: a practical guide for the system administrator | |
| US11106380B2 (en) | Migration of storage for workloads between desktop and cloud environments | |
| WO2025092223A1 (zh) | 云固件生成方法和虚拟化平台启动方法、电子设备、介质 | |
| Syrewicze et al. | Creating Your First Hyper-V Virtual Machine | |
| Curran et al. | Red Hat Enterprise Linux 5 Virtualization Guide |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B25A | Requested transfer of rights approved |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) |
|
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
| B06A | Patent application procedure suspended [chapter 6.1 patent gazette] | ||
| B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
| B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 15/09/2020, OBSERVADAS AS CONDICOES LEGAIS. |
|
| B21F | Lapse acc. art. 78, item iv - on non-payment of the annual fees in time |
Free format text: REFERENTE A 16A ANUIDADE. |
|
| B24J | Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12) |
Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2840 DE 10-06-2025 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |