BR102012030997A2 - Continuação de contexto de navegação através de múltiplos dispositivos - Google Patents

Continuação de contexto de navegação através de múltiplos dispositivos Download PDF

Info

Publication number
BR102012030997A2
BR102012030997A2 BR102012030997-1A BR102012030997A BR102012030997A2 BR 102012030997 A2 BR102012030997 A2 BR 102012030997A2 BR 102012030997 A BR102012030997 A BR 102012030997A BR 102012030997 A2 BR102012030997 A2 BR 102012030997A2
Authority
BR
Brazil
Prior art keywords
network
session data
data
updated session
client
Prior art date
Application number
BR102012030997-1A
Other languages
English (en)
Other versions
BR102012030997A8 (pt
Inventor
Arnaud Claude Weber
Alex Neely Ainslie
Roma Rajni Shah
Glen Murphy
Original Assignee
Google 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 Google Inc filed Critical Google Inc
Publication of BR102012030997A2 publication Critical patent/BR102012030997A2/pt
Publication of BR102012030997A8 publication Critical patent/BR102012030997A8/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L67/148Migration or transfer of sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

CONTINUAÇÃO DE CONTEXTO DE NAVEGAÇÃO ATRAVÉS DE MÚLTIPLOS DISPOSITIVOS. A presente invenção refere-se a configurações para sincronização automática de dados do navegador a partir de um cliente da rede de computador de mesa (por exemplo, um navegador da rede do computador de mesa) com um cliente da rede em um dispositivo móvel. Em particular, dados de sessão incluindo dados de histórico de navegação de uma ou mais páginas da rede visitadas no cliente da rede de computador de mesa podem ser sincronizadas com um dispositivo móvel. Inicialmente, dados de sessão a partir do cliente da rede de computador de mesa pode ser recebidos através de uma rede. Em algumas configurações, uma notificação pode então ser transmitida para um dispositivo móvel para indicar que dados de sessão estão disponíveis para sincronização com um cliente de rede móvel no dispositivo móvel. Então, os dados de sessão são transmitidos para o cliente da rede móvel. No dispositivo móvel, os dados de sessão recebidos podem ser exibidos em uma janela da cliente da rede móvel.

Description

Relatório Descritivo da Patente de Invenção para "CONTINUA- ÇÃO DE CONTEXTO DE NAVEGAÇÃO ATRAVÉS DE MÚLTIPLOS DIS- POSITIVOS".
ANTECEDENTES
Em um dado cliente da Rede (por exemplo, um navegador da
Rede), o conteúdo da Rede pode ser exibido no cliente da Rede. Por exem- plo, o conteúdo da Rede pode incluir uma mistura de texto e gráficos (por exemplo, imagens ou fotográficas, etc.). Diferentes clientes da Rede estão disponíveis para exibir conteúdo da rede. Por exemplo, um cliente da Rede 10 de computador de mesa pode exibir conteúdo da Rede. Em outro exemplo, um cliente da Rede móvel em um dispositivo móvel pode exibir conteúdo da Rede.
SUMÁRIO
A tecnologia em questão proporciona automaticamente sincroni- 15 zar dados de sessão a partir de um ou mais clientes da Rede. A tecnologia em questão determina se dados da sessão atualizados a partir de um ou mais clientes da Rede estão atualizados. Os dados de sessão atualizados indicam atividade de navegação no um ou mais clientes da Rede e incluem dados de elemento do formulário da página da Rede baseados na entrada 20 do usuário. A tecnologia em questão então recebe dados de sessão atuali- zados a partir do um ou mais clientes da Rede através de uma rede se os dados de sessão atualizados estiverem disponíveis.
A tecnologia em questão adicionalmente proporciona armazenar dados de sessão a partir de um ou mais clientes da Rede para sincronização 25 com um primeiro cliente da Rede. A tecnologia em questão determina se dados de sessão atualizados estão disponíveis no um ou mais clientes da Rede nos quais os dados de sessão atualizados incluem dados de elemento de formulário da página da Rede baseados na entrada do usuário. Então, a tecnologia em questão transmite uma solicitação para os dados de sessão 30 atualizados se os dados de sessão atualizados estiverem disponíveis. Então, os dados de sessão atualizados são recebidos a partir do um ou mais clien- tes da Rede. A tecnologia em questão então armazena os dados de sessão atualizados.
Ainda outro aspecto da tecnologia em questão proporciona um sistema para automaticamente sincronizar dados de sessão a partir de um ou mais clientes da Rede. O sistema inclui memória, um ou mais processa- dores e um ou mais módulos armazenados na memória e configurados para execução pelo um ou mais processadores. O sistema inclui um módulo de monitoramento de sessão configurado para determinar se dados de sessão atualizados estão disponíveis no um ou mais clientes da Rede nos quais os dados de sessão atualizados indicam atividade de navegação no um ou mais clientes da Rede e incluem dados de elemento de formulário de página da Rede baseados na entrada do usuário. O sistema adicionalmente inclui um módulo de notificação configurado para transmitir uma notificação para um primeiro cliente da Rede se os dados de sessão atualizados estiverem disponíveis. Adicionalmente, o sistema inclui um módulo de sincronização configurado para transmitir os dados de sessão atualizados através de uma rede para o primeiro cliente da Rede.
A tecnologia em questão adicionalmente proporciona determina- ção de se dados de sessão atualizados estão disponíveis em um ou mais clientes da Rede nos quais os dados de sessão atualizados incluem dados 20 de elemento de formulário de página da Rede baseados na entrada do usuá- rio. A tecnologia em questão transmite uma solicitação para os dados de sessão atualizados se os dados de sessão atualizados estiverem disponí- veis. Os dados de sessão atualizados são então recebidos a partir do um ou mais clientes da Rede. A tecnologia em questão armazena os dados de ses- 25 são atualizados. Adicionalmente, a tecnologia em questão transmite os da- dos de sessão atualizados através de uma rede para o primeiro cliente da Rede.
É entendido que outras configurações da tecnologia em questão irão se tornar aparentes para os versados na técnica a partir da descrição detalhada seguinte, onde várias configurações da tecnologia em questão são apresentadas e descritas a título de ilustração. Como será percebido, a tecnologia em questão é capaz de outras e diferentes configurações e seus vários detalhes são capazes de modificação em relação a vários outros as- pectos, todos sem afastamento do escopo da tecnologia em questão. Por conseqüência, os desenhos e a descrição detalhada são para ser conside- rados ilustrativos por natureza e não restritivos.
BREVE DESCRICÃO DOS DESENHOS
Os novos aspectos da tecnologia em questão são expostos nas reivindicações anexas. Entretanto, para propósito de explicação, várias con- figurações da tecnologia em questão são expostos nas figuras seguintes.
A figura 1 conceitualmente ilustra um processo ilustrativo para automaticamente sincronizar dados de sessão a partir de um cliente da Re- de de computador de mesa com um dispositivo móvel.
A figura 2 conceitualmente ilustra um processo ilustrativo para armazenar dados de sessão a partir de um cliente da Rede de computador de mesa para sincronização com um cliente da Rede móvel.
A figura 3 conceitualmente ilustra uma interface gráfica com o
usuário na qual algumas configurações da tecnologia em questão podem ser implementadas.
A figura 4 conceitualmente ilustra um ambiente de computação
ilustrativo.
A figura 5 conceitualmente ilustra uma arquitetura de interface
de programação de aplicativos (API) ilustrativa.
A figura 6 é um exemplo de uma arquitetura de dispositivo mó- vel.
A figura 7 conceitualmente ilustra um sistema com o qual algu- mas implementações da tecnologia em questão podem ser implementadas. DESCRICÃO DETALHADA
A descrição detalhada exposta abaixo é pretendida como uma descrição de várias configurações da tecnologia em questão e não é preten- dida para representar as únicas configurações nas quais a tecnologia em 30 questão pode ser praticada. Os desenhos anexos são incorporados neste documento e constituem parte da descrição detalhada. A descrição detalha- da inclui detalhes específicos para o propósito de proporcionar um entendi- mento completo da tecnologia em questão. Entretanto, será claro e aparente para os versados na técnica que a tecnologia em questão não está limitada aos detalhes específicos expostos neste documento e podem ser praticados sem estes detalhes específicos. Em alguns casos, estruturas e componentes 5 bem conhecidos são apresentados em forma de diagrama de blocos de mo- do a evitar obscurecer os conceitos da tecnologia em questão.
A tecnologia em questão proporciona sincronização automatiza- da de dados de navegador a partir de um cliente da Rede de computador de mesa (por exemplo, um navegador da Rede do computador de mesa) para 10 um cliente da Rede em um dispositivo móvel. Durante uma sessão com um cliente da Rede de computador de mesa, um usuário pode interagir com o cliente da Rede de computador de mesa por navegar para uma ou mais pá- ginas diferentes nas quais uma ou mais janelas com guias podem exibir as páginas mencionadas acima. O usuário em um exemplo submete solicita- 15 ções de pesquisa para um mecanismo de pesquisa e os itens do resultado da pesquisa podem ser exibidos pelo cliente da Rede de computador de me- sa em uma janela com guias correspondente. Subsequentemente, o usuário pode abrir um dos itens do resultado da pesquisa em uma janela com guias diferente. Em alguns casos, o usuário pode desejar ter o estado da sessão 20 incluindo a atividade da janela com guias sincronizada com outro dispositivo, tal como um cliente da Rede móvel (por exemplo, um navegador da Rede do móvel) em um dispositivo móvel (por exemplo, telefone celular, smartphone, tablet, etc.). Entretanto, os dados da sessão de um usuário para a atividade da janela com guias de páginas da Rede visitadas a partir do cliente da Re- 25 de de computador de mesa não são facilmente sincronizados com um cliente da Rede móvel de modo que o cliente da Rede móvel pode exibir novamente a atividade da janela com guias (por exemplo, a partir da sessão no cliente da Rede de computador de mesa).
Para endereçar a questão (questões) mencionada acima, é pro- porcionado um processo para sincronizar dados de sessão a partir de um cliente da Rede de computador de mesa com um dispositivo móvel. Em um exemplo, o dispositivo móvel pode subscrever para receber notificações a partir de um servidor de notificações quando atualizações para os dados de sessão do cliente da Rede de computador de mesa ocorrerem (por exemplo, à medida que o usuário navega páginas da Rede diferentes). Por exemplo, à medida que o usuário interage com o cliente da Rede de computador de me- 5 sa por navegar para uma ou mais páginas da Rede, o cliente da Rede de computador de mesa pode transmitir dados de sessão atualizados para um servidor remoto (por exemplo, servidor de armazenamento) para armazena- mento. O servidor de notificações de algumas configurações rastreia atuali- zações para os dados de sessão no servidor remoto e pode periodicamente 10 transmitir uma ou mais notificações para o dispositivo móvel indicando que dados de sessão atualizados estão disponíveis. Então, o dispositivo móvel pode receber os dados de sessão atualizados a partir do servidor remoto após receber a notificação. Quando um cliente da Rede móvel é ativado no dispositivo móvel, os dados de sessão atualizados estão disponíveis (por 15 exemplo, em uma ou mais janelas com guias) no cliente da Rede móvel para o usuário acessar. Os dados de sessão atualizados podem incluir o histórico de navegação de páginas da Rede visitadas a partir do cliente da Rede de computador de mesa.
Em adição aos dados descritos acima, a tecnologia em questão pode incluir tipos adicionais de dados para sincronizar os dados no contexto ou sessão de navegação com o dispositivo móvel. Por exemplo, dados para elementos de formulário de página da Rede persistentes podem ser sincro- nizados. Em um exemplo, uma pesquisa da Rede pode ser executada em um mecanismo de pesquisa da Rede no cliente da Rede de computador de mesa (por exemplo, pela informação de uma ou mais palavras-chave de so- licitação de pesquisa em um elemento do formulário caixa de texto em uma página da Rede do mecanismo de pesquisa da Rede). Uma ou mais pala- vras chave de solicitação de pesquisa informadas em um elemento do for- mulário caixa de texto na página da rede do mecanismo de pesquisa da rede pode então ser sincronizada com o dispositivo móvel de modo que o ele- mento do formulário caixa de texto na página da Rede do mecanismo de pesquisa da Rede apresentado no dispositivo móvel é automaticamente pre- enchido com as mesmas palavras-chave (por exemplo, como informadas no cliente da Rede de computador de mesa). Adicionalmente, outros tipos de dados incluindo referências para documentos, senhas / dados de preenchi- mento automático, dados da omnibox (por exemplo, estatísticas sobre URLs 5 digitados, consultas anteriores, etc.), campos de texto, áreas de texto, menu suspenso de seleção, etc., podem ser sincronizados com o dispositivo mó- vel. Outros tipos de dados não especificamente mencionados neste docu- mento podem ser sincronizados com o dispositivo móvel e ainda estarem dentro do escopo da tecnologia em questão.
Apesar de o exemplo acima descrever sincronizar dados de ses-
são a partir do cliente da Rede de computador de mesa com o cliente da Rede móvel, deve ser entendido que dados de sessão poderiam ser sincro- nizados entre um ou mais clientes da Rede. Por exemplo, dados de sessão a partir de um cliente da Rede móvel poderiam ser sincronizados com um 15 cliente da Rede de computador de mesa de uma maneira similar à descrita acima. Adicionalmente, um cliente da Rede móvel e/ou cliente da Rede de computador de mesa pode ser sincronizado com um ou mais outros clientes da Rede (por exemplo, um ou mais clientes da Rede de computadores de mesa, um ou mais clientes da Rede móveis, etc.). Além disso, em algumas 20 configurações, uma notificação não é transmitida para o dispositivo móvel pára indicar dados de sessão atualizados. Ao invés disso, o dispositivo mó- vel pode solicitar os dados de sessão atualizados (se houverem) a partir do servidor de armazenamento remoto. Em algumas configurações, o servidor de armazenamento remoto e o servidor de notificações são implementados 25 como um único servidor para comunicação com o dispositivo móvel e/ou com o cliente da Rede de computador de mesa.
A figura 1 conceitualmente ilustra um processo ilustrativo 100 para automaticamente sincronizar dados de sessão a partir de um ou mais clientes da Rede. Em um exemplo, o processo 100 pode ser implementado 30 por um dispositivo móvel para sincronizar dados de sessão a partir de um cliente da Rede computado de mesa e/ou outros clientes da Rede. Em al- gumas configurações, o processo 100 executa as operações descritas abai- xo em uma base periódica para sincronizar dados de sessão. Por exemplo, o processo 100 pode detectar que dados de sessão atualizados a partir do um ou mais clientes da Rede estão disponíveis para atualização de um cliente da Rede móvel sendo executado no dispositivo móvel.
O processo 100 começa em 105 por determinar se dados de
sessão atualizados a partir do um ou mais clientes da Rede estão disponí- veis. Em um exemplo, os dados de sessão atualizados estão disponíveis quando r;ecebendo uma notificação dos dados de sessão atualizados a partir de um servidor de notificações. O servidor de notificações pode ser um ser- 10 vidor remoto através de uma rede que monitora os dados de sessão a partir do cliente de Rede de computador de mesa. A determinação de se dados de sessão atualizados estão disponíveis pode ocorrer após o cliente da Rede móvel ser ativado. O cliente da Rede móvel em um exemplo é um navegador da Rede do móvel. Os dados de sessão atualizados incluem dados de histó- 15 rico de navegação de uma ou mais páginas da Rede visitadas em um clien- te(s) da Rede de computador de mesa. Adicionalmente, os dados de sessão atualizados podem incluir dados de referência de página (por exemplo, um Identificador de Recurso Uniforme localmente armazenado) correspondendo a um ou mais sites da Rede (por exemplo, como armazenados pelo clien- 20 te(s) da Rede de computador de mesa). Os dados de sessão atualizados também podem incluir dados de janela de guia (ou outros dados da janela) a partir de um cliente(s) da Rede de computador de mesa (ou qualquer outro cliente da Rede). Em algumas configurações, os dados da guia especificam um Iocalizador de recurso universal indicando uma localização de um recur- 25 so. O recurso pode incluir conteúdo da Rede, dados de imagem, áudio, ví- deo, etc. Em um exemplo, os dados de sessão atualizados incluem dados do elemento de formulário da página da Rede baseados na entrada do usuário (por exemplo, quando um usuário proporciona entrada para um elemento de formulário caixa de texto como discutido acima).
Como mencionado acima, outros tipos de dados podem estar in-
cluídos nos dados de sessão atualizados e ainda estarem dentro do escopo da tecnologia em questão. Por exemplo, dados para elementos do formulário da página da Rede persistentes, uma ou mais referências para páginas, se- nhas/dados de preenchimento automático, dados omnibox (por exemplo, estatísticas sobre URLs digitadas, consultas anteriores, etc.), campos de texto, áreas de texto, menus instantâneos de seleção, etc., podem ser sin- 5 cronizados com o dispositivo móvel. Outros tipos de dados não especifica- mente mencionados neste documento podem ser sincronizados com o dis- positivo móvel e ainda estarem dentro do escopo da tecnologia em questão.
O processo 100 em 110 então recebe dados de sessão atualiza- dos a partir do um ou mais clientes da Rede através de uma rede se os da- 10 dos de sessão atualizados estiverem disponíveis. Como mencionado acima, a recepção dos dados de sessão atualizados pode ocorrer dentro de um cli- ente da Rede de recepção (por exemplo, navegador da Rede do móvel em um dispositivo móvel). Em 115, o processo 100 exibe os dados de sessão atualizados recebidos em uma janela de um cliente da Rede de recepção. 15 Um exemplo dos dados de sessão exibidos é descrito em mais detalhes em conexão com a figura 3 abaixo. O processo 100 então termina.
A figura 2 conceitualmente ilustra um processo ilustrativo 200 para armazenar os dados de sessão a partir de um ou mais clientes da Rede para sincronização com um primeiro cliente da Rede. Em algumas configu- 20 rações, o processo 200 pode ser implementado por um servidor de armaze- namento que recebe dados de sessão a partir de um cliente da Rede de computador de mesa e/ou outros clientes da Rede. O servidor de armaze- namento pode se comunicar através de uma rede com o cliente da Rede de computador de mesa e com o primeiro cliente da Rede (por exemplo, um 25 cliente da Rede móvel) em algumas configurações.
O processo 200 começa em 205 por determinar se dados de sessão atualizados estão disponíveis no um ou mais clientes da Rede. O processo 200 em 210 transmite uma solicitação para os dados de sessão atualizados se os dados de sessão atualizados estiverem disponíveis. Em 30 um exemplo, o processo 200 transmite a solicitação para o um ou mais clien- tes da rede para recuperar os dados de sessão atualizados disponíveis. Em 215, o processo 200 recebe os dados de sessão atualizados a partir do um ou mais clientes da Rede. 0 processo 200 em 220 então armazena os da- dos de sessão atualizados.
Em algumas configurações, o processo 200 transmite uma noti- ficação em 225 indicando os dados de sessão atualizados através de uma 5 rede para o primeiro cliente da Rede. O primeiro cliente da Rede em um e- xemplo é um cliente da Rede móvel em um dispositivo móvel. Por exemplo, o processo 200 pode enviar a notificação para o cliente da Rede móvel no dispositivo móvel. O processo 200 em 230 então transmite os dados de ses- são atualizados através de uma rede para o primeiro cliente da Rede. Os 10 dados de sessão atualizados incluem dados de histórico de navegação de uma ou mais páginas da Rede visitadas no cliente da Rede de computador de mesa em um exemplo. O processo 200 então termina.
Apesar de o processo 200 incluir operações para transmitir uma solicitação para dados de sessão atualizados em 210 transmitir uma notifi- 15 cação em 225, não é requerido que a tecnologia em questão execute todas as operações mencionadas acima no processo 200. Por exemplo, algumas configurações do processo 200 podem abster-se de transmitir uma solicita- ção em 210 e/ou uma notificação em 225. Em tais casos, o processo 200 pode receber dados de sessão em 215 sem a solicitação em 210 e/ou 20 transmitir os dados de sessão em 230 sem uma notificação em 225.
A figura 3 conceitualmente ilustra uma interface gráfica com o usuário (GUI) 300 na qual algumas configurações da tecnologia em questão podem ser implementadas. Mais especificamente, a GUI 300 pode incluir diferentes conjuntos de elementos gráficos para exibir dados de sessão re- 25 cebidos ou sincronizados a partir de um cliente da Rede (por exemplo, um cliente da Rede de computador de mesa). Um elemento gráfico pode incluir, mas não está limitado a um botão, caixa de verificação, botão de rádio, con- trole deslizante, caixa de listagem, lista suspensa, caixa de combinação, í- cone, caixa de texto, barra de rolagem, etc.. Em um exemplo, a GUI 300 é 30 exibida no cliente da Rede após a execução das operações no processo 100 da figura 1. Em particular, a GUI 300 pode ser exibida em uma janela de um cliente da Rede móvel (por exemplo, em uma guia de um navegador da Re- de do móvel) em um dispositivo móvel. Em outro exemplo, a GUI 300 pode ser exibida em uma janela de um cliente da Rede de computador de mesa e/ou em qualquer outro cliente da Rede.
Como ilustrado na figura 3, a GUI 300 inclui uma ou mais guias.
Em particular, a GUI 300 inclui uma guia 305 para ver uma ou mais diferen- tes áreas de exibição 310, 320, 330 e 340. As áreas de exibição 310, 320, 330 e 340 respectivamente incluem um site da Rede a partir dos dados de sessão a partir de um cliente da Rede de computador de mesa. Em cada uma das áreas de exibição, um site da Rede pode incluir um ícone 370, 372, 10 374 ou 376 para indicar um respectivo site da Rede. Adicionalmente, para indicar um site da Rede incluído nos dados de sessão a partir de um cliente da Rede de computador de mesa, a GUI 300 pode incluir um ícone 350 indi- cando uma fonte de dados de sessão. Como apresentado, cada uma das áreas de exibição 310, 320, 330 e 340 inclui tal ícone para indicar a fonte de 15 dados de sessão. Por exemplo, a GUI 300 inclui um ícone 360 (por exemplo, representando um dispositivo móvel) indicando que um site da Rede particu- lar denominado "Web site 4" para um site da Rede que é a partir do cliente da Rede móvel (por exemplo, aberto no cliente da Rede móvel).
Um usuário pode interagir com a GUI 300 no cliente da Rede 20 móvel. A título de exemplo, o usuário pode selecionar qualquer uma das á- reas de exibição 310, 320, 330 e 340 para abrir ou navegar o site da Rede selecionado listado na respectiva área de exibição. Em um exemplo, o clien- te da Rede móvel pode automaticamente abrir um ou mais sites da Rede incluídos nos dados de sessão a partir do cliente da Rede de computador de 25 mesa. Desta maneira, o cliente da Rede móvel pode espelhar uma sessão do usuário no cliente da Rede de computador de mesa.
Apesar de a descrição acima da figura 3 incluir diferentes ele- mentos gráficos ilustrativos na GUI 300, algumas implementações podem incluir outros elementos gráficos na GUI 300 e ainda estarem dentro do es- 30 copo da tecnologia em questão. Adicionalmente, não é requerido que a GUI 300 inclua todos os elementos gráficos mencionados acima. Por exemplo, a GUI 300 pode omitir um ícone(s) ou guia(s) quando exibindo os dados de sessão a partir do cliente da Rede de computador de mesa e/ou do cliente da Rede móvel.
A figura 4 conceitualmente ilustra um ambiente de computação ilustrativo 400 incluindo um sistema. Em particular, a figura 4 apresenta um 5 sistema 405 para implementar o processo descrito acima na figura 2. Em algumas configurações, o sistema 405 é parte de uma implementação exe- cutando uma máquina particular (por exemplo, um servidor).
Como apresentado na figura 4, o sistema 405 inclui vários módu- los para proporcionar diferentes funcionalidades. O sistema 405 é configura- do para incluir um módulo de monitoramento de sessão 410, um módulo de notificação 415 e um módulo de sincronização 420. O módulo de monitora- mento de sessão 410 é configurado para determinar se dados de sessão atualizados estão disponíveis em um ou mais clientes da Rede. O módulo de monitoramento de sessão 410 é adicionalmente configurado para transmitir uma solicitação para o um ou mais clientes da Rede para determinar se os dados de sessão atualizados estão disponíveis, na qual os dados de sessão atualizados indicam atividade de navegação em um ou mais clientes da Re- de e incluem dados de elemento do formulário da página Ada Rede basea- dos na entrada do usuário. O módulo de notificação 415 é configurado para transmitir uma notificação para um primeiro cliente da Rede se os dados de sessão atualizados estiverem disponíveis. Em um exemplo, o primeiro clien- te da Rede pode ser um cliente da Rede móvel em um dispositivo móvel. O módulo de notificação 415 é configurado para transmitir uma ou mais notifi- cações para diferentes clientes da Rede (por exemplo, um cliente da Rede de computador de mesa, outro cliente da Rede móvel, etc.) se dados de sessão atualizados estiverem disponíveis. Em algumas configurações, uma ou mais notificações são transmitidas em uma base periódica para o cliente da Rede móvel e/ou para outros clientes da Rede. O módulo de sincroniza- ção 420 pode receber os dados de sessão atualizados a partir do um ou mais clientes da Rede. O módulo de sincronização 420 é configurado para transmitir os dados de sessão atualizados através de uma rede para o pri- meiro cliente da Rede (por exemplo, o cliente da Rede móvel no dispositivo móvel). O módulo de sincronização é adicionalmente configurado para envi- ar a transmissão dos dados de sessão atualizados em algumas configura- ções.
Como adicionalmente apresentado na figura 4, cada um dos módulos mencionados acima pode ser configurado para se comunicar entre os mesmos. Por exemplo, diferentes dados, mensagens, chamadas de API e retornos podem ser passados entre os diferentes módulos no sistema 405.
O sistema 405 pode se comunicar através de uma rede 450 com um cliente computador de mesa 460 e com um dispositivo móvel 470 e com 10 um ou mais diferentes clientes 480. Cada um dentre o cliente computador de mesa 460, o dispositivo móvel 470 e o um ou mais diferentes clientes 480 pode ser configurado para se comunicar com os módulos mencionados aci- ma do sistema 405. Por exemplo, o cliente computador de mesa 460 pode transmitir dados de sessão através da rede 450 para o sistema 405. O sis- 15 tema 405 pode então transmitir os dados de sessão através da rede 450 pa- ra o dispositivo móvel 470 e/ou para outros clientes 480.
Vários dos aspectos e aplicações descritos acima são implemen- tados como processos de software que são especificados como um conjunto de instruções gravadas em um meio de armazenamento legível por máquina 20 (também referido como meio legível por computador). Quando estas instru- ções são executadas por uma ou mais unidades de processamento (por e- xemplo, um ou mais processadores, núcleos de processadores, ou outras unidades de processamento), elas causam que as unidades de processa- mento executem as ações indicadas nas instruções. Exemplos de meio legí- 25 vel por máquina incluem, mas não estão limitados a CD-ROMs, unidades flash, chips RAM, unidades de disco, EPROMs, etc. O meio legível por má- quina não inclui ondas portadoras e sinais eletrônicos passando sem uso de fios ou através de conexões com fios.
Neste relatório descritivo, o termo "software" é pretendido como incluindo firmware residindo em memória somente para leitura e/ou aplica- ções armazenadas em armazenamento magnético, o qual pode ser lido para a memória para processamento por um processador. Além disso, em algu- mas implementações, múltiplos componentes de software podem ser imple- mentados como subpartes de um programa maior enquanto permanecendo componentes de software distintos. Em algumas implementações, múltiplos componentes objetos de software também podem ser implementados como 5 programas separados. Finalmente, qualquer combinação de programas se- parados que juntos implementem um componente(s) de software descrito neste documento está dentro do escopo da tecnologia em questão. Em al- gumas implementações, os programas de software, quando instalados para operar em um ou mais sistemas, definem uma ou mais implementações es- 10 pecíficas da máquina que executam e efetuam as operações dos programas de software.
Um programa de computador (também conhecido como um pro- grama, software, aplicação de software, script, ou código) pode ser escrito em qualquer forma de linguagem de programação, incluindo linguagem com- 15 pilada ou interpretada, linguagens declarativas ou procedimentais, e ele po- de ser implementado em qualquer forma, incluindo como um programa inde- pendente ou como um módulo, componente, subrotina, objeto, ou outra uni- dade adequada para uso em um ambiente de computação. Um programa de computador pode, mas não precisa, corresponder a um arquivo em um sis- 20 tema de arquivos. Um programa pode ser armazenado em uma parte de um arquivo que mantém outros programas ou dados (por exemplo, um ou mais scripts armazenados em um documento de linguagem de marcação), em um único arquivo dedicado para o programa em questão, ou em múltiplos arqui- vos coordenados (por exemplo, arquivos de armazenam um ou mais módu- 25 los, subprogramas, ou partes de código). Um programa de computador pode ser implementado para ser executado em um computador ou em múltiplos computadores que estão localizados em um local ou distribuídos através de múltiplos locais e interconectados por uma rede de comunicação.
Algumas configurações são implementadas como processos de software que incluem uma ou mais interfaces de programação de aplicação (APIs) em um ambiente com código de programa chamador interagindo com outro código de programa sendo chamado através de uma ou mais interfa- ces. Várias chamadas de função, mensagens ou outros tipos de invocação, que podem incluir vários tipos de parâmetros, podem ser transferidas via as APIs entre o programa chamador e o código sendo chamado. Em adição, uma API pode proporcionar para o programa chamador a habilidade de utili- 5 zar tipos de dados ou classes definidos na API e implementados no código do programa chamado.
Uma ou mais APIs podem ser utilizadas em algumas configura- ções. Uma API é uma interface implementada por um componente código de programa ou componente de hardware ("componente de implementação de 10 API") que permite que um componente de código de programa diferente ou componente de hardware ("componente chamador de API") acesse e utilize uma ou mais funções, métodos, procedimentos, estruturas de dados, clas- ses, e/ou outros serviços proporcionados pelo componente de implementa- ção de API. Uma API pode definir um ou mais parâmetros que são passados 15 entre o componente chamador da API e o componente de implementação da API.
Uma API permite a um desenvolvedor de um componente cha- mador de API (que poderia ser um desenvolvedor externo) utilizar aspectos especificados proporcionados por uma componente de implementação de API. Pode existir um componente chamador de API ou existirem mais do que um componente. Uma API pode ser uma interface com código fonte que um sistema de computação ou biblioteca de programas proporciona para supor- tar solicitações por serviços a partir de uma aplicação. Um sistema opera- cional (OS) pode possuir múltiplas APIs para permitir que as aplicações exe- cutando no OS chamem uma ou mais destas APIs, e um serviço (tal como uma biblioteca de programas) pode possuir múltiplas APIs para permitir que uma aplicação que utiliza o serviço chame uma ou mais destas APIs. Uma API pode ser especificada em termos de uma linguagem de programação que pode ser interpretada ou compilada quando uma aplicação é construída. Em algumas configurações, o componente de implementação de
API pode proporcionar mais do que uma API, cada uma proporcionando uma visão diferente ou com diferentes aspectos que acessam diferentes aspectos da funcionalidade implementada pelo componente de implementação da A- Pl. Por exemplo, uma API de um componente de implementação de API po- de proporcionar um primeiro conjunto de funções e pode ser exposto para desenvolvedores externos, e outra API ou componente de implementação de 5 API pode ser oculto (não exposto) e proporcionar um subconjunto do primei- ro conjunto de funções e também proporcionar outro conjunto de funções, tal como funções de teste ou de depuração que não estão no primeiro conjunto de funções. Em outras configurações, o componente de implementação de API pode ele próprio chamar um ou mais outros componentes via uma API 10 subjacente e assim, ser tanto o componente chamador da API como um componente de implementação de API.
Uma API define a linguagem e os parâmetros que os componen- tes chamadores de API utilizam quando acessando e utilizando aspectos especificados do componente de implementação de API. Por exemplo, um 15 componente chamador de API acessa os aspectos específicos do compo- nente de implementação de API através de uma ou mais chamadas ou invo- cações de API (incorporadas, por exemplo, pelas chamadas de funções ou de método) expostas pela API e passa dados e informação de controle utili- zando parâmetros via as chamadas ou invocações de API. O componente 20 de implementação de API pode retornar um valor através da API em respos- ta a uma chamada de API a partir de um componente chamador de API. En- quanto a API define a sintaxe e o resultado de uma chamada de API (por exemplo, como invocar a chamada de API e o que a chamada de API faz), a API pode não revelar como a chamada de API realizada a função especifi- 25 cada pela chamada de API. Várias chamadas de API são transferidas via a uma ou mais interfaces de programação de aplicativo entre a chamada (componente chamador de API) e um componente de implementação de API. Transferir as chamadas de API pode incluir emitir, iniciar, invocar, cha- mar, receber, retornar, ou responder às chamadas de função ou às mensa- 30 gens. Em outras palavras, transferir pode descrever ações tanto pelo com- ponente chamador da API como do componente de implementação da API. As chamadas de função ou outras invocações da API podem enviar ou rece- ber um ou mais parâmetros através de uma lista de parâmetros ou de outra estrutura. Um parâmetro pode ser uma constante, uma chave, estrutura de dados, objeto, classe de objeto, variável, tipo de dado, ponteiro, matriz, lisa ou um ponteiro para uma função ou método, ou outro modo de fazer refe- rência a dados ou a outro item a ser passado via a API.
Adicionalmente, tipos de dados ou classes podem ser proporcio- nados pela API e implementados pelo componente de implementação de API. O componente chamador de API, portanto, pode declarar variáveis, uti- lizar ponteiros para, utilizar ou instanciar valores constantes de tais tipos ou classes por utilizar definições proporcionadas na API.
Geralmente, uma API pode ser utilizada para acessar um serviço ou dados proporcionados pelo componente de implementação de API ou para iniciar a performance de uma operação ou computação proporcionada pelo componente de implementação de API. A título de exemplo, cada um 15 dentre o componente de implementação de API e o componente chamador de API pode ser qualquer um dentre um sistema operacional, uma biblioteca, um controlador de dispositivo, uma API, um programa de aplicação, ou outro módulo (deve ser entendido que o componente de implementação de API e o componente chamador de API podem ser o mesmo tipo de módulo ou dife- 20 rente um do outro). Componentes de implementação de API podem, em al- guns casos, ser incorporados pelo menos em parte em firmware, microcódi- go, ou em outra lógica de hardware. Em algumas configurações, uma API pode permitir que um programa cliente utilize os serviços proporcionados por uma biblioteca de Kit de Desenvolvimento de Software (SDK). Em outras 25 configurações, uma aplicação ou outro programa cliente pode utilizar uma API proporcionada por uma Estrutura de Aplicativo. Nestas configurações, o aplicativo ou programa cliente pode incorporar chamadas para funções ou métodos proporcionados pelo SDK e proporcionados pela API ou utilizar ti- pos de dados ou objetos definidos no SDK e proporcionados pela API. Uma 30 Estrutura de Aplicativo pode, nesta configuração, proporcionar uma repeti- ção de evento principal para um programa que responde a vários eventos definidos pela Estrutura. A API permite que o aplicativo especifique os even- tos e as respostas para os eventos utilizando a Estrutura de Aplicativo. Em algumas implementações, uma chamada de API pode reportar para um apli- cativo as capacidades ou o estado de um dispositivo de hardware, incluindo estas relacionadas com aspectos tais como capacidade e estado de entrada, 5 capacidades e estado de saída, capacidade de processamento, estado de energia, capacidade e estado de armazenamento, capacidade de comunica- ções, etc., e a API pode ser implementada em parte por firmware, microcó- digo, ou por outra lógica de baixo nível que execute em parte no componen- te de hardware.
O componente chamador de API pode ser um componente local
(isto é, no mesmo sistema de processamento que o componente de imple- mentação de API) ou um componente remoto (isto é, em um sistema de pro- cessamento de dados diferente do componente de implementação de API) que se comunica com o componente de implementação de API através da 15 API através de uma rede. Deve ser entendido que um componente de im- plementação de API também pode atuar como um componente chamador de API (isto é, ele pode fazer chamadas de API para uma API exposta por um componente de implementação de API diferente) e um componente chama- dor de API também pode atuar como um componente de implementação de 20 API por implementar uma API que é exposta para um componente chamador de API diferente.
A API pode permitir que múltiplos componentes chamadores de API escritos em linguagens de programação diferentes se comuniquem com o componente de implementação de API (assim, a API pode incluir aspectos 25 para traduzir chamadas e retornos entre o componente de implementação de API e o componente chamador de API). Entretanto, a API pode ser im- plementada em termos de uma linguagem de programação específica. Um componente chamador de API pode, em uma configuração, chamar APIs a partir de provedores diferentes tal como um conjunto de APIs a partir de um 30 provedor de OS e outro conjunto de APIs a partir de um provedor de plug-in e outro conjunto de APIs a partir de outro provedor (por exemplo, o provedor de uma biblioteca de software) ou criador de outro conjunto de APIs. A descrição seguinte descreve uma arquitetura de API ilustrativa na qual algumas configurações da tecnologia em questão podem ser imple- mentadas.
A figura 5 é um diagrama de blocos ilustrando uma arquitetura de API ilustrativa, a qual pode ser utilizada em algumas configurações da tecnologia em questão. Como apresentado na figura 5, a arquitetura de API 500 inclui um componente de implementação de API 515 (por exemplo, um sistema operacional, uma biblioteca, um controlador de dispositivo, uma API, um programa aplicativo, software ou outro módulo) que implementa a API 510. A API 510 especifica uma ou mais funções, métodos, classes, objetos, protocolos, estruturas de dados, formatos e/ou outros aspectos do compo- nente de implementação de API que podem ser utilizados pelo componente chamador de API 505. A API 510 pode especificar pelo menos uma conven- ção de chamada que especifica como uma função no componente de im- plementação de API recebe parâmetros a partir do componente chamador de API e como a função retorna um resultado para o componente chamador de API. O componente chamador de API 505 (por exemplo, um sistema ope- racional, uma biblioteca, um controlador de dispositivo, uma API, um pro- grama aplicativo, software ou outro módulo), faz chamadas de API através da API 510 para acessar e utilizar os aspectos do componente de implemen- tação de API 515 que são especificados pela API 510. O componente de implementação de API 515 pode retornar um valor através da API 510 para o componente chamador de API 505 em resposta a uma chamada de API.
Será apreciado que o componente de implementação de API 25 515 pode incluir funções, métodos, classes, estruturas de dados e/ou outros aspectos adicionais que não são especificados através da API 510 e não estão disponíveis para o componente chamador de API 505. Deve ser en- tendido que o componente chamador de API 505 pode estar no mesmo sis- tema que o componente de implementação de API 515 ou pode estar Iocali- 30 zado remotamente e acessar o componente de implementação de API 515 utilizando a API 510 através de uma rede. Apesar de a figura 5 ilustrar um único componente chamador de API 505 interagindo com ma API 510, deve ser entendido que outros componentes chamadores de API, os quais podem ser escritos em linguagens diferentes (ou na mesma linguagem) do compo- nente chamador de API 505 podem utilizar a API 510.
O componente de implementação de API 515, a API 510, e o 5 componente chamador de API 505 podem ser armazenados em um meio legível poro máquina, o qual inclui qualquer mecanismo para armazenar in- formação em uma forma legível por uma máquina (por exemplo, um compu- tador ou outro sistema de processamento de dados). Por exemplo, um meio legível por máquina inclui discos magnéticos, discos óticos, memória de a- 10 cesso aleatório, memórias somente para leitura, dispositivos de memória flash, etc..
A figura 6 é um exemplo de uma arquitetura de dispositivo móvel 600. A implementação de um dispositivo móvel pode incluir uma ou mais unidades de processamento 605, interface de memória 610 e uma interface 15 com periféricos 615. Cada um destes componentes que constitui a arquitetu- ra do dispositivo de computação pode ser componente separado ou integra- do em um ou mais circuitos integrados. Estes vários componentes também podem ser acoplados por um ou mais barramentos de comunicações ou li- nhas de sinal.
A interface com periféricos 615 pode ser acoplada com vários
sensores e subsistemas, incluindo um subsistema de câmera 620, um sub- sistema(s) de comunicação sem uso de fios 625, subsistema de áudio 630 e subsistema de Entrada/Saída 635. A interface com periféricos 615 permite a comunicação entre o processador e os periféricos. Os periféricos proporcio- 25 nam diferentes funcionalidades para o dispositivo móvel. Os periféricos, tal como um sensor de orientação 645 ou um sensor de aceleração 650, podem ser acoplados com a interface com periféricos 615 para facilitar as funções de orientação e de aceleração. Adicionalmente, o dispositivo móvel pode incluir um sensor de localização 675 para proporcionar diferentes dados de 30 localização. Em particular, o sensor de localização pode utilizar um Sistema de Posicionamento Global (GPS) para proporcionar diferentes dados de lo- calização tais como longitude, latitude e altitude. O subsistema de câmera 620 pode ser acoplado com um ou mais sensores óticos tal como um sensor ótico de dispositivo de carga em- parelhada (CDD) ou um sensor ótico de semicondutor complementar de oxi- do metálico (CMOS). O subsistema de câmera 620 acoplado com os senso- res pode facilitar as funções de câmera, tal como captura de dados de ima- gem e/ou de vídeo. Os subsistemas de comunicação sem uso de fios 625 podem servir para facilitar as funções de comunicação. Os subsistemas de comunicação sem uso de fios 625 podem incluir receptores e transmissores de rádio frequência, e receptores e transmissores óticos. Os receptores e transmissores mencionados acima podem ser implementados para operar através de uma ou mais redes de comunicação tais como Evolução a Longo Prazo (LTE)1 rede do Sistema Global para Comunicações Móveis (GSM), uma rede Wi-Fi, rede Bluetooth, etc.. O subsistema de áudio 630 é acoplado com um alto-falante e com um microfone para facilitar funções capacitadas por voz, tais como reconhecimento de voz, gravação digital, etc.
O subsistema de E/S 635 envolve a transferência entre dispositi- vos periféricos de entrada/saída, tais como um vídeo, uma tela sensível ao toque, etc., e o barramento de dados do processador 605 através da Interfa- ce com Periféricos. O subsistema de E/S 635 pode incluir um controlador de 20 tela sensível ao toque 655 e outros controladores de entrada 60 para facilitar estas funções. O controlador de tela sensível ao toque 655 pode ser acopla- do com a tela sensível ao toque 65 e detectar contato e movimento na tela utilizando qualquer uma dentre várias tecnologias de sensibilidade ao toque. Outros controladores de entrada 60 podem ser acoplados com outros dispo- 25 sitivos de entrada/controle, tais como um ou mais botões.
A interface de memória 610 pode ser acoplada com a memória 670, a qual pode incluir memória de acesso aleatório de alta velocidade e/ou memória não volátil tal como memória flash. A memória 670 pode armazenar um sistema operacional (OS). O OS pode incluir instruções para manipular 30 serviços básicos do sistema e para executar tarefas dependentes do hard- ware.
A título de exemplo, a memória também pode incluir instruções de comunicação para facilitar a comunicação com um ou mais dispositivos adicionais, instruções de interface gráfica com o usuário para facilitar pro- cessamento de interface gráfica com o usuário, instruções de processamen- to de imagem/video para facilitar processamento e funções relacionadas 5 com imagem/vídeo, instruções de telefone para facilitar processos e funções relacionados com telefone, instruções de troca e processamento de mídia para facilitar comunicação de mídia e processos e funções relacionados com o processamento, e instruções de conferência por vídeo para facilitar pro- cessos e funções de conferência por vídeo. As instruções identificadas aci- 10 ma não precisam ser implementadas como programas ou módulos de soft- ware separados. Várias funções do dispositivo móvel podem ser implemen- tadas em hardware e/ou software, incluindo em um ou mais circuitos inte- grados de processamento de sinal e/ou específicos para aplicação.
A descrição seguinte descreve um sistema ilustrativo no qual os 15 aspectos da tecnologia em questão podem ser implementados. O sistema 700 pode ser um computador, telefone, PDA, ou qualquer tipo de dispositivo eletrônico. Tal sistema inclui vários tipos de meio e de interfaces legíveis por computador para vários tipos de meios legíveis por computador. O sistema 700 inclui um barramento 705, a unidade(s) de processamento 710, uma 20 memória do sistema 715, uma memória somente para leitura 720, um dispo- sitivo de armazenamento 725, uma interface de entrada opcional 730, uma interface de saída opcional 735 e uma interface de rede 740.
O barramento 705 coletivamente representa todos os barramen- tos do sistema, de periférico e de conjunto de chips que comunicativamente 25 conectam vários dispositivos internos do sistema 700. Por exemplo, o bar- ramento 705 comunicativamente conecta a unidade(s) de processamento 710 com a memória somente para leitura 720, com a memória do sistema 715 e com o dispositivo de armazenamento 725.
A partir destas várias unidades de memória, a unidade(s) de processamento 710 recupera instruções para executar e dados para proces- sar de modo a executar os processos da tecnologia em questão. A unida- de(s) de processamento pode ser um único processador ou um processador com múltiplos núcleos em diferentes implementações.
A memória somente para leitura (ROM) 720 armazena dados es- táticos e instruções que são necessárias pela unidade(s) de processamento 710 e por outros módulos do sistema 700. O dispositivo de armazenamento 5 725, por outro lado, é um dispositivo de memória de leitura e gravação. Este dispositivo é uma unidade de memória não volátil que armazena instruções e dados mesmo quando o sistema 700 está desativado. Algumas implementa- ções da tecnologia em questão utilizam um dispositivo de armazenamento em massa (tal como um disco magnético ou ótico e sua unidade de disco 10 correspondente) como o dispositivo de armazenamento 725.
Outras implementações utilizam um dispositivo de armazena- mento removível (tal como uma unidade flash, um disco flexível, e sua unida- de de disco correspondente) como o dispositivo de armazenamento 725. Da mesma forma que o dispositivo de armazenamento 725, a memória do siste- 15 ma 715 é um dispositivo de memória de leitura e gravação. Entretanto, dife- rente do dispositivo de armazenamento 725, a memória do sistema 715 é uma memória de leitura e gravação volátil, tal como uma memória de acesso alea- tório. A memória do sistema 715 armazena algumas das instruções e dados que o processador precisa em tempo de execução. Em algumas implementa- 20 ções, os processos da tecnologia em questão são armazenados na memória do sistema 715, no dispositivo de armazenamento 725, e/ou na memória so- mente para leitura 720. Por exemplo, as varias unidades de memória incluem instruções para processar itens multimídia de acordo com algumas imple- mentações. A partir destas várias unidades de memória, a unidade(s) de 25 processamento 710 recupera instruções para executar e dados para proces- sar de modo a executar os processos de algumas implementações.
O barramento 705 também se conecta com as interfaces opcio- nais de entrada e de saída 730 e 735. A interface de entrada opcional 730 permite ao usuário comunicar informação e selecionar comandos para o sis- 30 tema. A interface de entrada opcional 730 pode fazer interface com teclados alfanuméricos e com dispositivos de apontamento (também chamados de "dispositivos de controle de cursor"). A interface de saída opcional 735 pode proporcionar imagens de vídeoe geradas pelo sistema 700. A interface de saída opcional 735 pode fazer interface com impressoras e com dispositivos de vídeo, tais como tubos de raio catódico (CRT) ou vídeos de cristal líquido (LCD). Algumas implementações podem fazer interface com dispositivos tais 5 como uma tela sensível ao toque que funciona tanto como dispositivo de entrada como de saída.
Finalmente, como apresentado na figura 7, o barramento 705 também acopla o sistema 700 com uma interface de rede 740 através de um adaptador de rede (não apresentado). Desta maneira, o computador pode 10 ser uma parte de uma rede de computadores (tal como uma rede de área local ("LAN"), uma rede de longa distância ("WAN"), ou uma Intranet, ou uma rede interconectada de redes, tal como a Internet. Qualquer um ou todos os componentes do sistema 700 podem ser utilizados em conjunto com a tec- nologia em questão.
Estas funções descritas acima podem ser implementadas em
conjunto de circuitos eletrônicos digitais, em software de computador, firm- ware ou hardware. As técnicas podem ser implementadas utilizando um ou mais produtos de programa de computador. Processadores e computadores programáveis podem ser incluídos ou empacotados como dispositivos mó- 20 veis. Os processos e os fluxos lógicos podem ser executados por um ou mais processadores programáveis e por um ou mais conjuntos de circuitos lógicos programáveis. Dispositivos de computação e dispositivos de arma- zenamento geral e de propósito especial podem ser interconectados através de redes de comunicação.
Algumas implementações incluem componentes eletrônicos, tais
como microprocessadores, armazenamento e memória que armazenam ins- truções de programa de computador em uma meio legível por máquina ou legível por computador (alternativamente referidos como meios de armaze- namento legível por computador, meio legível por máquina, ou meio de ar- 30 mazenamento legível por máquina). Alguns exemplos de tais meios legíveis por computador incluem RAM, ROM, discos compactos somente para leitura (CD-ROM), discos compactos que podem ser gravados (CD-R), discos com- pactos que podem ser regravados (CD-RW), discos versáteis digitais somen- te para leitura (por exemplo, DVD-ROM, DVD-ROM de camada dupla), uma variedade de DVDs que podem ser gravados/que podem ser regravados (por exemplo, DVD-RAM, DVD-RW, DVD+RW, etc.), memória flash (por exemplo, cartões SD, mini-cartões DS, micro-cartões SD, etc.), unidades de disco magnético e/ou de estado sólido, discos Blu-Ray® somente para leitura e graváveis, discos óticos de ultra densidade, qualquer outro meio ótico ou magnético, e discos flexíveis. O meio legível por computador pode armaze- nar um programa de computador que executável por pelo menos uma uni- dade de processamento e inclui conjuntos de instruções para executar várias operações. Exemplos de programas de computador ou de código de compu- tador incluem código de máquina, tal como é produzido por um compilador, e arquivos incluindo código de alto nível que são executados por um computa- dor, por um componente eletrônico, ou por um microprocessador utilizando um interpretador.
Apesar de a discussão acima principalmente se referir a micro- processador ou a processadores com múltiplos núcleos que executam soft- ware, algumas implementações são executadas por um ou mais circuitos integrados, tais como circuitos integrados de aplicação específica (ASICs) ou 20 arranjos de portas programáveis em campo (FPGAs). Em algumas imple- mentações, tais circuitos integrados executam instruções que estão armaze- nadas no próprio circuito.
Como utilizado neste relatório descritivo e em quaisquer reivindi- cações deste pedido, os termos "computador", "servidor", "processador", e 25 "memória" se referem aos dispositivos eletrônicos ou outros dispositivos tec- nológicos. Estes termos excluem pessoas ou grupos de pessoas. Para o propósito do relatório descritivo, os termos exibir ou exibição significam exibir em um dispositivo eletrônico. Como utilizado neste relatório descritivo e em quaisquer reivindicações deste pedido, os termos "meio legível por compu- 30 tador" e "mídias legível por computador" são totalmente restritos aos objetos físicos tangíveis que armazenam informação em uma forma que seja legível por um computador. Estes termos excluem quaisquer sinais sem uso de fios, sinais de transferência com uso de fios, e quaisquer outros sinais efêmeros.
Para proporciona interação com um usuário, as implementações do assunto em questão descrito neste relatório descritivo podem ser imple- mentadas em um computador possuindo um dispositivo de vídeo, por exem- 5 pio, um monitor CRT (tubo de raio catódico) ou LCD (vídeo de cristal líqui- do), para exibir informação para o usuário e um teclado e um dispositivo de apontamento, por exemplo, um mouse ou trackball, pelo qual o usuário pode proporcionar entrada para o computador. Outros tipos de dispositivos podem ser utilizados para proporcionar interação com um usuário; por exemplo, a 10 realimentação proporcionada para o usuário pode ser qualquer forma de rea- limentação sensorial, por exemplo, realimentação visual, realimentação audi- tiva, ou realimentação táctil; e a entrada a partir do usuário pode ser recebi- da em qualquer forma, incluindo entrada acústica, fala, ou táctil. Em adição, um computador pode interagir com um usuário por enviar documentos e re- 15 ceber documentos a partir de um dispositivo que é utilizado pelo usuário; poro exemplo, por enviar páginas da Rede para um navegador da Rede em um dispositivo cliente do usuário em resposta às solicitações a partir do na- vegador da Rede.
As configurações do assunto em questão descritas neste relató- rio descritivo podem ser implementadas em um sistema de computador que inclua um componente back end, por exemplo, como um servidor de dados, ou que inclua um componente middleware, por exemplo, um servidor de a- plicação, ou que inclua um componente front end, por exemplo, um compu- tador cliente possuindo uma interface gráfica com o usuário ou um navega- dor da Rede através do qual um usuário pode interagir com uma implemen- tação do assunto em questão descrito neste relatório descritivo, ou qualquer combinação de um ou mais componentes de back end, de middleware, ou de front end. Os componentes do sistema podem ser interconectados por qualquer forma ou meio de comunicação de dados digitais, por exemplo, uma rede de comunicação. Exemplos de redes de comunicação incluem uma rede de área local ("LAN") e uma rede de longa distância ("WAN"), uma rede interna (por exemplo, a Internet),e redes ponto a ponto (por exemplo redes ponto a ponto ad hoc).
O sistema de computação pode incluir clientes e servidores. Um cliente e servidor são geralmente remotos um do outro e tipicamente intera- gem através de uma rede de comunicação. A relação de cliente e servidor 5 surge em virtude de programas de computador executando nos respectivos computadores e possuindo uma relação cliente - servidor um com o outro. Em algumas configurações, um servidor transmite dados (por exemplo, uma página HTML) para um dispositivo cliente (por exemplo, para o propósito de exibir dados e receber entrada do usuário a partir de um usuário interagindo 10 com o dispositivo cliente). Os dados gerados no dispositivo cliente (por e- xemplo, um resultado da interação com o usuário) podem ser recebidos a partir do dispositivo cliente no servidor.
É entendido que qualquer ordem específica ou hierarquia das etapas nos processos revelados é uma ilustração de abordagens ilustrativas. 15 Baseado na preferência do projeto, é entendido que a ordem ou hierarquia específica das etapas nos processos pode ser reorganizada, ou que todas as etapas ilustradas podem ser executadas. Algumas etapas podem ser e- xecutadas simultaneamente. Por exemplo, em algumas circunstâncias, pro- cessamento multitarefa e paralelo pode ser vantajoso. Além disso, a separa- 20 ção de vários componentes do sistema nas configurações descritas acima não deve ser entendia como requerendo tal separação em todas as configu- rações, e deve ser entendido que os componentes de programa e sistemas descritos podem ser geralmente integrados em um único produto de softwa- re ou empacotados em vários produtos de software.
A descrição anterior é proporcionada para permitir a qualquer
pessoa versada na técnica praticar os vários aspectos descritos neste do- cumento. Várias modificações para estes aspectos serão prontamente apa- rentes para os versados na técnica, e os princípios genéricos definidos neste documento podem ser aplicados para outros aspectos. Assim, as reivindica- 30 ções não são pretendidas para serem limitadas aos aspectos apresentados neste documento, mas para estarem de acordo com o escopo total consis- tente com as reivindicações da linguagem, onde referência a um elemento no singular não é pretendido para significar "um e somente um", a não ser que especificamente declarado, mas ao invés disso, "um ou mais". A não ser que especificamente declarado de outro modo, o termo "algum" se refere a um ou mais. Pronomes no masculino (por exemplo, seu) incluem o feminino 5 e gênero neutro (por exemplo, sua e seu) e vice-versa. Cabeçalhos e subca- beçalhos, se houverem, são utilizados somente por conveniência e não limi- tam a tecnologia em questão.
Uma frase tal como um "aspecto" não implica que tal aspecto é essencial para a tecnologia em questão ou que tal aspecto se aplica para 10 todas as configurações da tecnologia em questão. Uma revelação se rela- cionando com um aspecto pode se aplicar para todas as configurações, ou uma ou mais configurações. Uma frase com um aspecto pode se referir a um ou mais aspectos e vice-versa. Uma frase tal como uma "configuração" não implica que tal configuração é essencial para a tecnologia em questão ou 15 que tal configuração se aplica para todas as configurações da tecnologia em questão. Uma revelação se relacionando com uma configuração pode se aplicar para todas as configurações, ou uma ou mais configurações. Uma frase tal como uma configuração pode se referir a uma ou mais configura- ções e vice versa.
A palavra "exemplo" é utilizada neste documento para significar
"servindo como um exemplo ou ilustração". Qualquer aspecto ou projeto descrito neste documento como "exemplo" não é para ser necessariamente construído como preferido ou vantajoso em relação a outros aspectos ou projetos.
Todos os equivalentes estruturais e funcionais para os elemen-
tos dos vários aspectos descritos por toda esta revelação que são conheci- dos ou posteriormente se tornem conhecidos para os versados na técnica são expressamente incorporados neste documento por referência é preten- dido que sejam abrangidos pelas reivindicações. Além disso, nada revelado 30 neste documento é pretendido para ser dedicado para o público independen- te de se tal revelação for explicitamente citada nas reivindicações.

Claims (23)

1. Método implementado por máquina para automaticamente sincronizar dados de sessão a partir de um ou mais clientes da Rede, o mé- todo compreendendo: determinar se dados de sessão atualizados a partir de um ou mais clientes da Rede estão disponíveis, onde os dados de sessão atualiza- dos indicam atividade de navegação no um ou mais clientes da Rede e in- cluem dados de elemento do formulário da página da Rede baseados na entrada do usuário; e receber dados de sessão atualizados a partir do um ou mais cli- entes da Rede através de uma rede se os dados de sessão atualizados esti- verem disponíveis.
2. Método, de acordo com a reivindicação 1, em que determinar se os dados de sessão atualizados estão disponíveis compreende receber uma notificação dos dados de sessão atualizados a partir de um servidor de notificação.
3. Método, de acordo com a reivindicação 1, em que determinar se os dados de sessão atualizados estão disponíveis ocorre após um cliente da Rede móvel ser ativado.
4. Método, de acordo com a reivindicação 1, em que os dados de sessão atualizados incluem dados de histórico de navegação de uma ou mais páginas da Rede visitadas em um cliente da Rede de computador de mesa.
5. Método, de acordo com a reivindicação 1, em que os dados de sessão atualizados incluem dados de guia a partir de um cliente da Rede de computador de mesa.
6. Método, de acordo com a reivindicação 5, em que os dados da guia especificam um Iocalizador de recurso universal indicando uma loca- lização de um recurso.
7. Método, de acordo com a reivindicação 6, em que o recurso inclui conteúdo da Rede.
8. Método, de acordo com a reivindicação 1, que adicionalmente compreende: exibir os dados de sessão atualizados recebidos em uma janela de um cliente da Rede móvel.
9. Método, de acordo com a reivindicação 1, em que os dados de sessão atualizados incluem respectivos dados correspondendo a uma ou mais guias abertas em um dispositivo e os respectivos dados corresponden- do a uma ou mais guias incluem um histórico de navegação de cada tab.
10. Método, de acordo com a reivindicação 1, em que a recep- ção de dados de sessão atualizados ocorre dentro de um cliente da Rede dentro de um dispositivo móvel.
11. Método, de acordo com a reivindicação 10, em que o cliente da Rede é um navegador da Rede móvel.
12. Método implementado por máquina para armazenar dados de sessão a partir de um ou mais clientes da Rede para sincronização com um primeiro cliente da Rede, o método compreendendo: determinar se dados de sessão atualizados estão disponíveis nos um ou mais clientes da Rede, onde os dados de sessão atualizados in- cluem dados de elemento de formulário da página da Rede baseados na entrada do usuário; transmitir os dados de sessão atualizados a partir do um ou mais clientes da Rede; e armazenar os dados de sessão atualizados.
13. Método, de acordo com a reivindicação 12, que adicional- mente compreende: transmitir uma notificação indicando os dados de sessão atuali- zados através de uma rede para um cliente da Rede móvel em um dispositi- vo móvel.
14. Método, de acordo com a reivindicação 13, em que a notifi- cação é enviada para o cliente da Rede móvel no dispositivo móvel.
15. Método, de acordo com a reivindicação 13, que adicional- mente compreende: transmitir dados de sessão atualizados através de uma rede pa- ra o cliente da Rede móvel no dispositivo móvel, onde os dados de sessão atualizados incluem dados de histórico de navegação de uma ou mais pági- nas da Rede visitadas no cliente da Rede de computador de mesa.
16. Método, de acordo com a reivindicação 15, em que os dados de histórico de navegação incluem um ou mais sites da Rede diferentes visi- tados pelo cliente da Rede de computador de mesa.
17. Sistema para automaticamente sincronizar dados de sessão a partir de um ou mais clientes da Rede, o sistema compreendendo: memória; um ou mais processadores; um ou mais módulos armazenados na memória e configurados para execução pelo um ou mais processadores, os módulos compreenden- do: um módulo de monitoramento de sessão configurado para de- terminar se dados de sessão atualizados estão disponíveis no um ou mais clientes da Rede, onde os dados de sessão atualizados indicam atividade de navegação no um ou mais clientes da Rede e incluem dados de elemento do formulário da página da Rede baseados na entrada do usuário; um módulo de notificação configurado para transmitir uma notifi- cação para um primeiro cliente da Rede se os dados de sessão atualizados estiverem disponíveis; e um módulo de sincronização configurado para transmitir os da- dos de sessão atualizados através de uma rede para o primeiro cliente da Rede.
18. Sistema, de acordo com a reivindicação 17, em que o módu- lo de monitoramento de sessão é adicionalmente configurado para transmitir uma solicitação para o um ou mais clientes da Rede para determinar se os dados de sessão atualizados estão disponíveis.
19. Sistema, de acordo com a reivindicação 17, em que uma ou mais notificações são transmitidas em uma base periódica para um cliente da Rede móvel em um dispositivo móvel.
20. Sistema, de acordo com a reivindicação 17, em que o módu- Io de sincronização é adicionalmente configurado para enviar a transmissão dos dados de sessão atualizados.
21. Meio legível por máquina compreendendo instruções arma- zenadas no mesmo, as quais quando executadas por uma máquina causam que a máquina execute operações compreendendo: determinar se dados de sessão atualizados estão disponíveis em um ou mais clientes da Rede, onde os dados de sessão atualizados in- cluem dados de elemento de formulário da página da Rede baseados na entrada do usuário; transmitir uma solicitação para os dados de sessão atualizados se os dados de sessão atualizados estiverem disponíveis; receber os dados de sessão atualizados a partir do um ou mais clientes da Rede; armazenar os dados de sessão atualizados; e transmitir os dados de sessão atualizados através de uma rede para um primeiro cliente da Rede.
22. Meio legível por máquina, de acordo com a reivindicação 21, em que os dados de sessão atualizados incluem dados de histórico de na- vegação de uma ou mais páginas da Rede visitadas no um ou mais clientes das Rede.
23. Meio legível por máquina, de acordo com a reivindicação 21, em que o primeiro cliente da rede é um cliente da Rede móvel em um dispo- sitivo móvel.
BR102012030997A 2011-12-06 2012-12-05 Continuação de contexto de navegação através de múltiplos dispositivos BR102012030997A8 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/312,950 US8392617B1 (en) 2011-12-06 2011-12-06 Browsing context continuation across multiple devices

Publications (2)

Publication Number Publication Date
BR102012030997A2 true BR102012030997A2 (pt) 2014-03-18
BR102012030997A8 BR102012030997A8 (pt) 2018-01-02

Family

ID=47559094

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102012030997A BR102012030997A8 (pt) 2011-12-06 2012-12-05 Continuação de contexto de navegação através de múltiplos dispositivos

Country Status (8)

Country Link
US (1) US8392617B1 (pt)
EP (1) EP2639712A3 (pt)
JP (1) JP5291240B2 (pt)
KR (1) KR101277462B1 (pt)
CN (2) CN103220319A (pt)
AU (1) AU2012258293B2 (pt)
BR (1) BR102012030997A8 (pt)
CA (1) CA2797384C (pt)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938422B1 (en) * 2011-09-02 2015-01-20 Google Inc. Delay retrieval of synchronization information
US8769624B2 (en) 2011-09-29 2014-07-01 Apple Inc. Access control utilizing indirect authentication
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US9313100B1 (en) 2011-11-14 2016-04-12 Amazon Technologies, Inc. Remote browsing session management
US9330188B1 (en) * 2011-12-22 2016-05-03 Amazon Technologies, Inc. Shared browsing sessions
US9336321B1 (en) 2012-01-26 2016-05-10 Amazon Technologies, Inc. Remote browsing and searching
US9680927B2 (en) * 2012-02-05 2017-06-13 Apple Inc. Cloud tabs
US9589541B2 (en) 2012-02-28 2017-03-07 Ebay Inc. Location-based display of pixel history
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
CN105593783A (zh) * 2013-09-26 2016-05-18 谷歌公司 用于将导航数据提供至车辆的系统和方法
US9740777B2 (en) 2013-12-20 2017-08-22 Ebay Inc. Systems and methods for saving and presenting a state of a communication session
RU2580392C2 (ru) * 2013-12-31 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ синхронизации первой и второй сессии просмотра страниц для пользователя и сервер
US9549028B2 (en) 2014-02-18 2017-01-17 Ebay Inc. Systems and methods for automatically saving a state of a communication session
RU2646351C2 (ru) * 2014-03-27 2018-03-02 Общество С Ограниченной Ответственностью "Яндекс" Способ передачи пользователю уведомления о непрочитанном сообщении электронной почты (варианты ) и электронное устройство, используемое в нем
US9967401B2 (en) 2014-05-30 2018-05-08 Apple Inc. User interface for phone call routing among devices
EP3149554B1 (en) 2014-05-30 2024-05-01 Apple Inc. Continuity
CN104270336B (zh) * 2014-07-30 2018-10-30 深信服科技股份有限公司 远程应用运行终端的迁移方法、装置及系统
US10339293B2 (en) 2014-08-15 2019-07-02 Apple Inc. Authenticated device used to unlock another device
KR101594149B1 (ko) * 2014-08-19 2016-02-15 네이버 주식회사 사용자 단말 장치,서버 장치 및 이들에 의한 이어보기 서비스 제공 방법
JP6397312B2 (ja) 2014-11-06 2018-09-26 キヤノン株式会社 ネットワークシステム、及び、ネットワークシステムの制御方法
US9912758B2 (en) * 2014-12-16 2018-03-06 Yahoo Holdings, Inc. Continuing an application session on a different device
US10275116B2 (en) 2015-06-07 2019-04-30 Apple Inc. Browser with docked tabs
JP6005887B1 (ja) 2016-04-12 2016-10-12 株式会社Cygames プログラム、情報処理装置、情報処理方法及び情報処理システム
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US11070630B2 (en) 2018-05-04 2021-07-20 Citrix Systems, Inc. Computer system providing SAAS application session state migration features and related methods
KR102559937B1 (ko) 2018-09-12 2023-07-27 가부시키가이샤 코쿠사이 엘렉트릭 기판 처리 장치, 기판 보지부, 반도체 장치의 제조 방법 및 프로그램
US10924545B2 (en) * 2018-10-10 2021-02-16 Citrix Systems, Inc. Computer system providing mirrored SAAS application sessions and related methods
US11556699B2 (en) * 2019-02-04 2023-01-17 Citrix Systems, Inc. Data migration across SaaS applications
US10996917B2 (en) 2019-05-31 2021-05-04 Apple Inc. User interfaces for audio media control
US11620103B2 (en) 2019-05-31 2023-04-04 Apple Inc. User interfaces for audio media control
US11669291B2 (en) * 2019-10-23 2023-06-06 Co-Commerce Shopping Platform Ltd. System and method for sharing altered content of a web page between computing devices
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976094B1 (en) * 2000-05-09 2005-12-13 Nortel Networks Limited Automated web browser synchronization by using session initiation protocol during a real-time session
US6874037B1 (en) * 2000-06-19 2005-03-29 Sony Corporation Method and apparatus for synchronizing device information
US8707185B2 (en) * 2000-10-10 2014-04-22 Addnclick, Inc. Dynamic information management system and method for content delivery and sharing in content-, metadata- and viewer-based, live social networking among users concurrently engaged in the same and/or similar content
US7225225B2 (en) * 2001-03-30 2007-05-29 Sharp Laboratories Of America, Inc. Selective synchronization of web browsers
US20040044799A1 (en) * 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US7925698B2 (en) * 2004-08-18 2011-04-12 Siemens Enterprise Communications, Inc. Apparatus and method for a synchronized mobile communication client
US7865571B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7937451B2 (en) * 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
CN101431814B (zh) * 2007-11-05 2012-11-14 网秦无限(北京)科技有限公司 基于中间件的手机与pc互操作的方法与系统
US7917521B2 (en) 2008-03-10 2011-03-29 International Business Machines Corporation User/browser state information sharing between browser applications
US20090307376A1 (en) * 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements
US8135769B2 (en) * 2008-06-06 2012-03-13 Apple Inc. Synchronization improvements
CN101924779B (zh) * 2009-06-15 2014-10-08 北京搜狗科技发展有限公司 浏览器客户端共享资源的方法、设备及系统
KR101590357B1 (ko) * 2009-06-16 2016-02-01 엘지전자 주식회사 휴대 단말기, 휴대 단말기 동작방법 및 휴대 단말기 싱크 시스템
CN101969636B (zh) * 2009-12-31 2013-10-30 优视科技有限公司 一种用于移动通讯用户终端的书签管理系统及其应用方法
US20110239133A1 (en) * 2010-03-29 2011-09-29 Microsoft Corporation Shared resource computing collaboration sessions management

Also Published As

Publication number Publication date
KR20130063462A (ko) 2013-06-14
BR102012030997A8 (pt) 2018-01-02
AU2012258293A1 (en) 2013-06-20
CN103220319A (zh) 2013-07-24
CA2797384C (en) 2013-11-05
AU2012258293B2 (en) 2015-04-16
EP2639712A3 (en) 2013-11-06
KR101277462B1 (ko) 2013-06-21
CA2797384A1 (en) 2013-05-09
CN103761320B (zh) 2017-09-08
CN103761320A (zh) 2014-04-30
US8392617B1 (en) 2013-03-05
JP2013120603A (ja) 2013-06-17
JP5291240B2 (ja) 2013-09-18
EP2639712A2 (en) 2013-09-18

Similar Documents

Publication Publication Date Title
BR102012030997A2 (pt) Continuação de contexto de navegação através de múltiplos dispositivos
US8650481B1 (en) Stable and secure use of content scripts in browser extensions
CN104346153B (zh) 用于翻译应用程序的文本信息的方法和系统
US11749276B2 (en) Voice assistant-enabled web application or web page
US8479154B1 (en) Interaction with partially constructed mobile device applications
US20140040761A1 (en) Providing an update associated with a user-created point of interest
US10534817B2 (en) Sharing a process in a web client
US8655913B1 (en) Method for locating web elements comprising of fuzzy matching on attributes and relative location/position of element
US20130205277A1 (en) Environment and method for cross-platform development of software applications
US10257342B2 (en) Validating stateful dynamic links in mobile applications
US9467533B2 (en) System and method for developing real-time web-service objects
US11093222B2 (en) Generating interfaces from annotated entity definitions for developing applications
KR20200052991A (ko) 다수의 애플리케이션 버전의 분배
RU2595524C2 (ru) Устройство и способ обработки содержимого веб-ресурса в браузере
US20070220347A1 (en) Automatic testing for dynamic applications
US8200833B1 (en) Security mode based management of cookie data stores
EP3738027B1 (en) Feature usage prediction using shell application feature telemetry
US20150269130A1 (en) System and method of using multi-level hierarchical data in displaying real-time web-service objects
US20120221317A1 (en) Operating system and method based on sensor data
US20150177916A1 (en) Devices and methods for providing feedback of an application
KR102471739B1 (ko) 전자 장치의 히스토리 정보 관리 장치 및 방법
US20090254837A1 (en) Accessing external functionality within a component-based web application
US11093220B2 (en) Generating interfaces from data and service definitions for developing applications
US20140317536A1 (en) Browser Dialogue Box Wrapper
US20180293509A1 (en) User-based onboarding

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B03H Publication of an application: rectification [chapter 3.8 patent gazette]

Free format text: REFERENTE A RPI 2254 DE 18/03/2014, QUANTO AO ITEM (71).

B25D Requested change of name of applicant approved

Owner name: GOOGLE LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements