CN108509207A - Web应用程序的跨系统安装 - Google Patents

Web应用程序的跨系统安装 Download PDF

Info

Publication number
CN108509207A
CN108509207A CN201810294506.6A CN201810294506A CN108509207A CN 108509207 A CN108509207 A CN 108509207A CN 201810294506 A CN201810294506 A CN 201810294506A CN 108509207 A CN108509207 A CN 108509207A
Authority
CN
China
Prior art keywords
application program
local
run time
user
web
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
CN201810294506.6A
Other languages
English (en)
Inventor
埃里克.凯
拉胡尔.罗伊乔杜里
池.亨格.丘
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 CN108509207A publication Critical patent/CN108509207A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/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

Abstract

本发明涉及一种用于提供应用程序的跨系统安装的方法和系统,其包含:经由服务器提供仅用web技术编码的本机操作的应用程序以供安装;及提供单一运行时间环境以供安装,所述单一运行时间环境为所述本机操作的应用程序提供对web应用程序不能获得的计算机系统级服务的访问权。所述单一运行时间环境控制所述本机操作的应用程序的安装及卸载,且所述本机操作的应用程序经配置以独立于web浏览器而执行。

Description

WEB应用程序的跨系统安装
本申请是以下发明专利申请的分案申请:申请号:201380050108.5,申请日:2013年09月25日,发明名称:WEB应用程序的跨系统安装
相关申请案
本申请案是2012年10月10日申请、标题为“WEB应用程序的跨系统安装(CROSSSYSTEM INSTALLATION OF WEB APPLICATIONS)”的第13/648,473号美国专利申请案的接续案且主张对其的优先权,第13/648,473号美国专利申请案是2012年9月27日申请、标题为“WEB应用程序的跨系统安装(CROSS SYSTEM INSTALLATION OF WEB APPLICATIONS)”的第61/706,292号美国临时专利申请案的非临时案且主张对其的优先权,所述专利申请案两者特此以全文引用方式并入本文中。
技术领域
本发明大体来说涉及作为本机应用程序操作但使用web技术编程的应用程序的跨系统安装。
背景技术
通常,人们必须使用特定种类的操作系统或web浏览器来访问web商店或数字市场。然而,人们可能希望使用任何种类的操作系统或web浏览器来访问web商店或数字市场,且人们希望不管操作系统或浏览器的类型如何均能够从数字市场下载应用程序。人们还赞赏在客户端计算机上“本机地”运行应用程序的能力。然而,典型的web应用程序并不提供对本地系统资源(例如文件系统、本机窗口、图形处理器、麦克风、摄像机)的访问,且因此可能具有若干限制。一般来说,web应用程序具有较具限制性的安全模型,这限制了web应用程序能够访问本地系统资源的多少。
对于开发者来说,不需要其使用单独的编程技术或开发应用程序的许多不同版本便能使所述应用程序在不同操作系统平台(例如,WINDOWS、MAC或LINUX)上运行也可证明是有利的。通常,开发者需要针对每一平台构建一应用程序。对于开发者来说,那些相同的应用程序也可在web上运行且可经由任何种类的web浏览器下载是有利的。此外,开发者可能希望使用JAVASCRIPT、HTML、CSS或其它web技术来开发可在计算机及移动装置上本机地操作的应用程序。开发者还可希望使那些相同的应用程序能够经由web浏览器作为web应用程序而操作以及能够本机地操作且因此具有对至少一些本机资源的访问权。因此,需要用以解决目前技术的不足且提供其它新颖及创新特征的系统及方法。
发明内容
一种用于提供应用程序的跨系统安装的方法及系统包含:经由服务器提供仅用web技术编码的本机操作的应用程序以供安装;及提供单一运行时间环境以供安装,所述单一运行时间环境为所述本机操作的应用程序提供对web应用程序不能获得的计算机系统级服务的访问权。所述单一运行时间环境可控制所述本机操作的应用程序的安装及卸载,且所述本机操作的应用程序经配置以独立于web浏览器而执行。
在附图及下文说明中陈述一或多个实施方案的细节。从所述说明及图式且从权利要求书将明了其它特征。
附图说明
图1是用于web应用程序的跨系统安装的系统的示意图。
图2是使用多进程配置的运行时间的实例性框图。
图3是用于本机应用程序、本机操作的应用程序及web应用程序的用户接口的实例的图。
图4A是用于web应用程序的跨系统安装的过程的流程图。
图4B是本机操作的应用程序的寿命循环的流程图。
图5展示可用于实施本文所描述的技术的计算机装置及移动计算机装置的实例。
在各图式中,相似的参考符号指示相似的元件。
具体实施方式
本文所描述的系统及方法允许对用web技术(例如HTML、JavaScript、CSS等)编码的本机操作的应用程序的跨系统安装。所述本机操作的应用程序可经由本地安装于客户端计算机上的单一运行时间环境而操作。所述本机操作的应用程序可提供对本地机器资源的访问权,且还可提供对其它web服务(例如云存储、web文档编辑或照片编辑)的访问权。由于所述本机操作的应用程序是用web技术编码的,因此其还可经配置(例如,经封装)以在web浏览器中运行而不需要来自开发者的进一步编码。每当安装单一运行时间时,就可从任何浏览器下载本机操作的应用程序并将其安装于任何操作系统上。所述浏览器可在安装本机操作的应用程序之前自动地确定所述单一运行时间是否已安装于计算机上。如果所述单一运行时间尚未被安装,那么浏览器可自动地安装所述单一运行时间,举例来说,通过包含所述应用程序及运行时间的单一下载。所述运行时间使用多进程架构而操作,且将所述本机操作的应用程序安装于沙盒中,使得当卸载所述本机操作的应用程序时,其被完全从客户端计算机移除。
图1是可提供web应用程序的跨系统安装的系统100的实例性实施例的示意性框图。在各种实施方案中,系统100可包含客户端计算装置102A、102B、102C(例如桌上型计算机、笔记本型计算机、上网本计算机、平板计算机、智能电话等)。客户端计算装置102A可包含一或多个处理器(CPU)104及一或多个存储器106。客户端计算装置102A可执行操作系统(O/S)108、运行时间120及可显示用户接口窗口(例如,web浏览器112)的各种应用程序110、124及126。客户端计算装置102A可包含高速缓冲存储器118。客户端计算装置102A可包含本机操作的应用程序124以及一或多个本机应用程序126。应用程序110是本机应用程序的另一实例,且应用程序110的用户接口窗口112是web浏览器。本机应用程序126的其它实例包含字处理应用程序、图像编辑应用程序、电子邮件应用程序、媒体播放器、计算器等。
“本机操作的应用程序”124是仅使用web技术(例如HTML、JAVASCRIPT或CSS)编码(本文定义为可由web浏览器直接实施的代码)的应用程序,但其为看起来像且表现得像本机应用程序(且不束缚于web浏览器)且具有web应用程序无法获得的类本机能力的应用程序。本机操作的应用程序124也可在web浏览器(例如web浏览器112)中运行。
本机操作的应用程序124可经由web浏览器(例如web浏览器112)从市场服务器150下载且可安装于客户端计算装置102A上。本机操作的应用程序124可使用下文更详细描述的运行时间120来操作。举例来说,本机操作的应用程序124可经配置以直接由客户端装置的处理器104使用运行时间120来执行。由于本机操作的应用程序124是用web技术编码的,因此不需要编译步骤。而是,本机操作的应用程序124可简单地经封装(例如,以.CRX格式,或例如以某一签名或验证被压缩)并例如经由web浏览器112从数字市场(例如市场服务器150)提供到客户端计算装置102A,如下文更详细地描述。运行时间120可接受作为经封装文件(例如,.CRX文件)的本机操作的应用程序124且接着执行本机操作的应用程序124。举例来说,本机操作的应用程序124可进行本地加载,使得其并不像web应用程序那样依赖于网络。
运行时间120可为在本机O/S 108上面操作且使用多进程架构的环境。因此,如果一个本机操作的应用程序124崩溃,那么用户将不会丢失同时也经由运行时间120运行的其它本机操作的应用程序。每一应用程序作为新进程在单一运行时间上操作,如下文关于图2更详细地描述。
运行时间120可充当允许本机操作的应用程序124在使用任何操作系统的任何计算装置上运行的中介环境,只要运行时间120安装于所述计算装置(例如计算装置102A)上即可。运行时间120可允许本机操作的应用程序124在本机操作的应用程序124并不实际上通过O/S 108(但仍可能够访问O/S 108的部分)执行的同时显现为犹如其是本机应用程序一样。在一些实施方案中,运行时间120还可用于执行应用程序110(包含web浏览器112)。
运行时间120本身也可经由web浏览器(例如web浏览器112)从市场服务器150(或另一服务器)下载且可安装于客户端计算装置102A上。在一些实施方案中,在安装本机操作的应用程序124时,运行时间120可能已安装于客户端计算装置102A上。在其它实施方案中,运行时间120可与本机操作的应用程序124捆绑在单一下载中,及/或在本机操作的应用程序124的安装之前被下载或安装。
本机操作的应用程序124可经由运行时间120访问网络190,且还可访问客户端计算机的一或多个本机资源122。本机资源122可包含计算装置102A中所包含或本地连接到计算装置102A的任何种类的资源。举例来说,本机资源122可包含本机窗口(例如,在web浏览器标签之外的任何窗口)、图形处理单元(GPU)、web摄像机、图形卡、麦克风、打印机、包含文档、图像、其它媒体的文件系统,或其它资源,例如连接到计算装置102A的装置102D。本机操作的应用程序124可类似于web应用程序(下文更详细地对其进行描述)而用web技术编码,但与web应用程序相比,本机操作的应用程序124可访问客户端计算装置122的本机资源122。
本机操作的应用程序124可默认地进行离线操作。本机操作的应用程序124也可进行本地加载。在一些实施方案中,一旦用户安装本机操作的应用程序124,所述用户便可以完全控制本机操作的应用程序124的寿命循环。本机操作的应用程序124的寿命循环独立于web浏览器窗口或网络连接。下文关于图4B更详细地描述本机操作的应用程序的寿命循环。本机操作的应用程序124可快速打开及关闭,且系统100可在任何时间关停本机操作的应用程序124以改进性能(举例来说,使用运行时间120)。用户可完全卸载本机操作的应用程序124。在一些实施方案中,可在本机操作的应用程序124离线时将与本机操作的应用程序124有关的用户数据本地存储于(例如)存储器106中且一旦客户端计算装置102A的用户在线便接着将所述用户数据同步(在用户赋予权限的情况下)到数据服务器(例如,服务器130或同步服务器170)。
另外,本机操作的应用程序124可访问可经由远程服务器访问的各种远程服务140。可经由运行时间120所托管的各种JavaScript API而获得对此类服务140的访问权。
API还可用于其它能力。此类API不可用于web应用程序、网站或本机应用程序。举例来说,共享数据API可给本机操作的应用程序124提供对计算装置102A上的数据的访问权,其中此访问是以调解方式提供的,使得本机操作的应用程序124可访问联系人、图像、照片、媒体、视频、音乐或电影(作为实例)。此访问是经由共享数据API提供的。另外,装置能力API可给本机操作的应用程序124提供对连接到计算装置102A的硬件装置(例如USB装置端口或蓝牙装置)的访问权。本机操作的应用程序124可连接到USB装置,且从用户的串行端口读取或向其写入,例如以将消息发送到连接到本地计算装置102A的任何装置,例如装置102D。另外,服务API可为本机操作的应用程序124提供支付、身份或其它服务。
如图1中所展示,系统100可包含服务器130,服务器130包含一或多个处理器132、一或多个存储器134、操作系统136及服务140。举例来说,服务140可经由服务器130获得且经由运行时间120所托管的API来访问。如上文所论述,服务可包含(作为实例)支付或身份服务。举例来说,用户可利用身份服务来为本机操作的应用程序124赋予对访问用户身份的权限,而不需要用户在每次用户运行本机操作的应用程序124时重新输入身份信息。类似地,用户可利用支付服务来为本机操作的应用程序124赋予对访问用户支付信息的权限,而不需要用户在每次用户运行本机操作的应用程序124时重新输入此支付信息。
由运行时间120向本机操作的应用程序124公开的API还可包含共享数据能力,这可允许用户利用本机操作的应用程序124将数据上载到服务器(例如服务器130)(或从所述服务器下载数据)。共享数据能力的实例可包含数据上载或存储服务,例如允许用户经由本机操作的应用程序124从客户端计算装置102A上载照片。所述照片可经上载以在远程服务器(例如服务器130)上提供备份存储。举例来说,在一个实施方案中,本机操作的应用程序124可使用通过JavaScript API公开的能力且在不需要来自用户的额外输入的情况下(然而,在用户先前赋予权限的情况下)自动地访问存储于存储器106的一部分中的照片。本机操作的应用程序124可使用API自动地仅访问照片而不访问其它类型的文件(例如,基于文件类型、文件名称、文件大小或其它准则),且还可自动地将照片上载(在用户赋予权限的情况下)到与用户相关联的帐户。举例来说,可使用网络190将照片上载到服务器130。
还可通过共享数据API公开其它能力,例如以提供对媒体库、音乐、电影或文档的访问权。举例来说,音乐相关本机操作的应用程序可仅访问文件系统的含有音乐的一部分,使得所述应用程序可对音乐进行某些操作,例如使音乐与用户帐户同步。使用共享数据API,本机操作的应用程序124可请求对装置102A上的所有音乐的访问权。所述API可确定装置102A上存储了何种音乐,且所述应用程序可取得所述音乐并将其同步到远程服务器(例如,服务器130)。本机操作的应用程序124不需要单独的插件来取得音乐并使其同步,但本机操作的应用程序124可归因于由运行时间120控制的进程隔离而以安全方式从本地系统读取文件或向其写入文件,如下文关于图2更详细地论述。
又一些API可包含装置能力API,其可允许本机操作的应用程序124具有对web应用程序通常可能不能访问的装置的访问权。举例来说,本机操作的应用程序124可具有USB访问权、原始网络访问权或蓝牙装置访问权(作为实例)。
在各种实施方案中,web浏览器112可包含一或多个web应用程序128或与其相关联。在此上下文中,“web应用程序”可经配置以为用户执行单一任务或多个任务。在此实施方案中,web应用程序可经配置以由web浏览器执行或解释。这与包含机器可执行代码且经配置以由处理器直接执行或经由客户端装置的操作系统而执行的本机应用程序(例如,本机应用程序126)相当,然而,web应用程序在不借助web浏览器的情况下可不能够执行或显示。这也与不需要web浏览器的本机操作的应用程序124相当。因此,web应用程序是在具有专用用户接口的浏览器内部运行的,且通常提供比独立网站更丰富且更具交互性但繁琐性及整体性优于本机应用程序126的功能性及体验。web应用程序的实例包含在web浏览器112内部运行的游戏、照片编辑器及视频播放器。
web应用程序可包含网站的其自身包含网页的至少一部分加上可尤其与web应用程序有关或与web应用程序的用户有关以允许web应用程序为用户执行某一特定功能性的一些元数据。
在各种实施方案中,web浏览器可包含一或多个浏览器扩展或经配置以与一或多个浏览器扩展交互。在此上下文中,“浏览器扩展”可包含作为可定义整体而封装或分组在一起且经配置以将功能性扩展到web浏览器的一或多个网页。因此,扩展还给浏览器提供额外功能性,但通常,不同于应用程序,存在极少或不存在针对由扩展提供的功能性的用户接口组件。实情是,web扩展会扩展浏览器及正在其中观看的网站的功能性。举例来说,web扩展可通过将新按钮添加到地址栏(例如始终存在的货币转换器)而扩展浏览器的功能性。类似此的按钮还可适用于正观看的当前网站—举例来说,点击货币转换器按钮可将呈现给用户的网站上的所有价格转换为用户选择的货币。在另一实例中,扩展可经安装使得在用户将光标悬停在由浏览器执行的网页上的缩略图图像上时,会显示图像的较大大小的版本直到用户将光标移离图像为止。在另一实例中,且扩展可经安装以在每一页中的每一链接旁嵌入“将此用邮件发送”按钮。与web应用程序相比,扩展径直跨越网站及web应用程序。实际上,扩展通常跨越所有网站(但一些网站是站点特有的)。以此方式,web应用程序不与其它应用程序组合。而是,web应用程序如任何常规网站一样独立地运行。可下载web浏览器扩展及应用程序以供安装于客户端计算装置中并由在所述客户端计算装置上运行的浏览器执行。
在一个实施方案中,客户端计算装置102A可运行或致使操作系统108来执行应用程序110或web浏览器112。在各种实施方案中,此web浏览器112可包含多个平面或标签114A、114B、114C。web浏览器112可为含有某种类用户接口的视觉区域(通常为矩形的)。在客户端装置102A中所使用的图形用户接口(GUI)中,web浏览器112可为布置于称为桌面的GUI的平面上的二维对象。web浏览器112可包含可称为web浏览器的“镶边(chrome)”的其它图形对象,例如,菜单栏、工具栏、控件、图标。web浏览器还可包含其中可显示文档、图像、文件夹内容或其它主对象(例如,web应用程序128)的工作区域。所述工作区域可能够保持仅一个主对象(即,在单一文档接口中)或在多个文档接口中保持一个以上主对象。在一些应用程序(具体来说是web浏览器)中,可在个别标签114A、114B、114C中显示多个文档。这些标签114A、114B、114C通常是一次一个地显示,且可经由通常驻存于个别窗口的内容上面的标签栏而选择。也就是说,一个选定标签114A是“面向正面”的且在web浏览器112中向用户显示信息或内容,其中其它标签114B、114C的内容是“隐藏”的。标签114A、114B及114C可在单独进程中执行,每一进程均具有其自己的个别存储器。
客户端计算装置102A、102B、102C可从可通过网络190连接到客户端装置102的一或多个服务器计算装置130、150、170接收在线内容。在一些实施方案中,可在web浏览器112中(例如,在web浏览器112的一个标签114中)处理并显示所接收在线内容。举例来说,web浏览器112可向用户显示数字商品市场的用户接口,类似于本文中所描述的市场的用户接口。
客户端计算装置102A可与数字商品市场服务器150通信,数字商品市场服务器150向客户端计算装置102A、102B、102C提供数字商品市场。市场服务器150可包含一或多个处理器152及一或多个存储器154。市场服务器150可执行操作系统以及各种应用程序及服务以向客户端计算装置提供功能性。举例来说,在一个实施方案中,市场服务器150可包含数字商品数据库158的存储库,且可从所述存储库向客户端计算装置供应或下载数字商品。在另一实施方案中,数字商品可被存储于远离市场服务器定位的存储库中,且从所述存储库供应到客户端计算装置。举例来说,数字商品可被存储于由所述数字商品的开发者操作及控制的个别存储库并从所述存储库供应到客户端计算装置,且市场服务器150的数字商品存储库158可仅提供对由开发者操作的个别存储库的参考。
可在选择性加入的基础上提供由在客户端装置上运行的应用程序110提供到市场服务器150的信息(例如,关于计算装置102A的类型或能力等)。换句话说,只有客户端计算装置102A的用户具体授权此信息从客户端到服务器的传输时,才可将此信息从所述客户端装置提供到服务器150。另外,在将信息发送到市场服务器150之前,可将其匿名。
如图1中所展示,系统100还可包含同步服务器170,同步服务器170包含一或多个处理器172、一或多个存储器174、操作系统176及识别符数据库178。识别符数据库178可存储用以在不同客户端计算装置(例如,装置102A、102B、102C)上的各种用户会话之间实现同步的唯一识别符。
举例来说,在一些实施方案中,用户帐户允许用户由系统服务(例如,web应用程序)进行验证且接收对访问所述系统服务的授权。为了登录到用户帐户,用户可用口令或用于例如帐户、安全及资源管理目的的其它证书来验证自身。一旦用户已登录(例如,到web浏览器、到计算装置等),操作系统便可使用识别符(例如整数)而非用户名来指代用户。举例来说,用户名可与用户识别符相关。系统(例如,服务器170)可核对并证实用户帐户的恰当所有权,且可通过给经证实帐户登录识别符(例如,用户名及口令、安全识别符等)指派唯一识别符而将那些用户帐户的所有权永久地链接到特定个体。系统可例如根据组织的商业策略、访问控制策略及各种应用程序要求而证实个体仅具有针对适当系统及应用程序的帐户登录识别符。
在一些实施方案中,举例来说,当用户登入到web浏览器112或某一装置102A中时,可保存所有用户书签、扩展、web应用程序、本机操作的应用程序、主题及其它浏览器偏好(例如,在存储器174中)并将其同步到用户的帐户(例如,使用识别符数据库178)。在用户在其它计算机及装置(例如,装置102B或102C)上登入到web浏览器112中的任何时间,用户可接着加载这些设定。举例来说,对浏览器设定的改变可即刻同步到帐户且可自动地反映在用户已登入(且实现同步)的其它计算机上。
当已安装web应用程序或本机操作的应用程序124时,计算装置102A可对与应用程序有关的一些数据进行本地存储。服务器(例如,同步服务器170)可确保来自计算装置102A的本地数据跨越所有用户装置或所有用于使用户登录到用户帐户中的装置而同步。另外,口令传统上是本地存储的,但可使用服务器而跨越各装置同步。此外,服务器可使所有经安装本机操作的应用程序、web应用程序、浏览器扩展、浏览器书签、设定、简档、浏览器历史、主题、插件、本地权限、模式指示器及针对用户的与web应用程序及浏览器扩展相关联的数据跨越不同装置同步。举例来说,如果计算装置102A的用户从计算装置102C访问用户帐户(举例来说,经由web浏览器),那么服务器150可将与web应用程序及浏览器扩展相关联的设定及数据(举例来说,用户已选择进行同步的设定及数据)从用户帐户拷贝到计算装置102C。此外,服务器可能够进行装置敏感同步。举例来说,web应用程序的与强大图形相关联的某些版本可适合于具有硬件加速器及大显示监视器的桌上型计算机,但并不十分适合于具备web能力的电话、平板计算机或膝上型计算机。服务器可确定web应用程序的版本并不十分适合于用户的具备web能力的电话、平板计算机或膝上型计算机,且可通知用户(例如,在同步或登录过程期间)或排除版本或web应用程序而不在用户的具备web能力的电话、平板计算机或膝上型计算机上进行同步。
对一个计算装置上的设定的改变可以是(例如,经由服务器170)从其它计算机自动拷贝的(举例来说,在用户已启用所述同步特征的情况下)。当经同步数据在计算装置102A、102B、102C与服务器150之间行进时可对所述经同步数据进行加密以使信息保持安全。此外,可使用密码密钥在计算装置102A、102B、102C及服务器150上对口令进行加密。
在一些实施方案中,本机操作的应用程序(例如图1中所展示的本机操作的应用程序124)可具有原始网络访问权(例如,经由API)以与服务器(例如服务器130)来回推送数据。另外,在一些实施方案中,可例如使用同步服务器170来使本机操作的应用程序124跨越所有用户会话而同步。举例来说,如上文所提及,本机操作的应用程序124可使用运行时间120(例如,使用API)来访问身份服务,使得如果用户登入到系统中,那么本机操作的应用程序124可例如经由唯一识别符访问已登录用户的身份(在所述应用程序具有用户赋予的权限的情况下)。
图2是运行时间多进程配置的实例性框图。如上文所论述,使用运行时间120的每一本机操作的应用程序可使用单独进程来保护总体系统不受本机操作的应用程序中的任一者中的错误故障影响。可限制从本机操作的应用程序进程到其它本机操作的应用程序进程及到系统其余部分的访问。以此方式,针对一个应用程序运行的一个进程与针对其它应用程序运行的其它进程隔离且分离。web浏览器(例如web浏览器112)可使用运行时间120而执行且可在其自己的进程中执行。
如图2中所展示,运行时间120可执行单独进程202、204及206,每一进程分别显示单独的本机操作的应用程序212、214及216的用户接口。如上文所论述,本机操作的应用程序212、214及216是用web技术(例如,HTML、JAVASCRIPT等)编码的,但其操作并不需要web浏览器。本机操作的应用程序212、214及216可执行单独进程,作为实例,每一进程可分别具有对存储器106的至少一部分(例如存储器222、224或226的部分)的单独读取/写入访问权。在一些实施方案中,本机操作的应用程序212、214及216可执行单独进程,每一进程具有其自己的存储器(例如,存储器222、224、226)及其自己的全局数据结构副本。一个本机操作的应用程序(例如,212)可在所有其它本机操作的应用程序在使用中时为繁忙的。如果本机操作的应用程序212、214及216中的一者存在错误(例如,在渲染器进程中),那么其可能不影响其它应用程序或使整个运行时间120崩溃。此外,可使用运行时间120将本机操作的应用程序212、214及216中的每一者沙盒化,使得在卸载时计算装置上不会保留所述应用程序的任何残留物。举例来说,无任何执行代码或私有数据会留在计算装置上。可实现此情形是因为运行时间120可控制对本机操作的应用程序212、214及216的任何卸载且因为运行时间120将本机操作的应用程序212、214及216隔离使得每一本机操作的应用程序212、214、216具有其自己的经隔离数据存储装置(例如,222、224、226),使得每一本机操作的应用程序无法影响其它数据存储装置。此外,每一本机操作的应用程序212、214、216无法访问用户在web浏览器中访问的网站的个人数据(例如小型文本文件(cookie))。此类型的隔离(其也可称为沙盒化)利用由操作系统提供的安全性来允许无法对计算机进行永久改变或访问机密信息的代码执行。此种隔离及受控制卸载不同于本机应用程序,本机应用程序仅仅卸载其自身(且在一些情况中,可能不彻底地卸载)且通常也可访问任何存储器部分或私有数据。相比之下,运行时间120可控制对本机操作的应用程序124的卸载。
作为一个说明性实例,本机操作的应用程序212可为将经编辑照片保存到经隔离存储器部分(即,存储器部分222)的照片编辑器。然而,为了访问待编辑的照片,本机操作的应用程序212可需要访问处于存储器106的另一部分中的先前所存储照片。在此情况中,API可为本机操作的应用程序212提供对存储器106上的所有本地照片(例如,仅JPEG或BITMAP文件)的访问权。所述API可控制如何管理此访问权,因为所述API正通过运行时间120而操作。在此实例中,本机操作的应用程序212无法利用API来访问其它类型的文件或未被授权对存储器106的其它部分的访问权。
图3是可用于本机应用程序、本机操作的应用程序及web应用程序的用户接口的实例的图。用户接口302可为对计算装置(例如,桌上型计算机、智能电话等)(例如来自图1的装置102A)的显示。用户接口302可包含各种图形用户接口元件。图3中未描绘一些任选图形用户接口元件,例如桌面工具栏、桌面图标、主题、智能电话应用程序图标等。
用户接口302可包含浏览器用户接口304、本机操作的应用程序用户接口320及本机应用程序用户接口340。浏览器用户接口304可包含各种浏览器“镶边”306元件,举例来说,包含浏览器web浏览器112的边界、窗口框架、菜单、工具栏及滚动栏。浏览器用户接口304可由执行web应用程序的web浏览器显示,所述web应用程序显示web应用程序用户接口310。web应用程序可能由于web的安全模型而不具有对计算装置102A的任何本地资源(例如打印机、摄像机、文件系统、USB驱动器等)的自动访问权。自动访问权的这种缺乏可使得web应用程序从用户的角度来看更安全。相比之下,本机应用程序可具有对计算装置102A的存储器的读取/写入访问权,可访问本地资源或可甚至运行恶意软件。相比之下,本机操作的应用程序可具有web应用程序的安全性,但也可具有例如经由API对本地资源的某种额外自动访问权,这在维持安全特征(例如沙盒化及进程隔离)的同时对应用程序赋予额外能力(例如对本地装置、GPU的访问权)。
与web应用程序用户接口310相比,本机操作的应用程序用户接口320不包含任何浏览器镶边。web应用程序用户接口310及本机操作的应用程序用户接口320两者可分别由web技术文件330A及330B的经封装群组(即,一或多者)来实施。web技术文件330A及330B可含有运行时间120为执行应用程序而需要的所有逻辑。作为实例,web技术文件330A及330B可包含JAVASCRIPT、HTML、CSS或其它web技术文件。web技术文件330A及330B不需要单独的编译来执行web应用程序或本机操作的应用程序。此外,开发者可使用例如具有不同经封装格式的相同基本web技术文件330A及330B来实施web应用程序及本机操作的应用程序两者。作为一实例,开发者可为web应用程序提供到开发者服务器上的文件的链接或指针,且可提供可供下载以使同一应用程序作为本机操作的应用程序操作的经封装文件(例如,呈CRX格式)。相比之下,本机应用程序用户接口340由可执行代码350实施而不由web技术文件实施。此外,本机应用程序无法作为web应用程序在web浏览器中运行。
图4A是用于web应用程序的跨系统安装的过程的流程图。图4A中所展示的流程图可至少部分地由服务器(例如,图1中所展示的市场服务器150)执行。所述服务器可接收安装本机操作的应用程序的请求(410)。所述服务器可在特定本机操作的应用程序的安装之前测试是否存在运行时间(420),例如通过进行API呼叫以确定装置是否已安装运行时间或通过检测访问数字市场服务器150的web浏览器的类型。如果已安装运行时间(420,是),那么不需要再次将其下载到机器上,且在一些实施方案中,服务器可向浏览器发送简单地启动运行时间120(未展示)的指令。如果尚未安装运行时间(420,否),那么服务器可例如在已做出安装本机操作的应用程序的请求的用户赋予权限的情况下提供运行时间以供安装(430)。在一个实施方案中,可通过给用户提供元安装程序来执行安装,所述元安装程序包含运行时间120且一旦用户打开所述元安装程序,其便知晓如何自身进行安装。所述服务器还可给用户提供对所要本机操作的应用程序的一或多个参考(例如唯一ID、名称、语言、品牌或其它数据),运行时间120可接着下载并安装所述所要本机操作的应用程序。在一些实施方案中,元安装程序还可一旦其被安装于装置上便周期性地更新运行时间120,或在存在更新版本的情况下使装置的运行时间升级。所述服务器还可提供本机操作的web应用程序以供安装于客户端计算装置上(440)。
图4A中所展示的过程是一个实施方案的实例,且可对步骤进行删除、重新排序或修改。举例来说,可组合430及440,且从用户的角度来看,整个过程可为单击下载,从而不需要来自用户的进一步输入。作为另一实例,过程400还可包含确定计算装置包含指定特征(例如,GPU或web摄像机)并基于所述指定特征而筛选本机操作的应用程序。在另一实例中,服务器可确定访问数字市场的浏览器的类型,且可确定web浏览器是否为特性类型、是否已为所述计算装置安装运行时间。
图4B是本机操作的应用程序的寿命循环的流程图。当打开本机操作的应用程序(例如,通过用户点击与应用程序相关联的桌面图标)时,本机操作的应用程序运行时间从用户的桌面加载事件页面(450)。事件页面可为含有应用程序的所有顶级逻辑而无其自己的用户接口的网页。事件页面可负责为所有其它应用程序页面创建用户接口窗口。
当加载事件页面时,引发onLaunch()事件。此事件可告知事件页面将启动何种窗口以及其维度。
如果事件页面打开窗口(452,是),那么一或多个窗口打开以供用户观看及访问(454)。举例来说,可显示相片编辑应用程序的主用户接口。举例来说,当用户点击退出应用程序的图标时,事件页面或运行时间可关闭窗口(456)。运行时间卸载事件页面(458)并关闭应用程序。
当事件页面不具有正执行的JavaScript、不具有回叫且不具有打开的窗口(452,否)时,运行时间卸载事件页面(458)并关闭应用程序。在一些实施方案中,在卸载事件页面之前,引发onSuspend()事件。这对事件页面赋予在关闭应用程序之前完成简单清除任务的机会。一旦引发此事件,运行时间便开始关闭应用程序的过程。所有事件均停止引发且终止JavaScript执行。不保证在处置此事件时开始的任何不同步操作将完成。
图5展示可与本文所描述的技术一起使用的类属计算机装置500及类属移动计算机装置550的实例。计算装置500打算表示各种形式的数字计算机,例如膝上型计算机、桌上型计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机及其它适当计算机。计算装置550打算表示各种形式的移动装置,例如个人数字助理、蜂窝式电话、智能电话及其它类似计算装置。本文所展示的组件、其连接及关系以及其功能意在仅为示范性的,且不意在限制本文档中所描述及/或所主张的本发明实施方案。
计算装置500包含:处理器502;存储器504;存储装置506;高速接口508,其连接到存储器504及高速扩充端口510;及低速接口512,其连接到低速总线514及存储装置506。组件502、504、506、508、510及512中的每一者使用各种总线而互连,且可安装于共同主板上或视情况以其它方式安装。处理器502可处理供在计算装置500内执行的指令,包含存储于存储器504中或存储装置506上以在外部输入/输出装置(例如耦合到高速接口508的显示器516)上显示用于GUI的图形信息的指令。在其它实施方案中,可视情况使用多个处理器及/或多个总线以及多个存储器及存储器类型。此外,可连接多个计算装置500,其中每一装置提供必要操作的若干部分(例如,作为服务器组、刀片式服务器群组或多处理器系统)。
存储器504存储计算装置500内的信息。在一个实施方案中,存储器504为一(或若干)易失性存储器单元。在另一实施方案中,存储器504为一(或若干)非易失性存储器单元。存储器504还可为另一形式的计算机可读媒体,例如磁盘或光盘。
存储装置506能够为计算装置500提供大容量存储。在一个实施方案中,存储装置506可为或含有计算机可读媒体,例如软盘装置、硬盘装置、光盘装置或磁带装置、快闪存储器或其它类似固态存储器装置,或包含存储区域网络或其它配置中的装置的装置阵列。计算机程序产品可有形地体现于信息载体中。所述计算机程序产品还可含有在执行时执行例如上文所描述的方法的一或多个方法的指令。所述信息载体为计算机可读媒体或机器可读媒体,例如存储器504、存储装置506或处理器502上的存储器。
高速控制器508管理计算装置500的带宽密集型操作,而低速控制器512管理较低带宽密集型操作。此功能分配仅为示范性的。在一个实施方案中,高速控制器508耦合到存储器504、显示器516(例如,通过图形处理器或加速器)且耦合到可接受各种扩充卡(未展示)的高速扩充端口510。在所述实施方案中,低速控制器512耦合到存储装置506及低速扩充端口514。可包含各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩充端口可(例如,经由网络适配器)耦合到一或多个输入/输出装置,例如键盘、指向装置、扫描仪或联网装置(例如交换机或路由器)。
如图中所展示,可以若干种不同形式来实施计算装置500。举例来说,可将其实施为标准服务器520或在此类服务器的群组中多次实施。还可将其实施为机架式服务器系统524的一部分。另外,可将其实施于个人计算机(例如膝上型计算机522)中。或者,可将来自计算装置500的组件与例如装置550的移动装置(未展示)中的其它组件组合。此类装置中的每一者可含有计算装置500、550中的一或多者,且整个系统可由彼此通信的多个计算装置500、550构成。
计算装置550包含处理器552、存储器564、输入/输出装置(例如显示器554)、通信接口566及收发器568以及其它组件。装置550还可具备存储装置(例如微驱动器或其它装置)以提供额外存储。组件550、552、564、554、566及568中的每一者使用各种总线而互连,且所述组件中的数个组件可安装于共同主板上或视情况以其它方式安装。
处理器552可执行计算装置550内的指令,包含存储于存储器564中的指令。所述处理器可实施为包含单独及多个模拟与数字处理器的若干芯片的芯片集。所述处理器可提供(举例来说)装置550的其它组件的协调,例如对用户接口、由装置550运行的应用程序及由装置550进行的无线通信的控制。
处理器552可通过耦合到显示器554的控制接口558及显示接口556与用户通信。显示器554可为(举例来说)TFTLCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或者其它适当显示技术。显示接口556可包括用于驱动显示器554以向用户呈现图形及其它信息的适当电路。控制接口558可接收来自用户的命令并对其进行转换以供提交到处理器552。另外,可提供与处理器552通信的外部接口562,以便实现装置550与其它装置的近区通信。外部接口562可在一些实施方案中提供(举例来说)有线通信,或在其它实施方案中提供无线通信,且还可使用多个接口。
存储器564存储计算装置550内的信息。存储器564可实施为以下各项中的一或多者:一(或若干)计算机可读媒体、一(或若干)易失性存储器单元或者一(或若干)非易失性存储器单元。还可提供扩充存储器574且其通过扩充接口572连接到装置550,所述扩充接口可包含(举例来说)SIMM(单列直插式存储器模块)卡接口。此类扩充存储器574可给装置550提供额外存储空间,或还可存储装置550的应用程序或其它信息。具体来说,扩充存储器574可包含用以执行或补充上文所描述的过程的指令,且还可包含安全信息。因此,举例来说,扩充存储器574可提供为装置550的安全模块,且可编程有准许对装置550的安全使用的指令。另外,安全应用程序可连同额外信息一起经由SIMM卡而提供,例如以非黑客方式将识别信息放置于SIMM卡上。
存储器可包含(举例来说)如下文所论述的快闪存储器及/或NVRAM存储器。在一个实施方案中,计算机程序产品有形地体现于信息载体中。所述计算机程序产品含有在执行时执行例如上文所描述的方法的一或多个方法的指令。所述信息载体为计算机可读媒体或机器可读媒体,例如存储器564、扩充存储器574或处理器552上的可(举例来说)经由收发器568或外部接口562接纳的存储器。
装置550可通过在必要的情况下可包含数字信号处理电路的通信接口566无线地通信。通信接口566可提供在各种模式或协议下的通信,例如GSM话音呼叫,SMS、EMS或MMS消息接发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS以及其它。此通信可(举例来说)通过射频收发器568发生。另外,短程通信可(例如)使用蓝牙、WiFi或其它此类收发器(未展示)而发生。另外,GPS(全球定位系统)接收器模块570可将额外导航及位置相关无线数据提供到装置550,所述数据可视情况由在装置550上运行的应用程序使用。
装置550还可使用音频编解码器560以音频方式通信,所述音频编解码器可从用户接收口述信息并将其转换为可用数字信息。音频编解码器560同样地可(例如)在装置550的手持机中(例如)经由扬声器为用户产生可听声音。此声音可包含来自话音电话呼叫的声音、可包含所记录声音(例如,话音消息、音乐文件等)且还可包含由在装置550上操作的应用程序产生的声音。
如图中所展示,可以若干种不同形式来实施计算装置550。举例来说,其可实施为蜂窝式电话550。其还可实施为智能电话552、个人数字助理或其它类似移动装置的部分。
本文所描述的系统及技术的各种实施方案可以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件及/或其组合而实现。这各种实施方案可包含可在可编程系统上执行及/或解释的一或多个计算机程序中的实施方案,所述可编程系统包含可为专用或通用的至少一个可编程处理器(其经耦合以从存储系统接收数据及指令且将数据及指令传输到存储系统)、至少一个输入装置及至少一个输出装置。
这些计算机程序(还称为程序、软件、软件应用程序或代码)包含用于可编程处理器的机器指令且可以高级程序及/或对象导向的编程语言及/或以汇编/机器语言实施。如本文中所使用,术语“机器可读媒体”或“计算机可读媒体”是指用于将机器指令及/或数据提供到可编程处理器的任何计算机程序产品、设备及/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),所述可编程处理器包含作为机器可读信号接收机器指令的机器可读媒体。术语“机器可读信号”是指用于将机器指令及/或数据提供到可编程处理器的任何信号。
为提供与用户的交互,本文所描述的系统及技术可实施于具有用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)及用户可借以将输入提供到计算机的键盘及指向装置(例如,鼠标或轨迹球)的计算机上。也可使用其它种类的装置来提供与用户的交互;举例来说,提供给用户的反馈可为任何形式的感观反馈(例如,视觉反馈、听觉反馈或触觉反馈);且来自用户的输入可以任何形式(包括声音、语音或触觉输入)而接收。
本文所描述的系统及技术可实施于计算系统(包含后端组件(例如,作为数据服务器);或包含中间件组件(例如,应用程序服务器);或包含前端组件(例如,具有用户可借以与本文所描述的系统及技术的实施方案交互的图形用户接口或Web浏览器的客户端计算机);或此类后端、中间件或前端组件的任一组合)中。所述系统的组件可通过任何数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包含局域网(“LAN”)、广域网(“WAN”)及因特网。
所述计算系统可包含客户端及服务器。客户端与服务器通常彼此远离且通常通过通信网络交互。客户端与服务器的关系是借助在相应计算机上运行且彼此之间具有客户端-服务器关系的计算机程序而产生。
已描述若干个实施方案。然而,将理解,可在不背离本发明的精神及范围的情况下作出各种修改。
另外,图中所描绘的逻辑流程未必需要所展示的特定次序或顺序次序来实现所要结果。另外,可提供其它步骤,或可从所描述流程消除若干步骤,且可向所描述系统添加或从所描述系统移除其它组件。因此,其它实施例也在所附权利要求书的范围内。

