第三方应用脚本能力的制作方法

文档序号:8926983阅读:655来源:国知局
第三方应用脚本能力的制作方法
【专利说明】
【背景技术】
[0001]软件应用经常遵循具体需求进行开发以提供某些能力。虽然软件应用开发者可以为终端用户提供有价值的功能,但是第三方脚本开发者可以通过提供改变或扩展软件应用功能的扩展、自动化、插件或类似代码来提升该基本功能,使得该应用更为用户友好。例如,web应用开发者可以创建用于发送和接收电子邮件的软件应用。该web应用可以包括用于找出并标记电子邮件的功能。该应用也可以对任意一个终端用户的电子邮件账户的容量大小具有限制。然而,该web应用可能并未向终端用户提供找出高于某个大小的电子邮件消息而使得他们能够删除大的电子邮件消息以释放其电子邮件账户中的空间的能力。第三方脚本开发者可以编写插件,当该插件被添加至该电子邮件应用时,能够找出并标记高于某个大小的所有电子邮件消息。终端用户可以将该第三方开发者的插件添加至其浏览器并且运行该插件从而轻易地找到大的电子邮件消息,使得这些消息能够在终端用户的电子邮件账户达到容量大小时被删除。
[0002]即使第三方脚本能够改善终端用户体验,但是非常少的软件应用开发者允许非受信的第三方脚本被添加至他们的web应用,这是因为添加第三方功能使得web应用开发者难以保持web应用的安全并且也使得终端用户对该web应用的体验不一致。
[0003]如图1所示,通常的第三方脚本(105)最经常地工作在web浏览器级别(101a, 101b)而并非是软件应用的组成部分。一种值得关注的浏览器级别的第三方脚本的示例是插件,它是能够对web应用的功能进行定制的软件组件。浏览器级别的脚本由于它们依赖于浏览器而存在问题。如果终端用户针对一个浏览器(1la)中的应用(103a)安装了诸如图1所示的脚本(105),但是随后更改了其用来访问相同应用的不同实例(103b)的浏览器(1lb),则该终端用户必须在新的浏览器中安装该脚本以便针对该应用获得该脚本的功能。如图1所示,由于该脚本并未被安装在浏览器2 (1lb)中,所以该应用的脚本105的功能扩展在浏览器I (1la)中可用而在浏览器2 (1lb)中不可用。
[0004]应当具有一种允许第三方脚本与主机应用紧密交互同时仍然保持安全的系统。该系统应当允许软件应用开发者安全地向其托管的应用添加第三方脚本功能,使得无论终端用户如何访问该应用第三方脚本都能够与该终端用户相关联。

【发明内容】

