• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 33
    • 下载费用:30 金币  

    重庆时时彩k线图下载: 用于使用应用引擎来编辑非本原应用中的文件的系统和方法.pdf

    关 键 词:
    用于 使用 应用 引擎 编辑 本原 中的 文件 系统 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201580036224.0

    申请日:

    2015.11.20

    公开号:

    CN106471487A

    公开日:

    2017.03.01

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 著录事项变更IPC(主分类):G06F 17/22变更事项:申请人变更前:谷歌公司变更后:谷歌有限责任公司变更事项:地址变更前:美国加利福尼亚州变更后:美国加利福尼亚州|||实质审查的生效IPC(主分类):G06F 17/22申请日:20151120|||公开
    IPC分类号: G06F17/22; G06F17/24 主分类号: G06F17/22
    申请人: 谷歌公司
    发明人: 纳加拉扬·哈里哈兰; 乔弗里·迈克尔·库尔茨; 瑞安·塔伯恩; 莎拉·库伯; 多米尼克·马林·埃斯皮诺萨; 乔纳森·罗谢勒; 大卫·哈尔平
    地址: 美国加利福尼亚州
    优先权: 2014.11.24 US 14/552,384
    专利代理机构: 中原信达知识产权代理有限责任公司 11219 代理人: 李宝泉;周亚荣
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201580036224.0

    授权公告号:

    ||||||

    法律状态公告日:

    2018.01.23|||2017.12.19|||2017.03.01

    法律状态类型:

    著录事项变更|||实质审查的生效|||公开

    摘要

    本文公开了通过非本原应用使用应用引擎编辑文档的系统和方法。从用户接收使用非本原应用打开文档文件的请求。选择非本原应用的引擎,该引擎被配置为编辑该文件的格式。由该非本原引用引擎接收对该文档的修改,并且使用该文件的格式来将该文档保存至该文件,而无需将该文档转换为不同的格式。

    权利要求书

    1.一种用于编辑处于本原格式的文档的计算机实现的方法,所述方法包括:
    在运行第一应用的处理器处接收来自用户的打开使用第二应用以第一格式创建的文
    件的请求;
    确定所述文件的所述第一格式;
    从与所述第一应用相关联的多个引擎中选择一个引擎,其中,所选择的引擎被配置为
    编辑所述第一格式;
    在所述第一应用中使用所选择的引擎打开所述文件,而无需将所述文件的格式转换为
    与所述第一应用相关联的第二格式;
    在所述第一应用中由所选择的引擎渲染所述文件的内容,以用于在用户设备上向所述
    用户显示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所述文件的编辑;
    以及
    使用所述第一应用以所述第一格式将所编辑的文件保存至数据库。
    2.根据权利要求1所述的方法,所述方法进一步包括向所述用户呈现包括所选择的引
    擎的特征编辑工具的用户界面。
    3.根据权利要求1所述的方法,所述方法进一步包括:
    确定所选择的引擎被配置为对所述文件的特征进行编辑;
    在所述第一应用中由所选择的引擎渲染所述特征以用于在用户设备上向所述用户显
    示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所渲染的特征的
    编辑;以及
    使用所述第一应用以所述第一格式将对所述文件编辑的特征保存至数据库。
    4.根据权利要求1所述的方法,所述方法进一步包括:
    确定所选择的引擎没有被配置为对所述文件的第一特征进行编辑;
    在所述第一应用中由所选择的引擎渲染所述第一特征以用于在用户设备上向所述用
    户显示;
    阻止所述用户对所述第一特征的修改;
    确定所选择的引擎被配置为对所述文件的第二特征进行编辑;
    在所述第一应用中由所选择的引擎渲染所述第二特征以用于在用户设备上向所述用
    户显示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所述第二特征的
    编辑;以及
    使用所述第一应用以所述第一格式将对所述文件编辑的第二特征保存至所述数据库。
    5.根据权利要求4所述的方法,所述方法进一步包括:
    由所选择的引擎将与所述第一特征相对应的数据置于文档对象模型的节点中;
    将所选择的引擎没有被配置为对所述第一特征进行编辑的特性与所述节点进行关联;
    以及
    使用所述第一应用以所述第一格式将对所述文件放置的数据保存至所述数据库。
    6.根据权利要求1所述的方法,所述方法进一步包括:
    确定所选择的引擎没有被配置为渲染所述文件的特征;
    将与所述特征相对应的数据置于文档对象模型的节点中;以及
    将所选择的引擎没有被配置为渲染所述第一特征的特性与所述节点进行关联;
    使用所述第一应用以所述第一格式将对所述文件放置的数据保存至所述数据库。
    7.根据权利要求1所述的方法,其中,所述文件被存储在远离所述用户的服务器上。
    8.根据权利要求1所述的方法,其中,所述选择进一步包括:
    定位数据库中的所述第一格式;
    确定引擎与所述第一格式相关联;以及
    选择相关联的引擎。
    9.根据权利要求1所述的方法,其中,所述确定进一步包括:
    读取所述文件的一部分;
    从所读取的部分中提取文件类型;以及
    基于所提取的文件类型来确定所述文件的所述第一格式。
    10.根据权利要求8所述的方法,进一步包括:
    确定多个引擎与所述文件格式相关联;
    向所述用户呈现多个名称,每个名称与所述多个引擎中的一个相对应;
    从所述用户接收来自所述多个名称的所选择的名称;以及
    选择与所选择的名称相关联的引擎。
    11.根据权利要求1所述的方法,其中,所述保存包括以第三格式保存所述文件。
    12.一种用于以格式创建文档的计算机实现的方法,所述方法包括:
    在运行应用的处理器处接收来自用户的创建文件的请求;
    确定与所述应用相关联的一个或多个引擎被配置为创建文件;
    向所述用户呈现与所述一个或多个引擎相关联的格式的列表;
    从所述用户接收对来自所呈现的列表的格式的选择;
    使用与所述应用相关联并且与所选择的格式相关联的引擎来创建文档;以及
    将使用所述应用以所选择的格式创建的文档保存至数据库。
    13.一种用于编辑处于本原格式的文档的系统,包括处理器,所述处理器被配置为:
    在运行第一应用的同时,接收来自用户的打开使用第二应用以第一格式创建的文件的
    请求;
    确定所述文件的所述第一格式;
    从与所述第一应用相关联的多个引擎中选择一个引擎,其中所选择的引擎被配置为编
    辑所述第一格式;
    在第一应用中使用所选择的引擎来打开所述文件,而无需将所述文件的格式转换为与
    所述第一应用相关联的第二格式;
    在所述第一应用中使用所选择的引擎渲染所述文件的内容,以用于在用户设备上向所
    述用户显示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所述文件的编辑;
    以及
    使用所述第一应用以所述第一格式将所编辑的文件保存至数据库。
    14.根据权利要求13所述的系统,其中,所述处理器进一步被配置为向所述用户呈现包
    括所选择的引擎的特征编辑工具的用户界面。
    15.根据权利要求13所述的系统,其中,所述处理器进一步被配置为:
    确定所选择的引擎被配置为对所述文件的特征进行编辑;
    在所述第一应用中使用所选择的引擎来渲染所述特征以用于在用户设备上向所述用
    户显示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所渲染的特征的
    编辑;以及
    使用所述第一应用以所述第一格式将对所述文件编辑的特征保存至数据库。
    16.根据权利要求13所述的系统,其中,所述处理器进一步被配置为:
    确定所选择的引擎没有被配置为对所述文件的第一特征进行编辑;
    在所述第一应用中使用所选择的引擎来渲染所述第一特征以用于在用户设备上向所
    述用户显示;
    阻止由所述用户对所述第一特征的修改;
    确定所选择的引擎被配置为对所述文件的第二特征进行编辑;
    在所述第一应用中使用所选择的引擎来渲染所述第二特征以用于在用户设备上向所
    述用户显示;
    在所述第一应用中使用所选择的引擎来处理对处于所述第一格式的所述第二特征的
    编辑;以及
    使用所述第一应用以第一格式将对所述文件编辑的第二特征保存至所述数据库。
    17.根据权利要求16所述的系统,其中,所述处理器进一步被配置为:
    使用所选择的引擎将与所述第一特征相对应的数据置于文档对象模型的节点中;
    将所选择的引擎没有被配置为对所述第一特征进行编辑的特性与所述节点进行关联;
    以及
    使用所述第一应用以所述第一格式将对所述文件放置的数据保存至所述数据库。
    18.根据权利要求13所述的系统,其中,所述处理器进一步被配置为:
    确定所选择的引擎没有被配置为渲染所述文件的特征;
    将与所述特征相对应的数据置于文档对象模型的节点中;以及
    将所选择的引擎没有被配置为渲染所述第一特征的特性与所述节点进行关联;
    使用所述第一应用以所述第一格式将对所述文件放置的数据保存至所述数据库。
    19.根据权利要求13所述的系统,其中,所述文件被存储在远离所述用户的服务器上。
    20.根据权利要求13所述的系统,其中,所述处理器进一步被配置为:
    定位数据库中的所述第一格式;
    确定引擎与所述第一格式相关联;以及
    选择相关联的引擎。
    21.根据权利要求13所述的系统,其中,所述处理器进一步被配置为:
    读取所述文件的一部分;
    从所读取的部分中提取文件类型;以及
    基于所提取的文件类型来确定所述文件的所述第一格式。
    22.根据权利要求20所述的系统,其中,所述处理器进一步被配置为:
    确定多个引擎与所述文件格式相关联;
    向所述用户呈现多个名称,每个名称与所述多个引擎中的一个相对应;
    从所述用户接收来自所述多个名称的所选择的名称;以及
    选择与所选择的名称相关联的引擎。
    23.根据权利要求13所述的系统,其中,所述处理器进一步被配置为以第三格式保存所
    述文件。
    24.一种用于以格式创建文档的系统,包括处理器,所述处理器被配置为:
    在运行应用的处理器处接收来自用户的创建文件的请求;
    确定与所述应用相关联的一个或多个引擎被配置为创建文件;
    向所述用户呈现与所述一个或多个引擎相关联的格式的列表;
    从所述用户接收对来自所呈现的列表的格式的选择;
    使用与所述应用相关联并且与所选择的格式相关联的引擎来创建文档;以及
    使用所述应用以所选择的格式将所创建的文档保存至数据库。

    说明书

    用于使用应用引擎来编辑非本原应用中的文件的系统和方法

    相关申请的交叉引用

    本申请要求于2014年11月24日提交的美国申请序列号14/552384的优先权,其通
    过引用全部并入本文。

    技术领域

    大体上,本公开涉及使用与被用来创建文件的应用不同的应用来访问该文件。

    背景技术

    应用通常具有其自己的相关联的本原(native)文件格式,所述格式指定了该应用
    支持的特征的编码。应用通常将仅加载被该应用的本原格式所支持的那些特征。不被应用
    的本原格式所支持的任何特征都将在加载时遇到问题或者将不正确地被加载。因此,使用
    一种软件应用对利用不同软件应用所创建的文件进行编辑和保存经常在该文件和文件格
    式可能具有并不被该应用所支持的特征时致使数据损失。能够对此进行处理的一种方式是
    应用将会把文件转换为另一种格式—其本原格式。当应用保存文件时,仅所加载的特征被
    保存,并且因此任何不被支持的特征都不被保存。这种数据损失在文件由多个用户编辑或
    者由一个用户利用多个应用所编辑时会造成问题。

    发明内容

    因此,本文描述了用于使用具有多个引擎的非本原应用来提供文件访问和使用的
    系统和方法。在某些方面,本文所描述的系统和方法涉及使用非本原应用对处于本原格式
    的文档进行编辑。运行第一应用的处理器接收来自用户的打开使用第二应用以第一格式创
    建的文件的请求。该处理器可以确定该文件的第一格式。该处理器可以从与该第一应用相
    关联的多个引擎中选择一个引擎,其中所选择的引擎被配置为编辑该第一格式。该处理器
    可以使用第一应用中所选择的引擎来打开该文件,而无需将该文件的格式转换为与该第一
    应用相关联的第二格式。该处理器可以使得该第一应用中所选择的引擎渲染该文件的内容
    以用于在用户设备上向用户进行显示。该处理器可以使得该第一应用中所选择的引擎处理
    对处于第一格式的该文件的编辑。然后,该处理器可以使用该第一应用以第一格式将所编
    辑的文件保存至数据库。在一些实施方式中,该处理器可以向用户呈现包括所选择的引擎
    的特征编辑工具的用户界面。

    在一些实施方式中,该处理器可以确定所选择的引擎被配置为对该文件的特征进
    行编辑。然后,该处理器可以使得该第一应用中的所选择引擎渲染该特征以用于在用户设
    备上向用户进行显示。然后,该处理器可以使得该第一应用中的所选择的引擎处理对处于
    第一格式的所渲染特征的编辑。然后,该处理器可以使用该第一应用以第一格式将对该文
    件编辑的特征保存至数据库。

    在一些实施方式中,该处理器可以确定所选择引擎没有被配置为对该文件的第一
    特征进行编辑。然后,该处理器可以使得该第一应用中的所选择的引擎渲染该第一特征以
    用于在用户设备上向用户进行显示。然后,该处理器可以阻止用户对该第一特征进行修改。
    然后,该处理器可以确定所选择的引擎被配置为对该文件的第二特征进行编辑。然后,该处
    理器可以使得该第一应用中的所选择的引擎渲染该第二特征以用于在用户设备上向用户
    进行显示。然后,该处理器可以使得该第一应用中的所选择的引擎处理对处于第一格式的
    该第二特征的编辑。然后,该处理器可以使用该第一应用以第一格式将对该文件的所编辑
    的第二特征保存至数据库。

    在一些实施方式中,该处理器可以使得所选择的引擎将与该第一特征相对应的数
    据置于文档对象模型的节点中,以及将所选择的引擎没有被配置为对该第一特征进行编辑
    的特性与该节点进行关联。然后,该处理器可以使用该第一应用以第一格式将对所述文件
    放置的数据保存至数据库。

    在一些实施方式中,该处理器可以确定所选择的引擎没有被配置为渲染该文件的
    特征。然后,该处理器可以将与该特征相对应的数据置于文档对象模型的节点中,以及将所
    选择的引擎没有被配置为渲染该第一特征的特性与该节点进行关联。然后,该处理器可以
    使用该第一应用以第一格式将对所述文件放置的数据保存至数据库。

    在一些实施方式中,该文件可以被存储在远离用户的服务器上。在一些实施方式
    中,为了选择引擎,该处理器可以定位该数据库中的第一格式,确定该引擎与该第一格式相
    关联,以及选择相关联的引擎。在一些实施方式中,为了确定该文件的第一格式,该处理器
    可以读取该文件的一部分,从所读取的部分中提取文件类型,以及基于所提取的文件类型
    来确定该文件的第一格式。

    在一些实施方式中,该处理器可以确定多个引擎与该文件格式相关联。然后,该处
    理器可以向用户渲染多个名称,每个名称与多个引擎中的一个相对应。然后,该处理器可以
    从用户接收来自该多个名称中的所选择的名称。然后,该处理器可以选择与所选择的名称
    相关联的引擎。在一些实施方式中,该处理器可以以第三格式保存该文件。

    附图说明

    本公开的包括其属性及其各种优点的以上和其它特征根据结合附图来对具体实
    施方式的考虑将变得更加显而易见,其中:

    图1是根据说明性实施方式的用户设备的框图;

    图2描绘了根据说明性实施方式的、运行被配置来编辑文字处理文档的引擎的应
    用的用户界面;

    图3描绘了根据说明性实施方式的、运行被配置来编辑电子表格文档的引擎的应
    用的用户界面;

    图4是根据说明性实施例方式的、经由网络与服务器进行通信的用户设备的框图;

    图5是根据说明性实施方式的、包含引擎与文件格式的关联的数据库的框图;

    图6是根据说明性实施方式的文档对象模型的框图;

    图7是根据说明性实施方式的、应用通过其启动被配置来编辑所请求的文件的格
    式的方法的流程图;

    图8A-8B描绘了根据说明性实施方式的、引擎通过其从文件读取数据、将数据置于
    文档对象模型的节点之中、并且处理对文档作出的编辑的方法的流程图;

    图9是根据说明性实施方式的、引擎通过其以用户所指定的格式创建文件的方法
    的流程图;

    图10是根据说明性实施方式的云计算服务的框图;以及

    图11是根据说明性实施方式的、用于执行本文所描述的任何过程的计算设备的框
    图。

    具体实施方式

    为了提供对本公开的全面理解,现在将对某些说明性实施方式进行描述,包括用
    于以本原格式对文件进行编辑的系统。具体的,描述了一种系统,其中能够利用非本原应用
    或者创建文件的应用以外的应用来以本原格式对文件进行编辑。然而,本领域技术人员将
    要理解的是,本文所描述的系统和方法可以被调整和修改从而适合于正在设法解决的应
    用,以及本文所描述的系统和方法可以在其它合适的应用中被采用,以及这样的其它添加
    和修改将并不背离其范围。一般地,本文所描述的计算机化的系统可以包括一个或多个组
    件,其包括一个或多个处理设备,诸如计算机、微处理器、逻辑设备,或者利用硬件、固件、和
    软件进行配置以实现本文所描述的一种或多种计算机化的方法的其它设备或处理器。

    图1图示了可以被用来以本原格式来对文档进行编辑的用户设备100。用户设备
    100可以包括:处理器105、显示器110、用户输入设备115,以及包含一个或多个文件125—例
    如文件125a-125n—的一个或多个数据库。用户设备100可以包括一个或多个应用130,例如
    应用130a-130n。处理器可以包括一个或多个计算机、微处理器、逻辑设备、服务器,或者利
    用硬件、固件、和软件进行配置来实施本文所描述的计算机化的技术中的一个或多个的其
    它设备。处理器和处理设备还可以包括用于存储输入、输出、以及当前所处理的数据的一个
    或多个存储器设备。每个用户设备100可以包括诸如个人计算机、膝上型计算机、平板计算
    机、智能电话、个人数字助理的设备,或者任何其它合适的类型的计算机或通信设备。

    示例文件125可以具有文件格式,其确定该文件的信息被编码为存储器中的位的
    方式,并且进一步确定该信息从存储器被解码并呈现给用户的方式。一般来讲,文件具有基
    于被用来创建该文件的应用的文件格式,诸如该应用的本原文件格式。文件格式可以是简
    单或复杂的。简单文件格式是美国信息交换标准代码(ASCII),其对纯文本和一些简单字符
    进行编码。复杂文件的示例是被用来在文字处理文档中对信息进行编码的格式。例如,文字
    处理格式可以指定对于以下的编码方法:字体、字体大小、字体样式、字体颜色、制表符、段
    落、项目符号列表、带编号列表、表格、文本环绕、文本对齐、文本高亮、行距、分页符、页面大
    小、边距、列、页眉、页脚、脚注、尾注、交叉引用、内容表格、索引,以及诸如图像和视频的嵌
    入的内容。电子表格格式也是复杂的并且可以规定对于以下的编码方法:单元格内容、公式
    运算、字体、字体大小、字体样式、字体颜色、单元格边框、单元格颜色、和图表。演示格式也
    是复杂的并且可以规定对于以下的编码方法:字体、字体大小、字体样式、字体颜色、文本
    框、形状、幻灯片大小、幻灯片内的项目的位置和布置、幻灯片排序、幻灯片切换、动画,以及
    诸如图像、视频、和电子表格的嵌入的内容。例如,文字处理格式、电子表格格式、和演示格
    式全部都将包含ASCII格式来对文本进行编码,但是可以使用特定于格式的附加编码方法
    来对文本以外的特征进行编码。包含文档的文件可以根据适合于该文档的格式进行编码。
    文件可以包含文字处理文档、电子表格文档、演示文档、绘图文档、数据库文档、超文本标记
    语言(HTML)文档、可扩展标记语言(XML)文档、图像文档、文本文档,或者包含用户数据的任
    何其它文档。在打开并编辑文件时,应用利用文件的格式来对存储器中所存储的位进行解
    码,并且将所解码的信息呈现给用户。

    在一个示例中,应用130可以是浏览器扩展,其是被设计为对浏览器应用的功能进
    行补充的应用。应用130包含多个引擎135,其中每一个引擎被配置为对一个或多个文件格
    式进行编辑。用户设备100的用户可以通过用户设备115提供输入以供应用130打开文件
    125a。在一个示例中,输入可以是用户将文件图标拖放(drag and drop)至浏览器窗口之
    中。在另一个示例中,用户可以打开附加至电子邮件的文件,所述电子邮件通过使用浏览器
    与基于web的电子邮件服务通信来访问。在另一个示例中,用户可以打开附加至电子邮件的
    文件,所述电子邮件使用桌面电子邮件应用来访问。在另一个示例中,用户可以使用浏览器
    来导航至基于web的协同文档托管服务,并且打开托管于该服务上的文件。在另一个示例
    中,用户可以与应用的用户界面进行交互以使用该应用打开文件。这些示例是说明性的,并
    且用户可以提供不同类型的输入来打开文件,而并不背离本发明的范围。无论输入的形式
    如何,在接收到输入时,应用130可以使用若干方法中的一个来确定文件125a的格式。在一
    个示例中,应用130可以基于文件125a的文件扩展名来确定文件格式。在另一个示例中,应
    用130可以读取文件125a的头部信息的一部分。然后,应用130可以对文件125a的头部的已
    读取部分进行解释以确定文件125a的格式。应用130可以基于指示该头部中所包含的文件
    类型的字符串来执行该确定。文件类型的示例是多用途互联网邮件扩展(MIME)类型?;?br />对文件格式的确定,应用130可以选择被配置为对文件125a的所确定格式进行编辑的引擎
    135a。被配置来编辑格式的引擎被配置为从存储器读取数据以及向存储器写入数据,在该
    存储器中根据该格式来对数据进行编码。被配置来编辑格式的引擎不需要完全支持该格
    式;因此,该引擎可以被配置为仅读取根据该格式进行编码的文件的子集。此外,被配置来
    编辑格式的引擎可以被配置为仅使用该格式的编码方法的子集来写入数据。然后,应用130
    可以启动所选择的引擎135a,该引擎135打开文件125a、显示文件125a、并且允许对文件
    125a进行编辑。

    当引擎135a打开文件125a中所包含的文档时,引擎135a根据该文件的本原格式来
    对文件125a的数据进行解码,并且渲染所解码数据中所包含的文档以用于向用户进行显
    示。渲染该文档可以包括:将文件125a中的数据变换为二维图像以用于经由显示器110在用
    户设备100上进行显示。用户可以查看所渲染的文档并且可以经由用户输入设备115来提供
    用户输入以修改该文档。对文档的修改可以包括以下中的一个或多个:文本录入或删除、文
    本样式改变、图像和其它媒体的插入、以及其它文档编辑操作。用户可以将所渲染的文档保
    存至文件125a,例如,引擎135a可以根据文件125a的本原格式来将文档保存至文件125a。通
    过以本原格式进行保存,引擎135a防止由于格式转换所导致的数据损失。引擎135a可以在
    没有来自用户的输入的情况下以预定间隔将文档保存至文件125a。这样的自动保存减少了
    由于用户设备100或应用130的故障所导致的数据损失。如果用户设备100或应用130发生故
    障,则应用130可以经由显示器110向用户提供崩?;指炊曰?。这样的崩?;指炊曰翱梢裕喊?br />括故障概述、在故障之前的页面位置处最新近编辑的文档的视图、以及包括先前打开的调
    色板和对话的状态信息,从而允许用户指示用于对由该故障引起的任何冲突进行协调
    (reconcile)的动作过程。通过使用适当的引擎135a来编辑文件125a,应用130为用户提供
    了文档编辑能力,而不会由于格式之间的转换而损失数据。

    应用130可以向用户提供文件管理能力。当引擎135a被启动并且编辑文档时,引擎
    135a可以接收用户输入以将文档保存至数据库120中的不同文件。在一个示例中,引擎135a
    可以以与原始文件125a相同的格式来保存文件,但是保存在不同文件位置,诸如保存至文
    件125b。在另一个示例中,引擎135a可以接收用于对文件125a进行重命名的用户输入。在该
    示例中,引擎135a将会改变文件125a的文件名。在该示例中,文件125a的内容可以保持不
    变,或者它们可以被更新以反映与文件125a相关联的文档中的更新。在一些示例中,应用
    130接收用以对文件125a进行重命名的用户输入并且改变文件125a的文件名。在另一个示
    例中,引擎135a可以接收用户输入已将经修改的文件125a附加至电子邮件。在该示例中,经
    修改的文件125a被附加至其的电子邮件可以是对最初创建该文档的另一个用户的回复。以
    这种方式,接收用户能够使用应用130来打开来自发送用户的电子邮件中所接收到的文档,
    对所接收的文档将进行修改,并且将经修改的文档发送回发送用户,即使该接收用户并不
    具有由发送用户使用来最初创建该文档的应用。替选地,经修改的文件125a被附加至其的
    电子邮件可以不是回复电子邮件,而可以是诸如向不同用户的新电子邮件。在该示例中,经
    修改的文件125a可以在用户设备100上本地创建以及也在服务器设备420上创建。该文件管
    理能力可以与本文所描述的其它能力进行组合。通过提供重命名并保存新文件的能力,应
    用130允许用户对用户设备100上的文件进行管理。

    应用130可以向用户提供文件格式转换能力。当引擎135a被启动并且编辑文档时,
    引擎135a可以接收用户输入以在数据库120中将文档保存为不同格式。在一个示例中,引擎
    135a可以将文件以不同于原始文件125a的格式进行保存,并且将其保存至不同的文件位
    置,诸如保存至文件125b。该文件格式转换能力可以与本文所描述的其它能力进行组合。通
    过提供保存为不同格式的能力,应用130允许用户将文件从一种格式转换为另一种格式。

    在一些示例中,将多个引擎连锁(chain)以将文件从一种格式转换为另一种格式。
    在这些示例中,应用130使得两个或更多引擎135按顺序对文件进行转换从而达到所期望的
    格式。例如,引擎135a可以将文件格式从125a的格式转换为125b的格式,并且然后诸如135b
    的另一个引擎可以启动、打开文件125b并且将其中的数据保存为处于不同格式的不同的文
    件125c。这种连锁必要时可以多次重复以导致所期望格式的文件。

    应用130可以向用户提供文件创建能力。在一个示例中,应用130可以接收用以创
    建文件的用户输入,并且在接收到该输入后向用户呈现一个或多个文件格式。所呈现的文
    件格式可以是与应用130的引擎135相关联的格式。应用130可以接收用户对所呈现文件格
    式中的一个的选择,并且启动与所选择文件格式相关联的引擎135a。在适当的引擎135a被
    启动的情况下,用户然后可以修改文档并且将该文档保存为文件125a。用户可以在生成文
    档时选择以给定格式创建文件以发送至其它用户。在这种情况下,用户可以选择将与接收
    者可能用来打开并编辑文件的应用兼容的格式。该文件创建能力可以与本文所描述的其它
    能力相结合。以这种方式,该应用向用户提供了以给定格式创建文件的能力。

    应用130可以接收请求以打开被标定(designate)为只读的文件125a。这样的只读
    标定可以指示文件125a可以被打开并查看,但是文件125a不可以被修改。在一个示例中,应
    用130可以选择本文所描述的适当的引擎135a,并且应用130可以以只读模式启动所选择的
    引擎135a。在只读模式中,引擎135a可以打开文件125a并且渲染其内容以用于在显示器110
    上进行显示,但是可以防止文件125a被修改。引擎135a可以允许用户如本文所描述的来对
    所渲染的文档进行编辑,但是可以将经更新的文档保存为不同的文件125b。应用130可以在
    不同文件位置中并且以不同格式来创建、打开、本原地编辑、以及保存文档。该只读能力可
    以与本文所描述的其它能力相结合。如本文将要描述的,通过提供其中每个引擎被配置为
    编辑一个或多个文件格式的多个引擎135,应用130能够本原地对多个文件格式进行编辑。

    图2图示了应用130的用户界面200的示例。在该示例中,文件125a包含文字处理文
    档205,并且引擎135a被配置来对文件125a的格式进行编辑。用户界面200可以在浏览器210
    中提供。浏览器210可以具有一个或多个选项卡215,从而允许从多个打开的文档或网页中
    选择待显示的文档205。界面200可以包括图标220以指示使用中的引擎。文档205的文本225
    被显示在用户界面200的中央。在一些示例中,文本225并不处于中央而是在用户界面200的
    不同区域。在一个示例中,与文本225相关联的特征中的一些或全部可能不受引擎135a支
    持。在该示例中,不被支持的特征可能没有被正确显示,或者可能根本不被显示。然而,引擎
    135a将在保存文件125a时保留不被支持的特征,以使得该特征仍然将能够对可能支持该特
    征的另一个应用或引擎可用。在该示例中,引擎135a将不允许对不被支持的特征进行编辑
    以确保这样的特征被保留。

    用户界面200包含用于对文档205的特征进行编辑的工具230。例如,文本225以其
    进行显示的字体可以利用工具230a来选择。字体大小可以利用工具230b来选择。字体样式
    可以利用工具230c-230e来选择。字体颜色可以利用工具230f来选择。文本对齐可以利用工
    具230g-230i来选择。带编号的列表可以利用工具230j来创建和编辑。项目符号列表可以利
    用工具230k来创建和编辑。文档可以利用打印工具235来打印。用户对文档所作的最新近的
    改变可以使用撤销工具240来撤回(reverse)。这些和其它工具也可以是在菜单245中可用
    的。文档的名称可以在文档标题250中被显示。应用130在使用引擎135a时所显示的特征编
    辑工具230可以仅是与引擎135a所支持的文件格式的特征相对应的那些工具。因此,应用
    130可以允许编辑比文件125a中所包含的全部特征更少的特征。另一个引擎135b可以被配
    置为对相似类型的文档的不同文件格式进行编辑。在使用引擎135b时,应用130可以在用户
    界面210中显示不同于应用130在使用引擎135a时所显示的工具集合。用户界面200出于说
    明性目的而被示出的,但是该界面的其它配置可以提供相似的功能。通过为用户提供与引
    擎135a被配置来对其进行编辑的文件格式的特征相对应的特征编辑工具230,应用130允许
    仅对在使用中的引擎所支持的特征进行编辑。

    图3图示了应用130的用户界面300的示例。在该示例中,文件125a包含电子表格文
    档305,并且引擎135a被配置为对文件125a的格式进行编辑。用户界面300可以在浏览器310
    中被提供。浏览器310可以具有一个或多个选项卡315,从而允许对电子表格305的选择从多
    个打开的文档或网页来显示。用户界面300可以包括图标320以指示使用中的引擎。电子表
    格305中的单元格325被显示在用户界面300的中央。数据可以被包含在某些单元格355中。
    公式条360可以显示单元格中所包含的公式。例如,所选择的单元格365包含公式“=B9-
    C9”。电子表格305中的数据可以利用图表370来可视化。图表370可以包含对单元格355中所
    包含的数据的引用。图表370可以在单元格355中的数据被更新的情况下使用该引用来被自
    动更新。在一个示例中,与图表370相关联的特征中的一些或全部可能不受引擎135a支持。
    在该示例中,不被支持的特征可能不会被正确显示,或者可能根本不被显示。然而,引擎
    135a将在保存文件125a时保留不被支持的特征,以使得该特征仍然将能够对可以支持该特
    征的另一个应用或引擎可用。在该示例中,引擎135a将不允许对不被支持的特征进行编辑
    以确保这样的特征被保留。

    用户界面300包含用于编辑电子表格305的特征的工具330。例如,单元格文本355a
    以其进行显示的字体可以利用工具330a来选择。字体大小可以利用工具330b来选择。字体
    样式可以利用工具330c-330e来选择。字体颜色可以利用工具330f来选择。单元格背景颜色
    可以利用工具330g来选择。文本对齐可以利用工具330h来选择。用户对文档所作的最新近
    的改变可以使用撤销工具340来撤回。这些和其它工具也可以是在菜单345中可用的。应用
    130在使用引擎135a时所显示的特征编辑工具330可以仅是与引擎135a所支持的文件格式
    的特征相对应的那些工具。因此,应用130可以允许编辑比文件125a中所包含的全部特征更
    少的特征。另一个引擎135b可以被配置为对相似类型的文档的不同文件格式进行编辑。在
    使用引擎135b时,应用130可以在用户界面310中显示不同于应用130在使用引擎135a时所
    显示的工具集合。用户界面300是出于说明的目的而被示出的,但是该界面的其它配置可以
    提供相似的功能。通过为用户提供与引擎135a被配置来对其进行编辑的文件格式的特征相
    对应的特征编辑工具330,应用130允许仅对在使用中的引擎所支持的特征进行编辑。

    应用130可以支持对诸如图3所示的文字处理文档以及诸如图4所示的电子表格文
    档以外的文档类型进行编辑。应用130可以支持对以下的编辑:演示文档、绘图文档、数据库
    文档、HTML文档、XML文档、图像文档、文本文档、或者包含用户数据的任何其它文档。应用
    130可以提供引擎135,其被配置为对与这样的文档类型相关联的文件格式中的任何或全部
    进行编辑。

    在离线布置中,引擎135a可以在没有与除用户设备100外的设备进行通信的情况
    下对文档125a进行编辑。在在线布置中,引擎135a可以在用户设备100与其它设备或服务器
    进行通信的同时对文档125a进行编辑。应用130和引擎135可以根据离线布置和在线布置二
    者来进行操作。其中的一个示例中,应用130可以在网络连接不可用时根据离线布置进行操
    作,并且可以在网络连接变为可用时切换至在线布置。例如,在离线和在线布置之间进行切
    换的能力为移动设备的用户提供了对文档更大程度的访问。

    图4图示了可以使得用户设备401能够经由网络415来与服务器420进行通信的系
    统400。用户设备401可以具有网络接口410,其被配置来充当网络415与用户设备401之间的
    中介。服务器420可以具有网络接口430,其被配置来充当网络415与服务器420之间的中介。
    类似于401的多个用户设备可以以用户设备401与服务器420通信的相同方式与服务器420
    进行通信。为了清楚,图4中仅示出了一个用户设备410。用户设备100和401可以执行类似功
    能并且可以具有类似特征。例如,用户设备401的特征406、41、416、421、426a-426n、431、和
    436a-436n可以执行与用户设备100的特征105、110、115、120、125a-125n、130、和135a-135n
    类似的功能。

    在一个实施方式中,服务器420可以通过托管文件并且使得用户能够存储、检索、
    并修改数据来充当基于web的存储系统。用户可以对位于服务器420上的文件440进行编辑。
    应用431可以通过经由网络415以及网络接口410和430与服务器420进行通信来读取和访问
    文件440。应用431可以将文件440保存至位于服务器420上的数据库435。为了诸如在存在慢
    速或时断时续的网络连接415的情况下改进效能,应用431可选地可以将文件125a保持在用
    户设备401上以作为文件440的本地副本。以这种方式,如果网络连接415发生中断,使得用
    户设备401进入到离线状态,则应用431可以继续从用户接收输入并且相应地更新文件
    125a,并且在网络连接415被重新建立并且用户设备401返回在线状态时,应用431可以将这
    样的更新传送至服务器420。系统400可以允许用户使用应用431来编辑位于服务器420上的
    文件440。

    在另一个实施方式中,服务器420可以通过传送电子邮件并且存储附加至所传送
    电子邮件的文件来充当电子邮件服务器。在另一个实施方式中,该服务器可以充当本文所
    描述的基于web的存储系统和电子邮件服务器二者。

    在一个布置中,系统400可以使得存储在用户设备401上的文件426a能够经由网络
    415来与存储在服务器420上的不同文件440进行同步。用户设备401可以包含同步客户端
    405。服务器420上的文件440可以由另一个用户、或者由相同用户在不同用户设备上进行编
    辑。在这种情形中,远程文件440诸如可以由另一个用户进行修改。该服务器可以将与经修
    改文件440相对应的改变传送至用户设备401。该同步客户端可以基于所传送的变化来更新
    文件426a。以这种方式,用户设备401上的文件426a可以与服务器420上的远程文件440同
    步。在该布置中,应用431可以通过与数据库421进行通信来读取和访问文件426a。应用431
    可以将对文件426a的改变保存至数据库421。同步客户端405可以检测对用户设备401上的
    文件426a所作出的改变并且将该改变经由网络415传送至服务器420。同步客户端405可以
    在应用431编辑文件416a的同时进行操作。这样的操作可以包括:向服务器420传送对文件
    426a的本地改变;从服务器420接收改变并且更新本地文件426a;或者这二者。该布置可以
    与本文所描述的其它布置和实施方式组合。通过将用户设备401上的文件426a与服务器420
    上的文件440进行同步,该用户可以在多个设备上对文件进行编辑并且与其它用户协同工
    作。

    在一些示例中,应用431可以位于服务器420上并且经由网络415来与用户设备进
    行通信。应用431可以打开并编辑存储在本地设备401上的文件426a或者存储在服务器420
    上的文件440。应用431可以使用服务器的处理器425来渲染文件426或文件440的内容以用
    于经由显示器411在用户设备401上进行显示,并且可以将该渲染经由网络415传送至用户
    设备401。通过使用网络415在服务器420与用户设备401之间进行通信,该系统使得用户无
    论应用431是否被安装在用户设备401上都能够对文档进行编辑。

    可以对于文件426a、文件440、或者这二者来提供访问控制。服务器420或者在其上
    运行的应用可以提供对存储于服务器420上的文件440的访问控制。在诸如同步客户端405
    的用户设备401上运行的应用可以提供对用户设备401上所存储的文件426a的访问控制。替
    选地,服务器420或者在其上运行的应用可以通过经由网络415进行通信来提供对存储在本
    地设备401上的文件426a的访问控制。对文件的访问控制可以包括用户在打开、编辑、或保
    存该文件之前进行认证的要求。对文件426a或文件440的访问控制可以进一步包括经由网
    络415来与除服务器420外的服务器—诸如认证服务器—进行通信。用户可以通过经由用户
    界面输入用户名和密码(或者提供其它识别信息)来进行认证,使得相同用户设备可以由不
    同用户在不同时间使用。用户可以被提供有对文件的不同水平的访问。例如,用户可以具有
    对文件的只读访问,其中用户被允许打开并查看文件但是不被允许编辑或保存文件。替选
    地,用户可以具有对文件的读写访问,其中用户被允许打开、编辑、以及保存文件。用户可以
    被标定为文件的所有者,并且可以向其它用户授予对该文件的访问。用户可以被授予个体
    方式的访问,或者用户群组可以被授权访问。与文件相关联的访问控制列表可以确定尝试
    访问文件的用户的访问权。通过提供对文件的访问控制,系统实现了增强的安全性。

    图5图示了包含条目505的数据库500,所述条目505将文件格式510的名称与被配
    置来编辑该格式的引擎515的名称进行关联。数据库500可以位于用户设备100或服务器420
    上。条目505还可以包含与格式名称510相关联的一个或多个文件类型515。文件类型的示例
    是MIME类型。条目505可以包含一个格式名称510以及多个相关联的引擎名称520。替选地,
    条目505可以包含多个格式名称510以及一个相关联的引擎名称520。替选地,条目505可以
    包含多个格式名称510以及多个相关联的引擎名称520。在一个示例中,数据库500可以通过
    格式名称进行查询。在该示例中,查询结果可以包括:包含所查询格式名称的所有条目。在
    另一个示例中,数据库500可以通过文件类型进行查询。在该示例中,查询结果可以包括:包
    含所查询文件类型的所有条目。在第三示例中,数据库500可以通过引擎名称进行查询。在
    该示例中,查询结果可以包括:包含所查询引擎名称的所有条目。因此,这些条目505提供了
    文件格式与编辑引擎的关联。通过将文件格式与编辑引擎进行关联,数据库500使得能够对
    被配置为对文件125a的格式进行编辑的引擎135a进行选择。

    图6示意性地图示了引擎135a在查看或编辑文档文件时所使用的文档对象模型
    (DOM)600。文档文件可以指代包含以下的文件:文字处理文档、电子表格文档、演示文档、绘
    图文档、数据库文档、HTML文档、XML文档、图像文档、文本文档、或者包含用户数据的任何其
    它文档。在DOM中,文档605的对象被布置为层次结构中的节点。对象可以是文件的特征。,节
    点可以具有层次结构中在其下方的一个或多个节点,并且一个节点可以具有层次结构中在
    其上方的一个或多个节点。例如,节点615具有其下方的节点620以及其上方的节点610。类
    似节点可以在层次结构中处于相同层级。例如,节点630、640、和650可以处于层次结构中的
    相同层级。在一个示例中,模型视图控制器(MVC)实现被用来创建并编辑DOM 600,并且向用
    户显示DOM 600的内容。在该示例中,MVC的模型部分对文件进行解析并且将该文件中与文
    档605的对象相对应的部分置于DOM 600的节点中。例如,段落可以被置于DOM的节点650中,
    并且该段落中的句子可以被置于节点655中。该句子中的一个词可以被置于节点660中,并
    且另一个词可以被置于节点665中。该段落中的另一个句子可以被置于节点670中,其中该
    句子的词被置于节点675和680中。为了图示的清楚,以上以及在图6中仅描述了两个句子节
    点和四个词节点,但是段落可以具有任何数目的句子以及相对应的句子节点,并且句子可
    以具有任何数目的词以及相对应的词节点。在另一个示例中,表格可以被置于DOM 600的节
    点650中,其中表格行元素被置于节点655和670中,表格行中的每个单元格的内容可以分别
    被置于节点660、665、675、和680中。表格可以具有任何数目的行和行节点,并且行可以具有
    任何数目的单元格节点,但是为了图示的清楚此处仅描述了两个行节点和四个单元格节
    点。在另一个示例中,表格可以被置于DOM 660中,其中以列作为主索引。在该示例中,节点
    655和670对应于表格的列,并且节点660、665、675、和680对应于表格列中的每个单元格的
    内容。在一个示例中,节点610可以包含文档的页眉信息。节点615可以包含该页眉的句子,
    并且节点620可以包含该页眉句子中的词。为了图示的清楚,节点610可以仅具有一个从属
    节点615,所述从属节点自身仅具有一个从属节点620。此外,如所图示的,DOM 600具有四个
    层次结构层级。然而,DOM中的任何节点都可以具有任何数目的从属节点,并且DOM可以具有
    任何数目的层次结构层级。

    在模型部分创建DOM 600并且将内容置于节点中之后,然后MVC的视图部分可以逐
    节点地遍历DOM 600并且渲染DOM 600的节点中所包含的对象中的一些或全部。该视图部分
    可以是渲染引擎,并且可以是引擎135a的组件。在视图部分遍历DOM 600的每个节点时,其
    将会在被配置为渲染节点的内容的情况下进行该操作。视图部分可以使用硬编码逻辑对其
    在进行遍历的同时所遇到的每个节点的内容进行解码或解析。如果该硬编码逻辑被配置为
    对节点的内容进行解码或解析,则该视图部分将会渲染该节点的内容以用于对用户进行显
    示。如果该硬编码的逻辑并未被配置为对节点的内容进行加密或解析,则该视图部分将不
    会渲染该节点的内容并且将行进至另一个节点。在一个示例中,该视图部分可以在该模型
    部分创建或更新DOM 600的同时遍历DOM 600。

    MVC的控制器部分可以与该MVC的视图部分和模型部分进行交互以促进对DOM 600
    所表示文档605的编辑。该控制器部分可以是引擎135a的组件。当用户提供编辑输入时,该
    控制器接收该输入、确定该输入所对应的DOM 600的节点、并且更新相对应的节点。然后,该
    控制器指令该MVC的视图部分渲染经更新的节点。对DOM 600的更新必须被验证其正确性。
    该验证可以在视图部分渲染经更新节点之前或之后进行。在一个示例中,该控制器可以执
    行对DOM 600的乐观更新。在该示例中,该控制器部分将更新直接发送至视图部分以用于立
    即渲染,并且以异步方式更新并验证DOM 600。如果该验证成功,则不关于该更新采取进一
    步的动作。如果该验证未成功,则对DOM 600的更新被撤回,并且该视图部分以其在更新之
    前所存在的形式渲染DOM 600。这样的乐观更新提供了对用户编辑的更快的显示。

    在一个示例中,引擎135a可以不被配置为对DOM 600的所有节点进行编辑。在该示
    例中,用户可以提供输入以对文档605中、与DOM 600中引擎135a被配置为对其进行编辑的
    节点相对应的特征进行编辑。这甚至可以在MVC的视图部分被配置为渲染该节点的情况下
    进行。MVC的控制器部分可以接收该用户输入,并且在确定该控制器部分没有被配置为对该
    节点进行编辑的情况下可以不对该节点作出改变??裳〉?,引擎135a可以向用户通知所期
    望的特征无法被编辑。在一些示例中,如果视图部分被配置为渲染该节点但是引擎135a并
    未被配置为对该节点进行编辑,则视图部分可以以不正确的方式渲染该节点的内容。然而,
    由于控制器部分没有对这样的节点进行编辑,所以这些节点的原始内容被保留。以这种方
    式,完全支持这些节点中所包含的特征的后续应用或引擎可以对所述节点的原始未被修改
    的内容进行渲染和编辑而不损失数据。

    在文档605被保存时,引擎135a可以使用DOM层次结构600根据文档605的格式来进
    行保存。在一个示例中,DOM 600的节点可以包含已经以最初包含文档605的文件的格式进
    行编码的数据。在该示例中,DOM 600的节点中所包含的数据在保存之前没有被修改或转换
    为不同格式。在另一个示例中,引擎135a可以根据文档605的格式来对所支持的特征以及
    DOM 600中的、它们的相对应的节点进行编码。在该示例中,DOM 600中的、具有引擎135a没
    有被配置来渲染或编辑的特征的节点包含根据文件的原始格式所编码的数据,并且在保存
    之前并不进一步被编码。如果引擎135a没有被配置来渲染或编辑的节点被重新格式化,则
    该节点中的数据中的一些或全部将会由于引擎135a没有被配置来对该节点的格式恰当解
    码而被损失。此外,如果这些节点在保存时被简单丢弃,则节点的数据也会损失。通过保留
    具有引擎135a没有被配置来渲染或编辑的特征的节点的格式,原始文件中不被支持的特征
    被保留而其它特征则被编辑。

    图7图示了用于在打开所请求的文件时选择要启动的引擎的方法的流程图700。用
    户可以在客户端设备处录入请求以打开具有特定文件类型的文件。该请求被诸如应用130
    的应用接收,这例如在步骤705处进行。该请求可以包含与所要打开的文件相关联的文件标
    识符。在步骤710,运行应用130的处理器基于在该请求中包含的信息来确定所请求的文件
    的位置。所请求的文件可以位于用户设备100上、服务器420上、或者处于另一个位置。该位
    置可以通过检查数据库或存储器中的文件索引来确定。在步骤715,该应用确定所请求的文
    件的格式。该应用可以基于文件扩展名、头部信息、或者与文件相关联的其它信息来确定格
    式。如果使用文件扩展名来确定格式,则该应用可以使用所请求的文件、所定位的文件、或
    这两者的文件扩展名。如果使用头部信息来确定格式,则该应用可以读取所定位的文件的
    头部的一部分并且从该头部提取指示文件类型的字符串。该文件类型字符串可以是MIME类
    型的字符串。在一些示例中,头部信息和文件扩展名信息二者都可以被用来确定文件的格
    式。如果两个确定都提供了对文件格式的类似指示,则所述确定为正确的可能性有所增加。
    然而,如果确定提供了对格式的不同指示,则存在冲突。这样的冲突可以在文件扩展名已经
    被用户改变为不同文件扩展名的情况下出现。

    在决策框720,应用130查询数据库500来确定引擎是否被配置为打开并编辑与应
    用相关联的文件。应用130确定数据库500中的任何条目是否包含所定位文件的格式。如果
    数据库中没有包含所定位文件的格式的条目,则该方法进行至步骤725并且向用户呈现所
    请求文件无法被打开的消息。此外,如以上所描述,如果多个格式的确定之间存在冲突,则
    该方法可以进行至步骤725,并且作为步骤725的一部分,可以向用户通知对格式的确定中
    的冲突。替选地,在这样的冲突的事件中,该方法可以直接进行至步骤740并且提示用户直
    接选择引擎。该提示可以包括对引擎135中的一些或所有进行列举。在步骤725之后,该方法
    终止。如果数据库500中的一个或多个条目包含所定位文件的格式,则该方法进行至决策框
    730。

    在决策框730处,应用130确定多个引擎是否与所定位文件的格式相关联。数据库
    500包含提供引擎与文件格式的关联的一个或多个条目505。条目505可以包含一个格式名
    称510以及多个相关联的引擎名称520。替选地,条目505可以包含多个格式名称510以及一
    个相关联的引擎名称520。替选地,条目505可以包含多个格式名称510和多个相关联的引擎
    名称520。如果应用130通过查询数据库而确定仅一个引擎与所定位文件的格式相关联,则
    该方法进行至步骤735,在该处与所定位的文件的格式相关联的该一个引擎被选择。如果该
    应用通过查询数据库确定多个引擎与所定位文件的格式相关联,则该方法进行至步骤740。

    在步骤740,应用130经由用设备100上的显示设备110向用户呈现多个相关联的引
    擎的列表。在步骤745,应用130经由用户输入设备115接收来自用户的对多个相关联的引擎
    中的一个的选择。在步骤750,应用130启动所选择的引擎,其能够被用来编辑所请求文件。

    图8A-8B图示了用于使用引擎135a来加载并编辑文件125a的特征的方法的流程图
    800。当用户请求打开文件并且引擎例如已经使用流程图700中的步骤而被识别时,文件数
    据可以使用流程图800中的步骤来被处理。在接收到来自诸如浏览器210的浏览器的用户输
    入时,应用130可以启动所选择的引擎135a。引擎135a可以在诸如用户界面200的用户界面
    中经由浏览器210来显示文档。在图8A处开始,在步骤805,引擎135a根据文件125a的格式而
    从该文件读取数据。在步骤810,运行引擎135a的处理器—诸如处理器105—确定所读取的
    数据包含特征。在步骤815,引擎135a将特征置于DOM——诸如DOM 600的、与文件125a相关
    联的节点中。在步骤820处,引擎135a确定是否已经到达文件125a的结尾。如果还没有到达
    文件125a的结尾,则该方法返回步骤805以继续从文件125a读取附加数据。如果已经到达文
    件125a的结尾,则该方法继续进行至步骤825。引擎135a的模型部分可以执行步骤805、810、
    815、和820中的一个或多个。

    在步骤825处,引擎135a在遍历DOM 600的同时读取DOM 600的节点。在决策框830
    处,引擎135a确定其是否被配置来渲染该节点或者该节点中所包含的文件特征。被配置来
    渲染文件的特征的引擎被配置为从与该特征相关联的存储器读取数据,其中该数据根据该
    文件的格式进行编码。在一些示例中,引擎135a基于被明确硬编码至引擎135a中的信息作
    出该确定。如果引擎135a确定其没有被配置来渲染该特征,则该方法继续进行至步骤835,
    其中引擎135a没有渲染该特征并且然后继续进行至决策框845。如果引擎135a确定其能够
    渲染该特征,则该方法继续进行至步骤840。在步骤84处0,引擎135a渲染该节点中所包含的
    特征。然后,该方法继续进行至决策框845,其中引擎135a确定是否已经到达DOM 600的结
    尾。引擎135a可以通过确定是否已经遍历了DOM的所有节点来作出该确定。如果还没有到达
    DOM的末尾,则该方法返回步骤825,其中引擎135a继续遍历DOM 600。如果已经到达了DOM的
    末尾,则该方法继续进行至步骤855。引擎135a的视图部分可以执行步骤825、830、835、840、
    和845中的一个或多个。

    转到图8B,在步骤855处,引擎135a接收用户输入以对DOM 600所表示的文档的特
    征进行修改。用户可以经由诸如界面200和300的图形用户界面来提供该输入。例如,如果该
    特征是段落,则该输入可以包括对该段落文本的添加。作为另一个示例,该输入可以包括样
    式改变指令,诸如将段落的字体样式变为黑体字。这些示例并不是限制性的,并且用户输入
    可以是修改特征的任何用户输入。在决策框860处,引擎135a确定是否被配置来编辑该特
    征。被配置来编辑文件的特征的引擎被配置为从存储器读取数据以及向存储器写入数据,
    其中该数据与该特征相关联并且根据该文件的格式而被编码。在一个示例中,引擎135a通
    过对DOM中与待被编辑的特征相对应的节点的内容进行解码来作出该确定。在该示例中,如
    果引擎135a能够成功解码该节点的内容,则引擎135a将确定其能够对该特征进行编辑,并
    且将在其无法对该节点的内容进行解码的情况下确定其无法编辑该特征。如果引擎135a确
    定其没有被配置来对该特征进行编辑,则该方法继续进行至步骤865,其中引擎135a没有对
    该特征进行修改并且直接进行至步骤880。如果引擎135a确定其被配置来对该特征进行编
    辑,则该方法继续进行至步骤870。在步骤870处,引擎135a对DOM 600中与特征相对应的节
    点进行修改。引擎135a可以在修改该节点后对DOM 600进行验证。在步骤875处,引擎135a基
    于经修改的节点的内容来渲染该特征。在乐观更新的示例中,步骤870和875可以并发地或
    异步地进行。在该示例中,引擎135a的控制器部分可以直接将更新发送至视图部分,并且稍
    后更新并验证DOM 600。

    在决策框880处,引擎135a确定是否需要保存。在用户提供了保存文档的输入的情
    况下或者在已流逝的时间已经超过预定阈值的情况下需要进行保存。如果引擎135a确定需
    要保存,则该方法继续进行至步骤885,其中引擎135a根据所定位文件125a的格式将DOM
    600中所包含的数据保存至文件。对于DOM 600中的、引擎135a没有被配置来对其进行编辑
    的节点而言,引擎135a以与该数据的原始状态相比无变化的方式保存这些节点中所包含的
    数据。DOM 600中引擎135a被配置为对其进行编辑的节点中所包含的数据可以与其原始状
    态相比有所修改,并且引擎135a根据所定位的文件125a的原始格式来对该数据进行保存。
    在步骤880处,引擎135a可以将DOM 600中的所有节点保存至文件,或者其可以仅保存节点
    的一部分,诸如被更新的节点。在步骤880处,替选地,引擎135a可以将DOM 600中所包含的
    数据保存为不同于文件125a的原始格式的格式。对格式的选择可以基于用户经由用户输入
    设备115所进行的选择来确定。在决策框880处,如果引擎135a确定不需要保存,则方法800
    继续进行至步骤855,其中引擎135a接收另一个用户输入。在步骤885进行保存之后,该方法
    返回至步骤855,其中引擎135a接收另一个用户输入。方法800可以以这种方式进行循环直
    至被用户中断。用户可以通过经由用户界面关闭文档或者通过简单地关闭用户界面来中断
    方法800。在一个示例中,引擎135a的控制器部分可以执行步骤855、860、865、870、880、和
    885。在该示例中,引擎135a的视图部分可以执行步骤875。通过保留DOM 600的节点中不被
    支持的特征并且阻止对那些节点进行修改,文件中不被支持的特征在DOM 600被保存时被
    引擎135a保留。

    图9图示了应用130用来创建文件的方法的流程图900。用户可以经由诸如用户界
    面200的用户界面来提供输入以创建具有特定文件格式的文件。在步骤905,运行应用130的
    处理器接收来自用户的创建文件的请求。在步骤910处,该处理器确定引擎135中的一个或
    多个被配置来创建文件。该确定可以通过查询诸如数据库500的数据库来进行。在步骤915
    处,应用130向用户呈现与被配置来创建文件的一个或多个引擎相关联的格式的列表。在步
    骤920处,应用130从用户接收对所呈现的列表中的格式的选择。在决策框925处,应用130确
    定多个引擎是否被配置为以所选择的格式来创建文档。应用130可以查询数据库500来确定
    被配置为以所选择的格式创建文件的一个或多个引擎是否与该应用相关联。如果仅一个引
    擎被配置为以所选择格式来创建文档,则该方法继续进行至步骤935,在该处该一个引擎被
    选择。如果多个引擎被配置为以所选择的格式来创建文档,则该方法进行至步骤930,在该
    处应用130向用户呈现与所选择的格式相关联的引擎的列表。在步骤940处,应用130接收对
    所呈现的引擎的列表中的引擎135a的选择。在步骤945处,应用130启动所选择的引擎135a。
    在步骤950处,所启动的引擎135a以所选择的格式来创建文档并且渲染该文档以用于经由
    显示器110向用户进行显示。在步骤955处,所启动的引擎135a从用户接收对所渲染文档的
    编辑。这些编辑可以根据方法800的步骤来被接收。在步骤960处,所启动的引擎135a将该文
    档根据所选择的格式保存至文件125a。在一些实施方式中,方法900可以被简化。在这些实
    施方式中,应用130可以在步骤915处向用户呈现引擎的列表,在步骤920处接收对引擎的选
    择,并且直接进行至步骤945,在该处应用130打开所选择的引擎。在一些实施方式中,引擎
    135a能够打开或复制空白模板文件以代替创建新的文件实例。

    图10示出了客户端-服务器系统100,其包括云计算服务1002和多个客户端计算机
    1004a至1004d。云计算服务1002可以包括共同为大量客户端计算机提供云计算服务的一个
    或多个服务器。云计算服务1002存储可由客户端计算机1004a-1004d访问的多个文件,包括
    示例性的协同电子表格1006。用户可以创建、编辑、复制、分享、和删除存储在云计算服务
    1002上的文件。例如,客户端计算机1004a-1004d可以使用web浏览器来同时访问云计算服
    务1002·上的电子表格1006。云计算服务1002为每个客户端计算机提供电子表格1006的本
    地副本,用户可以在客户端计算机上对其进行查看和编辑??突Ф思扑慊?004a所进行的编
    辑—另外被称为变动(mutation)—被自动发送至云计算服务1002并且被传送至其它的客
    户端计算机1004b-1004d。因此,由一个协作者所作出的变动立即被其它协作者看到。

    客户端计算机1004a-1004d可以包括台式计算机、膝上型计算机、平板计算机、智
    能电话、数字电子设备、或者可以通过远程网络连接至云计算服务1002的任何其它设备。系
    统1000可以包括与云计算服务1002进行连接的许多客户端计算机。系统1000的云计算服务
    1002和客户端计算机1004a-1004d通过诸如互联网的远程网络进行连接。网络连接可以通
    过局域网、广域网、以太网、光纤网络、无线网络、蜂窝网络、交互式电视网络、电话网络、无
    线数据传输系统、双工线缆系统、定制的专用或公用计算机网络、交互式岗亭网络、直接链
    路、卫星网络,和/或任何其它的有线或无线连接。

    图11是用于执行本文所描述的过程中任何一个的计算设备的框图,其诸如是图1-
    10的系统中的任何组件。这些系统中的组件中的每一个可以在一个或多个计算设备1100上
    实现。在某些方面,这些系统的多个组件可以被包括在一个计算设备1100内。在某些实施方
    式中,组件和存储设备可以跨若干计算设备1100来被实现。

    计算设备1100包括至少一个通信接口单元、输入/输出控制器1110、系统存储器、
    以及一个或多个数据存储设备。该系统存储器包括至少一个随机存取存储器(RAM 1102)以
    及至少一个只读存储器(ROM 1104)。所有这些部件都与中央处理单元(CPU 1106)进行通信
    以促进计算设备1100的操作。计算设备1100可以以许多不同的方式进行配置。例如,计算设
    备1100可以是常规的独立计算机,或者替选地,计算设备1100的功能可以跨多个计算机系
    统和架构分布。替选地,计算机系统可以被虚拟化以提供多个计算设备1100的功能。在图11
    中,计算设备1100经由网络或本地网络来链接至其它服务器或系统。

    计算设备1100可以以分布式架构来进行配置,其中数据库和处理器被容纳在分离
    的单元或位置中。一些单元执行主要处理功能并且最低限度地包含一般控制器或处理器以
    及系统存储器。在分布式架构实施方式中,这些单元中的每一个可以经由通信接口单元
    1108来被附接至通信集线器或端口(未示出),其充当与其它服务器、客户端或用户计算机
    以及其它相关设备的主要通信链路。通信集线器或端口自身可以具有最低限度的处理能
    力,主要充当通信路由器。各种通信协议可以是系统的一部分,包括但并不局限于:以太网、
    SAP、SASTM、ATP、BLUETOOTHTM、GSM和TCP/IP。

    CPU 1106包括处理器,诸如一个或多个常规的微处理器以及一个或多个补充的协
    同处理器,诸如用于从CPU 1106卸载工作负荷的算术协同处理器。CPU 1106与通信接口单
    元1108和输入/输出控制器1100进行通信,CPU 1106通过其而与诸如其它服务器、用户终端
    或设备的其它设备进行通信。通信接口单元1108和输入/输出控制器1110可以包括多个通
    信信道以用于例如与其它处理器、服务器或客户端终端同时进行通信。

    CPU 1106还与数据存储设备进行通信。该数据存储设备可以包括磁性、光学或半
    导体存储器的适当组合,并且例如可以包括RAM 1102、ROM 1104、闪存驱动器,诸如压缩盘
    的光盘,或者硬盘或驱动器。例如,CPU 1106和数据存储设备均可以完全位于单个计算机或
    其它计算设备内;或者通过以下通信介质互连:诸如USB端口、串行端口线缆、同轴线缆、以
    太网线缆、电话线、射频收发器或者其它类似的无线或有线介质或者以上的组合。例如,CPU
    1106可以经由通信接口单元1108来连接至数据存储设备。CPU 1106可以被配置来执行一个
    或多个特定处理功能。

    例如,数据存储设备可以存储(i)用于计算设备1100的操作系统1112;(ii)适于依
    据本文所描述的系统和方法—特别是依据关于CPU 1106来详细描述的过程—对CPU 1106
    进行指引的一个或多个应用1114(例如,计算机程序代码或计算机程序产品);或者(iii)适
    于存储信息的数据库1116,其可以被利用来存储程序所需的信息。

    例如,操作系统1112和应用1114可以以压缩、未编译和加密的格式进行存储,并且
    可以包括计算机程序代码。程序的指令可以从计算机可读介质而不是数据存储设备来被读
    入处理器的主存储器中,诸如从ROM 1104或者从RAM 1102。虽然程序中的指令序列的执行
    使得CPU 1106执行本文所描述的过程步骤,但是可以替代软件指令或者与之相结合来使用
    硬连线电路以用于实现本发明的过程。因此,所描述的系统和方法并不局限于硬件和软件
    的任何特定组合。

    合适的计算机程序代码可以被提供以用于执行关于执行本文所描述的过程的一
    个或多种功能。该程序还可以包括程序元素,诸如操作系统1112、数据库管理系统和“设备
    驱动器”,其允许处理器经由输入/输出控制器1110来与计算机外围设备(例如,视频显示
    器、键盘、计算机鼠标等)相接口。

    本文所使用的术语“计算机可读介质”指代非暂时性介质,其向计算设备1100的处
    理器(或者本文所描述设备的任何其它处理器)提供指令或参与提供指令以供执行。这样的
    介质可以采取许多形式,包括但并不局限于非易失性介质和易失性介质。例如,非易失性介
    质包括光盘、磁盘、或光磁盘,或者诸如闪存的集成电路存储器。易失性介质包括动态随机
    存取存储器(DRAM),其通常构成主存储器。例如,计算机可读介质的常见形式包括:软盘、柔
    性盘、硬盘、磁带、任何其它磁性介质、CD-ROM、DVD、任何其它光学介质、打孔卡、纸带、任何
    其它具有孔洞图案的物理介质、RAM、PROM、EPROM或EEPRAOM(电可擦除可编程只读存储器)、
    FLASH-EPROM、任何其它存储器芯片或盒式磁带,或者计算机能够从其进行读取的任何其它
    介质。

    各种形式的计算机可读介质可以涉及向CPU 1106(或本文所描述的设备的任何其
    它处理器)携载一个或多个指令的一个或多个序列以供执行。例如,指令最初可以被承载于
    远程计算机(未示出)的磁盘上。该远程计算机能够将该指令加载至其动态存储器中并且通
    过以太网连接、线缆线路、或者甚至使用调制解调器的电话线来发送该指令。处于计算设备
    1100(例如,服务器)本地的通信设备能够在相应通信线路上接收数据并且将该数据置于用
    于该处理器的系统总线上。该系统总线将该数据携载至主存储器,该处理器从该处检索并
    执行该指令。主存储器所接收的指令可选地可以在被处理器执行之前或之后被存储在存储
    器中。此外,指令可以作为电、电磁或光学信号而经由通信端口被接收,其是承载各种类型
    的信息的无线通信或数据流的示例性形式。

    将会显而易见的是,本文所描述的系统和方法的多个方面可以以附图所图示的实
    施方式中的许多不同形式的软件、固件、和硬件来实现。被用来实现与本文所描述的系统和
    方法的原则相符的方面的实际软件代码或专用控制硬件并不受到限制。因此,该系统和方
    法的操作和表现在没有引用特定软件代码的情况下来被描述—所要理解的是,本领域技术
    人员将能够基于本文的描述来设计软件和控制硬件以实现所述方面。

    类似地,虽然操作在图中以特定顺序进行描绘,但是这并不应当被理解为要求这
    样的操作以所示出的特定顺序或连续顺序来执行,或者所有所图示的操作都要被执行,以
    达到所期望的结果。在某些环境中,多任务和并行处理可能是有利的。

    关于本文
    本文标题:用于使用应用引擎来编辑非本原应用中的文件的系统和方法.pdf
    链接地址://www.4mum.com.cn/p-6110516.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 投注站利润 江西时时历史开奖结果查询结果 时时彩计划软件哪个准 pk10技巧冠亚和稳赚 pk10刷水方案 时时彩计划软件哪里下载 分分彩人工计划精准版 北京pk10计划软件 下载买双色球彩票 幸运飞艇怎么配法 体育彩票投注截止时间 pk10技巧走势图技巧 亚洲杯女篮决赛录像 极速赛车诀窍 pk10冠军计划走势图 七星彩预测最准十专家牛