Claims (10)

1.一种用于提供应用程序的跨系统安装的方法,其包括:
经由服务器提供仅用web技术编码的本机操作的应用程序以供安装;
提供单一运行时间环境以供安装,所述单一运行时间环境为所述本机操作的应用程序提供对web应用程序不能获得的计算机系统级服务的访问权,
其中所述单一运行时间环境控制所述本机操作的应用程序的安装及卸载,且
其中所述本机操作的应用程序经配置以独立于web浏览器而执行。
2.根据权利要求1所述的方法,其进一步包括同时安装所述单一运行时间环境及所述本机操作的应用程序。
3.根据权利要求1或权利要求2所述的方法,其进一步包括:
为所述本机操作的应用程序提供对web服务的访问权。
4.根据权利要求2所述的方法,其中使用由客户端计算装置下载的元安装程序来执行所述同时安装。
5.根据权利要求1、权利要求2或权利要求3所述的方法,其进一步包括:
在所述安装之前,基于访问所述服务器的web浏览器的类型而自动地确定客户端计算机系统是否已安装所述单一运行时间环境。
6.根据前述权利要求中任一权利要求所述的方法,其中所述单一运行时间环境为利用所述单一运行时间环境的每一本机操作的应用程序实施单独进程,使得每一本机操作的应用程序具有其自己的对客户端计算装置的存储器的单独部分的访问权。
7.根据前述权利要求中任一权利要求所述的方法,其进一步包括:
通过使用所述单一运行时间环境开始新进程来操作所述本机操作的应用程序,其中所述新进程与操作第二本机操作的应用程序的第二进程是分开的。
8.根据前述权利要求中任一权利要求所述的方法,其中所述web技术包含HTML、CSS及JavaScript。
9.根据前述权利要求中任一权利要求所述的方法,其中所述计算机系统级服务包含:图形卡、web摄像机、扬声器、USB驱动器或客户端计算装置的文件系统。
10.根据前述权利要求中任一权利要求所述的方法,其进一步包括:
通过从客户端计算装置的存储器的沙盒化区域完全移除所述本机操作的应用程序而从所述客户端计算装置卸载所述本机操作的应用程序。
CN201810294506.6A 2012-09-27 2013-09-25 Web应用程序的跨系统安装 Pending CN108509207A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261706292P 2012-09-27 2012-09-27
US61/706,292 2012-09-27
US13/648,473 US9465596B2 (en) 2012-09-27 2012-10-10 Cross system installation of web applications
US13/648,473 2012-10-10
CN201380050108.5A CN104704468B (zh) 2012-09-27 2013-09-25 Web应用程序的跨系统安装

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380050108.5A Division CN104704468B (zh) 2012-09-27 2013-09-25 Web应用程序的跨系统安装

