CN107533468A - 用于云和设备套件的可扩展性捆绑包 - Google Patents

用于云和设备套件的可扩展性捆绑包 Download PDF

Info

Publication number
CN107533468A
CN107533468A CN201680024544.9A CN201680024544A CN107533468A CN 107533468 A CN107533468 A CN 107533468A CN 201680024544 A CN201680024544 A CN 201680024544A CN 107533468 A CN107533468 A CN 107533468A
Authority
CN
China
Prior art keywords
application
expansion module
applications
external member
versions
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201680024544.9A
Other languages
English (en)
Inventor
D·布朗
D·普加乔夫
H·L·瓜达拉玛
S·提鲁格南亚桑班坦
X·吴
J·拉蒂
M·奥多涅斯
R·J·萨尔加多
Y·李
G·哈尔
R·沃德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
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
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107533468A publication Critical patent/CN107533468A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

提供了如下的接口机制:该机制用于开发者将一组扩展(插件)一起捆绑到生产力套件中,从而允许终端用户和系统管理员以统一的方式管理它们的生命周期。诸如发现、获取、授权、部署、管理、更新以及类似项的各方面可以针对捆绑包来解决,而不是不同扩展中的每种扩展(例如,用于同一应用的不同版本(例如,桌面版本、网页应用版本、移动版本等)的扩展)。捆绑包还可以提供将特定功能集合或者商业产品匹配到特定用户或者消费者简档的方式。

Description

