BR112012025578B1 - Método e aparelho para extensibilidade de pesquisa para aplicações de terceiros - Google Patents

Método e aparelho para extensibilidade de pesquisa para aplicações de terceiros Download PDF

Info

Publication number
BR112012025578B1
BR112012025578B1 BR112012025578-9A BR112012025578A BR112012025578B1 BR 112012025578 B1 BR112012025578 B1 BR 112012025578B1 BR 112012025578 A BR112012025578 A BR 112012025578A BR 112012025578 B1 BR112012025578 B1 BR 112012025578B1
Authority
BR
Brazil
Prior art keywords
application
search
party application
records
party
Prior art date
Application number
BR112012025578-9A
Other languages
English (en)
Other versions
BR112012025578A2 (pt
Inventor
Edward T. Schmidt
Gordon J. Freedman
Benjamin S. Phipps
David Rahardja
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Publication of BR112012025578A2 publication Critical patent/BR112012025578A2/pt
Publication of BR112012025578B1 publication Critical patent/BR112012025578B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

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

Abstract

EXTENSIBILIDADE DE PESQUISA PARA APLICAÇÕES DE TERCEIROS. A presente invenção refere-se a pelo menos certas modalidades da revelação presente que incluem um método para estender as capacidades de pesquisa para aplicações de terceiros instaladas em um dispositivo. Em uma modalidade, os registros associados com uma aplicação de terceiros são indexados em um processo isolado de outras aplicações de terceiros instaladas no dispositivo usando uma extensão auxiliar de pesquisa específica para a aplicação de terceiros. Além disso, os registros indexados podem ser pesquisados em resposta a uma consulta de pesquisa do usuário sem invocar a aplicação de terceiros.

Description

MÉTODO E APARELHO PARA EXTENSIBILIDADE DE PESQUISA PARA APLICAÇÕES DE TERCEIROS PEDIDOS DE PATENTE RELACIONADOS
[0001] Este pedido de patente reivindica o benefício do Pedido de Patente Provisório US 61/321.764, depositado em 7 de abril de 2010, que é aqui incorporado por referência em sua totalidade.
[0002] A invenção a ser revelada e reivindicada neste pedido de patente foi prematuramente e sem a autorização da Apple revelada ao público quando um protótipo do iPhone 4 da Apple foi aparentemente roubado de um engenheiro da Apple no dia 25 de março de 2010. O pedido de patente de prioridade dos Estados Unidos, sob o qual este pedido de patente se baseia, não foi depositado antes do aparente roubo.
CAMPO DA REVELAÇÃO
[0003] Esta revelação diz respeito em estender as capacidades de pesquisa para aplicações de terceiros em um dispositivo de computação.
ANTECEDENTES DA REVELAÇÃO
[0004] Hoje, muitas aplicações foram desenvolvidas para executar em dispositivos multifuncionais, tais como telefones celulares que incluem reprodutores de mídia, assistentes digitais pessoais (PDAs), etc. Muitas destas aplicações são fornecidas por fontes diferentes do vendedor dos dispositivos multifuncionais, e consequentemente, elas são comumente referidas como aplicações de terceiros. Estas aplicações podem executar uma ampla variedade de funções, tais como fornecer entretenimento, gestão de redes sociais, etc. Executando estas funções, os dispositivos multifuncionais podem acessar o conteúdo armazenado nos dispositivos multifuncionais ou em uma rede (por exemplo, a Internet).
[0005] Para tornar isto mais fácil e mais conveniente para os usuários dos dispositivos multifuncionais organizarem e gerenciarem os conteúdos nos dispositivos multifuncionais, os sistemas operacionais instalados nos dispositivos multifuncionais tipicamente fornecem capacidades de pesquisa. Porque muitas das aplicações instaladas nos dispositivos multifuncionais são aplicações de terceiros, sistemas operacionais convencionais instalados nos dispositivos multifuncionais não estendem suas capacidades de pesquisa para estas aplicações de terceiros.
SUMÁRIO DA DESCRIÇÃO
[0006] Algumas modalidades incluem uma ou mais interfaces de programas de aplicação (APIs) em um ambiente com código de programa de chamada que interage com outro código de programa sendo chamado através do uma ou mais interfaces. Várias chamadas de função, mensagens ou outros tipos de invocações, que adicionalmente podem incluir vários tipos de parâmetros, podem ser transferidos por meio das APIs entre o programa de chamada e o código sendo chamado. Além disso, uma API pode prover ao código de programa de chamada a habilidade para usar os tipos de dados ou classes definidos na API e implementados no código de programa chamado.
[0007] Pelo menos certas modalidades incluem um ambiente com um componente de software de chamada que interage com um componente de software chamado através de uma API. Um método para operar através de uma API neste ambiente inclui transferir uma ou mais chamadas de função, mensagens, outros tipos de invocações ou parâmetros por meio da API.
[0008] Pelo menos certas modalidades da revelação presente incluem uma ou mais APIs em um ambiente com capacidades de pesquisa estendida para uma ou mais aplicações de terceiros em um dispositivo multifuncional. Várias chamadas de função ou mensagens são transferidas por meio das APIs entre o sistema operacional do dispositivo multifuncional e as aplicações de terceiros. APIs exemplares transferem chamadas de função para implementar indexação e pesquisa dos conteúdos associados com as aplicações de terceiros.
[0009] Algumas modalidades da revelação presente incluem um método para estender capacidades de pesquisa para aplicações de terceiros instaladas em um dispositivo multifuncional. Em uma modalidade, os registros associados com uma aplicação de terceiros são indexados em um processo isolado de outras aplicações de terceiros, aplicações do sistema, e lotes de pesquisa instalados no dispositivo multifuncional usando uma extensão auxiliar (plugin) de pesquisa específica para a aplicação de terceiros. Note que a indexação pode ser executada sem invocar a aplicação de terceiros. Além disso, os registros indexados podem ser pesquisados em resposta a uma consulta de pesquisa do usuário sem invocar (por exemplo, iniciar ou executar) a aplicação de terceiros.
[00010] De acordo com algumas modalidades da revelação presente, uma aplicação de terceiros instalada em um dispositivo multifuncional pode fornecer uma extensão auxiliar de pesquisa específica para a aplicação de terceiros. A extensão auxiliar de pesquisa pode ser iniciada para passar os registros associados com a aplicação de terceiros para um daemon de pesquisa executando em um processo separado no dispositivo multifuncional. Identificadores (Ids) dos registros podem especificar como um registro deveria parecer como quando o registro for exibido em um resultado da pesquisa gerado em resposta a uma consulta de pesquisa do usuário. Cada um dos Ids pode ainda incluir um ID local tendo sub-ids correspondem a tipos diferentes de conteúdos dentro de um documento associado com o respectivo registro.
[00011] Vários dispositivos que executam um ou mais dos métodos anteriores e meios legíveis por máquina que, quando executados por um sistema de processamento, fazem o sistema de processamento executar estes métodos, são também descritos.
[00012] Outros métodos, dispositivos e meios legíveis por máquina são também descritos.
BREVE DESCRIÇÃO DOS DESENHOS
[00013] A revelação é descrita por via de exemplo com referência aos desenhos em anexo, em que:
[00014] FIG. 1 ilustra um diagrama de blocos de uma arquitetura de API exemplar utilizável em algumas modalidades da invenção;
[00015] FIG. 2 é uma modalidade exemplar de uma pilha de software utilizável em algumas modalidades da invenção;
[00016] FIG. 3 é um diagrama de interações entre um daemon de pesquisa e uma aplicação de terceiros executando em um dispositivo multifuncional de acordo com uma modalidade da invenção;
[00017] FIG. 4 é um fluxograma de uma modalidade de um método para configurar as capacidades de pesquisa e de indexação para uma aplicação de terceiros em um dispositivo multifuncional;
[00018] FIG. 5 é um fluxograma de uma modalidade de um método para uma aplicação de terceiros em um dispositivo multifuncional para processar alterações nos dados de aplicação;
[00019] FIG. 6 é um fluxograma de uma modalidade de um método para um daemon de pesquisa em um dispositivo multifuncional para processar alterações nos dados de aplicação associados com uma aplicação de terceiros;
[00020] FIG. 7 é um fluxograma de uma modalidade de um método para um daemon de pesquisa em um dispositivo multifuncional para indexar dados de aplicação;
[00021] FIG. 8 é um fluxograma de uma modalidade de um método para um indexador de aplicação em um dispositivo multifuncional para indexar dados de aplicação;
[00022] FIG. 9 é um fluxograma de uma modalidade de um método para um daemon de pesquisa para pesquisar dados de aplicação indexados associados com uma aplicação de terceiros;
[00023] FIG. 10 ilustra uma modalidade de uma base de dados de pesquisa em um dispositivo multifuncional;
[00024] FIG. 11 ilustra uma modalidade de um identificador local de um documento exemplar;
[00025] FIG. 12 é uma vista de perspectiva de um dispositivo de acordo com uma modalidade da revelação presente;
[00026] FIG. 13 mostra uma modalidade de um dispositivo sem fios que inclui a capacidade para comunicação sem fios; e
[00027] FIG. 14 mostra outro exemplo de um dispositivo de acordo com uma modalidade da revelação presente.
DESCRIÇÃO DETALHADA
[00028] Várias modalidades e aspectos da revelação serão descritos com referência aos detalhes debatidos abaixo, e os desenhos em anexo ilustrarão as várias modalidades. A descrição seguinte e os desenhos são ilustrativos da revelação e não são para ser interpretados como limitando a revelação. Numerosos detalhes específicos são descritos para fornecer um entendimento completo das várias modalidades da revelação presente. Porém, em certas instâncias, detalhes bem conhecidos ou convencionais não são descritos para fornecer um debate conciso das modalidades da revelação presente.
[00029] Algumas porções das descrições detalhadas que seguem são apresentadas em termos de algoritmos que incluem operações nos dados armazenados dentro de uma memória do computador. Um algoritmo é em geral uma sequência autoconsistente das operações que conduzem a um resultado desejado. As operações tipicamente requerem ou envolvem manipulações físicas das quantidades físicas. Usualmente, embora não necessariamente, estas quantidades levam a forma de sinais elétricos ou magnéticos capazes de serem armazenados, transferidos, combinados, comparados, e do contrário manipulados. Provou-se conveniente às vezes, principalmente por motivo da prática geral, se referir a estes sinais como bits, valores, elementos, símbolos, caracteres, termos, números, ou outros.
[00030] Deve-se ter em mente que todos estes termos e similares são para ser associados com as quantidades físicas apropriadas e são meramente marcações convenientes aplicadas a estas quantidades. A menos que do contrário especificamente declarado como evidente do debate seguinte, é apreciado que ao longo da descrição, debates utilizando termos tais como "processamento" ou "computação" ou "cálculo" ou "determinação" ou "exibição" ou outros, podem referir à ação e processos de um sistema de processamento de dados, ou dispositivo eletrônico similar que manipula e transforma os dados representados como quantidades física (eletrônica) dentro dos registros e memórias do sistema em outros dados similarmente representados como quantidades físicas dentro das memórias ou registros do sistema ou outros tais dispositivos de armazenamento, transmissão ou exibição da informação.
[00031] A revelação presente pode referir-se a um aparelho para executar uma ou mais das operações descritas aqui. Este aparelho pode ser especialmente construído para os propósitos requeridos, ou pode compreender um computador de propósito geral seletivamente ativado ou reconfigurado por um programa de computação armazenado no computador. Um tal programa de computação podem ser armazenado em um meio de armazenamento legível por máquina (por exemplo computador), tal como, mas não é limitado a, qualquer tipo de disco incluindo discos flexíveis, discos ópticos, CD-ROMs, e discos magnético-ópticos, memórias exclusiva de leitura (ROMs), memórias de acesso aleatório (RAMs), ROMs programáveis deletáveis (EPROMs), ROMs programáveis eletricamente deletáveis (EEPROMs), memória instantânea, cartões magnéticos ou ópticos, ou quaisquer tipos de meios adequados para armazenar instruções eletrônicas, e cada um acoplado a um barramento.
[00032] Um meio legível por máquina inclui qualquer mecanismo para armazenar ou transmitir informação em uma forma legível por uma máquina (por exemplo, um computador). Por exemplo, as máquinas armazenam e comunicam (internamente e com outros dispositivos em uma rede) código e dados usando meios legíveis por máquina, tais como meios de armazenamento legíveis por máquina (por exemplo, discos magnéticos; discos ópticos; memória de acesso aleatório; memória exclusiva de leitura; dispositivos de memória instantânea; memória de alteração de fase) e meios de comunicação legíveis por máquina (por exemplo, forma elétrica, óptica, acústica ou outras formas de sinais propagados - tais como ondas portadoras, sinais infravermelhos, sinais digitais, etc).
[00033] Pelo menos certas modalidades da revelação presente incluem uma mais ou interfaces de programas de aplicação em um ambiente com software de pesquisa interagindo com uma aplicação de software. Várias chamadas de função ou mensagens são transferidas por meio das interfaces de programas de aplicação entre o software de pesquisa e as aplicações de software. Transferência das chamadas de função ou mensagens pode incluir emitir, iniciar, invocar ou receber as chamadas de função ou mensagens. Interfaces de programas de aplicação exemplares transferem as chamadas de função para implementar várias operações (por exemplo, pesquisa, gestão de redes, descoberta de serviço, etc.) para um dispositivo que tem uma região de exibição. Uma API pode também implementar funções que têm parâmetros, variáveis, ou ponteiros. Uma API pode receber os parâmetros como revelados ou outras combinações de parâmetros. Além das APIs reveladas, outras APIs individualmente ou em combinação podem executar funcionalidade similar como as APIs reveladas.
[00034] A região de exibição pode ser em uma forma de uma janela. Uma janela é uma região de exibição que pode ou não ter uma borda e pode ser a região de exibição inteira ou área de uma exibição. Em algumas modalidades, uma região de exibição pode ter pelo menos uma janela e/ou pelo menos uma vista (por exemplo, conteúdo de rede, texto, ou de imagem). Os métodos, sistemas, e aparelhos revelados podem ser implementados com regiões de exibição, janelas, e/ou vistas.
[00035] Pelo menos certas modalidades da revelação podem fazer parte de um dispositivo eletrônico portátil, tal como um reprodutor de mídia digital (por exemplo, um reprodutor de mídia de música e/ou vídeo portátil) que pode incluir um sistema de processamento de mídia para apresentar a mídia, um dispositivo de armazenamento para armazenar a mídia e pode ainda incluir um transceptor de radiofrequência (RF) (por exemplo, um transceptor RF para um telefone celular) acoplado com um sistema de antena e o sistema de processamento de mídia. Em certas modalidades, os dados armazenados em um dispositivo de armazenamento remoto podem ser transmitidos para o dispositivo eletrônico portátil através do transceptor de RF. Os dados podem ser, por exemplo, um ou mais de música ou outro áudio, imagens estáticas, ou filmes, etc.
[00036] O reprodutor de mídia portátil pode incluir um dispositivo de seleção de mídia, tais como um dispositivo de entrada de roda de clique em um reprodutor de mídia iPod® ou iPod Nano® da Apple Computer, Inc. de Cupertino, CA, um dispositivo de entrada de tela de toque, dispositivo de botão, dispositivo de entrada de apontamento movível ou outro dispositivo de entrada. O dispositivo de seleção de mídia pode ser usado para selecionar a mídia armazenada no dispositivo de armazenamento e/ou no dispositivo de armazenamento remoto. O reprodutor de mídia portátil pode, em pelo menos certas modalidades, incluir um dispositivo de exibição que é acoplado ao sistema de processamento de mídia para exibir títulos ou outros indicadores de mídia sendo selecionados através do dispositivo de entrada e sendo apresentado, ou através de um alto-falante ou fone(s) de ouvido, ou no dispositivo de exibição, ou em dispositivo de exibição e um alto-falante ou fone(s) de ouvido. Em algumas modalidades, o dispositivo de exibição e o dispositivo de entrada são integrados enquanto em outras modalidades o dispositivo de exibição e o dispositivo de entrada são dispositivos separados.
[00037] As modalidades da revelação descritas aqui podem fazer parte de outros tipos de sistemas de processamento de dados, tais como, por exemplo, sistemas de entretenimento ou assistentes digitais pessoais (PDAs), ou sistemas de computador de propósito geral, ou sistemas de computador de propósito especial, ou um dispositivo embutido dentro de outro dispositivo, ou telefones celulares que não incluam reprodutores de mídia, ou dispositivos de tablete de toque multifuncionais, ou outros dispositivos de toque multifuncionais, ou dispositivos que combinam os aspectos ou funções destes dispositivos (por exemplo, reprodutor de mídia, tal como um reprodutor de mídia portátil iPod®, combinado com um PDA, um sistema de entretenimento, e um telefone celular em um dispositivo, um iPhone®). Porque estes dispositivos em geral têm funcionalidades múltiplas, estes dispositivos podem também ser referidos como dispositivos multifuncionais doravante. Nesta revelação, os dispositivos eletrônicos e dispositivos do consumidor são tipos de dispositivos.
[00038] Em algumas modalidades, uma plataforma fornece várias operações de pesquisa, de descoberta de serviço, e de gestão de redes. A plataforma inclui componentes de hardware e um sistema operacional. Os componentes de hardware podem incluir uma unidade de processamento acoplada a um painel de entrada e uma memória acoplada ao processador. O sistema operacional inclui um ou mais programas que são armazenados na memória e configurados para serem executados pela unidade de processamento. Um ou mais programas incluem várias instruções para transferir as chamadas de função ou mensagens através de uma Interface de Programas de Aplicação (API) para executar várias operações de pesquisa, de descoberta de serviço, e de gestão de redes.
[00039] Uma ou mais APIs podem ser usadas em algumas modalidades. Uma API é uma interface implementada por um componente de código de programa ou componente de hardware (doravante "componente de implementação de API") que permite um componente de código de programa ou componente de hardware diferente (doravante "componente de chamada de API") acessar e usar uma ou mais funções, métodos, procedimentos, estruturas de dados, classes, e/ou outros serviços fornecidos pelo componente de implementação de API. Uma API pode definir um ou mais parâmetros que são passados entre o componente de chamada de API e o componente de implementação de API.
[00040] Uma API permite o desenvolvedor de um componente de chamada de API (que pode ser um desenvolvedor de terceiros) alavancar as características fornecidas especificadas por um componente de implementação de API. Pode haver um componente de chamada de API ou pode haver mais que um tal componente. Uma API pode ser uma interface de código fonte que um sistema de computador ou biblioteca de programas provê para suportar as solicitações por serviços de uma aplicação. Um sistema operacional (SO) pode ter múltiplas APIs para permitir as aplicações executando no SO chamar uma ou mais daquelas APIs, e um serviço (tal como uma biblioteca de programas) pode ter APIs múltiplas para permitir uma aplicação que usa o serviço chamar uma ou mais daquelas APIs. Uma API pode ser especificada em termos de uma linguagem de programação que pode ser interpretada ou compilada quando uma aplicação for construída.
[00041] Em algumas modalidades, o componente de implementação de API pode fornecer mais de uma API, cada fornecendo uma vista diferente ou com aspectos diferentes que acessam diferentes aspectos da funcionalidade implementada pelo componente de implementação de API. Por exemplo, uma API de um componente de implementação de API pode fornecer um primeiro conjunto de funções e pode ser exposta a desenvolvedores de terceiros, e outra API do componente de implementação de API pode ser oculta (não exposta) e fornece um subconjunto do primeiro conjunto de funções e também fornece outro conjunto de funções, tais como funções de testagem ou depuração que não estão no primeiro conjunto de funções. Em outras modalidades o componente de implementação de API pode chamar um ou mais outros componentes por meio de uma API subjacente e desse modo ser um componente de chamada de API e um componente de implementação de API.
[00042] Uma API define a linguagem e parâmetros que os componentes de chamada de API usam ao acessar e usar as características especificadas do componente de implementação de API. Por exemplo, um componente de chamada de API acessa as características especificadas do componente de implementação de API através de uma ou mais chamadas ou invocações da API (incorporadas, por exemplo, pelas chamadas de função ou de método) expostas pela API, e passa os dados e a informação de controle usando os parâmetros por meio das chamadas ou invocações de API. O componente de implementação de API pode retornar um valor através da API em resposta a uma chamada de API de um componente de chamada de API. Embora a API defina a sintaxe e o resultado de uma chamada de API (por exemplo, como invocar a chamada de API e o que a chamada de API faz), a API pode não revelar como a chamada de API realiza a função especificada pela chamada de API. Várias chamadas de API são transferidas por meio do uma ou mais interfaces de programas de aplicação entre a chamada (componente de chamada de API) e um componente de implementação de API. Transferência das chamadas de API pode incluir emitir, iniciar, invocar, chamar, receber, retornar, ou responder às chamadas ou mensagens de função; em outras palavras, transferência pode descrever ações por qualquer um dentre o componente de chamada de API ou o componente de implementação de API. A chamadas de função ou outras invocações da API podem enviar ou receber um ou mais parâmetros através de uma lista de parâmetro ou outra estrutura. Um parâmetro pode ser uma constante, chave, estrutura de dados, objeto, classe de objetos, variável, tipo de dados, ponteiro, arranjo, lista ou um ponteiro para uma função ou método ou outro modo para referir a um dado ou outro item a ser passado por meio da API.
[00043] Além disso, tipos de dados ou classes podem ser fornecidos pela API e implementados pelo componente de implementação de API. Desse modo, o componente de chamada de API pode declarar variáveis, usar ponteiros, usar ou instanciar valores constantes de tais tipos ou classes usando as definições fornecidas na API.
[00044] Em geral, uma API pode ser usada para acessar um serviço ou dado fornecido pelo componente de implementação de API ou iniciar o desempenho de uma operação ou computação fornecida pelo componente de implementação de API. Por via de exemplo, o componente de implementação de API e o componente de chamada de API podem ser cada qualquer um de um sistema operacional, uma biblioteca, um acionador de dispositivo, uma API, um programa de aplicação, ou outro módulo (deveria ser entendido que o componente de implementação de API e o componente de chamada de API podem ser o mesmo tipo de módulo ou diferente um do outro). Os componentes de implementação de API podem ser, em alguns casos, incorporados pelo menos em parte em firmware, microcódigo, ou outra lógica de hardware. Em algumas modalidades, uma API pode permitir um programa cliente usar os serviços fornecidos por uma biblioteca do Kit de Desenvolvimento de Software (SDK). Em outras modalidades, uma aplicação ou outro programa cliente pode usar uma API fornecida por uma Estrutura de Aplicação. Nestas modalidades, a aplicação ou programa cliente pode incorporar chamada para as funções ou métodos fornecidos pelo SDK e fornecidos pela API ou usar os tipos de dados ou objetivos definidos no SDK e fornecidos pela API. Uma Estrutura de Aplicação pode fornecer, nestas modalidades, uma alça de evento principal para um programa que responde a vários eventos definidos pela Estrutura. A API permite a aplicação especificar os eventos e as respostas aos eventos usando a Estrutura de Aplicação. Em algumas implementações, uma chamada de API pode relatar a uma aplicação as capacidades ou estado de um dispositivo de hardware, incluindo aquelas relacionadas aos aspectos tais como capacidades de entrada e estado, capacidades de saída e estado, capacidade de processamento, estado de potência, capacidade de armazenamento e estado, capacidade de comunicações, etc., e a API pode ser implementada em parte por firmware, microcódigo, ou outra lógica de nível baixo que opera, em parte, no componente de hardware.
[00045] O componente de chamada de API pode ser um componente local (isto é, no mesmo sistema de processamento de dados que o componente de implementação de API) ou um componente remoto (isto é, em um sistema de processamento de dados diferente do componente de implementação de API) que se comunica com o componente de implementação de API através da API em uma rede. Deveria ser entendido que um componente de implementação de API pode também atuar como um componente de chamada de API (isto é, pode fazer chamadas de API a uma API exposta por um componente de implementação de API diferente) e um componente de chamada de API pode também atuar como um componente de implementação de API implementando uma API que é exposta a um componente de chamada de API diferente.
[00046] A API pode permitir os múltiplos componentes de chamada de API escritos em linguagens de programação diferentes se comunicarem com o componente de implementação de API (desse modo a API pode incluir características para traduzir as chamadas e retornos entre o componente de implementação de API e o componente de chamada de API); porém a API pode ser implementada em termos de uma linguagem de programação específica. Um componente de chamada de API pode, em uma modalidade, chamar as APIs de provedores diferentes tais como um conjunto de APIs de um provedor do SO e outro conjunto de APIs de um provedor de extensão auxiliar e outro conjunto de APIs de outro provedor (por exemplo o provedor de uma biblioteca de software) ou criador do outro conjunto de APIs.
[00047] FIG. 1 é um diagrama de blocos que ilustra uma arquitetura de API exemplar que pode ser usada em algumas modalidades da invenção. Como mostrado na FIG. 1, a arquitetura de API 100 inclui o componente de implementação de API 110 (por exemplo, um sistema operacional, uma biblioteca, um acionador de dispositivo, uma API, um programa de aplicação, software ou outro módulo) que implementa a API 120. A API 120 especifica uma ou mais funções, métodos, classes, objetos, protocolos, estruturas de dados, formatos e/ou outras características do componente de implementação de API que pode ser usado pelo componente de chamada de API 130. A API 120 pode especificar pelo menos uma convenção de chamada que especifica como uma função no componente de implementação de API recebe os parâmetros do componente de chamada de API e como a função retorna um resultado para o componente de chamada de API. O componente de chamada de API 130 (por exemplo, um sistema operacional, uma biblioteca, um acionador de dispositivo, uma API, um programa de aplicação, software ou outro módulo) faz chamadas de API através da API 120 para acessar e usar as características do componente de implementação de API 110 que são especificadas pela API 120. O componente de implementação de API 110 pode retornar um valor através da API 120 para o componente de chamada de API 130 em resposta a uma chamada de API.
[00048] Será apreciado que o componente de implementação de API 110 pode incluir funções, métodos, classes, estruturas de dados, e/ou outras características adicionais que não são especificadas pela API 120 e não estão disponíveis para o componente de chamada de API 130. Deveria ser entendido que o componente de chamada de API 130 pode estar no mesmo sistema que o componente de implementação de API 110 ou pode estar localizado remotamente e acessar o componente de implementação de API 110 usando a API 120 em uma rede. Embora a Figura 1 ilustre um só componente de chamada de API 130 interagindo com a API 120, deveria ser entendido que outros componentes de chamada de API, que podem ser escritos em linguagens diferentes (ou na mesma linguagem) que o componente de chamada de API 130, podem usar a API 120.
[00049] O componente de implementação de API 110, a API 120, e o componente de chamada de API 130 podem ser armazenados em um meio legível por máquina que inclui qualquer mecanismo para armazenar informação em uma forma legível por uma máquina (por exemplo, um computador ou outro sistema de processamento de dados). Por exemplo, um meio legível por máquina inclui discos magnéticos, discos ópticos, memória de acesso aleatório; memória exclusiva de leitura, dispositivos de memória instantânea, etc.
[00050] Na FIG. 2 ("Pilha de software"), uma modalidade exemplar, as aplicações podem fazer chamadas para Serviços 1 ou 2 usando várias APIs de Serviço e para o Sistema operacional (SO) usando várias APIs do SO. Serviços A e B pode fazer chamadas para SO usando várias APIs do SO.
[00051] Note que o Serviço 2 tem duas APIs, uma destas (API 1 do Serviço 2) recebe as chamadas e retorna os valores para a Aplicação 1 e a outra (API 2 do Serviço 2) recebe as chamadas e retorna os valores para a Aplicação 2. Serviço 1 (que pode ser, por exemplo, uma biblioteca de software) faz chamadas e recebe os valores retornados da API 1 do SO, e Serviço 2 (que pode ser, por exemplo, uma biblioteca de software) faz chamadas e recebe os valores retornados de ambas API 1 do SO e API 2 do SO. A aplicação 2 faz chamadas e recebe os valores retornados da API 2 do SO.
[00052] FIG. 3 é um diagrama de interações entre um daemon de pesquisa 320 e uma aplicação de terceiros 310 executando em um dispositivo multifuncional de acordo com uma modalidade da invenção. Uma aplicação de terceiros como aqui usada refere-se amplamente a uma aplicação de software fornecida por uma entidade diferente do fabricante do dispositivo multifuncional. Tipicamente, um usuário do dispositivo multifuncional pode instalar uma ou mais aplicações de terceiros executáveis no dispositivo multifuncional para executar um conjunto específico de tarefas ou funções. Alguns exemplos de aplicações de terceiros incluem visualizador de livro eletrônico, gerenciador de rede social, etc.
[00053] Em geral, o dispositivo multifuncional pode armazenar os dados de aplicação associados com a aplicação de terceiros 310 indexados através do daemon de pesquisa 320 em uma base de dados de pesquisa 380 no dispositivo multifuncional. Em uma modalidade, o dispositivo pode ter uma pluralidade de aplicações de terceiros, tais como aplicação 310, cada funcionando dentro da maneira descrita aqui, a daemon de pesquisa 320 ou uma daemon de instância de pesquisa 320 criada para uma aplicação de terceiros correspondente que usa a instância. Em algumas modalidades, o daemon de pesquisa 320 pode iniciar um indexador de aplicação 330 para indexar os dados de aplicação. Especificamente, o indexador de aplicação 330 pode iniciar uma instância de um lote de pesquisa de aplicação 340 fornecido por aplicação de terceiros 310 para recuperar os registros dos dados de aplicação para indexação. Note que o lote de pesquisa de aplicação 340 é iniciado em um processo separado isolado de outras aplicações de terceiros, aplicações do sistema, e lotes de pesquisa por razões de segurança. Além disso, o processo separado em que o lote de pesquisa de aplicação 340 é iniciado pode ter os mesmos privilégios (por exemplo, privilégios com respeito a ler e escrever em uma porção selecionada de um espaço de memória mas do contrário restringido em escrever ou ler em outras porções da memória) como aplicação de terceiros 310 associados com o lote de pesquisa de aplicação 340. Desse modo, o lote de pesquisa de aplicação 340 é concedido acesso aos conteúdos que a aplicação de terceiros 310 é permitida acessar, e é proibido de acessar os conteúdos que a aplicação de terceiros 310 não é permitida acessar. Em algumas modalidades, as porções da daemon de pesquisa 320, tais como indexador de aplicação 330, podem também gozar dos mesmos privilégios (por exemplo, restrições de espaço de memória) como aplicação de terceiros 310. Em algumas modalidades, o daemon de pesquisa 320 pode pesquisar os dados de aplicação indexados na base de dados de pesquisa 380 em resposta às consultas de usuário sem iniciar a aplicação de terceiros 310. Detalhes de algumas modalidades das interações entre o daemon de pesquisa 320 e a aplicação de terceiros 310 para os dados de aplicação de indexação e pesquisa são debatidos abaixo para adicionalmente ilustrar o acima conceito.
[00054] Em uma modalidade, a aplicação de terceiros 310 é iniciada para executar no dispositivo multifuncional. Enquanto executando, a aplicação de terceiros 310 faz alterações nos dados de aplicação 315. Por exemplo, a aplicação de terceiros 310 pode modificar um registro existente armazenado no dispositivo multifuncional, transferir um registro novo para o dispositivo multifuncional, e/ou remover (ou deletar) um registro existente armazenado no dispositivo multifuncional. Quando a aplicação de terceiros 310 alterar os dados de aplicação 315, a aplicação de terceiros 310 adicionalmente envia identificadores (Ids) dos registros alterados nos dados de aplicação 315 para o daemon de pesquisa 320. Daemon de pesquisa 320 pode armazenar temporariamente os Ids dos registros alterados em uma lista de atualização 325.
[00055] Depois, quando o daemon de pesquisa 320 necessita construir dados indexados, o daemon de pesquisa 320 pode iniciar um processo separado para executar o indexador de aplicação 330. O daemon de pesquisa 320 pode construir dados indexados periodicamente, ou quando uma pesquisa for requerida, ou a algum outro tempo ou intervalos de tempo. Alternativamente, o daemon de pesquisa 320 pode construir dados indexados quando o daemon de pesquisa 320 descobrir informação nova na lista de atualização 325. Isto pode acontecer na ocasião da aplicação de terceiros 310 informar o daemon de pesquisa 320 dos identificadores de atualização. Pode também haver desencadeadores externos para aplicação 310 que podem iniciar a indexação, tal como, por exemplo, atualizações da aplicação, restabelecimentos do sistema, atualizações do sistema, etc. O indexador de aplicação 330 pode carregar lote de pesquisa de aplicação 340. Em algumas modalidades, o lote de pesquisa de aplicação 340 é uma extensão auxiliar relacionada à pesquisa específica para a aplicação de terceiros 310. Aplicação de terceiros 310 pode ter fornecido o lote de pesquisa de aplicação 340 sob instalação da aplicação de terceiros 310 no dispositivo multifuncional. Indexador de aplicação 330 pode fornecer os Ids dos registros alterados da lista de atualização 325 para o lote de pesquisa de aplicação 340. Em resposta, o lote de pesquisa de aplicação 340 fornece os registros alterados para o indexador de aplicação 330 a serem indexados. Alternativamente, o indexador de aplicação 330 pode requerer todos os registros associados com a aplicação de terceiros 310 do lote de pesquisa de aplicação 340. Em uma modalidade, a instância do indexador de aplicação 330 para aplicação de terceiros 310 ser executado em seu próprio processo, mas com os privilégios (com respeito ao controle de memória, espaço de memória, alocação de memória, controle do sistema de arquivamento, e controle de rede) que a aplicação de terceiros 310.
[00056] Em algumas modalidades, cada registro inclui um conjunto de atributos que ditam como o respectivo registro deveria ser exibido em um resultado da pesquisa no caso de ser emparelhado a uma consulta de pesquisa do usuário. Por exemplo, um registro exemplar pode incluir um ID, um título do conteúdo, um subtítulo do conteúdo, e um ID específico para a aplicação (também referido como um ID local). Quando o registro emparelhar a uma consulta de pesquisa do usuário, o título e o subtítulo do registro podem ser apresentados no resultado da pesquisa da consulta de pesquisa do usuário.
[00057] Usando os registros do lote de pesquisa de aplicação 340, o indexador de aplicação 330 podem construir ou adicionar um registro na base de dados de pesquisa 380 que pode incluir metadados do conteúdo associado com o registro. Em algumas modalidades, a base de dados de pesquisa 380 inclui bases de dados múltiplas sincronizadas entre si. Por exemplo, a base de dados de pesquisa 380 pode incluir uma primeira base de dados para armazenar o conteúdo indexado e uma segunda base de dados para armazenar o registra do conteúdo indexado. Mais detalhes de uma modalidade de uma base de dados de pesquisa são debatidos abaixo.
[00058] Quando um usuário submete uma consulta de pesquisa do usuário, o daemon de pesquisa 320 pode acessar a base de dados de pesquisa 380 para encontrar registros que emparelham com a consulta de pesquisa do usuário. Note que o daemon de pesquisa 320 pode pesquisar os registros associados com dados de aplicação da aplicação de terceiros 310 sem iniciar a aplicação de terceiros 310. Daemon de pesquisa 320 pode apresentar partes dos registros que emparelham com a consulta de pesquisa do usuário, tais como, por exemplo, exibir títulos e subtítulos dos registros emparelhados em uma região de resultado da pesquisa dentro de uma janela. Em algumas modalidades, o usuário pode selecionar um registro dos registros emparelhados. Em resposta à seleção do usuário, o daemon de pesquisa 320 pode iniciar a aplicação de terceiros 310 no dispositivo multifuncional para apresentar o conteúdo associado com o registro selecionado. Por exemplo, o conteúdo pode incluir dados de vídeo e a aplicação de terceiros 310 pode ser iniciada para representar o vídeo; ou o conteúdo pode incluir um livro eletrônico e a aplicação de terceiros 310 pode ser iniciada para exibir o livro eletrônico.
[00059] FIG. 4 é um fluxograma de uma modalidade de um método para configurar as capacidades de pesquisa e de indexação para uma aplicação de terceiros em um dispositivo multifuncional. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00060] Em algumas modalidades, a instalação de uma aplicação de terceiros é iniciada em um dispositivo multifuncional no bloco 410. Um lote de pesquisa de aplicação específico para a aplicação de terceiros é armazenado em uma localização predeterminada com a aplicação de terceiros no dispositivo multifuncional no bloco 420. Falando em termos gerais, o lote de pesquisa de aplicação é uma extensão auxiliar fornecida pela aplicação de terceiros. O lote de pesquisa de aplicação pode ser carregado para transferir os registros de conteúdo associados com a aplicação de terceiros. No bloco 430, são verificados os metadados de aplicação de terceiros para determinar se a aplicação de terceiros quer indexar os conteúdos associados com a aplicação de terceiros. Se a aplicação de terceiros quiser indexar os conteúdos, a aplicação de terceiros é registrada no bloco 445. Por exemplo, um daemon de pesquisa executando no dispositivo multifuncional pode manter a trilha de uma lista de aplicações registradas em uma localização centralizada e o daemon de pesquisa pode indexar os conteúdos associados com a aplicação de terceiros como debatido abaixo.
[00061] FIG. 5 é um fluxograma de uma modalidade de um método para uma aplicação de terceiros em um dispositivo multifuncional para processar alterações nos dados de aplicação. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00062] Em algumas modalidades, uma aplicação de terceiros é executada em um dispositivo multifuncional no bloco 510. No bloco 520, a aplicação de terceiros altera os registros de dados de aplicação associados com a aplicação de terceiros. No bloco 530, a aplicação de terceiros envia os identificadores (Ids) dos registros alterados para um daemon de pesquisa executando no dispositivo multifuncional.
[00063] FIG. 6 é um fluxograma de uma modalidade de um método para um daemon de pesquisa em um dispositivo multifuncional para processar as alterações nos dados de aplicação associados com uma aplicação de terceiros. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00064] No bloco 610, um daemon de pesquisa executando em um dispositivo multifuncional recebe os Ids de registros alterados dos dados de aplicação associados com uma aplicação de terceiros. O daemon de pesquisa põe os Ids recebidos em uma lista de atualização no bloco 620. O daemon de pesquisa pode usar a lista de atualização depois para determinar se tem indexar os registros como debatido abaixo.
[00065] FIG. 7 é um fluxograma de uma modalidade de um método para um daemon de pesquisa em um dispositivo multifuncional para indexar os dados de aplicação. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00066] No bloco 710, o daemon de pesquisa verifica uma lista de atualização para determinar se há qualquer registro alterado. Em algumas modalidades, o daemon de pesquisa pode verificar a lista de atualização periodicamente. Se houver, então o daemon de pesquisa tem que indexar o registro alterado. O daemon de pesquisa pode iniciar um indexador de aplicação em um processo separado para indexar o registro alterado no bloco 720.
[00067] FIG. 8 é um fluxograma de uma modalidade de um método para um indexador de aplicação em um dispositivo multifuncional para indexar os dados de aplicação. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00068] No bloco 810, um indexador de aplicação executando em um dispositivo multifuncional instancia uma instância de um lote de pesquisa de aplicação em um processo separado isolado de outras aplicações de terceiros, aplicações de sistema, e lotes de pesquisa. O lote de pesquisa de aplicação é uma extensão auxiliar específica para uma aplicação de terceiros instalada no dispositivo multifuncional. No bloco 820, o indexador de aplicação passa os Ids de registros alterados para o lote de pesquisa de aplicação requerer os registros alterados do lote de pesquisa de aplicação. Alternativamente, o indexador de aplicação pode decidir indexar todos os registros associados com a aplicação de terceiros, e desse modo, requerer todos os registros associados com a aplicação de terceiros do lote de pesquisa de aplicação.
[00069] No bloco 830, o indexador de aplicação recebe os registros requeridos do lote de pesquisa de aplicação. Cada registro pode conter um conjunto de atributos de conteúdo associado com o registro, tal como título de conteúdo, subtítulo do conteúdo, e identificador local do conteúdo usado pela aplicação de terceiros. No bloco 840, indexador de aplicação indexa os registros recebidos e armazena os registros indexados em uma base de dados de pesquisa dentro do dispositivo multifuncional.
[00070] FIG. 9 é um fluxograma de uma modalidade de um método para um daemon de pesquisa pesquisar os dados de aplicação indexados associados com uma aplicação de terceiros. O método pode ser executado por hardware, software, firmware, ou uma combinação de qualquer um dos acima.
[00071] No bloco 910, um daemon de pesquisa recebe uma consulta de pesquisa do usuário. Por exemplo, um usuário pode submeter uma consulta de pesquisa do usuário para procurar registros com um título que tem uma cadeia de texto específica (por exemplo, "mola"). No bloco 920, o daemon de pesquisa pesquisa uma base de dados de pesquisa que contém os registros indexados para registros que emparelham com a consulta de pesquisa do usuário.
[00072] No bloco 930, o daemon de pesquisa retorna um identificador de cada registro que emparelha com a consulta de pesquisa do usuário em um resultado da pesquisa a ser apresentado ao usuário. Em algumas modalidades, o identificador inclui um título, um subtítulo, uma referência à aplicação de terceiros associada, um identificador local (específico para a aplicação de terceiros), e uma categoria.
[00073] Em algumas modalidades, o dono de uma caixa de pesquisa na qual a consulta de pesquisa do usuário é entrada recebe os resultados da pesquisa do daemon de pesquisa no tempo da consulta. O usuário pode selecionar um registro do resultado da pesquisa. O dono pode ser uma aplicação de pesquisa, ou a aplicação de terceiros. Se o dono for uma aplicação de pesquisa executando pesquisas globais, a aplicação de pesquisa pode iniciar a aplicação de terceiros e passar no identificador local e categoria do daemon de pesquisa. Se o dono for a aplicação de terceiros, pode simplesmente apresentar o conteúdo associado com o registro selecionado. Note que quando o dono for a aplicação de terceiros, apenas registros no resultado da pesquisa relevante à aplicação de terceiros podem ser mostrados.
[00074] FIG. 10 ilustra uma modalidade de uma base de dados de pesquisa 1000 em um dispositivo multifuncional. A base de dados de pesquisa 1000 inclui uma primeira base de dados 1010 e uma segunda base de dados 1020. Em outras modalidades, a base de dados de pesquisa 1000 pode incluir mais de duas bases de dados.
[00075] Em algumas modalidades, a primeira base de dados 1010 armazena conteúdo (por exemplo, um documento, uma página de rede, um livro eletrônico, um vídeo, etc.) associado com algumas aplicações de terceiros e seus respectivos Ids. A segunda base de dados 1020 pode armazenar os registros do conteúdo. No exemplo atual, cada registro inclui o ID do conteúdo, um título do conteúdo, um subtítulo do conteúdo, e um ID local do conteúdo. O ID local é usado por uma aplicação de terceiros acessar e processar o conteúdo. Desse modo, o ID local pode também ser referido como um ID da aplicação. Detalhes de uma modalidade de um ID local são mostrados na FIG. 11. O conteúdo na base de dados de pesquisa 1000 é organizado mediante indexação dos registros. Um daemon de pesquisa executando no dispositivo multifuncional pode indexar os registros e pesquisar a base de dados de pesquisa 1000 em resposta às consultas de pesquisa do usuário como debatido acima.
[00076] Em algumas modalidades, a base de dados de pesquisa 1000 armazena o conteúdo de todas as categorias (por exemplo, música, vídeo, livros eletrônicos, podcasts, etc.) no dispositivo multifuncional. Embora a pesquisa executada na base de dados de pesquisa 1000 possa ser rápida, a base de dados de pesquisa 1000 pode ficar muito grande para cópia de segurança. Como tal, a base de dados de pesquisa 1000 pode ter que ser reconstruída do nada se necessário.
[00077] Alternativamente, há uma base de dados de pesquisa para cada categoria de conteúdo no dispositivo multifuncional. Por exemplo, uma primeira base de dados de pesquisa pode ser estabelecida para música, uma segunda base de dados de pesquisa pode ser estabelecida para podcasts, uma terceira base de dados de pesquisa pode ser estabelecida para livros eletrônicos, uma quarta base de dados de pesquisa para uma primeira aplicação de terceiros, e uma quinta base de dados de pesquisa para uma segunda aplicação de terceiros, e assim por diante. Separar os conteúdos das categorias diferentes em bases de dados de pesquisa diferentes, as bases de dados de pesquisa podem ser apoiadas em frequências diferentes dependendo de quanto estável está o conteúdo em cada base de dados de pesquisa. Quanto mais estável for o conteúdo, o menos frequente a base de dados de pesquisa correspondente tem que ser submetida à cópia de segurança. Porém, a pesquisa de conteúdo nas bases de dados de pesquisa pode ficar lenta por causa das múltiplas bases de dados de pesquisa. Para mitigar o impacto no desempenho, uma memória de armazenamento temporário (cache) pode ser implementada no dispositivo multifuncional para armazenar os registros do conteúdo frequentemente acessado. Como tal, as pesquisas podem ficar mais rápidas.
[00078] FIG. 11 ilustra uma modalidade de um ID de um documento exemplar. O ID 1100 inclui um título 1110 do documento exemplar, um subtítulo 1120 do documento exemplar, uma aplicação de terceiros 1130 associada com o documento exemplar, um identificador de categoria 1140 do documento exemplar, e um ID 1150 específico para aplicação do documento exemplar.
[00079] Em algumas modalidades, o ID 1100 é único para uma categoria particular dentro da aplicação de terceiros. Uma categoria é o tipo de conteúdo, tal como eslaide, vídeo, documento, podcast, etc. Desse modo, o ID 1150 específico para a aplicação é único porcategoria, e cada categoria é única dentro da aplicação de terceiros.
[00080] Em algumas modalidades, uma aplicação de terceiros pode estar associada com conteúdos de múltiplas categorias. Por exemplo, uma aplicação de terceiros pode estar associada com um documento em que um vídeo e um podcast está embutido. A aplicação de terceiros pode pôr um tal documento sob uma categoria simples (por exemplo, Documentos) no que diz respeito ao daemon de pesquisa. Se a aplicação de terceiros quiser ser capaz de retornar uma granularidade melhor do resultado, por exemplo, só a parte de podcast do documento, poderia fornecer um ID que apontasse diretamente para o podcast e o indexasse em uma categoria de Podcasts. A aplicação de terceiros poderia selecionar submeter qualquer um destes, ou ambos, à indexação. O daemon de pesquisa pode não diferenciar entre um resultado com subpedaços e um resultado atômico simples.
[00081] Em algumas modalidades, os métodos, sistemas, e aparelhos da revelação presente podem ser implementados em vários dispositivos incluindo dispositivos eletrônicos, dispositivos do consumidor, dispositivos de processamento de dados, computadores de mesa, computadores portáteis, dispositivos sem fios, dispositivos celulares, dispositivos de tablete, dispositivos de mão, dispositivos de toques múltiplos, dispositivos de toques múltiplos de processamento de dados, qualquer combinação destes dispositivos, ou outros dispositivos similares. Figuras 12-14 ilustram exemplos de alguns destes dispositivos.
[00082] FIG. 12 mostra um dispositivo 2950 de acordo com uma modalidade da revelação. O dispositivo 2950 pode incluir um alojamento 2952, um dispositivo de exibição/entrada 2954, um alto-falante 2956, um microfone 2958 e uma antena opcional 2960 (que pode ser visível no exterior do alojamento ou pode ser escondido dentro do alojamento). O dispositivo 2950 também pode incluir um sensor de proximidade 2962 e um acelerômetro 2964. O dispositivo 2950 pode ser um telefone celular ou um dispositivo que seja um PDA integrado e um telefone celular ou um dispositivo que seja um reprodutor de mídia integrado e um telefone celular ou um dispositivo que sejam ambos um sistema de entretenimento (por exemplo para jogar jogos) e um telefone celular, ou o dispositivo 2950 pode ser outros tipos de dispositivos descritos aqui. Em uma modalidade particular, o dispositivo 2950 pode incluir um telefone celular e reprodutor de mídia e um PDA, todos contiveram dentro do alojamento 2952. O dispositivo 2950 pode ter um fator de forma que seja pequeno o bastante que encaixe dentro da mão de um adulto normal e seja leve bastante que possa ser carregado em uma mão por um adulto. Será apreciado que o termo "portátil" significa o dispositivo pode ser facilmente contido nas mãos de um usuário adulto (um ou ambos); por exemplo, um laptop, um iPhone®, e um iPod® são dispositivos portáteis.
[00083] Em certas modalidades da revelação presente, o dispositivo 2950 pode ser usado para implementar pelo menos alguns dos métodos debatidos na revelação presente.
[00084] FIG. 13 mostra uma modalidade de um dispositivo sem fios que inclui a capacidade para comunicação sem fios. O dispositivo sem fios 3100 pode incluir um sistema de antena 3101. O dispositivo sem fios 3100 pode também incluir um transceptor de radiofrequência digital e/ou analógico (RF) 3102, acoplado ao sistema de antena 3101, para transmitir e/ou receber voz, dados digitais e/ou sinais de mídia através do sistema de antena 3101.
[00085] O dispositivo sem fios 3100 pode também incluir um sistema de processamento digital 3103 para controlar o transceptor de RF digital e gerenciar a voz, os dados digitais e/ou os sinais de mídia. Sistema de processamento digital 3103 pode ser um dispositivo de processamento de propósito geral, tal como um microprocessador ou controlador por exemplo. Sistema de processamento digital 3103 pode também ser um dispositivo de processo de propósito especial, tal como um ASIC (circuito integrado específico para a aplicação), FPGA (arranjo de porta programável por campo) ou DSP (processador de sinal digital). O sistema de processamento digital 3103 pode também incluir outros dispositivos, como é conhecido na técnica, para interfacear com outros componentes de dispositivo sem fios 3100. Por exemplo, o sistema de processamento digital 3103 pode incluir conversores analógico-para-digital e digital-para-analógico para interfacear com outros componentes de dispositivo sem fios 3100. O sistema de processamento digital 3103 pode incluir um sistema de processamento de mídia 3109 que pode também incluir um dispositivo de processamento de propósito geral ou especial para gerenciar as mídias, tal como arquivos de dados de áudio.
[00086] O dispositivo sem fios 3100 pode também incluir um dispositivo de armazenamento 3104, acoplado ao sistema de processamento digital, para armazenar dados e/ou programas operacionais para o dispositivo 3100 sem fios. O dispositivo de armazenamento 3104 pode ser, por exemplo, qualquer tipo de dispositivo de memória de estado sólido ou magnético. O dispositivo de armazenamento 3104 pode ser ou incluir um meio legível por máquina.
[00087] O dispositivo sem fios 3100 pode também incluir um ou mais dispositivos de entrada 3105, acoplados ao sistema de processamento digital 3103, para aceitar as entradas do usuário (por exemplo, números de telefone, nomes, endereços, seleções de mídia, etc). O dispositivo de entrada 3105 pode ser, por exemplo, um ou mais de um teclado complementar, um dispositivo sensível ao toque, uma tela de toque, um dispositivo de apontamento em combinação com um dispositivo de exibição ou dispositivo de entrada similar.
[00088] O dispositivo sem fios 3100 pode também incluir pelo menos um dispositivo de exibição 3106, acoplado ao sistema de processamento digital 3103, para exibir a informação tal como mensagens, informação de telefonema, informação de contato, imagens, filmes e/ou títulos ou outros indicadores de mídia que são selecionados por meio do dispositivo de entrada 3105. O dispositivo de exibição 3106 pode ser, por exemplo, um dispositivo de exibição de LCD. Em uma modalidade, o dispositivo de exibição 3106 e o dispositivo de entrada 3105 podem ser integrados no mesmo dispositivo (por exemplo, uma tela de toque de LCD tal como um painel de entrada de multitoques que é integrado com um dispositivo de exibição, tal como um dispositivo de exibição de LCD). O dispositivo de exibição 3106 pode incluir uma luz traseira 3106A para iluminar o dispositivo de exibição 3106 sob certas circunstâncias. Será apreciado que o dispositivo sem fios 3100 pode incluir exibições múltiplas.
[00089] O dispositivo sem fios 3100 pode também incluir uma bateria 3107 para prover potência operacional aos componentes do sistema incluindo transceptor digital RF 3102, sistema de processamento digital 3103, dispositivo de armazenamento 3104, dispositivo de entrada 3105, microfone 3105A, transdutor de áudio 3108, sistema de processamento de mídia 3109, sensor(es) 3110, e dispositivo de exibição 3106. Bateria 3107 pode ser, por exemplo, uma bateria recarregável ou não-recarregável de hidreto de metal de lítio ou níquel. O dispositivo sem fios 3100 pode também incluir transdutor de áudio 3108 que podem incluir um ou mais alto-falantes, e pelo menos um microfone 3105A. Em certas modalidades da revelação presente, o dispositivo sem fios 3100 pode ser usado para implementar pelo menos alguns dos métodos debatidos na revelação presente.
[00090] FIG. 14 mostram outro exemplo de um dispositivo de acordo com uma modalidade da revelação. Este dispositivo 3200 pode incluir um processador, tal como microprocessador 3202, e uma memória 3204 que é acoplada a um ao outro através de um barramento 3206. O dispositivo 3200 pode opcionalmente incluir uma memória de armazenamento temporário 3208 que é acoplada ao processador 3202. O dispositivo pode opcionalmente incluir um dispositivo de armazenamento 3240 que pode ser, por exemplo, qualquer dispositivo de memória do tipo de estado sólido ou magnético. O dispositivo de armazenamento 3240 pode ser ou incluir um meio legível por máquina.
[00091] Este dispositivo pode também opcionalmente incluir um controlador de vídeo e dispositivo de exibição 3210 que é acoplado aos outros componentes através do barramento 3206. Um ou mais controladores de entrada/saída 3212 são também acoplados ao barramento 3206 para prover uma interface para os dispositivos de entrada/saía 3214 e fornecer uma interface para um ou mais sensores 3216 que são para captar a atividade do usuário. O barramento 3206 pode incluir um ou mais barramentos conectados entre si através de várias pontes, controladores, e/ou adaptadores como é bem conhecido na técnica. Os dispositivos de entrada/saída 3214 podem incluir um teclado complementar ou teclado ou um dispositivo de controle de cursor tal como um painel de entrada de toque. Além disso, os dispositivos de entrada/saída 3214 podem incluir uma interface de rede que é para uma rede com fios ou uma rede sem fios (por exemplo um transceptor de RF). Os sensores 3216 podem ser qualquer um dos sensores descritos aqui incluindo, por exemplo, um sensor de proximidade ou um sensor de luz ambiente. Em pelo menos certas implementações do dispositivo 3200, o microprocessador 3202 pode receber os dados de um ou mais sensores 3216 e pode executar a análise daqueles dados da maneira descrita aqui.
[00092] Em certas modalidades da revelação presente, o dispositivo 3200 pode ser usado para implementar pelo menos alguns dos métodos debatidos na revelação presente.
[00093] No relatório descritivo anterior, a revelação foi descrita com referência às modalidades exemplares específicas da mesma. Será evidente que várias modificações podem ser feitas a esta sem abandono do espírito mais vasto e escopo da revelação como exposto nas concretizações. Consequentemente, o relatório descritivo e os desenhos são para ser considerados em um sentido ilustrativo ao invés de um sentido restritivo.