Publications (1)

Publication Number Publication Date
CN108509207A true CN108509207A (zh) 2018-09-07

Family

ID=50340250

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810294506.6A Pending CN108509207A (zh) 2012-09-27 2013-09-25 Web应用程序的跨系统安装
CN201380050108.5A Active CN104704468B (zh) 2012-09-27 2013-09-25 Web应用程序的跨系统安装

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201380050108.5A Active CN104704468B (zh) 2012-09-27 2013-09-25 Web应用程序的跨系统安装

Country Status (5)

Country Link
US (1) US9465596B2 (zh)
EP (1) EP2901274B1 (zh)
CN (2) CN108509207A (zh)
DE (1) DE202013012500U1 (zh)
WO (1) WO2014052380A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244709B2 (en) * 2011-06-13 2016-01-26 Microsoft Technology Licensing, Llc Automatic recognition of web application
US9195479B2 (en) * 2011-10-17 2015-11-24 Google Inc. Selective notification of native applications
US9465596B2 (en) 2012-09-27 2016-10-11 Google Inc. Cross system installation of web applications
CN103716703A (zh) * 2012-10-09 2014-04-09 腾讯科技(深圳)有限公司 一种视频播放方法和装置
US9367211B1 (en) * 2012-11-08 2016-06-14 Amazon Technologies, Inc. Interface tab generation
US9189084B2 (en) * 2013-03-11 2015-11-17 Barnes & Noble College Booksellers, Llc Stylus-based user data storage and access
US9804745B2 (en) 2013-06-09 2017-10-31 Apple Inc. Reordering content panes in a stacked tab view
CN104092715B (zh) * 2013-11-28 2016-10-19 腾讯科技(深圳)有限公司 一种同步应用程序的方法、服务器及系统
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
CN104007986A (zh) * 2014-05-08 2014-08-27 郭伟 跨系统远程实时交互技术
JP6403507B2 (ja) * 2014-09-05 2018-10-10 キヤノン株式会社 情報処理端末およびブラウザストレージ管理方法
US10277601B1 (en) 2015-05-11 2019-04-30 Google Llc System and method for recursive propagating application access control
CN105760755B (zh) * 2016-02-24 2018-06-19 浪潮通用软件有限公司 一种Visual Studio扩展包的隔离方法
CN107015870B (zh) 2016-09-19 2020-11-03 创新先进技术有限公司 实现web页面与本地应用通信的方法、装置和电子设备
CN108897550B (zh) * 2018-06-08 2021-07-30 江苏中威科技软件系统有限公司 通过封装浏览器实现程序部署、访问、升级的系统及方法
US11343193B2 (en) * 2020-01-03 2022-05-24 Realtek Singapore Private Limited Apparatus and method for rate management and bandwidth control

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098296A1 (en) * 2006-10-23 2008-04-24 Christopher Brichford Rendering hypertext markup language content
US20100306759A1 (en) * 2009-05-28 2010-12-02 Yahoo! Inc. System for packaging native program extensions together with virtual machine applications
CN101930366A (zh) * 2010-08-27 2010-12-29 武汉天喻信息产业股份有限公司 一种基于浏览器的手机中间件
US20110314389A1 (en) * 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
CN102542187A (zh) * 2010-12-23 2012-07-04 盛趣信息技术(上海)有限公司 基于安全沙盒提高计算机安全性能的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490073B1 (en) * 2004-12-21 2009-02-10 Zenprise, Inc. Systems and methods for encoding knowledge for automated management of software application deployments
US8799298B2 (en) * 2007-08-17 2014-08-05 Salesforce.Com, Inc. On-demand database service system, method, and computer program product for enforcing the inclusion of tests in a developed application
US20130159892A1 (en) * 2011-08-17 2013-06-20 Weejot Ltd. Non-technical creation of mobile web applications
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
US9465596B2 (en) 2012-09-27 2016-10-11 Google Inc. Cross system installation of web applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098296A1 (en) * 2006-10-23 2008-04-24 Christopher Brichford Rendering hypertext markup language content
US20100306759A1 (en) * 2009-05-28 2010-12-02 Yahoo! Inc. System for packaging native program extensions together with virtual machine applications
US20110314389A1 (en) * 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
CN101930366A (zh) * 2010-08-27 2010-12-29 武汉天喻信息产业股份有限公司 一种基于浏览器的手机中间件
CN102542187A (zh) * 2010-12-23 2012-07-04 盛趣信息技术(上海)有限公司 基于安全沙盒提高计算机安全性能的方法

