BR112016028193B1 - Método, meio legível por computador não-transitório e sistema - Google Patents
Método, meio legível por computador não-transitório e sistema Download PDFInfo
- Publication number
- BR112016028193B1 BR112016028193B1 BR112016028193-4A BR112016028193A BR112016028193B1 BR 112016028193 B1 BR112016028193 B1 BR 112016028193B1 BR 112016028193 A BR112016028193 A BR 112016028193A BR 112016028193 B1 BR112016028193 B1 BR 112016028193B1
- Authority
- BR
- Brazil
- Prior art keywords
- event
- client device
- indication
- image
- user account
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000009471 action Effects 0.000 claims description 42
- 230000003993 interaction Effects 0.000 claims description 12
- 230000000007 visual effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 150000003839 salts Chemical class 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 108091027981 Response element Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
notificações entre dispositivos técnicas para notificações entre dispositivos são fornecidas. um exemplo de método inclui receber uma primeira indicação de um evento detectado em um primeiro dispositivo associado a uma conta de usuário, determinar uma ou mais características do evento com base na primeira indicação do evento, detectar se as características determinadas correspondem a pelo menos um critério de seleção, identificar automaticamente um segundo dispositivo a partir de um ou mais dispositivos associados à conta de usuário e fornecer se as características determinadas correspondem a pelo menos um critério de seleção, a primeira indicação do evento para o segundo dispositivo associado à conta de usuário, em que a primeira indicação fornecida do evento é exibida no segundo dispositivo para permitir gestão do evento no primeiro dispositivo a partir do segundo dispositivo.
Description
[001] O presente pedido de patente é um Pedido de Patente Não Provisório No. de Série US 62/016,594 intitulado "Mensagens entre dispositivos", depositado em 24 de junho, 2014, cuja divulgação é aqui incorporada por referência na sua totalidade para todos fins.
[002] A presente divulgação refere-se geralmente a dispositivos de computação, tais como dispositivos móveis e computadores, e, particularmente, para exibição de notificações em tais dispositivos. Os usuários estão cada vez mais adquirindo e usando vários dispositivos de computação. Por exemplo, um usuário pode usar um telefone inteligente, tablet e um computador portátil.
[003] O objeto divulgado refere-se a notificações entre dispositivos.
[004] Em algumas implementações inovadoras, o objeto divulgado pode ser realizado em um método. O método compreende receber uma primeira indicação de um evento detectado em um primeiro dispositivo associado com uma conta de usuário, determinar uma ou mais características do evento com base na primeira indicação do evento, detectar se as características determinadas correspondem a pelo menos um critério de seleção, identificar automaticamente um segundo dispositivo a partir de um ou mais dispositivos associados com a conta de usuário, e fornecer, se as características determinadas correspondem a pelo menos um critério de seleção, a primeira indicação do evento para o segundo dispositivo associado à conta de usuário, em que a primeira indicação fornecida do evento é exibida no segundo dispositivo para permitir gestão do evento no primeiro dispositivo a partir do segundo dispositivo.
[005] Em algumas implementações inovadoras, o objeto divulgado pode ser incorporado em um meio legível por máquina. O meio legível por máquina inclui instruções que, quando executadas por um processador, fazem o processador executar operações compreendendo detectar um evento em um primeiro dispositivo associado com uma conta de usuário, fornecer uma primeira indicação do evento para um servidor, em que quando características do evento detectado correspondem a pelo menos um critério de seleção, o servidor fornece a primeira indicação do evento para um segundo dispositivo associado à conta de usuário, receber uma segunda indicação incluindo uma ação que está deve executada no que diz respeito ao evento detectado no primeiro dispositivo, a segunda indicação gerada mediante uma interação com a primeira indicação do evento exibida no segundo dispositivo, e gerir o evento no primeiro dispositivo com base na ação.
[006] Em algumas implementações inovadoras, o objeto divulgado pode ser incorporado em um sistema. O sistema compreende uma memória compreendendo instruções e um processador configurado para executar as instruções para receber uma primeira indicação de um evento detectado em um primeiro dispositivo associado com uma conta de usuário, determinar uma ou mais características do evento com base na primeira indicação do evento, detectar se as características determinadas correspondem a pelo menos um critério de seleção, automaticamente identificar um ou mais dispositivos associados à conta de usuário, e difundir a primeira indicação do evento, se as características determinadas correspondem a pelo menos um critério de seleção, para um ou mais dispositivos associados com a conta de usuário, em que a primeira indicação fornecida do evento é exibida simultaneamente, em tempo real, em um ou mais dispositivos para permitir gestão do evento no primeiro dispositivo a partir de qualquer dos um ou mais segundos dispositivos.
[007] É entendido que outras configurações da tecnologia do objeto se tornarão facilmente evidentes para os peritos na arte a partir da descrição detalhada que segue, em que várias configurações da tecnologia do objeto são mostradas e descritas a título de ilustração. Como irá ser percebido, a tecnologia do objeto é capaz de outras e diferentes configurações e os seus vários detalhes são suscetíveis de modificações em vários outros aspectos, todos sem se afastar do âmbito da tecnologia do objeto. Por conseguinte, os desenhos e a descrição detalhada devem ser considerados como ilustrativos em natureza e não como restritivos.
[008] As novas características da tecnologia do objeto são definidas nas reivindicações anexas. No entanto, para fins de explicação, várias configurações da tecnologia do objeto são exibidas nas figuras em anexo resumidas abaixo.
[009] A Figura 1 é um diagrama de um dispositivo de exemplo e ambiente de rede adequado para a prática de algumas implementações da tecnologia do objeto.
[0010] A Figura 2 ilustra uma interface de usuário de exemplo em um dispositivo de computação de cliente incluindo indicações exibidas de eventos.
[0011] As Figuras 3A-3F ilustram exemplos de situações em que as notificações são exibidas em um dispositivo de computação com base em um evento que ocorreu em outro dispositivo de computação.
[0012] A Figura 4A ilustra um exemplo de uma notificação exibida.
[0013] A Figura 4B e 4C ilustram diferentes exemplos de interfaces de notificação.
[0014] A Figura 5 ilustra um exemplo de fluxo de mensagens entre alguns componentes ilustrados na Figura 1.
[0015] A descrição detalhada que segue destina-se como uma descrição de várias configurações da tecnologia do objeto e não se destina a representar as únicas configurações em que a tecnologia do objeto pode ser praticada. Os desenhos anexos são aqui incorporados e constituem uma parte da descrição detalhada. A tecnologia do objeto não está limitada aos detalhes específicos aqui estabelecidos e pode ser praticada sem estes detalhes específicos.
[0016] Os usuários podem muitas vezes usar vários dispositivos de computação. Estes dispositivos incluem telefones inteligentes, computadores tablet, computadores de mesa, relógios inteligentes e quaisquer outros dispositivos de computação. Um evento pode ocorrer em um dispositivo de computação (por exemplo, telefone inteligente) quando o usuário está afastado do dispositivo de computação. Neste caso, o usuário pode perder o evento e pode mais tarde tornar-se consciente que o evento ocorreu quando o usuário se encontra perto do dispositivo de computação. Por exemplo, uma chamada de telefone pode ser recebida no telefone inteligente do usuário em casa quando o usuário está em um local de trabalho e interagindo com um computador de mesa. Neste cenário, o usuário pode não estar ciente que o telefone inteligente está tocando ou está atualmente recebendo uma chamada. Como resultado, o usuário pode perder, por exemplo, uma chamada de telefone sensível que pode precisar de atenção imediata do usuário. Além disso, o telefone inteligente pode continuar a tocar de forma audível ou vibrar incomodando outros indivíduos localizados perto do telefone. Em outro exemplo, o telefone inteligente pode estar localizado em uma bolsa ou bolso do usuário enquanto o usuário pode estar interagindo e dando atenção primária para outro dispositivo. Quando uma notificação (por exemplo, telefonema ou mensagem) é recebida no telefone inteligente no bolso ou bolsa do usuário, o usuário pode precisar mudar o foco a partir do outro dispositivo para pegar o telefone inteligente e ver a mensagem ou notificação. Assim, a atenção do usuário para uma determinada tarefa pode ser interrompida. Em outro cenário de exemplo, uma mensagem de serviço de mensagens (por exemplo, mensagens curtas) pode ser recebida no telefone inteligente do usuário enquanto o usuário está longe do telefone inteligente. Neste cenário, o usuário pode não ter consciência que a mensagem foi recebida e pode não ser capaz de responder à mensagem até que o usuário esteja fisicamente presente perto do telefone inteligente e seja capaz de usar o telefone inteligente. Em ainda outro cenário de exemplo, o usuário pode estar frequentemente viajando entre diferentes locais e o usuário pode estar usando qualquer dispositivo que esteja disponível para uso pelo usuário nos locais. Mais uma vez, o usuário pode esquecer de uma mensagem que tenha sido enviada para um dispositivo particular dos diferentes dispositivos, porque o usuário não está próximo e capaz de usar o dispositivo particular e está, ao invés, usando um dispositivo diferente. Nos exemplos de cenários mencionados acima, a experiência do usuário é degradada.
[0017] Em algumas implementações, uma primeira indicação de um evento detectado em um primeiro dispositivo associado com uma conta de usuário pode ser recebida em um servidor. Em um exemplo, o primeiro dispositivo pode ser associado com a conta de usuário quando o usuário pode entrar ou logar no dispositivo com credenciais de usuário que podem incluir um nome de usuário e uma senha. Em outro exemplo, o primeiro dispositivo pode ser associado com a conta de usuário quando o usuário assina ou realiza login em uma aplicação instanciada no primeiro dispositivo. Em ainda outro exemplo, o primeiro dispositivo pode ser pré- registrado ou associado com a conta de usuário. O evento detectado em um primeiro dispositivo pode incluir, mas não se limita a, um ou mais dos seguintes: recepção de solicitação de chamada de voz para o primeiro dispositivo, recepção de uma mensagem de serviço de mensagens no primeiro dispositivo ou uma mudança no nível de bateria em relação a um nível predeterminado no primeiro dispositivo.
[0018] Uma ou mais características do evento com base na primeira indicação do evento podem ser determinadas. As características do evento podem incluir, mas não estão limitadas a um tempo em que o evento é recebido, uma categoria do evento, uma prioridade do evento, ou uma conta de usuário associada com a iniciação do evento. Em algumas implementações, uma ou mais características do evento determinado podem incluir um local de um dispositivo de computação de cliente em que uma notificação é recebida e um modelo ou tipo de dispositivo (por exemplo, tablet, telefone celular, telefones inteligentes, etc). As características do evento também podem incluir uma categoria ou tipo do evento (por exemplo, mensagem curta, chamada de telefone, chamada de vídeo, etc.). Pode ser detectado se as características determinadas correspondem a pelo menos um critério de seleção. Por exemplo, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens no primeiro dispositivo a partir de um contato de usuário associado com a conta de usuário. Em outro exemplo, o critério de seleção pode ser correspondido quando as características determinadas incluem uma chamada perdida no primeiro dispositivo a partir de um contato de usuário associado à conta de usuário. Em ainda outro exemplo, o critério de seleção pode ser correspondido quando características determinadas incluem um aviso de bateria fraca para o primeiro dispositivo. Em algumas implementações, a primeira indicação do evento pode não ser difundida para exibição para o segundo dispositivo associado à conta de usuário se as características determinadas não correspondem a pelo menos um critério de seleção. Desta forma, as implementações divulgadas podem ser seletivas no fornecimento de notificações de eventos.
[0019] Um segundo dispositivo (e quaisquer dispositivos adicionais) a partir de um ou mais dispositivos associados com a conta de usuário pode ser automaticamente identificado. Por exemplo, o segundo dispositivo pode ser um dispositivo que o usuário pode ter assinado ou realizado login com credenciais de usuário que podem incluir o nome de usuário e a senha usados para realizar login no primeiro dispositivo. A primeira indicação do evento, com base nas características determinadas, é fornecida para o segundo dispositivo associado com a conta de usuário. A primeira indicação fornecida do evento pode ser exibida em tempo real ou em tempo quase real no segundo dispositivo (e os dispositivos adicionais) para permitir gestão do evento no primeiro dispositivo a partir do segundo dispositivo. Como um exemplo não limitativo, a indicação do evento pode ser exibida como uma notificação em um navegador, ou qualquer outro sistema de visualização de conteúdo de internet no segundo dispositivo. Se o usuário estiver em proximidade física com o segundo dispositivo, o usuário pode interagir com a notificação para gerenciar oportunamente o evento (por exemplo, atender chamada, rejeitar chamada, resposta para texto, desligar dispositivo, etc.) no primeiro dispositivo.
[0020] Desta forma, o usuário pode ser capaz de exibir uma indicação do evento do segundo dispositivo que pode ser perto do usuário, logo que o evento ocorre no primeiro dispositivo que está afastado do usuário. Além disso, o usuário pode interagir com a notificação exibida no segundo dispositivo para gerir o evento ocorrendo no primeiro dispositivo. Isso melhora a experiência do usuário. Deve ser apreciado que as implementações divulgadas não são limitadas a cenários quando o usuário está fisicamente distante do dispositivo do usuário. As implementações divulgadas também são úteis quando uma atenção primária do usuário está sendo dada para um computador ou qualquer dispositivo que é diferente de um dispositivo em que ocorre um evento. Por exemplo, um telefone do usuário pode estar no bolso do usuário quando ocorre um evento no telefone ou o telefone pode ter a campainha do telefone desativada. Neste cenário, quando o usuário está sentado na frente de sua tela de computador (por exemplo, laptop ou tela de computador de mesa), o usuário pode ver uma notificação de um evento que ocorreu no telefone na tela do computador. Isso permite que o usuário decida com mais rapidez como lidar com uma interrupção resultante de um evento no telefone do usuário, em vez de mudar o seu foco para o telefone (por exemplo, por retirar o telefone de um bolso ou bolsa, etc.). Este exemplo é ilustrativo e não se destina a limitar as implementações divulgadas.
[0021] Alguns aspectos da tecnologia do objeto incluem armazenamento de informações sobre uma conta de usuário em um servidor. O usuário tem a opção de impedir o armazenamento de tais informações. O usuário também pode ser fornecido com uma oportunidade de controlar se programas ou recursos coletam ou compartilham informações de usuário (por exemplo, informações sobre as informações de conta do usuário, preferências do usuário, etc.). Assim, o usuário pode ter controle sobre como informações são coletadas sobre o usuário e usadas por um servidor.
[0022] A Figura 1 é um diagrama que ilustra a arquitetura de exemplo para notificações entre dispositivos de acordo com algumas implementações da tecnologia do objeto. O servidor 180 inclui processador 112, memória 120, armazenamento 126, barramento 124, módulo de entrada / saída 128, dispositivo de entrada 116, dispositivo de saída 114 e módulo de comunicações 118. A memória 120 inclui determinador de evento 132 e identificador de dispositivo de cliente 134. O servidor 180 pode incluir adicionalmente um dispositivo de saída (por exemplo, tela sensível ao toque, tela não sensível ao toque), dispositivo de entrada (por exemplo, um teclado, tela sensível ao toque ou mouse) para receber entrada de usuário. Em algumas implementações, o servidor 180 inclui um ou mais módulos para facilitar a interação do usuário com um navegador ou uma aplicação de propósito específico executando no dispositivo de computação de cliente 190 ou para processamento de dados armazenados em outros componentes incluindo e interagindo com os componentes da Figura 1. O servidor 180 pode ser implementado como uma única máquina com um único processador, uma máquina de multiprocessadores, ou um conjunto de servidores, incluindo várias máquinas com múltiplos processadores. Módulo de comunicação 118 pode permitir que o servidor 180 envie e receba dados através da rede 150 para serviço de mensagens na nuvem 110, servidor de cache 196 e dispositivos de computação de cliente 190 e 192. Enquanto a Figura 1 ilustra dois dispositivos de computação de cliente, deve ser apreciado que o sistema não está limitado a estes dispositivos de computação de cliente e pode operar e comunicar, por exemplo, com qualquer número de dispositivos de computação, em paralelo e em tempo real.
[0023] Em algumas implementações, o servidor 180 pode ser associado a um serviço de mensagens na nuvem 110 e pode enviar e receber dados através da rede 150 para o serviço de mensagens na nuvem 110. Serviço de mensagens na nuvem 110 pode, em seguida, encaminhar os dados recebidos do servidor 180 para os dispositivos de computação de cliente 190 e 192. Dispositivos de computação de cliente 190 e 192 podem enviar e receber dados de e para o servidor 180 através do serviço de mensagens na nuvem 110 ou podem enviar e receber dados diretamente para e do servidor 180. Este exemplo é ilustrativo e não se destina a limitar as implementações divulgadas. Em algumas implementações, a funcionalidade fornecida pelo serviço de mensagens na nuvem 110 pode ser incluída no servidor 180 e um servidor de mensagens na nuvem separado 110 não precisa ser indicado. Uma operação de um servidor de mensagens na nuvem 110, de acordo com algumas implementações, é discutida adicionalmente abaixo.
[0024] Em algumas implementações, servidor de cache 196 pode armazenar ou armazenar em cache dados incluindo, mas não limitados a vídeo, áudio, texto, imagens ou qualquer combinação dos mesmos. Os dados armazenados no servidor de cache 196 podem ser fornecidos para exibição em páginas da internet, notificações ou quaisquer outras áreas de conteúdo de internet. Em algumas implementações, alguns dados armazenados no servidor de cache 196 podem ter um tempo predefinido para viver ou tempo de validade após o qual os dados podem ser apagados ou eliminados do servidor de cache 196.
[0025] Em algumas implementações, o servidor 180 pode ser associado com um servidor de dados sociais 194 que inclui dados sociais e pode enviar e receber dados através da rede 150 para o servidor de dados sociais 194. Em algumas implementações, o servidor de dados sociais 194 pode armazenar item (s) de conteúdo social (por exemplo, item (ns) de conteúdo postado) associado a um serviço de rede social). O servidor de dados sociais 194 também pode armazenar dados relativos a contas de usuários e itens de conteúdo que estão associados com as contas de usuário. Por exemplo, o servidor de dados sociais 194 pode incluir dados que indicam itens de conteúdo que foram vistos, compartilhados, comentados, favorecidos ou desfavorecidos por uma conta de usuário associada a um usuário. O servidor de dados sociais 194 pode armazenar uma estrutura de dados de conexão social que é indicativa de conexões sociais entre contas de usuário associadas com o serviço de rede social. O servidor de dados sociais 194 também pode armazenar comentários de usuário feitos (ou anotações) sobre conteúdo de multimídia consumido pelo usuário e armazenado em servidor de multimídia 196.
[0026] Em algumas implementações, o serviço de mensagens na nuvem 110, o servidor de cache 196, o servidor de dados sociais 194 e o servidor 180 podem comunicar uns com os outros e com dispositivos de computação de cliente 190 e 192 através de uma rede 150. A rede 150 pode incluir a Internet, intranet, uma rede de área local, uma rede de área ampla, uma rede com fio, uma rede sem fio ou uma rede privada virtual (VPN). Embora apenas um serviço de mensagens na nuvem 110, servidor de cache 196, o servidor de dados sociais 194 e o servidor 180 sejam ilustrados, a tecnologia do objeto pode ser implementada em conjunto com qualquer número de servidores de mensagens na nuvem 110, os servidores de cache 196, servidores de dados sociais 194 e servidores 180, e dispositivos de computação de cliente. Em algumas implementações não limitativas, um único dispositivo de computação pode implementar as funções de servidor de mensagens na nuvem 110, servidor de cache 196, o servidor de dados sociais 1 94 e o servidor 180.
[0027] Dispositivo de computação de cliente 190 ou 192 pode ser um computador portátil, um computador de mesa, um telefone celular, um assistente pessoal digital (PDA), um computador tablet, um netbook, uma televisão com um ou mais processadores incorporados ou acoplados na mesma, uma máquina física, ou uma máquina virtual. Dispositivo de computação de cliente 190 ou 192 pode cada incluir um ou mais de um teclado, um mouse, uma tela ou uma tela sensível ao toque. Dispositivo de computação de cliente 190 ou 192 pode instanciar um navegador configurado para exibir páginas da internet, bem como notificações e indicações de eventos que ocorrem em dispositivos de computação. Deve ser apreciado que as notificações e outros conteúdos fornecidos de acordo com as implementações possam também ser exibidos fora do navegador.
[0028] Em algumas implementações, dispositivos de computação de cliente 190 e 192 podem incluir software implementado na memória de hardware e executável usando um ou mais processadores. O software pode permitir os dispositivos de cliente comunicarem com o servidor 180. Por exemplo, o software pode permitir receber dados (por exemplo, mensagens e notificações a partir do servidor 180) e transmitir dados para o servidor 180 e outros componentes ilustrados na Figura 1. O software pode ser pré-instalado em dispositivos de cliente 190 e 192 ou pode ser instalado por um usuário. O software pode ser instalado automaticamente em dispositivos de computação de cliente 190 e 192 quando os dispositivos de computação de cliente 190 e 192 realizam atualizações de software. O software pode configurar e reconfigurar automaticamente, em qualquer momento, dispositivos de computação de cliente 190 e 192 como um transmissor (ou fonte) ou um receptor (ou recipiente). O software pode configurar dispositivos de computação de cliente 190 e 192 para detectar automaticamente eventos (por exemplo, chamada telefônica, mensagem recebida, bateria fraca, etc.) e fornecer uma indicação dos eventos detectados para o servidor 180. O software pode estar disponível para descarregamento através de um mercado ou loja de aplicativos móveis. Em algumas implementações, um identificador de conta de usuário (por exemplo, um endereço de e-mail) ou qualquer outro identificador pode ser recebido a partir do usuário através do software que permite dispositivos de computação 190 ou 192 registrem com o servidor 180.
[0029] Em algumas implementações, quando um identificador de conta de usuário e senha válidos são recebidos (ou um usuário é autenticado) em dispositivos de computação 190 ou 192, os dispositivos podem ser associados com a conta de usuário. Por exemplo, se um usuário possui ou tem acesso a ambos dispositivos de computação de cliente 190 e 192, o usuário pode fornecer o identificador e uma senha no software instalado em qualquer um dos dispositivos de computação 190 e 192 para associar os dois dispositivos com a conta de usuário. Uma indicação para registrar com o servidor 180 também pode ser recebida através do software. Desta forma, os dispositivos de computação 180 podem ser registrados para comunicação com o servidor 180.
[0030] Em algumas implementações, um processo de registro de dispositivos de computação de cliente com o servidor 180 pode ter pontos de falha assíncronos. Em outras palavras, os dispositivos de computação de cliente podem repetir automaticamente (ou evitar novas tentativas) para conectar e registrar com o servidor 180 com base em estados de conectividade dos dispositivos de computação de cliente 190, 192 ou servidor 180. Desta forma, os dispositivos de computação de cliente 190, 192 e o servidor 180 podem tentar permanecer em um estado conectado. Em algumas implementações, uma interface de usuário pode ser fornecida aos dispositivos de computação de cliente 190 e 192 para permitir aos usuários verificarem o estado de conectividade e outros parâmetros associados ao serviço (ou saúde de serviço). Deve ser apreciado que em algumas implementações dispositivos de computação 190 e 192 podem ser pré- registrados ou pré-configurados para comunicação com o servidor 180 e registro ou configuração adicional de dispositivos de computação 190 e 192 pode não ser necessário.
[0031] Como discutido acima, a memória 120 do servidor 180 pode incluir determinador de evento 132 e identificador de dispositivo de cliente 134.
[0032] Em algumas implementações, determinador de evento 132 recebe uma primeira indicação de um evento detectado em um primeiro dispositivo (dispositivo de cliente a seguir 190) associado com uma conta de usuário e determina uma ou mais características do evento com base na primeira indicação do evento. Em algumas implementações, o determinador de evento 132 pode gerar notificações para certos tipos de eventos. Por exemplo, quando a primeira indicação do evento é recebida no determinador de evento 132, determinador de evento 132 pode verificar se o evento é um tipo particular de evento (por exemplo, chamada de telefone, chamada não atendida, mensagem de texto a partir de um contato). O tipo particular de evento pode ser um evento sensível a prioridade ou tempo. Se for determinado que o evento é o tipo particular de evento, em seguida, determinador de evento 132 pode instruir o identificador de dispositivo de cliente 134 para identificar e encaminhar uma notificação do evento para exibição em um segundo dispositivo (dispositivo de cliente a seguir 192). De outro modo, em algumas implementações, se for determinado que o evento não é o tipo particular de evento, em seguida, determinador de evento 132 pode não instruir o identificador de dispositivo de cliente 134 para identificar e encaminhar uma notificação do evento para exibição em um segundo dispositivo (dispositivo de cliente a seguir 192). Desta forma, determinador de evento 132 pode selecionar determinados eventos para notificação em dispositivos de computação de cliente com base nas características do evento. Assim, um visualizador pretendido das notificações apenas pode apenas ser interrompido por notificações que podem ser úteis para o visualizador. Em algumas implementações, as implementações divulgadas podem seletivamente encaminhar notificações que são únicas, exclusivamente provenientes ou distintas em um primeiro dispositivo de computação (por exemplo, dispositivo de computação de cliente 190). Desta forma, o usuário não precisa receber e ser potencialmente esmagado por notificações duplicadas retransmitidas para um segundo dispositivo de computação (por exemplo, dispositivo de computação de cliente 192). Em algumas implementações, categorias de eventos que incluem o tipo particular de evento podem ser armazenadas no banco de dados 192.
[0033] Como discutido acima, em algumas implementações, as características do evento podem incluir, mas não estão limitadas a um tempo em que o evento é recebido, uma categoria do evento, uma prioridade do evento, ou uma conta de usuário associada com a iniciação do evento. Em algumas implementações, a uma ou mais características do evento determinado podem incluir um local de um dispositivo de computação de cliente em que uma notificação é recebida e um modelo ou tipo de dispositivo (por exemplo, tablet, telefone celular, telefones inteligentes, etc.). As características do evento também podem incluir uma categoria ou tipo do evento (por exemplo, mensagem curta, chamada de telefone, chamada de vídeo, etc.). Em algumas implementações, determinador de evento 132 pode detectar se as características determinadas correspondem pelo menos um critério de seleção. Por exemplo, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens no primeiro dispositivo a partir de um contato de usuário associado à conta de usuário. Em outro exemplo, o critério de seleção pode ser correspondido quando as características determinadas incluem uma chamada perdida no primeiro dispositivo a partir de um contato de usuário associado à conta de usuário. Em ainda outro exemplo, o critério de seleção pode ser correspondido quando características determinadas incluem um aviso de bateria fraca para o primeiro dispositivo.
[0034] Identificador de dispositivo de cliente 134 identifica automaticamente um segundo dispositivo a partir de um ou mais dispositivos associados à conta de usuário e fornece a primeira indicação do evento, com base nas características determinadas, para o dispositivo de cliente 192 associado com a conta de usuário. Por exemplo, identificador de dispositivo de cliente 134 pode rever banco de dados 192 conectado à rede 150 para determinar quais os dispositivos foram associados com a conta de usuário. Essa associação de dispositivos com a conta de usuário pode ser realizada pelo servidor 180 quando, por exemplo, informações de conta de usuário são recebidas pelo servidor durante o registro com o servidor 180. No dispositivo de cliente 192, a primeira indicação fornecida do evento pode ser exibida em para permitir gestão do evento no dispositivo de cliente 190 a partir do dispositivo de cliente 192. Em algumas implementações, a primeira indicação do evento pode não ser difundida para exibição pelo identificador de dispositivo de cliente 134 para o segundo dispositivo associado com a conta de usuário se as características determinadas não correspondem a pelo menos um critério de seleção. Desta forma, as implementações divulgadas podem ser seletivas no fornecimento de notificações de eventos.
[0035] A Figura 2 ilustra uma interface de usuário de exemplo 200 no dispositivo de computação de cliente 192 (por exemplo, computador de mesa ou laptop) que inclui indicações exibidas de eventos (por exemplo, notificações) que podem ser detectadas pelo dispositivo 190 que, neste exemplo, pode ser um telefone inteligente. Indicação exibida de evento ou notificação 202 indica que o nível da bateria do dispositivo de computação 190 é "baixo" e está em "10%" do nível de bateria completo. Notificação 204 indica que uma mensagem de texto foi recebida a partir do usuário A. O conteúdo da mensagem de texto também é exibido (por exemplo, "Hey - quer ir almoçar?"). Notificação 206 indica que um telefonema do usuário A foi perdido. Como discutido acima, em algumas implementações, as notificações 202-206 podem ser exibidas simultaneamente em tempo real ou quase em tempo real no dispositivo de computação de cliente 192, e quaisquer outros dispositivos de computação de cliente associados com a conta de usuário, à medida que respectivos eventos ocorrem em dispositivo de computação de cliente 190. Assim, deve ser apreciado que as notificações podem também ser mostradas simultaneamente em dispositivos outros que dispositivo de computação de cliente 192 que está associado com a conta de usuário. Isso permite que um usuário visualize convenientemente uma notificação em qualquer um dos dispositivos de computação de cliente que podem estar associados à conta de usuário e o usuário não precisa estar vinculado a estar perto de um dispositivo particular para ver ou interagir com uma notificação.
[0036] Deste modo, as implementações divulgadas podem fornecer uma notificação, mensagens e transmitir de conteúdo unificados. Além disso, as notificações também podem incluir áudio, vídeo ou qualquer combinação dos mesmos. Interações com as notificações podem ser realizadas através de voz, toque, caneta ou qualquer outro mecanismo.
[0037] Voltando à Figura 2, uma indicação que um evento foi recebido mais tarde pode ser exibida sobre uma indicação de um evento que é recebido anteriormente. Por exemplo, a notificação 204 pode indicar um evento que tenha ocorrido após o evento associado com notificação 206. Este exemplo é ilustrativo e não se destina a limitar as implementações divulgadas. Notificações 202-206 podem também estar associadas com imagens e outros conteúdos para fornecer uma indicação visual de uma conta de usuário associada com a notificação, uma categoria da notificação ou qualquer outra característica da notificação. Por exemplo, imagem 208 associada com notificação 206 é uma imagem associada a uma conta de usuário do usuário A.
[0038] Em algumas implementações, a fim de exibir imagens (por exemplo, imagem 208) quando o evento é iniciado a partir de outra conta de usuário diferente da conta de usuário associada a dispositivos de computação de cliente 190 e 192, o dispositivo de computação de cliente em que o evento ocorre (por exemplo, o dispositivo de computação de cliente 190) pode determinar se uma imagem associada a outra conta de usuário está disponível no dispositivo de computação de cliente 190. Quando a imagem está disponível no dispositivo de computação de cliente 190, o dispositivo de computação de cliente 190 gera uma referência para a imagem. A referência pode ser um valor de hash ou síntese de mensagem. Como um exemplo não limitante e ilustrativo, o valor de hash pode ser gerado utilizando um algoritmo de hash criptográfico ou hash seguro (SHA) (por exemplo, SHA- 256). Com base na referência gerada, o dispositivo de computação de cliente 190 pode determinar se a imagem está disponível também no servidor de cache remoto 196. Quando é determinado que a imagem não está disponível no servidor de cache 196, o dispositivo de computação de cliente 190 pode enviar a imagem para servidor de cache 196.
[0039] Quando a imagem é determinada para estar disponível no servidor de cache 196, o dispositivo de computação de cliente 190 pode incluir a referência gerada na primeira indicação do evento fornecido ao servidor 180. Dispositivo de computação de cliente 192 pode recuperar a imagem a partir de servidor de cache 196 com base na referência quando a referência é recebida na notificação a partir do servidor 180 e se a imagem referenciada não já está disponível no dispositivo de computação de cliente 192. Em algumas implementações, dispositivo de computação de cliente 190 pode usar uma interface de programação de aplicação (API) para carregar a imagem para o servidor de cache 196. A imagem pode estar em qualquer formato ou codificação de imagem (por exemplo, JPG, PNG, etc.). Em algumas implementações, quando a imagem é carregada para o servidor de cache 196, o servidor de cache 196 gera e retorna o valor de referência para o dispositivo de computação de cliente 190. A referência pode então ser usada por qualquer dispositivo de computação de cliente, incluindo dispositivo de computação de cliente 192, para recuperar a imagem para exibição.
[0040] Em algumas implementações, dispositivos de computação de cliente 190 e 192 podem usar uma função "imagem de verificação" para determinar se a imagem está disponível no servidor de cache 196. Em algumas implementações, os dispositivos de computação de cliente 190 e 192 podem usar uma função de recuperação de imagem para fornecer um valor de hash da imagem e em troca receber a imagem a partir do servidor de cache 196. Desta forma, a imagem não precisa ser transmitida ao servidor 180 (e para o dispositivo de computação de cliente 192) a partir de dispositivo de computação de cliente 190 cada vez que ocorre um evento no dispositivo de computação de cliente 190. Em vez disso, uma referência que endereça a imagem no servidor de cache 196 pode ser fornecida por meio de dispositivos de computação de cliente 190, 192 e servidor 180. A imagem pode ser recuperada a partir do servidor de cache 196 com base na referência. Assim, o uso de largura de banda de rede adicional, que pode ter sido necessário para transmitir imagens, pode ser salvo.
[0041] Em algumas implementações, a fim de controlar o acesso às imagens (e outros conteúdos) no servidor de cache 196, dispositivos de computação de cliente 190 e 192 podem criptografar cada imagem com uma chave gerada exclusivamente para a imagem. Em algumas implementações, a chave gerada pode ser transmitida por dispositivos de computação de cliente 190 e 192 (ou servidor 180) ao longo de um sistema de mensagens seguro para um ou mais outros dispositivos que podem exibir uma indicação (por exemplo, mensagem ou uma notificação) incluindo uma imagem para respectivos usuários. Em algumas implementações, uma vez que o servidor 180 pode não reter chaves de criptografia após entregar de imagem, imagens no servidor de cache 196 podem permanecer criptografadas em repouso, e podem não ser lidas por usuários não autorizados ou operadores de sistemas que podem não possuir as chaves de criptografia válidas. Em algumas implementações, uma chave de criptografia de imagem única pode ser gerada a partir de um hash de uma imagem em si. Isto permite uma determinada imagem (por exemplo, uma imagem de perfil de um usuário), ser armazenada apenas uma vez no servidor de cache 196 e compartilhada entre todas as outras notificações que fazem referência a imagem dada. No entanto, dispositivos de computação de cliente 190 e 192 que podem ter a chave de criptografia de imagem podem decodificar a imagem para exibição a um usuário.
[0042] Em criptografia, um código de autenticação de mensagem com chave hash (HMAC) pode ser uma construção para o cálculo de um código de autenticação de mensagem (MAC) envolvendo uma função hash criptográfica em combinação com uma chave criptográfica secreta. Um valor de sal pode ser dado aleatório que é usado como uma entrada adicional para uma função que realiza função hash de senha ou frase de senha. Image_index = HMAC(index_salt, image) (1) Image_key = HMAC(key_salt, image) (2) Cached_image = Encode(image_key, image) (3)
[0043] Referindo-se ao exemplo de função (1) acima, um Image_index pode ser computado como HMAC(index_salt, image) onde "image" é dados de imagem e index_salt é um valor de sal. Referindo-se à função (2), Image_key pode ser computado como HMAC(key_salt, image) onde "image" é dados de imagem e key_salt é um valor de sal. Image_index e image_key podem ser transmitidas em cada indicação (por exemplo, mensagem de notificação) a partir do servidor 180 para dispositivos de cliente autorizados (por exemplo, dispositivos de computação de cliente 190 e 192), o que lhes permite recuperar e decodificar a imagem armazenada em cache correspondente. Cached_image pode ser armazenada e recuperada a partir do servidor de cache 196 usando image_index como uma chave de acesso.
[0044] Em algumas implementações, cada imagem armazenada em cache pode ser criptografada com uma chave única gerada em um primeiro dispositivo (por exemplo, dispositivo de computação de cliente 190) antes da transmissão para um segundo dispositivo (por exemplo, dispositivo de computação de cliente 192) com uma primeira indicação do evento. Em algumas implementações cada imagem armazenada em cache pode ser associada com uma chave com base no conteúdo gerado no dispositivo de computação de cliente 190 e transmitido ao dispositivo de computação de cliente 192. Um benefício da chave com base no conteúdo (por exemplo, um hash da image) é que cada imagem (codificada) pode precisar apenas ser armazenada uma vez no servidor de cache 196, uma vez que uma chave única pode não ser necessária para decodificar a imagem. Em algumas implementações, um valor de tempo de vida (TTL) com uma indicação do evento pode ser incluído, em que o valor de TTL indica um tempo de expiração da primeira indicação (ou qualquer outra mensagem de indicação ou notificação). Em algumas implementações, um valor de TTL pode ser implementado como um contador ou horodata anexada a ou incorporado na indicação do evento. Uma vez que a contagem de evento prescreveu ou período de tempo tenha decorrido, a indicação do evento pode ser descartada. Desta forma, usando um valor de TTL, as implementações divulgadas podem ser otimizadas através da remoção de indicações em fila de eventos que podem não ser entregues antes da sua data de expiração.
[0045] A Figura 3A ilustra um exemplo em que dispositivo de computação de cliente 190 é um telefone inteligente e dispositivo de computação de cliente 192 é um computador portátil. Na Figura 3A, notificações associadas com o dispositivo de computação de cliente 190 ainda não estão sendo exibidas. A Figura 3B ilustra um cenário onde um telefonema a partir do usuário B é recebido pelo dispositivo de computação de cliente 190. Quando a chamada é recebida, notificação 310 é exibida no dispositivo de computação de cliente 192. A notificação pode incluir uma imagem do autor da chamada ou usuário B. Em um exemplo, quando uma notificação é uma notificação de chamada recebida para um evento de chamada recebida pelo dispositivo de computação de cliente 190, a notificação pode ser exibida no dispositivo de computação de cliente 192 em tempo real quando a chamada é recebida e independentemente de se dispositivo de computação de cliente 190 está tocando, vibrando ou em um modo silencioso. A notificação também pode exibir um identificador de chamadas (ou um nome) associado a um número que originou a chamada e uma descrição da notificação (por exemplo, "Seu telefone está tocando").
[0046] A Figura 3C e 3D ilustram cenários onde dispositivo de computação de cliente 190 continua a estar em um estado de chamada recebida e o usuário no dispositivo de computação de cliente 192 pode optar por atender a chamada em qualquer momento em que a chamada está sendo recebida ou entrando. Além disso, ambos botões de ignorar e atender chamada podem ser exibidos permitindo que o usuário no dispositivo de computação 192 descarte ou atenda a chamada.
[0047] Deste modo, um usuário usando um computador de mesa ou um computador portátil pode visualizar e interagir com a notificação da chamada recebida em tempo real. A notificação pode ser exibida em um navegador em execução no dispositivo de computação de cliente 192. Quando o usuário responde a chamada no dispositivo de computação de cliente 192, dispositivo de computação de cliente 190 pode parar de tocar ou vibrar e o usuário pode ter uma conversa com o chamador (usando um microfone e alto-falante associados com dispositivo de computação de cliente 192). As implementações divulgadas não são limitadas por distâncias geográficas. Por exemplo, um telefone do usuário que está localizado em Pequim pode receber uma chamada enquanto o usuário esteja fisicamente presente na mesa do usuário em Nova Iorque. O usuário pode, então, atender a chamada feita para o telefone em Pequim, em tempo real, enquanto o usuário estiver em Nova Iorque. Este exemplo é ilustrativo e não é destinado a limitar as implementações divulgadas.
[0048] Em algumas implementações, quando o usuário atende uma chamada, o indicador de estado do usuário que pode ser exibido através de um serviço de mensagens pode ser alterado para indicar que o usuário está em uma chamada de voz com, por exemplo, o usuário B. O usuário pode selecionar um elemento de usuário de "desligar" ou fim de chamada que pode ser exibido na notificação para terminar a chamada. Se o usuário optar por não atender a chamada, então, como mostrado na Figura 3E, a notificação "Seu telefone está tocando" pode mudar automaticamente para "Você perdeu uma notificação de chamada", após a chamada recebida terminar e permanecer sem resposta. Quaisquer mudanças em notificações ou rejeições de notificações podem ser instantaneamente propagadas para todos os dispositivos associados à conta de usuário. Desta forma, todos os dispositivos de computação de cliente associados à conta de usuário podem permanecer sincronizados.
[0049] Em algumas implementações, os dados de voz associados com a chamada podem ser retransmitidos a partir de dispositivo de computação de cliente 190 para dispositivo de computação de cliente 192 através do servidor 180. Em outras implementações, os dados de voz podem ignorar o dispositivo de computação de cliente 190 e podem ser retransmitidos diretamente a partir do dispositivo originando chamada através do servidor 180 para o dispositivo de computação de cliente 192. Qualquer outra forma de retransmissão ou transmissão de dados poderá ser utilizada. O chamador não precisa saber ou se preocupar com o fato de se o usuário está usando o dispositivo de computação de cliente 190 ou 192. Desta forma, a partir de tanto as perspectivas do chamador e chamado, as modalidades divulgadas fornecem uma experiência de tempo perfeita e real. Se o usuário não atende a chamada ou rejeita a chamada, uma notificação de chamada perdida (por exemplo, notificação 206) pode ser exibida no dispositivo de computação de cliente 192. Além disso, deve ser notado que as notificações 202-206 podem ser exibidas simultaneamente e em tempo real (ou quase em tempo real) em outros dispositivos, em conjunto com o dispositivo de computação de cliente 190 e 192, que pode ser associado com a conta de usuário também associada com dispositivos de computação de cliente 190 e 192.
[0050] Em um exemplo, onde uma notificação é uma mensagem de serviço de mensagens (por exemplo, mensagem de serviço de mensagens curtas ou SMS) recebida no dispositivo de computação de cliente 190, a notificação pode ser exibida no dispositivo de computação de cliente 192 instantaneamente após o recebimento da mensagem. O dispositivo de computação de cliente 190 pode estar em um modo de toque habilitado, vibração ou silencioso. A notificação pode também exibir um identificador de chamador (ou um nome) associado com um número ou conta originando a mensagem (por exemplo, imagem 208). Desta forma, um usuário usando um computador de mesa ou portátil pode ver a notificação (por exemplo, notificação 204) da mensagem em tempo real ou quase em tempo real. A notificação pode ser exibida no navegador executando dispositivo de computação de cliente 192. Também, como mostrado na Figura 4A, notificação 402 pode ser exibida fora do navegador e em uma área de trabalho do dispositivo de computação de cliente 192. A Figura 3F ilustra outro cenário em que uma notificação é exibida em uma área de trabalho do dispositivo de computação de cliente 192. A área de trabalho pode ser uma área independente de outros aplicativos exibidos em execução no dispositivo de computação de cliente 192.
[0051] A Figura 4B ilustra interface de notificação 420 que inclui notificações 414 e 406. Notificação 406 é uma notificação que indica as condições meteorológicas atuais. As condições meteorológicas podem ser associadas a uma localização geográfica do dispositivo de cliente 190 ou dispositivo de cliente 192. As localizações geográficas podem ser diferentes (por exemplo, diferentes salas de uma casa, diferentes cidades, países ou continentes, etc.). O usuário pode interagir com a notificação no dispositivo de computação de cliente 192 respondendo à mensagem de serviço de mensagens do usuário A (por exemplo, "Hey - quer ir almoçar?") via elemento de resposta 410 ou elemento "Estou ocupado" 412. Como um exemplo não limitativo, elemento de seleção 412 pode fornecer uma resposta pré-configurada para o remetente da mensagem que o usuário está atualmente ocupado ou incapaz de responder. O usuário pode rejeitar qualquer notificação por selecionar elemento de fechar ou rejeitar 414 associado com as respectivas notificações. Em algumas implementações, quando um usuário descarta uma notificação, outras instâncias da notificação que podem ser exibidas em outros dispositivos de computação associados à conta de usuário também são rejeitadas ao mesmo tempo. Quando um usuário seleciona o elemento de resposta 412, a interface 416 pode ser instanciada no dispositivo de computação de cliente 192. Em algumas implementações, a interface de usuário 416 pode exibir uma ou mais mensagens anteriores recebidas do remetente da mensagem em conjunto com a mensagem mais recente. Isso oferece ao usuário de dispositivo de computação de cliente 192 com contexto que pode ser utilizado pelo usuário para responder adequadamente à mensagem mais recente.
[0052] Em algumas implementações, o usuário do dispositivo de computação de cliente 192 pode usar a interface 416 para enviar e visualizar qualquer número de mensagens e pode fechar ou terminar interface 416 a qualquer momento. Interface 418 é uma outra interface semelhante para a interface 416 que permite um usuário no dispositivo de computação de cliente 192 enviar e receber mensagens. A Figura 4C ilustra outra interface de notificação 424. Fazendo referência à Figura 4C, as notificações também podem incluir uma notificação indicando a localização do dispositivo de computação de cliente 190 (por exemplo, um telefone inteligente).
[0053] Deve ser apreciado que as implementações descritas não estão limitadas a mensagens de serviço de mensagens curtas e podem utilizar qualquer outra forma de sistema, método ou estrutura de trabalho de mensagens. Em algumas implementações, notificações recebidas de dispositivo de computação de cliente 190 no dispositivo de computação de cliente 192 podem ser associadas com um tempo de expiração ou um valor de tempo de vida (TTL). Por exemplo, se o valor de tempo de vida é de uma hora, a mensagem pode ser escondida de exibição ou eliminada uma hora depois de ser recebida e exibida no dispositivo de computação de cliente 192. Este exemplo é ilustrativo e não se destina a limitar as implementações divulgados.
[0054] Em algumas implementações, a interface 416 (ou 418) pode ser instanciada automaticamente para exibição no dispositivo de computação de cliente 192 quando uma mensagem é recebida pelo dispositivo de computação de cliente 190. Em outras implementações, a interface 416 (ou 418) pode ser automaticamente instanciada para exibição no dispositivo de computação de cliente 192 mediante uma interação de usuário (ou indicação para enviar uma mensagem) no dispositivo de computação de cliente 192. Em algumas implementações, dispositivo de computação de cliente 192 pode gerir automaticamente um número de interfaces de mensagens de modo que aquelas que estão inativas por um período predeterminado de tempo podem ser reduzidas automaticamente pelo dispositivo de computação de cliente 192. Deste modo, o usuário não precisa experimentar aglomeração de múltiplas interfaces de mensagens. Em algumas implementações, estilo visual de interface 416 ou 418 incluindo quaisquer ícones pode ser automaticamente determinado com base em uma interface visual ou tema de estilo de dispositivo de computação 192 ou pode ser determinado pelo servidor 180 ou mesmo definido por um usuário do dispositivo de computação 192.
[0055] Em algumas implementações, uma indicação pode ser exibida para o usuário através de uma interface 416 que mensagens fornecidas via interface 416 podem incorrer em taxas de mensagens de terceiros em algumas situações. Em algumas implementações, a interface 416 pode estar associada a um serviço de comunicação com base em nuvem acessível através de software de cliente do serviço em execução em dispositivo de computação de cliente 192. O serviço de comunicação com base em nuvem pode permitir comunicação de vídeo, áudio e texto entre dois ou mais usuários incluindo conferência de vídeo, voz e texto entre vários usuários. Em algumas implementações, comunicações enviadas ou recebidas através de uma interface do serviço de mensagens na nuvem no dispositivo de computação de cliente podem ter um estilo visual exibido diferente da interface 416 ou 418.
[0056] Em um exemplo, onde uma notificação é associada com um nível de bateria no dispositivo de computação de cliente 190, a notificação pode ser exibida no dispositivo de computação de cliente 192 em tempo real ou em tempo quase real. Por exemplo, quando o nível da bateria no dispositivo de computação de cliente 190 (ou qualquer outro dispositivo associado com a mesma conta de usuário como dispositivo de computação de cliente 192) cai abaixo de um valor de limiar predeterminado (por exemplo, 10% do nível de bateria completa), dispositivo de computação de cliente 190 pode detectar este evento e transmitir uma indicação deste evento para o servidor 180. O servidor 180 pode então encaminhar a indicação para exibição no dispositivo de computação de cliente 192. Um usuário no dispositivo de computação de cliente 192 pode então interagir com a notificação e fornecer uma ação para gerir o evento. Por exemplo, o usuário pode indicar que o dispositivo de computação de cliente 190 deve ser desligado ou ter sua energia desligada através de uma entrada através da notificação exibida. Após recepção da ação no dispositivo de computação de cliente 190 através do servidor 180, o dispositivo de computação de cliente pode ser automaticamente desligado ou ter sua energia desligada. Em algumas implementações, o usuário também pode indicar que uma ou mais notificações exibidas no dispositivo de computação de cliente 190 devem ser limpas ou rejeitadas.
[0057] A Figura 5 ilustra um exemplo de fluxo de mensagens entre dispositivos de computação de cliente 190194, servidor 180 e servidor de mensagens na nuvem 110. Dispositivos de computação de cliente 190-194 podem ser associados com a mesma conta de usuário. Dispositivo de computação de cliente 190 pode ser um telefone inteligente, tablet ou qualquer dispositivo móvel e dispositivos de computação de cliente 192 e 194 podem ser computadores de mesa ou laptops.
[0058] Em estágio 502, um evento pode ocorrer e pode ser detectado pelo dispositivo de computação de cliente 190. Em estágio 504, o dispositivo de computação de cliente 190 pode enviar a indicação do evento (ou notificação) para servidor 180. O servidor 180 pode então determinar outros dispositivos de computação associados à mesma conta de usuário. Particularmente, o servidor 180 pode determinar que os dispositivos de computação de cliente 192 e 194 sejam associados com a mesma conta de usuário além de dispositivos de computação de cliente 190. Dispositivos de computação de cliente 192 e 194 também podem ser determinados para serem receptores ou "recipientes" para notificações de eventos e separados do dispositivo de computação de cliente 190 de origem ou transmissor.
[0059] Em estágio 506, o servidor 180 pode, então, difundir ou, simultaneamente, fornecer a notificação para clientes de software (por exemplo, navegadores) em dispositivos de computação de cliente 192 e 194. Em estágio 508, notificações difundidas a partir de servidor 180 podem ser retransmitidas para os clientes de software nos dispositivos de computação de cliente 192 e 194 por serviço de mensagens na nuvem 110. Em estágio 510, as notificações podem ser exibidas nos dispositivos de computação de cliente 192 e 194 simultaneamente e em tempo real. Em estágio 512, uma interação incluindo uma ação pode ser recebida através da notificação exibida no dispositivo de computação de cliente 192. Em estágio 514, a indicação incluindo a ação pode ser fornecida para o servidor 180. Em estágio 516, o servidor 180 pode difundir a ação a todos os dispositivos de computação de cliente 190, 192 e 194, via serviço de mensagens na nuvem 110. Em estágio 518, serviço de mensagens na nuvem 110 pode fornecer ou encaminhar a ação para determinar inicialmente dispositivo de computação de cliente de origem 190, bem como os dispositivos de computação de cliente de receptor 192 e 194.
[0060] Em algumas implementações, uma ou mais mensagens de serviço podem ser trocadas entre um ou mais componentes ilustrados na Figura 1. Em algumas implementações, uma mensagem de registrador pode ser fornecida pelo dispositivo de computação de cliente 190 ou 192 para o servidor 180. A mensagem de registrador pode ser fornecida quando um usuário fornece, através de uma interface de autorização no dispositivo de computação de cliente 190 ou 192, um nome de usuário ou endereço de e-mail com uma senha e confirma a intenção de registrar com serviços de notificação e mensagens fornecidos pelo servidor 180. Em algumas implementações, a mensagem de cancelar registro pode ser fornecida pelo dispositivo de computação de cliente 190 ou 192 quando um usuário em dispositivos de computação de cliente 190 ou 192 indica através de uma interface de usuário que o usuário gostaria de descontinuar serviços a partir do servidor 180.
[0061] Em algumas implementações, um dispositivo de computação de cliente 190 ou 192 pode solicitar uma mensagem de ping para ser enviada a partir do servidor 180 de volta para o dispositivo de computação de cliente solicitante 190 ou 192 para testar uma conexão com o servidor 180. Em algumas implementações, responsivo a uma solicitação a partir do dispositivo de computação de cliente 190 ou 192, o servidor 180 pode enviar uma lista de dispositivos de computação de cliente que estão associados a uma conta de usuário particular. A lista também pode indicar se um cliente identificado na lista é uma fonte ou um recipiente. Como descrito acima, uma notificação pode ser gerada em um cliente que pode então ser difundida pelo servidor 180 para outros dispositivos de computação de cliente que são receptores ou recipientes associados a uma conta de usuário particular. Uma mensagem de ação pode ser transmissor para o servidor 180 a partir de dispositivos de computação de cliente 190 ou 192 quando um usuário interage com uma notificação e indica que uma ação que deve ser levada para gerir um evento a partir de qualquer um dos dispositivos de computação.
[0062] Em algumas implementações, a mensagem de ação pode incluir um identificador da ação. Em algumas implementações, quando a mensagem de ação é transmitida pelo servidor 180 e um dispositivo de computação de cliente onde o evento ocorreu e deve ser gerenciado, o dispositivo de computação de cliente pode determinar automaticamente a ação a ser tomada com base no identificador de ação e processar a ação. Por exemplo, uma chamada pode ser rejeitada no dispositivo de computação de cliente. Em alguma implementação, o servidor 180 e outros componentes podem processar mensagens independentes das propriedades de mensagem. Por outras palavras, e por exemplo, o servidor 180 pode tratar propriedades de mensagem como opacas. Desta forma, recursos adicionais (por exemplo, notificação e ações) podem ser convenientemente implementados por meio da atualização de software de cliente que pode ser instalado em dispositivos de computação de cliente 190 e 192 e mudanças no servidor 180 podem não ser necessárias. Em algumas implementações, mensagens de serviço discutidas acima e quaisquer outras mensagens e notificações (ou indicações de eventos) podem ser transmitidas através de Protocolo de Controle de Transmissão ou TCP. O TCP é um protocolo associado com o conjunto de Protocolo de Internet (IP). TCP pode, em geral, e, por exemplo, operar entre sistemas finais incluindo, mas não limitado a um navegador da internet e um servidor da internet. TCP pode permitir entrega de um fluxo de bytes a partir de um programa de software a partir de um computador para outro computador. O TCP é fornecido como um exemplo e não se destina a limitar as implementações divulgadas. Podem ser utilizados quaisquer outros protocolos incluindo Protocolo de Transferência Hipertexto (também conhecido como HTTP) ou HTTP seguro.
[0063] Em algumas implementações, mensagens de serviço discutidas acima e quaisquer outras mensagens e notificações podem ser transmitidas entre os componentes ilustrados na Figura 1, utilizando, por exemplo, um formato de Notação de Objeto de JavaScript (JSON). O uso de um formato como JSON permite codificação eficiente e análise de mensagens para os componentes bem como depuração conveniente como resultado de um formato legível por humano da JSON. Além disso, quando serviços de terceiros podem interagir com os componentes ilustrados na Figura 1, também podem usar JSON para fornecer uma notificação devidamente formatada, mensagens de serviço e conteúdo e também podem ser capazes de analisar ações e respostas recebidas no formato JSON. Deve ser apreciado que a utilização do formato JSON é puramente ilustrativa e não se destina a limitar as implementações divulgadas. Outros formatos podem também ser utilizados pelos componentes da Figura 1 e por quaisquer outros serviços e sistemas associados aos componentes.
[0064] O objeto divulgado refere-se a notificações entre dispositivos. Algumas implementações incluem receber uma primeira indicação de um evento detectado em um primeiro dispositivo associado com uma conta de usuário, determinar uma ou mais características do evento com base na primeira indicação do evento, detectar se as características determinadas correspondem a pelo menos um critério de seleção, identificar automaticamente um segundo dispositivo a partir de um ou mais dispositivos associados à conta de usuário e fornecer se as características determinadas correspondem a pelo menos um critério de seleção, a primeira indicação do evento para o segundo dispositivo associado à conta de usuário, em que a primeira indicação fornecida do evento é exibida no segundo dispositivo para permitir gestão do evento no primeiro dispositivo a partir do segundo dispositivo. Algumas implementações incluem receber uma segunda indicação incluindo uma ação que deve ser executada no que diz respeito ao evento recebido no primeiro dispositivo, a segunda indicação gerada mediante uma interação com a primeira indicação exibida do evento no segundo dispositivo e transmitir a ação do primeiro dispositivo, em que o evento pode ser gerenciado no primeiro dispositivo com base na ação.
[0065] Algumas implementações incluem receber primeiro conteúdo associado com a primeira indicação de um evento e fornecer o primeiro conteúdo recebido para o segundo dispositivo associado à conta de usuário para exibição com a primeira indicação do evento. Algumas implementações incluem quando o conteúdo inclui uma referência para uma imagem em um cache remoto, fornecer a referência ao segundo dispositivo, em que o segundo dispositivo recupera a imagem para exibição a partir do cache com base na referência quando a imagem pode não estar disponível no segundo dispositivo. Algumas implementações incluem receber segundo conteúdo responsivo à primeira indicação exibida do evento no segundo dispositivo e fornecer o segundo conteúdo recebido do primeiro dispositivo para exibição. Em algumas implementações, a primeira indicação do evento é exibida em um navegador da internet do segundo dispositivo, em que o primeiro dispositivo é um dispositivo de computação móvel e o segundo dispositivo pode ser um dispositivo de computação de mesa. Em algumas implementações, o evento pode incluir um ou mais dos seguintes: recepção de solicitação de chamada de voz no primeiro dispositivo, recepção de uma mensagem de serviço de mensagens no primeiro dispositivo ou uma mudança no nível de bateria em relação a um nível predeterminado no primeiro dispositivo. Em algumas implementações, a uma ou mais características do evento incluem um tempo em que o evento pode ser recebido, um tipo de evento, uma prioridade do evento, ou uma conta de usuário associada com o início do evento. Em algumas implementações, o primeiro dispositivo pode estar em uma primeira localização geográfica e o segundo dispositivo pode estar em uma segunda localização geográfica.
[0066] Em algumas implementações, a primeira indicação do evento, com base nas características determinadas, pode não ser fornecida para exibição para o segundo dispositivo associado com a conta de usuário se as características determinadas não correspondem a pelo menos um critério de seleção. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem um aviso de bateria fraca. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário associado à conta de usuário. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem uma chamada perdida a partir de um contato de usuário associado à conta de usuário. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário associado à conta de usuário.
[0067] Algumas implementações incluem detectar um evento em um primeiro dispositivo associado a uma conta de usuário, fornecer uma primeira indicação do evento para um servidor, em que quando características do evento detectado correspondem a pelo menos um critério de seleção, o servidor fornece a primeira indicação do evento a um segundo dispositivo associado com a conta de usuário, receber uma segunda indicação incluindo uma ação que deve ser executada no que diz respeito ao evento detectado no primeiro dispositivo, a segunda indicação gerada mediante uma interação com a primeira indicação exibida do evento no segundo dispositivo, e gerir o evento no primeiro dispositivo com base na ação. Algumas implementações incluem, receber primeiro conteúdo associado com a primeira indicação de um evento e fornecer o primeiro conteúdo recebido para o servidor, em que o servidor fornece o conteúdo para o segundo dispositivo associado com a conta de usuário para exibição com a primeira indicação do evento.
[0068] Algumas implementações incluem, quando o evento é iniciado a partir de uma outra conta de usuário, determinar se uma imagem associada com a outra conta de usuário está disponível no primeiro dispositivo, quando a imagem está disponível no primeiro dispositivo, gerar uma referência para a imagem, com base na referência gerada, determinar se a imagem está disponível em um cache remoto, quando a imagem não está disponível para o cache remoto, carregar a imagem para o cache remoto, quando a imagem é determinada estar disponível para o cache remoto, e incluir a referência gerada na primeira indicação do evento fornecido ao servidor, em que o segundo dispositivo recupera a imagem a partir do cache remoto com base na referência.
[0069] Em algumas implementações, cada imagem armazenada em cache pode ser criptografada com uma chave única gerada no primeiro dispositivo, antes da transmissão para o segundo dispositivo com a primeira indicação do evento. Em algumas implementações, cada imagem armazenada em cache é criptografada com uma chave baseada em conteúdo. A chave baseada em conteúdo pode ser gerada no primeiro dispositivo e transmitida para o segundo dispositivo. Em algumas implementações, um valor de tempo de vida (TTL) pode ser indicado com a primeira indicação do evento, em que o valor de TTL indica um tempo de expiração da primeira indicação.
[0070] Em algumas implementações, o segundo dispositivo recupera a imagem a partir do cache remoto com base na referência quando a imagem pode não estar disponível no segundo dispositivo. A referência pode ser um valor de hash com base na imagem. Algumas implementações incluem receber segundo conteúdo responsivo à primeira indicação exibida do evento no segundo dispositivo e exibir o segundo conteúdo recebido no primeiro dispositivo. O evento pode incluir um ou mais dos seguintes: recepção de solicitação de chamada de voz para o primeiro dispositivo, recepção de uma mensagem de serviço de mensagens no primeiro dispositivo ou uma mudança no nível de bateria em relação a um nível predeterminado no primeiro dispositivo. Características do evento podem incluir um tempo em que o evento é recebido, uma categoria do evento, uma prioridade do evento, ou uma conta de usuário associada com o início do evento. O primeiro dispositivo pode estar em uma primeira localização geográfica e o segundo dispositivo pode estar em uma segunda localização geográfica. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário associado à conta de usuário. O critério de seleção pode ser correspondido quando as características determinadas incluem uma chamada perdida a partir de um contato de usuário associado à conta de usuário. O critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário associado à conta de usuário. Estes exemplos não se destinam a limitar as implementações divulgadas. Em algumas implementações, a primeira indicação do evento, com base nas características determinadas, pode não ser difundida para exibição para o segundo dispositivo associado à conta de usuário se as características determinadas não correspondem a pelo menos um critério de seleção.
[0071] Algumas implementações podem receber uma primeira indicação de um evento detectado em um primeiro dispositivo associado com uma conta de usuário, determinar uma ou mais características do evento com base na primeira indicação do evento, detectar se as características determinadas correspondem pelo menos um critério de seleção, automaticamente identificar um ou mais dispositivos associados com a conta de usuário e difundir a primeira indicação do evento se as características determinadas correspondem a pelo menos um critério de seleção, a um ou mais dispositivos associados com a conta de usuário. A primeira indicação fornecida do evento pode ser exibida simultaneamente, em tempo real, em um ou mais dispositivos para permitir gestão do evento no primeiro dispositivo a partir de qualquer dos um ou mais segundos dispositivos. Algumas implementações podem receber uma segunda indicação incluindo uma ação que precisa ser realizada com respeito ao evento recebido no primeiro dispositivo, a segunda indicação gerada mediante uma interação com a primeira indicação exibida do evento em qualquer um de um ou mais dispositivos, e transmitir a ação para o primeiro dispositivo, em que o evento pode ser gerenciado no primeiro dispositivo com base na ação.
[0072] Algumas implementações podem, quando a ação rejeita uma notificação com relação ao evento recebido no primeiro dispositivo, difundir a ação para o primeiro dispositivo e um ou mais outros dispositivos associados com a conta de usuário, em que a notificação é rejeitada no primeiro dispositivo e um ou mais outros dispositivos. O primeiro dispositivo pode estar em uma primeira localização geográfica e o segundo dispositivo pode estar em uma segunda localização geográfica. Em algumas implementações, o critério de seleção pode ser correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário associado à conta de usuário. O critério de seleção pode ser correspondido quando as características determinadas incluem uma chamada perdida a partir de um contato de usuário associado à conta de usuário.
[0073] Em algumas implementações, a primeira indicação do evento, com base nas características determinadas, pode não ser difundida para exibição para o segundo dispositivo associado com a conta de usuário se as características determinadas não correspondem a pelo menos um critério de seleção. Algumas implementações podem determinar se a primeira indicação do evento detectado no primeiro dispositivo associado com a conta de usuário é duplicada para uma ou mais indicações recebidas anteriormente. Quando for determinado que a primeira indicação do evento não é uma duplicação a uma ou mais indicações recebidas anteriormente, difundir a primeira indicação do evento, para o segundo dispositivo e um ou mais outros dispositivos associados à conta de usuário, e quando for determinado que a primeira indicação do evento é uma duplicação a uma ou mais indicações anteriormente recebidas, algumas implementações podem proibir a difusão da primeira indicação do evento para o segundo dispositivo e um ou mais outros dispositivos associados à conta de usuário.
[0074] Voltando à Figura 1, em certos aspectos, o servidor 180 pode ser implementado utilizando hardware ou uma combinação de software e hardware, quer em um servidor dedicado, ou integrado em uma outra entidade, ou distribuído através de várias entidades.
[0075] O servidor 180 inclui um barramento 124 ou outro mecanismo de comunicação para comunicar informações, e processador 112 juntamente com o barramento 124 para o processamento de informações. Processador 112 pode ser um microprocessador de uso geral, um microcontrolador, um processador de sinal digital (DSP), um circuito integrado de aplicação específica (ASIC), um Conjunto de Porta de Campo Programável (FPGA), um dispositivo lógico programável (PLD), um controlador, uma máquina de estado, lógica fechada, componentes de hardware discretos, ou qualquer outra entidade adequada que pode executar cálculos ou outras manipulações de informações.
[0076] O servidor 180 pode incluir, além de hardware, um código que cria um ambiente de execução para o programa de computador em questão, por exemplo, código que constitui firmware de processador, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional, ou uma combinação de um ou mais dos mesmos armazenada na memória 120. Memória 120 pode incluir memória de acesso aleatório (RAM), uma memória flash, uma memória de somente de leitura (ROM), uma memória de somente de leitura programável (PROM), uma PROM apagável (EPROM), registradores, um disco rígido, um disco removível, um CD- ROM, um DVD, ou qualquer outro dispositivo de armazenamento adequado, acoplado ao barramento 124 para armazenar informações e instruções a serem executadas pelo processador 112. O processador 112 e a memória 120 podem ser completados por, ou integrados em circuitos lógicos de propósito especial.
[0077] As instruções podem ser armazenadas na memória 120 e implementadas em um ou mais produtos de programa de computador, ou seja, um ou mais módulos de instruções de programa de computador codificadas em um meio legível por computador para execução de, ou para controlar a operação de, o servidor 180, e de acordo com qualquer método bem conhecido dos versados na técnica, incluindo, mas não se limitando a, linguagens de computador, tais como linguagens orientadas de dados (por exemplo, SQL, dBase), linguagens de sistema (por exemplo, C, Objetive-C, C++, Assembly), linguagens arquitetônicas (por exemplo, Java, .NET) e linguagens de aplicação (por exemplo, PHP, Ruby, Perl, Python). As instruções podem também ser implementadas em linguagens de computador, tais como linguagens de matriz, linguagens orientadas a aspectos, linguagens de montagem, linguagens de autoria, linguagens de interface de linha de comando, linguagens compiladas, linguagens simultâneas, linguagens de colchetes, linguagens de fluxo de dados, linguagens estruturadas de dados, linguagens declarativas, linguagens esotéricas, linguagens de extensão, linguagens de quarta geração, linguagens funcionais, linguagens de modo interativo, linguagens interpretadas, linguagens iterativas, linguagens com base em lista, pequenas linguagens, linguagens baseadas em lógica, linguagens de máquina, macrolinguagens, linguagens de metaprogramação, linguagens de multiparadigma, análise numérica, linguagens não baseadas em Inglês, linguagens orientadas a objetos baseadas em classe, linguagens orientadas a objetos baseadas em protótipo, linguagens de regra de impedimento, linguagens procedurais, linguagens reflexivas, linguagens baseadas em regras, linguagens de script, linguagens baseadas em pilha, linguagens síncronas, linguagens de manipulação de sintaxe, linguagens visuais, linguagens Wirth, linguagens incorporáveis e linguagens baseadas em XML. Memória 120 também pode ser usada para o armazenamento temporário variável ou outras informações intermediárias durante execução de instruções a serem executadas pelo processador 112.
[0078] Um programa de computador como aqui discutido não corresponde necessariamente a um arquivo em um sistema de arquivos. Um programa pode ser armazenado em uma porção de um arquivo que conté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 vários arquivos coordenados (por exemplo, arquivos que armazenam um ou mais módulos, subprogramas, ou porções de código). Um programa de computador pode ser implementado para ser executado em um computador ou em vários computadores que estão localizados em um local ou distribuídos em vários locais e interligados por uma rede de comunicação. Os processos e fluxos lógicos descritos na presente especificação podem ser realizados por um ou mais processadores programáveis executando um ou mais programas de computador para executar funções por operar em dados de entrada e gerar saída.
[0079] O servidor 180 inclui ainda um dispositivo de armazenamento de dados 126, tal como um disco magnético ou um disco óptico, acoplado ao barramento 124 para armazenar informações e instruções. O servidor 180 pode ser acoplado através de módulo de entrada / saída 128 para vários dispositivos. O módulo de entrada / saída 128 pode ser qualquer módulo de entrada / saída. Exemplos de módulos de entrada / saída 128 incluem portas de dados, tais como portas USB. O módulo de entrada / saída 128 é configurado para conectar a um módulo de comunicações 118. Exemplos de módulos de comunicação 118 (por exemplo, módulo de comunicação 118 e 238) incluem placas de interface de rede, como placas de Ethernet e modems. Em certos aspectos, o módulo de entrada / saída 128 é configurado para conectar a uma pluralidade de dispositivos, tais como um dispositivo de entrada 116 e / ou um dispositivo de saída 114. Exemplo de dispositivos de entrada 114 incluem um teclado e um dispositivo apontador, por exemplo, um mouse ou uma “trackball”, pelo que um usuário pode fornecer dados para o servidor 180. Outros tipos de dispositivos de entrada 114 podem ser usados para fornecer interação de usuário também, tais como um dispositivo de entrada tátil, dispositivo de entrada visual, dispositivo de entrada de áudio ou dispositivo de interface cérebro- computador. Por exemplo, o retorno fornecido ao usuário pode ser qualquer forma de retorno sensorial, por exemplo, o retorno visual, retorno auditivo, ou retorno tátil; e entrada de usuário pode ser recebida em qualquer forma, incluindo entrada acústica, de discurso, tátil, ou de ondas cerebrais. Exemplos de dispositivos de saída 116 incluem dispositivos de exibição, tais como uma tela de LED (diodo emissor de luz), CRT (tubo de raios catódicos), ou LCD (tela de cristal líquido), para exibir informações para o usuário.
[0080] De acordo com um aspecto da presente divulgação, o servidor 180 pode ser implementado usando um servidor 180 em resposta a um processador 112 executando uma ou mais sequências de uma ou mais instruções contidas na memória 120. Tais instruções podem ser lidas na memória 120 a partir de outro meio legível por máquina, como o dispositivo de armazenamento de dados 126. A execução das sequências de instruções contidas na memória principal 120 leva o processador 112 a executar os blocos de processo aqui descritos. Um ou mais processadores em um arranjo de multiprocessamento podem também ser empregados para executar as sequências de instruções contidas na memória 120. Em aspectos alternativos, circuitos com fio podem ser utilizados em lugar de ou em combinação com instruções de software para implementar vários aspectos da presente divulgação. Assim, aspectos da presente divulgação não são limitados a qualquer combinação específica de circuitos de hardware e de software.
[0081] Vários aspectos do assunto descrito na presente especificação podem ser implementados em um sistema de computador que inclui um componente de terminal posterior, por exemplo, como um servidor de dados, ou que inclui um componente de middleware, por exemplo, um servidor de aplicações, ou que inclui um componente de terminal frontal, por exemplo, um computador de cliente que tem uma interface de usuário gráfica ou um navegador da internet por meio do qual um usuário pode interagir com uma implementação do assunto descrito na presente especificação, ou qualquer combinação de um ou mais tais componentes de terminal posterior, middleware ou terminal frontal. Os componentes do sistema podem ser ligados entre si por qualquer forma ou meio de comunicação de dados digitais, por exemplo, uma rede de comunicação. A rede de comunicação (por exemplo, rede 150) pode incluir, por exemplo, qualquer uma ou mais de uma rede de área pessoal (PAN), uma rede de área local (LAN), uma rede de área de campus (CAN), uma rede de área metropolitana (MAN), uma rede de área ampla (WAN), uma rede de banda larga (BBN), a internet, e assim por diante. Além disso, a rede de comunicação pode incluir, mas não está limitada a, por exemplo, qualquer uma ou mais das seguintes topologias de rede, incluindo uma rede de barramento, uma rede em estrela, uma rede em anel, uma rede em malha, uma rede em estrela-barramento, rede de árvore ou hierárquica, ou semelhantes. Os módulos de comunicação podem ser, por exemplo, modems ou placas de Ethernet.
[0082] O servidor 180 pode ser, por exemplo, e sem limitação, um computador de mesa, computador portátil ou computador tablet. O servidor 180 também pode ser incorporado em outro dispositivo, por exemplo, e sem limitação, um telefone móvel, um assistente pessoal digital (PDA), um leitor de áudio portátil, um Sistema de Posicionamento Global (GPS), um console de jogos de vídeo, e / ou uma caixa de configuração de topo de televisão.
[0083] O termo "meio de armazenamento legível por máquina" ou "meio legível por computador", como aqui utilizado, refere-se a qualquer meio ou meios que participam no fornecimento de instruções ou dados para o processador 112 para execução. Tal meio pode assumir muitas formas, incluindo, mas não limitado a meios de comunicação não voláteis e meios voláteis. Meios não voláteis incluem, por exemplo, discos ópticos, discos magnéticos, ou memória flash, como dispositivo de armazenamento de dados 126. Meios voláteis incluem memória dinâmica, como memória 120. Meios de transmissão incluem cabos coaxiais, fio de cobre e fibra óptica, incluindo os fios que compõem barramento 124. As formas mais comuns de meios legíveis por máquinas incluem, por exemplo, disquete, um disco flexível, disco rígido, fita magnética, qualquer outro meio magnético, um CD-ROM, DVD, qualquer outro meio óptico, cartões perfurados, fita de papel, qualquer outro meio físico com padrões de furos, uma RAM, uma PROM, uma EPROM, uma FLASH EPROM, qualquer outro chip de memória ou cartucho, ou qualquer outro meio a partir do qual um computador possa ler. O meio de armazenamento legível por máquina pode ser um dispositivo de armazenamento legível por máquina, um substrato de armazenamento legível por máquina, um dispositivo de memória, uma composição de matéria efetuando um sinal propagado legível por máquina, ou uma combinação de um ou mais deles.
[0084] Tal como aqui utilizado, a frase "pelo menos um de” antes de um número de itens, com os termos "e" ou "ou" para separar qualquer um dos itens, modifica a lista como um todo, em vez de cada um dos membros da lista (ou seja, cada item). A frase "pelo menos um de” não exige seleção de pelo menos um item; em vez disso, a frase permite um significado que inclui pelo menos um de qualquer um dos itens, e / ou pelo menos um de qualquer combinação dos itens, e / ou pelo menos um de cada um dos itens. A título de exemplo, as frases "pelo menos um de A, B e C" ou "pelo menos um de A, B ou C" cada refere-se a apenas A, apenas B, ou apenas C; qualquer combinação de A, B e C; e / ou pelo menos um de cada de A, B e C.
[0085] Além disso, na medida em que o termo "inclui", "tem", ou semelhantes é utilizado na descrição ou nas reivindicações, tal termo pretende ser inclusivo de maneira semelhante ao termo "compreende", tal como "compreende" é interpretado quando empregue como uma palavra de transição em uma reivindicação.
[0086] A referência a um elemento no singular não se destina a significar "um e apenas um" a menos que especificamente indicado, mas sim "um ou mais". Todos os equivalentes estruturais e funcionais aos elementos das várias configurações descritas ao longo desta divulgação, que são conhecidos ou mais tarde venham a ser conhecidos para aqueles versados na técnica, estão expressamente aqui incorporados como referência e destinam-se a ser englobados pela tecnologia do objeto. Além disso, nada aqui divulgado destina-se a ser dedicado ao público independentemente de essa divulgação ser expressamente recitada na descrição acima.
[0087] Embora esta especificação contenha muitos detalhes, estes não devem ser interpretados como limitações sobre o alcance do que pode ser reivindicado, mas sim como descrições de implementações particulares do objeto. Certas características que são descritas na presente especificação no contexto dos aspectos separados também podem ser implementadas em combinação em um único aspecto. Por outro lado, várias características que são descritas no contexto de um único aspecto também podem ser implementadas em vários aspectos separadamente ou em qualquer subcombinação adequada. Além disso, embora as características possam ser descritas acima como atuando em certas combinações e ainda inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem em alguns casos ser excisadas a partir da combinação, e a combinação reivindicada pode ser dirigida para uma subcombinação ou variação de uma subcombinação.
[0088] Do mesmo modo, enquanto operações são representadas nos desenhos em uma ordem particular, isto não deve ser entendido como requerendo que essas operações sejam realizadas na ordem particular mostrada ou em ordem sequencial, ou que todas as operações ilustradas sejam realizadas, para alcançar resultados desejáveis. Em certas circunstâncias, processamento multitarefa e paralelo pode ser vantajoso. Além disso, a separação dos vários componentes de sistema em todos os aspectos descritos acima não deve ser entendida como requerendo tal separação em todos os aspectos, e deve ser entendido que os componentes e sistemas de programa descritos podem geralmente ser integrados juntos em um único produto de software ou empacotados em vários produtos de software.
[0089] O objeto da presente especificação foi descrito em termos de aspectos particulares, mas outros aspectos podem ser implementados e estão dentro do âmbito das reivindicações seguintes. Por exemplo, as ações enumeradas nas reivindicações podem ser efetuadas em uma ordem diferente e ainda conseguir resultados desejáveis. Como um exemplo, os processos descritos nas figuras anexas não requerem necessariamente a ordem particular mostrada, ou ordem sequencial, para obter resultados desejáveis. Em certas implementações, o processamento multitarefa e paralelo pode ser vantajoso. Outras variações estão dentro do âmbito das reivindicações seguintes.
[0090] Estas e outras implementações estão dentro do âmbito das reivindicações seguintes.
Claims (22)
1. Método caracterizado pelo fato de que compreende: receber uma primeira indicação de um evento detectado (502) em um primeiro dispositivo de cliente (190) associado com uma conta de usuário (504); determinar uma ou mais características do evento com base na primeira indicação do evento; detectar se as características determinadas correspondem a pelo menos um critério de seleção; identificar um segundo dispositivo de cliente a partir de um ou mais dispositivos de cliente (192) associados com a conta de usuário; fornecer, quando as características determinadas correspondem ao pelo menos um critério de seleção, a primeira indicação do evento para o segundo dispositivo de cliente (192) associado com a conta de usuário (506, 508), em que a primeira indicação do evento inclui uma referência a uma imagem, o segundo dispositivo de cliente recupera a imagem com base na referência, a primeira indicação do evento é exibida como uma notificação incluindo a imagem no segundo dispositivo de cliente para permitir gestão do evento no primeiro dispositivo de cliente a partir do segundo dispositivo de cliente (510), e a notificação incluindo a imagem fornece uma indicação visual de uma segunda conta de usuário associada ao evento, a segunda conta de usuário sendo diferente da conta de usuário e associada a um dispositivo diferente do primeiro dispositivo de cliente e do segundo dispositivo de cliente; receber uma segunda indicação incluindo uma ação que deve ser executada no que diz respeito ao evento detectado no primeiro dispositivo de cliente (514), a segunda indicação gerada mediante uma interação com a notificação incluindo a imagem no segundo dispositivo de cliente (512); e transmitir a ação para o primeiro dispositivo de cliente (516; 518), em que o evento é gerido no primeiro dispositivo cliente com base na ação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: quando a ação rejeita uma notificação exibida no primeiro dispositivo de cliente com respeito ao evento recebido no primeiro dispositivo de cliente, difundir a ação para o primeiro dispositivo de cliente e um ou mais outros dispositivos associados à conta de usuário, em que a notificação é rejeitada no primeiro dispositivo de cliente e um ou mais outros dispositivos.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: receber o primeiro conteúdo associado com a primeira indicação do evento; e fornecer o primeiro conteúdo recebido para o segundo dispositivo de cliente associado à conta de usuário para exibição com a primeira indicação do evento.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o segundo dispositivo de cliente recupera a imagem para exibição a partir de um cache remoto com base na referência quando a imagem não está disponível no segundo dispositivo de cliente.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: receber o segundo conteúdo responsivo à notificação incluindo a imagem no segundo dispositivo de cliente (192); e fornecer o segundo conteúdo recebido para o primeiro dispositivo de cliente (190) para exibição.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira indicação do evento é exibida em um navegador da internet do segundo dispositivo de cliente, em que o primeiro dispositivo de cliente é um dispositivo de computação móvel e o segundo dispositivo de cliente é um dispositivo de computação de mesa.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira indicação do evento detectado no primeiro dispositivo de cliente compreende uma notificação particular indicando um nível de bateria do primeiro dispositivo de cliente.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que o evento detectado no primeiro dispositivo de cliente compreende o nível de bateria do primeiro dispositivo de cliente estando abaixo de um valor de limiar, e a segunda indicação compreende uma entrada indicando que o primeiro dispositivo de cliente deve ser desligado e a ação compreende desligar o primeiro dispositivo de cliente.
9. Meio legível por computador não-transitório caracterizado pelo fato de que compreende instruções armazenadas no mesmo, que quando executadas por um processador, fazem o processador executar operações compreendendo: detectar um evento em um primeiro dispositivo de cliente (190) associado a uma conta de usuário (502, 504); fornecer uma primeira indicação do evento para um servidor (180), em que quando características do evento detectado correspondem a pelo menos um critério de seleção, o servidor (180) fornece a primeira indicação do evento para um segundo dispositivo de cliente (192) associado com a conta de usuário (506, 508) em que a primeira indicação do evento inclui uma referência a uma imagem, e o segundo dispositivo de cliente (192) recupera a imagem com base na referência e exibe uma notificação incluindo a imagem, a notificação incluindo a imagem (510) fornece uma indicação visual de uma segunda conta de usuário associada ao evento, a segunda conta de usuário sendo diferente da conta de usuário e associada a um dispositivo diferente do primeiro dispositivo de cliente (190) e do segundo dispositivo de cliente (192); receber uma segunda indicação incluindo uma ação que deve ser executada (514) no que diz respeito ao evento detectado no primeiro dispositivo de cliente (190), a segunda indicação gerada mediante uma interação com a notificação incluindo a imagem no segundo dispositivo de cliente (192; 512); e gerir o evento no primeiro dispositivo de cliente (190) com base na ação (516; 518).
10. Meio legível por computador não-transitório, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda instruções armazenadas no mesmo, que quando executadas pelo processador, fazem o processador executar operações compreendendo: receber primeiro conteúdo associado com a primeira indicação do evento; e fornecer o primeiro conteúdo recebido para o servidor, em que o servidor fornece o primeiro conteúdo recebido para o segundo dispositivo de cliente associado com a conta de usuário para exibição com a primeira indicação do evento.
11. Meio legível por computador não-transitório, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda instruções armazenadas no mesmo, que quando executadas pelo processador, fazem o processador executar operações compreendendo: determinar que o evento é iniciado a partir de uma conta de usuário diferente; determinar que a imagem é associada a conta de usuário diferente e está disponível no primeiro dispositivo de cliente; quando a imagem está disponível no primeiro dispositivo de cliente, gerar a referência para a imagem; com base na referência gerada, determinar se a imagem está disponível em um cache remoto; quando a imagem não está disponível para o cache remoto, carregar a imagem para o cache remoto; e em que quando a imagem é determinada estar disponível para o cache remoto, a referência gerada é incluída na primeira indicação do evento fornecida ao servidor.
12. Meio legível por computador não-transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que o segundo dispositivo de cliente recupera a imagem a partir do cache remoto com base na referência quando a imagem não está disponível no segundo dispositivo de cliente.
13. Meio legível por computador não-transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende ainda instruções armazenadas no mesmo, que quando executadas pelo processador, fazem o processador executar operações compreendendo: criptografar cada imagem armazenada em cache com uma chave única gerada no primeiro dispositivo de cliente, antes da transmissão para o segundo dispositivo de cliente com a primeira indicação do evento.
14. Meio legível por computador não-transitório, de acordo com a reivindicação 11, caracterizado pelo fato de que compreende ainda instruções armazenadas no mesmo, que quando executadas pelo processador, fazem o processador executar operações compreendendo: criptografar cada imagem armazenada em cache com uma chave com base em conteúdo, a chave com base em conteúdo gerada no primeiro dispositivo de cliente (190) e transmitida para o segundo dispositivo de cliente (192).
15. Meio legível por computador não-transitório, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende ainda instruções armazenadas no mesmo, que quando executadas pelo processador, fazem o processador executar operações compreendendo: incluir um valor de tempo de vida (TTL) com a primeira indicação do evento, em que o valor de TTL indica um tempo de expiração da primeira indicação.
16. Sistema caracterizado pelo fato de que compreende: uma memória compreendendo instruções; e um processador configurado para executar as instruções para: receber uma primeira indicação de um evento detectado em um primeiro dispositivo de cliente associado com uma conta de usuário (502; 504); determinar uma ou mais características do evento com base na primeira indicação do evento; detectar se as características determinadas correspondem a pelo menos um critério de seleção; identificar um ou mais dispositivos de cliente associados com a conta de usuário; difundir a primeira indicação do evento, quando as características determinadas correspondem ao pelo menos um critério de seleção, ao um ou mais dispositivos de cliente associados à conta de usuário (506; 508), em que a primeira indicação do evento inclui uma referência a uma imagem e pelo menos um dispositivo de cliente de um ou mais dispositivos de cliente recupera a imagem com base na referência e exibe uma notificação incluindo a imagem (510), a notificação incluindo a imagem fornece uma indicação visual de uma segunda conta de usuário associada ao evento, a segunda conta de usuário sendo diferente da conta de usuário e associada a um dispositivo diferente do primeiro dispositivo de cliente e o pelo menos um dispositivo de cliente, e em que a primeira indicação difundida do evento é exibida simultaneamente, em tempo real, no um ou mais dispositivos de cliente para permitir gestão do evento no primeiro dispositivo de cliente a partir de qualquer dos um ou mais dispositivos de cliente. receber uma segunda indicação incluindo uma ação que deve ser executada (514) no que diz respeito ao evento detectado no primeiro dispositivo de cliente, a segunda indicação gerada mediante uma interação com a notificação incluindo a imagem em qualquer um dos um ou mais dispositivos de cliente (512); e transmitir a ação para o primeiro dispositivo de cliente, em que o evento é gerido no primeiro dispositivo com base na ação (514; 516).
17. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o processador é ainda configurado para executar as instruções para: quando a ação rejeita uma notificação exibida no primeiro dispositivo de cliente com respeito ao evento recebido no primeiro dispositivo de cliente (190), difundir a ação para o primeiro dispositivo de cliente (190) e o um ou mais dispositivos de cliente associados à conta de usuário, em que a notificação é rejeitada no primeiro dispositivo de cliente e o um ou mais outros dispositivos de cliente.
18. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o primeiro dispositivo de cliente (190) está em uma primeira localização geográfica e um segundo dispositivo de cliente (192) particular está em uma segunda localização geográfica.
19. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o pelo menos um critério de seleção é correspondido quando as características determinadas incluem uma recepção de uma mensagem de serviço de mensagens a partir de um contato de usuário particular associado à conta de usuário.
20. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o pelo menos um critério de seleção é correspondido quando as características determinadas incluem uma chamada perdida a partir de um contato de usuário associado à conta de usuário.
21. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que a primeira indicação do evento, com base nas características determinadas, não é difundida para exibição para um segundo dispositivo de cliente particular associado com a conta de usuário se as características determinadas não correspondem com pelo menos um critério de seleção.
22. Sistema, de acordo com a reivindicação 16, caracterizado pelo fato de que o processador é ainda configurado para executar as instruções para: determinar se a primeira indicação do evento detectado no primeiro dispositivo de cliente (190) associado com a conta de usuário é uma duplicação para uma ou mais indicações anteriormente recebidas; quando é determinado que a primeira indicação do evento não é uma duplicação para uma ou mais indicações anteriormente recebidas, difundir a primeira indicação do evento, para um segundo dispositivo de cliente (192) particular e o um ou mais dispositivos de cliente associados com a conta de usuário; e quando é determinado que a primeira indicação do evento é uma duplicação para uma ou mais indicações anteriormente recebidas, proibir a difusão da primeira indicação do evento para o segundo dispositivo de cliente (192) particular e o um ou mais dispositivos de cliente associados com a conta de usuário.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462016594P | 2014-06-24 | 2014-06-24 | |
US62/016,594 | 2014-06-24 | ||
US14/658,005 | 2015-03-13 | ||
US14/658,005 US10097619B2 (en) | 2014-06-24 | 2015-03-13 | Cross-device notifications |
PCT/US2015/036042 WO2015200051A1 (en) | 2014-06-24 | 2015-06-16 | Cross-device notifications |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112016028193A2 BR112016028193A2 (pt) | 2018-05-15 |
BR112016028193B1 true BR112016028193B1 (pt) | 2023-09-26 |
Family
ID=54870753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112016028193-4A BR112016028193B1 (pt) | 2014-06-24 | 2015-06-16 | Método, meio legível por computador não-transitório e sistema |
Country Status (7)
Country | Link |
---|---|
US (1) | US10097619B2 (pt) |
EP (1) | EP3162005B1 (pt) |
JP (1) | JP6456984B2 (pt) |
CN (1) | CN106464573B (pt) |
AU (1) | AU2015280414B2 (pt) |
BR (1) | BR112016028193B1 (pt) |
WO (1) | WO2015200051A1 (pt) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014139054A1 (en) * | 2013-03-15 | 2014-09-18 | Yahoo! Inc. | Method and system for cross device notification |
US10440757B2 (en) * | 2015-02-17 | 2019-10-08 | Google Llc | Second-screen control automatic pairing using push notifications |
CN107888755B (zh) * | 2016-09-30 | 2021-02-12 | 中兴通讯股份有限公司 | 一种信息管理的方法和装置 |
US10567442B2 (en) | 2017-05-10 | 2020-02-18 | Microsoft Technology Licensing, Llc | Automatic forwarding of incoming calls based on user interaction with devices |
US10841896B2 (en) * | 2017-09-08 | 2020-11-17 | International Business Machines Corporation | Selectively sending notifications to mobile devices using device filtering process |
CN118200349A (zh) * | 2018-03-14 | 2024-06-14 | 谷歌有限责任公司 | 生成基于IoT的通知并提供命令的方法和系统 |
CN112561537A (zh) * | 2018-06-03 | 2021-03-26 | 苹果公司 | 用于转账账户的用户界面 |
US11012853B2 (en) * | 2018-11-20 | 2021-05-18 | Parallel Wireless, Inc. | Secure software update in a wireless mesh radio network using peer-to-peer file sharing |
US11163737B2 (en) * | 2018-11-21 | 2021-11-02 | Google Llc | Storage and structured search of historical security data |
AU2020280017B2 (en) | 2019-05-21 | 2023-05-25 | Hid Global Corp. | Physical access control systems and methods |
CN113141292B (zh) * | 2020-01-17 | 2023-03-03 | 百度在线网络技术(北京)有限公司 | 一种消息处理方法、装置及电子设备 |
US20220318250A1 (en) * | 2020-08-18 | 2022-10-06 | Google Llc | Systems and methods for identifying events that share a characteristic |
US11736429B2 (en) * | 2020-10-30 | 2023-08-22 | Citrix Systems, Inc. | Contextual turning of dialog from any app into actionable workspace notification |
US20220408268A1 (en) * | 2021-06-18 | 2022-12-22 | Google Llc | Resource connectivity for multiple devices |
US11887213B2 (en) * | 2022-04-29 | 2024-01-30 | Content Square SAS | Image cache for session replays of mobile applications |
WO2024151522A2 (en) * | 2023-01-09 | 2024-07-18 | Xailient | Systems and methods for image encryption |
US20240257232A1 (en) * | 2023-02-01 | 2024-08-01 | Coupa Software Incorporated | Delegated document scan and storage |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003283693A (ja) | 2002-03-26 | 2003-10-03 | Nec Commun Syst Ltd | 携帯通信端末のリモート制御方法及びシステム |
JP4200692B2 (ja) | 2002-05-31 | 2008-12-24 | セイコーエプソン株式会社 | デバイス状態監視システム、デバイス管理端末 |
EP1568202A4 (en) * | 2002-11-25 | 2012-10-03 | Telesector Resources Group Inc | METHOD AND DEVICE FOR ADAPTIVE MESSAGE NOTIFICATION |
WO2006058275A2 (en) | 2004-11-29 | 2006-06-01 | Roamware Inc. | Missed call alerts |
JP4983005B2 (ja) | 2005-04-12 | 2012-07-25 | 富士通株式会社 | 電子機器、優先接続装置、優先接続方法及び優先接続プログラム |
GB2427100B (en) | 2005-06-09 | 2008-07-09 | Motorola Inc | A notification apparatus and method for a cellular communication system |
US8145718B1 (en) | 2005-10-21 | 2012-03-27 | Voltage Security, Inc. | Secure messaging system with personalization information |
KR20070060177A (ko) | 2005-12-08 | 2007-06-13 | 주식회사 팬택 | 이동통신단말기에서의 부재중 호 착신 메일 통보 방법 |
US8239458B2 (en) | 2006-03-31 | 2012-08-07 | Microsoft Corporation | Determining failed delivery of email messages using email notifications |
US20090191849A1 (en) * | 2008-01-28 | 2009-07-30 | International Business Machines Corporation | Enhanced messaging collaboration |
US20100048182A1 (en) | 2008-08-25 | 2010-02-25 | Shay Ben-David | Reaching a Communications Service Subscriber Who is Not Answering an Incoming Communications Request |
JP5801991B2 (ja) | 2008-12-25 | 2015-10-28 | 株式会社Nttドコモ | 着信制御サーバ、及び、着信制御方法 |
FR2953613B1 (fr) | 2009-12-07 | 2012-01-13 | Alcatel Lucent | Systeme bureautique comprenant une application de telephonie |
US8676171B2 (en) * | 2010-10-21 | 2014-03-18 | Resonate Mobile, Inc. | Short URL metadata merge application |
KR20130121524A (ko) * | 2012-04-27 | 2013-11-06 | 삼성전자주식회사 | 통신 서비스 관리 시스템 및 이의 운용 방법 |
CA2879571A1 (en) | 2012-07-20 | 2014-01-23 | Iwatchlife Inc. | System and method for managing video analytics results |
US20140074927A1 (en) * | 2012-09-13 | 2014-03-13 | International Business Machines Corporation | Caching content based on social network relations |
WO2014059608A1 (en) | 2012-10-16 | 2014-04-24 | Nokia Corporation | Method and apparatus for providing mechanism to control unattended notifications at a device |
US9350693B2 (en) * | 2012-12-17 | 2016-05-24 | Lookout, Inc. | Method and apparatus for cross device notifications |
KR20140121141A (ko) * | 2013-04-05 | 2014-10-15 | 삼성전자주식회사 | 배터리 용량에 따라 착신 호를 전환하는 전자 장치 및 방법 |
US9288164B2 (en) * | 2013-06-07 | 2016-03-15 | Apple Inc. | Managing notifications across multiple devices |
US9679075B1 (en) * | 2014-04-30 | 2017-06-13 | Instart Logic, Inc. | Efficient delivery of animated image files |
US20150350146A1 (en) * | 2014-05-29 | 2015-12-03 | Apple Inc. | Coordination of message alert presentations across devices based on device modes |
-
2015
- 2015-03-13 US US14/658,005 patent/US10097619B2/en active Active
- 2015-06-16 EP EP15811850.5A patent/EP3162005B1/en active Active
- 2015-06-16 JP JP2016575096A patent/JP6456984B2/ja active Active
- 2015-06-16 CN CN201580033990.1A patent/CN106464573B/zh active Active
- 2015-06-16 AU AU2015280414A patent/AU2015280414B2/en active Active
- 2015-06-16 BR BR112016028193-4A patent/BR112016028193B1/pt active IP Right Grant
- 2015-06-16 WO PCT/US2015/036042 patent/WO2015200051A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
AU2015280414A1 (en) | 2016-12-01 |
EP3162005A4 (en) | 2018-03-28 |
CN106464573A (zh) | 2017-02-22 |
BR112016028193A2 (pt) | 2018-05-15 |
WO2015200051A1 (en) | 2015-12-30 |
EP3162005A1 (en) | 2017-05-03 |
EP3162005B1 (en) | 2019-06-12 |
CN106464573B (zh) | 2019-11-15 |
US20150373089A1 (en) | 2015-12-24 |
JP6456984B2 (ja) | 2019-01-23 |
AU2015280414B2 (en) | 2017-12-14 |
US10097619B2 (en) | 2018-10-09 |
JP2017522664A (ja) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112016028193B1 (pt) | Método, meio legível por computador não-transitório e sistema | |
US10582042B2 (en) | Social caller ID with reverse look-up | |
JP6615269B2 (ja) | モバイル・プッシュ通知 | |
JP6726775B2 (ja) | ソーシャル化ダッシュ | |
US20180048756A1 (en) | Avatar-Based Communications Launching System | |
US10387539B2 (en) | Digital card management with style-based dynamic card generation | |
AU2020292195A1 (en) | Notification tagging for a workspace or application | |
US11269994B2 (en) | Systems and methods for providing configurable responses to threat identification | |
US10506097B2 (en) | Call-termination-triggered social interface | |
BR112012029768B1 (pt) | Método e dispositivo para exibição de mensagens instantâneas | |
TW201512855A (zh) | 雲端儲存伺服器及其管理方法 | |
US20140201293A1 (en) | Choosing a service to provide a message | |
US10462093B2 (en) | Message data transfer | |
US20240146726A1 (en) | Accessing an encrypted platform | |
KR101253083B1 (ko) | 커플 앱 자동 생성 방법 | |
KR20120098980A (ko) | 커플용 애플리케이션 사용 방법 및 커플용 어플리케이션 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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] | ||
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: 20 (VINTE) ANOS CONTADOS A PARTIR DE 16/06/2015, OBSERVADAS AS CONDICOES LEGAIS |