[0005]本说明书总体上描述了涉及第三方应用脚本能力(scriptability)的技术,并且更具体地,涉及用于允许第三方脚本开发者安全地向软件应用添加功能的方法和系统。
[0006]总体上,本说明书中所描述的主题的一个方面可以以一种用于允许软件应用开发者将第三方脚本并入其软件应用中的系统和方法来体现。示例性系统包括脚本环境,该脚本环境提供以下各项中的至少一项:服务器上的认证,访问控制,对客户端侧脚本的限制以及脚本的管理。该系统可以附加地包括一个或多个处理设备以及存储指令的一个或多个存储设备,该指令用于创建服务器侧web服务,该服务器侧web服务允许第三方脚本客户端和应用服务器之间的通信;创建客户端侧应用编程接口,该客户端侧应用编程接口暴露应用的功能和资源的子集;允许第三方脚本经由该web服务来访问应用的服务器;允许该第三方脚本使用该客户端侧应用编程接口来访问应用的功能和资源;以及向终端用户提供针对该第三方脚本的访问。第二示例性系统可以包括如以上所描述的脚本环境,一个或多个处理设备以及一个或多个存储指令的存储设备,该指令允许第三方脚本开发者:从软件应用接收应用编程接口 ;从软件应用接收web服务;使用该应用编程接口和web服务来创建改变该软件应用的功能的脚本;以及允许终端用户访问该脚本。
[0007]这些和其它实施例可以可选地包括以下特征中的一个或多个特征:第三方脚本可以定义并注册触发器,该触发器当事件在应用中发生时发起该第三方脚本中的动作;软件应用开发者可以具有将web服务包装到能够被包括在第三方脚本中的脚本库中的能力;软件应用开发者可以能够通过集成开发环境将第三方脚本加载到应用中;该集成开发环境可以创建与软件应用相关联的品牌;可以向终端用户提供可用于安装的应用专属的脚本的列表(gallery);并且可以向终端用户提供当前所安装的脚本的控制面板,用户可以在此管理所安装的脚本。
[0008]本发明的一个或多个实施例的细节在附图和以下描述中被阐述,附图仅通过说明的方式给出。本发明的其它特征、方面和优势将从该描述、附图和权利要求而变得显而易见。同样的附图标号和标记在各图中指示同样的元素。
【附图说明】
[0009]图1是图示向web应用添加第三方脚本的常见实施例的框图。
[0010]图2是图示用于向web应用添加第三方脚本的示例性实施例的框图。
[0011]图3是用于向web应用添加第三方脚本的示例性方法的流程图。
[0012]图4是图示示例性计算设备的框图。
【具体实施方式】
[0013]根据示例性实施例,如图2所示,可以存在综合的类似插件的系统,该系统允许软件应用开发者将第三方脚本并入其应用中。该系统可以提供流程和机制用于使得安全脚本环境能够被添加至托管的软件应用开发环境,使得第三方脚本能够被并入软件应用中,而应用开发者不必担心保护其应用免受恶意脚本的影响。该脚本环境可以允许应用可由非受信的第三方脚本开发者安全地编写脚本。示例性的脚本环境可以使用Caja用于安全脚本。Caja是提供具有对象能力的安全性的javascript的子集。该技术提供了 JavaScript沙箱,其能够改变用户的脚本并且通过去除危险的方法调用而对它们进行净化(sanitize)。如图2所示,应用服务器(109)在应用级别并入第三方脚本(105),因此脚本插件独立于用于访问应用实例(103a,103b)的浏览器(101a,101b)。因此,无论用户利用其访问应用的浏览器如何,登录到应用中的用户将具有伴随该应用的相同用户体验。
[0014]示例性系统可以包括客户端和服务器两者的脚本组件、脚本托管、web集成开发环境(IDE),以及查看用于给定应用的所有脚本的方式。
[0015]在一些实施例中,示例性系统包括客户端/服务器安全脚本环境。该脚本环境可以提供以下特征中的一些或全部特征:(I)云集成开发环境,(2)服务器侧脚本运行时,(3)脚本托管和库,(3)事件触发器,(4)账户管理,(5)内建的应用编程接口(API),(6)开放授权(oAuth)集成,(7)安全客户端,(8)能够被授予不能对软件应用的终端用户产生恶意攻击的有限的浏览器内的权限的脚本,(9)针对具体应用所开发的用于查看所有脚本的每应用列表。脚本环境还可以提供服务器上的认证、访问控制以及对于客户端侧扩展的限制。此外,该脚本环境可以管理其它细节,包括托管、服务器API以及账户管理。通常,示例性系统应当理解web应用的需求并且定义web应用用于与脚本环境进行交互以便用于该脚本环境与该web应用交互的方法。
[0016]示例性实施例可以针对不同的预期用户群组而提供不同的视图和功能。可能存在用于软件应用开发者的视图、用于第三方脚本开发者的视图以及用于终端用户的视图。
[0017]软件应用开发者
[0018]使用示例性系统,软件应用开发者可以针对终端用户所安装的脚本查询脚本环境,经由沙箱技术将所安装的脚本加载到应用的客户端上,对所加载的脚本进行沙箱操作,并且允许所加载的脚本使用被创建为用于与第三方脚本进行交互的web服务与应用的服务器进行交互。
[0019]示例性实施例可以为软件应用开发者提供通过集成开发环境(IDE)加载脚本的方式。该开发环境可以被预先加
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1