用于云和设备套件的可扩展性捆绑包
背景技术
人们通过用户接口与计算机应用进行交互。虽然音频、触觉以及类似形式的用户接口是可用的,但是通过显示设备的可视用户接口是最常见形式的用户接口。随着用于计算设备的越来越快且越来越小的电子设备的发展,越来越小尺寸的设备(例如,手持计算机、智能电话、平板设备和类似的设备)已经变得常见。这样的设备执行各种各样的应用,其范围从通信应用到生产力应用。许多这样的应用允许通过扩展或者插件来执行第三方应用或者服务特征。一些插件可以是自动化的,也就是说,可以使得应用同意在后台自动地运行某种脚本,而不管用户输入。
由于设备和平台的多样性,同一应用的不同版本可以以不同的方式来实现,由此使得安装和管理扩展或者插件潜在地繁琐。
发明内容
提供该发明内容,以便以简化的形式介绍以下在具体实施方式中进一步描述的一些概念。该发明内容并不旨在专门标识所要求保护的主题的关键特征或者必要特征,也不旨在辅助确定所要求保护的主题的范围。
各实施例涉及用于网页和其它应用的可扩展性捆绑包(bundle)。根据一些实施例,可以提供诸如应用编程接口(API)之类的接口,以将扩展模块添加到例如生产力套件内的一个或多个应用中。扩展模块可以通过以下各项来定义:类型、行为、属性、激活参数和/或生命周期事件。可以基于定义来实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本的添加,其中,这些版本可以包括网页应用、桌面应用或者移动应用。扩展模块然后可以被集成到一个或多个应用或者一个或多个版本中。
这些和其它特征和优点将从对以下详细描述的阅读以及对相关联的附图的回顾中变得显而易见。应理解的是,上述的一般描述以及以下的详细描述都是解释性的,而并不限制所要求保护的方面。
附图说明
图1包括可以与扩展集成的应用的示例环境;
图2示出描绘应用以及可以与其一起使用的潜在插件的概念图;
图3示出插件(扩展)通过类型的定义;
图4示出插件的四种示例类型;
图5示出插件可以如何分布;
图6示出示例类型、文件处理程序以及其各方面;
图7是简化的联网环境,其中可以实现根据各实施例的系统;
图8是示例计算设备的框图,其可以用于实现对扩展的捆绑;以及
图9示出根据各实施例的用于提供对扩展的捆绑的方法的逻辑流图。
具体实施方式
如上简要描述的,可以提供如下的机制:该机制用于开发者将一组扩展(或插件)一起捆绑到应用套件和模块中,从而允许终端用户和系统管理员以统一的方式管理它们的生命周期。诸如发现、获取、授权、部署、管理、更新以及类似项的各方面可以针对捆绑包来解决,而不是不同扩展中的每种扩展(例如,用于同一应用的不同版本(例如,桌面版本、网页应用版本、移动版本等)的扩展)。捆绑包还可以提供将特定功能集合或者商业产品匹配到特定用户或者消费者简档的方式。
在以下的详细描述中,参照了形成其部分并且通过说明、特定实施例或者例子的方式示出的附图。在不脱离本公开内容的精神或者范围的情况下,可以将这些方面进行组合,可以使用其它方面,以及可以进行结构改变。因此,以下的详细描述并不被视为限制性的,并且本发明的范围是由所附的权利要求及其等效物来限定的。
虽然将在结合在个人计算机上的操作系统上运行的应用程序来执行的程序模块的一般背景下描述一些实施例,但是本领域技术人员将认识到的是,各方面还可以结合其它程序模块来实现。
通常,程序模块包括例程、程序、组件、数据结构以及执行特定任务或者实现特定抽象数据类型的其它类型的结构。此外,本领域技术人员将明白的是,各实施例可以利用其它计算机系统配置来实施,其包括手持设备、多处理器系统、基于多处理器或者可编程消费者电子设备、小型计算机、大型计算机以及类似的计算设备。各实施例还可以在分布式计算环境中实施,在分布式计算环境中,任务可以由通过通信网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储设备二者中。
一些实施例可以被实现为计算机实现的过程(方法)、计算系统或者被实现为制品(例如,计算机程序产品或者计算机可读介质)。计算机程序产品可以是计算机存储介质,其可由计算机系统读取并且编码包括用于使得计算机或者计算系统执行示例过程的指令的计算机程序。计算机可读存储介质是计算机可读存储器设备。计算机可读存储介质可以例如经由以下各项中的一项或多项来实现:易失性计算机存储器、非易失性存储器、硬盘驱动器、闪速驱动器、软盘或者压缩光盘以及类似的硬件介质。
贯穿本说明书,术语“平台”可以是用于提供对各个环境中的扩展或者插件的捆绑的软件和硬件组件的组合。平台的例子包括但不限于:在多个服务器上执行的托管服务、在单个计算设备上执行的应用以及类似的系统。术语“服务器”通常指代通常在联网环境中执行一个或多个软件程序的计算设备。
术语“插件”、“扩展”和“扩展模块”在本文中可互换地使用,并且指代同一实体。如本文中使用的,计算设备指代包括至少存储器以及一个或多个处理器的设备,其包括服务器、台式计算机、膝上型计算机、平板计算机、智能电话、车载计算机或者可穿戴计算机。存储器可以是计算设备的可移动或者不可移动组件,其被配置为存储要由一个或多个处理器执行的一个或多个指令。处理器可以是计算设备的组件,其耦合到存储器并且被配置为结合由存储器存储的指令来执行程序。本文描述的动作或者操作可以在单个处理器上、在多个处理器上(在单个机器中或者分布在多个机器上)或者在多核处理器中的一个或多个核上执行。操作系统是被配置为管理计算设备的硬件和软件组件的、提供常用服务和应用的系统。集成模块是应用或者服务的组件,其被集成到应用或者服务内,以使得应用或者服务被配置为执行该组件。计算机可读存储器设备是经由以下各项中的一项或多项来实现的物理计算机可读存储介质:易失性计算机存储器、非易失性存储器、硬盘驱动器、闪速驱动器、软盘或者压缩光盘、以及在其上包括指令以将内容自动地保存到某个位置的类似的硬件介质。用户体验—与应用或者服务相关联的可视显示器,用户通过可视显示器与应用或者服务交互。用户动作是指用户与应用的用户体验或者由服务提供的用户体验之间的交互,其包括以下各项中的一项:触摸输入、手势输入、语音命令、眼睛跟踪、陀螺仪输入、笔输入、鼠标输入以及键盘输入。应用编程接口(API)可以是用于应用或者服务的一组例程、协议和工具,其使得应用或者服务能够与由各个实体管理的一个或多个其它应用和服务进行交互或者通信。
图1包括可以与扩展集成的应用的示例环境。
应用可以被配置用于各种环境。因此,可能必须对扩展进行设置以用于应用的不同环境或者版本。例如,应用可以具有桌面(本地安装的)版本、网页版本或者移动版本。此外,应用可以是应用套件的部分,其中,一些功能在套件总称(umbrella)之下的多个层处管理。应用还可以是协同服务的部分,其可以对应用功能和/或可扩展性施加限制或者额外的要求。一些应用可能要求扩展是基于xml的、基于分组的、或者由目录服务管理。根据应用和扩展类型,扩展可以具有集成到应用用户接口中的用户接口,它们可以具有它们各自的用户接口,或者没有用户接口。
图100示出两种示例配置。托管服务110可以提供网页应用112,用户可以通过他们计算设备上的浏览器106访问网页应用112。浏览器106可以与其它服务120相关联。用户希望使用的任何扩展可以通过网页应用112集成到该配置中。另一示例配置是本地应用104,其可以被安装在计算设备上,并且提供与网页应用112类似的功能。本地应用104可以直接地或者通过目录服务108集成扩展,目录服务108可以协调针对操作系统102内的所有应用的注册和其它服务。
在不同类型/版本的应用的情况下,扩展可以与不同的生命周期、生命周期机制和获取方法相关联。此外,针对每种类型而言,认证方法可以是不同的。针对不同的应用/扩展类型而言,开始体验可以改变。此外,不同的术语可以用于类似的概念,并且可以提供不同的工具或者调试体验。因此,创建以及安装用于套件内的类似应用或者甚至不同的平台上的相同应用的扩展可以涉及部署、获取、管理若干不同的、不相干的项目。
根据一些实施例的统一应用模型可以降低针对开发者、管理员以及用户自定义应用和应用套件的冲突。在较简单的开发体验的情况下,开发者可以更容易地创建扩展,并且在他们如何缩放他们的应用方面具有更多的灵活性。可以将自定义特征作为一个块(chunk)(而不是多个片段)提交给应用/扩展模块商店。可以将插件的整个套件作为一个改变进行更新,并且依赖关系更容易跟踪和管理。
图2示出描绘应用以及可以与其一起使用的潜在插件的概念图。
在提供用于开发者将一组扩展(或者插件)一起捆绑到应用(用于其不同的版本)或者套件的机制时,可以使用由用于消费者和组织场景的集中式平台驱动的简单的生命周期和许可模型。扩展/应用商店(或者目录)中的单个列表可以扩展到多个主机应用。简化的模型可以提供更少、更清楚以及容易消化的概念,以便用户理解。还可以通过开发者门户来简化扩展创建过程,开发者门户使得手动编辑扩展清单和元数据是可选的。
如图200中所示,虽然应用202(例如,生产力应用)无需具有扩展,但是可以通过可以实现补充功能的扩展来增强其功能和用户体验,扩展有时可以允许不同应用之间的内聚性。如果其是套件的一部分,那么应用202可以使用该套件的应用编程接口(API)、单点登录(SSO)特征等。因此,应用202可以包含零个、一个(网页插件204)或者多个扩展(网页插件206)。扩展的诸如发现、获取、授权、部署、管理、更新以及类似项的各方面可以针对捆绑包(而不是不同扩展中的每个扩展)来解决。虽然在本文中将生产力应用和套件作为针对各个实施例的示例环境进行了讨论,但是各实施例并不限于那些环境,并且可以在其它应用或者套件中实现。
图3示出插件(扩展)通过各类型的定义。
图300示出包含扩展(网页插件304)的应用302,该扩展可以是特定类型306。该扩展的类型指示该扩展进行的操作。例如,扩展可以用于提供文件转换(将文档转换为图像文件)、文档批准(签名记录)、安全(病毒、垃圾信息保护),将应用的功能扩展到另一应用(文字处理应用中的电子表格功能、云存储服务、分析服务、共享服务以及更多的服务)。
因此,扩展可以使得用户能够在应用302内利用第三方服务或者应用,而无需完全激活第三方服务或者应用(以及交换用户接口、文档、数据等)。为了应用内的扩展的无缝操作,扩展可以具有定义的属性(例如,图标、描述等)、激活参数(例如,文件的位置、安全令牌等)以及生命周期事件(例如,在安装或者卸载时发生的事件)。在根据各实施例的能够实现对扩展的捆绑的系统中,可以一次定义扩展的不同方面(其可能必须针对主机应用的不同版本而自定义(例如,考虑到显示要求,要显示的图标可能必须在桌面应用与移动应用之间是不同的))。因此,捆绑可以防止用户或者开发者必须将每个扩展视为单独的实体并且相应地处理。例如,开发者可以简单地定义用于同一包(package)中的不同应用版本的参数,而用户可以简单地选择(或者其可以自动地确定)主机应用版本,并且在安装时处理单个包。
图4示出插件的四种示例类型。
如图400中所示,被集成到应用402中的扩展404可以是生产力插件412、存储提供商插件414、文件处理程序416或者词典/洞察(insight)插件418。在一个实施例中,一些扩展可以包括这些示例功能中的一项或多项。例如,扩展可以提供对云存储的访问,同时还能够实现对非本地文件的处理。其它扩展可以通过一个扩展提供多个生产力功能。其它扩展可以将与应用的一个版本(例如,桌面版本)相关联的功能提供给同一应用的另一版本(例如,在线版本)。
生产力插件412、存储提供商插件414以及词典/洞察插件418被视为扩展客户端应用的扩展(添加到主机应用的功能上)。所添加的功能可以是主机应用的本地功能的直接扩展、类似应用中的被引入到主机应用中的功能或者独立和补充的功能。
图5示出插件可以如何分布。
在一些实施例中,扩展客户端应用502的扩展(例如,生产力插件512、存储提供商插件514以及词典/洞察插件518)可以经由如图500中示出的目录504单独地部署在它们的目标中。可以在目录服务中注册这些单独的插件,以便在运行时访问客户端应用内的数据,即使它们不是生产力应用的部分。
图6示出示例类型——文件处理程序(file handler),以及其各方面。
图600示出扩展的五种主要组成部分的示例细节620:类型、行为、属性、激活参数以及生命周期事件。扩展的类型提供了其定义。在图600的例子中,扩展604可以是生产力插件612、存储提供商插件614、文件处理程序616或者词典/洞察插件618。被选择用于扩展604的示例类型是文件处理程序。
扩展的行为可以描述扩展如何以及何时改变主机应用(或者套件)。在文件处理程序例子中,扩展自定义在线服务和应用中的文件图标、预览器以及编辑体验。扩展的属性可以包括关于扩展要运行所需要的信息。激活参数可以在运行时被传递给扩展以给予其上下文,并且可以包括调用该扩展的应用的定义、应用使用的语言、文件位置、安全信息(例如,在何处接收目录服务令牌)等。
扩展的生命周期事件可以使得扩展能够在安装或者卸载时添加另外的定制,例如,特别是将按钮添加到应用的用户接口(该按钮允许在扩展中打开文档)以及在卸载时移除按钮。
在一些实施例中,可以与其它扩展和许可元数据一起提供用于声明可扩展组件的用户接口。可以通过同一用户接口查看和编辑现有的扩展元数据。还可以使得开发者能够从同一用户接口定义新的扩展。在其它实施例中,向导程序可以允许开发者查看和选择可扩展性选项,例如,哪个扩展可以被添加到哪些应用中,指定属性/行为/生命周期事件。
已经描述了图1至6中的使用以下各项来提供对扩展的捆绑的例子:特定功能、扩展类型、环境、系统、服务、应用和过程。各实施例并不限于根据这些例子的特定网络环境、系统、服务、应用和进程。
将一组扩展(插件)一起捆绑到生产力套件可以允许终端用户和系统管理员以统一的方式管理它们的生命周期,并且由此改善用户效率。例如,与使得诸如发现、获取、授权、部署、管理、更新以及类似项的各方面能够针对捆绑包来解决,而不是不同的扩展中的一个扩展,这能够实现增加的用户接口性能。此外,可以避免用于不同的应用版本或者套件内的不同应用的各种扩展的下载和配置,由此减少存储器使用。
各实施例解决了由于联网计算和基于云的服务所创建的无法由人管理的极大规模操作引起的需求。本文中描述的动作/操作不仅仅使用计算机,而是作为用作结合大量扩展提供的服务(例如,生产力套件)的软件的直接结果的系统的处理结果。
图7是可以在其中实现各实施例的示例联网环境。可以经由在一个或多个服务器714(例如,托管服务)上执行的软件来实现将一组扩展(或者插件)一起捆绑到生产力套件。平台可以通过网络710与各个计算设备(例如,智能电话713、移动计算机712或者桌面计算机711(“客户端设备”))上的客户端应用进行通信。
在客户端设备711-713中的任何客户端设备上执行的客户端应用可以促进经由由服务器714或者在单独的服务器716上执行的应用的通信。诸如发现、捕获、授权、部署、管理、更新和类似项的各方面可以针对捆绑包来解决,而不是不同的扩展中的每种扩展(例如,用于同一应用的不同版本(例如,桌面版本、网页应用版本、移动版本等)的扩展)。捆绑包还可以提供用于将特定功能集合或者商业产品匹配到特定用户或者消费者简档的方式。平台可以将与扩展以及对扩展的捆绑相关联的数据直接地或者通过数据库服务器718存储在数据存储装置719中。
网络710可以包括服务器、客户端、互联网服务提供商和通信介质的任何拓扑。根据各实施例的系统可以具有静态或者动态的拓扑。网络710可以包括安全网络(例如,企业网络)、不安全网络(例如,无线开放网络)或者互联网。网络710还可以协调其它网络(例如,公共交换电话网络(PSTN)或者蜂窝网络)上的通信。此外,网络710可以包括短距离无线网络,例如,蓝牙或者类似网络。网络710提供本文描述的节点之间的通信。通过举例而非限制的方式,网络710可以包括无线介质,例如,声、RF、红外线和其它无线介质。
可以采用许多其它配置的计算设备、应用、数据源和数据分布系统来提供针对扩展的捆绑。此外,图7中讨论的联网环境仅是出于说明的目的。各实施例并不限于示例应用、模块或者过程。
图8和相关联的讨论旨在提供对可以用于实现对扩展的捆绑的通用计算设备的简要、一般描述。
例如,计算设备800可以用作服务器、桌面计算机、便携式计算机、智能电话、专用计算机或者类似设备。在示例基本配置802中,计算设备800可以包括一个或多个处理器804和系统存储器806。存储器总线808可以用于处理器804与系统存储器806之间进行通信。在图8中通过内部虚线内的那些组件来示出基本配置802。
根据期望的配置,处理器804可以是任何类型,包括但不限于微处理器(μΡ)、微控制器(μθ)、数字信号处理器(DSP)或者其任意组合。处理器804可以包括一个或多个级别的缓存(例如,级别缓存存储器812)、一个或多个处理器核814以及寄存器816。示例处理器核814可以(每个)包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或者其任意组合。示例存储器控制器818还可以与处理器804一起使用,或者在一些实现中,存储器控制器818可以是处理器804的内部部分。
根据期望的配置,系统存储器806可以是任何类型,其包括但是不限于易失性存储器(例如,RAM)、非易失性存储器(例如,ROM、闪速存储器等)或者其任意组合。系统存储器806可以包括操作系统820、应用822和程序数据824。应用822可以包括一个或多个扩展(例如,插件826),以提供该应用内的额外功能。插件826的开发者可以将其作为捆绑包的部分来提供,并且其通过类型、行为、属性、激活参数和/或生命周期事件来定义。可以基于定义来将插件826集成到应用822以及应用822的其它版本中,其中,这些版本可以包括网页应用、桌面应用或者移动应用。如本文中所述,除了其它数据之外,程序数据824还可以包括可扩展性数据828,其可以用于定义和自定义插件826的各方面。
计算设备800可以具有用于促进基本配置802与任何期望的设备和接口之间的通信的额外的特征或者功能、以及额外的接口。例如,总线/接口控制器830可以用于促进在基本配置802与一个或多个数据存储设备832之间经由存储接口总线834的通信。数据存储设备832可以是一个或多个可移动存储设备836、一个或多个非可移动存储设备838或者其任意组合。举几个例子来说,可移动存储设备和非可移动存储设备的例子包括磁盘设备(例如,软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(例如,压缩光盘(CD)驱动器或者数字多功能光盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器。示例计算机存储介质可以包括在用于存储信息(计算机可读指令、数据结构、程序模块或者其它数据)的任何方法或者技术中实现的易失性和非易失性、可移动和非可移动介质。
系统存储器806、可移动存储设备836以及非可移动存储设备838是计算机存储介质的例子。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或者其它存储器技术、CD-ROM、数字多功能光盘(DVD)、固态驱动器、或者其它光存储、磁带盒、磁带、磁盘存储或者其它磁存储设备、或者可以用于存储期望的信息并且可以由计算设备800访问的任何其它介质。任何这样的计算机存储介质可以是计算设备800的一部分。
计算设备800还可以包括接口总线840,其用于促进从各种接口设备(例如,一个或多个输出设备842、一个或多个外围接口844以及一个或多个通信设备846)经由总线/接口控制器830到基本配置802的通信。示例输出设备842中的一些包括图形处理单元848以及音频处理单元850,其可以被配置为经由一个或多个A/V端口852与诸如显示器或者扬声器之类的各种外部设备进行通信。一个或多个示例外围接口844可以包括串行接口控制器854或者并行接口控制器856,其可以被配置为经由一个或多个I/O端口858与诸如输入设备之类的外部设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或者其它外围设备(例如,打印机、扫描仪等)进行通信。示例通信设备846包括网络控制器860,其可以被布置为促进在网络通信链路上经由一个或多个通信端口864与一个或多个其它计算设备862的通信。一个或多个其它计算设备862可以包括服务器、计算设备以及类似的设备。
网络通信链路可以是通信介质的一个例子。通信介质通常可以由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或者其它传输机制)中的其它数据,并且可以包括任何信息传送介质。“经调制的数据信号”可以是具有其特性集合中的一个或多个特性的信号或者以对信号中的信息进行编码的这样的方式而改变。通过举例而非限制的方式,通信介质包括诸如有线网络或者直连有线连接之类的有线介质、以及诸如声、射频(RF)、微波、红外线(IR)和其它无线介质之类的无线介质。如本文中使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备800还可以被实现为通用或者专用服务器、大型主机或者包括以上功能中的任何功能的类似的计算机的一部分。计算设备800还可以被实现为个人计算机,其包括膝上型计算机和非膝上型计算机配置二者。
示例实施例还可以包括用于提供对扩展的捆绑的方法。这些方法可以以任何数量的方式(包括本文描述的结构)来实现。一种这样的方式可以通过本公开内容中描述的类型的设备的机器操作。另一可选的方式可以是结合一个或多个人操作者执行这些方法中的各个操作中的一个或多个,一个或多个人操作者执行这些操作中的一些操作,而其它操作可以由机器来执行。这些人操作者无需共处一地,而是每个人可以仅与执行程序的一部分的机器在一起。在其它实施例中,人机交互可以是自动的,例如通过可以是机器自动的预先选择的准则。
图9示出根据各实施例的用于提供对扩展的捆绑的方法的逻辑流图。过程900可以在计算设备(例如,计算设备800或者其它系统)上实现。
过程900以操作910开始,在操作910中,可以提供诸如应用编程接口(API)之类的接口以将扩展模块添加到例如生产力内的一个或多个应用中。扩展模块可以通过类型、行为、属性、激活参数和/或生命周期事件来定义。
在操作920处,可以基于定义来实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本的添加。这些版本可以包括网页应用、桌面应用或者移动应用。在操作930处,可以将扩展模块集成到一个或多个应用或者一个或多个版本中。
在过程900中包括的操作是出于说明的目的。提供对扩展的捆绑可以通过具有较少或者额外步骤的类似的过程,以及以不同次序的使用本文描述的远离的操作来实现。除了其它例子之外,本文描述的操作还可以由在一个或多个计算设备、一个或多个处理器核、专用处理设备和/或通用处理器上操作的一个或多个处理器来执行。
根据一些例子,描述了被配置为提供用于应用和应用套件的可扩展性捆绑包的计算设备。计算设备可以包括被配置为存储与应用套件的执行相关联的一个或多个指令的存储器、以及耦合到存储器并且被配置为执行应用套件的处理器。应用套件可以包括管理模块,其被配置为提供用于将扩展模块添加到应用套件内的一个或多个应用的接口,其中,扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数以及生命周期事件。管理模块还可以被配置为基于定义来实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本中的添加。应用套件还可以包括集成模块,其被配置为将扩展模块集成到一个或多个应用或者一个或多个版本中。
根据其它例子,一个或多个应用的版本可以包括网页应用、桌面应用和移动应用中的一项或多项。管理模块还可以被配置为基于类型定义来识别扩展模块。类型定义可以包括以下各项中的一项或多项:生产力扩展模块、存储提供商扩展模块、文件处理程序扩展模块以及词典和洞察扩展模块。管理模块还可以被配置为基于行为定义来识别扩展模块的功能,基于属性定义来识别用于扩展模块运行的信息,以及在运行时将激活参数传递给扩展模块以将上下文提供给扩展模块。
根据另外的例子,集成模块可以被配置为基于生命周期事件定义,来识别在安装和卸载时用于扩展模块的自定义事件。管理模块还可以被配置为使得用户能够基于应用版本或者应用类型来配置可扩展性包,以选择和安装合适的扩展模块。管理模块还可以被配置为从与应用套件相关联的可扩展性目录接收用于可用扩展模块的可扩展性包。
根据其它例子,描述了用于提供用于应用和应用套件的可扩展性捆绑包的方法。该方法包括:提供用于将扩展模块添加到应用套件内的一个或多个应用的接口,其中,扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数以及生命周期事件。该方法还可以包括:基于定义,实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本的添加,其中,一个或多个应用的版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用。该方法还可以包括将扩展模块集成到一个或多个应用或者一个或多个版本中。
根据一些例子,该方法可以包括:提供用于使得开发者能够定义适用于应用套件内的应用或者应用的一个或多个版本的扩展模块的可扩展性包、而无需将每个扩展模块视为单独的实体的接口。提供用于使得开发者能够定义可扩展性包的接口可以包括:提供用于声明与当前的扩展模块以及许可元数据一起的扩展模块。
根据其它例子,该方法可以包括:使得开发者能够通过同一用户接口查看和编辑现有的扩展模块元数据,以及通过同一用户接口来定义新的扩展模块。该方法还可以包括:提供用于使得开发者能够查看和选择与以下各项相关联的可扩展性选项的向导:用于相关的应用的扩展模块的选择,扩展模块属性的说明,扩展模块行为的说明以及扩展模块生命周期事件的说明。该方法还可以包括:使得对可扩展性包内的多个扩展模块的一个或多个方面的管理能够针对可扩展性包、而不是多个扩展模块中的每个模块来解决,其中,一个或多个方面包括发现、获取、授权、部署和更新。
根据另外的例子,描述了一种计算机可读存储器设备,其具有存储在其上的用于提供用于生产力套件的可扩展性捆绑包的指令。所述指令可以包括:提供用于将扩展模块添加到生产力套件内的一个或多个应用的接口,其中,扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数和生命周期事件;基于定义,实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本的添加,其中,一个或多个应用的版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用;以及将扩展模块集成到一个或多个应用或者一个或多个版本中的选择的那些中。
根据另外的实施例,可以基于类型定义来识别扩展模块,可以基于行为定义来识别扩展模块的功能,可以基于属性定义来识别用于扩展模块运行的信息,以及可以在运行时将激活参数传递给扩展模块以将上下文提供扩展模块。生产力套件可以包括以下各项中的一项或多项:文字处理应用、电子表格应用、呈现应用、通信应用以及协同应用。所述指令还可以包括:通过与生产力套件相关联的可扩展性目录,来提供用于可用扩展模块的可扩展性包;以及使得管理者和用户中的一个或者二者能够基于应用版本或者应用类型来配置可扩展性包,以选择和安装合适的扩展模块。
根据一些例子,描述了一种用于提供用于应用和应用套件的可扩展性捆绑包的单元。所述用于提供用于应用和应用套件的可扩展性捆绑包的单元可以包括:用于提供用于将扩展模块添加到应用套件内的一个或多个应用的接口的单元,其中,扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数和生命周期事件。所述用于提供用于应用和应用套件的可扩展性捆绑包的单元还可以包括:用于基于定义,实现扩展模块到一个或多个应用以及一个或多个应用的一个或多个版本的添加的单元,其中,一个或多个应用的版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用。所述用于提供用于应用和应用套件的可扩展性捆绑包的单元还可以包括:用于将扩展模块集成到一个或多个应用或者一个或多个版本中的单元。
以上说明书、例子和数据提供了对实施例的组成部分的制造和使用的完整描述。虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应理解的是,在所附的权利要求中定义的主题未必限于上述的特定特征或者动作。确切而言,将以上描述的特定特征和动作作为实现权利要求和实施例的示例形式来公开。

Claims (10)

1.一种被配置为提供用于应用和应用套件的可扩展性捆绑包的计算设备,所述计算设备包括:
存储器,其被配置为存储与应用套件的执行相关联的一个或多个指令;以及
一个或多个处理器,其耦合到所述存储器并且被配置为执行所述应用套件,其中,所述应用套件包括:
管理模块,其被配置为:
提供用于将扩展模块添加到所述应用套件内的一个或多个应用中的接口,其中,所述扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数和生命周期事件;以及
基于所述定义,实现所述扩展模块到所述一个或多个应用以及所述一个或多个应用的一个或多个版本的添加;以及
集成模块,其被配置为:将所述扩展模块集成到所述一个或多个应用或者所述一个或多个版本中。
2.根据权利要求1所述的计算设备,其中,所述一个或多个应用的所述版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用。
3.根据权利要求1所述的计算设备,其中,所述管理模块被配置为:基于所述属性定义,来识别用于所述扩展模块运行的信息。
4.根据权利要求1所述的计算设备,其中,所述管理模块被配置为:在运行时将所述激活参数传递给所述扩展模块,以将上下文提供给所述扩展模块。
5.根据权利要求1所述的计算设备,其中,所述管理模块还被配置为:使得用户能够基于应用版本或者应用类型来配置可扩展性包,以选择和安装合适的扩展模块。
6.一种用于提供用于应用和应用套件的可扩展性捆绑包的方法,所述方法包括:
提供用于将扩展模块添加到应用套件内的一个或多个应用中的接口,其中,所述扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数和生命周期事件;
基于所述定义,实现所述扩展模块到所述一个或多个应用以及所述一个或多个应用的一个或多个版本的添加,其中,所述一个或多个应用的所述版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用;以及
将所述扩展模块集成到所述一个或多个应用或者所述一个或多个版本中。
7.根据权利要求6所述的方法,还包括:
提供用于使得开发者能够定义适用于所述应用套件内的应用或者所述应用的所述一个或多个版本的扩展模块的可扩展性包、而不必将每个扩展模块视为单独的实体的接口。
8.根据权利要求7所述的方法,其中,提供用于使得所述开发者能够定义所述可扩展性包的所述接口包括:
提供用于声明与当前的扩展模块以及许可元数据一起的扩展模块的用户接口。
9.根据权利要求6所述的方法,还包括:
使得对可扩展性包内的多个扩展模块的一个或多个方面的管理能够针对所述可扩展性包、而不是所述多个扩展模块中的每个模块来解决,其中,所述一个或多个方面包括发现、获取、授权、部署、更新、解除获取(移除)、解除授权以及重新授权。
10.一种计算机可读存储器设备,其具有存储在其上的用于提供用于生产力套件的可扩展性捆绑包的指令,所述指令包括:
提供用于将扩展模块添加到所述生产力套件内的一个或多个应用的接口,其中,所述扩展模块是通过以下各项中的至少一项来定义的:类型、行为、属性、激活参数和生命周期事件;
基于所述定义,实现所述扩展模块到所述一个或多个应用以及所述一个或多个应用的一个或多个版本的添加,其中,所述一个或多个应用的所述版本包括以下各项中的一项或多项:网页应用、桌面应用和移动应用;以及
将所述扩展模块集成到所述一个或多个应用或者所述一个或多个版本中的被选择的那些中。
CN201680024544.9A 2015-04-27 2016-04-26 用于云和设备套件的可扩展性捆绑包 Pending CN107533468A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562153401P 2015-04-27 2015-04-27
US62/153,401 2015-04-27
US14/863,971 US9917922B2 (en) 2015-04-27 2015-09-24 Extensibility bundles for a cloud and devices suite
US14/863,971 2015-09-24
PCT/US2016/029273 WO2016176162A1 (en) 2015-04-27 2016-04-26 Extensibility bundles for a cloud and devices suite

Publications (1)

Publication Number Publication Date
CN107533468A true CN107533468A (zh) 2018-01-02

Family

ID=57147794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024544.9A Pending CN107533468A (zh) 2015-04-27 2016-04-26 用于云和设备套件的可扩展性捆绑包

Country Status (4)

Country Link
US (1) US9917922B2 (zh)
EP (1) EP3289452A1 (zh)
CN (1) CN107533468A (zh)
WO (1) WO2016176162A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035396A (zh) * 2019-05-29 2020-12-04 塔塔顾问服务有限公司 供应一组解决方案的处理器实现的方法、系统和存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010540B2 (en) * 2016-06-23 2021-05-18 Microsoft Technology Licensing, Llc Productivity applications with views of social network group features
US11483137B2 (en) * 2020-01-22 2022-10-25 Micron Technology, Inc. Dynamic command extension for a memory sub-system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508858A (zh) * 2010-09-21 2012-06-20 微软公司 网页行为的增强控制

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996830B2 (en) * 2006-06-05 2011-08-09 International Business Machines Corporation Programming model generic application deployment
US8938732B2 (en) 2006-11-06 2015-01-20 International Business Machines Corporation Dynamically generating installable software artifacts in a canonical form
US8220007B1 (en) * 2007-10-01 2012-07-10 Adobe Systems Incorporated Systems and methods for extension of software features without changing the host software binary code
US8005930B2 (en) * 2009-06-03 2011-08-23 Microsoft Corporation Add-ins dynamically extending display targets and business-logic programming model
US8694988B2 (en) * 2010-10-22 2014-04-08 Adobe Systems Incorporated Runtime extensions
CA2744165A1 (en) 2011-06-23 2012-12-23 Ibm Canada Limited - Ibm Canada Limitee Centrally controlled proximity based software installation
JP2014056319A (ja) * 2012-09-11 2014-03-27 Canon Inc 情報処理装置およびプログラム、制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508858A (zh) * 2010-09-21 2012-06-20 微软公司 网页行为的增强控制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DUANE O"BRIEN: "Create your own browser extensions, Part 1: Extend your reach into Chrome,Write a basic browser extension for Chrome", 《HTTPS://WWW.IBM.COM/DEVELOPERWORKS/OPENSOURCE/LIBRARY/OS-EXTENDCHROME/OS-EXTENDCHROME-PDF.PDF》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035396A (zh) * 2019-05-29 2020-12-04 塔塔顾问服务有限公司 供应一组解决方案的处理器实现的方法、系统和存储介质
CN112035396B (zh) * 2019-05-29 2023-03-21 塔塔顾问服务有限公司 供应一组解决方案的处理器实现的方法、系统和存储介质

Also Published As

Publication number Publication date
WO2016176162A1 (en) 2016-11-03
US9917922B2 (en) 2018-03-13
US20160313990A1 (en) 2016-10-27
EP3289452A1 (en) 2018-03-07

Similar Documents

Publication Publication Date Title
US10705942B1 (en) Simulated testing of API
US10216554B2 (en) API notebook tool
US8918448B2 (en) Application component decomposition and deployment
US8904382B2 (en) Creating instances of cloud computing environments
US8793652B2 (en) Designing and cross-configuring software
US10567485B2 (en) Techniques for coordinating the sharing of content among applications
US20180101371A1 (en) Deployment manager
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US9195840B2 (en) Application-specific file type generation and use
US20130262986A1 (en) Systems, Methods, and Media for Managing Editable Previews of Webpages
US20160313882A1 (en) Support for non-native file types in web application environment
EP3488584A1 (en) Usage tracking in hybrid cloud computing systems
CN109716726A (zh) 基于云的应用部署中的凭证管理
CN105074652B (zh) 用于向打印机远程提供应用功能的方法和计算机系统
CN105556533A (zh) 自动生成证书文档
CN109683957A (zh) 功能扩展的方法及设备
CN107533468A (zh) 用于云和设备套件的可扩展性捆绑包
CN108140074B (zh) 管理应用特定的特征权限
JP6002302B2 (ja) Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム
US20210271458A1 (en) Managing an app method and system
US20150100888A1 (en) Providing a common interface for accessing and presenting component configuration settings
CN106575301A (zh) 经托管的服务中基础结构服务块的自动化编排
TW200912749A (en) System and method for automatic configuration of portal composite applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180102