用于内容组织的应用编程接口的制作方法
【专利说明】用于内容组织的应用编程接口
[0001]背景
[0002]随着协作软件改进,协作和文件共享正变得更容易。然而,不是每个设备都能支持共同创作和协作。一些设备没有准备好协作或要求访问和修改数字内容的所有系统运行相同的程序。一人访问、共享和共同创作数字内容的能力可部分取决于该人是否具有识别数字内容的格式的适当软件程序以及以下设备:该设备能执行该程序使得数字内容能被查看、修改并使得这些修改传播并当被另一人访问时(或另一平台上的同一人)反映为数字内容的一部分。
[0003]随着使用不同平台的设备的增长,对于使用运行仅能够访问和显示一格式或仅能够使用特征的较早版本编辑内容的程序的设备来共享、访问和编辑不同格式的内容可能是个挑战。此外,随着新特征被添加到某些应用的新版本,这些新版本必须支持向后兼容性和/或内置可扩展性以支持将来的版本。此外,可能期望组合来自多个文件的内容,其中一些内容可能具有不同的文件格式或版本。
[0004]概述
[0005]提供了应用编程接口和访问服务,其中来自一个或多个资源的内容可作为单个文档被呈现给用户。该文档或视图可包括可通过访问服务来单独寻址和访问的应用(例如,查看器、编辑器)定义的内容块或用户定义的内容块。可通过允许从较大文档框架中创建可寻址内容块并对可寻址内容块进行内容检索的应用编程接口(API)来方便内容组织。
[0006]根据一实施例,通过执行转换和合并服务的系统提供给客户端的文档是体验集合和该文档内的内容。文档或文档中的所选内容块可作为第一文件格式的主文档被存储在可由系统检索的位置,并且当被客户端请求时,该文档可被转换成适当的文件格式并被提供到客户端。所提供的文档还可将在客户端处支持的特征的版本考虑在内。
[0007]所提供的文档可被显示在客户端设备处。服务扩展文档的可达范围(到跨各种平台的设备)并创建针对该文档的适合于客户端设备的体验。文档不需要在每个客户端上看上去完全相同。相反,文档可针对用户的体验并适合设备来被定制。一旦在客户端设备处被显示,用户可本地地修改该文档。修改可包括对于内容以及对于与该文档相关联的数据的修改。例如,可作出注释、评论、文本编辑、图像编辑以及其他修改。用户可接着将修改保存回服务器上。服务器可合并修改,即使在用户修改的文档具有不同的文件格式或包含特征的不同版本的情况下。
[0008]除了将修改合并回到主文档中之外,显示在客户端设备处的文档的全部或所标识的部分还可被保存为另一主文档并由地址服务来分配地址。
[0009]根据一实现,可显示第一文档的第一视图。第一文档可通过从第一地址检索来被提供给客户端并且在需要时被转换成适当的格式或特征版本。在显示在客户端处的文档视图内工作的用户可选择内容子集来进行编辑或其他附加动作。所选部分可以是所标识的内容。所标识的内容可使用诸如段落标识符、行标识符、字符标识符、范围、部分标识符或这些标识符的组合等位置标识符来标识。可调用地址服务来获取所标识的内容的第二地址。该内容子集然后可通过该第二地址来访问并单独修改。
[0010]根据另一实现,可将包括来自至少两个资源的内容的一文档视图提供给客户端。例如,访问服务可以用对来自第一地址的第一内容块以及来自第二地址的第二内容块的请求来调用。第一内容块和第二内容块可以组合。组合的内容块包括可用于创建新地址的位置标识符。
[0011]可提供(或供应)一文档视图,该文档视图包括具有位置标识符的多个内容块以及使用至少两个统一资源定位符(URL)来检索的内容。一个或多个内容块(以及甚至内容块的子集)可被选择以供分配新URL并且可通过该新URL来单独访问。
[0012]提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0013]附图简述
[0014]图1示出了其中可实现某些实施例的操作环境的图示。
[0015]图2示出了根据本发明的一实施例的端点的操作环境。
[0016]图3示出了根据本发明的一实施例的计算环境。
[0017]图4示出了根据本发明的一实施例的用于转换和合并服务的示例过程流。
[0018]图5A-?示出了转换和合并服务的示例场景。
[0019]图6示出了根据本发明的一实施例的由编辑器实现的过程的示图。
[0020]图7示出了根据本发明的一实施例的用于使用多个编辑器在文档上协作的方法的过程流图。
[0021]图8示出了解说在一些实施例中使用的计算设备的各组件的框图。
[0022]图9示出了根据本发明的一实施例的具有可寻址内容块的文档视图的图示。
[0023]图10示出了根据本发明的一实施例的用于内容组织的系统的图示。
[0024]图11示出了创建文档中的内容子集的新地址的示例场景。
[0025]图12示出了用于使用从文档中创建的内容子集来协作的方法的过程流程图。
[0026]图13显示了示出一示例实施例的操作环境的图。
[0027]图14示出了用于访问经组织的内容的方法的过程流程图。
[0028]详细描述
[0029]提供了应用编程接口和访问服务,其中来自一个或多个资源的内容可作为单个文档被呈现给用户。该文档或视图可包括可通过访问服务来单独寻址和访问的应用(例如,查看器、编辑器)定义的内容块或用户定义的内容块。可通过用于创建文档中的可标识区域的地址并且从所创建的地址检索内容的应用编程接口(API)来方便内容组织(以及分发)。
[0030]内容组织是对来自各种源的内容的组织和呈现(或共享)。
[0031]即使特定内容片段可以彼此分开地定位且甚至以彼此不同的格式存储,这些内容片段也可被组合为可被阅读器、编辑器或其他客户端视作内聚片段的单个文档。
[0032]这可通过具有针对所定义的每一个内容块的一地址来实现。访问服务可取得包括一个或多个内容块地址的请求,从该一个或多个内容块地址检索各个内容块,并将组合的内容提供给客户端。在文档视图内,块边界可以在客户端可组合或分解块的程度上可以是动态的。例如,客户端可呈现最初由一个块(具有可通过其访问构成文档的各个元素的单个地址)形成的文档的视图。
[0033]在查看该文档时,用户可能想要捕捉内容的至少一个方面以供在另一文档或应用中使用。在该场景中,用户可请求文档的所标识的部分的地址。该部分可使用位置标识符来被标识为内容块。当创建新地址时,另一客户端(或服务器)可通过从地址位置获取内容来访问具有使用所标识的部分来创建的地址的块。在某些情况下,文档可以从这些多个不同块中创建。在某些情况下,当块被更新时,文档被更新。应理解,单个地址可以指涉及多个存储设备和分布式计算环境的资源。
[0034]电子文档一般被理解为等同于纸件文档的数字化,其中文档编辑器方便对内容的创建、注释、修改以及(近来的)共享和协作。
[0035]修改可包括对于内容以及对于与该文档相关联的数据的修改。例如,可作出评论、文本编辑、图像编辑以及其他修改。文件的修改可包括添加、减少的动作,提供附加的内容、丰富内容的动作,添加评论的动作以及在图像编辑器内修改图像的动作。
[0036]本发明的某些实施例将新特征添加到文档——文档即服务,其中文档提供体验的集合以及它内部的内容。该体验的集合对应于服务的集合,该服务的集合包括转换和合并服务的内容访问服务。转换服务使得文档的内容能针对文档在其上被查看的每个客户端来定制并且合并服务使得对文档的修改能与主文档重新整合。主文档可以是内容、元数据以及对文档作出的修改(包括对内容的修改以及对元数据的修改)的聚集。在一些情况下,主文档可看上去为最高保真度文档。
[0037]由此,当从较低保真度编辑器中作出的修改或使用特征的较早版本的修改被重新整合到主文档中时,服务可执行保真度再融合。
[0038]保真度再融合指取得被特征的较早版本修改的内容——或具有带有较少功能的编辑器的文件格式一一并将内容返回到全功能、最新特征版本。作为一个示例,给定图形特征的两个版本一一具有丰富图表(诸如3D图表)的第一版本和仅能够将图表解释为静态图像的第二版本,在内容在支持第二版本的编辑器中被编辑之后,静态图像可被再融合回3D图表以供在支持第一版本的编辑器中查看/编辑。第一版本可以是特征的将来或更高版本,而第二版本可以是特征的先前或较早版本。在其他情况下,两个版本可在同时被发布,但具有在可用功能方面的有意区别。
[0039]虽然主文档被称为文档,但是主文档可以用合适于跟踪内容和最新编辑特征的任意格式来存储。
[0040]通过这些服务,消费者设备可跨各个平台来访问和修改内容,而无需添加复杂性到客户端侧软件或消费设备。
[0041]为了促进查看文档的灵活性,文档中的块(用户或应用定义的部分)可被单独访问、查看和修改以便单独地使用或合并回到主文档。
[0042]文件格式(针对文档或其他内容以及相关信息)指藉此与文件的内容有关的信息(并且在一些情况下,相关联的信息)被编码并被存储在计算机可读介质上的方式。文件类型可与文件格式互换地使用,但一般指文件格式的分类。例如,文件类型可以是文档文件类型,其包括超文本标记语言(HTML)的文件格式、ADOBE便携文档格式(PDF)、MICROSOFTWORD文档(DOC)、办公开放可扩展标记语言(00XML)格式(DOCX)等。MICROSOFT WORD是微软公司的注册商标;AD0BE PDF是奥多比系统公司的注册商标。
[0043]如本文中使用的,“消费格式”指由特定设备或软件程序支持的文件格式(例如,“支持的文件格式”)。除了是支持的文件格式之外,消费格式还可包括与文件大小、功能等有关的、关于设备(或程序)可如何能够支持各种用户体验的特征。
[0044]返回到文件即服务范例,包括转换和合并服务的内容访问服务可作为云服务体验的一部分来提供。通过这种方式,内容可以按一种格式来被创建并接着以可向内容的消费者提供无缝体验的方式来可跨任意平台访问和编辑。
[0045]图1示出了其中可实现某些实施例的操作环境的图。
[0046]参考图1,操作环境可包括一个或多个云或web服务。本文中描述的内容访问服务100可以是云服务或web服务。
[0047]云服务通常指提供可缩放处理和存储能力的托管服务。云计算通常可包括虚拟化的资源。由云计算呈现的资源本身被提供为服务,其中云计算客户从拥有物理基础设施的第三方提供者租用资源的使用。
[0048]web服务可由云服务(例如,作为大规模分布式计算环境的一部分)提供和/或主控。web服务是支持通过网络的互操作机器到机器交互并使得软件能够连接到其他软件应用的软件系统。
[0049]web服务提供技术标准和协议的集合。例如,web服务提供可由发送和接收消息的软件或硬件代理实现的功能(例如,请求和提供特定服务的计算平台)。应用可经由普遍存在的web协议和数据格式(诸如超文本传输协议(HTTP)、可扩展标记语言(XML)、web服务描述语言(WSDL)、JavaScript对象记法(JSON)以及SOAP (最初是简单对象访问协议的首字母缩略词))来访问web服务。
[0050]代表性状态传输(REST)协议在访问命名资源时是有用的并可被用在本发明的某些实施例中。在本发明的其他实施例中可利用SOAP。在一些情况下,可使用来自微软公司的HTTP上的经由SOAP的文件同步服务(FSSHTTP)。
[0051]可使用通过网络通信的一个或多个物理和/或虚拟服务器来实现内容访问服务100。网络可包括但不限于蜂窝网络(例如无线电话)、点对点拨号连接、卫星网络、因特网、局域网(LAN)、广域网(WAN)、WiFi网络、自组织网络或其组合。这样的网络可被广泛地应用来连接各种类型的网络元素,诸如集线器、桥接器、路由器、交换机,服务器和网关。网络可包括一个或多个连接的网络(例如,多网络环境),包括诸如因特网之类的公共网络,和/或诸如安全企业专用网络之类的专用网络。可以通过一个或多个有线或无线接入网络来提供对网络的接入,如本领域的技术人员将理解的。
[0052]内容访问服务100可包括导入/转换部分102和呈现/转换部分104。来自各个源106的文档可被导入到内容访问服务100。导入/转换部分102可通过减少或移除对将内容变为阅读器需要的特定格式的约束来促进自发布。例如,自发布到书店或其他储存库或商店可在不需要创建者在指定文件格式内工作来实现。通过使创建者更为容易地发布他们的作品,阅读器用户可访问更多的内容。
[0053]“阅读器”指主要出于阅读电子书(ebook)和/或其他电子内容的目的而设计的软件应用和/或电子设备。阅读器通常包括至少一些基本编辑能力,诸如注释、突出显示、书签以及划线。
[0054]示例软件电子书阅读器(或电子阅读器)包括来自谷歌公司的GOOGLE READER应用、来自苹果公司的APPLE IBOOKS应用、来自奥多比系统公司的ADOBE ACROBAT EBOOKREADER应用以及来自微软公司的MICROSOFT READER应用。示例硬件电子书阅读器(或电子阅读器)包括来自亚马逊公司的AMAZON KINDLE品牌电子阅读器以及可从巴诺书店公司得到的BARNES AND NOBLE NOOK品牌电子阅读器平板。电子书是可被在电子书阅读器上读取的具有数字形式的基于文本和/或图像的出版物。存在用于创建和发布内容的各种电子书和其他数字内容格式,诸如电子出版物(ePub)、HTML、roF、打印机命令语言(PCL)以及可扩展标记语言(XML)。
[0055]在一些情况下,(例如,通过导入/转换部分102)导入的文档可被存储或看上去被存储(通过将地址或统一资源标识符存储)为云的一部分(108)。内容访问服务100可解析存储108上的操作或将某些操作委派到另一服务(其可直接或间接地访问存储108)。
[0056]文档文件可从内容访问服务100中导出。在被导出之前,文档文件(诸如被导入的文档之一)可被转换成各种格式以供端点(诸如阅读器110、打印机112、第三方站点114和辅助转换服务116)消费(例如,呈现以供显示、交互、修改或包括打印和进一步转换的附加动作)。
[0057]端点指的是消费者藉此访问服务的装置一一用于交互的入口点。根据各个实施例,提供端点定制,其扩展了可达范围并改变了内容基于设备被消费的方式。
[0058]端点可以是一个或多个消费者设备。
[0059]消费者设备指被用于消费(S卩,用于查看/阅读、编辑或注释)从服务或源检索的或购买的数据或文档的计算设备。消费者设备可以主要是用于阅读电子书的单用途计算设备(通常称为阅读器)或在其上可提供用于阅读电子书或其他电子/数字内容的阅读器或查看器软件的多用途计算设