Claims (15)

  1. Método caracterizado pelo fato de que compreende as etapas de:
    iniciar um indexador de aplicação para operar em um processo tendo privilégios idênticos aos privilégios de uma aplicação de terceiros executável em um processador, em que o processo é separado de outros processos que envolvem outras aplicações de terceiros executáveis no processador;
    instanciar, pelo indexador de aplicação, uma instância de um lote de pesquisa de aplicação específico para a aplicação de terceiros, a instância executando com privilégios de leitura e gravação idênticos aos privilégios de leitura e gravação da aplicação de terceiros, da aplicação de terceiros provendo ao pacote de pesquisa de aplicações específico à aplicação de terceiros acesso a registros em um armazenamento de dados da aplicação associado à aplicação de terceiros; e
    solicitar, pelo indexador de aplicação da instância do pacote de pesquisa de aplicações, os registros identificados pelas identificações passadas para a instância do pacote de pesquisa de aplicações pelo indexador de aplicações, em que a instância do pacote de pesquisa de aplicações recupera os registros identificados do armazenamento de dados da aplicação sem iniciar a aplicação de terceiros,
    o indexador da aplicação indexando os registros da instância do lote de pesquisa de aplicação para armazenar os registros indexados em uma base de dados de pesquisa.
  2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que os outros processos incluem processos de pesquisa e indexação das outras aplicações de terceiros.
  3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as operações adicionalmente compreendem:
    o indexador de aplicação passar as identificações associadas com os registros em uma lista de atualização para o lote de pesquisa de aplicação para requerer os registros, em que as identificações atualizadas são adicionadas na lista de atualização quando a aplicação de terceiros fornece as identificações atualizadas em resposta à alteração dos registros correspondentes.
  4. Método caracterizado pelo fato de que compreende as etapas de:
    instalar uma aplicação de terceiros em um dispositivo de computação, a aplicação de terceiros fornecendo uma extensão auxiliar de pesquisa específico para a aplicação de terceiros para acessar registros em um armazenamento de dados da aplicação associada à aplicação de terceiros;
    verificar metadados da aplicação de terceiros para determinar a existência de metadados indicando que a aplicação de terceiros quer indexar registros no armazenamento de dados da aplicação associado com a aplicação de terceiros;
    registrar a aplicação de terceiros em resposta à determinação dos metadados indicando que a aplicação de terceiros quer indexar os registros no armazenamento de dados da aplicação associado com a aplicação de terceiros; e
    instanciar, por um daemon de pesquisa específico para a aplicação de terceiros e em execução no dispositivo de computação, uma instância da extensão auxiliar de pesquisa para executar em um processo separado que é executado com privilégios de leitura e gravação idênticos a privilégios de leitura e gravação da aplicação de terceiros, o daemon de pesquisa para solicitar um registro associado à aplicação de terceiros da instância da extensão auxiliar de pesquisa ao passar uma identificação para o registro para a instância da extensão auxiliar de pesquisa e para receber o registro identificado da instância da extensão auxiliar de pesquisa em resposta à instância da extensão auxiliar de pesquisa que recebe o identificador, em que a instância da extensão auxiliar de pesquisa recupera o registro identificado do armazenamento de dados da aplicação sem iniciar a aplicação de terceiros.
  5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que ainda compreende:
    iniciar a aplicação de terceiros em resposta a uma solicitação do usuário, em que a aplicação de terceiros altera um registro e envia uma identificação correspondente do registro alterado para um daemon de pesquisa executando no dispositivo de computação a ser armazenado em uma lista de atualização em resposta à alteração, a lista de atualização sendo utilizável pelo daemon de pesquisa para indexar o registro alterado.
  6. Método de acordo com a reivindicação 4, caracterizado pelo fato de que a extensão auxiliar de pesquisa é invocada após a aplicação de terceiros ter sido terminada.
  7. Método de acordo com a reivindicação 4, caracterizado pelo fato de que ainda compreende:
    fornecer, ao processo separado, privilégios idênticos aos privilégios intitulados pela aplicação de terceiros.
  8. Método caracterizado pelo fato de que compreende:
    uma aplicação de terceiros, executável em um dispositivo de processamento de dados, especificar um conjunto de atributos de um registro a ser apresentado quando o registro se torna parte de um resultado de pesquisa de uma pesquisa executada por um daemon de pesquisa em resposta a uma consulta de pesquisa do usuário; e
    a aplicação de terceiros fornecer um lote de pesquisa de aplicação específico para a aplicação de terceiros para acessar registros em um armazenamento de dados da aplicação associada à aplicação de terceiros, uma instância do pacote de pesquisa de aplicações instanciada pelo daemon de pesquisa para executar com privilégios de leitura e gravação idênticos a privilégios de leitura e gravação da aplicação de terceiros, em que um indexador de pesquisa, instanciado pelo daemon de pesquisa para indexar os registros, solicita os registros da instância do pacote de pesquisa de aplicações, passando identificadores dos registros para a instância do pacote de pesquisa da aplicação e recebe os registros da instância do pacote de pesquisa de aplicações, os registros passados pela instância do pacote de pesquisa de aplicações em resposta ao recebimento das identificações, e em que a instância do pacote de pesquisa de aplicações recupera os registros do armazenamento de dados da aplicação sem iniciar a aplicação de terceiros.
  9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que ainda compreende:
    a aplicação de terceiros alterando os registros do conteúdo associado com a aplicação de terceiros;
    armazenar os identificadores dos registros alterados em uma lista acessível pelo indexador de pesquisa.
  10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o indexador de pesquisa recupera os identificadores da lista após a aplicação de terceiros ter terminado e usa os identificadores para obter os registros alterados do lote de pesquisa de aplicação.
  11. Aparelho, caracterizado pelo fato de que compreende:
    um indexador de aplicação, executável em um dispositivo de processamento de dados, para operar em um processo tendo privilégios idênticos aos privilégios de uma aplicação de terceiros executável no dispositivo de processamento de dados, em que o processo é separado de outros processos que envolvem outras aplicações de terceiros executáveis no dispositivo de processamento de dados; e
    uma base de dados de pesquisa armazenada em um dispositivo de armazenamento de dados acoplado ao dispositivo de processamento de dados, em que o indexador de aplicação é operável para executar com privilégios de leitura e gravação idênticos aos privilégios de leitura e gravação da aplicação de terceiros, a aplicação de terceiros para fornecer o pacote de aplicações de pesquisa específico para a aplicação de terceiros para acessar os registros em um armazenamento de dados associado à aplicação de terceiros, e em que o indexador da aplicação é ainda operável para indexar registros no banco de dados de pesquisa recebido da instância do pacote de pesquisa de aplicações em resposta a uma solicitação recebida a partir da instância do pacote de pesquisa da aplicação no banco de dados de pesquisa recebido.
  12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que outro indexador de aplicação é executável no sistema de processamento de dados em outro processo tendo privilégios idênticos aos privilégios de outra aplicação de terceiros executável no sistema de processamento de dados.
  13. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o indexador de aplicação é operável para passar as identificações associadas com os registros em uma lista de atualização para o lote de pesquisa de aplicação para requerer os registros, em que as identificações foram adicionadas na lista de atualização quando a aplicação de terceiros fornece as identificações atualizadas em resposta à alteração dos registros correspondentes.
  14. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que ainda compreende:
    um dispositivo de exibição para exibir uma interface gráfica do usuário para receber uma consulta de pesquisa de um usuário; e
    um daemon de pesquisa, executável no dispositivo de processamento de dados, para pesquisar os registros indexados na base de dados de pesquisa para registros que emparelham com a consulta de pesquisa sem invocar a aplicação de terceiros.
  15. Aparelho, de acordo com a reivindicação 14, caracterizado pelo fato de que a interface gráfica do usuário apresenta os registros que emparelham com a consulta de pesquisa e permitem ao usuário selecionar um registro dos registros que emparelham com a consulta de pesquisa, e em resposta ao usuário selecionando o registro, o dispositivo de processamento de dados é operável para iniciar a aplicação de terceiros para apresentar o registro selecionado pelo usuário.