Also Published As

Publication number Publication date
CN104704468B (zh) 2018-04-27
EP2901274A1 (en) 2015-08-05
EP2901274B1 (en) 2020-07-15
WO2014052380A1 (en) 2014-04-03
US20140089914A1 (en) 2014-03-27
US9465596B2 (en) 2016-10-11
CN104704468A (zh) 2015-06-10
DE202013012500U1 (de) 2017-01-27

Similar Documents

Publication Publication Date Title
CN104704468B (zh) Web应用程序的跨系统安装
US11799984B2 (en) Installable web applications
US9959198B1 (en) Simulated testing of API
JP6463393B2 (ja) テナント移行にわたるテナント・データのリカバリ
US10762277B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
EP2649536B1 (en) Codeless sharing of spreadsheet objects
CN107831974B (zh) 信息分享方法、装置及存储介质
JP6871943B2 (ja) モバイルクラウドサービスのための予め形成された命令
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
US10419568B2 (en) Manipulation of browser DOM on server
JP2014525092A (ja) サードパーティのコンテンツをオンライン文書署名に関連付けるための方法
US20160224549A1 (en) Methods, systems and recording mediums for managing conversation contents in messenger
US10795633B2 (en) Desktop sharing method and mobile terminal
CN103164217B (zh) 用于后端系统的独立数据实体
CN114115855A (zh) 代码复用方法及装置、计算机可读存储介质、电子设备
US20170366916A1 (en) Programming organizational links that propagate to mobile applications
WO2018217406A1 (en) Providing instant preview of cloud based file
Garg et al. Xml based lucid web operating system
CN117751347A (zh) 用于分布式界面组件生成的技术
TW201800958A (zh) 終端裝置及其終端作業系統與雲端裝置及其雲端作業系統

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180907

WD01 Invention patent application deemed withdrawn after publication