CN101855618B - 用于在应用执行期间改变执行环境的方法和系统 - Google Patents
用于在应用执行期间改变执行环境的方法和系统 Download PDFInfo
- Publication number
- CN101855618B CN101855618B CN200880110971.4A CN200880110971A CN101855618B CN 101855618 B CN101855618 B CN 101855618B CN 200880110971 A CN200880110971 A CN 200880110971A CN 101855618 B CN101855618 B CN 101855618B
- Authority
- CN
- China
- Prior art keywords
- application
- execution environment
- web browser
- execution
- applet
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的一些实施方式提供了一种执行应用的系统。在操作期间,该系统使用web浏览器来启动应用。接着,该系统从该应用的用户接收执行环境改变通知,并且响应于该通知,将该应用转移到第二执行环境而不中断该应用的执行。
Description
技术领域
本发明涉及支持应用的执行的系统。更具体地,本发明涉及用于在应用执行期间改变执行环境的方法和系统。
背景技术
小应用程序(applet)是可以在另一程序(诸如,web浏览器)的上下文中执行的软件组件。小应用程序的例子包括Java(JavaTM是Sun微系统公司的注册商标)小应用程序和Flash(FlashTM是Adobe系统公司的注册商标)动画。此外,小应用程序经常执行超出其执行环境(例如,web浏览器,桌面环境)默认能力之外的特定功能。例如,小应用程序可以提供诸如游戏、数学或物理仿真、计算器、定时器、日历和/或天气预报之类的特征。
小应用程序通常在主程序、插件、虚拟机和/或兼容应用提供的容器内运行。小应用程序还可以通过容器从容器提供方接收服务。此外,容器提供方的终止通常导致小应用程序的终止。例如,在web浏览器被关闭时,通过web浏览器运行的小应用程序可以停止执行。因此,小应用程序的使用可能受到小应用程序不能独立于原始执行环境而运行的限制。
发明内容
本发明的某些实施方式提供了一种执行应用的系统。在操作期间,该系统使用web浏览器来启动该应用。接着,该系统从该应用的用户接收执行环境改变通知,并且响应于该通知,将该应用转移到第二执行环境而不中断该应用的执行。
在有些实施方式中,该应用和web浏览器在独立的操作系统进程中执行。
在有些实施方式中,第二执行环境可以是本地桌面环境、虚拟桌面环境、远程桌面环境或协作应用。
在有些实施方式中,消息递送服务实现用于从web浏览器向应用提供服务。
在有些实施方式中,通过利用单机服务实现来替换消息递送服务实现,而将应用转移到第二执行环境,其中单机服务实现忽略应用和web浏览器之间的消息。
在有些实施方式中,通过利用新的消息递送服务实现来替换该消息递送服务实现,而将应用转移到第二执行环境,其中新的消息递送服务实现促进该应用与协作应用之间的通信。
在有些实施方式中,该应用是Java小应用程序。
在有些实施方式中,执行环境改变通知包括拖放动作或剪贴动作,其将应用的可视表示从web浏览器的可视表示移动到第二执行环境的可视表示。
附图说明
图1A示出了按照本发明一个实施方式的系统示意图;
图1B示出了按照本发明一个实施方式的系统示意图;
图2示出了显示按照本发明一个实施方式的、将应用从web浏览器转移到桌面环境的过程的流程图;
图3示出了显示按照本发明一个实施方式的、将应用从web浏览器转移到协作应用的过程的流程图;
图4示出了实现按照本发明一个实施方式的、将小应用程序从web浏览器向桌面拖动的过程的流程图。
具体实施方式
提供以下描述以使得本领域任何技术人员能够制造和使用公开的实施方式,其中在特定应用及其需求的上下文中提供了此描述。对所公开的实施方式的各种变形对于本领域技术人员来说将是很明显的,并且此处所定义的通用原理可以应用到其他实施方式和应用,而不偏离本发明的精神和范围。因此,本描述的意图不在于将本发明限制在所示出的实施方式,而是按照与此处所公开的原理和特征相一致的最宽广的范围。
在此具体实施方式部分中描述的数据结构和代码通常存储在计算机可读存储介质上,其中计算机可读存储介质可以是能够存储供计算机系统使用的代码和/或数据的任何设备或介质。这包括但不限于,易失性存储器、非易失性存储器、磁的和光的存储设备(诸如盘驱动、磁带、CD(紧致盘)、DVD(数字多功能盘或数字视频盘)),或者能够存储计算机可读介质的现在已知或未来开发的其他介质。
在此具体实施方式部分中描述的方法和过程可以实现为代码和/或数据,其可以存储在上述计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,该计算机系统执行这些实现为数据结构和代码并存储在计算机可读存储介质内的方法和过程。
此外,下文描述的方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及现在已知或未来开发的其他可编程逻辑器件。当硬件模块被激活时,这些硬件模块执行包含在硬件模块内的方法和过程。
一般而言,本发明的实施方式提供了一种用于执行应用的方法和系统。应用可以包括基于web的应用,诸如小应用程序。具体地,本发明的实施方式提供了一种用于在应用执行期间改变执行环境的方法和装置。在本发明的一个或多个实施方式中,应用可以在第一执行环境(诸如web浏览器)中启动。继而,应用可以被转移到诸如协作应用或桌面环境(例如,本地桌面环境、虚拟桌面环境、远程桌面环境,等等)的第二执行环境,而不中断该应用的执行。
例如,应用可以被加载到web页面内,以在应用的用户之间提供通信(例如,即时消息传送、电子邮件、电话等)特征。用户可以使用web浏览器内的应用而开始,并且在完成其与web浏览的浏览会话之后决定继续使用该应用。结果,用户可以拖动、剪贴或以其他方式将小应用程序从该web页面移动到从其加载该web页面的计算机的桌面。在转移到桌面之后,可以将小应用程序从web浏览器断开和/或整合到桌面环境中。而且,在web浏览器的执行终止之后,可以在桌面上继续小应用程序的执行。换言之,正在执行的应用可以从web应用转移到桌面应用,而不会中断该应用的执行。
图1A示出了按照本发明一个实施方式的系统示意图。具体地,图1A示出了按照本发明一个实施方式的、通过多个执行环境来执行应用的系统。该系统包括具有多个执行环境(例如,执行环境1112,执行环境x114)的主机102。主机102上的应用(例如,应用1116,应用m118,应用1120,应用n122)在与执行环境相关联的容器(例如,容器1104,容器m106,容器1108,容器n110)内运行。此外,特定容器内的应用的可视表示(例如,可视表示1124,可视表示m126,可视表示1128,可视表示n130)显示在相应的执行环境内。
主机102可以对应于向用户提供一个或多个服务或功能的电子设备。例如,主机102可以操作为移动电话、个人计算机、工作站、全球定位系统(GPS)接收机、便携式媒体播放器、个人数字助理(PDA)和/或图形计算器。此外,主机102可以包括协调主机102上的硬件资源和软件资源的使用的操作系统,以及为用户执行专门任务的一个或多个应用(例如,应用1116,应用m118,应用1120,应用n122)。例如,主机102可以包括诸如电子邮件客户端、地址簿、文档编辑器、报税应用、web浏览器和/或媒体播放器之类的应用。为了为用户执行任务,应用可以从操作系统获取主机102上的硬件资源(例如,处理器、存储器、I/O组件、无线发射器,等等)的使用权,并且通过操作系统提供的硬件和/或软件框架与用户进行交互。
为了支持与用户的交互,主机102可以包括一个或多个硬件输入/输出(I/O)组件,诸如指点设备和显示屏幕。每个硬件I/O组件可以另外与软件驱动(未示出)相关联,该软件驱动允许主机102上的操作系统和/或应用访问和使用这些硬件I/O组件。
执行环境(例如,执行环境1112,执行环境x114)可以对应于支持用户与应用进行交互的基于软件的环境。例如,用户可以通过文字处理应用来与拼写检查插件交互。类似地,应用可以从桌面环境进行初始化和执行。执行环境也可以指主机102上的各种软件组件。例如,执行环境可以包括应用软件(例如,文字处理器、电子制表软件、媒体播放器、web浏览器,等等),插件、小应用程序以及窗口小部件可以通过这些应用软件来运行。
应用可以通过基于系统的执行环境(诸如操作系统、文件系统和/或工具(utilities))来执行。而且,执行环境可以进一步被嵌套。例如,插件可以通过更大的应用来执行,而该更大的应用可以通过操作系统桌面来执行。
在本发明的一个或多个实施方式中,通过对应的执行环境来启动、访问和/或终止主机102上的应用。例如,文字处理应用可以通过双击桌面环境和/或窗口系统上的图标来启动。一旦启动了应用,该应用就可以从与该执行环境相关联的容器来运行。容器的例子可以包括用于小应用程序(例如,Java(JavaTM是Sun微系统公司的注册商标)小应用程序)的小应用程序容器,用于Flash动画的Flash(FlashTM是Adobe系统公司的注册商标)播放器,用于企业JavaBeans(EJB)(企业JavaBeansTM是Sun微系统公司的注册商标)的EJB容器,和/或用于执行插件的插件容器。
特别地,每个容器可以管理对应应用的启动和终止,并且进一步向应用提供使得该应用能够为用户执行任务的服务。例如,应用116经由主机102提供的网络连接(未示出)来请求超文本标记语言(HTML)文档。容器104可以使用该网络连接取回文档,并将文档提供给应用116。应用116继而可以向用户显示该文档和/或使用从这些文档获取的数据向用户提供各种特征。
本领域技术人员将会理解,执行环境可以与多个容器和/或在容器内运行的应用相关联。此外,每个容器可以配置用于向对应的应用提供不同的服务集合。例如,文字处理应用可以包括用于执行各种文字处理插件的若干容器。基于期望的功能、安全性和/或其他标准,每个容器可以设计成与其内的插件交互以及向插件提供服务。
在本发明的一个或多个实施方式中,某些应用被配置用于通过多个执行环境而执行。更具体地,在web浏览器内运行的窗口小部件也可以配置用于在桌面上运行或在协作应用内运行。为了改变执行环境,可能要求窗口小部件暂时停止执行和/或经受附加的配置改变。例如,基于web的窗口小部件可能单独安装在主机102上,以便在主机102本地执行。然而,主机102可以包括这样的框架,其改变应用的执行环境的框架,而不中断该应用的执行,如下文结合图1B所描述的。
图1B示出了按照本发明一个实施方式的系统示意图。具体地,图1B示出了用于改变应用执行环境而不中断应用的执行的Java框架。如图1B所示,使用一个或多个Java虚拟机(JVM)138-142来实现框架,其包括web浏览器132、桌面环境134和协作应用136,应用可以通过这些而执行。该框架还包括多个服务实现(例如,消息递送服务实现144、单机服务实现146、消息递送服务实现148),其基于应用所运行的执行环境(例如,web浏览器132、桌面环境134、协作应用136)来向应用提供服务。
在本发明的一个或多个实施方式中,主机102上的应用对应于web应用。换言之,主机102上的应用可以对应于在web浏览器132中启动的和/或通过其运行的小应用程序156-160(例如,Java小应用程序)。结果,主机102内的小应用程序的可视表示168-172最初可以嵌入并显示在web浏览器132内。用户可以通过web浏览器132提供输入而进一步与小应用程序进行交互。例如,可以通过将web浏览器132导航到嵌入有小应用程序156的web页面来启动小应用程序156。加载该页面之后,在由JVM138提供的容器150内执行小应用程序156,并且在web浏览器132中显示该小应用程序的可视表示168。
为了发起小应用程序的执行,web浏览器132可以调用插件162(例如,Java插件)。特别地,插件162可以产生JVM138的实例,并且在由JVM138提供的容器150内执行该小应用程序。插件162可以通过建立JVM138与web浏览器132之间的连接来进一步促进将小应用程序整合到web浏览器132内。此外,插件162和/或JVM138可以通过与安装在主机102上的操作系统的通信,在web浏览器132内显示可视表示168。例如,可以使用诸如继承窗口句柄之类的技术和/或诸如XEmbed的协议,在web浏览器132的可视表示内显示可视表示168。本领域技术人员将会理解,可以使用各种方法来产生JVM138,这些方法例如包括平台相关的系统调用和平台无关的Java编程语言应用编程接口(API)。
在本发明的一个或多个实施方式中,针对web浏览器132遇到的每个小应用程序,创建插件162的实例。备选地,web浏览器132遇到的所有小应用程序的初始化可以由插件162的单个实例使用多线程和/或其他技术来处理。
本领域的技术人员将会理解,与web浏览器132相关联的小应用程序(例如,小应用程序156)可以使用插件162和/或JVM实例(例如,JVM138)的组合来执行。例如,每个小应用程序可以与插件162的每个实例和/或对应的JVM实例具有一对一的映射。另一方面,可以基于其他标准(诸如插件和/或JVM版本),将小应用程序映射到插件162和/或JVM138的实例。由于诸如主机102和/或web浏览器132的重启之类的事件,小应用程序也可以交换JVM138和/或插件162实例。例如,每个小应用程序可以在单独的JVM实例和插件实例上开始运行。然而,在主机102重启之后,使用相同JVM版本(例如,JVM138)的小应用程序可能都在相同的JVM实例和/或插件实例内运行。
在本发明的一个或多个实施方式中,在web浏览器132内被初始化的每个小应用程序(例如,小应用程序156)在容器(例如,容器150)内执行,该容器使用消息递送服务实现144向该小应用程序提供服务。在本发明的一个或多个实施方式中,消息递送服务实现144通过支持小应用程序与web浏览器132之间的消息递送来促进小应用程序的执行。例如,消息递送服务实现144可以包括如下功能:查询web浏览器132的HTTP代理设置,查询存储在web浏览器132中的HTTPcookie,将文档加载到web浏览器132上,和/或发起小应用程序与来自web浏览器132的JavaScript(JavaScriptTM是Sun微系统公司的注册商标)例程之间的调用。
在本发明的一个或多个实施方式中,消息递送服务实现144允许小应用程序(例如,小应用程序156)在具有与web浏览器132的操作系统进程相独立的操作系统进程的JVM(例如,JVM138-142)中执行。消息递送服务实现144的基于消息的特性通过允许小应用程序和web浏览器132使用不同于功能调用的其他机制来通信,可以进一步将小应用程序与web浏览器132解耦合。结果,消息递送服务实现144可以支持小应用程序独立于web浏览器132而运行。
如上所述,主机102上的应用可以使用多个执行环境来运行。特别地,主机102上的应用可以从web浏览器132转移到第二执行环境(例如,桌面环境134、协作应用136,等等),而不中断小应用程序的执行。换言之,在小应用程序正在运行的同时,小应用程序156-160的可视表示168-172可以从web浏览器132的可视表示中移除,并添加到桌面环境134和/或协作应用136的可视表示中。例如,响应于小应用程序158从web浏览器132转移到桌面环境134,可视表示170可以从web浏览器132移动到桌面环境134。类似地,响应于小应用程序160从web浏览器132转移到协作应用136,可视表示172可以从web浏览器132移动到协作应用136。在小应用程序转移到第二执行环境期间,小应用程序与web浏览器132之间的通信和/或从属关系在小应用程序的执行期间可以移除,从而允许小应用程序独立于web浏览器132而运行。
本领域技术人员将会理解,桌面环境134和/或协作应用136可以代表各种执行环境。例如,桌面环境134可以指本地桌面环境、虚拟桌面环境和/或远程桌面环境。沿着相同的线路,协作应用136可以对应于本地的、虚拟的和/或远程的桌面环境中的协作应用。结果,图1B的框架例如可以允许将统计小应用程序从web浏览器132转移到安装在主机102本地或安装在主机102可访问的远程桌面上的记账应用。
在本发明的一个或多个实施方式中,响应于从主机102的用户接收到执行环境改变通知,将小应用程序(例如,小应用程序156-160)从web浏览器132转移到不同的执行环境(例如,桌面环境134、协作应用136)。在本发明的一个或多个实施方式中,执行环境改变通知对应于拖放动作或剪贴动作,这些动作将小应用程序的可视表示(例如,可视表示168-172)从web浏览器132的可视表示移动到第二执行环境的可视表示。拖放动作可以使用计算机鼠标、轨迹球、触摸板、触摸屏、按钮和/或主机102上的其他输入设备来执行。本领域技术人员将会理解,执行环境改变通知可以使用主机102上的其他动作来实现,诸如键盘快捷键、菜单选择,等等。
例如,在拖放动作期间,可以通过点击鼠标、按下按钮和/或执行对应于选择小应用程序的可视表示的其他输入动作来选择小应用程序的可视表示。该可视表示继而可以使用光标或其他指示符被放入没有标题栏或边框的新窗口中,并且从web浏览器132移动到桌面环境134和/或协作应用136中。最后,可以通过释放该鼠标点击、按下另一按钮和/或执行对应于在第二执行环境中释放小应用程序的可视表示的其他输入动作来施放该可视表示。
与典型的拖放动作一样,小应用程序的新执行环境可以基于小应用程序的可视表示下面的执行环境的可视表示。例如,如果在桌面环境134的可视表示上面释放小应用程序的可视表示,则该小应用程序的可视表示可以停留在桌面环境134中,同时小应用程序从消息递送服务实现144移动到单机服务实现146上。然而,如果在web浏览器132或不兼容的执行环境(例如,不兼容的应用)的可视表示上面释放小应用程序的可视表示,则小应用程序可以保持与消息递送服务实现144相关联,同时该小应用程序的可视表示返回到其在web浏览器132内的原始位置。
在本发明的一个或多个实施方式中,从用户接收的针对特定小应用程序的执行环境改变通知是作为执行该小应用程序的容器中的事件而接收的。例如,针对小应用程序160的执行环境改变通知可以由容器154来接收。执行环境改变通知可以从插件162递送到该容器。然后,运行该小应用程序的JVM(例如JVM138-142)和/或容器可以负责将小应用程序从web浏览器132转移到第二执行环境。
在本发明的一个或多个实施方式中,通过动态改变小应用程序156-160从对应的容器150-154接收服务的机制来支持执行环境的改变。换言之,小应用程序的执行环境的改变可以包括由对应的容器和/或JVM向小应用程序提供的服务实现(例如,消息递送服务实现144、单机服务实现146、消息递送服务实现146)中的改变。每个服务实现可以通过基于执行环境的功能、安全性和/或其他属性向小应用程序提供服务,来允许小应用程序在特定执行环境中运行。
此外,在小应用程序的运行时间期间可以发生小应用程序的服务实现的交换,因为包含该小应用程序的JVM和/或容器在与web浏览器132的操作系统进程独立的操作系统进程中执行。该小应用程序也可以在进行服务实现交换的时候在相同JVM(例如,JVM138-142)实例中继续执行。
为了将小应用程序(例如,小应用程序158)从web浏览器132转移到桌面环境134,对应的容器(例如,容器152)利用单机服务实现146来动态地替换消息递送服务实现144。类似地,小应用程序的可视表示(例如,可视表示170)同时地从web浏览器132移除并显示在桌面环境134中。在转移到桌面环境134之后,在web浏览器132终止或导航到不同的web页面之后,小应用程序可以继续在桌面环境134内运行,因为单机服务实现146可以在桌面环境134而不是web浏览器132的上下文中为小应用程序提供服务。
在本发明的一个或多个实施方式中,单机服务实现146通过忽略小应用程序与web浏览器132之间的消息,来允许小应用程序独立于web浏览器132而运行。结果,在单机服务实现146中运行的小应用程序可以不再受来自web浏览器132的命令的影响。换言之,web浏览器132可能不能够终止或以其他方式影响小应用程序在单机服务实现146中的执行。类似地,web浏览器132可以被关闭而不会影响小应用程序在单机服务实现146中的执行。与利用消息递送服务实现144一样,单机服务实现146存在于web浏览器132之外并且独立于web浏览器132而操作。此外,提供单机服务实现146的JVM(例如,JVM140)的执行不是基于web浏览器132的有效期,而是基于JVM内的小应用程序(例如,小应用程序158)的有效期。结果,向一个或多个小应用程序提供单机服务实现146的JVM可以继续执行,直到用户关闭JVM内执行的所有小应用程序。
单机服务实现146还可以代替web浏览器132向小应用程序提供服务。例如,单机服务实现146可以取回HTML文档、获取cookie信息、管理证书、基于全球网络设置获取网络位置的代理,和/或向小应用程序提供其他基于web的服务。web浏览器132所提供的传统服务的其他备选可以包括在web浏览器132的新窗口中显示小应用程序指定的web页面,和/或将针对web浏览器132中的状态栏的消息打印输出到与小应用程序相关联的一个或多个控制台窗口或日志文件中。基于web的服务可以进一步允许小应用程序更新其在桌面环境134中的可视表示(例如,可视表示1126、可视表示n128),并且在web浏览器132之外继续为用户执行任务。
为了将小应用程序(例如,小应用程序160)从web浏览器132转移到协作应用136,对应的容器(例如,容器154)可以利用消息递送服务实现148来替换消息递送服务实现144。容器还可以将小应用程序的可视表示(例如,可视表示172)从web浏览器132移动到协作环境136,例如通过将包含该可视表示的窗口的所有权转移给协作应用136。不同于消息递送服务实现144,消息递送服务实现148可以通过在小应用程序与协作应用136之间递送消息来向小应用程序提供服务。从而,小应用程序可以不再依赖于由web浏览器132提供服务,并且可以在web浏览器132终止或导航到不同的web页面之后继续在协作应用136的上下文中执行。
在本发明的一个或多个实施方式中,插件164和消息递送服务实现148允许小应用程序(例如,小应用程序160)在协作应用136而不是web浏览器132的执行环境内运行。特别地,插件164可以建立运行小应用程序的JVM(例如,JVM142)与协作应用136之间的连接,同时消息递送服务实现148可以允许小应用程序从协作应用136接收服务。例如,用户可以将制图应用从web浏览器132并入到本地安装的电子制表应用中。
此外,可以使用消息递送服务实现148和/或插件164将小应用程序的功能提供给协作应用136。特别地,消息递送服务实现148和/或插件164可以促进小应用程序与协作应用136之间的通信。因此,协作应用136可以使用消息递送服务实现148来从web浏览器132接管小应用程序所请求的服务。例如,协作应用136可以代替web浏览器132来在小应用程序与网络之间传输数据,显示来自小应用程序的web页面和消息,和/或向小应用程序提供网络代理。如前面所提到的,协作应用136也可以使用插件164(例如,Java插件)来连接到运行与协作应用136相关的小应用程序的JVM(例如,JVM142)并与之通信。
本领域技术人员将会理解,使用多个消息递送服务实现来与不同的执行环境通信可以进一步允许小应用程序在虚拟的或远程的桌面环境内执行。例如,用户可以将小应用程序从web浏览器132向包含远程桌面的窗口拖动。小应用程序可以继续在本地JVM实例中运行,同时该小应用程序可以使用基于网络的消息递送服务实现来与远程桌面通信,该消息递送服务实现使用与远程桌面的网络连接来支持小应用程序与远程桌面之间的消息递送。基于网络的消息递送服务实现可以向远程桌面传输数据,诸如主机102的名称、小应用程序的名称和/或主控该小应用程序的JVM的名称。与小应用程序相关联的插件和/或JVM也可以隐藏包含主机102上的小应用程序的可视表示的窗口,取而代之地,使用基于网络的消息递送服务实现将该小应用程序的可视表示向远程桌面发送。可以实现类似的消息递送功能以允许小应用程序与远程安装的协作应用进行通信。
本领域技术人员将会理解,可以不要求小应用程序参与执行环境的改变。此外,小应用程序可以觉察不到它们的执行环境的改变。因此,所有小应用程序可以从web浏览器132转移到第二执行环境,而不用修改小应用程序的代码或执行。另一方面,更新的小应用程序可以通过它们各自的插件实例来通知此转移,并且在被放入第二执行环境之后改变外观和/或功能。例如,响应于从web浏览器132移除并放在桌面环境134和/或协作应用136中,流传输视频小应用程序可以改变分辨率、回放选项和/或其他特征。
响应于从消息递送服务实现144转移到新的服务实现(例如,单机服务实现146、消息递送服务实现148),小应用程序也可以经历功能的改变。例如,当小应用程序被配置用于独立于web浏览器132而运行时,可以终止小应用程序与JavaScript之间的调用。出于安全性原因,在没有用户输入的情况下,还可以限制小应用程序从web浏览器132转移到第二执行环境的能力。例如,在没有用户启动或确认的情况下,可以阻止小应用程序执行环境改变的发生。
图2示出了显示按照本发明一个实施方式的、将应用从web浏览器转移到桌面环境的过程的流程图。在本发明的一个或多个实施方式中,可以省略、重复和/或以不同顺序执行一个或多个步骤。因此,图2中示出的步骤的特定安排不应当理解为限制本发明的范围。
最初,使用web浏览器来启动应用(操作202)。可以通过将web浏览器导航到嵌入有该应用的web页面来启动该应用。而且,该应用的可视表示可以随着应用的执行而显示在web浏览器内。从web浏览器初始化应用可以进一步包括将应用连接到消息递送服务实现(例如,图1B的消息递送服务实现144),其通过在应用和web浏览器之间递送消息来向应用提供服务。
接着,从web浏览器的用户接收执行环境改变通知(操作204)。如前面所提到的,执行环境改变通知可以包括拖放动作、剪贴动作、键盘快捷键和/或其他输入方法。响应于接收到执行环境改变通知,利用单机服务实现来替换消息递送服务实现(操作206),此单机服务实现允许应用独立于web浏览器而运行。在小应用程序的执行期间可以发生服务实现的交换,因为小应用程序在与web浏览器的操作系统进程相独立的操作系统进程中执行。结果,小应用程序可以在转移到桌面环境期间继续无中断地运行。一旦连接到小应用程序,单机服务实现就可以使用备选机制,以代替web浏览器向小应用程序提供服务,诸如全球网络设置和/或新的浏览器窗口。
最后,将应用的可视表示从web浏览器移动到桌面环境(操作208)。可以通过将可视表示放入不具有标题栏或边框的新窗口中,以及基于与执行环境改变通知相关联的机制来在桌面环境中移动该新窗口,从而移动该可视表示。例如,在拖放动作期间,可以利用光标移动新窗口,直到用户使用光标施放该窗口。类似地,在剪贴动作期间,可视表示可以由于用户的剪切动作而从web浏览器消失,并且在用户的粘贴动作期间重新出现在桌面环境中。
应用可以觉察不到此转移,并且无改变地继续运行,或者可以向应用通知此转移和外观和/或功能的改变。而且,可能要求用户提供的执行环境改变通知将应用转移到第二执行环境,以防止应用在用户不知晓的情况下超出web浏览器的有效期而执行。
图3示出了显示按照本发明一个实施方式的、将应用从web浏览器转移到协作应用的过程的流程图。在本发明的一个或多个实施方式中,可以省略、重复和/或以不同顺序执行一个或多个步骤。因此,图3中示出的步骤的特定安排不应当理解为限制本发明的范围。
与转移到桌面环境一样,首先使用web浏览器来启动应用(操作302)。如上面所讨论的,可以将该应用连接到消息递送服务实现,其通过在应用和web浏览器之间递送消息来向该应用提供服务。该应用可以在web浏览器的执行环境内继续执行,直到从web浏览器的用户接收到执行环境改变通知(操作304)。该执行环境改变通知可以提示将应用从web浏览器转移到协作应用(例如,文字处理应用、电子制表应用,等等)。
接着,可以利用允许应用与协作应用进行通信的新消息递送服务实现来替换该应用与web浏览器之间的消息递送服务实现(操作306)。由此,协作应用可以使用新消息递送服务实现开始向应用提供服务。而且,应用从web浏览器的服务的断开可以使得该应用能够在web浏览器导航到不同的web页面和/或终止之后继续运行。
最后,将应用的可视表示从web浏览器移动到协作应用。例如,可视表示可以从web浏览器向协作应用拖动,从web浏览器剪切并粘贴到协作应用中,和/或基于用户的输入而以其他方式进行移动。应用的可视表示的移动可以进一步包括将包含小应用程序的可视表示的窗口的所有权从web浏览器移交给协作应用。
图4示出了实现按照本发明一个实施方式的、将小应用程序从web浏览器向桌面拖动的过程的流程图。在本发明的一个或多个实施方式中,可以省略、重复和/或以不同顺序执行一个或多个步骤。因此,图4中示出的步骤的特定安排不应当理解为对本发明范围的限制。
最初,用户开始将小应用程序向桌面拖动(操作402)。该小应用程序可以对应于在JVM(诸如图1B的JVM138-142)提供的容器内运行的Java小应用程序。可以通过各种用户发起的动作来用信号通知此拖动动作,诸如鼠标点击、按下按钮、轻拍触摸板、键盘快捷键,等等。响应于启动拖动动作,小应用程序的可视表示被放入不具有标题栏或边框的新窗口中(操作404)。可以对该窗口的位置进一步更新以在将小应用程序向桌面拖动时追踪光标。
接着,将小应用程序施放到桌面上(操作406)。与操作402一样,操作406可以通过用户发起的动作来提示。例如,可以通过释放鼠标点击和/或提供键盘快捷键来施放小应用程序。此外,拖放动作可以生成用已断开小应用程序状态来对主控小应用程序的容器进行更新的事件(操作408)。此已断开小应用程序状态可以允许该小应用程序在超出web浏览器的有效期后继续存在。
特别地,当web浏览器导航离开包含该小应用程序的web页面和/或终止执行时,可以从促进web浏览器与主控小应用程序的JVM之间的通信的插件接收小应用程序退出请求(操作410)。然而,由于该小应用程序现在与web浏览器断开,因此该小应用程序独立于web浏览器而继续执行。替代地,小应用程序与web浏览器之间的消息递送服务实现现在被单机服务实现所替代(操作412),该单机服务实现使用备选机制向位于web浏览器外部的小应用程序提供服务。换言之,可以在小应用程序的可视表示移动到桌面之后(而不是之前或者同时)发生小应用程序的服务实现的交换。
不考虑操作402和操作412之间的时序,在web浏览器的执行终止之后,小应用程序继续执行(操作414)。此外,JVM实例仅在其内所有正在执行的小应用程序都已经关闭时才会终止(操作416)。
仅出于示意性和描述的目的提供了本发明实施方式的前述描述。这些描述的意图不在于穷尽或限制本发明于所公开的形式。因此,很多变形和改变对于本领域技术人员将是很明显的。而且,上述公开的意图不在于限制本发明。本发明的范围由所附权利要求限定。
Claims (18)
1.一种用于执行应用的方法,包括:
接收应用,其中所述应用通过将针对服务的消息与执行环境交换来接收服务集;
使用包括web浏览器的第一执行环境来启动所述应用的执行,其中,在使用所述第一执行环境执行时,所述应用连接至所述web浏览器并且通过使用第一消息递送服务实现来接收所述服务以将所述消息与所述web浏览器交换;
从所述应用的用户接收执行环境改变通知;以及
将所述应用从所述第一执行环境转移到第二执行环境而不中断所述应用的执行,其中将所述应用转移到第二执行环境包括在所述应用的所述执行期间使用第二消息递送服务实现动态地替换所述第一消息递送服务实现,其中替换所述第一消息递送服务实现包括将所述应用从所述web浏览器断开,以及其中在使用所述第二执行环境执行时,所述应用继续通过使用所述第二消息递送服务实现来接收所述服务以将所述消息与所述第二执行环境交换。
2.根据权利要求1所述的方法,其中所述应用和所述web浏览器在独立的操作系统进程中执行。
3.根据权利要求1所述的方法,其中所述第二执行环境是本地桌面环境、虚拟桌面环境、远程桌面环境和协作应用中的至少一个。
4.根据权利要求1所述的方法,其中所述第二消息递送服务实现是单机服务实现,其中所述单机服务实现忽略所述应用与所述web浏览器之间的消息。
5.根据权利要求1所述的方法,其中所述第二消息递送服务实现是新消息递送服务实现,其中所述新消息递送服务实现促进所述应用与协作应用之间的通信。
6.根据权利要求1所述的方法,其中所述应用包括Java小应用程序。
7.根据权利要求1所述的方法,其中所述执行环境改变通知包括拖放动作或剪贴动作,其将所述应用的可视表示从所述web浏览器的可视表示移动到所述第二执行环境的可视表示。
8.一种用于管理应用的执行的系统,包括:
插件,其配置用于使用包含web浏览器的第一执行环境来启动所述应用;以及
容器,其配置用于:
接收应用,其中所述应用通过将针对服务的消息与执行环境交换来接收所述服务集;
在所述第一执行环境中执行所述应用,其中,在使用所述第一执行环境执行时,所述应用连接至所述web浏览器并且通过使用第一消息递送服务实现来接收所述服务以将所述消息与所述web浏览器交换;
从所述应用的用户接收执行环境改变通知;以及
将所述应用从所述第一执行环境转移到第二执行环境而不中断所述应用的执行,其中将所述应用转移到第二执行环境包括在所述应用的所述执行期间使用第二消息递送服务实现动态地替换所述第一消息递送服务实现,其中替换所述第一消息递送服务实现包括将所述应用从所述web浏览器断开,以及其中在使用所述第二执行环境执行时,所述应用继续通过使用所述第二消息递送服务实现来接收所述服务以将所述消息与所述第二执行环境交换。
9.根据权利要求8所述的系统,其中所述应用和所述web浏览器在独立的操作系统进程中执行。
10.根据权利要求8所述的系统,其中所述第二执行环境是本地桌面环境、虚拟桌面环境、远程桌面环境和协作应用中的至少一个。
11.根据权利要求10所述的系统,其中所述第二消息递送服务实现是单机服务实现,其中所述单机服务实现忽略所述应用与所述web浏览器之间的消息。
12.根据权利要求10所述的系统,其中所述第二消息递送服务实现是新消息递送服务实现,其中所述新消息递送服务实现促进所述应用与协作应用之间的通信。
13.根据权利要求8所述的系统,其中所述应用包括Java小应用程序。
14.根据权利要求8所述的系统,其中所述执行环境改变通知包括拖放动作或剪贴动作,其将所述应用的可视表示从所述web浏览器的可视表示移动到所述第二执行环境的可视表示。
15.一种用于执行应用的设备,所述设备包括:
用于接收应用的装置,其中所述应用通过将针对服务的消息与执行环境交换来接收所述服务集;
用于在包括web浏览器的第一执行环境中启动所述应用的执行的装置,其中,在使用所述第一执行环境执行时,所述应用连接至所述web浏览器并且通过使用第一消息递送服务实现来接收所述服务以将所述消息与所述web浏览器交换;
用于从所述应用的用户接收执行环境改变通知的装置;以及
用于将所述应用从所述第一执行环境转移到第二执行环境而不中断所述应用的执行的装置,其中将所述应用转移到第二执行环境包括在所述应用的所述执行期间使用第二消息递送服务实现动态地替换所述第一消息递送服务实现,其中替换所述第一消息递送服务实现包括将所述应用从所述web浏览器断开,以及其中在使用所述第二执行环境执行时,所述应用继续通过使用所述第二消息递送服务实现来接收所述服务以将所述消息与所述第二执行环境交换。
16.根据权利要求15所述的设备,其中所述第二执行环境是本地桌面环境、虚拟桌面环境、远程桌面环境和协作应用中的至少一个。
17.根据权利要求15所述的设备,其中所述应用和所述web浏览器在单独的操作系统进程中执行。
18.根据权利要求15所述的设备,其中所述应用包括Java小应用程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US97887107P | 2007-10-10 | 2007-10-10 | |
US60/978,871 | 2007-10-10 | ||
PCT/US2008/079413 WO2009049088A1 (en) | 2007-10-10 | 2008-10-09 | Method and system for changing execution environments during application execution |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101855618A CN101855618A (zh) | 2010-10-06 |
CN101855618B true CN101855618B (zh) | 2015-11-25 |
Family
ID=40404543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880110971.4A Active CN101855618B (zh) | 2007-10-10 | 2008-10-09 | 用于在应用执行期间改变执行环境的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8789068B2 (zh) |
EP (1) | EP2201455B1 (zh) |
CN (1) | CN101855618B (zh) |
WO (1) | WO2009049088A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2098957A1 (en) * | 2008-03-07 | 2009-09-09 | Siemens Aktiengesellschaft | Notifying a client on server disconnection in a MES system |
US8914623B2 (en) * | 2010-03-05 | 2014-12-16 | Lenovo (Singapore) Pte. Ltd. | Utilization of the screen image information of a primary environment for reproduction and user-interaction in a secondary environment |
US8983536B2 (en) | 2010-10-22 | 2015-03-17 | Google Technology Holdings LLC | Resource management in a multi-operating environment |
US8775554B2 (en) | 2010-12-30 | 2014-07-08 | Microsoft Corporation | Cloud-based web page applications for extending functionality |
US20120311490A1 (en) * | 2011-06-03 | 2012-12-06 | Apple Inc. | Methods for launching applications with efficient user impression |
CN102411506B (zh) * | 2011-07-07 | 2014-03-12 | 杭州典能科技有限公司 | Java系统业务单元插件式管理系统及业务功能动态变更方法 |
US9384101B2 (en) * | 2011-07-26 | 2016-07-05 | Apple Inc. | Web application architecture |
CN103946801B (zh) * | 2011-12-27 | 2018-04-10 | 宇龙计算机通信科技(深圳)有限公司 | 终端和协同操作指令的处理方法 |
US9396041B2 (en) * | 2012-02-01 | 2016-07-19 | Google Technology Holdings LLC | Optimization of resource usage in a multi-environment computing system |
EP2823411A4 (en) * | 2012-03-10 | 2015-12-09 | Evado Holdings Pty Ltd | METHOD AND SYSTEM FOR THE APPLICATION DEVELOPMENT OF MULTI-DEVICE CLIENT PLATFORMS |
CN103377080B (zh) | 2012-04-23 | 2016-12-14 | 国际商业机器公司 | 用于在运行时支持微件的跨容器移动的方法和系统 |
CN102982169B (zh) * | 2012-12-12 | 2017-05-24 | 北京奇虎科技有限公司 | 用于隔离网页插件的浏览器和方法 |
US11907496B2 (en) | 2013-02-08 | 2024-02-20 | cloudRIA, Inc. | Browser-based application management |
CN104423983B (zh) * | 2013-08-29 | 2018-06-08 | 国际商业机器公司 | 用于开发、测试和部署应用的方法和装置 |
US20160055031A1 (en) * | 2014-11-13 | 2016-02-25 | Mediatek Inc. | Dual-System Architecture With Fast Recover And Switching Of Operating System |
US10891696B2 (en) * | 2014-11-26 | 2021-01-12 | Intuit Inc. | Method and system for organized user experience workflow |
US10417717B2 (en) | 2014-11-26 | 2019-09-17 | Intuit Inc. | Method and system for generating dynamic user experience |
US9678936B2 (en) | 2014-11-26 | 2017-06-13 | Intuit Inc. | Dynamic user experience workflow |
US10175997B2 (en) | 2014-11-26 | 2019-01-08 | Intuit Inc. | Method and system for storage retrieval |
US10097606B2 (en) | 2016-03-14 | 2018-10-09 | Amazon Technologies, Inc. | Application streaming using access and execution environments |
US10802844B2 (en) * | 2016-04-28 | 2020-10-13 | Microsoft Technology Licensing, Llc | Distributed application based off of stateful desktop application |
CN107665145B (zh) * | 2016-07-29 | 2020-04-03 | 中国科学院声学研究所 | 一种基于容器的浏览器单机资源管理方法 |
CN106406907A (zh) * | 2016-10-11 | 2017-02-15 | 传线网络科技(上海)有限公司 | 应用程序流程的执行控制方法及装置 |
CN108270838B (zh) * | 2017-01-04 | 2020-04-24 | 中国科学院声学研究所 | 一种基于容器的浏览器html5资源协同方法 |
TWI815039B (zh) * | 2020-09-11 | 2023-09-11 | 虹光精密工業股份有限公司 | 兼具安全及便利的文件付費處理裝置及系統 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0893758A2 (en) * | 1997-07-25 | 1999-01-27 | Sun Microsystems, Inc. | Detachable java applets |
EP1391814A1 (en) * | 2002-07-05 | 2004-02-25 | Alcatel | Process for allowing Applets to be resized independently from the WEB/HTML page they were created |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903728A (en) * | 1997-05-05 | 1999-05-11 | Microsoft Corporation | Plug-in control including an independent plug-in process |
US6125402A (en) * | 1997-06-16 | 2000-09-26 | Sun Microsystems, Inc. | Method and system for executing one of several forms of a multi-purpose program |
US7577700B2 (en) * | 2000-05-08 | 2009-08-18 | H.E.B., Llc | Method and apparatus for a portable information agent |
US9521207B2 (en) * | 2002-05-09 | 2016-12-13 | Protel Communications Limited | Unified integration management—contact center portal |
US7552401B2 (en) * | 2004-08-13 | 2009-06-23 | International Business Machines Corporation | Detachable and reattachable portal pages |
US20060059422A1 (en) * | 2004-09-16 | 2006-03-16 | Ting-Hu Wu | Desktop application implemented with web paradigm |
US7614003B2 (en) * | 2006-10-23 | 2009-11-03 | Adobe Systems Incorporated | Rendering hypertext markup language content |
US20080271127A1 (en) * | 2007-04-24 | 2008-10-30 | Business Objects, S.A. | Apparatus and method for creating stand-alone business intelligence widgets within an authentication framework |
-
2008
- 2008-10-09 WO PCT/US2008/079413 patent/WO2009049088A1/en active Application Filing
- 2008-10-09 CN CN200880110971.4A patent/CN101855618B/zh active Active
- 2008-10-09 US US12/248,349 patent/US8789068B2/en active Active
- 2008-10-09 EP EP08837165.3A patent/EP2201455B1/en active Active
-
2014
- 2014-04-14 US US14/252,630 patent/US9531840B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0893758A2 (en) * | 1997-07-25 | 1999-01-27 | Sun Microsystems, Inc. | Detachable java applets |
EP1391814A1 (en) * | 2002-07-05 | 2004-02-25 | Alcatel | Process for allowing Applets to be resized independently from the WEB/HTML page they were created |
Also Published As
Publication number | Publication date |
---|---|
US20140229532A1 (en) | 2014-08-14 |
US8789068B2 (en) | 2014-07-22 |
WO2009049088A1 (en) | 2009-04-16 |
EP2201455A1 (en) | 2010-06-30 |
EP2201455B1 (en) | 2019-05-01 |
CN101855618A (zh) | 2010-10-06 |
US20090100425A1 (en) | 2009-04-16 |
US9531840B2 (en) | 2016-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101855618B (zh) | 用于在应用执行期间改变执行环境的方法和系统 | |
US10467315B2 (en) | Codeless sharing of spreadsheet objects | |
US10194288B2 (en) | Sticker distribution system for messaging apps | |
US11687324B2 (en) | Property management method and property management system and machine using the same | |
KR20170140091A (ko) | 하나 이상의 확장 애플리케이션과 상호작용하는 메시징 애플리케이션 | |
CN104584563A (zh) | 在线协作套件 | |
CN101283572A (zh) | 对移动设备的应用程序更新部署 | |
CN105930467A (zh) | 一种信息处理方法及电子设备 | |
US9307010B2 (en) | Data upload method using shortcut | |
WO2013165760A1 (en) | User interface web services | |
CN103473035A (zh) | 截屏方法和装置 | |
US9165273B2 (en) | Externalizing enterprise workspaces using content plug-in | |
Liu et al. | MUIT: a domain-specific language and its middleware for adaptive mobile web-based user interfaces in WS-BPEL | |
JP2013257837A (ja) | 広告配信システム、サーバーおよび方法 | |
KR20100006497A (ko) | 웹 데스크 탑 프레임워크 구성 방법 및 그 시스템 | |
KR101553539B1 (ko) | 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
EP3251032A1 (en) | Interactive operation method, and transmitter machine, receiver machine and interactive operation system using the same | |
KR101229222B1 (ko) | 동적 바로가기를 이용한 정보제공 시스템 및 그 방법 | |
Tew et al. | Multi-touch Multi-user Interactive Control System Using Mobile Devices | |
Umriyaev et al. | A cloud based copy/paste framework for multi-device environments | |
KR20060033257A (ko) | 바탕화면을 이용한 정보 전달용 아이콘 표시방법과 그프로그램 소스를 기록한 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |