CN1208889A - 可分java小程序 - Google Patents
可分java小程序 Download PDFInfo
- Publication number
- CN1208889A CN1208889A CN98116624A CN98116624A CN1208889A CN 1208889 A CN1208889 A CN 1208889A CN 98116624 A CN98116624 A CN 98116624A CN 98116624 A CN98116624 A CN 98116624A CN 1208889 A CN1208889 A CN 1208889A
- Authority
- CN
- China
- Prior art keywords
- small routine
- window
- application program
- separated
- separates
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
- G06F9/453—Help systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于把Java小程序从提供执行这些小程序的Java核心程序的应用程序,例如一个浏览器的限制中分开的方法和***。从而被分开的小程序可以出现在一个分开的窗口中,更易于由操作环境桌面控制。Java小程序继续在应用程序的虚拟机中运行,但是不再考虑应用程序的图形接口限制。另外,如果启动小程序的应用程序转移到一个新的URL站点,则Java小程序继续运行。此外,小程序在被分开后可以重新连接在应用程序而出现在该应用程序的历史中。
Description
本发明涉及计算机软件领域,更具体地说,本发明涉及小程序(applet)以及它们与操作环境之间的关系。
像浏览器这样的应用程序的近期版本提供使用与平台无关的小程序,它们可以作为预编译Java字节码(中间级指令)下载。浏览器的例子有网景公司的Navigator 3.0TM或Hot JavaTM(SunMicrosystems的一种产品,Sun图标和Hot Java是SunMicrosystems公司在美国和其它国家的注册商标)。这些小程序通过一个“虚拟机”执行。虚拟机是一种特定平台环境,它解释或编译小程序代码,并在其中执行高级指令。一种流行的、占统治地位的小程序编程语言是由Sun Microsystems开发的“JavaTM”(SunMicrosystems的一种产品,Sun图标和Hot Java是SunMicrosystems公司在美国和其它国家的注册商标)。用Java或其少数变种编程的小程序称为Java小程序。
Java小程序的关键用处在于,它们是与平台无关的,亦即为平台A编写的一个Java小程序不需修改而能运行在B平台上,只要A和B两个平台都有能为它们各自的平台执行小程序代码的虚拟机。虽然Java小程序是与平台无关的,但是启动它们的应用程序的特征、变异和限制使这些小程序基本上成为与应用程序有关的,从而削弱了小程序的灵活性。例如,Java小程序在从网景公司的领航员(Navigator)的Sun操作***版本的HTML(超文本标识语言)代码中调用时的一个限制是,当小程序被调用时,为该调用的HTML标签必须包括高度和宽度,由此定义一个该小程序在其内运行的窗口尺寸。当在应用程序窗口内运行时,小程序受所述高度和宽度标签限制,从而任何为该小程序产生的输出、输入、对话框或弹出式窗口必须出现在该限制范围内。
在这种情况下,当小程序窗口是应用程序窗口的一个“子窗口”时,小程序窗口遭受几种障碍。首先,小程序窗口不能关闭,除非应用程序退出,或者直到应用程序转移到从一个新主机接收数据(从启动(生成)所述小程序的同一窗口)。伴随这一限制,当启动小程序的应用程序转移到一个新的URL(统一资源***一由应用程序访问的主机“地址”)时,则小程序窗口关闭,小程序停止执行。用户不能控制小程序停止执行。在一些情况下,即使应用程序已经转移到不同的URL,仍希望继续运行小程序。例如,用户可能希望一个从URL A启动的、来自一个外部或者外地源播放内容的流式音频小程序继续播放,即使应用程序已转移到不具有同一小程序的URL B。在现在的实践中,必需打开或启动该应用程序的一个新的事件(亦即打开一个新的应用程序窗口)从URL B接收内容,以便使其它应用程序事件继续执行音频小程序。但是这一方法有几个缺点。
首先,启动一个新的应用程序事件可能增加存储器和***资源的使用,它可能降低小程序和新应用程序事件的性能。另外,仍然不能从应用程序的限制或环境的外部控制小程序。事实上,随着第二应用程序窗口(事件)的启动,在小程序可以被控制之前,第一窗口必须成为活动的(在前台,在光标或鼠标的控制下)。另外,常规小程序模型不允许小程序窗口在操作环境中图标化(窗口最小化)。在现在的实践中,为使小程序最小和变为图标,应用程序窗口自身必须最小化。在这种情况下,小程序不具有自己的图标,而是继承浏览器的图标。窗口不能最小化、不能重新定义大小以及不能进行其它GUI的修改,例如改变字型、背景颜色等,将给小程序以严重的限制,很难不受应用程序的限制而独立控制。
消除应用程序对可执行代码模块依赖的一种解决方法是使用“***程序”。然而,不像在特定环境/平台下运行的“***程序”(包含数据/代码的文件,用于改变、增强或扩展父应用的操作)一样,Java小程序基本上是与平台无关的。***程序必须下载(或与应用程序打包),允许某些也许应用程序内部不支持的文件类型(例如ShockWaveTM或RealAudioTM)在本地平台上被解释和输出。然而,***程序不像应用驻留的Java虚拟机,它驻留在本地,而且必须存储在本地磁盘中以备重新使用,这是它的缺点。重要的是,***程序启动进程完全独立于浏览器,从而是依赖于平台的。于是,虽然***程序可能允许GUI独立地控制它们的窗口,但是它们不像Java小程序,完全不从浏览器继承(因为它们不需要虚拟机运行)。运行一个***程序类似于通过操作环境运行一个单独的应用程序,因此它不像Java小程序,对便于移动的可执行性不是一个可行的代用方案。
用于增强一种诸如浏览器的应用程序的能力的另一个发展是使用“帮助者”(“helper”)应用程序。帮助者应用程序存储在本地,它不具有Java小程序的便移动性和对平台的独立性,亦即在奔腾平台上的一个帮助者应用程序不能用在Sun SparcTM(Sun Microsystems的一种产品,Sun图标和Sparc是Sun Microsystems公司在美国和其它国家的注册商标)***上,反之亦然。帮助者应用程序还在操作环境内启动一个新进程/线程,并命令一个新应用程序事件的***资源,这一点不像Java小程序。帮助者应用程序与交付待处理的数据的应用程序无关,仅通过操作环境被调用。帮助者应用程序不能***,即不在应用程序的虚拟机内执行。另外,帮助者应用程序不易从主机转移到客户机,因为帮助者应用程序与小程序相比代码尺寸相当大。
另外,在诸如网络计算机(NCs)的更新的信息设备中,帮助者应用程序和***程序由于有限的操作环境特征和缺乏本地存储器甚至不能工作。NC在概念上说来是基于使用远端存储的小程序,例如在网络上分布的Java小程序来对NC提供应用程序和内容。相比起来,NC的当前工业标准保证NC通过使用虚拟机和浏览器/应用程序能够执行Java小程序。即使在NC情况下,也希望这些小程序具有它们自己与调用它们的浏览器/应用程序分开的嵌入式功能。
因此,需要有一种方法和装置把Java小程序从应用程序的限制中分开,以便它们可以通过操作环境直接由GUI控制,以及它们不由启动它们的应用程序的状态而限制。
本发明公开了一种方法和***,用于把Java小程序从提供执行这些小程序的Java虚拟机的应用程序的限制中分开。从而分开的小程序可以出现在一个分开的窗口中,更易于由操作环境桌面控制。Java小程序继续在应用程序的虚拟机之下运行,但是比所述应用程序的图形接口限制少。另外,如果启动小程序的应用程序转移到一个新的URL主机,Java小程序继续运行。此外,小程序一旦分开后,可以重新连接到应用程序而出现在该应用程序的历史中。
图1是根据本发明的一个实施例的流程图,它变换一个不可分Java小程序使其具有可分功能。
图2表示当根据本发明的一个实施例从一个应用程序中启动一个小程序时,该小程序行为的流程图。
图3是为Java小程序定义的继承层次结构例子的图。
图4表示在显示器屏幕上显示的分开的小程序。
图5表示在连接状态的一个小程序“Jukebox(自动电唱机)”。
图6表示根据本发明的一个实施例分开一个小程序的流程图。
图7表示根据本发明的一个实施例连接一个小程序的流程图。
定义
“操作环境”一词指操作***、内核、外壳等低层软件,它们安排任务日程、分配存储器、处理对外设硬件的接口和在无应用程序运行时为用户提供一个默认接口。操作环境还通过执行应用程序可能由其可执行代码要求的存储器分配、输入/输出等来允许该应用程序运行。
“桌面”一词指其中操作环境允许用户与操作环境对话的虚拟环境(通常是在显示器上的输出)。桌面包括但不限于显示器和使用作为操作环境功能的图标、光标、窗口、对话框、菜单以及其它用户接口元件。桌面是一个虚拟绘制的屏幕区域,其中应用程序窗口及其相关的输入/输出可以显示,希望的话也可与用户对话。
该详述中使用的“方法”一词指得是与一类或者多个类相关的一种功能调用、过程或者子例程,类在面向对象的编程技术中众所周知。
“可分”一词指得是小程序脱离由启动它的应用程序加在其上的GUI限制的能力。“可分性”一词指得是小程序在图形用户接口意义下能与启动它的应用程序分开而操作,并代之以在桌面上***作而与操作环境直接对话。
“虚拟机”一词指得是一种解释程序、编译程序、链接程序等,它包含在一个应用程序或者操作环境中以使一个特定的编程语言例如Java的指令、伪代码等的执行变得方便。
图1是根据本发明的一个实施例的流程图,它变换一个不可分Java小程序使其具有可分功能。
任何预先存在的Java小程序都可以修改为一个可分的Java小程序,这里可分是相对本发明的各种实施例而言的。当定义/创建一个小程序时,可以修改其源代码以包括用于分开该小程序的方法。第一步是在该小程序的类定义上加一个“实现可分”的语句(步骤110)。它实现一个称作“可分”的接口。附录A,为流式音频小程序Jukebox的Java源代码,在第二列显示类定义“public class Jukeboxextends Applet implements Detachable.(公用类Jukebox扩展小程序实现可分)”。短语“public class<Applet Name>extendsApplet(公用类<小程序名>扩展小程序)”为在主类定义中的所有小程序共用。然后短语“implements Detachable(实现可分)”可附加在任何这样的定义后面开始修改<小程序名>的小程序以变为可分。还需要几个步骤来完成小程序可分性的建立。通过类定义激发的可分接口通过在该小程序的源代码上增加几个一般“方法”(见上面的定义)实现(步骤120)。这些方法虽然相对于可分接口是一般的,但是对本发明来说是特定的和唯一的,因为这些方法在Java开发的技术中先前未被定义。
一般方法(generic method)允许Java小程序从启动它的应用程序中分出来,并允许该小程序具有任何运行在操作环境(例如SolarisTM,Sun Microsystems的一种产品,Solaris是SunMicrosystems公司在美国和其它国家的注册商标)桌面上的普通应用程序窗口的功能。如果一般方法对特定小程序的“视像感觉”不适合(在步骤130检验),则可以修改这些方法。一般方法可以修改以包括适合于该小程序的视像感觉或者特色的接口能力(步骤140)。例如,可能希望在一个可分的“对话”(以文字为基础的用户之间的交谈)小程序中在该对话窗口重定义自身大小时显示未重定义大小时不可见的长字符串。本领域的普通技术人员可以修改下面定义的方法以适合变换为一个可分小程序的小程序。下面叙述的一种这样的修改是“控制器”方法的附加。如参照步骤120所述,这些一般方法加在在附录A中公开的Jukebox小程序的例子的代码上。
一般可分接口方法及其修改
1.“Detach”(分开)(在附录A中表示为“public void detach(){”)
分开方法是允许小程序从应用程序分开的基本功能调用。状态变量“被分开”(“isDetached”)设为真,指示小程序现在处于与连接状态相对的分开状态。语句“remove(UIpanel)”负责清除包括诸如用户接口元件(亦即按钮、文字框、菜单,图标等)的部件的用户接口“面板”。面板UIpanel被清除并交给作为例示的“被分开框”类。“被分开框”(“Detached Frame”)类是一个基于标准Java虚拟机的与平台无关的示例,因此可用于所有Java平台。附录B中表示了为被分开框类的代码。被分开框被作为示例说明产生一个分开的窗口(与应用程序独立的小程序窗口),可以在其中显示UIpanel部件(用户接口元件)。语句“controller.makeAttachable(),”是修改一般分开方法的一个例子,它是Jukebox小程序的一个特定方法,用于创建一个用户接口元件把小程序连回到应用程序上。
2.“Attach”(连接)(在附录A中表示为“public void attach(){”
连接方法用于把小程序重新连回应用程序和关闭驻留在应用程序窗口外面的分开的窗口。通过将isDetached设定为假,使小程序的状态返回到连接状态。接着,清除被分开框对象。然后把UIpanel部件加回到应用程序中(add(UIpanel)语句)。作为对一般方法Attach的小程序特定(在此例中为Jukebox小程序)的修改的例子是controller.makeDetachable语句,它在被包含时为将小程序分开而提供用户接口元件。
3.close(关闭)(在附录A中表示为“public void close()”)
关闭方法清除被分开框窗口,通常是小程序其后不再重新连回应用程序的被分开框窗口。这一方法在希望完全清除小程序时很有用。
这些一般方法在加在小程序上实现可分接口时,将使一个不可分小程序变得可分(具有从应用程序窗口分开的功能)。
图2表示根据本发明的一个实施例,从一个应用程序中启动一个小程序时,该小程序行为的流程图。
虽然图2是针对从一个应用程序的分开,但其思想方法同样可应用于从任何通过虚拟机执行小程序代码的环境分开小程序。
首先,根据步骤210,小程序必须在应用程序的虚拟机中启动。当用户访问包含启动该小程序的语句的Web(万维网)站点(HTML页面)时,这通常是自动实现的。假定该小程序已经按照图1的方法经过变换,或者如果该小程序已经能分开,则虚拟机检验(等待)用户激活一个诸如按钮的用户元件来把该小程序从应用程序中分开(在步骤220检验)。如果用户激活“detach”用户接口元件,那么该环境调用“Detach”方法(步骤230)。
例如,如上所述,“Detach”方法的调用将导致其它指令的执行。这些指令的一个关键结果是显示一个分开的窗口,在其中可以显示该小程序的控制或数据(步骤240)。一旦显示器已显示分开的窗口,则连续进行两种检验。第一种是检验用户是否改变分开的窗口的属性(诸如大小、背景等)(步骤255)。该步骤不是从应用程序中执行的检验,而是由操作环境自身执行的检验。如果要求改变被分开的窗口的某一属性,则操作环境初始化并实现这些改变的属性(步骤250)。这些改变包括重新定义分开的窗口大小、改变窗口的字体以及因为被分开的窗口既然是操作环境的一个窗口,因而可以不用参考和改变应用程序窗口而执行最小化和图标化。另外,在分开的窗口中的小程序不再受应用程序限制,而具有它自己的一组与应用程序分开的图形属性--颜色、背景、字体、大小等。桌面可以控制分开的窗口的视像感觉,从而在一定程度上也可控制小程序的视像感觉。
所做的第二种检验是询问用户是否激活用户接口元件把该小程序连回到应用程序(步骤260)。一旦小程序处于被分开框,则用于分开的用户接口元件(按钮等)将由用于将该小程序连回到应用程序的一个用户接口元件取代。用户对将该小程序连接到应用程序的请求首先引起“Attach”方法被调用(步骤270)。Attach方法包括如上所述的几条指令,但具有关闭分开的窗口(步骤280)并将其从操作环境清除的基本功能。然后将小程序重新绘制在应用程序窗口,就像在启动时一样,保持不是被分开的视像感觉,而回到启动小程序时的应用程序的视像感觉。小程序在被重新绘制在应用程序中时,将以用于分开的用户接口元件替换用于连接的用户接口元件。从而,小程序可以在用户希望时从连接状态切换到分开状态。图2中未示出的是这种情况,即应用程序在小程序被连接之前转移到一个新的主机。在这种情况下,小程序不是被重新绘制在应用程序窗口,而是成为该应用程序的“历史”的一部分。历史是先前访问的URL的一个纪录,以便该应用程序的用户可以再次返回到那些URL站点。
图3表示为Java小程序定义的继承层次结构例子的图。
从对象或类继承观点来看为本发明的各种实施例有两组继承树。第一组在图3右侧示出,为一般Java小程序继承层次结构。对象310被继承到部件320中。部件320(因此包括对象310)被继承到容器330中。容器330被继承到面板340中。最后,面板340被继承到小程序350中。
图3所示的第二组继承是由被分开框的继承产生的层次结构。这一层次结构是相对于本发明的各种实施例叙述的分开一个小程序的方法的表示。
类似一般小程序继承层次结构,图3左侧的被分开框继承层次结构示出对象315被继承到部件325。类似地,部件325被继承到容器335。图3表示这两种继承在直到和包含容器这一级是相同的。因此,这些层次结构在容器335和330处可以连接。继承层次结构的连接在概念上是面向对象的一种机制,它允许小程序350从应用程序窗口转移到被分开框,因为两者都是容器类的事件。熟悉对象编程技术的技术人员能容易地使用上述被连接的对象层次结构的属性实现本发明的各种实施例。
图4表示在显示器的屏幕上显示的最终分开的小程序。
图4表示一个显示器400,它可以是通过操作环境显示一个应用程序窗口410的任何监视器、显示器或其它视像设备。应用程序窗口410表示为一个包括几种元件例如图片和URL(统一资源定位)(标以“location”)的应用程序窗口,但也可以是运行在操作环境下的任何窗口或显示环境。显示400表示运行在操作环境桌面430(见上面“桌面”的定义)上面的应用程序窗口410。操作环境桌面430和应用程序窗口410可以更接近或紧密结合,就像在Hot JavaviewsTM中那样(Sun Microsystems公司的一种产品,Sun图标和HotJava Views是Sun Microsystems公司在美国和其它国家的注册商标)。可以修改本发明为去除应用程序窗口任何遗留的视像和用户接口限制,它们可能限制一个小程序,尽管可能似乎紧密地把应用程序和环境结合在一起。在这个意义上,图4在分开的窗口420上表示了一个叫作“Jukebox”的小程序,该小程序在某个URL站点启动,最初包含在应用程序窗口410中(见图5)。图4表示Jukebox小程序分开的状态。
在这一分开的状态下,小程序控制功能“About”、“Stop”和“Play”显示在分开的窗口中。本发明的一个重要方面是小程序在窗口显示在410中的应用程序的虚拟机(解释程序)中连续运行或执行其指令的能力。操作环境及其桌面430现在控制Jukebox小程序的窗口的总视像感觉。然后分开的窗口可以像桌面上的任何窗口一样操作。应用程序窗口410和该应用程序的接口属性不再控制、制约和限制小程序的GUI特性。另外,当应用程序窗口410转移到一个新主机的URL时,该小程序继续在被分开框内运行。虽然虚拟机是依赖于平台的,亦即必须分解Java代码为处理器/平台的本地代码,但是Java小程序及其代码是与平台无关的。当应用程序完全关闭它所有的窗口时,分开的小程序也即关闭,因其应该关闭。另外,尽管小程序被分开,它也必须停止执行,因为它不再从应用程序曾接触的主机获取数据。于是应用程序保持在结束自己时同时结束小程序的控制,即使该小程序从应用程序窗口的窗口和接口限制中分开。
在被分开状态,还有其他几种适用于被分开窗口的GUI修改未明确叙述。首先,不像常规的小程序,被分开的窗口420可以在桌面430上的一个区域缩为图标,或最小化为一个工具条或其它GUI元件而不必将应用程序窗口缩为图标。从而最小化的小程序可以具有它自己的图标。另外,被分开的窗口420可以在桌面上重新定义大小,在分开的状态下不必参考在HTML(超文本标记语言)或其它指定从应用程序窗口410之内对该小程序调用的文件中的高度-宽度标签。这允许被分开的小程序的外表比不可分的小程序具有更大的灵活性。其它对运行在桌面430上其它窗口适用的修改,诸如字体、字符大小、颜色、背景等的改变也适用于被分开的窗口420及其显示的小程序。
除对Jukebox小程序的控制之外,被分开的窗口420还包括显示称为“Attach”的“控制”(一个用户接口元件),它在被激活时关闭被分开的窗口420并将该小程序回收到应用程序窗口410中。这种“连接的”状态表示在图5。如果应用程序窗口转移到一个新主机的URL,那么该小程序被包括在该应用程序的历史中而不是在应用程序窗口中立即执行
图5表示处于连接状态下的“Jukebox”小程序。
图5也有一个显示设备500、一个操作环境桌面530和一个应用程序窗口510。当一个小程序处在连接状态时,应用程序窗口510限制它。然而,如果该小程序成为可分的,则在应用程序窗口的小程序的面板中显示一个“分开”(“detach”)控制(按钮),以便将该连接状态修改为被分开的状态,产生如图4所示的一个分开的窗口。另外的方案为,小程序可以自动启动为如图4所示的具有连接控制的被分开的状态。也可以提供一种“触发”方法来触发小程序的状态,不管当前状态是什么。这一触发可以由一用户接口元件在该小程序处于分开状态时在分开窗口中启动,也可以在该小程序处于连接状态时在小程序面板(在应用程序窗口中)启动。在连接和分开两种状态下都希望一个统一的控制时也许希望这种反转方法。图5所示的连接状态不像现有技术,因为所示小程序通过“分开控制”是“可分的”。无可分性的小程序将局限于应用程序自身,用户便于在应用程序窗口510中改变小程序面板550的显示属性。处于连接状态下的一个可分小程序遭受同样的限制,但可以通过激活“Detach”释放出来。图5的小程序的连接状态保证在从一个“被分开的”状态(图4中所示)重新连接之前应用程序窗口510的主机URL不改变。
图6表示根据本发明的一个实施例分开一个小程序的流程图。
上面相对于代码附录A叙述的“Detach”的方法定义并未全部在图6中表示,但是本技术领域的技术人员将能理解,从本方法定义显示的另外的或省略的步骤很容易实现。
分开的第一步是例示一个称为被分开框(Detached Frame)的新框(见图1分开方法的说明)(步骤610)。然后使用该新框作为小程序的数据、内容和用户接口元件/控制的落点(drop-offpoint)。接着,把小程序部件从应用程序的小程序面板清除(步骤620)。这些部件是一些对象,包括但不限于按钮、控制、用户接口元件、动作消息、对话框、数据等,它们可能由显示设备显示。然后把这些小程序部件加在所述新框的用户接口上(步骤630)。另外,除其它部件外,把一个“Attach”用户接口元件加在新框上,以便小程序可以重新连接到应用程序(步骤640)。接着,通过将该新框映射或显示在显示设备上来生成分开的窗口(步骤645)。在处理过程的这一步,分开的窗口是一个能在操作环境的桌面环境之内接合的空白窗口。如在本发明的各种实施例中实现的那样,被分开的窗口将继承连接在应用程序窗口中的小程序面板的大小、字形、颜色特征(步骤655)。最后,包括连接控制的部件使用“Paint All”Java方法绘制在屏幕上(步骤660)。“Paint All”在Java编程中熟知,用于在显示器或操作环境中显示对象,而不是在应用程序窗口的一部分显示。这保证为被分开的小程序的部件被适当显示,亦即不会与其它屏幕图形交织在一起显示,或从视图中隐藏。
图7表示根据本发明的一个实施例,连接一个小程序的流程图。
再次说明,虽然图7的流程图可能由前面叙述的“Attach”方法改变,但是熟悉本技术领域的人员能够很容易将上述方法的特征交换/增加到图7的流程图中,反之亦然。
当连接控制被激活时,首先从虚拟机环境中清除通过调用分开方法例示的新框(步骤710)。从应用程序环境清除的部件加回到应用程序,并自动显示在其中的面板中,如同一个典型的Java小程序一样(步骤720)。接着,被分开的窗口被关闭(步骤730)或从操作环境中清除。最后,可以允许收集存储器垃圾和存储器的重分配(步骤740)以便使由分开方法例示的被分开框使用的资源重新返回到操作环境。
Claims (20)
1.一种处理方法,包括步骤有:
实现一个可分接口;以及
修改一个不可分小程序使其成为一个可分的小程序。
2.根据权利要求1的处理方法,其特征在于,实现步骤包括步骤:
修改所述不可分小程序的类定义为包括一个可分接口。
3.根据权利要求2的处理方法,其特征在于,修改步骤包括步骤:
为实现所述可分接口增加一组一般方法。
4.根据权利要求3的处理方法,其特征在于,进一步包括步骤:
修改所述一般方法的任何一个以适合所希望的所述可分小程序的视像感觉。
5.根据权利要求3的处理方法,其特征在于,所述增加的步骤包括步骤:
增加用于将所述可分小程序置于一个可分状态的第一方法;
增加用于将处于被分开状态的所述可分小程序置回到连接状态的第二方法。
6.根据权利要求5的处理方法,其特征在于,进一步包括步骤:
增加用于在所述状态之间进行触发的第三方法。
7.根据权利要求5的处理方法,其特征在于,进一步包括步骤:
增加完全清除处于分开状态的所述可分小程序的第四方法。
8.控制排除应用程序限制的小程序行为的处理方法,包括的步骤有:
从所述应用程序分开所述小程序,所述小程序继续使用所述应用程序的虚拟机以执行小程序指令;
显示一个分开的窗口以可视地显示所述小程序;
使得能修改所述被分开的窗口的视觉特性。
9.根据权利要求8的处理方法,其特征在于,分开步骤包括步骤:
当所述应用程序在图形上限制小程序时,激活一个用户接口元件以将小程序分开;
调用分开方法以执行一组与实现所述分开、显示和使能步骤相一致的指令。
10.根据权利要求8的处理方法,其特征在于,进一步包括将所述小程序连接到所述应用程序的步骤。
11.根据权利要求10的处理方法,其特征在于,连接步骤包括步骤:
调用一个连接方法;
关闭所述被分开的窗口;
在所述应用程序中重新绘制所述小程序。
12.根据权利要求9的处理方法,其特征在于,调用分开方法的步骤启动步骤:
例示一个新框;
从所述应用程序中清除小程序的部件;
将所述清除的部件加到所述新框中;
将所述被分开的窗口映射到一个显示设备上;
把所述增加的部件绘制到所述显示设备上,所述绘制发生在所映射的分开的窗口内。
13.用于控制一个小程序的图形用户接口***,包括:
一个由操作环境定义的桌面;
一个作为所述桌面上的覆盖而可视地显示的应用程序窗口,所述应用程序窗口在所述小程序处于连接状态时显示和在视像上限制所述小程序;
一个在所述桌面上直接运行的分开的窗口,所述分开的窗口只在所述小程序处于被分开的状态时被显示在所述桌面上,所述分开状态清除所述小程序在所述应用程序窗口中的视像限制和显示。
14.根据权利要求13的图形用户接口***,其特征在于,所述分开的窗口包括一个用户接口元件,用于能够使所述小程序置于连接状态。
15.根据权利要求14的图形用户接口***,其特征在于,所述应用程序窗口包括一个用户接口元件,用于能够使所述小程序置于分开状态。
16.根据权利要求14的图形用户接口***,其特征在于,当所述小程序被置于连接状态时,所述分开的窗口关闭。
17.根据权利要求13的图形用户接口***,其特征在于,所述小程序在连接状态下被初始启动。
18.根据权利要求13的图形用户接口***,其特征在于,所述小程序在被分开的状态下被初始启动。
19.一种计算机可读介质,其上存储有可由一个可由应用程序解释的小程序代码,所述小程序包括指令序列,当这些指令序列在被一个处理器执行时引起所述处理器执行下述步骤:
从所述应用程序分开所述小程序,所述小程序继续使用所述应用程序的一个虚拟机以便利于所述处理器执行所述指令序列;
显示一个分开的窗口以可视地显示所述分开的小程序;
使能修改所述被分开的窗口的视觉特性。
20.一种计算机软件产品,具有可由一个应用程序解释的小程序代码,所述计算机软件产品分配给一个处理器,所述小程序代码包括指令序列,这些指令序列在被所述处理器执行时引起所述处理器执行下述步骤:
从所述应用程序分开所述小程序,所述小程序继续使用所述应用程序的一个虚拟机以便利于所述处理器执行所述指令序列;
显示一个分开的窗口以可视地显示所述分开的小程序;
使能修改所述被分开的窗口的视觉特性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US910,481 | 1997-07-25 | ||
US08/910,481 US6401134B1 (en) | 1997-07-25 | 1997-07-25 | Detachable java applets |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1208889A true CN1208889A (zh) | 1999-02-24 |
Family
ID=25428846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98116624A Pending CN1208889A (zh) | 1997-07-25 | 1998-07-27 | 可分java小程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6401134B1 (zh) |
EP (1) | EP0893758A3 (zh) |
JP (1) | JPH11167489A (zh) |
KR (1) | KR19990014179A (zh) |
CN (1) | CN1208889A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843394A (zh) * | 2011-06-22 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 网络应用的框架装置及运行方法 |
CN103324476A (zh) * | 2013-06-04 | 2013-09-25 | 白连宇 | 页面动态参照布局及展现方法 |
CN110321205A (zh) * | 2019-04-03 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种在宿主程序中管理寄宿程序的方法与设备 |
CN111524210A (zh) * | 2020-04-10 | 2020-08-11 | 北京百度网讯科技有限公司 | 用于生成绘图的方法和装置 |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6584498B2 (en) | 1996-09-13 | 2003-06-24 | Planet Web, Inc. | Dynamic preloading of web pages |
US6542923B2 (en) * | 1997-08-21 | 2003-04-01 | Planet Web, Inc. | Active electronic mail |
US7325077B1 (en) | 1997-08-21 | 2008-01-29 | Beryl Technical Assays Llc | Miniclient for internet appliance |
US7257604B1 (en) * | 1997-11-17 | 2007-08-14 | Wolfe Mark A | System and method for communicating information relating to a network resource |
US7216300B2 (en) * | 1998-12-30 | 2007-05-08 | Ncr Corp. | Method and apparatus for an applet to display multiple windows |
US7660868B1 (en) * | 1999-04-26 | 2010-02-09 | John Albert Kembel | Apparatus and method for interacting with internet content via one or more applications that do not include native web browsing navigation control features |
US6765592B1 (en) * | 1999-04-30 | 2004-07-20 | Microsoft Corporation | Undockable sub-windows |
US6594691B1 (en) * | 1999-10-28 | 2003-07-15 | Surfnet Media Group, Inc. | Method and system for adding function to a web page |
US8255809B2 (en) * | 1999-12-23 | 2012-08-28 | International Business Machines Corporation | Webtop: multiple applet delivery within a fixed-sized viewing space |
US6725238B1 (en) * | 2000-01-06 | 2004-04-20 | International Business Machines Corporation | Method, system, and program for using a remotely accessed desktop interface and network drive to access a shared file system |
JP4005293B2 (ja) * | 2000-02-29 | 2007-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ、その制御方法、記録媒体及び伝送媒体 |
EP1293907A4 (en) * | 2000-04-17 | 2006-08-30 | Hotto Link Inc | NAVIGATION CRAN DISPLAY PROC D, DISPLAY SYSTEM AND RECORDING MEDIUM |
WO2001086384A2 (en) * | 2000-05-08 | 2001-11-15 | Envoii | Method and apparatus for a portable information agent |
US7366690B1 (en) | 2000-06-23 | 2008-04-29 | Ebs Group Limited | Architecture for anonymous trading system |
US6983259B1 (en) | 2000-06-23 | 2006-01-03 | Ebs Group Limited | Anonymous trading system |
US7333952B1 (en) | 2000-06-23 | 2008-02-19 | Ebs Group Limited | Compound order handling in an anonymous trading system |
US7184982B1 (en) | 2000-06-23 | 2007-02-27 | Ebs Group Limited | Architecture for anonymous trading system |
US7024386B1 (en) | 2000-06-23 | 2006-04-04 | Ebs Group Limited | Credit handling in an anonymous trading system |
US7827085B1 (en) | 2000-06-23 | 2010-11-02 | Ebs Group Limited | Conversational dealing in an anonymous trading system |
GB2364586B (en) | 2000-06-23 | 2004-06-16 | Ebs Nominees Ltd | Deal matching in an anonymous trading system |
FR2814257B1 (fr) * | 2000-09-20 | 2002-12-06 | Palmware | Architecture de microprocesseur virtuel multiplate-forme et son systeme d'exploitation complementaire, notamment pour le domaine de l'informatique embarquee et mobile |
US20020113819A1 (en) * | 2000-11-17 | 2002-08-22 | Dan Baer | Method for controlling a screen display |
US20030033443A1 (en) * | 2001-03-01 | 2003-02-13 | Nikolay Igotti | Virtual machine integration application program interface |
US20020165720A1 (en) * | 2001-03-02 | 2002-11-07 | Johnson Timothy M. | Methods and system for encoding and decoding a media sequence |
US6957391B2 (en) * | 2001-05-31 | 2005-10-18 | International Business Machines Corporation | Application program interface that can maintain similar look and feel of a displayed image regardless of whether the interface is platform dependent or platform independent |
US8359335B2 (en) | 2001-09-29 | 2013-01-22 | Siebel Systems, Inc. | Computing system and method to implicitly commit unsaved data for a world wide web application |
US7885996B2 (en) * | 2001-09-29 | 2011-02-08 | Siebel Systems, Inc. | Method, apparatus, and system for implementing notifications in a framework to support web-based applications |
US7203948B2 (en) * | 2001-09-29 | 2007-04-10 | Siebel Systems, Inc. | Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications |
US7461119B2 (en) * | 2001-09-29 | 2008-12-02 | Siebel Systems, Inc. | Method, apparatus, and system for managing status of requests in a client server environment |
US6907451B1 (en) * | 2001-09-29 | 2005-06-14 | Siebel Systems, Inc. | Method, apparatus, and system for immediate posting of changes in a client server environment |
US7146617B2 (en) * | 2001-09-29 | 2006-12-05 | Siebel Systems, Inc. | Method, apparatus, and system for implementing view caching in a framework to support web-based applications |
US7870492B2 (en) | 2001-10-02 | 2011-01-11 | Siebel Systems, Inc. | Method, apparatus, and system for managing commands in a client server environment |
US20080040675A1 (en) * | 2002-04-30 | 2008-02-14 | Aol Llc | Instant messaging interface having a tear-off element |
US7421661B1 (en) | 2002-04-30 | 2008-09-02 | Aol Llc | Instant messaging interface having an informational tool tip |
US20040003018A1 (en) * | 2002-06-26 | 2004-01-01 | Pentkovski Vladimir M. | Method and system for efficient handlings of serial and parallel java operations |
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 |
KR20040049488A (ko) * | 2002-12-06 | 2004-06-12 | 삼성전자주식회사 | 애플릿 실행 장치 및 방법 |
US7089340B2 (en) * | 2002-12-31 | 2006-08-08 | Intel Corporation | Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives |
US7475408B2 (en) * | 2003-02-27 | 2009-01-06 | Microsoft Corporation | Hosting an application in one of a plurality of execution environments |
US7430743B2 (en) | 2003-02-27 | 2008-09-30 | Microsoft Corporation | System and method for hosting an application in one of a plurality of execution environments |
GB0310144D0 (en) * | 2003-05-02 | 2003-06-04 | Bitarts Ltd | Protecting a java application |
US20040255240A1 (en) * | 2003-06-10 | 2004-12-16 | Charlie Udom | Image selection for variable documents |
US8930944B2 (en) * | 2003-11-18 | 2015-01-06 | Microsoft Corporation | Application model that integrates the web experience with the traditional client application experience |
US20050223081A1 (en) * | 2004-04-05 | 2005-10-06 | Mcmahan Paul F | Portal including detachable and reattachable portlets |
US7751535B2 (en) * | 2004-04-28 | 2010-07-06 | Nuance Communications, Inc. | Voice browser implemented as a distributable component |
US7484247B2 (en) | 2004-08-07 | 2009-01-27 | Allen F Rozman | System and method for protecting a computer system from malicious software |
US7552401B2 (en) * | 2004-08-13 | 2009-06-23 | International Business Machines Corporation | Detachable and reattachable portal pages |
US20060041848A1 (en) * | 2004-08-23 | 2006-02-23 | Luigi Lira | Overlaid display of messages in the user interface of instant messaging and other digital communication services |
US7546336B2 (en) * | 2005-02-10 | 2009-06-09 | International Business Machines Corporation | Method and system for increasing server capacity |
US20060225037A1 (en) * | 2005-03-30 | 2006-10-05 | Microsoft Corporation | Enabling UI template customization and reuse through parameterization |
US8214754B2 (en) | 2005-04-15 | 2012-07-03 | Microsoft Corporation | Registration of applications and complimentary features for interactive user interfaces |
US7487465B2 (en) * | 2006-01-06 | 2009-02-03 | International Business Machines Corporation | Application clippings |
US20080077936A1 (en) * | 2006-09-22 | 2008-03-27 | Amit Goel | Method and apparatus for automatically launching an application from a browser |
FR2913276A1 (fr) * | 2007-03-02 | 2008-09-05 | Nosibay Soc Par Actions Simpli | Procede et dispositif de communication. |
WO2008056039A2 (fr) * | 2006-10-04 | 2008-05-15 | Nosibay Sas | Procede et dispositif de communication |
US8024790B2 (en) * | 2007-04-11 | 2011-09-20 | Trend Micro Incorporated | Portable secured computing environment for performing online confidential transactions in untrusted computers |
CN101855618B (zh) * | 2007-10-10 | 2015-11-25 | 甲骨文美国公司 | 用于在应用执行期间改变执行环境的方法和*** |
US8788542B2 (en) * | 2008-02-12 | 2014-07-22 | Oracle International Corporation | Customization syntax for multi-layer XML customization |
US8966465B2 (en) | 2008-02-12 | 2015-02-24 | Oracle International Corporation | Customization creation and update for multi-layer XML customization |
US8875306B2 (en) * | 2008-02-12 | 2014-10-28 | Oracle International Corporation | Customization restrictions for multi-layer XML customization |
US8201246B1 (en) | 2008-02-25 | 2012-06-12 | Trend Micro Incorporated | Preventing malicious codes from performing malicious actions in a computer system |
US8782604B2 (en) * | 2008-04-11 | 2014-07-15 | Oracle International Corporation | Sandbox support for metadata in running applications |
US8667031B2 (en) * | 2008-06-13 | 2014-03-04 | Oracle International Corporation | Reuse of shared metadata across applications via URL protocol |
US8996658B2 (en) * | 2008-09-03 | 2015-03-31 | Oracle International Corporation | System and method for integration of browser-based thin client applications within desktop rich client architecture |
US8799319B2 (en) | 2008-09-19 | 2014-08-05 | Oracle International Corporation | System and method for meta-data driven, semi-automated generation of web services based on existing applications |
US9122520B2 (en) | 2008-09-17 | 2015-09-01 | Oracle International Corporation | Generic wait service: pausing a BPEL process |
JP2010097543A (ja) * | 2008-10-20 | 2010-04-30 | Fujitsu Frontech Ltd | サービス支援プログラムおよびサービス支援方法 |
US8869108B2 (en) * | 2009-11-18 | 2014-10-21 | Oracle International Corporation | Techniques related to customizations for composite applications |
CN102117290B (zh) * | 2009-12-30 | 2015-03-18 | 北京搜狗科技发展有限公司 | 一种展现网页中页面元素的方法及*** |
US8479294B1 (en) | 2011-02-15 | 2013-07-02 | Trend Micro Incorporated | Anti-malware scan management in high-availability virtualization environments |
JP5678778B2 (ja) | 2011-03-31 | 2015-03-04 | 富士通株式会社 | システムおよびマイグレーション方法 |
US8954942B2 (en) | 2011-09-30 | 2015-02-10 | Oracle International Corporation | Optimizations using a BPEL compiler |
US8484732B1 (en) | 2012-02-01 | 2013-07-09 | Trend Micro Incorporated | Protecting computers against virtual machine exploits |
US8966632B1 (en) | 2012-02-17 | 2015-02-24 | Trend Micro Incorporated | In-the-cloud sandbox for inspecting mobile applications for malicious content |
US10761673B2 (en) * | 2013-03-12 | 2020-09-01 | Oracle International Corporation | Managing display of detachable windows in a GUI computing environment |
US9225799B1 (en) | 2013-05-21 | 2015-12-29 | Trend Micro Incorporated | Client-side rendering for virtual mobile infrastructure |
US9444912B1 (en) | 2013-05-21 | 2016-09-13 | Trend Micro Incorporated | Virtual mobile infrastructure for mobile devices |
US9300720B1 (en) | 2013-05-21 | 2016-03-29 | Trend Micro Incorporated | Systems and methods for providing user inputs to remote mobile operating systems |
US9049169B1 (en) | 2013-05-30 | 2015-06-02 | Trend Micro Incorporated | Mobile email protection for private computer networks |
US9507617B1 (en) | 2013-12-02 | 2016-11-29 | Trend Micro Incorporated | Inter-virtual machine communication using pseudo devices |
SG10201708937QA (en) * | 2017-10-31 | 2019-05-30 | Mastercard International Inc | Validation devices, servers, validation methods, and file modification methods |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4931783A (en) * | 1988-07-26 | 1990-06-05 | Apple Computer, Inc. | Method and apparatus for removable menu window |
US5818445A (en) * | 1992-09-09 | 1998-10-06 | Tandem Computers Incorporated | Method and system for creating computer-program-based applications with developer specified look and feel |
US5802530A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Web document based graphical user interface |
US5742768A (en) * | 1996-07-16 | 1998-04-21 | Silicon Graphics, Inc. | System and method for providing and displaying a web page having an embedded menu |
US5870091A (en) * | 1996-11-07 | 1999-02-09 | Adobe Systems Incorporated | Combining palettes on a computer display |
US5923326A (en) * | 1997-06-13 | 1999-07-13 | International Business Machines Corporation | Edge docking foster window |
-
1997
- 1997-07-25 US US08/910,481 patent/US6401134B1/en not_active Expired - Lifetime
-
1998
- 1998-07-24 KR KR1019980029983A patent/KR19990014179A/ko not_active Application Discontinuation
- 1998-07-24 EP EP98305935A patent/EP0893758A3/en not_active Withdrawn
- 1998-07-27 JP JP10211010A patent/JPH11167489A/ja not_active Withdrawn
- 1998-07-27 CN CN98116624A patent/CN1208889A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843394A (zh) * | 2011-06-22 | 2012-12-26 | 腾讯科技(深圳)有限公司 | 网络应用的框架装置及运行方法 |
CN103324476A (zh) * | 2013-06-04 | 2013-09-25 | 白连宇 | 页面动态参照布局及展现方法 |
CN103324476B (zh) * | 2013-06-04 | 2016-09-07 | 白连宇 | 页面动态参照布局及展现方法 |
CN110321205A (zh) * | 2019-04-03 | 2019-10-11 | 上海连尚网络科技有限公司 | 一种在宿主程序中管理寄宿程序的方法与设备 |
CN110321205B (zh) * | 2019-04-03 | 2021-07-30 | 上海连尚网络科技有限公司 | 一种在宿主程序中管理寄宿程序的方法与设备 |
CN111524210A (zh) * | 2020-04-10 | 2020-08-11 | 北京百度网讯科技有限公司 | 用于生成绘图的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0893758A3 (en) | 2004-02-25 |
KR19990014179A (ko) | 1999-02-25 |
US6401134B1 (en) | 2002-06-04 |
JPH11167489A (ja) | 1999-06-22 |
EP0893758A2 (en) | 1999-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1208889A (zh) | 可分java小程序 | |
CA2280588C (en) | Code wrapping to simplify access to and use of enterprise java beans | |
Stephanidis | User interfaces for all: New perspectives into human-computer interaction | |
Savidis et al. | Developing dual user interfaces for integrating blind and sighted users: the HOMER UIMS | |
Limbourg et al. | USIXML: A language supporting multi-path development of user interfaces | |
Stephanidis | Towards user interfaces for all: some critical issues | |
CN1101029C (zh) | 为***对象模型建立动态角色的方法和装置 | |
US7269792B2 (en) | System and method for generating high-function browser widgets with full addressability | |
US6473768B1 (en) | System and method for modifying an executing application | |
JPH10240509A (ja) | ソフトウェアアプリケーションを生成する方法、生成装置、プログラムモジュールおよびデータ処理装置 | |
EP0784264B1 (en) | A computer-implemented process for determining a minimum code set for an executable application in a data processing system | |
US7669178B2 (en) | System and method for interacting with computer programming languages at semantic level | |
Savidis et al. | Unifying toolkit programming layers: a multi-purpose toolkit integration module | |
Coutaz et al. | Agent-based architecture modelling for interactive systems | |
US6581203B1 (en) | Technique for visually creating and adding members to a class | |
Baentsch et al. | WebMake: Integrating distributed software development in a structure-enhanced Web | |
Muñoz et al. | Applying software factories to pervasive systems: A platform specific framework | |
MacDonald | Pro. NET 2.0 Windows Forms and Custom Controls in VB 2005 | |
CN1648860A (zh) | 用户接口在各种整合开发环境共用及转换的开发方法 | |
Palanque et al. | Interactive cooperative objects: an object-oriented formalism based on petri nets for user interface design | |
JPH08512153A (ja) | ダイナミック・ブラウザ・システム | |
Foley | User Interface Software Tools | |
Bourdeau et al. | An object-oriented toolkit for constructing specification editors | |
Hoffner et al. | A new user interface architecture | |
Prokhorov | PYTHAGORAS: Multienvironment software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |