BRPI0914015B1 - Sistema compreendendo servidor e método para executar aplicativos em um servidor - Google Patents

Sistema compreendendo servidor e método para executar aplicativos em um servidor Download PDF

Info

Publication number
BRPI0914015B1
BRPI0914015B1 BRPI0914015-8A BRPI0914015A BRPI0914015B1 BR PI0914015 B1 BRPI0914015 B1 BR PI0914015B1 BR PI0914015 A BRPI0914015 A BR PI0914015A BR PI0914015 B1 BRPI0914015 B1 BR PI0914015B1
Authority
BR
Brazil
Prior art keywords
server
layers
client
content
mobile device
Prior art date
Application number
BRPI0914015-8A
Other languages
English (en)
Inventor
Ran Makavy
Micha Berdichevsky
Barak R. Naveh
Yoav Artzi
Original Assignee
Facebook, Inc.
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 Facebook, Inc. filed Critical Facebook, Inc.
Publication of BRPI0914015A2 publication Critical patent/BRPI0914015A2/pt
Publication of BRPI0914015B1 publication Critical patent/BRPI0914015B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L13/00Details of the apparatus or circuits covered by groups H04L15/00 or H04L17/00
    • H04L13/16Details of the apparatus or circuits covered by groups H04L15/00 or H04L17/00 of transmitters, e.g. code-bars, code-discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

sistema compreendendo servidor e método para executar aplicativos em um servidor a presente invenção provê um dispositivo, um sistema, e um método para executar aplicações móveis, incluindo um servidor para executar aplicações e um cliente instalado em um dispositivo móvel. o cliente pode se conectar ao servidor através de uma rede. o cliente pode exibir conteúdo, receber entrada de usuário, e enviar entrada de usuário ao servidor. o servidor pode usar o cliente para receber entrada de usuário e exibir conteúdo para executar aplicações para o dispositivo móvel.

Description