BR112012025578-9A 2010-04-07 2010-09-23 Método e aparelho para extensibilidade de pesquisa para aplicações de terceiros BR112012025578B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32176410P 2010-04-07 2010-04-07
US61/321,764 2010-04-07
US12/829,209 US9098363B2 (en) 2010-04-07 2010-07-01 Search extensibility to third party applications
US12/829,209 2010-07-01
PCT/US2010/050075 WO2011126510A1 (en) 2010-04-07 2010-09-23 Search extensibility to third party applications

Publications (2)

Publication Number Publication Date
BR112012025578A2 BR112012025578A2 (pt) 2017-11-28
BR112012025578B1 true BR112012025578B1 (pt) 2021-01-12

Family

ID=44761677

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012025578-9A BR112012025578B1 (pt) 2010-04-07 2010-09-23 Método e aparelho para extensibilidade de pesquisa para aplicações de terceiros

Country Status (12)

Country Link
US (1) US9098363B2 (pt)
EP (1) EP2556431B1 (pt)
JP (2) JP5730985B2 (pt)
KR (1) KR101517659B1 (pt)
AU (1) AU2010350748B2 (pt)
BR (1) BR112012025578B1 (pt)
CA (1) CA2794715C (pt)
DE (1) DE112010005475T5 (pt)
HK (1) HK1163286A1 (pt)
MX (1) MX2012011616A (pt)
TW (1) TW201140436A (pt)
WO (1) WO2011126510A1 (pt)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016861A1 (en) * 2010-07-16 2012-01-19 Research In Motion Limited Registration of applications and unified media search
US8751493B2 (en) * 2012-04-23 2014-06-10 Google Inc. Associating a file type with an application in a network storage service
US9262420B1 (en) 2012-04-23 2016-02-16 Google Inc. Third-party indexable text
US9195840B2 (en) * 2012-04-23 2015-11-24 Google Inc. Application-specific file type generation and use
US9148429B2 (en) 2012-04-23 2015-09-29 Google Inc. Controlling access by web applications to resources on servers
US9176720B1 (en) 2012-04-23 2015-11-03 Google Inc. Installation of third-party web applications into a container
US8990183B2 (en) 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US9317709B2 (en) 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
CN103546358B (zh) * 2012-07-09 2016-05-04 腾讯科技(深圳)有限公司 面向第三方应用的即时通讯方法及系统
DE102012019063A1 (de) * 2012-09-28 2014-04-03 Audi Ag Verfahren und System zum Bereitstellen von Daten in einem Kraftwagen
US9135049B2 (en) * 2012-10-16 2015-09-15 Red Hat Israel, Ltd. Performing thin-provisioning operations on virtual disk images using native features of the storage domain
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US9223870B2 (en) 2012-11-30 2015-12-29 Microsoft Technology Licensing, Llc Decoration of search results by third-party content providers
US9104787B2 (en) * 2012-12-14 2015-08-11 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
US9632764B2 (en) * 2012-12-31 2017-04-25 Oracle International Corporation Defining configurable characteristics of a product and associating configuration with enterprise resources
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
US9430578B2 (en) 2013-03-15 2016-08-30 Google Inc. System and method for anchoring third party metadata in a document
US9727577B2 (en) 2013-03-28 2017-08-08 Google Inc. System and method to store third-party metadata in a cloud storage system
US9461870B2 (en) 2013-05-14 2016-10-04 Google Inc. Systems and methods for providing third-party application specific storage in a cloud-based storage system
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9311407B2 (en) 2013-09-05 2016-04-12 Google Inc. Native application search results
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US9720672B2 (en) * 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
CN106687949B (zh) 2014-06-24 2020-11-17 谷歌有限责任公司 本地应用的搜索结果
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10210263B1 (en) 2014-06-24 2019-02-19 Google Llc Native application search results
RU2668726C2 (ru) 2014-06-25 2018-10-02 Гугл Инк. Глубинные ссылки для нативных приложений
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
US10049367B2 (en) * 2014-09-26 2018-08-14 General Electric Company Product compliance fulfillment portal system and method
US10769184B2 (en) 2015-06-05 2020-09-08 Apple Inc. Systems and methods for providing improved search functionality on a client device
US11423023B2 (en) 2015-06-05 2022-08-23 Apple Inc. Systems and methods for providing improved search functionality on a client device
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
CN107045510A (zh) * 2016-02-05 2017-08-15 优信拍(北京)信息科技有限公司 一种数据搜索方法及装置
US10862968B2 (en) 2016-04-01 2020-12-08 Intel IP Corporation Sensor data search platform
US10931679B2 (en) 2016-06-07 2021-02-23 Microsoft Technology Licensing, Llc Service actions for digital assistants
KR102490426B1 (ko) 2018-01-31 2023-01-19 삼성전자주식회사 추천 어플리케이션을 실행하기 위한 전자 장치 및 그의 동작 방법
US11822699B1 (en) * 2021-10-21 2023-11-21 Secure Computing, Llc Preventing surreptitious access to file data by malware

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279154B1 (en) 1998-10-13 2001-08-21 Hewlett-Packard Company Apparatus and method for an install system for third party applications
US6338056B1 (en) 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
JP2000322418A (ja) * 1999-05-07 2000-11-24 Fujitsu Ltd データベース装置
US7448042B1 (en) * 2003-05-06 2008-11-04 Apple Inc. Method and apparatus for providing inter-application accessibility
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
EP1574970A1 (en) * 2004-03-09 2005-09-14 Exalead Computer program for accessing information records of different applications
US20060085401A1 (en) 2004-10-20 2006-04-20 Microsoft Corporation Analyzing operational and other data from search system or the like
US8677274B2 (en) * 2004-11-10 2014-03-18 Apple Inc. Highlighting items for search results
US10769215B2 (en) * 2005-07-14 2020-09-08 Conversant Wireless Licensing S.A R.L. Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
CN101535952B (zh) * 2005-08-19 2014-06-04 谷歌公司 将来自插件模块的信息内容在用户界面中进行显示的软件架构
US7657585B2 (en) 2005-10-25 2010-02-02 Innternational Business Machines Corporation Automated process for identifying and delivering domain specific unstructured content for advanced business analysis
US8019632B2 (en) 2006-10-16 2011-09-13 Accenture Global Services Limited System and method of integrating enterprise applications
US7877368B2 (en) 2007-11-02 2011-01-25 Paglo Labs, Inc. Hosted searching of private local area network information with support for add-on applications
WO2009134430A1 (en) 2008-05-01 2009-11-05 Salesforce.Com, Inc. System, method and computer program product for generating a set of instructions to an on-demand database service

