BR112015017709B1 - Método para interfaces de programação de aplicação para curação de conteúdo - Google Patents

Método para interfaces de programação de aplicação para curação de conteúdo Download PDF

Info

Publication number
BR112015017709B1
BR112015017709B1 BR112015017709-3A BR112015017709A BR112015017709B1 BR 112015017709 B1 BR112015017709 B1 BR 112015017709B1 BR 112015017709 A BR112015017709 A BR 112015017709A BR 112015017709 B1 BR112015017709 B1 BR 112015017709B1
Authority
BR
Brazil
Prior art keywords
document
content
service
address
user
Prior art date
Application number
BR112015017709-3A
Other languages
English (en)
Other versions
BR112015017709A2 (pt
Inventor
Alexander V. Grigorovitch
Robert A. Little
Original Assignee
Microsoft Technology Licensing, Llc
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
Priority claimed from US13/753,527 external-priority patent/US9471556B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112015017709A2 publication Critical patent/BR112015017709A2/pt
Publication of BR112015017709B1 publication Critical patent/BR112015017709B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

INTERFACES DE PROGRAMAÇÃO DE APLICAÇÃO PARA CURAÇÃO DE CONTEÚDO. A presente invenção refere-se à curação de conteúdo que pode ser facilitada através de uma interface de programação de aplicação (API) para criar um endereço para um bloco de conteúdo em um documento identificado através de um identificador de localização bem como APIs para recuperar conteúdo a partir do endereço criado e enviar por push ou mesclar o conteúdo de volta ao endereço criado. Os serviços de acesso que incluem conversão e serviços de mesclagem podem ser usados para fornecer os blocos de conteúdo em um formato adequado para vários clientes. Uma visualização de documento é descrita na qual uma pluralidade de blocos de conteúdo é apresentada como um único documento embora os blocos de conteúdo possam ser recuperados com o uso de pelo menos dois localizadores de recurso uniforme (URLs).

Description

ANTECEDENTES
[001] Colaboração e compartilhamento de arquivo tem se tornado mais fácil conforme software de colaboração é aprimorado. Entretanto, nem todo dispositivo pode suportar coautoria e colaboração. Alguns dispositivos não são prontos para colaboração ou exigem que todos os sistemas que acessem e modifiquem o conteúdo digital estejam executando um mesmo programa. A capacidade de uma pessoa para acessar, compartilhar e realizar coautoria de conteúdo digital pode depender, em parte, de se a pessoa tem o programa de software apropriado que reconhece o formato do conteúdo digital e um dispositivo que pode executar o programa de modo que o conteúdo digital possa ser visto, modificado e ter aquelas modificações propagadas e refletidas como por ser parte do conteúdo digital quando acessado por outra pessoa (ou a mesma pessoa em outra plataforma).
[002] Com a proliferação de dispositivos que usam plataformas diferentes, pode ser um desafio compartilhar, acessar e editar conteúdo de um formato com um dispositivo que executa um programa que tem capacidade somente de acessar e exibir um formato diferente ou tem capacidade somente de editar o conteúdo com uma versão anterior de um recurso. Além disso, conforme novos recursos são adicionados para novas versões de certas aplicações, as novas versões devem suportar compatibilidade com versões anteriores e/ou ter extensibilidade construída para suportar versões futuras. Adicionalmente, pode-se desejar combinar conteúdo a partir de múltiplos arquivos, alguns dos quais podem ser de formatos ou versões de arquivo diferentes.
SUMÁRIO
[003] Interfaces de programação de aplicação e serviços de acesso são fornecidos em que conteúdo a partir de uma ou mais fontes pode ser apresentado para um usuário como um único documento. Esse documento, ou vista, pode incluir blocos definidos por aplicação (por exemplo, visualizador, editor) de conteúdo ou blocos definidos por usuário de conteúdo que podem ser separadamente endereçáveis e acessados através do serviço de acesso. A curação de conteúdo pode ser facilitada através de interfaces de programação de aplicação (APIs) que permitem a criação de um bloco endereçável de conteúdo a partir de dentro de um enquadramento de documento maior e recuperação de conteúdo do bloco endereçável de conteúdo.
[004] De acordo com uma modalidade, um documento servido a um cliente por um sistema que realiza conversão e mescla serviços é um conjunto de experiências e o conteúdo dentro do mesmo. O documento ou um bloco de conteúdo selecionado do documento pode ser armazenado como um documento mestre em um primeiro formato de arquivo em um local recuperável pelo sistema e, quando solicitado pelo cliente, o documento pode ser convertido para um formato de arquivo apropriado e servido para o cliente. O documento servido também pode levar em consideração a versão de recursos suportados no cliente.
[005] O documento servido pode ser exibido em um dispositivo de cliente. Os serviços estendem o alcance de um documento (para dispositivos através de plataformas variadas) e criam uma experiência para aquele documento que é adequada para o dispositivo de cliente. O documento não precisa parecer exatamente o mesmo em cada cliente. Ao invés, o documento pode ser customizado para a experiência do usuário e para se adequar ao dispositivo. Uma vez que exibido no dispositivo de cliente, um usuário pode modificar o documento localmente. As modificações podem incluir modificações para o conteúdo assim como para dados associados com o documento. Por exemplo, anotações, comentários, edição de texto, edição de imagem e outras modificações podem ser feitas. O usuário pode então salvar as modificações de volta no servidor. O servidor pode mesclar as modificações mesmo onde o documento que o usuário modificou é de um formato de arquivo diferente ou contém versões diferentes de um recurso.
[006] Em adição a mesclar modificações de volta para um documento mestre, todo ou uma parte identificada do documento exibido no dispositivo de cliente pode ser salvo como outro documento mestre e atribuído um endereço por um serviço de endereço.
[007] De acordo com uma implantação, uma primeira vista de um primeiro documento pode ser exibida. O primeiro documento pode ser servido para um cliente por ser recuperado a partir de um primeiro endereço e convertido, caso necessário, para uma versão de recurso ou formato apropriado. Um usuário que trabalha na visualização de documento exibida no cliente pode selecionar um subconjunto do conteúdo para edição ou outra ação adicional. A porção selecionada pode ser um conteúdo identificado. O conteúdo identificado pode ser identificado através do uso de um identificador de local tal como um identificador de parágrafo, um identificador de linha, um identificador de caractere, uma faixa, um identificador de parte ou uma combinação desses identificadores. Um serviço de endereço pode ser invocado para obter um segundo endereço para o conteúdo identificado. Esse subconjunto de conteúdo pode então ser acessível e modificável separadamente através do segundo endereço.
[008] De acordo com outra implantação, uma visualização de documento pode ser fornecida para o cliente que inclui conteúdo a partir de pelo menos duas fontes. Por exemplo, um serviço de acesso pode ser invocado com uma solicitação para pelo menos um primeiro bloco de conteúdo a partir de um primeiro endereço e um segundo bloco de conteúdo a partir de um segundo endereço. O primeiro bloco de conteúdo e o segundo bloco de conteúdo podem ser combinados. Os blocos de conteúdo combinados incluem identificadores de local, que podem ser usados para criar novos endereços.
[009] Uma visualização de documento pode ser fornecida (ou servida) de modo que inclua uma pluralidade de blocos de conteúdo com identificadores de local e conteúdo recuperado através do uso de pelo menos dois localizadores de fonte uniforme (URLs). Um ou mais blocos de conteúdo (e mesmo subconjuntos de um bloco de conteúdo) podem ser selecionáveis para atribuir um novo URL e separadamente acessível através desse novo URL.
[0010] Este Sumário é fornecido para introduzir uma seleção de conceitos em uma forma simplificada que são descritos adicionalmente abaixo na Descrição Detalhada. Este Sumário não se destina a identificar recursos chave ou recursos essenciais do assunto reivindicado, nem se destina a ser usada para limitar o escopo do assunto reivindicado.
BREVE DESCRIÇÃO DOS DESENHOS
[0011] A Figura 1 mostra um diagrama de um ambiente operacional em que certas modalidades podem ser executadas.
[0012] A Figura 2 mostra um ambiente operacional para um ponto de extremidade de acordo com uma modalidade da invenção.
[0013] A Figura 3 mostra um ambiente de computação de acordo com uma modalidade da invenção.
[0014] A Figura 4 mostra um exemplo de fluxo de processo para um serviço de conversão e mesclagem de acordo com uma modalidade da invenção.
[0015] As Figuras 5A a 5D ilustram exemplo de cenários de um serviço de conversão e mesclagem.
[0016] A Figura 6 mostra um diagrama de um processo executado por um editor de acordo com uma modalidade da invenção.
[0017] A Figura 7 mostra um diagrama de fluxo de processos de um método para colaborar em documentos através do uso de múltiplos editores de acordo com uma modalidade da invenção.
[0018] A Figura 8 mostra um diagrama em bloco que ilustra componentes de um dispositivo de computação usado em algumas modalidades.
[0019] A Figura 9 mostra um diagrama de uma visualização de documento que tem blocos de conteúdo endereçáveis de acordo com uma modalidade da invenção.
[0020] A Figura 10 mostra um diagrama de um sistema para curação de conteúdo de acordo com uma modalidade da invenção.
[0021] A Figura 11 ilustra um exemplo de cenário de criação de novos endereços para subconjuntos de conteúdo de um documento.
[0022] A Figura 12 mostra um diagrama de fluxo de processos de um método para colaborar através do uso de subconjuntos de conteúdo criados a partir de um documento.
[0023] A Figura 13 mostra um diagrama de um ambiente operacional que ilustra um exemplo de modalidade.
[0024] A Figura 14 mostra um diagrama de fluxo de processos de um método para acessar conteúdo curado.
DESCRIÇÃO DETALHADA
[0025] Interfaces de programação de aplicação e serviços de acesso são fornecidos em que conteúdo a partir de uma ou mais fontes pode ser apresentado para um usuário como um único documento. Esse documento, ou vista, pode incluir blocos definidos por aplicação (por exemplo, visualizador, editor) de conteúdo ou blocos definidos por usuário de conteúdo que podem ser separadamente endereçáveis e acessados através do serviço de acesso. Curação de conteúdo (e disseminação) pode ser facilitada por interfaces de programação de aplicação (APIs) para criar um endereço para uma região identificável de um documento e recuperar conteúdo a partir do endereço criado.
[0026] Curação de conteúdo é a organização e apresentação (ou compartilhamento) de conteúdo a partir de várias fontes.
[0027] Mesmo embora certas peças de conteúdo possam ser localizadas separadas entre si e mesmo armazenadas em diferentes formatos entre si, essas peças de conteúdo podem ser combinadas como um único documento que pode ser visto como uma peça coesa por um leitor, editor ou outro cliente.
[0028] Isso pode ser alcançado por ter um endereço para cada bloco de conteúdo definido. Um serviço de acesso pode receber uma solicitação que inclui um ou mais endereços de bloco de conteúdo, recuperar os vários blocos de conteúdo a partir dos um ou mais endereços de bloco de conteúdo, e fornecer o conteúdo combinado para o cliente. Dentro da visualização de documento, o limite de um bloco pode ser dinâmico para a extensão de que um cliente pode combinar ou desfazer blocos. Por exemplo, um cliente pode apresentar uma vista de um documento que originalmente é formado de um bloco (que tem um único endereço através do qual os elementos que formam o documento podem ser acessados).
[0029] Durante a visualização do documento, um usuário pode querer capturar pelo menos um aspecto do conteúdo para usar em outro documento ou aplicação. Nesse cenário, o usuário pode solicitar um endereço para uma porção do documento identificada. A porção pode ser identificada como um bloco de conteúdo através do uso de identificadores de local. Quando o novo endereço é criado, outro cliente (ou servidor) pode acessar o bloco que tem um endereço criado através do uso da porção identificada através da obtenção do conteúdo a partir de tal endereço local. Em alguns casos um documento pode ser criado a partir de uma pluralidade desses blocos diferentes. Em alguns casos, quando um bloco é atualizado, o documento é atualizado. Deve-se compreender que um único endereço pode referir-se a uma fonte que envolve múltiplos dispositivos de armazenamento e um ambiente de computação distribuído.
[0030] Documentos eletrônicos são geralmente compreendidos por serem um equivalente digital para um documento de papel, onde editores de documento facilitam a criação, anotação, modificação e, recentemente, compartilhamento e colaboração de conteúdo.
[0031] As modificações podem incluir modificações para o conteúdo assim como para dados associados com o documento. Por exemplo, comentários, edição de texto, edição de imagem e outras modificações podem ser feitas. Modificações para arquivos podem incluir ações que são aditivas, subtrativas, ações que fornecem conteúdo adicional, conteúdo rico, comentários que adicionam ações e ações que modificam uma imagem dentro de um editor de imagem.
[0032] Certas modalidades da invenção adicionam um novo recurso para documentos - o documento como um serviço, onde um documento fornece um conjunto de experiências e o conteúdo dentro do mesmo. O conjunto de experiências corresponde a um conjunto de serviços que inclui serviços de acesso de conteúdo de serviços de conversão e mesclagem. Os serviços de conversão possibilitam que o conteúdo do documento seja customizado para cada cliente em que o documento é visualizado e os serviços de mesclagem possibilitam modificações para o documento a ser reintegrado com um documento mestre. O documento mestre pode ser uma agregação de conteúdo, metadados e modificações feitas para o documento (que inclui modificações para conteúdo e modificações para metadados). Em alguns casos, o documento mestre pode parecer ser um documento de fidelidade mais alta.
[0033] Desse modo, quando modificações feitas a partir de dentro de um editor de baixa fidelidade ou modificações através do uso de uma versão anterior de um recurso são reintegradas no documento mestre, o serviço pode realizar reidratação de fidelidade.
[0034] Reidratação de fidelidade refere-se à obtenção de conteúdo modificado por uma versão anterior de um recurso - ou um formato de arquivo que tem editores com menos funcionalidades - e retorno do conteúdo para uma funcionalidade plena, versão de recurso mais recente. Como um exemplo, dadas duas versões de um recurso gráfico - uma primeira versão que tem gráficos ricos (tal como gráficos em 3D) e uma segunda versão que só tem a capacidade de interpretar os gráficos como imagens estáticas - após conteúdo ser editado em um editor que suporta a segunda versão, as imagens estáticas podem ser reidratadas de volta para serem gráficos em 3D para visualizar/editar em um editor que suporta a primeira versão. A primeira versão pode ser uma versão futura ou recente do recurso e a segunda versão pode ser uma versão antiga ou anterior de tal recurso. Em outros casos, ambas as versões podem ser lançadas em um mesmo momento, porém com diferenças intencionais em funcionalidade disponível.
[0035] Embora o documento mestre seja chamado de um documento, o documento mestre pode ser armazenado em qualquer formato adequado para rastrear conteúdo e recursos de edição mais novos.
[0036] Através desses serviços, dispositivos de consumidor podem acessar e modificar conteúdo através de várias plataformas sem adicionar complexidade para um dispositivo de consumo ou software de lado de cliente.
[0037] Para ampliar a flexibilidade de visualização de um documento, blocos (porções definidas de usuário ou aplicação) de um documento podem ser separadamente acessados, visualizados e modificados para uso independente ou mesclados de volta para um documento mestre.
[0038] Um formato de arquivo (para um documento ou outro conteúdo e informações relacionadas) refere-se à forma em que informações relacionadas ao conteúdo de um arquivo (e, em alguns casos, informações associadas) são codificadas e armazenadas em um meio legível por computador. Um tipo de arquivo pode ser usado de forma intercambiável com formato de arquivo, porém geralmente refere- se à taxonomia de formatos de arquivo. Por exemplo, um tipo de arquivo pode ser um tipo de arquivo de documento, que inclui formatos de arquivo de linguagem de marcação de hipertexto (HTML), formato de documento ADOBE portátil (PDF), documento MICROSOFT WORD (DOC), formato (DOCX) de Linguagem de Marcação Extensível Aberta Office (OOXML) e similares. MICROSOFT WORD é uma marca registrada da Microsoft Corp.; ADOBE PDF é uma marca registrada da Adobe Systems, Inc.
[0039] Conforme usado no presente documento "formato de consumo" refere-se a um formato de arquivo suportado por um dispositivo ou programa de software em particular (por exemplo, um "formato de arquivo suportado"). Em adição a ser um formato de arquivo suportado, o formato de consumo pode incluir recursos relacionados a tamanho de arquivo, funcionalidade e similares que se referem a como um dispositivo (ou programa) pode ter a capacidade de suportar experiências de usuário variadas.
[0040] De volta ao paradigma de "documento como um serviço", os serviços de acesso de conteúdo que incluem serviços de conversão e mesclagem podem ser fornecidos como parte de uma experiência de serviço de nuvem. Dessa forma, conteúdo pode ser criado em um formato e então ser acessível e editável através de qualquer plataforma em uma forma que pode fornecer uma experiência inconsútil para um consumidor do conteúdo.
[0041] A Figura 1 mostra um diagrama de um ambiente operacional em que certas modalidades podem ser executadas.
[0042] Em referência à Figura 1, o ambiente operacional pode incluir um ou mais serviços da nuvem ou Web. Os serviços de acesso de conteúdo 100 descritos no presente documento podem ser serviços de nuvem ou serviços da Web.
[0043] Um serviço de nuvem geralmente refere-se a serviços hospedados que fornecem processamento escalonável e capacidades de armazenamento. Computação em nuvem pode frequentemente incluir fontes virtualizadas. As fontes apresentadas por computação em nuvem são, nas mesmas, fornecidas como um serviço, onde utilização de aluguel em computação de consumidores de nuvem de fontes a partir de um provedor terciário que possui a infraestrutura física.
[0044] Serviços da Web podem ser fornecidos e/ou hospedados por um serviço de nuvem (por exemplo, como parte de um ambiente de computação distribuído em grande escala). Um serviço da Web é um sistema de software que suporta interação entre máquinas interoperável sobre uma rede e possibilita que um software se conecte a outras aplicações de software.
[0045] Um serviço da Web fornece uma coleção de padrões tecnológicos e protocolos. Por exemplo, um serviço da Web fornece funções que podem ser implantadas por um agente de software ou hardware que envia e recebe mensagens (por exemplo, as plataformas de computação que solicitam e fornecem um serviço em particular). Aplicações podem acessar serviços da Web através de protocolos da Web ubíquos e formatos de dados tal como Protocolo de Transferência de Hipertexto (HTTP), Linguagem de Marcação Extensível (XML), Linguagem de Descrição de Serviços da Web (WSDL), Notação de Objeto em JavaScript (JSON), e SOAP (originalmente um acrônimo para protocolo de acesso a objeto simples).
[0046] Protocolos de Transferência de Estado Representativo (REST) são úteis durante o acesso a fontes nomeadas e podem ser usados em certas modalidades da invenção. Em outras modalidades da invenção SOAP pode ser utilizado. Em alguns casos, um Serviço de Sincronização de Arquivo através de SOAP sobre HTTP (FSSHTTP) junto à Microsoft Corp. pode ser usado.
[0047] Serviços de acesso de conteúdo 100 podem ser implantados através do uso de um ou mais servidores físicos e/ou virtuais que se comunicam sobre uma rede. A rede pode incluir, porém não se limita a, uma rede de celular (por exemplo, telefone sem fio), uma conexão discada ponto a ponto, uma rede de satélite, a Internet, uma rede de área local (LAN), uma rede de área abrangente (WAN), uma rede do tipo WiFi, uma rede ad hoc ou uma combinação dos mesmos. Tais redes são amplamente usadas para conectar vários tipos de elementos de rede, tal como hubs, pontes, roteadores, comutadores, servidores e gateways. A rede pode incluir uma ou mais redes conectadas (por exemplo, um ambiente de múltiplas redes) que inclui redes públicas, tal como a Internet, e/ou redes privadas tal como uma rede privada de empresa segura. Acesso à rede pode ser fornecido através de uma ou mais redes de acesso com fio ou sem fio conforme será compreendido por aqueles versados na técnica.
[0048] Os serviços de acesso de conteúdo 100 podem incluir uma porção de importação/conversão 102 e uma porção de renderização/conversão 104. Documentos a partir de várias fontes 106 podem ser importados para os serviços de acesso de conteúdo 100. A porção de importação/conversão 102 pode facilitar autopublicação através da redução ou remoção de restrições para obter conteúdo para os formatos em particular exigidos por leitores. Por exemplo, autopublicação para uma livraria ou outro depósito ou loja pode ser alcançada sem exigir que o criador trabalhe dentro de um formato de arquivo específico. Ao tornar mais fácil para que criadores publiquem seus trabalhos, usuários leitores podem ter acesso a mais conteúdo.
[0049] Um "leitor" refere-se a uma aplicação de software e/ou dispositivo eletrônico modelado primariamente para o propósito de ler livros eletrônicos (e-books) e/ou outro conteúdo eletrônico. Leitores frequentemente incluem pelo menos algumas capacidades de edição básicas, tal como anotar, realçar texto, marcar página e riscar.
[0050] Exemplos de software de leitores de livro eletrônico (ou e readers) incluem aplicação GOOGLE READER junto a Google Inc., aplicação APPLE IBOOKS junto a Apple Inc., aplicação ADOBE ACROBAT EBOOK READER junto a Adobe Systems Inc. e aplicação MICROSOFT READER junto a Microsoft Corp. Exemplos de hardware de leitores de livro eletrônico (ou e-readers) incluem o leitor de livro eletrônico da marca AMAZON KINDLE junto a Amazon.com Inc. e computador do tipo tablet leitor de livro eletrônico da marca BARNES AND NOBLE NOOK disponível junto a Barnes & Noble Inc. Um livro eletrônico é um texto e/ou imagem publicado com base em formato digital que pode ser lido em um leitor de livro eletrônico. Existe uma variedade de livros eletrônicos e outros formatos de conteúdo digital usados para criar e publicar conteúdo, tal como publicação eletrônica (ePub), HTML, PDF, linguagem de comando de impressora (PCL) e linguagem de marcação extensível (XML).
[0051] Em alguns casos, documentos importados (por exemplo, através de porção de importação/conversão 102) podem ser armazenados ou parecerem estar armazenados (por ter um endereço ou identificador de fonte uniforme armazenado) como parte da nuvem (108). Os serviços de acesso de conteúdo 100 podem resolver para operações em armazenamento 108 ou delegar certas operações para outro serviço (que pode acessar diretamente ou indiretamente o armazenamento 108).
[0052] Arquivos de documento podem ser exportados a partir dos serviços de acesso de conteúdo 100. Antes de ser exportado, um arquivo de documento, tal como um dos documentos importados, pode ser convertido para vários formatos para consumo (por exemplo, renderização para exibição, interação, modificação ou ações adicionai s que incluem impressão e conversões adicionais) por pontos de extremidade tal como leitor 110, impressora 112, sites de terceiros 114 e serviços de conversão secundários 116.
[0053] Um ponto de extremidade refere-se aos meios pelos quais um consumidor acessa um serviço - o ponto de entrada para a interação. De acordo com várias modalidades, customização de ponto de extremidade é previsto que estende o alcance e modifica o modo em que o conteúdo é consumido com base em dispositivo.
[0054] Os pontos de extremidade podem ser um ou mais dispositivos de consumidor.
[0055] Um dispositivo de consumidor refere-se a um dispositivo de computação que é usado para consumir (isto é, usado para visualizar/ler, editar ou anotar) dados ou documentos recuperados ou comprados a partir de um serviço ou fonte. O dispositivo de consumidor pode ser um dispositivo de computação de propósito primariamente único usado para ler livros eletrônicos (frequentemente chamado de um leitor) ou um dispositivo de computação de propósitos múltiplos em que software leitor ou visualizador para ler livros eletrônicos ou outro conteúdo eletrônico/digital pode ser fornecido.
[0056] Um "visualizador" refere-se a uma aplicação de software ou hardware que pode exibir ou parecer exibir um documento ou dados em um formato ou tipo de arquivo associado a um programa em particular. Um visualizador para um formato de arquivo em particular pode compreender o formato de arquivo em particular e apresentar uma visualização do arquivo. Tipicamente, supõe-se que um "visualizador " de um formato de arquivo tenha a capacidade de apresentar visualmente o formato de arquivo com alta fidelidade, mantendo a intenção original do autor. Um "leitor" é um tipo de visualizador que inclui funcionalidade primariamente associada a uma experiência de "leitura", tal como fornecer passagens de páginas animadas, remeter a uma última posição de leitura, fornecer um dicionário para buscar palavras e similares.
[0057] Os serviços estendem o alcance de um documento (para dispositivos através de plataformas variadas) e criam uma experiência para aquele documento que é adaptado para o dispositivo de cliente. O documento não precisa parecer exatamente o mesmo em cada cliente. Ao invés, o documento pode ser customizado para a experiência do usuário e para se adequar ao dispositivo.
[0058] Terceiros podem usar o documento para criar experiências de usuário adicionais.
[0059] Ao conhecer o dispositivo, o sistema (por exemplo, através dos serviços 100) pode fornecer uma formatação de arquivo customizada. Como um exemplo de cenário, um usuário de leitor NOOK ou leitor KINDLE pode usar tal dispositivo para procurar por conteúdo disponível para ler. O serviço 100 pode determinar que dispositivo é usado e, de forma apropriada, personalizar a apresentação de conteúdo. Por exemplo, formato ePub2 ou ePub3 pode ser enviado para um leitor NOOK e formato AZW pode ser enviado para um leitor KINDLE.
[0060] Uma vez que o arquivo customizado é enviado para o dispositivo, o arquivo pode ser salvo de volta para o servidor (através dos serviços 100). Por exemplo, ações específicas (modificações tal como anotação ou edição dentro do leitor NOOK, leitor KINDLE ou um computador do tipo tablet que executa uma aplicação de editor) podem ser levado(s) em consideração para o arquivo servido para o cliente, e, essas modificações, mescladas para um documento mestre para o arquivo.
[0061] Certas modalidades da invenção possibilitam que o(s) bloco(s) modificado(s) seja(m) atribuído(s) a um endereço separado para acesso independente sem mesclagem com o documento mestre.
[0062] Em modalidades adicionais, por também conhecer o usuário (por exemplo, através da recepção de um identificador a partir do usuário, tal como quando o usuário faz log in na conta do mesmo a partir de um dispositivo), o sistema (por exemplo, através dos serviços 100) pode possibilitar adicionalmente que um usuário acesse os próprios arquivos sobre uma rede em muitos dispositivos sem que o usuário tenha que se preocupar com a versão ou formato de arquivo que o dispositivo dos mesmos pode aguentar. Em adição a possibilitar que um usuário acesse os próprios arquivos, ao conhecer o usuário, o sistema pode customizar um arquivo para apresentar conteúdo específico em um documento relacionado a uma tarefa associada ao usuário. Por exemplo, onde um usuário é atarefado com a revisão de um parágrafo, o parágrafo pode ser fornecido para o usuário identificado ao invés de todos os usuários que podem ter acesso ao documento. Em uma modalidade, isso pode ser alcançado através do fornecimento para tal usuário em particular um link ou endereço para o bloco de parágrafo.
[0063] Pontos de extremidade podem ter duas categorias gerais de comunicação com o serviço 100. Uma é uma experiência rica de dois modos e a outra é uma experiência mais limitada. Em ambos os casos, através do uso de modalidades da invenção, não se exige que pontos de extremidade aguentem conversão de formato de arquivo, tenham capacidade de renderizar todos os formatos ou incluam uma camada para realizar coautoria de conteúdo.
[0064] Pontos de extremidade de riquezas variadas podem ser suportados por várias modalidades da invenção. Conforme usado no presente documento, "riqueza" refere-se ao espectro de experiências disponíveis com uma aplicação e a capacidade da mesma para apresentar um usuário com conteúdo e funcionalidade em particular. Por exemplo, uma experiência de consumo mais rica pode ser disponível através de dispositivos que suportam aplicações com recursos completos em que edição e manipulação de conteúdo estão disponíveis (por exemplo, editores de ponto de extremidade 118). Uma experiência mais limitada inclui pequenas ferramentas de criação (por exemplo, editores de ponto de extremidade limitado 120) em que alguma funcionalidade para edição e manipulação de conteúdo é mantida. Uma diferença entre a experiência mais limitada (ou "edição leve") e um editor com recursos completos (ou "edição pesada") é que a edição leve somente pode suportar anotações e comentários.
[0065] Leitores (por exemplo, dispositivos de consumidor 122) em que o conteúdo pode ser visto podem ter uma faixa de riqueza suportada. Todos os tipos de editor, assim como versões de um recurso, podem ser suportados.
[0066] Os serviços de conversão e mesclagem fornecidos pelos serviços de acesso 100 podem ser solicitados diretamente por um dispositivo de cliente ou outro servidor (por exemplo, leitor 110 ou dispositivo de consumo 122, editor de ponto de extremidade 118 ou editores de ponto de consumo e extremidade limitado 120). Em algumas modalidades, um servidor (tal como descrito em relação à Figura 2) ou site de terceiros (por exemplo, 114) ou serviço de conversão secundário (por exemplo, 116) pode acessar os serviços 100 em nome de um dispositivo de cliente. Uma impressora 112 também pode receber conteúdo a partir dos serviços de conversão e mesclagem 100 tanto diretamente como através de outro dispositivo de cliente.
[0067] Um enquadramento pelo qual os editores de ponto de extremidade 118 podem se comunicar com o serviço da Web (por exemplo, serviço 100) é através de um enquadramento que permite que aplicações de cliente sincronizem de forma eficiente modificações para uma administração de documento e arquivo e programa de colaboração que é executado em um servidor, tal como a plataforma de aplicação MICROSOFT SHAREPOINT Web, através do uso de uma interface de programação de aplicação (API) em FSSHTTP. O lado de cliente do protocolo de FSSHTTP é um lado de passagem. Por exemplo, ligações feitas por um protocolo de camada mais alta, tal como a camada de aplicação, são passadas diretamente para a camada de transporte e os resultados retornados pela camada de transporte são passados diretamente de volta para o protocolo ou aplicação de camada mais alta.
[0068] Uma API é geralmente um conjunto de instruções e padrões de programação para possibilitar que duas ou mais aplicações se comuniquem entre si e é comumente implantada como um conjunto de mensagens de solicitação em HTTP e um formato ou estrutura específica para mensagens de resposta. As mensagens podem conter uma fonte de informações. Uma fonte consiste em informações que podem ser identificadas por um identificador de fonte uniforme (URI) e pode ser um arquivo, um resultado de consulta gerado dinamicamente, a emissão de um script de interface de gateway comum (CGI), um documento que está disponível em várias linguagens e similares.
[0069] De acordo com algumas modalidades, uma API é fornecida para criar um endereço para acessar uma fonte. Uma API pode ser adicionalmente fornecida para solicitar o conteúdo no endereço criado de modo a acessar a fonte. A solicitação para conteúdo pode incluir uma solicitação para um formato em particular para o conteúdo. Uma API pode ser adicionalmente fornecida para possibilitar que conteúdo seja posto de volta em (ou "enviado por push" para) o endereço. O envio por push pode incluir uma mesclagem ou uma substituição.
[0070] O serviço de conversão e mesclagem 100 pode ser associado a serviços de nuvem mais amplos 130 assim como um componente de aplicação da Web (WAC) 132. WACs são componentes que possibilitam que um usuário visualize e edite documentos no navegador. WACs podem funcionar ambos como um ponto de extremidade através do consumo e edição de conteúdo e como um serviço através do fornecimento de alguma funcionalidade de serviço de mesclagem e conversão. Em tais modalidades, usuários têm acesso a software e bancos de dados de aplicação na nuvem, que administra infraestruturas e plataformas. Aplicações de software de acesso para usuários finais hospedadas na nuvem através de um navegador ou aplicativo (uma aplicação modelada para dispositivos móveis tal como telefones inteligentes e computadores do tipo tablet). Um exemplo é descrito em relação à Figura 2.
[0071] A Figura 2 mostra um ambiente operacional para um ponto de extremidade de acordo com uma modalidade da invenção. Em referência à Figura 2, um cliente 210 e um servidor 220 se comunicam através de uma rede 230.
[0072] A rede 230 pode ser uma internet, uma intranet ou uma extranet, e pode ser qualquer rede de comunicações adequada que inclui, porém não se limita a, uma rede de celular (por exemplo, telefone sem fio), a Internet, uma rede de área local (LAN), uma rede de área abrangente (WAN), uma rede do tipo WiFi, uma rede ad-hoc ou uma combinação das mesmas.
[0073] Conforme previamente descrito, tais redes podem envolver conexões de elementos de rede, tal como hubs, pontes, roteadores, comutadores, servidores e gateways. A rede 230 pode incluir uma ou mais redes conectadas (por exemplo, um ambiente de múltiplas redes) que inclui redes públicas, tal como a Internet, e/ou redes privadas tal como uma rede privada de empresa segura. O acesso à rede 230 pode ser fornecido através de uma ou mais redes de acesso com fio ou sem fio (não mostrado), conforme será compreendido por aqueles versados na técnica.
[0074] O cliente 210 e o servidor 220 podem envolver sistemas de computação configurados com uma ou mais unidades de processamento centrais (CPUs), memória, armazenamento em massa e dispositivos de I/O (por exemplo, interface de rede, dispositivo de inserção de usuário). Elementos do sistema de computação podem comunicar entre si através de um barramento. A plataforma de hardware de sistemas de computação pode ser incorporada em muitas formas que incluem, porém não se limitam a, um computador pessoal, um computador de servidor, um dispositivo do tipo laptop ou de mão, um sistema multiprocessador, um sistema com base em microprocessador, dispositivos eletrônicos para consumidor programáveis e um ambiente de computação distribuído (por exemplo, sistemas de computação com base em nuvem) que inclui qualquer dos sistemas ou dispositivos acima (e onde funcionalidade de aplicação, memória, armazenamento e recuperação de dados e várias funções de processamento podem ser operadas remotamente entre si sobre uma rede de computação distribuída, tal como a Internet ou uma intranet).
[0075] Em certas modalidades, o cliente 210 pode ser incorporado como um dispositivo de computação que inclui, porém não se limita a, um computador pessoal, um computador do tipo tablet, um leitor, um dispositivo móvel, um assistente digital pessoal (PDA), um telefone inteligente, um computador do tipo laptop (ou notebook ou netbook), um dispositivo ou console para jogos, um computador do tipo desktop ou uma televisão inteligente.
[0076] Em certas modalidades, o servidor 220 pode ser incorporado como um dispositivo de computação que inclui, porém não se limita a, um computador de servidor, um computador de empresa, um computador pessoal, um sistema multiprocessador, um sistema com base em microprocessador e uma combinação dos mesmos. Deve-se compreender que a listagem de dispositivos de computação de cliente e os dispositivos de computação de servidor não têm a intenção de serem limitativos e que o cliente e o servidor podem ser incorporados da mesma forma ou de forma diferente.
[0077] O dispositivo de computação de cliente 210 é configurado para executar um sistema operacional 211 e um ou mais programas de aplicação tal como, na modalidade ilustrada, uma aplicação de edição ou processamento de palavra 212, uma aplicação de navegador da Web 213 e/ou uma ou mais outras aplicações.
[0078] O sistema operacional 211 é um programa de computador para controlar a operação do dispositivo de computação de cliente 210. Os programas de aplicação são programas executáveis configurados para executar no topo do sistema operacional 211 para fornecerem várias funcionalidades tal como descrito no presente documento. Uma aplicação de processamento de palavra é um programa de aplicação geralmente configurado para facilitar a teclar, editar, formatar, salvar, imprimir e comentar. Uma aplicação de editor pode ser qualquer aplicação que forneça ferramentas de edição ou anotação e pode ser uma aplicação de processamento de palavra ou outras aplicações de produtividade tal como MICROSOFT OFFICE disponível junto a Microsoft Corp., GOOGLE DOCS disponível junto a Google Inc., APACHE OPENOFFICE disponível junto à Apache Software Foundation, ou ZOHO OFFICE disponível junto a Zoho Corporation.
[0079] Aplicações de produtividade incluem, porém não se limitam a, programas de processamento de palavra, programas de colaboração, programas de apresentação, programas de planilha eletrônica e programas para contar histórias/tomar notas.
[0080] A aplicação de navegador da Web 213 é um programa de aplicação para recuperar e percorrer fontes de informações na World Wide Web ("a Web"), assim como fontes fornecidas por servidores da Web em redes privadas através da rede 230, e apresentar as fontes de informações para um usuário (por exemplo, renderizar para exibição). Além disso, a aplicação de navegador da Web 213 permite que um usuário acesse informações e várias funções fornecidas por um servidor.
[0081] O computador de servidor 220 ilustrado é configurado para executar um sistema operacional de servidor 221, um ou mais programas de aplicação tal como uma aplicação de edição ou processamento de palavra de servidor 222, e/ou uma ou mais outras aplicações. O servidor 220 também pode estar a hospedar um serviço (e incorporar WACs 132 tal como descrito na Figura 1).
[0082] O sistema operacional de servidor 221 é um programa de computador para controlar a operação do computador de servidor 220, e os programas de aplicação são programas executáveis configurados para executar no topo do sistema operacional de servidor 221 para fornecer várias funcionalidades descritas no presente documento. A aplicação de edição ou processamento de palavra de servidor 222, em algumas modalidades, é um programa de aplicação com base na Web configurado de modo similar à aplicação de edição ou processamento de palavra 212 descrita acima. A aplicação de edição ou processamento de palavra de servidor 222 pode fornecer funcionalidade que é idêntica à aplicação de edição ou processamento de palavra 212.
[0083] Em algumas modalidades, o computador de servidor 220 é configurado para executar a aplicação de edição ou processamento de palavra de servidor 222 e o dispositivo de computação de cliente 210 é configurado para acessar o computador de servidor 220 para interagir com a aplicação de edição ou processamento de palavra de servidor 222 em uma configuração de cliente/servidor.
[0084] Comunicação entre dispositivos de computação em um relacionamento entre cliente e servidor pode ser iniciado por um cliente que envia uma solicitação para o servidor solicitando acesso a uma fonte em particular ou a um trabalho em particular a ser realizado. O servidor pode realizar subsequentemente as ações solicitadas e enviar uma resposta de volta ao cliente.
[0085] Em uma modalidade, a aplicação de navegador da Web de cliente 213 é usada para conectar com um servidor, por exemplo, servidor 220, de modo a acessar uma aplicação de edição ou processamento de palavra com base na Web 122.
[0086] O cliente 210 e o servidor 220 podem acessar uma conversão e mesclar serviços 240 sobre a rede 230. Aplicações que são executadas em cliente 210 e servidor 220 podem acessar os serviços 240 através de protocolos da Web ubíquos e formatos de dados tal como HTTP, XML, JSON e SOAP, ou através do protocolo de FSSHTTP.
[0087] A Figura 3 mostra um ambiente de computação de acordo com uma modalidade da invenção. Conforme ilustrado na Figura 3, um ambiente de computação para um usuário 300 pode incluir múltiplos clientes 310 (tal como computador do tipo desktop 311, computador do tipo laptop 312, telefone inteligente 313, computador do tipo tablet 314, leitor (não mostrado), console para jogos (não mostrado), televisão inteligente (não mostrado), e similares) e um servidor 320 conectado através de uma rede 330.
[0088] Conforme descrito acima em relação à rede 230 da Figura 2, a rede 330 pode ser uma internet, uma intranet ou uma extranet, e pode ser qualquer rede de comunicações adequada que inclui, porém não se limita a, uma rede de celular (por exemplo, telefone sem fio), a Internet, uma rede de área local (LAN), uma rede de área abrangente (WAN), uma rede do tipo WiFi, uma rede ad hoc ou uma combinação das mesmas.
[0089] O(s) cliente(s) 310 e o servidor 320 podem envolver sistemas de computação configurados tal como descrito em relação ao cliente 220 e ao servidor 230.
[0090] Cada cliente 310 pode incluir uma aplicação de software para visualizar e editar (e/ou anotar) um documento (e o conteúdo do mesmo) 340 fornecido pelo servidor 320 através dos serviços de acesso de conteúdo.
[0091] Um usuário 300 pode ter múltiplos clientes 310 (por exemplo, um computador do tipo desktop 311 no escritório, um computador do tipo laptop 312 em casa e um telefone móvel/telefone inteligente 313), e pode usar software de leitores de livro eletrônico ou visualizadores ou editores de documento que são executados nesses clientes 310 para ler livros eletrônicos e outro conteúdo digital recuperado a partir do servidor 320, assim como editar e/ou anotar o conteúdo.
[0092] O servidor 320 é um dispositivo de hardware e/ou programa de software configurado para fornecer (como parte de serviços de acesso de conteúdo) um serviço de conversão e um serviço de mesclagem. O serviço de conversão possibilita que usuários acessem conteúdo (mesmo o conteúdo do próprio usuário) que pode ser de um formato de arquivo que não seja diretamente suportado por um específico cliente 310 que o usuário use para acessar o conteúdo; e o serviço de mesclagem reintegra modificações feitas pelo usuário 300 para um documento mestre 345 armazenado no banco de dados 350.
[0093] Um ou mais dos serviços (ou funções) fornecidos pelo servidor 320 podem ser executados em um ambiente de computação em nuvem. Além disso, o servidor 320 pode incluir aplicações (e/ou hospedar um serviço) expostas através de uma API.
[0094] De acordo com certas modalidades, um sistema, que envolve o servidor 320, pode ser assegurado de que pode importar um documento a partir de um cliente 310 ou banco de dados (tal como banco de dados 350). O documento importado pode ser considerado o documento mestre 345, ou um documento mestre 345 pode ser criado a partir do documento importado e armazenado em um banco de dados 350 associado, por exemplo, com o servidor 320.
[0095] Em uma modalidade, durante a "importação" do documento, um endereço ou localizador de fonte uniforme (URL) pode ser criado para o documento. Então, quando um cliente (ou dispositivo de consumidor) solicita o documento (localizado no endereço criado), o documento pode ser recuperado e fornecido para o dispositivo de consumidor. De acordo com certas modalidades, a criação de endereço pode ser realizada para todo ou partes de um documento. Em uma modalidade adicional, a criação de endereço pode ser exposta através de uma API.
[0096] O servidor 320 pode converter o documento 345 para um formato adequado para um dispositivo de consumidor (por exemplo, computador do tipo desktop 311, computador do tipo laptop 312, telefone inteligente 313, computador do tipo tablet 314, leitor (não mostrado), console para jogos (não mostrado) e similares).
[0097] Um usuário 300 pode ter acesso a uma versão adequada do documento mestre 345 (por exemplo, na forma de documento 340) através de cada dispositivo (por exemplo, 311, 312, 313, 314). Por exemplo, o documento 340 pode aparecer através de qualquer dispositivo e plataforma. Um usuário 300 que trabalha no documento 340 dentro de um programa, por exemplo, no computador do tipo laptop 312, pode salvar o documento com aquelas modificações. Salvar o documento pode invocar os serviços de mesclagem. Por exemplo, conforme mostrado nas Figuras 5B a 5D, todo o documento (Figura 5B), a mudança (delta) (Figura 5C) ou uma modificação em particular (Figura 5D) podem ser devolvidos para o servidor para mesclarem com o documento mestre.
[0098] O arquivo físico de fato pode, ou não, ser armazenado na nuvem (como parte de armazenamento de nuvem - tal como o banco de dados 350). O arquivo pode ser armazenado em um servidor ou computador ou qualquer armazenamento local que possa ser acessado pelo serviço sobre uma rede. O documento mestre (ou outro arquivo importado) pode ser armazenado no servidor 320 como uma coleção de arquivos endereçáveis, que pode ser importada e convertida perante solicitação. Conforme descrito em relação à Figura 11, endereços podem ser criados para subconjuntos de conteúdo em um documento e cada desses endereços pode ser usado para obter novos "documentos mestre" que podem ser combinados ou separadamente importados e/ou convertidos perante solicitação (consulte também a Figura 9).
[0099] Outro usuário 360 em um dispositivo de cliente (tal como computador do tipo laptop 316), ou o primeiro usuário 300 em um segundo dispositivo tal como computador do tipo tablet 314, pode abrir o documento 340 e a experiência dos mesmos é de que o documento 340 é um documento trabalhável dentro do dispositivo 316 (ou do segundo dispositivo 314 em que o primeiro usuário 300 acessa o documento). O segundo usuário 360 com dispositivo 316 (ou o primeiro usuário 300 em um segundo dispositivo) pode então salvar o documento após edição e o serviço mesclará as modificações.
[00100] De acordo com modalidades, cada cliente 310 acredita ter um arquivo que foi armazenado no formato apropriado para o cliente. Não há necessidade em mudar o arquivo no cliente de modo a abrir o arquivo e acessar os dados. Por exemplo, aplicações ainda podem abrir documentos conforme esperado - o servidor cuida de se o cliente recebe um formato de arquivo adequado. No cliente 310, o usuário (300, 360) abre, modifica e salva o documento de acordo com processos esperados. O servidor compreende as limitações do ponto de extremidade e fornece o formato apropriado para o dispositivo.
[00101] O servidor 320 e o dispositivo de consumidor/cliente 310 se comunicam tal que o sistema sabe que tipo de dispositivo ou software está disponível no cliente 310 e consequentemente personaliza a experiência do usuário.
[00102] O servidor 320 pode ser configurado para identificar as características de agente/cliente usuário no ponto de extremidade. A identificação pode ter base em uma notificação ativa ou implícita enviada a partir do ponto de extremidade (por exemplo, cliente 310) para o servidor 320. O servidor 320 pode ser configurado adicionalmente para personalizar o cliente experiência assim como a experiência persistida (por exemplo, a cópia armazenada do documento mestre).
[00103] De acordo com certas modalidades, o documento servido 340 não é somente refluído para acomodar tamanhos de exibição menores (ou maiores), acomodações adicionais podem ser feitas.
[00104] Refluir refere-se à acomodação de visualização de conteúdo para uma tela ou janela limitada, onde o texto pode permanecer no tamanho original do mesmo para facilidade de leitura enquanto imagens reduzem em tamanho de modo que as mesmas possam ser vistas de relance.
[00105] Como um exemplo de acomodações adicionais, um dispositivo de alta resolução pode ser servido com conteúdo em alta resolução (um fator de formulário mais alto pode receber mais objetos), ao passo que um telefone pode receber uma imagem em resolução mais baixa (ao invés de, por exemplo, uma versão em 12 megapixels de uma fotografia em um documento). Além disso, um dispositivo habilitado por toque pode ter recursos responsivos ao toque adicionados ao documento. Serviços de ponto de extremidade adicionalmente customizados também podem ser fornecidos (por exemplo, expostos através da API), que incluem, porém não se limitam a, aqueles que possibilitam comentários em um documento e adicionar elementos de fluxo de trabalho (tal como itens "a fazer"). Ajustes de segurança e administração de direitos também podem ser customizados para o cliente. Por exemplo, quando uma versão mais antiga ou certos formatos de arquivo são servidos para um cliente, o documento pode ser fornecido para funcionar em modo de somente leitura para minimizar destrutividade de salvar em uma versão de fidelidade inferior, porém permite que o documento seja salvo - como uma cópia diferente do mestre.
[00106] Em algumas modalidades, o cliente pode salvar a fidelidade inferior (ou versão de formato ou recurso diferente) através da solicitação de um endereço pelo uso de uma API de criação de endereço.
[00107] Não somente o documento servido 340 está em um formato adequado (ou mesmo customizado) para renderização por um dispositivo de consumidor particular, porém modificações ao documento 340 podem ser reintegradas com o documento mestre 345. O servidor 320 pode reintegrar as modificações ao conhecer que tipo de dispositivo e/ou software está disponível no cliente. Por exemplo, onde dispositivos de cliente usam plataformas diferentes (e formatos de arquivo), o servidor 320 pode saber a fidelidade que pode ser perdida em uma conversão e reconstituir qualquer modificação de volta no servidor.
[00108] De modo similar, onde dispositivos de cliente usam versões diferentes de um recurso, o servidor 340 pode saber a versão usada e se ajustar de acordo. Os recursos incluem, porém não se limitam a, utilidades para manipular e editar texto, gráficos, equações, efeitos de texto e gráficos (que incluem gráficos do tipo MICROSOFT SMARTART), conteúdo digital (que inclui vídeos), estilos de bibliografia, comentários em série, correção ortográfica, dicionário, linguagem e utilidades para manipular e editar gráficos.
[00109] O serviço pode fornecer compatibilidade com versões anteriores e posteriores.
[00110] Por exemplo, um documento em uma versão recente do MICROSOFT WORD pode ser servido para um cliente que executa uma versão anterior do MICROSOFT WORD sem que o cliente tenha que realizar a conversão para a versão anterior. Adicionalmente, ao invés de servir uma versão somente de leitura (para evitar problemas ao salvar de volta a versão de fidelidade inferior), o cliente que executa a versão anterior pode editar o documento devido ao fato de que o servidor, por saber como a versão anterior é destrutiva para a versão de fidelidade completa (e o que as imagens que substituem conteúdo de alta fidelidade representam), pode reconstituir os dados de volta no servidor (isto é, realizar reidratação de fidelidade).
[00111] A reidratação de fidelidade pode ser realizada no servidor devido ao fato de que o servidor sabe de que forma o conteúdo foi fornecido assim como as restrições e ações específicas que podem ser executadas em relação ao arquivo enquanto o arquivo está em um formato de arquivo em particular.
[00112] A Figura 4 mostra um exemplo de fluxo de processo para um serviço de conversão e mesclagem de acordo com uma modalidade da invenção. Em referência à Figura 4, em operação (402), quando o servidor recebe uma solicitação de mesclagem, a solicitação e um documento podem ser fornecidos. O servidor pode determinar se o documento é um novo documento ou se existe no sistema (404). Caso o documento seja um novo documento (ou uma nova cópia), o sistema pode criar um mestre (406) a partir do documento. O mestre pode ser o documento (através do uso de um mesmo formato de arquivo e versão de recurso) ou o documento mestre pode ser criado através da conversão do documento em uma versão de recurso e formato de arquivo em particular.
[00113] Através da criação do documento mestre, certas modalidades podem criar uma experiência de "documento como um serviço" para usuários. Em particular, o documento mestre inclui o conteúdo que compõe o documento mestre junto com um conjunto de ações que o criador e outros podem realizar em relação ao documento. Uma experiência customizada pode ser fornecida para um consumidor e a capacidade para editar o conteúdo pode ser exposta como parte do serviço.
[00114] Em uma implantação, criar o documento mestre envolve criar um endereço (que pode envolver criar um identificador único globalizado (GUID)). Essa criação de um endereço pelo serviço pode ser extensível em que outros serviços ou aplicações podem ser o serviço para criar e endereçar.
[00115] De volta à operação 404, caso o documento seja determinado para não ser um novo documento (devido ao fato de que, por exemplo, um documento mestre já existe no sistema), o servidor pode determinar se o documento é de um mesmo formato de arquivo ou diferente do documento mestre 408. Em resposta a uma determinação de que os formatos de arquivo são diferentes, o servidor pode converter o formato de arquivo do documento para o formato de arquivo do documento mestre ou algum outro formato compreendido pelo sistema 410 e então automaticamente determinar as diferenças entre o documento e o documento mestre 412 e mesclar as diferenças (delta) para atualizar o mestre 414. Mesclar o delta no documento mestre possibilita que um usuário em um dispositivo faça algo com um documento e tenha a modificação associada ao documento de modo que a próxima pessoa (ou a mesma pessoa em um segundo dispositivo) que acesse o documento veja aquelas modificações refletidas no documento que tal segunda pessoa (ou segundo dispositivo) recebe.
[00116] De volta à operação 408, caso os formatos de arquivo sejam os mesmos, uma determinação pode ser feita em relação a se a versão de recurso suportada pelo documento é a mesma que a versão de recurso suportada pelo mestre 416. Em resposta a uma determinação de que as versões de recurso são diferentes, o servidor pode determinar as diferenças relacionadas que não de recurso (delta) entre o documento e o mestre 418 e usar o delta determinado para atualizar o mestre 420 sem perder fidelidade.
[00117] Através da determinação de formato de arquivo e/ou versão de recurso, o arquivo como um todo e o conteúdo dentro do arquivo podem ser analisados de modo a transformar um documento para outro documento ou transformar conteúdo a partir de uma versão para outra versão. Onde não há diferença entre formato de arquivo e versão de recurso entre o documento e o mestre, as diferenças podem ser automaticamente atualizadas no mestre 422 ou o mestre pode ser substituído pelo documento.
[00118] As Figuras 5A a 5D ilustram exemplo de cenários de um serviço de conversão e mesclagem. Em referência à Figura 5A, um serviço de conversão 505 pode acessar um documento a partir de um banco de dados 510 e servir o documento para um cliente em um formato de arquivo suportado, por exemplo, conforme o documento exibido 520. O formato real para o conteúdo de documento exibido 520 (conforme armazenado no banco de dados 510) pode incluir, porém não se limita a, PDF, DOC, DOCX e ePub; entretanto, o serviço de conversão 505 pode fornecer o conteúdo em um formato suportado pelo cliente - e até mesmo ser customizado para o ponto de extremidade.
[00119] Para acessar o documento a partir do banco de dados, o serviço recebe o endereço ou identificador de fonte do documento e recupera ou solicita o documento no endereço local.
[00120] As modalidades fornecem um sistema em que documentos são apresentados para um usuário como se estivessem no formato necessário para um cliente em particular - mesmo se o documento não existir de fato em tal formato ou versão até o momento em que o usuário seleciona o documento para visualizar (ou editar). Ao invés de pré- converter todos os arquivos armazenados no servidor para todo tipo de formato de arquivo, um formato em particular para um documento é entregue perante a solicitação por um usuário.
[00121] As modalidades podem estender o alcance onde conteúdo pode ser consumido e criam uma experiência para tal conteúdo adequado para o dispositivo (ou cliente) em que o conteúdo é fornecido. O serviço pode interpretar o dispositivo e capacidades para determinar qual é um modo desejado ou adequado para visualizar o conteúdo no dispositivo em particular. Recursos que o serviço pode levar em consideração incluem, porém não se limitam a, dimensão de uma tela, capacidades de inserção de dados pelo usuário do dispositivo, velocidade e/ou largura de banda de uma conexão de rede, assim como restrições de aplicação e sistema operacional.
[00122] Por exemplo, alguns documentos podem parecer ótimos exibidos em um computador do tipo laptop, porém nem tanto quanto utilizável em um visor menor tal como em um telefone ou computador do tipo tablet. Através da determinação de o que o cliente é (tal como determinar o formato de consumo apropriado para o cliente), o serviço modifica a experiência de consumo com base no dispositivo (ou software).
[00123] No cliente, o documento 520 fornecido pelo serviço 510 pode ser editado. No exemplo atual, um documento editado 525 pode ser mesclado de volta para o documento mestre para facilitar colaboração através de versões de recurso e editores diferentes. Para fornecer os serviços de mesclagem, uma API geral ou uma pluralidade de APIs para colaboração e serviços de mesclagem podem ser usadas. As APIs possibilitam que clientes mesclem modificações a um documento através de múltiplas plataformas. Além disso, os serviços podem ser extensíveis para um adaptador de terceiros em situações em que uma conversão intermediária para um formato de arquivo reconhecível pode ocorrer, por exemplo, onde um proprietário ou novo formato é desenvolvido.
[00124] As Figuras 5B a 5D mostram vários cenários de mesclagem de um documento editado 525 de volta para um documento mestre.
[00125] A Figura 5B mostra um caso em que todo o documento com modificações 530 é fornecido para o serviço de mesclagem 540. Em referência à Figura 5B, uma API geral pode ser usada. Em uma modalidade, um cliente pode enviar todo o documento para o servidor (por exemplo, serviços 540) com as modificações (como o documento 530). O serviço 530 interpreta o documento 530, determina as diferenças e então mescla automaticamente. A mesclagem pode ser executada mesmo quando o documento editado é de um formato de arquivo diferente a partir do documento mestre. O documento 530 pode ser convertido para um formato em particular pelo serviço 540 para facilitar a mesclagem.
[00126] A Figura 5C mostra um caso em que as diferenças (o delta 550) entre o documento 520 e o documento editado 525 são fornecidas para os serviços de mesclagem 560 (através de uma API geral). O serviço 560 interpreta o delta 550 e mescla automaticamente. A mesclagem pode ser executada mesmo quando o documento editado é de um formato de arquivo diferente a partir do documento mestre.
[00127] A Figura 5D mostra um caso em que uma pluralidade de APIs é usada. As APIs podem ser agrupadas como parte de uma opção leve para conteúdo de mesclagem. As APIs podem ser funções de modificação individuais e podem incluir, porém não se limitam a, uma API de realce de texto, uma API de fonte, uma API de parágrafo, uma API de estilos, uma API de tradução, uma API de equação, uma API de edição ou criação de tabela; uma API de edição, criação ou inserção de imagem; uma API de cor, uma API de comentário e similares. Uma ou mais das APIs podem estar disponíveis para um cliente em particular.
[00128] Por exemplo, um cliente pode chamar a API de realce de texto e passar através de um identificador de parágrafo ou do texto e o serviço realiza o realce de texto. Um cliente pode chamar a API de comentário e fornecer a sentença, parágrafo ou palavra onde um comentário deve ser inserido junto com o texto para inserir como o comentário. O dispositivo não precisa compreender o formato de arquivo do documento. Por exemplo, o documento pode ser armazenado como um arquivo em DOCX, porém o cliente visualiza (e edita) o documento como um arquivo em PDF ou um arquivo em ePUB.
[00129] De acordo com outra modalidade, um cliente pode chamar uma API de comentário, que pode fornecer serviços de comentários. Serviços de comentários (através de, por exemplo, uma API de comentário) podem possibilitar que pontos de extremidade limitados enviem comentários em partes de um documento para o serviço para mesclagem para o documento completo. Os serviços de comentários podem receber os comentários e uma indicação como para que parte do documento os comentários estão associados e então modificar o documento completo para incluir os comentários.
[00130] Em uma modalidade adicional, o próprio comentário pode ser atribuído com um endereço e então usado por outros clientes, por exemplo, em um cenário de assinatura (onde um cliente ou servidor recebe uma notificação de quando alguém comenta em uma postagem, mensagem ou outro documento e/ou recebe ou pode obter os comentários).
[00131] No exemplo mostrado na Figura 5D, o documento editado inclui um realce de texto de um primeiro parágrafo, uma correção para texto no terceiro parágrafo, e uma assinatura adicionada aos metadados associados ao documento. Para a API de realce de texto, o cliente pode invocar uma API de realce de texto e passar o identificador de parágrafo 570 para o serviço de realce de texto 575. Para corrigir o erro de tipografia, o cliente pode passar um identificador de local (por exemplo, terceiro parágrafo, primeira sentença) e o texto de substituição 580 para o serviço de edição de texto 585. Para adicionar uma assinatura, o cliente pode passar o identificador de local (por exemplo, metadados) e a assinatura 590 para o serviço de assinatura 595.
[00132] Um identificador de local pode incluir, porém não se limita a, um identificador de parágrafo que identifica um parágrafo em um documento, um identificador de linha que identifica uma linha no documento, um identificador de caractere que identifica um caractere no documento e um identificador de parte que identifica uma parte do documento. O identificador de parte pode fornecer uma identificação local que diferencia entre partes do documento tal como conteúdo de documento, conteúdo de comentário, conteúdo de estilo e similares. As partes do documento identificadas pelo identificador de parte também podem ser conteúdo delineado estruturalmente dentro do documento. Em uma modalidade, o identificador de parte identifica uma parte do documento que é modificada através de marcação estrutural com metadados associados. Um exemplo de conteúdo delineado estruturalmente é da seguinte forma:
[00133] Esse é um parágrafo.
[00134] <fill-in region> Aqui é algum conteúdo que um usuário pode editar e então enviar de volta para o servidor para mesclar </fill-in region>
[00135] Parágrafo seguinte.
[00136] No exemplo acima, que tem uma aparência de um controle de conteúdo, o conteúdo que pode ser modificado por um usuário é localizado no parágrafo entre a marcação identificada como "fill-in region". Em algumas modalidades, a parte dos documentos em que a modificação deve ocorrer pode ser identificada através da marcação estrutural no documento, por exemplo, como a "fill-in region".
[00137] Em algumas modalidades, conteúdo a partir de um cliente que suporta um formato de arquivo de texto plano pode adicionar conteúdo rico para um arquivo através do serviço por passar através de texto e chamar uma API que pode pegar o texto e adicionar a formatação específica. De modo similar, conteúdo pode ser adicionado para metadados através da invocação de um serviço que adiciona o conteúdo para os metadados.
[00138] A Figura 6 mostra um diagrama de um processo executado por um editor de acordo com uma modalidade da invenção. Um editor refere-se a um cliente (hardware ou software) que inclui ferramentas para edição de texto, imagens ou som. O editor pode ser uma aplicação de produtividade, que inclui aplicações de processamento de palavra.
[00139] Em referência à Figura 6, em operação 602, o editor pode solicitar um documento. A solicitação pode ser para abrir um arquivo localizado em um banco de dados de nuvem 604. Devido ao fato de que o documento pode não estar no mesmo formato de arquivo conforme suportado pelo editor, a solicitação para o documento pode invocar um serviço de acesso 608 que fornece um serviço de conversão. O serviço de acesso 608 pode recuperar o documento a partir do banco de dados 604 e converter o documento em um formato de arquivo adequado para o editor. Na operação 608, o editor pode receber o documento convertido a partir dos serviços de acesso 606 e renderizar o documento recebido para exibição.
[00140] O documento recuperado a partir do banco de dados 604 pode ser um documento mestre. Durante o curso de uso do editor, um usuário pode modificar o documento recebido. Quando uma modificação é feita para o documento recebido 610, a modificação pode ser mesclada no documento mestre através da invocação de um serviço de mesclagem 612.
[00141] Invocar o serviço de mesclagem 612 chama um serviço de mesclagem de um serviço de acesso 614. A invocação do serviço de mesclagem pode ocorrer como uma resposta à recepção de um comando de salvamento a partir do usuário. Em outra modalidade, a invocação do serviço de mesclagem pode ocorrer como parte de um fluxo de trabalho. Por exemplo, a invocação do serviço de mesclagem pode ser acionada por certos eventos, tal como um salvamento automático a partir do sistema.
[00142] Opcionalmente, processos de validação 616, 618 podem ser incluídos para fornecer acesso ao documento e/ou os serviços de acesso com base em uma identificação do usuário. Por exemplo, um token OATH pode ser usado para validar um usuário registrado em comparação com os serviços de acesso 606, 614. O token pode ser enviado pelo editor para o banco de dados de nuvem e/ou os serviços de acesso de modo que o usuário possa ser autenticado e o documento acessado.
[00143] Modalidades adicionais podem utilizar um administrador de identidade para facilitar o serviço a saber quem é o usuário e que documentos o usuário se importa. Ao conhecer a identidade do usuário, o serviço pode recuperar o conteúdo do usuário (por exemplo, documentos) através de múltiplos dispositivos (por exemplo, o computador do usuário, computador do tipo laptop, computador do tipo tablet, telefone inteligente, leitor de livro eletrônico e similares) e serviços (por exemplo, serviços de hospedagem de arquivo tal como o serviço de DROPBOX junto a Dropbox Inc. e o serviço de MICROSOFT SKYDRIVE junto a Microsoft Corp.) - em nome do usuário.
[00144] Além disso, ao conhecer o cliente em que o documento deve ser fornecido, o sistema pode obter o documento em um formato e converter o documento em um formato customizado para um cliente que é usado pelo usuário. Por exemplo, um usuário pode estar trabalhando em um documento no MICROSOFT WORD e gostaria de acessar o documento no leitor de livro eletrônico do mesmo. Em tal caso, o serviço pode apresentar o documento para o usuário quando o usuário busca arquivos disponíveis a partir do leitor de livro eletrônico do mesmo (por exemplo, de modo que o usuário possa ler o mesmo no leitor de livro eletrônico). Isso pode remover as etapas que um usuário atualmente executa para enviar um documento para um leitor de livro eletrônico (de modo a ter o documento convertido para o formato apropriado).
[00145] O arquivo pode estar disponível perante abertura de um aplicativo no leitor dispositivo. O aplicativo pode ter um hub associado de documentos que podem ser executados no leitor. Em outra modalidade, um serviço fornecido pelo leitor, tal como fornecido pela Amazon.com para o leitor KINDLE pode integrar a experiência do usuário através de uma camada de extensibilidade de modo que os usuários da mesma acessem documentos a partir dos serviços de acesso de certas modalidades da invenção.
[00146] De acordo com uma modalidade, o usuário pode simplesmente trabalhar no documento, salvar o documento (ou um endereço do documento) e fechar o arquivo. Pelo administrador de identidade saber quem o usuário é e então que plataforma para a qual o documento deve se tornar disponível, o documento se encontrará no local para o usuário no formato apropriado quando acessado novamente por um mesmo cliente ou diferente.
[00147] A Figura 7 mostra um fluxograma de processo de um método para colaboração em documentos com o uso de múltiplos editores de acordo com uma modalidade da invenção. Um método de colaboração pode ser baseado em um documento mestre 700 gerenciado por um serviço de acesso. Um primeiro editor (Editor 1) pode solicitar, na operação 710, o documento 700 a partir do serviço de acesso. O documento mestre 700 pode ser armazenado em um banco de dados associado ao serviço de acesso ou ser recuperado a partir de uma localização conhecida pelo serviço de acesso. Nesse exemplo, o primeiro editor pode ser um leitor que suporta um formato ePub e o documento mestre está em um formato DOCX. O serviço de acesso pode determinar um formato adequado para o primeiro editor 715 e fornecer o documento ao primeiro editor 720. Porque o primeiro editor suporta o formato ePub e não o formato DOCX do documento mestre, o serviço pode fornecer o documento ao primeiro editor no formato ePub.
[00148] O primeiro editor pode receber o documento em formato ePub 725 e exibir o documento 730. Um usuário do primeiro editor pode modificar o documento em ePub 730, por exemplo, incluindo-se um comentário. Quando um comando para salvar (ou outra condição especificada) ocorrer, o primeiro editor pode solicitar uma mesclagem a partir do serviço de acesso 740. A solicitação pode incluir o documento em ePub inteiro com modificação (por exemplo, o documento e os comentários) ou um identificador de localização para a modificação e a modificação (por exemplo, a localização para o comentário e o texto a ser adicionado como um comentário).
[00149] O serviço de acesso pode receber a solicitação para mesclagem 745 e realizar as operações para mesclar as modificações ao documento mestre 750. O documento mestre pode permanecer em seu formato e versão original.
[00150] Um segundo editor pode solicitar o documento a partir do serviço de acesso 755. Nesse exemplo, o segundo editor pode ser um dispositivo de computação que suporta extensões de arquivo em DOCX, mas em uma versão de recurso diferente daquela do documento mestre. Como um exemplo ilustrativo, o documento mestre pode estar na versão 5, mas o segundo editor pode estar na versão 1. Movendo-se para a operação 760, o serviço de acesso pode determinar um formato adequado para o segundo editor, e fornecer o documento ao segundo editor 765. O segundo editor pode receber o documento em formato DOCX (versão 1 do recurso) 770 e exibir o documento 775. Um usuário do segundo editor pode modificar o documento 780. Quando um comando para salvar (ou outra condição especificada) ocorrer, o primeiro editor pode solicitar uma mesclagem a partir do serviço de acesso 785.
[00151] O serviço de acesso pode receber a solicitação para mesclagem 790 e realizar operações para mesclar as modificações ao documento mestre 795. A modificação pode ser a uma porção do conteúdo com o uso de um recurso suportado por ambas as versões. Porque o segundo editor suporta a versão mais antiga do DOCX, mas não a versão mais recente, a reidratação de fidelidade para a versão mais recente pode ser efetuada com o uso do serviço - e o conteúdo com o uso dos recursos mais recentes não será destruído pela mesclagem.
[00152] Se a modificação for ser a uma porção do conteúdo com o uso de um recurso não suportado por ambas as versões, o conflito pode ser resolvido de qualquer forma adequada que inclui alterações feitas em nomes dos usuários e alterações feitas em resposta a uma decisão por um usuário. Por exemplo, em alguns casos, as decisões pelo serviço podem ser feitas em relação a como, quando, e se incorporar a modificação. Para casos em que uma decisão não tem a capacidade de (ou não definida para) fazer uma decisão, o serviço pode fornecer a um ou mais dispositivos a opção de ver todos os conflitos e possibilidades. Os usuários podem então escolher uma opção para resolver o conflito.
[00153] O serviço de acesso possibilita que múltiplos editores visualizem e editem um mesmo arquivo. Ademais, o segundo editor e o primeiro editor, enquanto ambos acessam o documento mestre, estão acessando o documento através de plataformas diferentes.
[00154] De acordo com as modalidades, o arquivo pode ser um "documento" que inclui porções (chamadas no presente documento de "blocos") que um usuário pode ver como conteúdo e que são individualmente endereçáveis. Esses blocos individualmente endereçáveis podem incluir texto, parágrafos, aglomerados de parágrafos, tabelas, objetos, gravuras, gráficos, áudio, imagens, e várias outras unidades e aglomerados. De acordo com determinadas modalidades, cada bloco e/ou aglomerado de blocos pode ser individualmente endereçável. Adicionalmente, cada bloco individualmente endereçável de um documento pode ser convertido e mesclado com o uso dos serviços de conversão e mesclagem. Em alguns casos isso pode ser útil quando um usuário edita uma porção do documento em um formato que pode ser diferente de como o documento seria armazenado.
[00155] Um ou mais blocos de texto (separados ou combinados com formatação) e/ou imagens podem ser combinados e apresentados a um usuário em uma visualização de documento.
[00156] A Figura 9 mostra um diagrama de uma visualização de documento que tem blocos de conteúdo endereçáveis de acordo com uma modalidade da invenção. Conforme ilustrado na Figura 9, um usuário vê um único documento - "documento" 900, que é composto de blocos de conteúdo (como B1 901, B2 902, e B3 903). Os blocos de conteúdo podem ser combinados no que parece um documento coeso embora pelo menos dois dos componentes possam ser obtidos a partir de localizações de recurso ou serviços diferentes.
[00157] No exemplo mostrado na Figura 9, uma visualização de documento 900 pode incluir texto 910, uma imagem 920 e uma tabela 930. Uma porção do conteúdo na visualização de documento 900 pode ser separadamente endereçável (e pode ter sido obtida a partir de localizações de recurso ou serviços diferentes pelo serviço de acesso ou outro serviço quer fornece o documento). Por exemplo, uma sentença ou parágrafo na visualização de documento 900 pode incluir conteúdo a partir do endereçável como o bloco de conteúdo B1 901; e uma tabela 930 pode incluir uma ou mais células independentemente endereçáveis em que o conteúdo dos blocos de conteúdo B2 e B3 902, 903 pode ser incluído.
[00158] Em determinadas implantações, a visualização de documento pode incluir uma visualização de bloco compartilhada em que os sub-blocos que compõem a visualização de documento podem ser visualizados na visualização de documento. A visualização pode ser ilustrada através de realce, cor de fonte, comentário, ou outra diferenciação pela qual um usuário pode determinar que uma porção da visualização de documento foi obtida a partir de um bloco compartilhado ou obtido a partir de endereços diferentes.
[00159] A Figura 10 mostra um diagrama de um sistema para a curação de conteúdo de acordo com uma modalidade da invenção. Referindo-se à Figura 10, um usuário pode visualizar, como um único documento coeso 1000, o conteúdo recuperado por um serviço de acesso de conteúdo a partir de uma pluralidade de recursos e/ou serviços 1001, 1002, 1003. De acordo com uma modalidade, um usuário pode acessar um documento 1000 com o uso de um serviço de acesso que apresenta o documento 1000 como um único documento disponível em um formato apropriado para o dispositivo do usuário. Quando se apresenta o documento 1000, o serviço de acesso pode recuperar múltiplos componentes a partir de um armazenamento de documento 1010.
[00160] Por exemplo, um cliente pode solicitar um documento que inclui conteúdo para ser recuperado a partir de múltiplos recursos. Nesse caso, chamadas de API de correspondentes para recuperar os pedaços de conteúdo podem ser feitas aos recursos diferentes (ou serviços). Embora o usuário "veja" um primeiro bloco de conteúdo C1 1021, um segundo bloco de conteúdo 1022, e um terceiro bloco de conteúdo 1023 como um único documento 1000, a nuvem (ou armazenamento de documento) "vê" os três subcomponentes recuperados a partir de respectivos recursos ou serviços 1001, 1002 e 1003 a API1 1031, API2 1032 e API3 1033.
[00161] O serviço de acesso pode responder ao recebimento de uma solicitação por um documento obtendo-se os subcomponentes apropriados CI 1021, C2 1022, e C3 1023 a partir do armazenamento de documento 1010 e dispor os subcomponentes em um formato apropriado para a visualização no cliente.
[00162] As porções de um documento podem ser individualmente endereçáveis. Em vez de enviar um e-mail com um documento ou fornecer um documento inteiro a outra pessoa quando a outra pessoa deve revisar ou comentar somente sobre uma porção do documento, um usuário pode enviar àquela pessoa um enlace para as partes específicas do documento que devem ser revisadas ou comentadas. O serviço pode ser usado para solicitar um endereço (e URL) para as partes específicas do documento; e, uma vez que o usuário recebe o endereço, o usuário pode enviar o endereço para a outra pessoa. Quando se trabalha em uma visualização do documento, o usuário pode selecionar uma seção e solicitar que um endereço seja criado.
[00163] Em uma modalidade, uma vez que o endereço é obtido, é esse endereço que pode ser distribuído para pessoas e sistemas para obter dados em retorno, por exemplo, na forma de um URL.
[00164] Em algumas modalidades, o endereço pode ser retornado para o cliente como um enlace ou outra forma que apresenta um URL para o bloco. De acordo com várias modalidades, o serviço de endereço pode ser incorporado em um ou mais servidores e acessar um ou mais bancos de dados e/ou depósitos de dados. O serviço de endereço pode ser implantado como um serviço da Web em XML com uma API de SOAP.
[00165] De acordo com determinadas modalidades, um URL pode ser criado para possibilitar o acesso ao conteúdo no endereço criado pelo serviço. O URL que retorna o bloco de conteúdo pode incluir um GUID para o bloco. Em algumas modalidades, um tipo de arquivo de saída pode ser incluído para indicar o formato no qual o bloco é armazenado.
[00166] Acessando-se o URL por meio de, por exemplo, uma solicitação de HTTP GET, os dados no endereço podem ser obtidos. O URL pode ser usado por serviços de terceiros para fornecer determinado conteúdo aos assinantes.
[00167] Uma vez que o endereço é criado, os dados podem ser recuperados com o uso do endereço. Os dados podem estar em XML nativo, HTML canônica ou texto. Um enlace "canônico" se refere a uma versão preferencial de um recurso. Uma relação de enlace canônico especifica um identificador de recurso internacionalizado preferencial (IRI) a partir de um conjunto de recursos que retornam conteúdo do IRI contextual na forma duplicada (isto é, o IRI que é preferencial aos recursos com conteúdo duplicativo).
[00168] A Figura 11 ilustra um cenário exemplificativo de criação de novos endereços para subconjuntos de conteúdo de um documento. Referindo-se à Figura 11 um API de criação de endereço 1100 pode ser chamado para criar um endereço (por exemplo, um GUID) para um bloco de conteúdo de uma visualização de documento 1110 identificada por meio de, por exemplo, um identificador de localização. O identificador de localização pode incluir, sem limitação, um identificador de parágrafo que identifica um parágrafo em um documento, um identificador de linha que identifica uma linha no documento, um identificador de caractere que identifica um caractere no documento, e um identificador de parte que identifica uma parte do documento. O identificador de parte pode fornecer uma identificação de localização que diferencia entre as partes do documento como conteúdo do documento, conteúdo do comentário, conteúdo do estilo, e similares. As partes do documento identificadas pelo identificador de parte também podem representar conteúdo delineado estruturalmente no documento.
[00169] Uma vez que o serviço de criação de endereço gera o GUID, o GUID pode ser retornado ao cliente como metadados associados ao bloco de conteúdo.
[00170] Um URL que passa o GUID pode ser usado para acessar esse bloco de conteúdo. Em alguns casos, a visualização de documento pode utilizar esse novo bloco de conteúdo endereço quando se exibe o conteúdo do documento.
[00171] Quando um bloco de conteúdo é atualizado por um cliente, um documento formado desse bloco e visualizado por outro cliente pode ser atualizado. Em alguns cenários, a atualização pode parecer simultânea em que conforme o bloco de conteúdo é atualizado em um cliente, outro cliente que está visualizando um documento que inclui aquele bloco de conteúdo endereçável pode ver as alterações como se as mesmas estivessem sendo realizadas localmente. Em alguns outros cenários, um usuário pode controlar quando o bloco atualizado é compartilhado (e disponível para outros que acessam aquele conteúdo endereçável). Isso pode ser efetuado, por exemplo, armazenando-se uma versão no URL e enviando um indicador para a versão específica do documento. Por exemplo, um usuário pode enviar uma versão de rascunho para revisão e continuar trabalhando nas versões mais recentes. As pessoas que recebem a versão de rascunho não verão as alterações até que a versão mais recente seja compartilhada através do envio de um indicador atualizado.
[00172] Em um exemplo, um cliente pode chamar a API de criação de endereço 1100 e transferir um identificador de parágrafo 1112 ou intervalo (e em alguns casos o texto ou imagem), e o serviço gera (e armazena) o GUID-1 1114 para o parágrafo ou intervalo. Em alguns casos, quando o texto ou as imagens é/são fornecido(as), o serviço pode gerar um endereço como se um identificador de parágrafo ou intervalo enviado.
[00173] Como outro exemplo, um cliente pode chamar a API de criação de endereço 1100 e passar através um ou mais células de uma tabela 1122 para que o serviço gere (e armazene) um endereço (por exemplo, GUID-2 1124) para a uma ou mais células da tabela. Em um cenário, como um bloco de conteúdo pode ser acessado por uma cliente de planilha para uso em cálculos. Em outro cenário, um endereço específico a um bloco de conteúdo de célula que tem um gráfico ou função matemática total (como criado por uma aplicação de planilha) pode ser usado para fornecer conteúdo em um blog ou como parte de um processamento de palavra ou documento de apresentação.
[00174] Como ainda outro exemplo, um cliente pode chamar a API de criação de endereço 1100 e transferir metadados 1132 para obter um endereço (por exemplo, GUID-3 1134) específico para os metadados. Obviamente, os metadados podem ser incluídos em um ou mais blocos de outro conteúdo identificado por localização. Um cenário em que os metadados podem ser úteis quando acessados por meio de um endereço independente é para informações de versão ou assinatura. Esses metadados podem ser posteriormente acessados para mostrar o histórico de colaboração de um documento. Em algumas implantações, quando acessados posteriormente, os dados de histórico podem incluir uma lista de versões para um bloco identificado pelo URL e o conteúdo associado a uma versão específica.
[00175] O gerenciamento de direitos também pode ser implantado para um bloco endereçável. Por exemplo, quando um cliente chama uma API de criação de endereço, as informações sobre quem pode acessar, editar, visualizar e compartilhar podem ser passadas com a solicitação e essas informações podem ser armazenadas pelo servidor, por exemplo, como metadados, para serem verificadas em relação à quando o conteúdo no endereço é acessado. Isso pode ser usado para controlar o acesso ou permissões a um intervalo ou outra parte identificável de um documento. Em um cenário um bloco pode incluir controles para acesso por usuários ou papéis específicos (como atribuído por um sistema de gerenciamento de direitos). Em outro cenário um bloco pode incluir permissões como se uma porção é de somente leitura. Em um cenário adicional, tanto o acesso quanto as permissões podem ser incluídos para que os usuários com vários papéis possam ter várias permissões correspondentes.
[00176] A Figura 12 mostra um fluxograma de processo de um método para a colaboração com o uso de subconjuntos de conteúdo criado a partir de um documento. Referindo-se à Figura 12, um documento mestre 1200 pode ser gerenciado por um serviço de acesso. Um primeiro cliente (Usuário 1) pode solicitar, na operação 1210, o documento 1200 a partir do serviço de acesso. O documento mestre 1200 pode ser armazenado em um banco de dados associado ao serviço de acesso ou ser recuperado a partir de uma localização conhecida pelo serviço de acesso. Em resposta à solicitação a partir do primeiro cliente, o serviço de acesso pode fornecer o documento ao primeiro cliente em um formato adequado 1215.
[00177] O primeiro cliente pode receber e exibir o documento 1220. Um usuário do primeiro cliente pode opcionalmente modificar o documento 1225, por exemplo, alterando-se um erro tipográfico em uma linha de texto, adicionar um comentário, ou realizar alguma outra função. Enquanto visualiza o documento, o usuário pode selecionar um ou mais blocos de conteúdo 1230 e solicitar um endereço para a seleção 1235 a partir do serviço de acesso. A solicitação pode incluir um identificador de localização e/ou o conteúdo selecionado pelo usuário.
[00178] O serviço de acesso pode receber a solicitação de endereço e criar um endereço para a seleção 1240. O(s) bloco(s) selecionado(s) (ou sua localização) pode(m) ser armazenado(s) em um armazenamento de dados pelo serviço de acesso e o endereço para o(s) bloco(s) fornecido(s) ao cliente. O cliente recebe o endereço 1245 e pode incluir o endereço para o bloco nos metadados do documento. As modificações 1250 podem ser feitas ao documento que inclui as seções que têm o endereço atribuído recentemente e os dados no bloco (junto com as modificações, se houver) podem ser retornados para o servidor e armazenados pelo serviço de acesso no endereço B1 1255. Embora não mostrado, o documento original (e/ou modificações àquele documento) também pode ser mesclado novamente ao documento mestre 1200, em que o documento mestre permanece em seu formato e versão originais.
[00179] Um segundo cliente (Usuário 2) (que pode ter sido dada as informações sobre o bloco de conteúdo criado B1) pode solicitar o conteúdo no endereço B1 1260. A solicitação para o serviço de acesso pode incluir tanto o endereço quanto um formato desejado para o conteúdo. Em alguns casos, o serviço de acesso pode determinar o formato para o conteúdo por outros métodos. O serviço de acesso pode fornecer o bloco de conteúdo B1 ao segundo cliente em um formato adequado 1265. O segundo cliente pode receber o conteúdo de B1 e exibir o conteúdo em uma visualização de documento 1270. O segundo cliente pode exibir o bloco de conteúdo, sozinho, como parte de outro documento maior também acessado pelo serviço de acesso, ou como parte de outro documento maior gerado ou criado pelo segundo cliente. Um usuário do segundo cliente pode modificar o documento, incluindo o bloco de conteúdo de B1 1275. Quando um comando para salvar (ou outra condição especificada) ocorre, o segundo cliente pode solicitar uma mesclagem a partir do serviço de acesso 1280.
[00180] O serviço de acesso pode receber a solicitação para mesclagem 1285 e realizar operações para mesclar as modificações ao bloco de conteúdo no endereço B1 1290.
[00181] A Figura 13 mostra um diagrama de um ambiente operacional que ilustra uma modalidade exemplificativa. Os serviços de acesso de conteúdo 1300 pode fornecer uma camada extensível na nuvem que o provedor de terceiros (ou do mesmo) (de um segundo serviço) pode integrar nas experiências do usuário.
[00182] Por exemplo, um segundo serviço 1305 pode chamar os serviços de acesso de conteúdo 1300 com uma solicitação 1312 por uma porção de arquivo particular. A porção de arquivo pode ser recuperada de um armazenamento de documento 1320 acessível pelos serviços de acesso de conteúdo 1300 ou hospedada na nuvem. Em resposta ao recebimento de uma solicitação 1312, os serviços de acesso de conteúdo 1300 podem retornar um bloco de dados de documento para o segundo serviço 1305 em um formato adequado para o segundo serviço 1305. O formato dos dados pode ser convertido pelos serviços de acesso de conteúdo 1300 ou fornecido como é para o segundo serviço 1305. O segundo serviço 1305 pode fornecer o conteúdo ao cliente 1310. Em algumas modalidades, a solicitação pode incluir múltiplas solicitações e/ou recursos. Uma vez que os dados são recebidos pelo segundo serviço 1305, os dados podem ser combinados e fornecidos de qualquer forma adequada ao usuário 1310.
[00183] Por exemplo, o segundo serviço 1305 pode ser um serviço de acesso de conteúdo para o qual um usuário assina ou utiliza de qualquer outra forma para receber conteúdo que inclui conteúdo curado pelo usuário ou por outros.
[00184] A Figura 14 mostra um fluxograma de processo de um método para acessar um conteúdo curado. Um bloco de conteúdo 1400 pode ser gerenciado por um serviço de acesso. O bloco de conteúdo 1400 pode ser armazenado em um banco de dados associado ao serviço de acesso ou ser recuperado de uma localização conhecida pelo serviço de acesso. Um cliente (Usuário 3) pode solicitar, na operação 1410, uma publicação/documento de um segundo serviço, que pode ser um serviço de assinatura. Essa publicação/documento pode incluir conteúdo curado. O segundo serviço pode receber a solicitação do assinante 1415 e então solicitar, na operação 1420 o bloco de conteúdo 1400 a partir do serviço de acesso. O serviço de acesso pode fornecer o documento ao segundo serviço em um formato apropriado 1425. Uma vez que o segundo serviço recebe o bloco de conteúdo 1430, o bloco de conteúdo B1 pode ser combinado com outros dados que podem ser solicitados ou gerados pelo segundo serviço 1435. A publicação/documento pode ser recebida pelo cliente 1440.
[00185] Os serviços de notificação podem ser utilizados serviços para fazer atualizações de conteúdo aos assinantes. Alternativamente, o conteúdo pode ser renovado periodicamente ou renovado mediante o recebimento de uma notificação de que uma alteração foi feita.
[00186] Criando-se endereços para os blocos de conteúdo (por exemplo, criando um objeto ou entidade endereçável), é possível obter objeto(s) nomeado(s) a partir de um servidor, visualizar e/ou editar uma visualização personalizada do(s) objeto(s) nomeado(s) e utilizar os serviços para ligar com problemas de conversão e mesclagem.
[00187] Os cenários exemplificativos a seguir são apresentados para fornecer uma melhor compreensão de determinadas modalidades da presente invenção e de suas muitas vantagens. Os cenários exemplificativos a seguir são simplesmente destinados a serem ilustrativos de algumas das aplicações e variantes para as modalidades da invenção. Os mesmos, obviamente, não devem ser considerados de qualquer forma limitativos da invenção.
CENÁRIO EXEMPLIFICATIVO A:
[00188] Um usuário de um leitor KINDLE ou um leitor NOOK está lendo um documento e gostaria de contribuir para o documento - por comentários, correção de um erro tipográfico, realce, ou realização de alguma outra modificação ou anotação. Esses leitores têm algumas capacidades de edição - embora os leitores não sejam, primeiramente, editores. Consequentemente, determinadas modalidades da invenção permitem que um usuário tome vantagem das capacidades do leitor, por exemplo, as anotações e capacidades de edição e então mesclar aquelas modificações de volta ao documento. Em vez de cada dispositivo ou aplicação precisar conter capacidades de coautoria, os serviços de mesclagem de "documento como serviço" pode mesclar automaticamente as edições/conteúdo de volta ao documento - até mesmo a partir de plataformas diferentes.
[00189] Em uma modalidade, a mesclagem pode ser efetuada quando o leitor realiza uma operação de sincronização (como usado para possibilitar que um usuário leia conteúdo digital através de múltiplos dispositivos enquanto obtém o conteúdo digital a partir da localização mais distante alcançada). Nesse caso, durante a chamada para atualizar a localização em um serviço de sincronização, as modificações a um documento podem ser enviadas para um serviço de mesclagem e conversão de uma modalidade da invenção.
[00190] Em outra modalidade, o leitor pode chamar os serviços de conversão e mesclagem mediante uma etapa ativa pelo usuário, por exemplo, quando usuário opta por salvar o documento. Em ainda outra modalidade, um de recurso de salvamento automático pode ser usado para salvar as alterações.
[00191] Já que não é necessário que os clientes incluam uma camada que pode compreender e realizar a coautoria, os dispositivos podem ser "mais burros" ou focas recursos de dispositivo em outras aplicações e funções.
CENÁRIO EXEMPLIFICATIVO B:
[00192] Um documento pode ser criado em um formato DOCX para uma versão recente do documento de MICROSOFT WORD e software de processamento de palavra disponível pela Microsoft Corp., mas o autor gostaria de visualizar, e talvez comentar ou editar o documento em um leitor como o leitor NOOK, que pode usar um formato de arquivo ePub, ou o leitor de AMAZON KINDLE, que pode usar um formato de AZW e KF8 apropriado. Através do uso do serviço, a pessoa pode acessar o documento no formato apropriado para o leitor NOOK ou o leitor KINDLE e então fazer alterações ao documento, por exemplo, adicionando-se alguns comentários. Os comentários podem ser salvos novamente no arquivo mestre, que o caso no formato de arquivo DOCX. CENÁRIO EXEMPLIFICATIVO C:
[00193] Atualmente, abrir um arquivo de documento de MICROSOFT WORD em uma versão diferente daquela usada para criar o documento pode resultar no documento que não exibe todos os recursos. Por exemplo, determinadas fontes ou formatação pode alterar e recursos ricos ou complexos podem desaparecer, por exemplo, capacidades de notas de rodapé e alguns macros. Em alguns casos, a alteração em versão também é uma alteração no formato de arquivo, como com o caso de MICROSOFT WORD 97 (que usa a extensão de formato de arquivo DOC) e MICROSOFT WORD 2010 (que usa a extensão de formato de arquivo DOCX). Em outros casos, a alteração na versão fornece funcionalidade adicional e/ou recursos como com o caso de MICROSOFT WORD 2007 e MICROSOFT WORD 2010.
[00194] Menos problemas surgem quando o documento é criado em uma versão mais antiga e então aberto em uma versão mais recente, mas ainda pode haver erros em que um recurso é retirado ou não suportado completamente uma versão posterior. Além dos problemas com a exibição de um documento criado em uma versão diferente daquela usada para abrir o documento, quando um documento criado em uma versão posterior é aberto e salvo em uma versão anterior, os recursos de versão posterior podem ser perdidos - até mesmo quando o quando o documento é reaberto na versão posterior. Por exemplo, a aplicação de processamento de palavra de MICROSOFT WORD 2010 inclui recursos para criar e manipular elementos gráficos. Se um documento fosse criado no MICROSOFT WORD 2010 com gráficos extravagantes, mas é aberto no MICROSOFT WORD 97 para corrigir um erro tipográfico em algum texto em uma primeira página do documento e então salvo, o documento salvo reverte para a versão mais antiga (com a extensão de formato de arquivo formato DOC) - perdendo os gráficos extravagantes. Somente porque uma palavra está alterada, o documento inteiro reverte para a versão mais antiga das imagens gráficas.
[00195] De acordo com determinadas modalidades, a alteração intencional do usuário na versão mais antiga pode ser reconhecida e mesclada em um documento suportado pela versão recente de forma que retém os recursos mais recentes.
CENÁRIO EXEMPLIFICATIVO D:
[00196] Através do uso dos serviços de acesso de conteúdo, o conteúdo pode ser personalizado para versões mais antigas de produtos existentes. Por exemplo, um usuário pode ser ter a capacidade de atrasar a atualização para uma versão mais recente de uma aplicação de software ou exigir que a próxima versão seja retrocompatível a fim de ler extensões de formato de arquivo mais antigas/recentes porque o arquivo que o usuário (executando o programa mais recente e vice-versa) receberá pode ser personalizado no ponto de extremidade.
[00197] Por exemplo, um cliente que executa o MICROSOFT OFFICE 2013 pode receber uma visualização completa com todos os recursos disponíveis, mas quando o mesmo documento é aberto a partir de um cliente que executa o MICROSOFT OFFICE 2007, o serviço pode empacotar o conteúdo para visualização para consumo, mas otimizado para o MICROSOFT OFFICE 2007. A otimização pode incluir substituir determinados recursos com aqueles da fidelidade apropriada. Como um exemplo, um editor de equação fornecido em uma versão pode não ser retrocompatível. Portanto, o serviço pode substituir a equação no pacote de documento com uma imagem da equação ou com uma forma que é editável em um editor de equação adequado para a versão em que o documento é fornecido.
[00198] Uma experiência semelhante pode ser fornecida para outras aplicações de produtividade, incluindo as aplicações de processamento de palavra. Por exemplo, um cliente que executa o MICROSOFT OFFICE 2013 pode receber uma visualização completa com todos os recursos disponíveis, mas quando o mesmo documento é aberto a partir de um cliente que excuta outra aplicação de produtividade como GOOGLE DOCS disponível pela Google Inc., APACHE OPENOFFICE disponível pela Apache Software Foundation, ou ZOHO OFFICE disponível pela Zoho Corporation, o serviço pode empacotar o conteúdo para visualização de consumo, mas otimizada para o GOOGLE DOCS, OPENOFFICE, ou ZOHO OFFICE.
CENÁRIO EXEMPLIFICATIVO E:
[00199] Um arquivo mestre pode ser armazenado em um formato de maior fidelidade. Por exemplo, um documento mestre pode ser armazenado em uma versão mais recente do MICROSOFT WORD. A um cliente que executa uma versão anterior do MICROSOFT WORD pode ser servido um arquivo em um formato DOC em vez de um formato DOCX. Quando um usuário faz alterações ao documento DOC e salva o documento (como parte de um salvamento automático ou por uma etapa ativa), as alterações ao documento DOC são salvas novamente no arquivo mestre no formato DOCX. Em uma modalidade, o documento DOC inteiro é reidratado para o formato DOCX no servidor. Em outra modalidade, somente uma porção que é modificada pelo usuário (e não simplesmente parte das diferenças feitas ao conteúdo quando se serve o arquivo em DOC ao cliente) é retornada ao servidor mediante o salvamento. Essa porção pode então ser associada novamente com o documento de fidelidade completa.
CENÁRIO EXEMPLIFICATIVO F:
[00200] As modalidades podem facilitar a compatibilidade progressiva e retrocompatibilidade entre versões diferentes de um mesmo produto. Atualmente, um arquivo salvo em um programa MICROSOFT WORD é salvo para múltiplos alvos. Por exemplo, quando uma versão de recurso atualizado para uma equação for usada em um arquivo e o arquivo salvo, os dados de equação nativos são salvos (de modo que pode ser lida novamente com a fidelidade apropriada para editar) e uma gravura da equação é salva de modo que uma versão anterior do processador de palavras exiba como é a equação - embora o editor de equação não seja suportado. A versão mais antiga pode conter informações sobre como deixar versão mais recente obter sua fidelidade completa de volta. Por exemplo, uma versão mais antiga pode estar em um modo de exibição e não permitir a edição.
[00201] Cada versão do processador de palavras contém informações sobre como realizar a viagem de ida e volta de determinado recurso de modo que uma versão futura possa obter sua fidelidade completa de volta. Uma viagem de ida e volta se refere a um documento que vai de uma versão para outra versão e então de volta para a versão original. Por exemplo, um recurso A pode ser na versão X, mas na versão Y o recurso A pode ser representado como recurso A-linha. Quando o recurso A-linha é visualizado ou acessado a partir da versão X, então o recurso retorna para A. Essa disposição coloca uma pressão sobre versões futuras para criar compatibilidade de nível inferior com base em como a versão anterior pode realizar a viagem de ida e volta do recurso bem como potencialmente exigir dados adicionais para ser salvo.
[00202] As modalidades da invenção removem ou minimizam a pressão em ter uma versão que sabe como realizar a viagem de ida e volta de vários recursos bem como reduzir a quantidade de dados salvos para suportar múltiplas versões. As modalidades possibilitam versões mais antigas de um produto para ler e preservar o conteúdo de versões mais recentes do produto.
CENÁRIO EXEMPLIFICATIVO G:
[00203] O Formato de Texto Rico (RTF) é um formato de arquivo que codifica vários documentos, texto e gráficos que formatam as propriedades para uso como uma intertroca de documento entre plataformas adequada para muitas aplicações de processamento de palavra. Atualmente, um arquivo de RTF salva múltiplas versões separadas de uma gravura em um arquivo a fim de suportar clientes/consumidores potenciais do arquivo. Por exemplo, um arquivo fornece a versão atual da gravura, um segundo (ou mais) arquivo fornece uma ou mais versões anteriores da gravura, outro arquivo fornece uma versão de WORD 2.0, e ainda outro arquivo fornece uma versão de WORDPAD. Fornecendo-se serviços de conversão e mesclagem, uma aplicação de processamento de palavras não precisar suportar muitos formatos de arquivo ou ter múltiplos arquivos do mesmo conteúdo.
CENÁRIO EXEMPLIFICATIVO H:
[00204] Os serviços de mesclagem podem ser aplicados para mesclar automaticamente alterações dentro de um documento que foi enviado por e-mail. Nesse caso, um serviço ou servidor de e-mail pode ser comunicar com o serviço de mesclagem. O serviço de mesclagem pode gerenciar a mesclagem como se o serviço de e-mail (ou servidor de e-mail) fosse um editor.
[00205] Por exemplo, um grupo de pessoas pode estar colaborando em um documento. Uma pessoa do grupo pode enviar por e-mail as alterações que a pessoa fez off-line para os outros como um anexo a um e-mail. O serviço e o sistema, conhecendo o identificador para o documento, podem mesclar as alterações a um documento mestre em nomes do usuário automaticamente através do ato de enviar por e-mail para um recipiente cujo serviço de e-mail é configurado para se comunicar com os serviços de mesclagem.
[00206] Em outro exemplo, uma pessoa do grupo de pessoas pode enviar um e-mail para os outros com o uso de uma conta de e-mail associada a um primeiro serviço de e-mail e anexar o documento. Alguns dos recipientes podem estar usando um segundo serviço de email não conectado ao primeiro serviço de e-mail. Por exemplo, o primeiro serviço de e-mail pode ser o serviço de e-mail HOTMAIL da Microsoft Corp. e o segundo serviço de e-mail pode ser o serviço de email GMAIL da Google Inc.
[00207] Quando um dos usuários do segundo serviço de e-mail, que é desconectado do primeiro serviço de e-mail, edita o documento e responde com o documento editado anexado, o primeiro serviço de email pode mesclar as alterações (que foram feitas off-line) de volta no documento mestre. Quando o primeiro serviço de e-mail recebe o anexo e identifica o documento (e linhagem do documento), o primeiro serviço de e-mail pode iniciar a comunicação com o serviço de mesclagem. O serviço de mesclagem pode gerenciar a mesclagem como se o primeiro serviço de e-mail fosse um editor.
CENÁRIO EXEMPLIFICATIVO I:
[00208] Um usuário pode receber um documento para revisão com o uso de um dispositivo (como um telefone) que pode ter potência de computação limitada e largura de banda limitada (como devido à latência). Atualmente, se o usuário gostaria de comentar no documento nesse ambiente - até mesmo um único comentário ou alteração resulta na transmissão do documento inteiro de volta para um servidor. De acordo com uma modalidade, o serviço de acesso pode fornecer uma acomodação para as limitações do dispositivo do usuário e incorporar uma caixa de verificação de comentário (de sim ou não) que uma alteração é aprovada. Então, somente a indicação da resposta de caixa de verificação pode ser retornada para o servidor. Desta forma, o dispositivo obteve os dados que necessitava do serviço e pode chamar o serviço de volta para atualizar o comentário para aprovado. O serviço pode considerar aquela indicação e realizar a modificações e/ou com inserção fidelidade alta do comentário. O usuário no dispositivo limitado acredita que o mesmo tinha uma experiência de coautoria completa, mas sem o preço de entregar um software/tecnologia de coautoria ao dispositivo.
CENÁRIO EXEMPLIFICATIVO J:
[00209] Um exemplo de uma acomodação de conteúdo para um dispositivo de consumidor é um caso em que o dispositivo de consumidor é um dispositivo habilitado por toque, mas o documento não é pronto habilitado por toque. O serviço pode melhorar o documento tornar o documento mais pronto habilitado por toque, por exemplo, fornecendo-se recursos de aproximação/afastamento ou ampliação. Como um exemplo ilustrativo, uma tabela em um documento criado originalmente em um dispositivo de tela grande, mas está sendo fornecido para a renderização em um dispositivo de tela pequena que pode ter um aspecto de toque adicionado, o qual permite que a tabela possa ser aproximada (para a visualização).
[00210] Alternativamente, ou, além disso, levando-se as dimensões de um dispositivo pequeno em consideração, o serviço pode determinar que há espaço para somente uma coluna em uma tabela de três colunas e apresentará a tabela na forma adequada para a tela pequena. Isso pode incluir a adição de recursos de aproximação/afastamento ou somente exibir uma coluna de cada vez.
CENÁRIO EXEMPLIFICATIVO K:
[00211] Um usuário pode especificar regiões endereçáveis com o uso de uma API de criação de endereço. Em um cenário exemplificativo, uma tabela pode ser acessada, visualizada e modificada em uma aplicação de planilha. Essa tabela pode ser obtida a partir de uma aplicação de processamento de palavras a partir da qual uma tabela foi criada e tornada em uma região endereçável. Uma vez que as alterações são feitas na aplicação de planilha, a tabela pode ser enviada de volta ao documento com processamento de palavras (convertido se necessário) e mesclada. A tabela pode ir para múltiplos documentos - uma vez que o objeto é definido (e dotado de um endereço) uma alteração àquele objeto que enviado por push de volta ao servidor pode ser visível em todos os "documentos" que usam aquele objeto (com aquele endereço) como parte do todo.
[00212] Um usuário pode "congelar" uma versão do conteúdo criando-se um endereço separado para aquela versão. Em alguns casos, as permissões adicionais podem ser associadas ao acesso à versão congelada.
[00213] Um usuário também pode fornecer versões temporárias enquanto se edita um bloco de conteúdo para que as alterações ao bloco sejam atualizadas conforme o usuário escolhe. Em uma implantação, isso pode ser efetuado tendo-se uma capacidade de push separada em que o usuário identifica no cliente que o usuário está salvando temporariamente as alterações ao bloco. Nesse caso, o serviço pode associar a versão anterior ou as alterações temporárias a um indicador.
CENÁRIO EXEMPLIFICATIVO L:
[00214] Em um cenário exemplificativo, um editor pode solicitar um documento em html. Embora visualize e/ou edite o documento fornecido em HTML, um serviço pode ser invocado para criar uma sub-região endereçável. Isto é um serviço de endereço pode criar um endereço para um bloco de conteúdo (que pode incluir ou não metadados associados). Por exemplo, uma solicitação para um endereço para a página de visualização e os dados exibidos na página de visualização podem ser solicitados. Por exemplo, a solicitação pode definir a região como a página de visualização e os dados naquela página de visualização podem ser armazenados (ou associados ao) no endereço recentemente criado. De acordo com as modalidades, a página de visualização pode ser subdividida adicionalmente e um endereço criado para uma região particular. De qualquer forma, não é necessário que cliente que solicita a captura de uma porção da página de visualização tenha a capacidade de lidar com a alteração no tamanho dos dados devido às modificações feitas ao documento sendo visualizado. Em vez disso, o cliente pode invocar uma API de criação de endereço, que lida com os problemas de conversão e mesclagem.
[00215] Por exemplo, uma versão de um documento recebido por um editor/visualizador pode apresentar conteúdo entre o intervalo do caractere 55 ao caractere 75 de uma cadeia de 200 caracteres. Entretanto, se as modificações são feitas ao documento (seja dentro do intervalo ou não), o intervalo recuperado para a visualização pode não abranger a seção que um usuário deseja.
[00216] Criando-se um endereço para o texto no intervalo, as alterações de intervalo devido às alterações no texto associado ao mesmo endereço, o problema com intervalos alterados não é um problema porque as alterações podem ser associadas a um endereço que pode ser usado para recuperar todo o conteúdo. Em alguns casos, pode haver uma compreensão implícita pela API de criação de endereço que um endereço é solicitado quando uma solicitação é feita para proporcionar ao cliente o texto em um intervalo particular.
[00217] Um intervalo refere-se a uma parte do conteúdo de um documento em HTML e pode iniciar e terminar em qualquer ponto. De modo geral, um objeto de intervalo inclui os pontos de início e fim de um intervalo, habilitando a cópia, exclusão, e substituição do conteúdo (como elementos de texto ou HTML) dentro do intervalo. Um moniker se refere a um apelido ou nome que pode ser usado para identificar e localizar um ou mais objetos. HTML também pode incluir âncoras e regiões nomeadas, que podem ser tornadas endereçáveis através de serviços de endereço.
CENÁRIO EXEMPLIFICATIVO M:
[00218] Um provedor de terceiros (ou do mesmo) (de um segundo serviço ou que tem uma presença na web) pode usar os serviços de criação de endereços para fornecer sua própria aplicação. Por exemplo, uma empresa de hipoteca (ou outro vendedor) pode usar os serviços de criação de endereço para fornecer uma aplicação da web que possibilita que os usuários de sua aplicação da web tentem opções diferentes para obter um empréstimo. As variáveis que poderiam ser ajustadas por um usuário para as opções de empréstimo podem incluir termo (por exemplo, 30 anos, 15 anos, 7 anos), pontos, quantidade total, pagamentos mensais e similares. Esse tipo de lógica pode ser implantado com o uso de uma aplicação de planilha. Se a empresa de hipoteca simplesmente fornecesse a planilha a um consumidor, o controle de uma planilha da aplicação de planilha que implanta esse programa pode ser perdido facilmente. Outra opção que poderia ser usada para implantar esse programa seria se a empresa de hipoteca (ou vendedor) criasse sua própria aplicação da web e mecanismo de cálculo.
[00219] Ao invés de fornecer uma planilha ou criar uma nova aplicação da web, a empresa de hipoteca pode aproveitar um ou mais dos serviços descritos no presente documento para fornecer a amortização ou outras opções de cenário de empréstimo. De acordo com uma implantação exemplificativa, uma planilha de uma aplicação de planilha pode ser criada pela empresa de hipoteca e determinadas células tornadas disponíveis a um consumidor como parte de uma visualização customizada a um usuário. Por exemplo, a aplicação da web (ou página da web) pode acessar o documento de planilha e apresentar uma visualização a um usuário com base nas porções que a empresa de hipoteca tornou endereçável. Em uma implantação, a empresa de hipoteca pode criar uma aplicação da web que coleta informações de um consumidor, cria uma planilha, e preenche a planilha com as informações coletadas a partir do consumidor. A "planilha" pode ser chamada através de uma API de planilha que cria uma planilha de trabalho, adiciona um intervalo à planilha, e possibilita que atualizações à planilha de trabalho (ou células ou intervalo) (por exemplo, por meio de uma API de adição de intervalo ou API de modificação/atualização de intervalo).
[00220] Uma vez que a planilha é criada, a aplicação da empresa de hipoteca pode inicializar a planilha para permitir que o usuário visualize e manipule os dados ou apresente as informações (por exemplo, de uma célula de quantidade total independentemente endereçável) em uma interface de usuário criado especificamente. A visualização de planilha ou visualização de interface de usuário criada especificamente pode receber entrada a partir de um usuário e então chamar o serviço para realizar os cálculos e/ou atualizar os resultados (por exemplo, através de uma API de cálculo ou uma chamada para obter dados a partir de uma célula após uma mesclagem).
[00221] Em uma implantação adicional, as células da tabela associadas a determinadas entradas de dados e saídas de cálculo podem ser separadamente endereçáveis (através do uso do serviço de criação de endereço) e acessadas por uma aplicação de processamento de palavras ou outra aplicação para gerar uma visualização de documento que pode ser usado, por exemplo, como uma parte de uma aplicação de empréstimo.
[00222] A Figura 8 mostra um diagrama de blocos que ilustra componentes de um dispositivo de computação usado em algumas modalidades. Por exemplo, o sistema 800 pode ser usado na implantação de um dispositivo de cliente, editor, ou leitor na forma de um computador do tipo desktop ou notebook ou um tablet ou um telefone inteligente ou similares que podem executar uma ou mais aplicações. Em algumas modalidades, o sistema 800 é um dispositivo de computação integrado, como um PDA integrado e telefone sem fio. Deveria ser compreendido que os aspectos do sistema descrito no presente documento são aplicáveis a ambos os computadores do tipo desktop tradicional e móvel, bem como computadores servidores e outros sistemas de computador. Por exemplo, a tela sensível ao toque ou dispositivos habilitados por toque (incluídos, mas não limitados a mouse ou trackpad habilitado por toque) podem ser aplicáveis a ambos os dispositivos do tipo móvel e desktop.
[00223] O sistema 800 inclui um processador 805 que processos os dados de acordo com as instruções de um ou mais programas de aplicação 810, e/ou sistema operacional 820. O processador 805 pode ser, ou é incluído, em um sistema-em-um-chip (SoC) junto com um ou mais outros componentes como sensores (por exemplo, magnetômetro, um sensor de luz ambiente, um sensor de proximidade, um acelerômetro, um giroscópio, um sensor de Sistema de Posicionamento Global, sensor de temperatura, sensor de choque) e componentes de conectividade de rede (por exemplo, incluindo Interface de rádio/rede 835).
[00224] O um ou mais programas de aplicação 810 pode ser carregado na memória 815 e executado no ou em associação ao sistema operacional 820. Os exemplos de programas de aplicação incluem programas de discagem de telefone, programas de e-mail, programas de PIM, programas de processamento de palavras, programas de planilha, programas de navegador de Internet, programas de mensagens, programas de jogos, e similares. Outros programas de aplicação podem ser carregados na memória 815 e executados no dispositivo, incluindo várias aplicações de cliente e servidor.
[00225] Pode ser compreendido que a memória 815 pode envolver um ou mais componentes de memória que incluem componentes de memória integrados ou removíveis e que um ou mais dos componentes de memória pode armazenar um sistema operacional. De acordo com várias modalidades, o sistema operacional inclui, sem limitação, SYMBIAN OS da Symbian Ltd., WINDOWS MOBILE OS da Microsoft Corporation, WINDOWS PHONE OS da Microsoft Corporation, WINDOWS da Microsoft Corporation, PALM WEBOS da Hewlett- Packard Company, BLACKBERRY OS da Research In Motion Limited, APPLE IOS da Apple Inc., e GOOGLE ANDROID OS da Google Inc. Outros sistemas operacionais são contemplados.
[00226] O sistema 800 também inclui armazenamento não volátil 825 na memória 815. O armazenamento não volátil 825 pode ser usado para armazenar informações persistentes que não deveriam ser perdidas se o sistema 800 for desativado. Os programas de aplicação 810 podem usar e armazenar informações em armazenamento não volátil 825, como um registro de comandos executados durante a criação ou modificação do conteúdo em uma aplicação de produtividade e similares. Uma aplicação de sincronização também pode ser incluída e residir como parte dos programas de aplicação 810 para interagir com uma aplicação de sincronização correspondente em um sistema de computador hospedeiro (como um servidor) para manter as informações armazenadas em armazenamento não volátil 825 sincronizadas com informações correspondentes armazenadas no sistema de computador hospedeiro.
[00227] O sistema 800 tem uma fonte de alimentação 830, que pode ser implantada como uma ou mais bateria e/ou um coletor de energia (radiação de ambiente, fotovoltaica, piezoelétrica, termoelétrica, eletrostática e similares). A fonte de alimentação 830 pode incluir adicionalmente uma fonte de potência externa, como um adaptador de CA ou uma base de acoplamento energizada que complementa ou recarrega as baterias.
[00228] O sistema 800 também pode incluir uma interface de rádio/rede 835 que realiza a função de transmitir e receber comunicação de radiofrequência. A interface de rádio/rede 835 facilita a conectividade sem fio entre o sistema 800 e o "mundo externo", por meio de uma portadora de comunicações ou provedor de serviço. As transmissões para a e a partir da interface de rádio/rede 835 são conduzidas sob o controle do sistema operacional 820, que dissemina comunicações recebidas pela interface de rádio/rede 835 para programas de aplicação 810 e vice-versa.
[00229] A interface de rádio/rede 835 permite que o sistema 800 se comunique com outros dispositivos de computação, incluindo dispositivos de computação de servidor e outros dispositivos de cliente, através de uma rede.
[00230] Uma interface de áudio 840 pode ser usada para fornecer sinais audíveis e receber sinais audíveis para/a partir do usuário. Por exemplo, a interface de áudio 840 pode ser acoplada ao alto-falante para fornecer saída audível e um microtelefone para receber entrada audível, como para facilitar uma conversação por telefone. Um alto- falante também pode ser incorporado de modo que um usuário possa interagir com o dispositivo de computação por meio de comandos de voz.
[00231] O sistema 800 pode incluir adicionalmente a interface de vídeo 845 que possibilita que uma operação de uma câmera opcional (não mostrada) para gravar imagens estáticas, fluxo de vídeo, e similares. Uma câmera também pode ser usada para capturar gestos usados para interagir com o dispositivo de computação.
[00232] A saída visual pode ser fornecida por meio de um visor 855. O visor 855 pode ser um visor de tela sensível ao toque. Em alguns casos, o visor pode não ser sensível ao toque e elementos de entrada de usuário, como botões, teclas, roda de rolagem, e similares são usados para selecionar itens exibidos como parte de uma interface de usuário gráfica no visor 855.
[00233] Um teclado numérico 860 também pode ser incluído para entrada de usuário. O teclado numérico 860 pode ser um teclado numérico físico ou um teclado numérico macio gerado no visor de tela sensível ao toque 855. Em algumas modalidades, o visor e o teclado numérico são combinados. Em algumas modalidades dois ou mais componentes de entrada/saída (I/O) que incluem a interface de áudio 840 e interface de vídeo 845 podem ser combinados. Os processadores distintos podem ser incluídos com os componentes de I/O ou funcionalidade de processamento pode ser embutida ao processador 805.
[00234] O visor 855 pode apresentar elementos de interface de usuário gráfica ("GUI"), uma interface de usuário de barra de ferramentas contextual preditiva, texto, imagens, vídeos, notificações, botões virtuais, teclados virtuais, dados de mensagem, conteúdo de Internet, situação de dispositivo, tempo, data, dados de calendário, preferências, informações de mapa, informações de localização, e quaisquer outras informações que têm a capacidade de serem apresentadas em uma forma visual. Em algumas modalidades, o visor 855 é um visor de cristal líquido ("LCD") que utiliza qualquer tecnologia de matriz passiva ou ativa e qualquer tecnologia de retroiluminação (se usada). Em algumas modalidades, o visor 855 é um visor de diodo emissor de luz orgânica ("OLED"). Obviamente, outros tipos de visor são contemplados.
[00235] Uma tela sensível ao toque (que pode ser associada ao visor) é um dispositivo de entrada configurado para detectar a presença e localização de um toque. A tela sensível ao toque pode ser uma tela sensível ao toque resistiva, uma tela sensível ao toque capacitiva, uma tela sensível ao toque de onda acústica de superfície, uma tela sensível ao toque infravermelha, uma tela sensível ao toque de imageamento óptico, uma tela sensível ao toque de sinal dispersivo, uma tela sensível ao toque de reconhecimento por pulso acústico, ou pode utilizar qualquer outra tecnologia de tela sensível ao toque. Em algumas modalidades, a tela sensível ao toque é incorporada no topo de um visor como uma camada transparente para possibilitar um usuário a usar um ou mais toques para interagir como objetos ou outras informações apresentadas no visor.
[00236] Em outras modalidades, um teclado sensível ao toque pode ser incorporado em uma superfície do dispositivo de computação que não inclui o visor. Por exemplo, o dispositivo de computação pode ter uma tela sensível ao toque incorporada no topo do visor e um teclado sensível ao toque em uma superfície oposta ao visor.
[00237] Em algumas modalidades, a tela sensível ao toque é uma tela sensível ao toque de toque único. Em outras modalidades, a tela sensível ao toque é uma tela sensível ao toque multitoque. Em algumas modalidades, a tela sensível ao toque é configurada para detectar toques distintos, gestos de toque único, e/ou gesto de multitoque. Os mesmos são chamados coletivamente no presente documento de gestos para conveniência. Diversos gestos serão descritos agora. Deveria ser compreendido que esses gestos são ilustrativos e não se destinam a limitar o escopo das concretizações. Ademais, os gestos descritos, gestos adicionais, e/ou gestos alternativos podem ser implantados em software para uso com a tela sensível ao toque. Como tal, um desenvolvedor pode criar gestos que são específicos a um programa de aplicação.
[00238] Em algumas modalidades, a tela sensível ao toque suporta um gesto toque em que um usuário toca a tela sensível ao toque uma vez sobre um item apresentado no visor. O gesto toque pode ser usado para várias razões que incluem, sem limitação, abrir ou executar qualquer coisa que o usuário tocar. Em algumas modalidades, a tela sensível ao toque suporta um gesto de toque duplo em que um usuário toca a tela sensível ao toque duas vezes em um item apresentado no visor. O toque de gesto duplo pode ser usado por várias razões que incluem, sem limitação, aproximação ou afastamento em estágios, e selecionar uma palavra de texto. Em algumas modalidades, a tela sensível ao toque suporta um gesto de tocar e segurar em que um usuário toca a tela sensível ao toque e mantém o contato por pelo menos um tempo predefinido. O gesto de tocar e segurar pode ser usado por várias razões que incluem, sem limitação, abrir um menu específico por contexto.
[00239] Em algumas modalidades, a tela sensível ao toque suporta um movimento de panorâmica em que um usuário coloca um dedo sobre a tela sensível ao toque e mantém contato com a tela sensível ao toque enquanto move o dedo sobre a tela sensível ao toque. O movimento de panorâmica pode ser usado por várias razões que incluem, sem limitação, o movimento através de telas, imagens, ou menus em uma taxa controlada. Os múltiplos movimentos de panorâmica do dedo também são contemplados. Em algumas modalidades, a tela sensível ao toque suporta um gesto rápido em que um usuário passa um dedo na direção que o usuário deseja que a tela se mova. O gesto rápido pode ser usado por várias razões que incluem, sem limitação, rolagem horizontal ou verticalmente através de menus ou páginas. Em algumas modalidades, a tela sensível ao toque suporta um gesto de pinçar e esticar em que um usuário faz um movimento de pinçamento com dois dedos (por exemplo, dedão e dedo indicador) sobre a tela sensível ao toque ou move os dois dedos em direções opostas. O gesto de pinçar a esticar pode ser usado por várias razões que incluem, sem limitação, aproximando e afastando de um site da web, mapa ou gravura.
[00240] Embora os gestos acima tenham sido descritos com referência ao uso de um ou mais dedos para realizar os gestos, outros apêndices como dedos dos pés, um nariz, queixo, ou objetos como estilos podem ser usados para interagir com a tela sensível ao toque. Como tal, os gestos acima deveriam ser compreendidos como ilustrativos e não interpretados como limitadores de qualquer forma.
[00241] Deveria ser compreendido que qualquer sistema de implantação de dispositivo de computação do tipo móvel ou desktop 800 pode ter mais ou menos recursos ou funcionalidade do que descrito e não é limitado às configurações descritas no presente documento.
[00242] Por exemplo, em algumas modalidades, as interfaces e informações de usuário de vários tipos podem ser exibidas e interagidas em uma superfície de parede na qual o usuário realiza interfaces e informações de vários tipos são projetadas.
[00243] Em várias implantações, dados/informações armazenados por meio do sistema 800 podem incluir caches de dados armazenados localmente no dispositivo ou os dados podem ser armazenados inúmeros meios de armazenamento que podem ser acessados pelo dispositivo por meio da interface de rádio/rede 835 ou por meio de uma conexão com fio entre o dispositivo e um dispositivo de computação separado associado ao dispositivo, por exemplo, um computador servidor em uma rede de computação distribuída, como a Internet. Conforme deveria ser apreciado esses dados/informações podem ser acessados através do dispositivo por meio da interface de rádio 835 ou uma rede de computação distribuída. De forma semelhante, esses dados/informações podem ser prontamente transferidos entre dispositivos de computação para armazenamento e uso de acordo com meios de transferência e armazenamento de dados/informações conhecidos, incluindo correio eletrônico e sistemas de compartilhamento de dados/informações colaborativos.
[00244] Determinados conjuntos de procedimentos apresentados no presente documento podem ser descritos no contexto geral de instruções executáveis por computador, como módulos de programa, executados por um ou mais dispositivos de computação. De modo geral, os módulos de programa incluem rotinas, programas, objetos, componentes, e estruturas de dados que realizam tarefas particulares ou implantam tipos de dados abstratos particulares.
[00245] As modalidades podem ser implantadas como um processo de computador, um sistema de computação, ou como um artigo de fabricação, como um produto de programa de computador ou meio legível por computador. Os determinados métodos e processos descritos no presente documento podem ser incorporados como código e/ou dados, que podem ser armazenados em um ou mais meios legíveis por computador. As determinadas modalidades da invenção contemplam o uso de uma máquina na forma de um sistema de computador no qual um conjunto de instruções, quando executado, pode fazer com que o sistema realize qualquer uma ou mais das metodologias discutidas acima. Determinados produtos de programa de computador podem ser um ou mais meios de armazenamento legíveis por computador legível por um sistema de computador e que codifica um programa de computador das instruções para executar um processo de computador.
[00246] Os meios legíveis por computador podem ser quaisquer meios de armazenamento legíveis por computador disponíveis ou meios de comunicação que podem ser acessados pelo sistema de computador.
[00247] Os meios de comunicação incluem os meios através dos quais um sinal de comunicação que contém, por exemplo, instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados, é transmitido a partir de um sistema para outro sistema. Os meios de comunicação podem incluir meios de transmissão orientada, como cabos e fios (por exemplo, fibra óptica, coaxial e similares), e meios sem fio (transmissão não orientada), como acústico, eletromagnético, RF, micro-ondas e infravermelho, que pode propagar ondas de energia. Instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados podem ser incorporado como um sinal de dados modulado em, por exemplo, um meio sem fio como uma onda portadora ou mecanismo semelhante como o empregado como parte de um conjunto de procedimentos de espectro difundido. O termo "sinal de dados modulado" se refere a um sinal que tem um ou mais de suas características alteradas ou definidas de forma a codificar informações no sinal. A modulação pode ser analógica, digital ou uma técnica de modulação misturada. Os meios de comunicação , particularmente ondas portadoras e outros sinais de propagação que podem conter dados úteis por um sistema de computador, não são incluídos como meios de armazenamento legíveis por computador.
[00248] A título de exemplo, e não limitação, meios de armazenamento legíveis por computador podem incluir meios voláteis e não voláteis, removíveis e não removíveis implantados em qualquer método ou tecnologia para armazenamento de informações como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Por exemplo, um meio de armazenamento legível por computador inclui, sem limitação, memória volátil como memórias de acesso aleatório (RAM, DRAM, SRAM); e memória não volátil como memória flash, várias memórias de somente leitura (ROM, PROM, EPROM, EEPROM), memórias magnéticas e ferromagnéticas/ferroelétricas (MRAM, FeRAM), e dispositivos de armazenamento magnéticos ou ópticos (discos rígidos, fita magnética, CDs, DVDs); ou outros meios conhecidos agora ou desenvolvidos posteriormente que têm a capacidade de armazenar dados/informações legíveis por computador para uso por um sistema de computador. Os "meios de armazenamento legíveis por computador" não consistem em ondas portadoras ou sinais de propagação.
[00249] Além disso, os métodos e processos descritos no presente documento podem ser implantados em módulos de hardware. Por exemplo, os módulos de hardware podem incluir, sem limitação, chips de circuito integrado específico por aplicação (ASIC) chips, arranjos de porta programável em campo (FPGAs), e outros dispositivos de lógica programável conhecidos agora ou desenvolvidos posteriormente. Quando dos módulos de hardware são ativados, os módulos de hardware realizam os métodos e processos incluídos nos módulos de hardware.
[00250] Qualquer referência neste relatório descritivo a "uma modalidade", "uma (1) modalidade", "modalidade exemplificativa", etc., significa que um recurso, estrutura, ou característica particular descrita em conexão com a modalidade é incluída em pelo menos uma modalidade da invenção. As aparências dessas frases em vários lugares no relatório descritivo não estão todas se referindo necessariamente à mesma modalidade. Além disso, quaisquer elementos ou limitações de qualquer invenção ou modalidade do mesmo reveladas no presente documento podem ser combinadas com qualquer e/ou todos os outros elementos ou limitações (individualmente ou em qualquer combinação) ou qualquer outra invenção ou modalidade do mesmo revelada no presente documento, e todas essas combinações são contempladas com o escopo da invenção sem a limitação ao mesmo.
[00251] Deveria ser compreendido que os exemplos e modalidades descritas no presente documento são somente para propósitos ilustrativos e que várias modificações ou alterações em luz dos mesmos serão sugeridas a pessoas versadas na técnica e devem ser incluídas no espírito e escopo deste pedido.

Claims (9)

1. Método caracterizado pelo fato de que compreende as etapas de: recuperar um primeiro documento, o primeiro documento compreendendo blocos de conteúdo recuperados por pelo menos dois endereços diferentes, incluindo pelo menos um primeiro endereço; exibir uma primeira visualização do primeiro documento, incluindo os blocos de conteúdo recuperados por pelo menos dois endereços diferentes; receber uma seleção de um conteúdo identificado do primeiro documento; receber uma solicitação para criar um endereço para o conteúdo identificado do primeiro documento; em resposta ao recebimento da solicitação para criar o endereço, invocar um serviço de endereço para criar um segundo endereço para o conteúdo identificado do primeiro documento e iniciar o armazenamento de uma cópia do conteúdo identificado no segundo endereço; receber uma modificação de uma parte do conteúdo do conteúdo identificado; e armazenar a cópia do conteúdo identificado e a modificação no segundo endereço.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a cópia do conteúdo identificado é considerada um documento mestre do conteúdo identificado, o método compreendendo ainda receber um localizador uniforme de recursos (URL) para o segundo endereço, o URL acessando o documento mestre do conteúdo identificado.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o conteúdo identificado é identificado usando um identificador de localização.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que o identificador de localização compreende pelo menos um dentre um identificador de parágrafo, um identificador de linha, um identificador de caracteres, um intervalo e um identificador de parte.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: invocar um serviço de mesclagem para solicitar a mesclagem de uma modificação no conteúdo identificado do primeiro documento com um documento mestre.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o documento mestre é a cópia do conteúdo identificado localizado no segundo endereço.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que invocar o serviço de endereço para solicitar o segundo endereço para o conteúdo identificado do primeiro documento compreende solicitar o segundo endereço e associar permissões para acessar e modificar o conteúdo identificado.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o recebimento da modificação é anterior à solicitação para criar o endereço.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o recebimento da modificação ocorre após a solicitação para criar o endereço.
BR112015017709-3A 2013-01-30 2014-01-28 Método para interfaces de programação de aplicação para curação de conteúdo BR112015017709B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/753,527 2013-01-30
US13/753,527 US9471556B2 (en) 2013-01-30 2013-01-30 Collaboration using multiple editors or versions of a feature
US13/892,314 2013-05-13
US13/892,314 US9946691B2 (en) 2013-01-30 2013-05-13 Modifying a document with separately addressable content blocks
PCT/US2014/013254 WO2014120625A1 (en) 2013-01-30 2014-01-28 Application programming interfaces for content curation

Publications (2)

Publication Number Publication Date
BR112015017709A2 BR112015017709A2 (pt) 2017-07-11
BR112015017709B1 true BR112015017709B1 (pt) 2022-05-17

Family

ID=50231491

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015017709-3A BR112015017709B1 (pt) 2013-01-30 2014-01-28 Método para interfaces de programação de aplicação para curação de conteúdo

Country Status (11)

Country Link
US (2) US9946691B2 (pt)
EP (1) EP2951733A1 (pt)
JP (1) JP6624932B2 (pt)
KR (1) KR102283274B1 (pt)
CN (1) CN105144153B (pt)
AU (1) AU2014212646B2 (pt)
BR (1) BR112015017709B1 (pt)
CA (1) CA2896804C (pt)
MX (1) MX354431B (pt)
RU (1) RU2666302C2 (pt)
WO (1) WO2014120625A1 (pt)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9773051B2 (en) 2011-11-29 2017-09-26 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US9946691B2 (en) 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
US10621277B2 (en) 2013-03-16 2020-04-14 Transform Sr Brands Llc E-Pub creator
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US10243899B2 (en) * 2013-05-30 2019-03-26 Dropbox, Inc. Content-item relationship messaging system
GB2515192B (en) 2013-06-13 2016-12-14 Box Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9641891B2 (en) 2013-06-17 2017-05-02 Spotify Ab System and method for determining whether to use cached media
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110649B2 (en) 2013-08-01 2018-10-23 Spotify Ab System and method for transitioning from decompressing one compressed media stream to decompressing another media stream
US9817804B2 (en) * 2013-09-12 2017-11-14 Wix.Com Ltd. System for comparison and merging of versions in edited websites and interactive applications
US9529888B2 (en) 2013-09-23 2016-12-27 Spotify Ab System and method for efficiently providing media and associated metadata
US9654532B2 (en) 2013-09-23 2017-05-16 Spotify Ab System and method for sharing file portions between peers with different capabilities
US9063640B2 (en) 2013-10-17 2015-06-23 Spotify Ab System and method for switching between media items in a plurality of sequences of media items
US20150301806A1 (en) * 2014-04-16 2015-10-22 The Mathworks, Inc. Tentative program code in an editor
US10530854B2 (en) * 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US11210455B2 (en) * 2014-06-11 2021-12-28 Red Hat, Inc. Shareable and cross-application non-destructive content processing pipelines
US10275505B2 (en) * 2014-06-24 2019-04-30 Adobe Inc. In-application conversion of file versions using cloud services
US9430141B1 (en) * 2014-07-01 2016-08-30 Amazon Technologies, Inc. Adaptive annotations
US20160026614A1 (en) * 2014-07-24 2016-01-28 KCura Corporation Methods and apparatus for annotating documents
US20160048542A1 (en) * 2014-08-14 2016-02-18 Tamr, Inc. Data curation system with version control for workflow states and provenance
US9535883B2 (en) 2014-10-24 2017-01-03 Dropbox, Inc. Modifying native document comments in a preview
US20160140654A1 (en) * 2014-11-13 2016-05-19 Blue Igloo, Inc. Automated process workflow for the entire mortgage loan and closing process
US9972000B2 (en) 2014-11-25 2018-05-15 International Business Machines Corporation Remote document generation
JP6246146B2 (ja) * 2015-02-22 2017-12-13 株式会社オプティム 電子書籍端末、情報共有方法及び電子書籍端末用プログラム
US10521569B2 (en) * 2015-04-01 2019-12-31 Flexera Software Llc Method and apparatus for automatic license configuration updates
US10282255B2 (en) 2015-07-15 2019-05-07 Microsoft Technology Licensing, Llc Coordinating file synchronization between a sync engine and another application that supports document collaboration
US10169592B2 (en) 2015-10-13 2019-01-01 International Business Machines Corporation Security systems GUI application framework
US9696967B2 (en) * 2015-11-09 2017-07-04 Microsoft Technology Licensing, Llc Generation of an application from data
US10740297B2 (en) 2015-12-17 2020-08-11 Box, Inc. Adaptive tool selection for conflict resolution in a multi-session collaboration setting
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US10193975B2 (en) * 2016-03-10 2019-01-29 Microsoft Technology Licensing, Llc Managing multiple cloud stores through a web service
CA2975477A1 (en) * 2016-08-04 2018-02-04 Lulu Software Holdings System and method for the online editing of pdf documents
US20180191825A1 (en) * 2016-12-30 2018-07-05 Cerner Innovation, Inc. Migrating, editing, and creating content between different collaboration systems
WO2018154976A1 (ja) * 2017-02-27 2018-08-30 アウタボックス株式会社 サーバ装置
US10372830B2 (en) * 2017-05-17 2019-08-06 Adobe Inc. Digital content translation techniques and systems
US20190005007A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Merging client content with cloud services
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
CN109150990B (zh) * 2018-07-27 2019-08-06 掌阅科技股份有限公司 笔记分享方法、设备及计算机存储介质
AU2019210538A1 (en) * 2018-08-01 2020-02-20 Accenture Global Solutions Limited Digital content management platform
US11100053B2 (en) 2018-11-06 2021-08-24 Dropbox, Inc. Technologies for integrating cloud content items across platforms
US11227101B2 (en) * 2019-07-05 2022-01-18 Open Text Sa Ulc System and method for document translation in a format agnostic document viewer
US10788957B1 (en) * 2019-08-22 2020-09-29 Intel Corporation Web page designing with sandboxed custom editors
CN110705209A (zh) * 2019-09-29 2020-01-17 武汉海昌信息技术有限公司 一种在线修改稿件的方法及其系统
US11308261B2 (en) * 2019-11-14 2022-04-19 Bluebeam, Inc. Systems and methods for synchronizing graphical displays across thin client devices
US20210149553A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for real-time resource and capacity allocation in collaborative work systems
US11290531B2 (en) * 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
US11249715B2 (en) * 2020-06-23 2022-02-15 Switchboard Visual Technologies, Inc. Collaborative remote interactive platform
KR102226193B1 (ko) * 2020-07-10 2021-03-11 주식회사 데카몬 콘텐츠 유통 관리 방법 및 그 장치
US11531558B2 (en) 2020-07-21 2022-12-20 Bank Of America Corporation System for hybrid computing application with desktop and web-based components
US11221727B1 (en) * 2020-09-08 2022-01-11 Avaya Management L.P. Visual interlocking block based programming method and system
US11687216B2 (en) 2021-01-14 2023-06-27 Monday.com Ltd. Digital processing systems and methods for dynamically updating documents with data from linked files in collaborative work systems
CN114997117A (zh) * 2021-03-02 2022-09-02 北京字跳网络技术有限公司 文档编辑的方法、装置、终端及非暂时性存储介质
US20230328122A1 (en) * 2022-04-07 2023-10-12 Sigma Computing, Inc. Live editing a workbook with multiple clients
US20230386649A1 (en) * 2022-05-24 2023-11-30 Memoro LLC System and method for multidimensional collection and analysis of transactional data
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4012234B2 (ja) 2002-01-18 2007-11-21 株式会社インターネットディスクロージャー 書類作成システム、書類作成方法及び書類作成プログラム
US7478170B2 (en) 2002-03-05 2009-01-13 Sun Microsystems, Inc. Generic infrastructure for converting documents between formats with merge capabilities
US7228496B2 (en) 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
JP3944014B2 (ja) 2002-07-09 2007-07-11 株式会社東芝 文書編集方法、文書編集システム及び文書処理プログラム
JP2004326176A (ja) 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム
US20050044145A1 (en) 2003-08-20 2005-02-24 International Business Machines Corporation Collaboration method and system
CN1773496A (zh) 2004-11-08 2006-05-17 微软公司 用于文档组装的方法和系统
US7577906B2 (en) 2004-11-08 2009-08-18 Microsoft Corporation Method and system for document assembly
JP5172073B2 (ja) 2004-12-08 2013-03-27 大日本印刷株式会社 編集システム、サーバ及びプログラム
JP2006315801A (ja) 2005-05-12 2006-11-24 Hitachi Omron Terminal Solutions Corp 紙葉類搬送装置
US9098597B2 (en) * 2005-06-03 2015-08-04 Apple Inc. Presenting and managing clipped content
US8054496B1 (en) * 2005-07-13 2011-11-08 Adobe Systems Incorporated Previewing a compound document
US20070067336A1 (en) 2005-09-20 2007-03-22 Innodata Isogen, Inc. Electronic publishing system and method for managing publishing requirements in a neutral format
US20070079236A1 (en) 2005-10-04 2007-04-05 Microsoft Corporation Multi-form design with harmonic composition for dynamically aggregated documents
US7917845B2 (en) * 2005-12-22 2011-03-29 Xerox Corporation System and method for managing dynamic document references
US8042036B1 (en) * 2006-07-20 2011-10-18 Adobe Systems Incorporated Generation of a URL containing a beginning and an ending point of a selected mark-up language document portion
WO2009147704A1 (ja) * 2008-06-04 2009-12-10 株式会社 アテナテレコムラボ テーブルとテーブル項目の平行編集プログラム
WO2009062252A1 (en) 2007-11-15 2009-05-22 Netcat.Biz Pty Limited System and method for transforming documents for publishing electronically
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US7954058B2 (en) * 2007-12-14 2011-05-31 Yahoo! Inc. Sharing of content and hop distance over a social network
US20090235161A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Lossless Web-Based Editor For Complex Documents
US20090249224A1 (en) 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US8275880B2 (en) 2008-05-06 2012-09-25 Microsoft Corporation Media content programming, delivery, and consumption
US20090307762A1 (en) * 2008-06-05 2009-12-10 Chorus Llc System and method to create, save, and display web annotations that are selectively shared within specified online communities
US20100017700A1 (en) * 2008-06-13 2010-01-21 Skribel, Inc. Methods and Systems for Handling Annotations and Using Calculation of Addresses in Tree-Based Structures
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US9158778B2 (en) * 2010-08-27 2015-10-13 Novell, Inc. Techniques for content services
US8843616B2 (en) 2010-09-10 2014-09-23 Intel Corporation Personal cloud computing with session migration
US20120136764A1 (en) * 2010-11-29 2012-05-31 Intuit Inc. On-line tax preparation application screen navigation using url bookmarks
EP2458548A1 (en) 2010-11-30 2012-05-30 France Telecom System and method for implementing dynamic access control rules to personal cloud information
US9424362B2 (en) 2010-12-17 2016-08-23 Microsoft Technology Licensing, Llc Storing and publishing contents of a content store
US20120185759A1 (en) * 2011-01-13 2012-07-19 Helen Balinsky System and method for collaboratively editing a composite document
US9367530B2 (en) 2011-01-21 2016-06-14 Jive Software Distributed document co-authoring and processing
US9098719B2 (en) * 2011-02-03 2015-08-04 Apple Inc. Securing unrusted content for collaborative documents
US20120209907A1 (en) 2011-02-14 2012-08-16 Andrews Anton O A Providing contextual content based on another user
US8635220B2 (en) 2011-04-22 2014-01-21 Iris.Tv, Inc. Digital content curation and distribution system and method
US20130254259A1 (en) * 2012-03-20 2013-09-26 Fast Track Technologies Limited Method and system for publication and sharing of files via the internet
US9946691B2 (en) 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
US9471556B2 (en) 2013-01-30 2016-10-18 Microsoft Technology Licensing, Llc Collaboration using multiple editors or versions of a feature

Also Published As

Publication number Publication date
KR20150111935A (ko) 2015-10-06
US20140215303A1 (en) 2014-07-31
MX2015009822A (es) 2015-10-05
AU2014212646A1 (en) 2015-07-16
BR112015017709A2 (pt) 2017-07-11
RU2015131617A (ru) 2017-02-03
US10162805B2 (en) 2018-12-25
WO2014120625A1 (en) 2014-08-07
EP2951733A1 (en) 2015-12-09
CN105144153B (zh) 2019-05-10
US9946691B2 (en) 2018-04-17
JP6624932B2 (ja) 2019-12-25
CA2896804C (en) 2020-09-08
JP2016511883A (ja) 2016-04-21
KR102283274B1 (ko) 2021-07-28
CA2896804A1 (en) 2014-08-07
US20180196788A1 (en) 2018-07-12
MX354431B (es) 2018-03-05
RU2666302C2 (ru) 2018-09-06
AU2014212646B2 (en) 2019-01-17
CN105144153A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
US10162805B2 (en) Application programming interfaces for content curation
US9996515B2 (en) Collaboration using multiple editors or versions of a feature
US10474740B2 (en) Virtual library providing content accessibility irrespective of content format and type
US9213684B2 (en) System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
CN104769581B (zh) 用于提供经链接的笔记记录的系统和方法
US20180225265A1 (en) Methods and systems for wysiwyg web content generation
US20160364575A1 (en) Document state interface
US20150149410A1 (en) Publishing to a content delivery system
TW201128404A (en) Input content to application via web browser
US9519632B1 (en) Web document annotation service

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]
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 28/01/2014, OBSERVADAS AS CONDICOES LEGAIS