CN104903860B - 第三方应用脚本能力 - Google Patents

第三方应用脚本能力 Download PDF

Info

Publication number
CN104903860B
CN104903860B CN201480004248.3A CN201480004248A CN104903860B CN 104903860 B CN104903860 B CN 104903860B CN 201480004248 A CN201480004248 A CN 201480004248A CN 104903860 B CN104903860 B CN 104903860B
Authority
CN
China
Prior art keywords
script
party
application
web
software application
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.)
Active
Application number
CN201480004248.3A
Other languages
English (en)
Other versions
CN104903860A (zh
Inventor
C·戈德费德
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of CN104903860A publication Critical patent/CN104903860A/zh
Application granted granted Critical
Publication of CN104903860B publication Critical patent/CN104903860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

公开了一种用于允许第三方脚本开发者创建能够被安全地并入软件应用中的安全脚本的系统和方法。该系统可以提供用于使得客户端/服务器安全脚本环境能够被添加至托管的软件应用开发环境的流程和机制,使得第三方脚本能够被添加至软件应用而应用开发者不必担心保护其应用免受恶意脚本的影响。该脚本环境可以允许应用可由非受信的第三方脚本开发者安全地编写脚本。

Description

第三方应用脚本能力
背景技术
软件应用经常遵循具体需求进行开发以提供某些能力。虽然软件应用开发者可以为终端用户提供有价值的功能,但是第三方脚本开发者可以通过提供改变或扩展软件应用功能的扩展、自动化、插件或类似代码来提升该基本功能,使得该应用更为用户友好。例如,web应用开发者可以创建用于发送和接收电子邮件的软件应用。该web应用可以包括用于找出并标记电子邮件的功能。该应用也可以对任意一个终端用户的电子邮件账户的容量大小具有限制。然而,该web应用可能并未向终端用户提供找出高于某个大小的电子邮件消息而使得他们能够删除大的电子邮件消息以释放其电子邮件账户中的空间的能力。第三方脚本开发者可以编写插件,当该插件被添加至该电子邮件应用时,能够找出并标记高于某个大小的所有电子邮件消息。终端用户可以将该第三方开发者的插件添加至其浏览器并且运行该插件从而轻易地找到大的电子邮件消息,使得这些消息能够在终端用户的电子邮件账户达到容量大小时被删除。
即使第三方脚本能够改善终端用户体验,但是非常少的软件应用开发者允许非受信的第三方脚本被添加至他们的web应用,这是因为添加第三方功能使得web应用开发者难以保持web应用的安全并且也使得终端用户对该web应用的体验不一致。
如图1所示,通常的第三方脚本(105)最经常地工作在web浏览器级别(101a,101b)而并非是软件应用的组成部分。一种值得关注的浏览器级别的第三方脚本的示例是插件,它是能够对web应用的功能进行定制的软件组件。浏览器级别的脚本由于它们依赖于浏览器而存在问题。如果终端用户针对一个浏览器(101a)中的应用(103a)安装了诸如图1所示的脚本(105),但是随后更改了其用来访问相同应用的不同实例(103b)的浏览器(101b),则该终端用户必须在新的浏览器中安装该脚本以便针对该应用获得该脚本的功能。如图1所示,由于该脚本并未被安装在浏览器2(101b)中,所以该应用的脚本105的功能扩展在浏览器1(101a)中可用而在浏览器2(101b)中不可用。
应当具有一种允许第三方脚本与主机应用紧密交互同时仍然保持安全的系统。该系统应当允许软件应用开发者安全地向其托管的应用添加第三方脚本功能,使得无论终端用户如何访问该应用第三方脚本都能够与该终端用户相关联。
发明内容
本说明书总体上描述了涉及第三方应用脚本能力(scriptability)的技术,并且更具体地,涉及用于允许第三方脚本开发者安全地向软件应用添加功能的方法和系统。
总体上,本说明书中所描述的主题的一个方面可以以一种用于允许软件应用开发者将第三方脚本并入其软件应用中的系统和方法来体现。示例性系统包括脚本环境,该脚本环境提供以下各项中的至少一项:服务器上的认证,访问控制,对客户端侧脚本的限制以及脚本的管理。该系统可以附加地包括一个或多个处理设备以及存储指令的一个或多个存储设备,该指令用于创建服务器侧web服务,该服务器侧web服务允许第三方脚本客户端和应用服务器之间的通信;创建客户端侧应用编程接口,该客户端侧应用编程接口暴露应用的功能和资源的子集;允许第三方脚本经由该web服务来访问应用的服务器;允许该第三方脚本使用该客户端侧应用编程接口来访问应用的功能和资源;以及向终端用户提供针对该第三方脚本的访问。第二示例性系统可以包括如以上所描述的脚本环境,一个或多个处理设备以及一个或多个存储指令的存储设备,该指令允许第三方脚本开发者:从软件应用接收应用编程接口;从软件应用接收web服务;使用该应用编程接口和web服务来创建改变该软件应用的功能的脚本;以及允许终端用户访问该脚本。
这些和其它实施例可以可选地包括以下特征中的一个或多个特征:第三方脚本可以定义并注册触发器,该触发器当事件在应用中发生时发起该第三方脚本中的动作;软件应用开发者可以具有将web服务包装到能够被包括在第三方脚本中的脚本库中的能力;软件应用开发者可以能够通过集成开发环境将第三方脚本加载到应用中;该集成开发环境可以创建与软件应用相关联的品牌;可以向终端用户提供可用于安装的应用专属的脚本的列表(gallery);并且可以向终端用户提供当前所安装的脚本的控制面板,用户可以在此管理所安装的脚本。
本发明的一个或多个实施例的细节在附图和以下描述中被阐述,附图仅通过说明的方式给出。本发明的其它特征、方面和优势将从该描述、附图和权利要求而变得显而易见。同样的附图标号和标记在各图中指示同样的元素。
附图说明
图1是图示向web应用添加第三方脚本的常见实施例的框图。
图2是图示用于向web应用添加第三方脚本的示例性实施例的框图。
图3是用于向web应用添加第三方脚本的示例性方法的流程图。
图4是图示示例性计算设备的框图。
具体实施方式
根据示例性实施例,如图2所示,可以存在综合的类似插件的系统,该系统允许软件应用开发者将第三方脚本并入其应用中。该系统可以提供流程和机制用于使得安全脚本环境能够被添加至托管的软件应用开发环境,使得第三方脚本能够被并入软件应用中,而应用开发者不必担心保护其应用免受恶意脚本的影响。该脚本环境可以允许应用可由非受信的第三方脚本开发者安全地编写脚本。示例性的脚本环境可以使用Caja用于安全脚本。Caja是提供具有对象能力的安全性的javascript的子集。该技术提供了JavaScript沙箱,其能够改变用户的脚本并且通过去除危险的方法调用而对它们进行净化(sanitize)。如图2所示,应用服务器(109)在应用级别并入第三方脚本(105),因此脚本插件独立于用于访问应用实例(103a,103b)的浏览器(101a,101b)。因此,无论用户利用其访问应用的浏览器如何,登录到应用中的用户将具有伴随该应用的相同用户体验。
示例性系统可以包括客户端和服务器两者的脚本组件、脚本托管、web集成开发环境(IDE),以及查看用于给定应用的所有脚本的方式。
在一些实施例中,示例性系统包括客户端/服务器安全脚本环境。该脚本环境可以提供以下特征中的一些或全部特征:(1)云集成开发环境,(2)服务器侧脚本运行时,(3)脚本托管和库,(3)事件触发器,(4)账户管理,(5)内建的应用编程接口(API),(6)开放授权(oAuth)集成,(7)安全客户端,(8)能够被授予不能对软件应用的终端用户产生恶意攻击的有限的浏览器内的权限的脚本,(9)针对具体应用所开发的用于查看所有脚本的每应用列表。脚本环境还可以提供服务器上的认证、访问控制以及对于客户端侧扩展的限制。此外,该脚本环境可以管理其它细节,包括托管、服务器API以及账户管理。通常,示例性系统应当理解web应用的需求并且定义web应用用于与脚本环境进行交互以便用于该脚本环境与该web应用交互的方法。
示例性实施例可以针对不同的预期用户群组而提供不同的视图和功能。可能存在用于软件应用开发者的视图、用于第三方脚本开发者的视图以及用于终端用户的视图。
软件应用开发者
使用示例性系统,软件应用开发者可以针对终端用户所安装的脚本查询脚本环境,经由沙箱技术将所安装的脚本加载到应用的客户端上,对所加载的脚本进行沙箱操作,并且允许所加载的脚本使用被创建为用于与第三方脚本进行交互的web服务与应用的服务器进行交互。
示例性实施例可以为软件应用开发者提供通过集成开发环境(IDE)加载脚本的方式。该开发环境可以被预先加载有用于软件应用的web服务。IDE可以能够理解哪个应用打开了IDE。该应用能够传递有关该应用在其打开IDE时可能需要的具体特征的信息。例如,该应用可以发送应当在IDE的代码编辑器中自动完成的应用专属的API的列表。IDE可以是一般性的并且并不了解任何特定应用,同时仍然允许任意应用按照需求对IDE进行定制。该IDE还可以具有创建与软件应用相关联的品牌的方式。例如,应用的标志和颜色方案可以被留给IDE。
在一些实施例中,示例性系统可以向软件应用开发者提供针对其应用编写客户端侧API的能力。客户端侧API可以包括由第三方脚本开发者可访问的特定软件应用的客户端侧代码和DOM。可能存在标准方法以及用于添加其它方法的模板/风格引导。应用功能和资源可以通过应用的客户端侧API来访问。API定义了哪些应用功能和资源可用于第三方开发者。例如,在电子数据表应用中,可以编写脚本以每当用户选择包含公式的单元格时显示侧边栏。为了编写脚本,该电子数据表应用可以提供包含用于返回当前所选择的单元格的方法的API。所返回的单元格可以具有用于确定该单元格是否为公式并且提供该单元格的数值的属性。该电子数据表API还可以包含用于显示侧边栏的方法。应用想要暴露给第三方脚本的方法和属性应当在该应用内的API内进行定义。
示例性系统还可以向软件应用开发者提供用于编写可以由第三方脚本访问以便与应用的服务器进行通信的服务器侧web服务的工具。这些web服务可以使用通过脚本环境提供给软件应用开发者的业已存在的API进行编写。这些API可以包括REST和SOAP API。备选地,软件应用开发者可以构建库,其可以被包括在由第三方脚本开发者开发的脚本中。软件应用开发者可以创建RESTful服务,其支持oAuth认证并且能够被包装到脚本库中。
示例性实施例可以附加地向软件应用开发者提供用于针对其应用定义并注册触发器的方式。触发器是在事件发生时发起动作的机制。触发器可以是应用专属的并且由应用开发者所选择。示例的触发器包括onEdit、onOpen和onSave。“onEdit”触发器将在应用中发生编辑时开启。“onOpen”触发器将在应用中打开某些内容时发起动作。“onSave”触发器将在应用内保存某些内容时开启。应用开发者可以指定可以被用作能够针对其编写脚本的触发事件的事件名称的列表。脚本随后可以利用代理服务来针对具体事件注册触发器,使得该脚本在特定事件发生时被通知。该事件可以被记录,并且该事件以及可能与该事件相关联的可选有效载荷可以被提供给该代理服务。该代理服务可以将与触发事件相关的消息中继至监听特定事件触发器以便开启的脚本。该代理服务可以是REST服务并且有效载荷可以以JSON来编写。
在一些实施例中,可以提供前端脚本语言代码以便在每终端用户基础上将所安装的脚本加载到应用中。例如,前端脚本语言可以是JavaScript。每个终端用户可能想要包括针对具体应用所编写的脚本的不同子集。所提供的代码可以找出与该应用相关联的所有脚本并且加载当前访问该应用的终端用户已经安装的脚本。
除了促进软件应用和第三方脚本之间的客户端/服务器通信之外,示例性实施例可以向软件应用开发者提供链接至可分帧(frameable)web商店视图的URL,使得软件开发者能够在其应用出现在web商店中时对其应用进行查看。应用可以是在web商店中可访问的,使得终端用户可以下载并使用该应用。软件应用开发者的web商店视图可以包括用于针对具体用户显示当前所安装的脚本以及示出能够被安装的脚本的标签。
第三方脚本开发者
示例性系统可以向第三方脚本开发者提供每个应用的服务器侧web服务,其知道该应用的上下文。如以上所讨论的,当脚本在示例性服务器上运行时,该脚本有权访问服务器侧脚本环境所提供的API。应用的上下文包括在应用的实例内共享的数据。该数据能够通过来自不同的用户的所有请求而获取。如以上所解释的,应用的web服务由应用开发者编写并且使用脚本环境被提供给第三方脚本开发者。在一些实施例中,第三方脚本开发者可以有权访问针对应用的客户端侧API,脚本开发者能够使用该API来访问来自应用的功能和资源以便编写用于该应用的脚本。如以上所讨论的,客户端侧API向第三方脚本开发者提供了与应用开发者选择授予的一样多的针对软件应用的访问。第三方脚本开发者还可以有权访问在应用中发生某些事件时开启的应用事件触发器。示例性实施例可以提供同步的客户端API,用于脚本以操控或控制应用的用户界面中的非连续区域的能力,以及以浏览器可以将用户事件识别为针对用户动作的直接响应的方式来对诸如按钮点击之类的用户事件作出响应的脚本能力。
示例性系统还可以向脚本开发者提供集成开发环境,该集成开发环境可以具有预先加载的指定的应用web服务。该脚本开发环境可以经由脚本开发者针对其编写脚本的应用进行访问。此外,示例性系统可以提供web商店整合,这允许脚本开发者指定脚本开发者已经针对其编写了脚本的应用。
终端用户
已经支持第三方脚本的软件应用的终端用户可以看到可用于安装的应用专属的脚本的列表。终端用户还可以具有当前所安装脚本的控制面板,在此用户能够以每个应用的基础上管理其所安装的脚本。
根据示例性实施例,一种示例性方法开始于运行已经针对其开发了第三方脚本的软件应用。该软件应用可以使用终端用户的认证凭证来被运行并且可以运行代码以获得认证的终端用户已经安装的、用于该应用的第三方脚本。可以针对每个脚本返回URL。该脚本随后可以被加载并且与相关联的web应用一起被运行。一些脚本可以依赖于触发器以便执行,但是将监听与该web应用相关联的触发器。
如以上所讨论的以及如图3所示,根据另一个实施例,示例性系统可以使得web应用开发者能够创建暴露托管的web应用的功能和资源的服务器侧web服务(301)。该系统还可以允许web应用开发者创建暴露web的应用功能和资源中的一些应用功能和资源的客户端侧应用编程接口(API)(303)。web应用开发者随后可以许可经由应用编程接口针对第三方脚本的可配置访问,使得该脚本可以与该web应用进行交互(305)。第三方脚本随后可以被允许经由由web应用开发者提供的web服务来访问该web应用的服务器(307)。第三方脚本开发者可以开发使用客户端侧API和web服务来与web应用进行交互的脚本。终端用户随后可以被提供以针对第三方脚本的访问并且可以选择将该脚本并入其web应用简档中(309)。
图4是示例性计算机(400)的高层级框图,该示例性计算机被配置用于允许第三方脚本开发者在托管的web应用执行环境中使用基于浏览器的脚本编辑器向软件应用安全地添加功能并且可以被用来实施本文中所描述的系统、装置和方法。在非常基础的配置形式(401)中,计算设备(400)通常包括一个或多个处理器(410)和系统存储器(420)。存储器总线(430)能够被用于在处理器(410)和系统存储器(420)之间通信。
根据所期望的配置,处理器(410)可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或者它们的任意组合。处理器(410)可以包括诸如一级高速缓存(411)和二级高速缓存(412)的一个或多个层级的高速缓存,处理器核心(413)以及寄存器(414)。处理器核心(413)可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或者它们的任意组合。存储器控制器(416)也可以与处理器(410)一起被使用,或者在一些实施方式中,存储器控制器(415)可以是处理器(410)的内部部件。
根据所期望的配置,系统存储器(420)可以是任意类型,包括但并不局限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任意组合。系统存储器(420)通常包括操作系统(421)、一个或多个应用(422)以及程序数据(424)。应用(422)可以包括用于在托管的web应用执行环境中、在web应用和第三方脚本之间进行安全交互的方法。程序数据(424)包括存储指令,当该存储指令被一个或多个处理设备执行时,实施用于允许第三方脚本开发者向软件应用(423)安全地添加功能的系统和方法。在一些实施例中,应用(422)能够被配置为在操作系统(421)上利用程序数据(424)进行操作。
计算设备(400)可以具有附加的特征或功能,以及用于促进基础配置(401)与任意所需的设备和接口之间的通信的附加的接口。
系统存储器(420)是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁性卡盒、磁带、磁盘存储或其它磁性存储设备,或者能够被用来存储所期望的信息并且能够由计算设备400进行访问的任何其它介质。任何这样的计算机存储介质可以是设备(400)的一部分。
计算设备(400)可以被实施为小形式因子的便携式(或移动)电子设备的一部分,上述设备诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线web手表设备、个人头戴式耳机设备、应用专属的设备,或者包括以上功能中的任意功能的混合设备。计算设备(400)还可以被实施为包括膝上型计算机和非膝上型计算机配置的个人计算机。
前述详细描述已经经由使用框图、流程图和/或示例阐述了设备和/或过程的各种实施例。迄今为止,这样的框图、流程图和/或示例包含一种或多种功能和/或操作,本领域技术人员将会理解的是,这样的框图、流程图或示例中的每种功能和/或操作都能够单独和/或共同地由广泛的硬件、软件、固件或者实际上它们的任意组合来实施。在一个实施例中,这里所描述的主题的若干部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或者其它集成形式来实施。然而,本领域技术人员将会认识到,这里所描述的实施例的一些方面能够整体或部分地作为在一个或多个计算机上运行的一个或多个计算机程序,作为在一个或多个处理器上运行的一个或多个程序,作为固件或者实质上作为他们的任意组合而等同地被实施在集成电路中,并且本领域技术人员通过借鉴本公开将能够针对软件和/或固件设计电路和/或编写代码。此外,本领域技术人员将会意识到,这里所公开的主题的机制能够以各种形式作为程序产品而被分布,并且无论实际上被用来执行该分布的非瞬态信号承载介质的特定类型如何这里所描述的主题的说明性实施例都可以应用。非瞬态信号承载介质的示例包括但不限于以下形式:可记录类型的介质,诸如软盘、硬盘驱动、光盘(CD)、数字视频盘(DVD)、数字磁带、计算机存储器等;以及传输类型的介质,诸如数字和/或模拟通信介质(例如,光缆、波导、有线通信链路、无线通信链路等)。
关于基本上这里的任意复数和/或单数术语的使用,如对于上下文和/或应用适宜的,本领域技术人员能够从复数转换为单数和/或从单数转换为复数。出于清楚的目的在这里可以明确阐述各种单数/复数排列。
因此,已经描述了主题的特定实施例。其它实施例处于以下权利要求的范围之内。在一些情况下,权利要求中所引用的动作能够以不同顺序来执行并且仍然实现所期望的结果。此外,附图中所描绘的过程不一定要求所示的特定顺序或连续顺序来实现所期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。

Claims (13)

1.一种用于允许软件应用开发者将第三方脚本并入所述软件应用开发者的软件应用中的系统,所述系统包括:
脚本环境,所述脚本环境提供以下各项中的至少一项:服务器上的认证、访问控制、对客户端侧脚本的限制以及脚本的管理;
一个或多个处理设备;以及
存储指令的一个或多个存储设备,当所述指令由所述一个或多个处理设备执行时,使得所述一个或多个处理设备允许软件应用开发者:
创建服务器侧web服务,所述服务器侧web服务允许第三方脚本客户端和用于托管的web应用的应用服务器之间的通信(301),所述第三方脚本是独立于浏览器的并且在软件应用的外部被创建,所述第三方脚本被并入所述软件应用中;
创建客户端侧应用编程接口,所述客户端侧应用编程接口暴露所述托管的web应用的功能和资源的子集(303);
允许所述第三方脚本经由所述web服务来访问所述应用服务器(307);
允许所述第三方脚本使用所述客户端侧应用编程接口来访问所述托管的web应用的功能和资源(305);以及
向终端用户提供针对所述第三方脚本的访问(309),所述第三方脚本独立于用于访问所述托管的web应用的浏览器。
2.根据权利要求1所述的系统,进一步包括允许第三方脚本定义并注册触发器,所述触发器当事件在所述托管的web应用中发生时发起所述第三方脚本中的动作。
3.根据权利要求1所述的系统,进一步包括允许软件应用开发者具有将所述web服务包装到能够被包括在第三方脚本中的脚本库中的能力。
4.根据权利要求1所述的系统,进一步包括允许软件应用开发者具有通过集成开发环境将第三方脚本加载到所述托管的web应用中的能力。
5.根据权利要求4所述的系统,其中所述集成开发环境创建与软件应用相关联的品牌。
6.根据权利要求1所述的系统,进一步包括向终端用户提供可用于安装的应用专属的脚本的列表。
7.根据权利要求1所述的系统,进一步包括向终端用户提供当前所安装的脚本的控制面板,用户可以在所述控制面板处管理所安装的脚本。
8.一种用于允许软件应用开发者将第三方脚本并入所述软件应用开发者的软件应用中的计算机实施的方法,所述方法包括:
创建服务器侧web服务,所述服务器侧web服务允许第三方脚本客户端和用于托管的web应用的应用服务器之间的通信(301),所述第三方脚本是独立于浏览器的并且在软件应用的外部被创建,所述第三方脚本被并入所述软件应用中;
创建客户端侧应用编程接口,所述客户端侧应用编程接口暴露所述托管的web应用的功能和资源的子集(303);
允许所述第三方脚本经由所述web服务来访问所述应用服务器(307);
允许所述第三方脚本使用所述客户端侧应用编程接口来访问所述托管的web应用的功能和资源(305);以及
向终端用户提供针对所述第三方脚本的访问(309),所述第三方脚本独立于用于访问所述托管的web应用的浏览器。
9.根据权利要求8所述的计算机实施的方法,进一步包括允许第三方脚本定义并注册触发器,所述触发器当事件在所述托管的web应用中发生时发起所述第三方脚本中的动作。
10.根据权利要求8所述的计算机实施的方法,进一步包括允许软件应用开发者具有将所述web服务包装到能够被包括在第三方脚本中的脚本库中的能力。
11.根据权利要求8所述的计算机实施的方法,进一步包括允许软件应用开发者具有通过集成开发环境将第三方脚本加载到所述托管的web应用中的能力。
12.根据权利要求11所述的计算机实施的方法,其中所述集成开发环境创建与软件应用相关联的品牌。
13.根据权利要求8所述的计算机实施的方法,进一步包括向终端用户提供可用于安装的应用专属的脚本的列表。
CN201480004248.3A 2013-02-27 2014-02-26 第三方应用脚本能力 Active CN104903860B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/779,599 2013-02-27
US13/779,599 US9465586B2 (en) 2013-02-27 2013-02-27 Third party application scriptability
PCT/US2014/018604 WO2014134133A1 (en) 2013-02-27 2014-02-26 Third party application scriptablity

Publications (2)

Publication Number Publication Date
CN104903860A CN104903860A (zh) 2015-09-09
CN104903860B true CN104903860B (zh) 2018-01-16

Family

ID=50280513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480004248.3A Active CN104903860B (zh) 2013-02-27 2014-02-26 第三方应用脚本能力

Country Status (11)

Country Link
US (1) US9465586B2 (zh)
EP (1) EP2962195B1 (zh)
JP (1) JP6162256B2 (zh)
KR (1) KR101722108B1 (zh)
CN (1) CN104903860B (zh)
AU (1) AU2014223569B2 (zh)
BR (1) BR112015018082A8 (zh)
DE (1) DE202014010923U1 (zh)
ES (1) ES2733731T3 (zh)
PL (1) PL2962195T3 (zh)
WO (1) WO2014134133A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015251A1 (en) * 2013-08-01 2015-02-05 Yogesh Chunilal Rathod Presenting plurality types of interfaces and functions for conducting various activities
US11397520B2 (en) 2013-08-01 2022-07-26 Yogesh Chunilal Rathod Application program interface or page processing method and device
US20150186193A1 (en) * 2013-12-27 2015-07-02 Microsoft Corporation Generation of client-side application programming interfaces
US9851952B2 (en) * 2014-09-25 2017-12-26 Oracle International Corporation Seamless restful API generation and consumption through a single channel
EP3304402A1 (en) * 2015-05-28 2018-04-11 Entit Software LLC Security vulnerability detection
CN105487910A (zh) * 2016-01-22 2016-04-13 北京世纪龙脉科技有限公司 一种浏览器插件实现方法、http应用服务器和浏览器
US10931679B2 (en) 2016-06-07 2021-02-23 Microsoft Technology Licensing, Llc Service actions for digital assistants
US10521251B2 (en) 2016-09-23 2019-12-31 Microsoft Technology Licensing, Llc Hosting application experiences within storage service viewers
US10063533B2 (en) * 2016-11-28 2018-08-28 International Business Machines Corporation Protecting a web server against an unauthorized client application
US10776081B2 (en) * 2017-03-21 2020-09-15 O.C. Tanner Company Systems and methods for utilizing webhooks integrated in platform-as-a-service supported application development and deployment
US10791105B2 (en) 2017-04-07 2020-09-29 Microsoft Technology Licensing, Llc Credential-based proactive discovery of remote micro-services by spreadsheet applications
US10862979B2 (en) 2017-04-07 2020-12-08 Microsoft Technology Licensing, Llc Techniques for supporting remote micro-services as native functions in spreadsheet applications
US10789360B2 (en) * 2018-01-25 2020-09-29 Sap Se Protection against third party JavaScript vulnerabilities
CN108616540B (zh) * 2018-05-09 2020-09-01 聚龙股份有限公司 一种基于跨平台加密算法与声明式过滤认证的平台认证方法及系统
US10331462B1 (en) * 2018-11-06 2019-06-25 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network
KR102612851B1 (ko) * 2022-11-16 2023-12-13 쿠팡 주식회사 스크립트와 관련한 정보를 제공하는 전자 장치 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577277A (zh) * 2003-07-16 2005-02-09 惠普开发有限公司 管理程序应用

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167534A (en) * 1995-11-24 2000-12-26 Rational Software Corporation Load test system and method
US7814157B2 (en) * 2000-01-11 2010-10-12 Eolas Technlogies, Inc. Hypermedia browser API simulation to enable use of browser plug-ins and applets as embedded widgets in script-language-based interactive programs
JP2003141066A (ja) * 2001-06-20 2003-05-16 Matsushita Electric Ind Co Ltd ネットワークシステムおよびエージェントサーバ
WO2003058375A2 (en) * 2001-10-26 2003-07-17 Zeosoft Corporation Development, management of distributed clients and servers
US20040098704A1 (en) * 2002-11-14 2004-05-20 International Business Machines Corporation Systems and methods for defining Web applications pages
US7676785B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Hosted application as a designer in an integrated development environment
BRPI0401465A (pt) * 2004-04-20 2006-02-21 Embria Informatica Ltda sistema para administrar interações entre usuários e aplicações de software em um ambiente web
US20050257196A1 (en) * 2004-05-17 2005-11-17 Gideon Hollander System and method for developing new services from legacy computer applications
JP4355639B2 (ja) * 2004-09-15 2009-11-04 キヤノン株式会社 画像処理装置およびその制御方法
US8099713B2 (en) * 2005-01-18 2012-01-17 Siemens Aktiengesellschaft Program system, and method and system arrangement for configuring it
US7779385B2 (en) * 2006-05-10 2010-08-17 Oracle America, Inc. Method and system for automated component product integration
US8082539B1 (en) * 2006-12-11 2011-12-20 Parallels Holdings, Ltd. System and method for managing web-based forms and dynamic content of website
US8091067B2 (en) * 2007-01-12 2012-01-03 Sas Institute Inc. Method and system for hosting a programming environment
US20090049423A1 (en) * 2007-07-23 2009-02-19 Ebay Inc. Javascripttm programming extension
US9218166B2 (en) * 2008-02-20 2015-12-22 Embarcadero Technologies, Inc. Development system with improved methodology for creation and reuse of software assets
US8825691B2 (en) * 2009-06-03 2014-09-02 Yahoo! Inc. Open search assist
CA2713247C (en) * 2009-08-31 2015-06-16 Accenture Global Services Gmbh Integration environment generator
US8595284B2 (en) * 2009-12-14 2013-11-26 Samsung Electronics Co., Ltd Web application script migration
US20110167332A1 (en) * 2010-01-07 2011-07-07 Neopost Technologies System and Method for Generating Web Pages
US9189649B2 (en) * 2010-06-25 2015-11-17 International Business Machines Corporation Security model for workflows aggregating third party secure services
US8997069B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc API descriptions
US8689344B2 (en) * 2011-05-16 2014-04-01 Guest Tek Interactive Entertainment Ltd. System and method of integrating modules for execution on a computing device and controlling during runtime an ability of a first module to access a service provided by a second module
US8640093B1 (en) * 2011-06-24 2014-01-28 Amazon Technologies, Inc. Native web server for cross-platform mobile apps
US9092540B2 (en) * 2012-02-14 2015-07-28 International Business Machines Corporation Increased interoperability between web-based applications and hardware functions
US20130275957A1 (en) * 2012-04-12 2013-10-17 Microsoft Corporation Customizing appliances
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577277A (zh) * 2003-07-16 2005-02-09 惠普开发有限公司 管理程序应用

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Google-Map-Based Arterial Traffic Information System;Yao-Jan Wu;《Intelligent Transportation Systems Conference》;20071003;第968-973页 *

Also Published As

Publication number Publication date
KR101722108B1 (ko) 2017-03-31
AU2014223569A1 (en) 2015-07-09
ES2733731T3 (es) 2019-12-02
EP2962195B1 (en) 2019-04-10
JP2016505994A (ja) 2016-02-25
WO2014134133A1 (en) 2014-09-04
DE202014010923U1 (de) 2017-01-18
BR112015018082A2 (pt) 2017-07-18
US9465586B2 (en) 2016-10-11
AU2014223569B2 (en) 2016-07-07
CN104903860A (zh) 2015-09-09
PL2962195T3 (pl) 2019-10-31
JP6162256B2 (ja) 2017-07-12
KR20150122216A (ko) 2015-10-30
US20140245253A1 (en) 2014-08-28
BR112015018082A8 (pt) 2018-01-02
EP2962195A1 (en) 2016-01-06

Similar Documents

Publication Publication Date Title
CN104903860B (zh) 第三方应用脚本能力
US11593055B2 (en) Selective screen sharing
US9436580B2 (en) Analytics for mobile applications
JP6318266B2 (ja) ウェブページへの拡張機能変更を管理するシステム
CN104471528B (zh) 将文件类型与网络存储服务中的应用相关联
CN105940654A (zh) 特权静态被托管的web应用
KR20100112123A (ko) 안전하고 확장 가능한 정책 기반 애플리케이션 플랫폼
US9305305B2 (en) Delivering offers
US20180232365A1 (en) Context-aware translation memory to facilitate more accurate translation
US10599759B2 (en) Content sharing web page overlay system
CN102591928A (zh) 表现包括从跳转列表任务和项目访问的内容的内容
US9542384B2 (en) Contextually aware web application platform
US8856958B1 (en) Personalized content access prompt
US9692787B1 (en) System for controlling browser extensions
EP3374857A1 (en) Dashboard as remote computing services
US20140108572A1 (en) Multi-variant e-mail testing
CN110213105A (zh) 一种跨平台微应用创建方法
US11281803B2 (en) Obfuscating content based on requesting user roles
JP5753302B1 (ja) ウェブページへのアクセスを警告するためのプログラム、方法、及びシステム
KR20120137629A (ko) 브랜딩을 위한 단축 url 브라우징 제공시스템, 그 제공방법, 및 웹 클라이언트
US20210342130A1 (en) Systems and methods for software application generation and delivery
US20150293669A1 (en) Apparatus, method, and computer system for generating contained, usable objects that are dynamically configurable
CN110574033B (zh) 减少多媒体内容传递的远程过程调用
US20140380143A1 (en) Dynamic display method of multi-layered pdf documents
Constantin Taivan et al. Web-based applications for open display networks: Developers’ perspective

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.