《外部服务应用的发现方法.pdf》由会员分享,可在线阅读,更多相关《外部服务应用的发现方法.pdf(22页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102968437 A (43)申请公布日 2013.03.13 CN 102968437 A *CN102968437A* (21)申请号 201210364421.3 (22)申请日 2012.09.26 61/539,975 2011.09.27 US 13/284,543 2011.10.28 US G06F 17/30(2006.01) (71)申请人 微软公司 地址 美国华盛顿州 (72)发明人 MJ鲁伦 MT菲尔兹 CV汉森 Y彭 MC拉姆塞 NM西蒙斯 AV沃匹洛夫 KJ小尤哈斯 RA马雷诺 T克拉夫特 C布劳萨德 D明 CD肖 SS卡珀 (74)专利。
2、代理机构 上海专利商标事务所有限公 司 31100 代理人 杨洁 (54) 发明名称 外部服务应用的发现方法 (57) 摘要 本发明涉及外部应用服务的发现方法。将主 机与运行服务应用的外部应用服务器相连接的外 部服务应用发现过程, 该服务应用允许客户计算 设备的用户经由 web 浏览器与文件一起工作。主 机违反外部应用服务器的功能, 并用作其中产生 客户计算设备与外部应用服务器间的交互的平 台。开发接口协议 (共享通信协议) 允许主机将指 令从客户计算设备传递到外部应用服务器。通过 外部服务应用发现过程, 外部应用服务器描述了 服务应用向主机提供的功能。主机基于开发平台 接口的实现级和主机所理。
3、解的外部服务应用发现 过程的约定, 选择性地使得服务应用所提供的功 能对用户可用。 (30)优先权数据 (51)Int.Cl. 权利要求书 2 页 说明书 13 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 13 页 附图 6 页 1/2 页 2 1. 一种主机发现外部应用服务器的方法, 所述外部应用服务器运行允许用户与所选文 件类型的文档交互的服务应用, 所述方法包括以下步骤 : 从所述主机发起对关于服务应用服务器的信息的发现请求 ; 在所述主机接收发现响应, 所述发现响应描述一动作, 当所述主机支持所述动作时, 所 述动作可用来由。
4、所述服务应用对所述所选文件类型执行 ; 在所述主机处解析所述发现响应以了解所述动作 ; 以及 当所述主机支持所述动作时, 注册所述动作与所述所选文件类型之间的关联。 2. 如权利要求 1 所述的方法, 其特征在于, 所述动作至少包括与所述动作相关联的动 作标识符、 与所述动作相关联的文件类型标识符、 和运行所述服务应用的所述服务应用服 务器的地址。 3. 如权利要求 2 所述的方法, 其特征在于, 解析所述发现响应的步骤还包括当所述主 机不理解所述动作标识符时确定所述主机不支持所述动作的步骤。 4. 如权利要求 2 所述的方法, 其特征在于, 所述动作还包括与所述动作相关联的要求 参数, 所述。
5、要求参数指定所述主机为了支持所述动作所必需的功能集。 5. 如权利要求 4 所述的方法, 其特征在于, 解析所述发现响应的步骤还包括当所述主 机缺少所述功能集中指定的至少一个功能时确定所述主机不支持所述动作的步骤。 6. 如权利要求 2 所述的方法, 其特征在于, 所述信息还包括以下各项中的至少一个 : 与 所述动作相关联的服务应用标识符, 与所述动作相关联的网络区域标识符, 与所述动作相 关联的文件夹 / 目录标识符, 以及与所述动作相关联的目标文件类型标识符。 7. 如权利要求 1 所述的方法, 其特征在于, 所述证明标识符是所述服务应用服务器已 知的、 且与所述服务应用服务器已知的私钥相。
6、关联的公钥。 8. 如权利要求 1 所述的方法, 其特征在于, 发起发现请求的步骤还包括指定所述发现 请求的发现源的步骤, 从包括发现服务和由文件位置标识的文件的组中选择所述发现源, 所述发现服务具有由统一资源定位符指定的端点。 9. 一种允许主机计算机了解运行软件程序的服务器的方法, 所述软件程序允许用户通 过 web 浏览器与文档一起工作, 所述方法包括以下步骤 : 在主机计算机处, 询问关于运行软件程序的服务器的信息, 所述软件程序允许用户与 文档一起工作, 在主机计算机处, 接收描述所述软件程序允许所述用户与所述文档一起工作的方式的 信息, 所述信息指定了与所述文档一起工作的方式的名称。
7、、 与所述文档一起工作的方式所 支持的文件类型、 以及当由用户选择时使所述软件程序知道以使用与所述文档一起工作的 方式的地址 ; 在所述主机计算机处, 读完所述信息以了解所述软件程序允许所述用户与所述文档一 起工作的方式 ; 在所述主机计算机处, 确定所述主机计算机是否识别与所述文档一起工作的方式的名 称 ; 以及 在所述主机计算机处, 将所述主机计算机配置成当所述主机计算机识别所述名称时, 将所述文件类型和所述地址与同所述文档一起工作的方式相关联。 10. 一种用于主机发现外部应用服务器的方法, 所述外部应用服务器运行允许用户与 权 利 要 求 书 CN 102968437 A 2 2/2 。
8、页 3 所选文件类型的文档交互的服务应用, 所述方法包括以下步骤 : 定义由开放平台接口理解并支持的已知动作标识符集合, 所述开放平台接口由所述主 机来实现 ; 从所述主机发起对关于服务应用服务器的信息的发现请求 ; 在所述主机处接收发现响应, 所述发现响应描述了可由所述服务应用针对所述所选文 件类型来执行的动作以及与所述服务应用服务器相关联的证明标识符, 所述动作包括与所 述动作相关联的动作标识符、 与所述动作相关联的文件类型标识符、 运行所述服务应用的 所述服务应用服务器的地址、 与所述动作相关联的要求参数, 所述要求参数指定了所述主 机执行所述动作所必需的功能集 ; 在所述主机处解析所述。
9、响应以了解所述动作 ; 当所述主机不支持所述动作时忽略所述动作, 因为所述主机缺少所述功能集中指定的 至少一个功能、 或者所述动作标识符与来自所述已知动作标识符集合中的任一个已知动作 标识符不匹配 ; 以及 当所述主机支持所述动作时, 注册所述动作与所述文件类型之间的关联。 权 利 要 求 书 CN 102968437 A 3 1/13 页 4 外部服务应用的发现方法 技术领域 0001 本发明涉及服务应用, 尤其是服务应用的发现方法。 背景技术 0002 企业通常出于不同的目的维护被存储在不同地方的各种类型的文档。 在许多情况 下, 根据各种不同的软件应用和存储系统来创建和存储这种文档。例如。
10、, 可使用文字处理 应用、 电子表格应用、 演示应用、 注释应用、 图形设计应用、 摄影应用等来生成文档。可经由 各种存储系统来存储所生成的文档, 包括用于存储各种类型的文档的一个或多个内容服务 器、 用于存储文档作为电子邮件项 (电子邮件) 附件的服务器、 用于存储文档作为会议附件 的存储系统、 用于存储文档作为主要或顾客数据的附件的顾客关系管理 (CRM) 系统、 用于存 储文档以供日常使用的通用文档存储、 和 / 或存储文档以供专门非常规定的需求的专用文 档存储 (例如, 来自 Documentum 公司的) 。 0003 访问这些各种类型的文档并与之一同工作通常要求用于每种文档类型的适。
11、当的 软件对用户可用。 典型的企业场景构想了需要访问文档或与之一同工作的每个人将使适当 的软件本地地安装在他们日常使用的计算设备上。 当每个人可访问同一组且同一版本的应 用时, 这是可行的方法。然而, 在许多情形中, 当多个用户可能仅偶尔使用给定的软件应用 时, 企业可能不将给定的软件应用加载到用户的计算设备上。补救这种问题的一种方法是 将文档转换成可容易地查看但不容易编辑的 “已发布” 格式。提供对各种文档类型的访问 而无需本地安装必要的软件包的另一种方法是在内容服务器内固有地提供查看和编辑功 能, 或提供内容服务器与专用系统间的直接集成以便查看和编辑所支持的文档 ; 然而, 企业 通常不愿。
12、将这种功能与他们的内容服务器进行集成, 害怕附加功能的这种集成可能降低类 似的关键任务使用的处理容量和能力、 增加停机时间、 和 / 或使得对他们的内容服务器的 管理变得复杂。 此外, 向专用系统投入的资源 (例如, 时间, 精力, 以及与费用相关联的开发、 采购和部署) 不太可能转移到另一个平台。 0004 本发明正是对于这些和其它考虑事项而做出的。 发明内容 0005 提供该发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概 念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征, 也不旨在用于限制 所要求保护主题的范围。 0006 根据各实施例, 外部服务应用发现过程将。
13、一个或多个主机与一个或多个服务应用 相连接, 该服务应用允许客户计算设备的用户经由通用客户机应用 (即, web 浏览器) 来与文 件一同工作。开发平台接口 (共享通信协议) 允许主机与外部应用服务器通信, 无论主机的 本地通信协议是什么。通过开放平台接口的约定所描述的外部服务应用发现过程, 外部应 用服务器描述了服务应用所提供的功能以及如何调用该功能。 主机基于开发平台接口的实 现级和主机所理解的外部服务应用发现过程的约定, 选择性地使得服务应用所提供的功能 说 明 书 CN 102968437 A 4 2/13 页 5 对用户可用。 0007 与外部应用服务器的集成是主机通过被称为发现的过。
14、程来实现的责任, 主机在该 过程期间得知外部应用服务器所支持的功能。在发现之前, 不要求主机具有关于外部应用 服务器的可用性或功能的任何知识。为了参加对外部应用服务器的发现, 主机必须理解开 放平台接口以及与该开放平台接口相关联的发现约定。 主机的行为基于外部应用服务器的 可用性和功能而改变。 0008 外部服务应用发现过程是由主机通过提供发现数据源的位置来发起, 该发现数据 源包含描述外部应用服务器的功能的信息。该发现数据由外部应用服务器来维护, 并作为 响应或在发现文档中被提供给主机。在获得发现数据的位置之后, 主机向发现数据源发出 发现请求。发现数据源一旦接收到发现请求就提供包含了发现数。
15、据的响应, 该发现数据描 述由外部应用服务器支持的功能 (即, 外部应用服务器的属性) 。发现数据根据开放平台接 口的约定来格式化, 并且包含由该约定指定的信息。主机消费由发现数据源返回的发现数 据。在消费了发现数据之后, 主机为相关联的文件类型存储关于服务应用所支持的动作的 信息。在完成外部服务应用发现过程之后, 主机的行为变为集成该主机所支持的服务应用 的被公告的功能。 附图说明 0009 通过参考下面的具体实施方式、 所附的权利要求书和附图, 本发明的进一步的特 征、 各方面和益处将变得更好理解, 其中各元素不会缩放以更清晰地示出细节, 在若干视图 中, 相同的附图标记指示相同的元素, 。
16、并且其中 : 0010 图 1 示出企业网络的框图, 该企业网络包括主机和用于实践外部服务应用发现过 程的一个实施例的外部应用服务器 ; 0011 图 2 示出主机与外部应用服务器之间的外部应用服务发现过程的流程图 ; 0012 图 3 是可用来实施本发明的各实施例的计算设备的简化框图 ; 0013 图 4A 和 4B 是可用来实施本发明的各实施例的移动计算设备的简化框图 ; 以及 0014 图 5 是可在其中实施本发明的各实施例的分布式计算系统的简化框图。 具体实施方式 0015 用于将主机与外部应用服务器进行连接的外部服务应用发现过程在本文被描述 并在附图中被示出。 外部服务应用发现过程将。
17、一个或多个主机与一个或多个服务应用进行 连接, 该服务应用允许客户计算设备的用户经由与主机通信的通用客户机应用来与网络上 的文件一同工作。开发平台接口 (其是一种共享通信协议) 允许外部应用服务器与主机交 互, 无论主机的本地通信协议是什么。通过开放平台接口的约定所描述的外部服务应用发 现过程, 外部应用服务器描述了服务应用所提供的功能以及如何调用该功能。主机基于开 发平台接口的实现级和主机所理解的外部服务应用发现过程的约定, 选择性地使得服务应 用所提供的功能对用户可用。 0016 图 1 示出包括一个或多个主机 102 和一个或多个外部应用服务器 104 的示例性企 业网络 100 的一个。
18、实施例。用户 106 从客户计算设备 110 使用 web 浏览器 108 来访问主机 102。 主机102最一般地是将文档存储在文档存储系统126中并为用户106管理许可的内容 说 明 书 CN 102968437 A 5 3/13 页 6 服务器。一般而言, 主机 102 运行主机应用 112, 该主机应用提供处理主机 102 的普通功能 的主机用户界面 114。主机 102 的普通功能中的至少一些包括向用户 106 提供对已存储的 文档 116 的访问, 该文档 116 被包含在内容存储 126 中并且旨在使用支持的应用来被查看 和 / 或编辑。主机 102 还提供使外部应用服务器 10。
19、4 的服务对用户 106 可用的通用平台。 外部应用服务器 104 提供基于浏览器的 web 应用, 该 web 应用允许用户 106 与通过主机可 用的文档进行交互。开放平台接口定义并指导主机 102 与外部应用服务器 104 之间的文档 操作。主机 102 还实现从外部应用服务器接收通信的端点 120。虽然主机 102 初始化包括 外部应用服务器 104 的服务的场景, 但主机 102 不调用外部应用服务器 104。相反, 外部应 用服务器 104 展示所支持的功能, 以使用回调来针对所支持的文档类型进行操作。 0017 外部应用服务器104运行一个或多个基于web的服务应用118, 该服。
20、务应用118使 用户106能够访问、 查看、 编辑以及任选地执行针对内容 (即, 文件或文档) 的其他操作, 并且 从客户计算设备110通过网络执行文件夹 (即, 目录) 管理, 而不要求本地安装与特定文档类 型一同工作所需的适当的应用。外部应用服务器 104 的操作和输出不是调用外部应用服务 器 104 的功能的主机 102 所专用的。每个服务应用 118 一般作为外部应用服务器 104 上的 服务来运行。外部应用服务器 104 使用开放平台接口和开放平台接口的约定集合来与主机 102 集成。外部应用服务器 104 提供与所选文件类型的文档一同工作的必要操作和功能。 外部应用服务器104是主。
21、机不可知的。 换言之, 外部应用服务器104的操作和/或输出不是 便于访问外部应用服务器 104 的服务的主机 102 所专用的。处理各种文档类型的服务应用 118 的示例包括用于与文字处理文档、 电子表格、 演示和注释一起工作的标准 (即, 本地安装 的) 应用的在线 (即, 基于 web 的) 伙伴。 0018 每个服务应用 118 所提供的操作通常专用与所选文件类型或与文件夹管理有关。 外部应用服务器104所提供的核心操作是查看和编辑文档。 在各个实施例中, 服务应用118 提供一个或多个附加操作, 包括但不限于, 重新格式化文档以供在移动设备上查看、 创建新 文档、 转换文档、 嵌入文。
22、档、 以及从外部应用服务器 104 的角度来广播文档, 广播和嵌入是 特定的交互式用户流。 在广播的情况中, 外部应用服务器104在多个客户计算设备110上显 示文档, 并在一个实施例中跟踪在多个客户计算设备 110 的每个处被查看的当前页面。主 机 102 管理文档上传、 广播发起、 和富客户端入口点。在广播操作的另一个实施例中, 页面 跟踪由主机 102 来处理。 0019 通过一个或多个服务应用入口 URL 来访问每个服务应用 118 所支持的操作。每个 服务应用入口 URL 用作用于针对特定文档类型的特定操作的外部应用服务器 104 的入口 点。一般而言, 每个服务应用入口 URL 包。
23、括外部应用服务器的地址, 并指定任务 (例如, 使用 电子表格应用的嵌入式编辑) 、 与该任务相关联的所需数据, 即文档的元数据 URL 和授权访 问的访问令牌、 以及该任务专用的任意可选的参数。当用户 106 选择用于文档的一个操作 时, 主机 102 针对用户所选择的文档生成用于该操作的服务应用入口 URL。具体而言, 外部 应用主页 122 生成与服务应用 118 一起使用的 URL 参数。外部应用主页 122 所生成的参数 包括但不限于访问令牌和源 URL。源 URL 是服务应用 118 用来访问主机端点 120 和文档的 URL。访问令牌是对用户 / 对象对来说唯一的令牌, 主机端点。
24、 120 使用该用户 / 对象对来认 证用户 106 并授权对文档和 / 或服务应用 118 的访问。在各个实施例中, 基于用户标识符、 时间戳和文档标识符来计算访问令牌, 并用主机 102 已知的 (例如, 存储在主机配置数据库 说 明 书 CN 102968437 A 6 4/13 页 7 中的) 密码来加密该访问令牌。 0020 通过主机 102 提供的包装器来处理服务应用入口点。主机 102 提供的包装器是一 个框架或环境, 该框架或环境显示外部应用服务器104的输出, 并接受来自允许用户106使 用服务应用 118 提供的功能来与文档交互的客户计算设备 110 的输入。在一个实施例中。
25、, 包装器包括外部应用主页 122 和 / 或应用帧 124。作为示例, 主机 102 生成的外部应用主 页 122 的一个实施例是将全部服务应用页面托管在 web 页面容器中的单个页面, 诸如使用 逐条边的布局的内联帧 (iFrame) 。外部应用主页 122 本身不具有用户界面。外部应用主页 的替换实现可包括用于上面所描述的用户界面或替代的其他网页容器和布局。 0021 嵌入信息的量可能导致长且麻烦的服务应用入口URL。 另外, 包括将到期的访问令 牌使得服务应用入口 URL 变得脆弱。包装器通过提供对书签和链接共享的支持来补偿服务 应用入口 URL 的麻烦且脆弱的本质。换言之, 外部应用。
26、主页的 URL 是可作书签且可共享的。 应用帧 124 指向服务应用入口 URL, 并且外部应用主页 122 任选地呈现主机框架和导航控 件。 0022 外部应用服务器 104 的背景任务是通过与用户交互操作相类似的方式来实现的, 但利用客户计算设备 110 显示的浏览器所显示的页中的隐藏帧来导航到服务应用入口 URL 并加载脚本、 小程序、 或其他指令集 (例如, JavaScript) , 该指令集驱动任务、 提供重试逻 辑、 并允许通过导航父帧来通知最终状态。 在一个实施例中, 背景任务用于主机定向的文档 转换。 0023 当服务应用执行文件级操作时, 它使用开放平台接口向主机端点 12。
27、0 进行请求。 主机端点 120 是 web 服务, 该 web 服务理解使用开放平台接口所作的请求。主机端点 120 的各个实施例被实现作为基于 REST 的 web 服务。在一些实施例中, 与主机端点 120 的通信 是通过安全传输协议 (例如, HTTPS) 来独占地处理的, 以便保护认证令牌和文件内容。在一 个实施例中, 通过将主机端点 web 服务的位置追加到主机 URL 来创建主机端点 URL。 0024 外部应用服务器 104 提供访问、 编辑、 查看和以其他方式操纵或与各种文档类型 一起工作的必要功能。在所描述的实施例中, 外部应用服务器 104 不包括与网络访问相关 联的复杂。
28、度和开销、 用户认证、 文件存储、 网络和文件安全、 以及通常由网络中的其他服务 器来处理且通常专用于特定企业的其他管理任务。 忽略这些特征并使外部应用服务器聚焦 于通过开放平台接口来处理文档操作允许外部应用服务器 104 被用于各种各样的企业网 络场景。应当理解, 如此处所描述的执行并且承担通常由企业网络上的其他服务器来处理 的额外角色和责任的外部应用服务器 104 落入本发明的范围和精神。 0025 主机 102 是能够使用通用客户端应用 (诸如 web 浏览器) 通过网络来访问的在线服 务器应用。 外部应用服务器104所提供的服务由主机102来消费, 并且对客户计算设备110 可用。当附。
29、连于外部应用服务器 104 时, 主机 102 变为知晓外部应用服务器 104 所支持的 每个服务应用 118 和功能。合适的主机系统的示例包括但不限于允许基于 web 的访问的邮 件系统 (例如, Microsoft Exchange) 、 统一通信系统 (例如, IBM Lotus Microsoft和) 、 和内容和 / 或文档管理系统 (例如, IBM Lotus和 Microsoft) 。 0026 主机 102 具有便于客户计算设备 110 与外部应用服务器 104 之间的交互的多种责 任。主机 102 存储用户的数据并初始化包括外部应用服务器 104 的场景。主机 102 实现用。
30、 说 明 书 CN 102968437 A 7 5/13 页 8 于显示每个服务应用 118 所主控的用户界面页面的包装器。另外, 主机 102 实现并展示用 于从外部应用服务器 104 接收通信的主机端点 120。主机端点 120 是 web 服务, 该 web 服务 理解使用开放平台接口所作的请求。主机 102 还通过使用开放平台接口作出的请求来提供 用于服务应用 118 的文件操作。主机 102 的其他责任包括在用户级处理对文档的访问控制 以及用于外部应用服务器 104 的许可实施。在一个实施例中, 主机 102 通过生成将到期的 访问令牌 (即, 授权元件) 来处理访问控制, 该访问令。
31、牌被传递给外部应用服务器104以对所 请求的操作进行授权。 0027 与外部应用服务器的集成是主机通过被称为发现的过程来实现的另一个责任, 主 机在该过程期间得知外部应用服务器所支持的功能。在发现之前, 不要求主机具有关于外 部应用服务器的可用性或功能的任何知识。 必要的仅仅是主机理解外部应用服务器所使用 的开放平台接口。主机的行为基于外部应用服务器的可用性和功能而改变。 0028 开放平台接口的配置、 功能、 实现级以及主机 102 对该开放平台接口的约定的遵 守确定了对终端用户可用的外部应用服务器的功能。 如果主机不能完全实现开放平台接口 或不满足外部应用服务器的某个功能的要求, 则该功能。
32、对用户不可用。 具体而言, 如果主机 不公开对具体功能的支持, 则服务应用抑制需要不受支持的功能的任意特征。 例如, 当主机 不能保存文件的已更新副本时, 服务应用不应当允许用户编辑文档。 此外, 对访问被连接的 服务应用的管理控制是通过主机的配置任选地可用的。 0029 主机管理外部应用服务器所提供的服务应用的许可。 主机在其检查用户对文件的 准许的同时检查许可。为了对文档执行所选操作, 用户必须具有对文件执行操作的适当的 准许以及使用相关联的服务应用的有效许可这二者。 主机向外部应用服务器报告准许和许 可检查的结果。另外, 主机任选地检查以查看对服务应用所支持的特定文档类型的访问是 否经由。
33、在主机中配置的管理控制被阻止。主机无法保存或检索被阻止的文档类型。 0030 在各个实施例中, 主机响应于点击与服务应用相关联的文件类型, 在调用默认动 作之前检查许可。如果用户不具有与默认点击操作相关联的服务应用的适当的许可, 则该 主机不会尝试执行命令 (即, 调用操作) 。在其他实施例中, 主机不会尝试执行用户缺少其适 当的准许的命令或针对被阻止的文档类型的命令。 0031 在各个实施例中, 主机还在生成用于访问外部应用服务器提供的功能的动态用户 界面控件 (诸如, 上下文菜单) 时检查许可。动态用户界面控件通常为用户提供可用于该文 档类型的操作列表。 如果用户不具有与用于文档类型的操作。
34、相关联的服务应用的适当的许 可, 则该主机不在动态用户界面控件中显示命令。 在其他实施例中, 动态用户界面控件不示 出用户缺少其适当的准许的命令或与被阻止的文档类型有关的命令。 0032 在各个实施例中, 诸如查看操作之类的基本功能在没有许可的情况下是可用的, 而诸如编辑和转换操作的高级功能则需要许可。在一个实施例中, 逐个用户或逐个机器地 许可对服务应用的使用。在另一个实施例中, 对服务应用的使用受到可用并发许可的数量 的限制。在涉及多个服务应用的又一个实施例中, 单个许可应用于使用单个外部应用服务 器所提供的全部服务应用。在另一个实施例中, 需要用于每个服务应用的许可。 0033 如前所述。
35、, 主机是内容服务器, 该主机在该内容服务器中提供文档存储。 在替换的 实施例中, 主机被配置成提供对在主机外部存储 (例如, 存储在网络文件系统中或在附连于 网络的存储设备上) 的文档的访问。在替换的实施例中, 外部应用服务器被配置成请求存储 说 明 书 CN 102968437 A 8 6/13 页 9 在任意可访问的内容服务器或文件存储系统中的文档, 该文件存储系统接受并理解用开发 平台接口作出的文件操作请求。 0034 web 服务器提供对主机和服务应用的在线访问。当外部应用服务器具有对 web 服 务器的独占访问时, 它是最具响应性的。由对 web 服务器的共享使用导致的通信滞后更有。
36、 可能使体验对终端用户来说不那么积极。共享的 web 服务器在某些情况下是可以接受的, 其中共享该 web 服务器的其他应用具有低带宽要求、 不经常被访问、 和 / 或传送少量的数 据。在一个实施例中, 主机和 / 或外部应用服务器使用独立 web 服务器的服务。在另一个 实施例中, 外部应用服务器集成了 web 服务器。在又一个实施例中, 主机集成了由外部应用 服务器使用的 web 服务器。 0035 用于主机与外部应用服务器之间的通信的开放平台接口允许与文档交互, 并使用 访问令牌作为授权 / 认证机制。 0036 开放平台接口既是可扩展的, 又提供对跨版本的接口通信的支持。开放平台接口 。
37、的基本数据传输机制方便了跨平台的通信。在各个实施例中, 虽然应当认识到其他人类和 /或机器可读数据交换格式落入本发明的范围和精神, 但基本数据是在JavaScript Object Notation(JSON) 主体中来传送的。开放平台接口还遵守诸如 Windows Communication Foundation(WCF) 的一些应用边界接口所使用的 “忽略你不预期的 (ignore what you weren t expecting) ” 和 “使用你正预期但未得到的数据的默认值 (use default values for data you were expecting but di。
38、dn t get) ” 的面向服务的体系结构原则。开放平 台接口所使用的 “默认值必然带来可接受的行为” 的语义有助于维持高度跨版本的世界中 的功能。该语义在 SkyDrive、 Hotmail 以及外部应用服务器的生产和集成环境间维持功能 时尤其有用。 0037 开放平台接口的主要可扩展性机制是通过功能集 (例如, Cobalt、 CoAuth、 锁定、 更 新) 的声明、 实现和消费。核心开放平台接口仅包含用于获得与文档相关联的元数据的方 法、 以及用于获得文档数据的方法。 主机支持的全部其他方法在文档元数据内被声明, 并作 为被支持的功能集列表来返回。每个功能集由串来声明, 并承诺实现开。
39、放平台接口所支持 的方法集合。开放接口定义了功能集的名称以及功能集承诺的相关联的方法。主机可用于 实现的功能集受限于开放平台接口的约定。换言之, 开放平台接口不提供尝试发现与简单 对象访问协议 (SOAP) 元数据交换所提供的相类似的完全通用方法的机制。开放平台接口 通过声明新的功能集来轻松地扩展。 0038 为了提供对服务应用的访问, 主机 102 必须了解外部应用服务器 104 所提供的可 用性和功能。外部服务应用发现过程允许主机 102 了解可用的外部应用服务器, 而不需要 管理员手动地配置该主机102。 在外部服务应用发现过程期间, 主机102了解外部应用服务 器 104 所支持的文件。
40、格式和开放平台接口动词。 0039 图 2 示出将主机 102 与外部应用服务器 104 进行连接的外部服务应用发现过程 200 的流程图。外部服务应用发现过程 200 是由主机通过提供发现数据源 202 的位置来发 起, 该发现数据源 202 包含描述外部应用服务器 104 的功能的信息。在所示的实施例中, 发 现数据被包含在由外部应用服务器 104 维护的发现配置文档中, 并且发现数据源 202 是由 发现 URL(例如, 域名) 定址的外部应用服务器 104 的发现端点。在所示的实施例中, 主机 102经由主机的配置用户界面204来接受外部应用服务器位置, 并生成发现URL206。 在一。
41、个 说 明 书 CN 102968437 A 9 7/13 页 10 实施例中, 发现端点 202 具有相对于外部应用服务器 104 的位置的固定位置, 并且主机 102 通过将发现端点 202 的位置 (例如, 相对路径) 追加到外部应用服务器 104 的位置来生成发 现 URL。在另一个实施例中, 管理员必须指定完整的发现 URL 206。或者, 由主机消费的发 现数据不由服务应用服务器来提供。相反, 发现数据源 202 是由管理员提供的文件 (即, 发 现配置文档) , 而向主机 102 提供的发现数据源 202 的位置是该文件的位置。 0040 在获得发现 URL 之后, 主机 102。
42、 向发现端点 202 发出发现请求 208。在一个实施例 中, 发现请求 208 是针对发现 URL 的 HTTP GET 请求。发现端点 202 为主机 102 提供与发现 服务 210 连接的能力。发现服务 210 一接收到发现请求 208 就响应以包含发现数据 214 的 发现响应消息 212, 该发现数据 214 描述由在外部应用服务器上运行的服务应用提供的功 能。发现数据 214 根据开放平台接口的约定来格式化, 并且包含由该约定指定的信息。在 一个实施例中, 发现响应消息212在消息主体中不包含任何HTML。 相反, 主体包含以主机理 解的 XML 格式描述的发现数据。在各个实施例。
43、中, 发现数据包含诸如服务应用的标识符、 对 服务应用的描述、 文件扩展名、 与该文件扩展名相关联的操作 (即动作) 、 主机的任意开放平 台接口实现要求 (例如, 功能集) 、 负责处理操作的服务应用的位置、 和 / 或与该文件扩展名 相关联的文档的 mime 类型等信息。 0041 主机 102 消费由发现服务 210 返回的发现数据 214。在消费了发现数据 214 之后, 主机102为主机配置存储216中相关联的文件类型存储关于由服务应用支持的动作的信息 (即, 注册服务应用) 。在完成外部服务应用发现过程 200 之后, 主机的行为变为集成服务应 用的被支持的功能。 0042 发现数。
44、据内容和结构由开放平台接口来指定。用于发现的核心数据包括动作标 识符、 与该动作相关联的文件类型、 和用于调用该动作的源 URL。任选的发现数据包括服务 应用标识符、 对主机支持动作的要求、 文件夹 / 目录标识符、 网络区域标识符、 默认点击行 为、 目标扩展标识符、 和证明标识符。动作标识符由开放平台接口的约定来定义, 并且定义 了针对特定文件类型而允许的操作。动作标识符的示例包括查看、 编辑、 编辑新的、 移动查 看、 移动处理程序、 嵌入查看、 呈现 (呈现广播) 、 加入 (加入广播) 、 转换。文件类型描述向其 应用动作的文件的类型。在一个实施例中, 文件类型由文件扩展名来指定。源。
45、 URL 指定用 于确定外部应用服务器的绝对 URL 的输入数据, 该外部应用服务器执行用于匹配文件类型 的动作。 服务应用标识符是用于标识了服务应用的支持应用 (例如,“Microsoft Excel Web App” ) 的人和机器可读标识符 (例如, 串值) 。网络区域标识符描述了在从特定的网络区域调 用时用于动作的特定参数 (例如, 源 URL) 。服务应用标识符和网络区域标识符用于对文件 类型 / 操作对进行分组, 并且提供了在主机配置用户界面中呈现可用的服务应用的有意义 的方式。文件夹 / 目录标识符为特定动作与文件类型一起使用或代替文件类型来标识该动 作的对象。 默认点击行为指定。
46、在用户选择由服务应用支持的文件类型而不通过用户界面选 择具体动作时由主机调用的动作。 目标扩展标识符指定用于转换动作的目标文件的文件类 型。在一个实施例中, 目标扩展标识符由文件扩展名来指定。 0043 注册将每个服务应用 118 所支持的文件类型、 外部应用服务器 104 对每种被支持 的文件类型所支持的操作、 和外部应用服务器中用于调用用于每种被支持的文件类型的操 作的计算设备的 URL 相关联。换言之, 当主机 102 连接到外部应用服务器 104 时, 该外部应 用服务器104将成对的文件类型和操作的列表与用于调用用于该文件类型的操作的URL一 说 明 书 CN 102968437 A。
47、 10 8/13 页 11 起返回。URL 中需要的参数由开放平台接口来定义。 0044 在发现期间, 主机基于此时其所理解的约定来选择利用或忽略各个动作。在一个 实施例中, 主机 102 在注册成对的文件类型和操作之前, 验证它支持对操作的要求。如果主 机 102 不支持该操作和 / 或不满足主控要求, 则不注册成对的文件类型和操作。具体而言, 在一些实施例中, 主机使用 “要求” 属性, 其指定用于滤除主机无法支持的动作的开放平台 接口实现要求。换言之, 如果主机不识别或不理解 “要求” 属性值中列出的全部字段, 或选 择不支持开放平台接口的约定, 则主机不注册 (即实现) 成对的文件类型。
48、和操作, 并且不向 用户提供该功能。 0045 源 URL 使用生成与每个动作相关联的有效服务应用入口 URL 的参数。对于动作, 服务应用入口 URL 参数由开放平台接口中的约定来指定。某些参数是必需的, 而其他参数 是任选的。在一个示例性实施例中, 必需的参数由方括号 ( “” 和 “” ) 来界定, 而任选的参 数由尖括号 ( “” ) 来界定。如果主机不理解一个必需的参数, 则主机不注册动作。相 反, 如果不理解可选的参数, 则主机可以选择注册动作。在此情形中, 与可选参数相关联的 功能被简单地丢失, 但是主机仍然能够提供与主机理解的功能一样多的动作。这个行为提 供了不同版本的开放平台。
49、接口间的跨版本兼容性的基础。 即使对服务应用服务器的升级提 供了新的功能, 但主机能继续与升级后的服务应用服务器一起工作。主机简单地继续提供 对它理解的功能的支持, 并忽略它不理解的任何功能。任选参数的示例包括用户界面的语 言、 对象的用户界面的语言、 是否嵌入演示帧、 是否允许演示参与者独立地切换幻灯片、 以 及是否示出幻灯片的缩略图。 0046 主机通常可以从各个网络区域访问。 通常通过其在网络内部还是外部以及是否使 用传输层安全来描述网络区域。为了全面描述外部应用服务器对主机的功能, 发现数据的 一个实施例通过网络区域标识符来描述用于一个或多个可能的区域配置的文件类型 / 操 作对。例如, 为了与可通过外联网 (例如, 因特网) 和内联网 (例如, 企业局域网) 来访问的主 机一起工作, 发现数据的一个实施例使用用于内部使用的服务应用 URL 以及用于外部使用 的服务应用 URL 来描述每个文件类型 / 操作对。类似的, 发现数据的一个实施例使用用于 与开放网络协议 (例如, HTTP) 一起使用的服务应用 URL 以及容纳允许使用安全和不。