Also Published As

Publication number Publication date
AU2010350748B2 (en) 2014-03-20
US9098363B2 (en) 2015-08-04
AU2010350748A1 (en) 2012-11-01
DE112010005475T5 (de) 2013-01-31
EP2556431A1 (en) 2013-02-13
US20110252038A1 (en) 2011-10-13
KR20130008058A (ko) 2013-01-21
HK1163286A1 (zh) 2012-09-07
JP2013527521A (ja) 2013-06-27
KR101517659B1 (ko) 2015-05-04
JP2015015055A (ja) 2015-01-22
MX2012011616A (es) 2012-11-30
JP5730985B2 (ja) 2015-06-10
BR112012025578A2 (pt) 2017-11-28
TW201140436A (en) 2011-11-16
CA2794715A1 (en) 2011-10-13
CA2794715C (en) 2016-04-12
WO2011126510A1 (en) 2011-10-13
EP2556431B1 (en) 2024-01-24

Similar Documents

Publication Publication Date Title
BR112012025578B1 (pt) Método e aparelho para extensibilidade de pesquisa para aplicações de terceiros
US8694981B2 (en) Shared resource dependencies
ES2835738T3 (es) Búsqueda en múltiples fuentes de datos mediante el uso de un dispositivo informático móvil
US7979868B2 (en) Method and apparatus for intercommunications amongst device drivers
CN102214093B (zh) 向第三方应用的搜索扩展能力
US20190034209A1 (en) Building and using behavior-based applications
US8196153B1 (en) Method and apparatus for associating device drivers via a device tree
US20240103856A1 (en) Indexer operation and generation of index data
US8352468B2 (en) Top search hits based on learned user preferences
KR100733742B1 (ko) 휴대용 정보처리 단말기 및 상기 단말기의 통신 시스템
WO2022057788A1 (zh) 一种用于生成书籍的人物关系图的方法与设备
WO2015180272A1 (zh) 软件许可方法和系统
US11921709B2 (en) Uniform access to diverse structured information for client applications
WO2022052758A1 (zh) 配网方法及设备
McDowall PROGRAMMING PC CONNECTIVITY APPL FOR SYMBIAN OS
BR112016027820B1 (pt) Sistema de desenvolvimento e método implementado por computador para desenvolver elementos de aplicativo de um sistema de computador e controlar uma pesquisa dos elementos
Späth et al. Content Providers
KR20160061593A (ko) 모바일 디바이스 및 상기 단말기의 통신 시스템

Legal Events

Date Code Title Description
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]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 12/01/2021, OBSERVADAS AS CONDICOES LEGAIS.