“SISTEMA COMPREENDENDO SERVIDOR E MÉTODO PARA EXECUTAR APLICATIVOS EM UM SERVIDOR" CAMPO DA INVENÇÃO
[0001] A presente invenção refere-se a dispositivos móveis. A presente invenção também se refere a porting. Em particular, a presente invenção refere-se a adaptar serviços de informação, software ou código para se conformar a parâmetros individuais de dispositivo para visualização adequada no, e operação a partir do, dispositivo móvel.
HISTÓRICO
[0002] Dispositivos móveis se apresentam em milhares de variedades de hardware e software tendo diferentes sistemas operacionais, resoluções de tela, controles de entrada, etc., para acomodar a diversidade tecnológica em dispositivos móveis, é um objetivo de provedores de serviço de informação e conteúdo fornecer aos usuários suporte universal para todos os dispositivos móveis sem comprometer a aparência e funcionalidade.
[0003] Um modo para fornecer suporte universal é porting. O porting é um processo no qual software ou código é adaptado para se conformar a um ambiente de computação diferente daquele para o qual o software foi originalmente projetado. Por exemplo, para exibir código de sítio da Web em uma tela de um dispositivo móvel tendo um navegador diferente do que aquele para o qual o código foi gravado, o código de sítio da Web pode ser alterado para se comportar com as exigências e capacidades do navegador diferente. Múltiplas versões de uma solução de serviço devem ser geradas com variações para coincidir com as combinações específicas de hardware e software que existem nos dispositivos móveis alvo.
[0004] Uma das principais desvantagens de porting é que é demorado e oneroso. Em um exemplo, um processo de porting inclui executar e testar o mesmo código individualmente em cada dispositivo móvel, identificar porções problemáticas do código, reescrever código para consertar as porções problemáticas, e reiterar testes com o código reescrito.
[0005] Para melhorar a eficiência, outro processo de porting foi projetado. Nesse processo, uma primeira camada de software é gerada tendo conteúdo/dados universalmente destinados a todos os dispositivos móveis. Camadas de software específicas de dispositivo adicionais são também geradas para executar a primeira camada de conteúdo em cada dispositivo móvel específico. Nesse exemplo, uma vez que as camadas específicas de dispositivo e conteúdo são geradas separadamente, o conteúdo da primeira camada pode mudar sem ter de adaptar as camadas específicas de dispositivos para se conformarem ao mesmo. Desse modo, uma única camada específica de dispositivo pode suportar uma variedade de conteúdo para cada dispositivo móvel. Embora aperfeiçoado, esse processo ainda apresenta detrimentos. Por exemplo, as camadas específicas de dispositivo são tipicamente geradas automaticamente com base em parâmetros de dispositivo armazenados em um banco de dados. Desse modo, nenhuma camada específica de dispositivo pode existir para um dispositivo cujos parâmetros são desconhecidos ou não armazenados no banco de dados. Desse modo, um dispositivo móvel desconhecido não pode exibir a camada de conteúdo.
[0006] Para resolver esse problema, uma camada de dispositivo padrão ou genérico pode ser utilizada para exibir a camada de conteúdo. Uma vez que alguns dispositivos suportam capacidades mais avançadas (por exemplo, utilizando objetos Adobe® Flash®, enquanto outros somente suportam o conteúdo mais básico (por exemplo, utilizando linguagem de markup de hipertexto (HTML)), uma camada genérica compatível para os dois dispositivos deve utilizar o denominador de função comum mais baixo. Desse modo, os dispositivos capazes de suportar conteúdo avançado podem ser forçados a exibir o conteúdo básico que opera abaixo de sua função potencial. O conteúdo básico tem tipicamente características desatualizadas que reduzem a qualidade da experiência do usuário.
[0007] Atualmente o uso como padrão do denominador de função comum mais baixo é uma solução comum para fornecer serviço universal no mundo tecnologicamente diverso de dispositivos móveis. Por exemplo, provedores de serviço online utilizam sítios da Web de protocolo de aplicação (WAP), que essencialmente são adaptações de seus sítios da Web regulares com versões cortadas, reduzidas, de conteúdo, características e funcionalidades. Para tirar proveito de capacidades avançadas, versões paralelas do serviço devem ser desenvolvidas, verificadas e mantidas, cada uma levando em conta as capacidades adicionais não suportadas pelos meios inferiores.
[0008] Existe uma demanda em fornecer suporte universal para uma ampla variedade de dispositivos móveis sem degradar a qualidade de serviço.
RESUMO DA INVENÇÃO
[0009] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para executar aplicações móveis, incluindo um servidor para executar aplicações e um cliente instalado em um dispositivo móvel. O cliente pode conectar-se ao servidor através de uma rede. O cliente pode exibir conteúdo, receber entrada de usuário e enviar entrada de usuário para o servidor. O servidor pode utilizar o cliente para receber entrada de usuário e exibir conteúdo para executar aplicações para o dispositivo móvel.
[0010] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para distribuir gerenciamento de cache. Um cache pode ser operado por um cliente e localizado em um dispositivo móvel para armazenar dados localmente. Um servidor pode ser conectado ao dispositivo móvel através de uma rede. O servidor pode fornecer recursos adicionais para gerenciar dados armazenados localmente no dispositivo móvel para suplementar os recursos do dispositivo móvel.
[0011] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para comunicação utilizando um protocolo de transferência de hipertexto. O sistema pode incluir um servidor para comunicar com um ou mais clientes e um cliente instalado em um dispositivo móvel. O cliente pode conectar-se ao servidor através de uma rede utilizando um protocolo de transferência de hipertexto. O cliente pode abrir uma nova conexão e enviar uma solicitação se nenhuma conexão estiver atualmente aberta de modo que o servidor possa sempre enviar dados. O cliente pode abrir conexões adicionais para enviar dados para o servidor sem esperar uma resposta de uma conexão anterior.
[0012] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para determinar se um cliente pode ou não ter duas ou mais conexões simultâneas utilizando um protocolo de transferência de hipertexto. O sistema pode incluir um servidor para comunicar com um ou mais clientes e um cliente instalado em um dispositivo móvel. O cliente pode conectar-se ao servidor através de uma rede utilizando um protocolo de transferência de hipertexto. O cliente pode abrir uma primeira conexão, iniciar uma contagem de temporizador e abrir uma segunda conexão simultânea. O servidor pode receber a primeira conexão, e responder à primeira conexão somente após a segunda conexão ser aberta. O cliente pode verificar a contagem de temporizador no momento de receber a resposta à primeira conexão. Se a contagem de temporizador exceder um limite predefinido, o cliente pode determinar que duas ou mais conexões simultâneas não podem ser suportadas.
BREVE DESCRIÇÃO DOS DESENHOS
[0013] As modalidades da invenção serão entendidas e reconhecidas mais completamente a partir da seguinte descrição detalhada em combinação com as Figuras, que não estão em escala, em que numerais de referência similares indicam elementos análogos ou similares, correspondentes, e nas quais: [0014] A Figura 1 é uma ilustração esquemática de um sistema tendo uma pluralidade de dispositivos móveis que operam sobre uma rede de acordo com uma modalidade da invenção;
[0015] A Figura 2A é um fluxograma de um processo de porting de acordo com uma modalidade da invenção.
[0016] A Figura 2B é uma ilustração esquemática de camadas em um dispositivo móvel e um servidor de gateway que interage para executar o processo de porting da Figura 2A de acordo com uma modalidade da invenção.
[0017] A Figura 3 é uma ilustração esquemática de camadas em um dispositivo móvel, um servidor de gateway, e um servidor de aplicação para fornecer aplicação(ões) para um cliente do dispositivo móvel de acordo com uma modalidade da invenção.
[0018] A Figura 4 é uma ilustração esquemática de uma pluralidade de caches para um dispositivo móvel distribuído em uma rede de acordo com uma modalidade da invenção.
[0019] A Figura 5 é um fluxograma de um processo para utilizar a pluralidade de caches distribuídos da Figura 4 de acordo com uma modalidade da invenção.
[0020] A Figura 6 é um fluxograma de tráfego de sinal para comunicação entre um dispositivo móvel e um servidor de gateway de acordo com uma modalidade da invenção.
[0021] A Figura 7 é um fluxograma de um processo para detectar se um dispositivo móvel pode suportar duas ou mais conexões simultâneas com um servidor de gateway de acordo com uma modalidade da invenção.
[0022] Será reconhecido que para simplicidade e clareza de ilustração, elementos mostrados nas figuras não foram traçados em escala. Por exemplo, as dimensões de alguns dos elementos podem ser exageradas em relação a outros elementos para clareza. Além disso, onde considerado apropriado, numerais de referência podem ser repetidos entre as Figuras para indicar elementos análogos ou correspondentes.
DESCRIÇÃO DETALHADA
[0023] Na seguinte descrição, vários aspectos da presente invenção serão descritos. Para fins de explicação, configurações específicas e detalhes são expostos para fornecer uma compreensão completa da presente invenção. Entretanto, será também evidente para uma pessoa versada na técnica que a presente invenção pode ser posta em prática sem os detalhes específicos apresentados aqui. Além disso, características bem conhecidas podem ser omitidas ou simplificadas para não obscurecer a presente invenção.
[0024] A menos que especificamente mencionado de outro modo, como evidente a partir das seguintes discussões, é reconhecido que em todo o relatório descritivo as discussões utilizando termos como "processamento", "computação", "cálculo", "determinação", ou similar, se referem à ação e/ou processos de um processador de computador, um computador, ou sistema de computação ou um dispositivo de computação eletrônica similar, que manipula e/ou transforma dados representados como quantidades físicas, como eletrônicas, nos registros e/ou memórias do sistema de computação em outros dados similarmente representados como quantidades físicas nas memórias do sistema de computação, registros ou outra tal armazenamento de informação, ou dispositivos de tela. Além disso, "pluralidade" pode ser utilizado em todo relatório descritivo para descrever dois ou mais componentes, dispositivos, elementos, parâmetros e similares.
[0025] Faz-se referência à Figura 1, que ilustra esquematicamente um sistema 100 tendo uma pluralidade de dispositivos móveis 2, 4 e 6, operando sobre uma rede 8 de acordo com uma modalidade da invenção. O sistema 100 pode incluir um servidor de gateway 22, um servidor de aplicação 24 e um servidor de origem de conteúdo 26.
[0026] A rede 8 pode ser quaisquer dispositivos de comunicação móveis de conexão de rede sem fio ou cabeada para servidores através de protocolos de comunicação, por exemplo, a Internet.
[0027] Os dispositivos móveis 2, 4 e 6 podem ser qualquer dispositivo de computação portátil sem fio ou instalado, por exemplo, em um carro ou similar, incluindo, por exemplo, telefones celulares, smart phones, computadores móveis como assistentes pessoais digitais (PDAs), consoles de jogos portáteis, gravadores/tocadores de mídia, dispositivos de navegação, por exemplo, que suportam um sistema de posicionamento global (GPS), etc. dispositivos móveis 2, 4 e 6 incluem telas de display 10, 12 e 14, respectivamente, por exemplo, para exibir uma interface de usuário. Dispositivos móveis 2, 4 e 6 podem incluir dispositivos de saída de áudio como alto-falantes para fornecer dados de som para um usuário. Dispositivos móveis 2, 4 e 6 incluem dispositivos de entrada 16, 18 e 20, respectivamente, por exemplo, para receber entrada de um usuário (por exemplo, através de teclas, tela sensível a toque, click-wheel, gravador/microfone, outro meio de entrada). Os dispositivos de entrada/saída adicionais (por exemplo, mouse ou teclado, microfone, fone de cabeça, etc.) podem se conectar a dispositivos móveis 2, 4 e 6, por exemplo, através de uma conexão sem fio ou uma conexão cabeada como uma tomada de entrada/saída ou um conector de barramento serial universal (USB). Dispositivos móveis 2, 4 e 6 podem utilizar qualquer de uma ampla variedade de sistemas operacionais (OSs), que são conhecidos.
[0028] O servidor de gateway 22 pode ser um ponto de contato entre cada dos dispositivos móveis 2, 4 e 6, e servidor de aplicação 24. O servidor de gateway 22 pode gerenciar protocolos de comunicação.
[0029] O servidor de aplicação 24 é um servidor que tem lógica para executar uma aplicação ou serviço. O servidor de aplicação 24 pode ser um ponto de contato para dispositivos no sistema 100 para acessar o servidor de origem de conteúdo 26.
[0030] O servidor de origem de conteúdo 26 é um servidor, por exemplo, um servidor de rede, tendo um banco de dados ou outra fonte de dados/conteúdo, que pode ser acessível através da rede 8. Por exemplo, o servidor de origem de conteúdo 26 pode ser um hub de tempo, notícias ou filme do qual o tempo, notícias e filmes, respectivamente, podem ser acessíveis através de dispositivos móveis 2, 4 e 6. O servidor 26 pode ser qualquer serviço de dados online como, por exemplo, um serviço financeiro, rede social, serviço de envio de mensagem, armazenamento digital, catálogo de música, etc. Para as finalidades da presente invenção, o conteúdo pode incluir qualquer tipo de informação e dados, incluindo, porém não limitado a conteúdo de mídia (por exemplo, imagens, filmes, música, hora, localização, inventário, disponibilidade, resultados de busca, serviço online, etc.).
[0031] Pode ser reconhecido que quaisquer dos servidores 22, 24 e/ou 2 6 podem ser combinados como um servidor único, e que cada um dos servidores 22, 24 e/ou 26 podem ser separados em múltiplos servidores. Em uma variação mais provável, o servidor de gateway 22 e servidor de aplicação 24 são combinados para formar um único servidor. Além disso, cada um dos servidores 22, 24 e/ou 26 pode fazer parte somente de um servidor.
[0032] Os dispositivos móveis 2, 4 e/ou 6 podem se comunicar e interagir com o servidor de gateway 22 para obter acesso a conteúdo fornecido pelo servidor de origem de conteúdo 26 ou ter acesso a serviços operados pelo servidor de origem de conteúdo 26.
[0033] Os dispositivos móveis 2, 4 e /ou 6 podem enviar seus respectivos parâmetros de dispositivo para o servidor de gateway 22. Parâmetros de dispositivo podem ser enviados juntamente com as, ou separados das, solicitações de conteúdo. Em uma modalidade, parâmetros de dispositivos necessitam somente ser enviados uma vez, por exemplo, a primeira vez que o dispositivo móvel 2, 4 e/ou 6 solicita conteúdo do servidor de gateway 22. Parâmetros de dispositivo podem incluir, por exemplo, resolução de tela, software ou programas instalados no dispositivo, OSs que executam no dispositivo, memória disponível, bibliotecas disponíveis, dispositivos de entrada/saída disponíveis como alto-falantes ou uma tela de display de cristal líquido (LCD), uma correspondência de controles de usuário no dispositivo (por exemplo, teclas do teclado, localização em uma tela sensível a toque, rotação ou localização de um click-wheel, etc.) e sinais de comando executados desse modo. Os parâmetros podem ser armazenados no servidor de gateway 22, por exemplo, em uma memória principal ou cache do mesmo.
[0034] Em resposta à solicitação dos dispositivos móveis 2, 4 e/ou 6 para o servidor de gateway 22 para conteúdo, o servidor de gateway 22 pode, por sua vez, enviar uma solicitação para o conteúdo para o servidor de aplicação 24. O servidor de aplicação 24 pode, por sua vez, enviar uma solicitação para o conteúdo para o servidor de origem de conteúdo 26.
[0035] Em resposta à solicitação, o servidor de origem de conteúdo 26 pode enviar ao servidor de aplicação 24 o conteúdo solicitado. O conteúdo pode ser solicitado e/ou fornecido através, por exemplo, de protocolos de rede padrão, interface de programação de aplicação (API), ou qualquer outra técnica conhecida.
[0036] O servidor de aplicação 24 pode receber o conteúdo. O servidor de aplicação 24 pode processar o conteúdo recebido do servidor de origem de conteúdo 26 para determinar se o conteúdo recebido coincide com a solicitação para conteúdo do servidor de gateway 22 (por exemplo, a solicitação que origina de um ou mais de dispositivos móveis 2, 4 e/ou 6). Se o conteúdo coincidir com a solicitação, o servidor de aplicação 24 formata o conteúdo de acordo com parâmetros pré-definidos apropriados para o servidor de gateway 22 que pode ser independente de parâmetro s de dispositivos móveis 2, 4 e 6. O servidor de aplicação 24 transmite o conteúdo formatado para o servidor de gateway 22.
[0037] O servidor de gateway 22 recebe o conteúdo formatado e processa o conteúdo para verificar novamente se o conteúdo recebido coincide com a solicitação original para conteúdo de um ou mais dos dispositivos móveis 2, 4 e/ou 6. Se for revalidado que o conteúdo coincide com a solicitação, o servidor de gateway 22 pode recuperar (por exemplo, da memória cache) os parâmetros de dispositivo respectivos de cada do dispositivo móvel 2, 4 e/ou 6 solicitando o conteúdo. O servidor de gateway 22 pode formar o conteúdo de acordo com os parâmetros de dispositivo de cada do dispositivo móvel 2, 4 e/ou 6. O servidor de gateway 22 pode codificar e enviar o conteúdo formatado específico de dispositivo para o dispositivo móvel 2, 4 e/ou 6.
[0038] O servidor de gateway 22 pode comunicar com o dispositivo móvel 2, 4 e/ou 6 utilizando um protocolo de servidor-cliente. Nesse protocolo, um cliente é instalado em cada dos dispositivos móveis 2, 4 e/ou 6. O cliente pode incluir software instalado ou código que executa em cada dos dispositivos móveis 2, 4 e/ou 6 para acessar servidor de gateway remoto 22 através da rede 8.
[0039] O cliente em cada do dispositivo móvel 2, 4 e/ou 6 recebe o respectivo conteúdo formatado específico de dispositivo a partir do servidor de gateway 22. O conteúdo pode incluir qualquer tipo de dados, incluindo, porém não limitados a texto, imagens, áudio, vídeo, jogos e lógica, ações, informações, experiências que podem fornecer valor para um usuário final, elementos gráficos de vetor, interface de usuário e elementos dos mesmos, elementos interativos e assim por diante. O cliente pode reportar parâmetros de dispositivo para cada de uma pluralidade de dispositivos móveis diferentes 2, 4 e/ou 6 e servidor de gateway 22 e/ou servidor de aplicação 24 aplica um algoritmo para converter automaticamente uma interface de usuário genética para uma interface de usuário específica de dispositivo de acordo com os parâmetros de dispositivo para cada da pluralidade de dispositivos móveis diferentes 2, 4 e/ou 6.
[0040] O cliente no dispositivo móvel 2, 4 e/ou 6 pode exibir os dados nas telas 10, 12 e/ou 14, respectivamente, utilizando um mecanismo de interface de usuário. Alternativamente, quando o conteúdo inclui dados de áudio, o cliente toca os dados através do alto-falante de saída apropriado. Além disso, o servidor de gateway 22 e/ou certo conteúdo pode invocar outros recursos a partir do dispositivo móvel 2, 4 e/ou 6 para executar ações específicas, como, por exemplo, tocar arquivos de vídeo utilizando um reprodutor nativo, fazer uma chamada, enviar uma mensagem curta, obter uma geo-localização, utilizar uma câmera, etc.
[0041] Em paralelo, o cliente em cada um dos dispositivos móveis 2, 4 e/ou 6 aceita entrada a partir do usuário através de controles de usuário no dispositivo (por exemplo, traços de tela, movimentos de dispositivo indicador em uma tela sensível a toque, rotação de um click-wheel, etc.). O cliente pode tratar de alguma entrada localmente, por exemplo, utilizando um gerenciador de evento, que traduz a entrada de usuário para executar operações correspondendo ao mesmo. O cliente pode enviar outra entrada para o servidor de gateway 22 para tratamento.
[0042] O servidor de gateway 22 pode identificar, nos parâmetros de dispositivo, uma correspondência de controles de usuário no dispositivo e operações causadas desse modo. Se as operações correspondendo à entrada de usuário não exigirem conteúdo novo (por exemplo, destacar uma palavra em telas de usuário 10, 12 e/ou 14, retornar a uma página anterior cujo conteúdo ainda está armazenado na memória cache do servidor de gateway 22, etc.), o servidor de gateway 22 pode executar as operações. Se as operações correspondendo à entrada de usuário exigirem novo conteúdo, o servidor de gateway 22 pode emitir a solicitação de operação para novo conteúdo para o servidor de aplicação 24 para recuperar o novo conteúdo.
[0043] O servidor de aplicação 24 pode determinar de modo semelhante, se a solicitação de operação exige novo conteúdo. Se a solicitação de operação não exigir novo conteúdo, o servidor de aplicação 24 pode tratar da operação e enviar conteúdo atualizado para o servidor de gateway 22 para uso nos dispositivos móveis 2, 4 e/ou 6. Se a solicitação de operação exigir novo conteúdo, o servidor de aplicação 24 pode enviar uma solicitação para o novo conteúdo para o servidor de origem de conteúdo 26. O servidor de origem de conteúdo 26 pode buscar ou atualizar o conteúdo solicitado. O servidor de origem de conteúdo 26 pode enviar o conteúdo novo para o servidor de aplicação 24, que pode por sua vez enviar o conteúdo para o servidor de gateway 22, que pode por sua vez enviar o conteúdo para o dispositivo móvel 2, 4 e/ou 6, através dos respectivos clientes locais instalados no mesmo.
[0044] Pode ser reconhecido que embora os servidores 22, 24 e/ou 26 sejam separados entre si na figura, em uma modalidade alternativa, quaisquer dos servidores 22, 24 e/ou 26 podem ser integrados como um servidor único. Em uma modalidade preferida, pelo menos os servidores 22 e 24 são separados para permitir melhor capacidade de escalonamento e reduzir latência de transações. Ademais, múltiplos servidores 22 e/ou múltiplos servidores 24 podem ser utilizados, por exemplo, para suportar volume crescente de transações, dispositivos móveis e comunicação com o servidor 26. Quando os servidores 22, 24 e/ou 26 são separados entre si, a comunicação entre os mesmos pode ser transmitida como sinais sem fio ou cabeados, por exemplo, através de uma rede 28 (por exemplo, igual ou diferente da rede 8). Em outra modalidade (não mostrada), quando os servidores 22, 24 e/ou 26 são integrados, por exemplo, como partes de um servidor único, a comunicação entre os mesmos pode ser enviada entre processos ou em processo sem o uso de uma rede. Outras configurações ou configurações ou combinações adicionais de servidores podem ser utilizadas.
[0045] A identidade e/ou segurança de quaisquer dos servidores pode ser verificada e checada em qualquer estágio dessa sequência de comunicação.
[0046] Os processos de porting convencionais utilizando camadas, descritos acima na seção "Histórico", gera camadas específicas de dispositivo para visualizar conteúdo para cada dispositivo diferente tendo informações armazenadas em um banco de dados. Um detrimento desse processo de porting é que as camadas específicas de dispositivo são geradas para cada dispositivo ou perfil armazenado em um banco de dados, independente de se o dispositivo está ativo ou não ou solicitações para visualizar a camada de conteúdo. De acordo com modalidades da invenção, porting para um dispositivo começa quando o dispositivo solicita para visualizar o conteúdo. Portanto, o processo de porting é executado sob uma base de necessidade apenas, somente para dispositivos que solicitam visualizar o conteúdo. Outro detrimento do processo de porting convencional acima mencionado é que o conteúdo é somente visualizável por dispositivos tendo parâmetros anteriormente armazenados no banco de dados. Desse modo, um dispositivo novo, desconhecido ou não reconhecido não pode ter uma camada específica de dispositivo e deve visualizar conteúdo com aparência genérica e funcionalidade utilizando uma camada padrão. Ao contrário, de acordo com modalidades da invenção, a camada de porting para um dispositivo não é gerada dos parâmetros de dispositivo armazenados em um banco de dados, porém de informações enviadas pelo próprio dispositivo. Desse modo, porting é obtido para dispositivos cujos parâmetros não são armazenados no banco de dados (por exemplo, dispositivos novos, estranhos, desconhecidos). Outros benefícios ou benefícios adicionais podem ser obtidos.
[0047] Faz-se referência à Figura 2A, que é uma ilustração esquemática de camadas em um dispositivo móvel (por exemplo, um dos dispositivos móveis 2, 4 e/ou 6 da Figura 1) e um servidor de gateway (por exemplo, servidor de gateway 22 da Figura 1) interagindo para executar um processo de porting de acordo com uma modalidade da invenção.
[0048] O servidor de gateway e o dispositivo móvel podem se comunicar utilizando uma ou mais camadas de servidor de gateway 42 e uma ou mais camadas de cliente 40, respectivamente. As camadas de dispositivo do lado do cliente e do lado de servidor de gateway são separadas por linha tracejada 30 na Figura.
[0049] As camadas de cliente 40 podem incluir pelo menos um mecanismo de interface de usuário 322 e um gerenciador de evento 34. O mecanismo de interface de usuário 32 pode exibir conteúdo no dispositivo móvel. O gerenciador de evento 34 pode traduzir entrada de usuário através de controles de dispositivo para executar operações correspondentes. O gerenciador de evento 34 pode incluir um operador local 36 e um operador remoto 38. O operador local 36 trata tipicamente de entrada de usuário localmente no dispositivo móvel, enquanto o operador remoto 38 pode enviar entrada de usuário para o servidor de gateway para tratamento.
[0050] Camadas de servidor de gateway 42 podem ser um ponto de contato para o dispositivo móvel em uma rede (por exemplo, rede 8 da Figura 1). Camadas de servidor de gateway 42 podem criar um protocolo de servidor-cliente para comportar com um dispositivo móvel tendo quaisquer parâmetros de dispositivo arbitrários. As camadas de servidor de gateway 42 podem simular um dispositivo "virtual" 84 correspondendo ao dispositivo móvel. Um dispositivo "virtual" pode ser um conjunto de estruturas de dados e/ou operações no servidor de gateway que atua como um dispositivo móvel e é configurado de acordo com alguns ou todos os parâmetros de dispositivo do dispositivo móvel correspondente. Camadas de servidor de gateway 42 podem adaptar então conteúdo e comandos para comportar com os parâmetros para dispositivo virtual 84. Camadas de servidor de gateway 42 podem enviar o conteúdo adaptado específico de dispositivo para camadas de cliente 40.
[0051] As camadas de cliente 40 podem receber o conteúdo adaptado, e utilizando mecanismo de interface de usuário 32 podem exibir o conteúdo específico de dispositivo no dispositivo móvel e habilitar capacidades funcionais específicas de acordo com instruções fornecidas pelas camadas de servidor de gateway 42.
[0052] Camadas de servidor de gateway 42 podem configurar o dispositivo virtual 84 automaticamente (ou semi-automaticamente). Desse modo quando a detecção de configuração não dependa do dispositivo, uma vez que o dispositivo virtual não depende do dispositivo e o cliente não depende do dispositivo, todo o sistema se torna independente de dispositivo.
[0053] Em uma modalidade da presente invenção, um sistema para executar aplicações móveis pode incluir servidor de aplicação 24 para executar aplicações (por exemplo, e/ou servidor de gateway 22) e um cliente instalado em dispositivos móveis 2, 4 e/ou 6. O cliente pode conectar-se ao servidor de aplicação 24 através da rede 8 e/ou 28. O cliente pode exibir conteúdo, receber entrada de usuário e enviar entrada de usuário para o servidor de aplicação 24. O servidor de aplicação (por exemplo, e/ou servidor de gateway 22) pode utilizar o cliente para receber entrada de usuário e exibir conteúdo para executar aplicações para dispositivos móveis 2, 4 e/ou 6. Pode haver uma pluralidade de clientes, cada um dos quais pode ser adaptado para ser instalado em uma pluralidade de dispositivos móveis diferentes 2, 4 e/ou 6 que têm pelo menos um parâmetro de dispositivo comum. O cliente igual ou duplicata pode ser utilizado para pelo menos dois da pluralidade de dispositivos móveis diferentes 2, 4 e/ou 6.
[0054] Faz-se referência à Figura 2B, que é um fluxograma de um processo de porting executado pelas camadas de interação dos dispositivos móveis e o servidor de gateway da Figura 2A de acordo com uma modalidade da invenção. O processo de porting pode configurar automaticamente conteúdo de um servidor remoto (por exemplo, servidor de origem de conteúdo 26 da Figura 1) para comportar com os parâmetros de um dispositivo (por exemplo, cada dos dispositivos móveis 2, 4 e/ou 6 da Figura 1) para exibir o conteúdo no dispositivo e habilitar capacidades específicas de dispositivo.
[0055] Em operação 102, as camadas de cliente 40 podem executar software de cliente em um dispositivo móvel.
[0056] Em operação 104, camadas de cliente 40 podem extrair parâmetros de dispositivo ou certos parâmetros do dispositivo móvel. Os parâmetros de dispositivo podem ser propriedades do dispositivo, por exemplo, resolução de tela, software instalado no dispositivo, memória disponível, OS, uma correspondência de controles de usuário no dispositivo (por exemplo, teclas do teclado, local em uma tela sensível a torque, rotação ou local de um click-wheel, etc.) e sinais de comando executados desse modo.
[0057] Em operação 106, camadas de cliente 40 podem se conectar a camadas de servidor de gateway 42. Camadas de cliente 40 podem fazer login com as camadas de servidor de gateway 42. Por exemplo, camadas de cliente 40 podem enviar autenticação ou um identificador, como uma senha, código, ou chave criptografada. Camadas de cliente 40 e camadas de servidor de gateway 42 podem concordar em, e utilizar, um protocolo de comunicação (por exemplo, como uma implementação de protocolo de transferência de hipertexto (HTTP). Se o login falhar, nenhuma conexão entre camadas de cliente 40 e camadas de servidor de gateway 42 é realizada. Se o login falhar, as camadas de cliente 40 podem repetir a operação 106 até que uma conexão seja realizada ou o número de tentativas exceda um limite predeterminado.
[0058] Em operação 108, camadas de cliente 40 podem enviar para as camadas de servidor de gateway 42 os parâmetros de dispositivo para o dispositivo móvel. Em uma modalidade, em vez de enviar diretamente os parâmetros de dispositivo, camadas de cliente 40 enviam para as camadas de servidor de gateway 42 um identificador de dispositivo, por exemplo, informações de agente de usuário ou uma assinatura de dispositivo. Em uma modalidade, as camadas de servidor de gateway 42 podem solicitar ou prompt os parâmetros de dispositivo a partir de camadas de cliente 40.
[0059] Camadas de servidor de gateway 42 podem processar os parâmetros de dispositivo e determinar se são suficientes para gerar um dispositivo virtual (por exemplo, dispositivo virtual 84 da Figura 3). Se as camadas de serviço de gateway 42 necessitarem de mais informações para gerar um dispositivo virtual, camadas de servidor de gateway 42 podem solicitar as informações restantes de camadas de cliente 40 (por exemplo, como versão de software, bibliotecas disponíveis, etc.) em algumas modalidades, as camadas de servidor de gateway 42 podem pedir as amadas de cliente 40 que executem certos testes no dispositivo móvel para obter as informações restantes para reportar para as camadas de servidor de gateway 42. Por exemplo, as camadas de servidor de gateway 42 podem pedir as camadas de cliente 40 que decodifiquem certo(s) tipo(s) de mídia, processem cálculo e reportem a duração dos cálculos, ou teste em relação a um bug ou erro conhecido em um programa. Camadas de servidor de gateway 42 podem utilizar os resultados de teste de operação 108 para configurar um algoritmo para converter automaticamente uma interface de usuário genérica em uma interface de usuário específica de dispositivo de acordo com os parâmetros de dispositivo para cada da pluralidade de dispositivos móveis diferentes.
[0060] Camadas de servidor de gateway 42 podem solicitar repetidamente informações de camadas de cliente 40 para os parâmetros do dispositivo móvel no qual o cliente é instalado, até que as camadas de servidor de gateway 42 tenham informações suficientes para gerar um dispositivo virtual correspondendo ao dispositivo móvel.
[0061] Em operações 112-118, as camadas de servidor de gateway 42 podem gerar/atualizar automaticamente um banco de dados de configuração de dispositivo para armazenar na memória dados parciais ou completos para perfis de dispositivos virtuais correspondendo a dispositivos móveis.
[0062] Em operações 112, as camadas de servidor de gateway 42 podem comparar o identificador de dispositivo (por exemplo, informações de agente-usuário ou uma assinatura de dispositivo) fornecido me operação 108 ou em outra operação anterior (por exemplo, durante um processo de download ou instalação) com aqueles armazenados no banco de dados de configuração de dispositivo.
[0063] Nas operações 114, as camadas de servidor de gateway 42 podem determinar se o identificador de dispositivo coincide com um identificador de dispositivo armazenado no banco de dados de configuração de dispositivo. Se o identificador de dispositivo coincidir, as camadas de servidor de gateway 42 podem simplesmente recuperar da memória ou armazenamento os dados de perfil de dispositivo virtual parciais ou completos correspondendo ao identificador de dispositivo coincidido e prosseguir para a operação 118.
[0064] Nas operações 116, se o identificador de dispositivo não coincidir, as camadas de servidor de gateway 42 podem atualizar o banco de dados de configuração de dispositivo, criar uma nova entrada para o identificador de dispositivo não coincidido incluindo novos dados de dispositivo virtual parciais ou completos correspondendo ao mesmo. O processo pode prosseguir então para a operação 118.
[0065] Na operação 118, utilizando os dados de dispositivo virtual parciais ou completos armazenados no banco de dados de configuração de dispositivo, camadas de servidor de gateway 42 podem gerar um dispositivo virtual completo correspondendo ao dispositivo móvel no qual o cliente atual é instalado.
[0066] Durante operação do dispositivo móvel, camadas de cliente 40 podem obter informações adicionais sobre o dispositivo móvel (por exemplo, como uma implementação de HTTP). Camadas de cliente 40 podem reportar as informações adicionais para as camadas de servidor de gateway 42. As camadas de servidor de gateway 42 podem, por sua vez, atualizar, automaticamente o banco de dados de configuração do dispositivo com as novas informações para o dispositivo móvel e/ou dispositivo virtual correspondendo ao mesmo.
[0067] Em uma modalidade alternativa, em vez de utilizar um cliente genérico universalmente instalado em todos os dispositivos móveis e então gerar um dispositivo virtual específico para cada dispositivo móvel diferente, camadas de servidor de gateway 42 podem gerar automaticamente um cliente específico de dispositivo para cada dispositivo móvel diferente. O cliente específico de dispositivo pode ser pré-configurado para os parâmetros de dispositivo de comunicação móvel específicos. Nessa modalidade, um cliente genérico pode ser primeiramente instalado nos dispositivos móveis para testar os dispositivos móveis e coletar informações específicas de dispositivo correspondendo aos mesmos. Após a fase de teste terminar e informações suficientes para gerar um cliente específico de dispositivo ter sido coletadas e reportadas para as camadas de servidor de gateway 42, as camadas de servidor de gateway 42 podem utilizar informações para substituir/atualizar o cliente genérico com o cliente específico de dispositivo.
[0068] Em uma modalidade, camadas de cliente 40 podem exibir um prompt (por exemplo, em telas 10, 12 e/ou 14 da Figura 1) do dispositivo móvel (por exemplo, dispositivos móveis 2, 4 e/ou 6 da Figura 1, respectivamente) solicitando informações de um usuário. Um usuário pode fornecer informações para o cliente (por exemplo, utilizando dispositivos de entrada 16, 18 e 20, respectivamente), como clicar uma tecla específica ou responder a uma pergunta em relação a quais itens são visíveis na tela do dispositivo. O cliente pode reportar os dados fornecidos pelo usuário para as camadas de servidor de gateway 42 para atualizar o banco de dados de configuração de dispositivo.
[0069] O dispositivo virtual pode ser configurado em camadas de servidor de gateway 42 como um conjunto de estruturas de dados e/ou operações no servidor de gateway que atua como um dispositivo móvel.
[0070] As camadas de cliente 40 podem incluir mecanismo de interface de usuário 32 (por exemplo, um objeto independente de dispositivo ou universal) e um gerenciador de evento 34 (por exemplo, um gerenciador de evento de tecla para tratar comandos de tecla específicos de dispositivo). O gerenciador de evento 34 das camadas de cliente 40 pode reportar um evento para as camadas de servidor de gateway 42. Eventos podem ser originados por controles de usuário, como teclas, tela sensível ao toque, ou uma câmera, ou por fontes externas como software. As camadas de servidor de gateway 42 podem fornecer instruções remotamente às camadas de cliente 40 para responder ao evento. Alternativamente, o gerenciador de evento 34 pode ter lógica para responder ao evento localmente. Nesse exemplo, as camadas de cliente 40 não necessitam esperar por instruções remotas das camadas de servidor de gateway 42. As camadas de servidor de gateway 42 podem enviar ao mecanismo de interface de usuário 32 e gerenciador de evento 34 informações e comandos que são especificamente configuradas para o dispositivo móvel operacional. Conteúdo e informação recebidos do servidor de aplicação 24 são configurados de modo semelhante de acordo com os parâmetros do dispositivo virtual e então enviados para as camadas de cliente 40. Uma vez que as camadas de servidor de gateway 42 enviam para as camadas de cliente 40 informações já configuradas para as capacidades individuais do dispositivo móvel operacional, as camadas de cliente 40 não necessitam estar cientes das capacidades específicas do dispositivo. Portanto, camadas de cliente substancialmente iguais ou "universais" 40 podem ser instaladas em todos os dispositivos móveis ou grupos de dispositivos similares (por exemplo, tendo o mesmo sistema operacional). Uma vez que camadas de clientes 40 não utilizam a maior parte, ou em certos casos, nenhuma propriedade, especificação ou parâmetro específico do dispositivo móvel no qual está instalado, o cliente pode ser mencionado como um cliente "independente de dispositivo".
[0071] Em algumas modalidades, as camadas de servidor de gateway 42 podem solicitar o conteúdo de fontes adicionais (por exemplo, diferente do servidor de origem de conteúdo 26 da Figura 1). As camadas de servidor de gateway 42 podem solicitar o conteúdo, por exemplo, de servidores de serviço (por exemplo, como servidor(es) de transcodificação de imagem ou servidor(es) de serviço de anúncio). Camadas de servidor de gateway 42 podem enviar os parâmetros de adaptação de servidor de serviço com base nos parâmetros de dispositivo de acordo com o dispositivo virtual com base nos respectivos parâmetros de dispositivo móvel para adaptar o conteúdo no servidor de serviço. Alternativamente, a adaptação pode ser executada por camadas de servidor de gateway 42. As camadas de servidor de gateway 42 podem mapear as informações recebidas de camadas de cliente 40 em um formato e estrutura entendidos pelo servidor de aplicação 24.
[0072] Faz-se referência à Figura 3, que é uma ilustração esquemática de camadas em um sistema que inclui dispositivo(s) móvel(is), um servidor de gateway, e um servidor de aplicação para executar um serviço de informação distribuído acessível de um dispositivo móvel de acordo com uma modalidade da invenção.
[0073] Os dispositivos móveis 2, 4 e/ou 6, servidor de gateway 22, e servidor de aplicação 24 da Figura 1 podem se comunica mutuamente utilizando camadas de cliente 40, camadas de servidor de gateway 42, e camadas de servidor de aplicação 44, respectivamente. Na Figura 3, as camadas de cliente 40 e camadas de servidor de gateway 42 são separadas por linha tracejada 30 e camadas de servidor de gateway 42 e camadas de servidor de aplicação 44 são separadas por linha tracejada 46. As camadas de cliente 40 e camadas de servidor de gateway 42 podem corresponder aos componentes com número igual respectivos na Figura 2A.
[0074] Camadas de servidor de gateway 42 podem incluir um lançador 52, um módulo de adaptação de dispositivo 54, um gerenciador de sessão 56, e conectores 58. O lançador 52 determina a identidade de um loggíng-ín e cliente e o dispositivo móvel correspondente. O lançador 52 pode determinar os parâmetros do dispositivo móvel, por exemplo, obtidos através de testes feitos no dispositivo móvel pelo cliente e/ou baseados em parâmetros de dispositivo reportados pelo cliente ou recuperados pelas camadas de servidor de gateway 42 a partir de um banco de dados de configuração de dispositivo. As camadas de servidor de gateway 42 podem gerar/atualizar automaticamente um banco de dados de configuração de dispositivo para armazenar dados em memória para suportar um dispositivo virtual 84 que corresponde a camadas de clientes 40. As camadas de servidor de gateway 42 podem incluir também uma unidade de processamento central externa (CPU), e percursos de comunicação e armazenamento de suplemento sobre uma rede. Outra funcionalidade e lógica ou funcionalidade e lógica adicionais podem ser utilizadas.
[0075] As camadas de servidor de aplicação 44 podem incluir cliente(s) do lado do servidor 50 que podem ser adaptados para executar aplicação(ões) acessível(is) e/ou controlável(is) através de camadas de cliente 40. O cliente do lado do servidor 50 pode ser independente de dispositivo (por exemplo, universal ou não específico para o dispositivo móvel no qual as camadas de cliente 40 operam). O cliente do lado do servidor 50 pode executar aplicação(ões), permutar informações com uma origem de conteúdo, executar cálculos, monitorar eventos externos, etc., cada associado ao dispositivo móvel, porém independentemente das camadas de cliente 40. O cliente do lado de servidor 50 pode permutar informações com, por exemplo, servidor de origem de conteúdo 26 da Figura 1, para checar periodicamente em relação ao placar de esportes, e-mails, etc.
[0076] Tipicamente, as camadas de cliente 40 podem reportar eventos e/ou solicitações a partir do dispositivo móvel para o cliente do lado do servidor 50 através de camadas de servidor de gateway 42, que por sua vez, através do gerenciador de sessão 56, pode fornecer lógica para função de camadas de cliente 40.
[0077] Após o cliente estar logged-in, o cliente pode solicitar conteúdo. O cliente pode enviar a solicitação de conteúdo via conectores 58 para as camadas de servidor de gateway 42, que por sua vez podem enviar a solicitação através de Proxy de aplicação 72 para as camadas de servidor de aplicação 44. As camadas de servidor de aplicação 44 podem ter código de aplicação instalado para receber a solicitação das camadas de servidor de gateway 42. As camadas de servidor de aplicação 44 podem ter instalada uma interface 48 para conteúdo, por exemplo, uma API, para recuperar conteúdo de um servidor de origem de conteúdo (por exemplo, servidor de origem de conteúdo 26 da Figura 1) e transferir o conteúdo para as camadas de servidor de gateway 42 para renderização e adaptação para o dispositivo virtual 84. O conteúdo pode ser buscado de um servidor de origem de conteúdo através de uma rede (por exemplo, rede 28 da Figura 1) como a Internet.
[0078] As camadas de servidor de aplicação 44 podem enviar então uma solicitação para o dispositivo virtual 84 para exibir o conteúdo recuperado em uma tela do mesmo ou executar uma ação predefinida. O conteúdo pode ser então adaptado (por exemplo, redimensionado, reformatado, etc.) para comportar com os parâmetros de dispositivo virtual 84. O dispositivo virtual 84 pode ter capacidades além daqueles do dispositivo móvel correspondente (por exemplo, calcular transparências em imagens, exibir formato de arquivo não suportado pelo dispositivo móvel, etc.).
[0079] O conteúdo pode incluir conteúdo de múltiplas fontes. As camadas de servidor de gateway 42, que mantêm o dispositivo virtual 84, podem dividir a solicitação para conteúdo em partes ou subsolicitações. Por exemplo, se o conteúdo inclui um título e uma imagem, a solicitação para conteúdo pode ser desmontada em uma solicitação para buscar e redimensionar uma imagem a partir de um servidor de imagem 62, uma solicitação para buscar um título de um servidor de serviço 60, e opcionalmente, uma solicitação para buscar um anúncio de um servidor de anúncio 64. As camadas de servidor de gateway 42 podem processar cada subsolicitação separadamente utilizando camada(s) de Proxy que operam em paralelo. Camadas de servidor de gateway 42 podem ter um Proxy de imagem 68 para buscar e redimensionar a imagem, um Proxy de serviço 66 para buscar o título, e um Proxy de anúncio 70 para buscar um anúncio. Camadas de servidor de gateway 42 podem incluir um banco de dados 76.
[0080] Após o conteúdo ser recuperado por cada dos dispositivos de Proxy, a unidade de adaptação de dispositivo 54 pode adaptar o conteúdo para comportar com parâmetros de dispositivo (por exemplo, capacidades de dispositivo e interface de usuário) do dispositivo móvel. Por exemplo, a unidade de adaptação de dispositivo 54 executa adaptação visual de conteúdo recebido das camadas de servidor de aplicação 44, e molda elementos de conteúdo aos parâmetros e capacidades de dispositivo móvel. Por exemplo, dispositivos móveis diferentes podem representar um conjunto de opções de menu em uma tela de forma diferente. Por exemplo, um telefone celular Nokia N73, que tem duas “teclas soft”, pode atribuir uma opção de menu à tecla soft mais a esquerda, enquanto um Blackberry® CurveTM que não tem teclas soft, porém tem uma tecla de menu nativa, pode atribuir a opção de menu à tecla de menu nativa.
[0081] A unidade de adaptação de dispositivo 54 pode adaptar conteúdo com base em uma tarefa específica (por exemplo, iniciar uma chamada, abrir um navegador, encontrar uma localização global, etc.). A unidade de adaptação de dispositivo 54 pode utilizar APIs específicas de dispositivo adaptadas para executar a tarefa específica. Por exemplo, para iniciar uma chamada, a unidade de adaptação de dispositivo 54 pode fornecer às camadas de cliente 40 o comando correto para acessar a lista de contato pessoal do dispositivo; abrir um navegador, a unidade de adaptação de dispositivo 54 pode fornecer às camadas de cliente 40 o comando correto para operar o navegador que é localmente instalado no dispositivo; encontrar dispositivo de localização global, unidade de adaptação de dispositivo 54 pode fornecer às camadas de cliente 40 o comando correto para solicitar geo-localização de dispositivo, etc. a unidade de adaptação de dispositivo 54 pode adaptar o conteúdo em um modo que minimiza esforço de computação, por exemplo, por selecionar um formato de imagem e/ou formato de vídeo para enviar, e/ou se deve executar ou não recurso que demanda efeitos visuais.
[0082] Após o conteúdo ser adaptado para comportar com os parâmetros de dispositivo móvel, as camadas de servidor de gateway 42 pode utilizar estatísticas 74 associadas ao conteúdo e o uso das mesmas para melhorar algoritmos de caching para gerenciar o cache. Utilizando os algoritmos de caching aperfeiçoados, as camadas de servidor de gateway 42 podem armazenar uma cópia do conteúdo em um cache local do mesmo.
[0083] As camadas de servidor de gateway 42 podem então codificar o conteúdo. Após o conteúdo ser codificado, as camadas de servidor 42 podem enviar o conteúdo para camadas de cliente 40, por exemplo, através de conectores 58 para exibir no dispositivo móvel.
[0084] As camadas de cliente 40 podem receber e decodificar o conteúdo codificado. Uma vez que até o momento que o conteúdo é enviado para as camadas de conteúdo 40, o conteúdo é adaptado, por exemplo, formatado para encaixar na tela do dispositivo móvel, as camadas de conteúdo 40 (por exemplo, utilizando mecanismo de interface de usuário 32 da Figura 2A), podem renderizar diretamente o conteúdo sobre a tela dos dispositivos móveis sem nenhuma alteração adicional. As camadas de cliente 40 podem reportar eventos e tratamentos, por exemplo, utilizando um gerenciador de evento (por exemplo, gerenciador de evento 34 da Figura 2A).
[0085] As camadas de servidor de gateway 42 podem repetir o processo de recuperar e adaptar o conteúdo individualmente para cada de uma pluralidade de dispositivos móveis. A unidade de adaptação de dispositivo 54 pode adaptar o conteúdo para comportar com cada conjunto de parâmetros de dispositivo diferente para cada dispositivo móvel. As camadas de servidor de gateway 42 podem enviar cada conjunto diferente de conteúdo adaptado para as camadas de conteúdo 40 dos dispositivos móveis respectivos.
[0086] As camadas de servidor de gateway 42 e camadas de cliente 40 comunicam utilizando um protocolo, por exemplo, descrito em detalhe adicional nas referências às Figuras 6 e 7.
[0087] Faz-se referência à Figura 4, que é uma ilustração esquemática de uma pluralidade de caches 78 e 80 distribuída em uma rede 8 de acordo com uma modalidade da invenção.
[0088] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para distribuir gerenciamento de cache. A memória de cache local78 pode ser operada pela camada de cliente 40 e localizada em um dispositivo móvel (por exemplo, dispositivos móveis 2, 4 e/ou 6 da Figura 1) para armazenar dados localmente. O servidor de gateway 22 da Figura 1 pode ser conectado ao dispositivo móvel através de uma rede (por exemplo, redes 8 e/ou 28 da Figura 1). O servidor de gateway 22 pode gerenciar remotamente memória de cache local 78. O servidor de gateway 22 pode fornecer recursos adicionais para gerenciar dados armazenados localmente em memória cache local 78 do dispositivo móvel para suplementar os recursos do dispositivo móvel.
[0089] Um dispositivo móvel (por exemplo, dispositivos móveis 2, 4 e/ou 6 da Figura 10 pode incluir uma memória cache local 78. Um cliente instalado no dispositivo móvel pode operar memória cache local 78. A memória cache local 78 tem tipicamente um tamanho limitado.
[0090] A rede 8 (por exemplo, rede 8 da Figura 1) pode incluir uma ou mais redes às quais o dispositivo móvel é conectado a um servidor de gateway (por exemplo, através das camadas de servidor de gateway 42 da Figura 2A e 3). O dispositivo móvel pode receber conteúdo a partir do servidor de gateway através da rede 8 (por exemplo, utilizando conectores 58 da Figura 3).
[0091] O servidor de gateway pode incluir um cache remoto de proxy 80, estatísticas 74 e metadados de cache 82. Alternativamente, alguns ou todos esses componentes podem ser separados do servidor de gateway.
[0092] O servidor de gateway pode operar cache remoto de proxy 80. O cache remoto de proxy 80 pode ser localizado no servidor de gateway. O cache remoto de proxy 80 pode ser alocado para auxiliar no gerenciamento de memória de cache local 78 localizada no dispositivo móvel. O cache remoto de proxy 80 pode suplementar memória de cache local 78 do dispositivo móvel. O cache remoto de proxy 80 pode ser acessível ao dispositivo móvel através da rede 8.
[0093] As estatísticas 74 (por exemplo, estatísticas 74 da Figura 2) são uma unidade de armazenamento (por exemplo, um banco de dados) de dados estatísticos que correspondem com dados armazenados na memória cache local 78. As estatísticas 74 também podem conter metadados, e outros dados relacionados ao cache, por exemplo, indicação de se os dados são armazenados ou não persistentemente no dispositivo móvel.
[0094] Os metadados de cache 82 são uma unidade de armazenamento (por exemplo, um banco de dados) para armazenar metadados em um meio para gerar ou calcular metadados com base em conteúdo (por exemplo, um processador para executar um algoritmo ou outra função). Os metadados de cache 82 podem incluir informações sobre conteúdo que podem ser utilizadas para melhorar a lógica de cache para gerenciar o cache.
[0095] O servidor de origem de conteúdo 26 (por exemplo, Figura 1) inclui um servidor que armazena ou provê o conteúdo solicitado pelo cliente.
[0096] Tipicamente, os recursos de cache disponíveis, percursos de comunicação de rede, e capacidades de CPU de um dispositivo móvel são relativamente fracos (por exemplo, em comparação com um servidor, como o servidor de gateway). Portanto, a busca e processamento de informações localmente no dispositivo móvel são relativamente mais caro ou ineficiente (por exemplo, em termos de tráfego de dados e tempo) do que no servidor de gateway.
[0097] De acordo com modalidades da presente invenção, o servidor de gateway suplementa a memória cache local 78 com cache remoto de proxy 80. Cache remoto de proxy 80 tem tipicamente mais espaço de armazenamento do que a memória cache local 78. Além disso, o servidor de gateway tem tipicamente mais capacidades de processamento do que o dispositivo móvel, por exemplo, potência de processamento mais forte, recursos de memória mais extensos, bancos de dados estatísticos, e informações externas como meta tags, que são conhecidos. O servidor de gateway opera cache remoto de proxy 80 como uma cópia e imitação de memória cache local 78 do dispositivo móvel. O cache remoto de proxy 80 pode conter parte ou todos os dados na memória cache local 78. Uma vez que as capacidades de processamento do servidor de gateway e recursos de armazenamento do cache remoto de proxy 80 são tipicamente maiores do que suas cópias no dispositivo móvel, o uso do servidor de gateway como um recurso de cache remoto externo pode aumentar as capacidades de processamento e recursos de armazenamento do dispositivo móvel.
[0098] Em uma modalidade, o cliente pode enviar uma solicitação para conteúdo ser buscado do servidor de origem de conteúdo 26. Metadados de cache 82 podem fixar metadados de cache relevantes ao conteúdo. Os metadados de cache podem incluir informações para melhorar a lógica para armazenar e/ou utilizar o conteúdo em uma memória cache. Os metadados de cache 82 podem gerar os metadados de cache, por exemplo, com base em uma entrada de banco de dados pré-definida ou por análise e processamento do próprio conteúdo. Em um exemplo, os metadados podem fornecer uma previsão de se o conteúdo mudará ou não. Por exemplo, se o conteúdo for um logotipo de companhia, o conteúdo provavelmente não mudará frequentemente. Entretanto, se o conteúdo for um placar em uma partida de tênis contínua, o conteúdo provavelmente mudará frequentemente. Os metadados podem otimizar recursos de cache, por exemplo, para permitir que o cache organize entradas de acordo com as respectivas frequências nas quais as entradas são atualizadas. A capacidade de processar metadados de cache (por exemplo, através de metadados de cache 82) para melhorar gerenciamento de cache está disponível no servidor de gateway, porém tipicamente não disponível no dispositivo móvel, por exemplo, devido a recursos limitados. Desse modo, o uso do servidor de gateway para operar cache remoto de proxy 80 no lugar de memória de cache local 78 provê o benefício adicional de metadados de cache.
[0099] Após os metadados de cache 82 fixarem metadados ao conteúdo, metadados de cache 82 podem enviar o conteúdo para cache remoto de proxy 80. O cache remoto de proxy 80 pode armazenar uma cópia do conteúdo e pode enviar o conteúdo para a memória de cache local 78.
[0100] As estatísticas 74 podem armazenar estatísticas associadas ao conteúdo e ao uso do mesmo. O cache remoto de proxy 80 pode utilizar as estatísticas para permitir o uso de algoritmos caching aperfeiçoados. O aperfeiçoamento de algoritmos de caching pode fornecer benefícios computacionais de outro modo obtidos pelo aumento de processamento, armazenamento e recursos de memória. As estatísticas 74 podem armazenar estatísticas sobre uso de cache com o passar do tempo em memória de cache local 78 e/ou memórias de cache locais de outros clientes. As estatísticas 74 podem compartilhar as estatísticas sobre uso de cache para um cliente com um cache remoto de proxy para um cliente diferente. Desse modo, um cliente que nunca usou antes conteúdo específico, pode ter acesso a estatísticas associadas ao conteúdo que foram anteriormente geradas para outro cliente.
[0101] A aplicação de operações com base no uso de conteúdo, metadados, e estatísticas, cada associada ao conteúdo, podem resultar em recomendações e/ou comandos enviados de camadas de servidor de gateway 42 para a memória de cache local 78 para melhorar a armazenamento de cache e algoritmos de caching localmente no dispositivo móvel. O cliente também pode receber solicitações para remover entradas de memória cache local 78 que não são mais válidas ou que são improváveis de serem utilizadas novamente.
[0102] O cliente pode reportar quaisquer atualizações de atividade de memória de cache local 78 para o servidor de gateway. O servidor de gateway pode atualizar entradas ou alterar atividade em cache remoto de proxy 80 para simular memória de cache local 78.
[0103] Faz-se referência à Figura 5, que é um fluxograma de um processo para utilizar a pluralidade de caches distribuídos da Figura 4 de acordo com uma modalidade da invenção. O processo inclui operações executadas por eventos/elementos 134 (por exemplo, fornecidos por operação de controles de entrada em um dispositivo móvel por um usuário), camadas de cliente 40, camadas de servidor de gateway 42, e camadas de servidor de aplicação 44. O processo descreve, em uma modalidade, camadas de servidor de gateway 42 que atualizam cache remoto de proxy 80 e camadas de clientes 40 atualizando memória cache local 78 em paralelo, por exemplo, para remover entrada inválida de cache que ocupam memória no dispositivo móvel.
[0104] Na operação 120, eventos/elementos 134 podem executar/operar um cliente. Por exemplo, eventos/elementos 134 podem incluir ligar um dispositivo móvel no qual o cliente está instalado, selecionar um programa que utiliza o cliente, conectar-se a uma rede (por exemplo, a Internet), ou diretamente selecionar executar o cliente.
[0105] Na operação 121, camadas de cliente 40 podem conectar-se a camadas de servidor de gateway 42. Por exemplo, o cliente pode fazer log-in (por exemplo, de acordo com a operação 106 da Figura 2B). Por exemplo, as camadas de cliente 40 podem autenticar ou enviar um identificador, como uma senha, código ou chave criptografada.
[0106] Na operação 122, as camadas de servidor de gateway 42 podem solicitar dados de camadas de servidor de aplicação 44. Os dados solicitados podem incluir, por exemplo, uma tela 1, incluindo elementos de tela 1 como dados, gráficos, etc.
[0107] Na operação 123, as camadas de servidor de aplicação 44 podem enviar a tela 1 para as camadas de servidor de gateway 42. As camadas de servidor de gateway 42 podem armazenar tela 1 em cache remoto de proxy 80 (por exemplo, uma cópia de memória cache local 78). As camadas de servidor de gateway 42 podem processar a tela 1 (por exemplo, para gerar metadados e/ou estatísticas relacionadas aos elementos de tela 1).
[0108] Na operação 124, as camadas de servidor de gateway 42 podem enviar a tela 1 para camadas de cliente 40. As camadas de cliente 40 podem armazenar a tela 1 na memória cache local 78.
[0109] Na operação 125, eventos/elementos 134 podem selecionar um link para a tela 2 da aplicação.
[0110] Na operação 126, camadas de cliente 40 podem solicitar a tela 2 das camadas de servidor de gateway 42.
[0111] Na operação 127, as camadas de servidor de gateway 42 podem solicitar a tela 2 das camadas de servidor de aplicação 44.
[0112] Na operação 128, as camadas de servidor de gateway 42 podem solicitar a tela 1 (pela segunda vez) das camadas de servidor de aplicação 44 para checar se a entrada de cache que corresponde às mesmas ainda é válida.
[0113] Na operação 129, as camadas de servidor de aplicação 44 podem enviar a tela 2 para as camadas de servidor de gateway 42. As camadas de servidor de gateway 42 podem armazenar a tela 2 em cache remota de Proxy 80. As camadas de servidor de gateway 42 podem processar a tela 2 (por exemplo, para gerar metadados e/ou estatísticas relacionadas aos elementos de tela 2).
[0114] Na operação 130, as camadas de servidor de gateway 42 podem enviar a tela 2 para as camadas de cliente 40. O cliente pode armazenar a tela 2 na memória cache local 78.
[0115] Na operação 131, as camadas de servidor de aplicação 44 podem enviar a tela 1 para as camadas de servidor de gateway 42.
[0116] Na operação 132, as camadas de servidor de gateway 42 podem comparar os dados da tela 1 armazenados no cache remoto de proxy 80 em operação 123 com os dados de tela 1 enviados na operação 131. Se os dois dados para a tela 1 não coincidirem, um processo pode prosseguir para a operação 133.
[0117] Na operação 133, as camadas de servidor de gateway 42 podem reportar para as camadas de cliente 40 deletar a entrada na memória cache local 78 para a qual a entrada, armazenada no cache remoto de proxy 80 na operação 123, é uma cópia.
[0118] Se os dois dados comparados na operação 132 coincidirem, nenhuma ação adicional é exigida.
Alternativamente, as camadas de servidor de gateway 42 podem reportar um sinal de confirmação para as camadas de cliente 40 para validar a entrada na memória de cache local 78 para a qual a entrada, armazenada no cache remoto de proxy 80 em operação 123, é uma cópia.
[0119] Faz-se referência à Figura 6, que é um fluxograma de tráfego de sinal para comunicar entre um dispositivo móvel e um servidor de gateway de acordo com uma modalidade da invenção. Sinais a partir do dispositivo móvel podem ser enviados através das camadas de cliente 40 e sinais a partir do servidor de gateway podem ser enviados através das camadas de servidor de gateway 42. Camadas de cliente 40 e camadas de servidor de gateway 42 conectam através de uma rede (por exemplo, rede 8 da Figura 1) sobre a qual os sinais podem ser enviados.
[0120] A comunicação pode ser bidirecional, isto é, alguns sinais são iniciados por camadas de cliente 40 e outros sinais são iniciados por camadas de servidor de gateway 42. Entretanto, nessa modalidade, somente camadas de cliente 40 podem iniciar uma conexão. Por exemplo, camadas de servidor de gateway 42 podem responder somente após as camadas de cliente 40 terem iniciado uma solicitação. A conexão pode ser adaptada para utilizar HTTP.
[0121] Na operação 136, as camadas de cliente 40 podem solicitar conectar-se às camadas de servidor de gateway 42 (por exemplo, utilizando uma conexão HTTP). Por exemplo, as camadas de cliente 40 podem enviar autenticação ou um identificador, como uma senha, código, ou chave criptografada.
[0122] Na operação 137, em reposta à solicitação, camadas de servidor de gateway 42 podem enviar uma identificação de sessão (ID) para camadas de cliente 40 utilizar cada vez que o cliente iniciar uma conexão. Em comunicações futuras a partir de camadas de cliente 40 para as camadas de servidor de gateway 42, camadas de cliente 40 podem utilizar a ID de sessão em vez de enviar repetidamente autenticação ou identificadores para cada comunicação.
[0123] Na operação 138, camadas de cliente 40 podem enviar uma solicitação vazia (por exemplo, não incluindo solicitação para conteúdo) para as camadas de servidor de gateway 42. As camadas de servidor de gateway 42 não respondem tipicamente a essa solicitação até que tenha conteúdo para enviar. Por exemplo, após algum tempo inativo ter passado, e as camadas de servidor de gateway 42 tiverem conteúdo para enviar dados para as camadas de cliente 40, um processo pode prosseguir para a operação 139.
[0124] Na operação 139, em resposta à solicitação vazia, as camadas de servidor de gateway 42 podem enviar conteúdo para as camadas de cliente 40.
[0125] As camadas de cliente 40 enviam solicitações vazias para as camadas de servidor de gateway 42, uma vez que, como nessa modalidade, somente camadas de cliente 40 podem iniciar uma conexão, camadas de servidor de gateway 42 não podem responder a menos que as camadas de cliente 40 façam primeiramente uma solicitação.
[0126] Na operação 140, as camadas de cliente 40 podem iniciar outra solicitação vazia para permitir que o servidor envie mais conteúdo.
[0127] Na operação 141, para permitir que as camadas de cliente 40 enviem dados para o servidor, uma nova conexão (por exemplo, HTTP) pode ser feita.
[0128] Na operação 142, as camadas de servidor de gateway 42 podem fechar imediatamente a conexão anterior aberta na operação 140. As camadas de servidor de gateway 42 podem utilizar a nova conexão iniciada na operação 141 para enviar sinais para as camadas de cliente 40.
[0129] Em algumas modalidades, alguns componentes na rede podem abandonar conexões inativas após um período de tempo predeterminado, por exemplo, um intervalo de espera. Tipicamente, intervalos de espera podem ser configurados e/ou automaticamente detectados. Para evitar um abandono inesperado em uma conexão, que pode interromper ou danificar sinais interinos, camadas de servidor de gateway 42 podem fechar conexão inativa após o intervalo de espera, antes das conexões serem de outro modo abandonadas por outros componentes na rede. Quando as camadas de servidor de gateway 42 fecham uma conexão, camadas de cliente 40 podem iniciar outra solicitação vazia para substancialmente manter sempre aberta uma conexão com camadas de servidor de gateway 42.
[0130] Quando camadas de servidor de gateway 42 têm múltiplos sinais para enviar para camadas de cliente 40, camadas de servidor de gateway 42 podem combinar os sinais em uma resposta (por exemplo, para reduzir largura de banda e latência). Camadas de servidor de gateway 42 podem espalhar ou retardar envio de sinais (por exemplo, por uma proporção curta de tempo) para sincronizar múltiplos sinais a serem combinados.
[0131] Em uma modalidade da invenção, um dispositivo, sistema e método são apresentados para comunicar utilizando um protocolo de transferência de hipertexto. O sistema pode incluir um servidor (por exemplo, servidor de gateway 22) para comunicar (por exemplo, através de camadas de servidor de gateway 42) com um ou mais clientes (por exemplo, através de camadas de cliente 40) e um cliente instalado em um dispositivo móvel (por exemplo, dispositivos móveis 2, 4 e/ou 6 da Figura 1). O cliente pode conectar-se ao servidor através de uma rede (por exemplo, redes 8 e/ou 28 da Figura 1) utilizando um protocolo de transferência de hipertexto. O cliente pode abrir uma nova conexão e enviar uma solicitação se nenhuma conexão estiver atualmente aberta de modo que o servidor possa sempre enviar dados. O cliente pode abrir conexões adicionais para enviar dados para o servidor sem esperar por uma resposta de uma conexão anterior. O cliente e/ou o servidor podem regular o número de conexões abertas simultâneas.
[0132] Faz-se referência à Figura 7, que é um fluxograma de um processo para detectar se um dispositivo móvel pode suportar duas ou mais conexões simultâneas com um servidor de gateway de acordo com uma modalidade da invenção. O protocolo de comunicação na Figura 7 pode ser combinado com o protocolo de comunicação na Figura 6 para suportar dispositivos móveis que somente suportam abrir uma conexão simultânea (por exemplo, e não mais do que uma). A aplicação do protocolo de comunicação descrito na Figura 6 a tal dispositivo móvel pode fazer com que a comunicação para e/ou do dispositivo móvel pare.
[0133] Alguns dispositivos móveis podem não suportar camadas de cliente 40 tendo duas ou mais conexões contínuas simultâneas (por exemplo, HTTP). Para estabelecer comunicação bidirecional adequada, deve ser determinado se as camadas de cliente 40 podem ter ou não duas ou mais conexões simultâneas.
[0134] Na operação 144, as camadas de cliente 40 podem solicitar conectar-se a camadas de servidor de gateway 42. Por exemplo, as camadas de cliente 40 podem enviar autenticação ou um identificador, como uma senha, código ou chave criptografada.
[0135] Na operação 145, em resposta à solicitação, as camadas de servidor de gateway 42 podem enviar uma ID de sessão para as camadas de cliente 40.
[0136] Na operação 146, as camadas de cliente 40 podem enviar uma solicitação vazia para as camadas de servidor de gateway 42. As camadas de servidor de gateway 42 tipicamente não respondem a essa solicitação até que tenha algum conteúdo para enviar.
[0137] Na operação 147, após algum tempo inativo ter passado, as camadas de cliente 40 podem solicitar outra conexão com as camadas de servidor de gateway 42. As camadas de cliente 40 podem enviar dados de camadas de servidor de Gateway 42. Nesse momento, o cliente pode iniciar um temporizador.
[0138] Se as camadas de cliente 40 não puderem ter duas ou mais conexões simultâneas, a segunda conexão pode esperar até que a primeira seja fechada. Se as camadas de cliente 40 puderem ter duas ou mais conexões simultâneas, um processo pode prosseguir de acordo com a(s) operação(ões) descritas com referência à Figura 6.
[0139] Na operação 148, em resposta à solicitação vazia, camadas de servidor de gateway 42 podem enviar conteúdo para as camadas de cliente 40. Quando as camadas de cliente 40 recebem essa resposta, as camadas de cliente 40 podem checar o temporizador iniciado na operação 147.
[0140] Se a contagem do temporizador for maior do que um tempo predeterminado, por exemplo, determinado pela latência de rede e/ou tempo de CPU, pode ser determinado que as camadas de servidor de gateway 42 não receberam a segunda solicitação para a segunda conexão (por exemplo, solicitada na operação 147) até que o servidor de gateway tivesse algum tempo de espera na primeira conexão ou tivesse informações para enviar para o cliente. Portanto, as camadas de cliente 40 não podem ter duas ou mais conexões simultâneas. Se as camadas de cliente 40 puderem ter duas conexões simultâneas, as camadas de servidor de gateway 42 teriam fechado a primeira conexão imediatamente após a solicitação para a segunda conexão (por exemplo, pós alguma latência de rede) como fez na operação 142 na Figura 6.
[0141] Se a contagem de temporizador for menor do que o tempo predeterminado, pode ser indeterminado se as camadas de cliente 40 podem ter ou não duas ou mais conexões simultâneas. A comunicação pode continuar normalmente até um momento posterior, por exemplo, quando as camadas de servidor de gateway 42 detectar duas conexões abertas simultâneas e parar a lógica de temporizador ou se as camadas de servidor de gateway 42 nunca detectaram duas conexões simultâneas, o temporizador eventualmente detecta a falta de suporte.
[0142] Após determinação do resultado, as camadas de cliente 40 e/ou as camadas de servidor de gateway 42 podem armazenar o resultado, por exemplo, para evitar reteste.
[0143] O que se segue descreve um processo para detectar que uma conexão, que é reportada para permitir que as camadas de cliente 40 enviem múltiplos sinais em sucessão sobre a mesma conexão (por exemplo, o HTTP1.1), em vez de somente suportar o envio de um sinal para cada conexão (por exemplo, o HTTP1.0).
[0144] O HTPP1.1 pode permitir que as camadas de cliente 40 enviem múltiplos sinais utilizando a mesma conexão. O HTTP 1.0 não permite que as camadas de cliente 40 enviem múltiplos sinais utilizando a mesma conexão. Em vez disso, o HTTP 1.0 abre uma nova conexão para cada solicitação das camadas de cliente 40. Quando as camadas de cliente 40 relatam suportar o HTTP 1.1 quando na realidade suportam o HTTP 1.0, muitas conexões novas podem ser abertas sem conhecimento. A variedade de novas conexões pode esgotar os recursos das camadas de cliente 40.
[0145] Para evitar isso, camadas de servidor de gateway 42 podem contar conexões e solicitações, por exemplo, bem como intervalos de tempo entre solicitações. Se, durante um período de tempo predefinido ou após atingir uma contagem de solicitações predefinida, camadas de servidor de gateway 42 detectar que o número de conexões é igual ao número de solicitações e que o tempo entre solicitações consecutivas está abaixo de um limite predeterminado, as camadas de servidor de gateway 42 podem concluir que as camadas de cliente 40 suportam o HTTP 1.1. se o servidor determinar que o HTTP 1.1 não possa ser utilizado, o servidor fecha cada conexão imediatamente após usar a mesma para enviar uma resposta. Desse modo, as camadas de servidor de gateway 42 podem liberar os recursos de camadas de cliente 40 a partir do emaranhado da variedade de conexões abertas por fechar a força cada conexão após enviar uma resposta para as camadas de cliente 40.
[0146] Em uma modalidade onde tanto as camadas de cliente 40 como as camadas de servidor de gateway 42 suportam o HTTP 1.1, porém a conexão passa através de um Proxy ou gateway que não suporta HTTP 1.1, por exemplo, porém somente o HTTP 1.0, as camadas de servidor de gateway 42 podem de modo semelhante fechar as conexões para evitar abandonos inesperados de conexão.
[0147] Em uma modalidade da invenção, um dispositivo, sistema, e método são apresentados para determinar se um cliente pode ter ou não duas ou mais conexões simultâneas utilizando um protocolo de transferência de hipertexto. O sistema pode incluir um servidor (por exemplo, servidor de gateway 22) para comunicar (por exemplo, através de camadas de cliente 40) com um ou mais clientes (por exemplo, através de camadas de cliente 40) e um cliente instalado em um dispositivo móvel (por exemplo, dispositivos móveis 2, 4 e/ou 6 da Figura 1). O cliente pode conectar-se ao servidor através de uma rede (por exemplo, redes 8 e/ou 28 da Figura 1) utilizando um protocolo de transferência de hipertexto. O cliente pode abrir uma primeira conexão, iniciar uma contagem de temporizador, e abrir uma segunda conexão simultânea. O servidor pode receber a primeira conexão, e responder à primeira conexão somente após a segunda conexão ser aberta. O cliente pode verificar a contagem de temporizador no momento de receber a resposta à primeira conexão. Se a contagem de temporizador exceder um limite predefinido, o cliente pode determinar que duas ou mais conexões simultâneas não possam ser suportadas.
[0148] Embora a invenção tenha sido descrita com relação a um número limitado de modalidades, será reconhecido que muitas variações, modificações e outras aplicações da invenção podem ser feitas. As modalidades da presente invenção podem incluir outros aparelhos para executar as operações da presente invenção. Tais aparelhos podem integrar os elementos discutidos, ou podem compreender componentes alternativos para realizar a mesma finalidade. Será reconhecido por pessoas versadas na técnica que as reivindicações anexas pretendem cobrir todas essas modificações e alterações como compreendidas no verdadeiro espírito da invenção.
REIVINDICAÇÕES

Claims (13)

1. Sistema para executar aplicações móveis a partir de um servidor compreendendo: um servidor (22, 24, 26) para executar aplicações; o servidor configurado para: receber uma requisição por conteúdo de um cliente instalado em um dispositivo móvel (2, 4, 6) pelo qual o dispositivo móvel é configurado para se comunicar e interagir com o servidor para obter acesso ao conteúdo fornecido pelo servidor, em que o servidor é configurado para receber parâmetros de dispositivo para o dispositivo móvel (2, 4, 6) a partir do cliente; recuperar conteúdo em resposta ao conteúdo recebido do cliente, caracterizado pelo fato de que o servidor é configurado para simular um dispositivo virtual (84) correspondente ao dispositivo móvel, em que o dispositivo virtual compreende um conjunto de estruturas de dados e/ou operações no servidor que agem como o dispositivo móvel e em que é configurado de acordo com alguns ou todos os parâmetros de dispositivo do dispositivo móvel correspondente; adaptar o conteúdo e os comandos recuperados para comportar com os parâmetros para o dispositivo virtual, e transmitir o conteúdo adaptado específico de dispositivo para uma ou mais camadas de cliente (40) utilizadas juntas a uma ou mais camadas de servidor de gateway (42) para comunicação entre o servidor e o dispositivo móvel, em que o servidor é ainda configurado para que as camadas do servidor (42) solicitem que as camadas do cliente (40) realizem certos testes no dispositivo móvel para obter as informações restantes para relatar às camadas do servidor (42) , em que as camadas do servidor (42) solicitam informações das camadas do cliente (40) para os parâmetros do dispositivo móvel no qual o cliente está instalado, até que as camadas do servidor (42) tenham informações suficientes para gerar um dispositivo virtual correspondente ao dispositivo móvel.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o servidor é ainda configurado para receber parâmetros de dispositivo para cada um dentre uma pluralidade de dispositivos móveis diferentes a partir de um cliente instalado em cada dos dispositivos móveis, e em que o servidor é ainda configurado para aplicar um algoritmo para converter automaticamente uma interface de usuário genérica a uma interface de usuário específica de dispositivo móvel de acordo com os parâmetros de dispositivo para cada um dentre a pluralidade de dispositivos móveis diferentes.
3. Sistema, de acordo com a reivindicação 2, caracterizado pelo fato de que um banco de dados de configuração de dispositivo é automaticamente gerado ou atualizado pelas camadas do servidor (42) para armazenar em memória dados parciais ou completos para perfis de dispositivos virtuais correspondentes aos dispositivos móveis.
4. Sistema, de acordo com a reivindicação 3, caracterizado pelo fato de que o servidor é configurado, ainda, tal que as camadas do servidor (42) recebem um identificador de dispositivo para o dispositivo móvel a partir das camadas dos clientes (40) e comparam o identificador de dispositivo com aqueles armazenados no banco de dados de configuração de dispositivo e as camadas do servidor (42) determinam se o identificador de dispositivo corresponde com um identificador de dispositivo armazenado no banco de dados de configuração do dispositivo e se o identificador de dispositivo corresponde, as camadas do servidor (42) recuperam da memória ou armazenamento os dados de perfil de dispositivo virtual completos ou parciais coincidindo com o dispositivo correspondente e se o identificador de dispositivo não corresponder, as camadas do servidor (42) atualizam o banco de dados de configuração de dispositivo, criando uma nova entrada para o identificador de dispositivo não correspondido incluindo novos dados de dispositivo virtual completos ou parciais correspondendo ao mesmo.
5. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que o servidor é ainda configurado para solicitar informações adicionais das camadas do cliente (40) e as informações adicionais são relatadas das camadas do cliente (40) para as camadas do servidor (42) e as camadas do servidor atualizam automaticamente o banco de dados de configuração do dispositivo, com as novas informações do dispositivo móvel e / ou do dispositivo virtual correspondente.
6. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que os parâmetros do dispositivo transmitidos compreendem pelo menos um dentre: a resolução da tela, software ou mais programas instalados no dispositivo móvel, sistema operacional do dispositivo móvel, memória disponível, bibliotecas disponíveis, dispositivos de entrada / saída disponíveis, como alto-falantes ou uma tela de cristal líquido (LCD), uma correspondência dos controles do usuário no dispositivo, como teclas do teclado, localização na rotação da tela de toque ou localização de uma roda de clique e sinais de comando executados nos mesmos.
7. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que, em resposta à solicitação de dispositivos móveis (2, 4, 6) para um servidor de gateway (22), por conteúdo, o servidor de gateway (22) está configurado para enviar uma solicitação para o conteúdo a um servidor de aplicativos (24) e o servidor de aplicativos (24) está configurado para enviar uma solicitação para o conteúdo a um servidor de origem de conteúdo (26).
8. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que, em resposta à solicitação, o servidor de origem do conteúdo (26) está configurado para enviar ao servidor de aplicativos (24) o conteúdo solicitado em que o conteúdo é solicitado e / ou fornecido por meio de, por exemplo, protocolos da web padrão, interface de programação de aplicativos (API).
9. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende um cache operado pelo cliente e localizado no dispositivo móvel para armazenar dados localmente, em que o servidor é ainda configurado para conectar-se ao dispositivo móvel por meio de uma rede e fornecer recursos adicionais para gerenciar dados armazenados localmente no dispositivo móvel para complementar os recursos do dispositivo móvel.
10. Sistema, de acordo com a reivindicação 9, caracterizado pelo fato de que o servidor compreende ainda um banco de dados armazenando estatísticas em que o servidor é ainda configurado para usar as estatísticas para aplicar um algoritmo para gerenciar o cache.
11. Método para executar aplicações móveis a partir de um servidor compreendendo: executar aplicativos em um servidor (22, 24, 26), em que o servidor em uma primeira etapa, recebe uma solicitação de conteúdo de um cliente instalado em um dispositivo móvel (2,4,6), em que o dispositivo móvel é configurado para se comunicar e interagir com o servidor para obter acesso ao conteúdo fornecido pelo servidor; em uma segunda etapa, recebe do cliente parâmetros do dispositivo móvel (2, 4, 6); em uma terceira etapa, recupera o conteúdo em resposta à solicitação de conteúdo recebida do cliente, caracterizado pelo fato de que o servidor em uma quarta etapa, simula um dispositivo virtual (84) correspondente ao dispositivo móvel, em que o dispositivo virtual compreende um conjunto de estruturas de dados e / ou operações no servidor que atua como o dispositivo móvel e que é configurado de acordo com alguns ou todos os parâmetros do dispositivo móvel correspondente; em uma quinta etapa, adapta o conteúdo e os comandos recuperados para se adequar aos parâmetros do dispositivo virtual e em uma sexta etapa, transmite o conteúdo adaptado específico do dispositivo para uma ou mais camadas de cliente (40) usadas em conjunto com uma ou mais camadas de servidor (42) para a comunicação entre o servidor e o dispositivo móvel, em que o servidor solicita informações adicionais a partir das camadas do cliente (40) e as informações adicionais são relatadas das camadas do cliente (40) para as camadas do servidor (42) e as camadas do servidor (42) atualizam automaticamente o banco de dados de configuração do dispositivo com as novas informações do dispositivo móvel e/ou do dispositivo virtual correspondente.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende ainda: receber parâmetros de dispositivo para uma pluralidade de diferentes dispositivos móveis; aplicar um algoritmo aos parâmetros de dispositivo recebidos para converter automaticamente uma interface de usuário genérica em uma interface de usuário específica de dispositivo móvel para cada um dos vários dispositivos móveis diferentes; e armazenar os parâmetros do dispositivo recebido e as interfaces de usuário específicas do dispositivo móvel convertidas em um banco de dados de configuração do dispositivo.
13. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que os parâmetros do dispositivo transmitidos compreendem pelo menos um dentre: a resolução da tela, o software ou mais programas instalados no dispositivo móvel, o sistema operacional do dispositivo móvel, memória disponível, bibliotecas disponíveis, dispositivos de entrada / saída disponíveis como alto-falantes ou uma tela de cristal líquido (LCD), uma correspondência de controles do usuário no dispositivo, como teclas do teclado, localização na rotação da tela de toque ou localização de uma roda de clique e sinais de comando executados no mesmo.
BRPI0914015-8A 2008-10-06 2009-10-01 Sistema compreendendo servidor e método para executar aplicativos em um servidor BRPI0914015B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/246,078 US8213924B2 (en) 2008-10-06 2008-10-06 Providing distributed online services for mobile devices
US12/246,078 2008-10-06
PCT/IL2009/000952 WO2010041244A1 (en) 2008-10-06 2009-10-01 Device, system and method for providing distributed online services

Publications (2)

Publication Number Publication Date
BRPI0914015A2 BRPI0914015A2 (pt) 2015-10-27
BRPI0914015B1 true BRPI0914015B1 (pt) 2020-03-17

Family

ID=42076182

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0914015-8A BRPI0914015B1 (pt) 2008-10-06 2009-10-01 Sistema compreendendo servidor e método para executar aplicativos em um servidor

Country Status (5)

Country Link
US (2) US8213924B2 (pt)
EP (2) EP2347338B1 (pt)
BR (1) BRPI0914015B1 (pt)
RU (1) RU2534966C2 (pt)
WO (1) WO2010041244A1 (pt)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305700B2 (en) 2002-01-08 2007-12-04 Seven Networks, Inc. Secure transport for mobile communication network
US8990366B2 (en) * 2003-12-23 2015-03-24 Intel Corporation Method and apparatus for remote modification of system configuration
US8924522B2 (en) 2003-12-23 2014-12-30 Intel Corporation Method and apparatus for remote modification of system configuration setting
US7797001B2 (en) * 2004-04-01 2010-09-14 Avaya Inc. Location-based command execution for mobile telecommunications terminals
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
EP2341990A4 (en) * 2008-11-05 2015-02-11 Ericsson Telefon Ab L M METHOD AND ARRANGEMENT FOR ACTIVATING GAMES IN A COMMUNICATION NETWORK
US8644173B1 (en) * 2009-01-30 2014-02-04 Sprint Communications Company L.P Managing requests in a wireless system
EP2497293A4 (en) * 2009-11-06 2013-06-05 Ericsson Telefon Ab L M METHOD AND APPARATUS FOR PREFERRED CACHE MEMORY IN A TELECOMMUNICATION SYSTEM
CA2778215C (en) * 2009-12-01 2017-07-04 Vantrix Corporation System and methods for efficient media delivery using cache
US8990427B2 (en) 2010-04-13 2015-03-24 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US9385938B2 (en) 2010-06-22 2016-07-05 Blackberry Limited Information distribution in a wireless communication system
US8570962B2 (en) * 2010-06-22 2013-10-29 Blackberry Limited Information selection in a wireless communication system
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
US9043433B2 (en) 2010-07-26 2015-05-26 Seven Networks, Inc. Mobile network traffic coordination across multiple applications
EP2442531A1 (en) * 2010-10-12 2012-04-18 Thomson Licensing Transmitting information
US20120150993A1 (en) * 2010-10-29 2012-06-14 Akamai Technologies, Inc. Assisted delivery of content adapted for a requesting client
US8417823B2 (en) 2010-11-22 2013-04-09 Seven Network, Inc. Aligning data transfer to optimize connections established for transmission over a wireless network
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
GB2505103B (en) 2011-04-19 2014-10-22 Seven Networks Inc Social caching for device resource sharing and management cross-reference to related applications
US20120278431A1 (en) 2011-04-27 2012-11-01 Michael Luna Mobile device which offloads requests made by a mobile application to a remote entity for conservation of mobile device and network resources and methods therefor
CN102843251B (zh) * 2011-06-22 2016-03-30 华为终端有限公司 管理终端的方法和装置
US8707289B2 (en) 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US8874131B2 (en) * 2011-08-23 2014-10-28 Qualcomm Incorporated Providing location related information for a structure to mobile stations
US20130110636A1 (en) * 2011-11-02 2013-05-02 Ross Bott Intelligent placement and delivery of mobile advertisements and electronic coupons via a distributed system in a mobile network
EP2789138B1 (en) 2011-12-06 2016-09-14 Seven Networks, LLC A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
US9277443B2 (en) 2011-12-07 2016-03-01 Seven Networks, Llc Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
GB2498064A (en) 2011-12-07 2013-07-03 Seven Networks Inc Distributed content caching mechanism using a network operator proxy
WO2013090212A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Mobile network reporting and usage analytics system and method using aggregation of data in a distributed traffic optimization system
EP2795448A4 (en) 2011-12-23 2015-08-12 Airstrip Ip Holdings Llc SYSTEMS AND METHODS FOR DEVELOPING MULTIPLATEFORM APPLICATIONS FOR COMPUTER DEVICES
US20130232229A1 (en) * 2012-03-02 2013-09-05 Ilya Firman Distribution of Application Files
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US9069627B2 (en) * 2012-06-06 2015-06-30 Synactive, Inc. Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
US9183012B2 (en) 2012-06-22 2015-11-10 Microsoft Technology Licensing, Llc Adaptive rendering based on runtime capability check
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
JP6102108B2 (ja) * 2012-07-24 2017-03-29 富士通株式会社 情報処理装置、データ提供方法、及びデータ提供プログラム
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
US9081826B2 (en) * 2013-01-07 2015-07-14 Facebook, Inc. System and method for distributed database query engines
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9635053B2 (en) * 2013-02-21 2017-04-25 Samsung Electronics Co., Ltd. Computing system with protocol protection mechanism and method of operation thereof
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
CN105637919A (zh) 2013-06-11 2016-06-01 七网络有限责任公司 优化无线网络中的保活和其他后台流量
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US10091329B2 (en) * 2015-06-30 2018-10-02 Amazon Technologies, Inc. Device gateway
US10523537B2 (en) 2015-06-30 2019-12-31 Amazon Technologies, Inc. Device state management
US10075422B2 (en) 2015-06-30 2018-09-11 Amazon Technologies, Inc. Device communication environment
US10958648B2 (en) 2015-06-30 2021-03-23 Amazon Technologies, Inc. Device communication environment
US20170064028A1 (en) * 2015-08-26 2017-03-02 Futurewei Technologies, Inc. Quality of Service Enabled Content Routing Method and Apparatus for Information Centric Networking
US10909146B2 (en) 2015-12-07 2021-02-02 Microsoft Technology Licensing, Llc Providing automated hashtag suggestions to categorize communication
US10984460B2 (en) 2016-10-14 2021-04-20 Under Armour, Inc. Medium, method and apparatus for native page generation
CN111107394A (zh) * 2019-12-25 2020-05-05 北京恒泰实达科技股份有限公司 一种跨平台集成视频流的系统及方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742047B1 (en) * 1997-03-27 2004-05-25 Intel Corporation Method and apparatus for dynamically filtering network content
US6509913B2 (en) * 1998-04-30 2003-01-21 Openwave Systems Inc. Configurable man-machine interface
US6684087B1 (en) * 1999-05-07 2004-01-27 Openwave Systems Inc. Method and apparatus for displaying images on mobile devices
US20020112078A1 (en) * 1999-12-03 2002-08-15 David Yach Virtual machine web browser
US6363249B1 (en) * 2000-04-10 2002-03-26 Motorola, Inc. Dynamically configurable datagram message communication system
US8463912B2 (en) * 2000-05-23 2013-06-11 Media Farm, Inc. Remote displays in mobile communication networks
KR100460276B1 (ko) * 2000-06-10 2004-12-04 유미특허법인 인터넷 서비스 장치 및 서비스 방법
US20020111995A1 (en) 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
NO316006B1 (no) * 2001-10-08 2003-11-24 Ericsson Telefon Ab L M Plassbesparende fil-håndtering i servere
JP4189627B2 (ja) * 2002-04-24 2008-12-03 富士フイルム株式会社 画像サーバ並びに画像表示システム
US8549114B2 (en) * 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
US7206807B2 (en) * 2003-01-21 2007-04-17 Bea Systems, Inc. Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client
US7409454B2 (en) * 2003-06-02 2008-08-05 Microsoft Corporation Automatic detection of intermediate network device capabilities
US20050188056A1 (en) * 2004-02-10 2005-08-25 Nokia Corporation Terminal based device profile web service
US20050220080A1 (en) * 2004-04-01 2005-10-06 Nokia Corporation System, method, computer program product, and business method for device group management using virtual device domain
US20060031520A1 (en) * 2004-05-06 2006-02-09 Motorola, Inc. Allocation of common persistent connections through proxies
US7533176B2 (en) * 2004-07-14 2009-05-12 International Business Machines Corporation Method for supporting connection establishment in an offload of network protocol processing
GB2417396A (en) * 2004-08-18 2006-02-22 Wecomm Ltd Internet protocol having session identifier for mobile device internet access
US20070061488A1 (en) * 2004-09-20 2007-03-15 Trilibis Inc. System and method for flexible user interfaces
US7647076B1 (en) * 2004-11-12 2010-01-12 Funmobility, Inc. Displaying customized images on a wireless device
US8023937B2 (en) 2005-03-04 2011-09-20 Qualcomm Incorporated Apparatus and methods for determining voice and/or data processing performance of a wireless device
KR100765770B1 (ko) * 2006-01-23 2007-10-15 삼성전자주식회사 가상 장치를 이용한 휴대용 기기의 데이터 관리 방법, 장치및 사용자 인터페이스 방법
US7734583B2 (en) * 2006-04-18 2010-06-08 Research In Motion Limited Transparent virtual machine for mobile applications
US8064434B2 (en) * 2006-06-28 2011-11-22 T-Jat Systems 2006 Ltd. Method for providing internet services to a telephone user
US7783773B2 (en) * 2006-07-24 2010-08-24 Microsoft Corporation Glitch-free media streaming
US20080075049A1 (en) * 2006-09-27 2008-03-27 Motorola, Inc. Thin client wireless communication device
WO2008047919A1 (en) * 2006-10-20 2008-04-24 Nec Corporation Portable terminal, server, and method for realizing function of portable terminal using network
US20080114882A1 (en) * 2006-11-13 2008-05-15 David Alan Christenson Multiplexing Multiple Client Connections in a Single Socket
US8060074B2 (en) * 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US8024407B2 (en) * 2007-10-17 2011-09-20 Citrix Systems, Inc. Methods and systems for providing access, from within a virtual world, to an external resource
US8832286B2 (en) * 2007-11-12 2014-09-09 International Business Machines Corporation Method and system for controlling client access to a server application

Also Published As

Publication number Publication date
EP2347338B1 (en) 2018-04-25
EP2741474A1 (en) 2014-06-11
US8213924B2 (en) 2012-07-03
US9237207B2 (en) 2016-01-12
BRPI0914015A2 (pt) 2015-10-27
WO2010041244A1 (en) 2010-04-15
EP2347338A4 (en) 2012-08-15
EP2741474B1 (en) 2019-01-16
US20100087179A1 (en) 2010-04-08
RU2011116683A (ru) 2012-12-10
US20110320614A1 (en) 2011-12-29
EP2347338A1 (en) 2011-07-27
RU2534966C2 (ru) 2014-12-10

Similar Documents

Publication Publication Date Title
BRPI0914015B1 (pt) Sistema compreendendo servidor e método para executar aplicativos em um servidor
US10621329B2 (en) Mobile application, resource management advice
CA2773318C (en) Cache server with extensible programming framework
JP5646650B2 (ja) ウェブアプリケーションのリアルタイム検証
US9071570B2 (en) Method and apparatus to select and deliver portable portlets
US9298747B2 (en) Deployable, consistent, and extensible computing environment platform
US8438622B2 (en) Methods and apparatus for authorizing access to data
US8387140B2 (en) Method and apparatus for controlling access to encrypted network communication channels
EP2355447A2 (en) Secure and automated credential information transfer mechanism
US20130219006A1 (en) Multiple media devices through a gateway server or services to access cloud computing service storage
US20110231482A1 (en) Automated Optimization Based On Determination Of Website Usage Scenario
EP2895981B1 (en) System and method for sharing login status between an application platform and an application
US20140075521A1 (en) System and method for sharing login status between an application platform and an application
CN109542862A (zh) 用于控制文件系统的挂载的方法、装置和系统
CN106411880A (zh) 一种游戏数据的安全加密、解密方法和加密、解密装置
US20230385454A1 (en) Cryptographically secure dynamic third party resources
US9378178B1 (en) Enhancing HTTP caching by allowing content sharing of data blocks across resources identified by different uniform resource locators
WO2019052170A1 (zh) 实现用户免登录的方法、装置、设备、计算机存储介质
US8959216B2 (en) Channel manager for accessing elements for a secure web page through a non-secure channel
US20220300478A1 (en) Competing updates from multiple servicing instances
US11609916B1 (en) Robotics application development and monitoring over distributed networks
JP2009128921A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: FACEBOOK, INC. (US)

B06T Formal requirements before examination [chapter 6.20 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 17/03/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 12A 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 2640 DE 10-08-2021 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.