CN1153138C - 提高Java环境的可管理性和可用性的系统和方法 - Google Patents
提高Java环境的可管理性和可用性的系统和方法 Download PDFInfo
- Publication number
- CN1153138C CN1153138C CNB001068032A CN00106803A CN1153138C CN 1153138 C CN1153138 C CN 1153138C CN B001068032 A CNB001068032 A CN B001068032A CN 00106803 A CN00106803 A CN 00106803A CN 1153138 C CN1153138 C CN 1153138C
- Authority
- CN
- China
- Prior art keywords
- application program
- environment
- java
- relevant information
- manageability
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
-
- 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/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
一种方法、系统和计算机可读的代码,用于提高Java环境中的可管理性和可用性。以此技术使所有的Java程序不需要浏览器提供运行环境便可被执行。定义提高Java组件的包装性的技术,包装包括运行环境、扩展以及应用程序。相关信息被指定,指定的方法使它们可被动态的定位和安装,且可在应用程序之间共享相关模块(包括运行环境)。这种相关信息指定技术使所有的相关代码将在运行时被取得,不需要用户去进行手动安装。
Description
发明领域
本发明涉及一种计算机系统,更具体地涉及提高Java环境中的可管理性和可用性的方法、系统和计算机可读的代码。
发明背景
Java是一种健壮、可移植、面向对象的编程语言,由太阳微系统公司开发,作为因特网和万维网上编写代码的工具,它正在得到广泛的接受。尽管大多数编程语言的编译器仅为特定的操作环境生成代码,Java成为写程序使用″编写一次,在任何环境运行″的范例。(″Java″和″Write Once,Run Anywhere″是太阳微系统公司的注册商标)
Java获得它的可移植性通过使用特殊设计的虚拟机(″VM″)实现的。此中虚拟机也被称为″Java虚拟机″或″JVM″。虚拟机能将下层硬件的细节和编译Java程序指令的编译器隔离。那些细节由虚拟机的实现提供,其包括以下信息,由小Endian或大Endian格式存储编译后的指令、指令被编译后的指令长度。由于这些与机器相关的细节不会由编译后的代码反映出,代码可被转移到不同的环境(不同硬件的机器上,不同的操作系统上,等),并被在这些环境中执行,不需要代码被改变或重编译-成为″编写一次,在任何环境运行″。被称为Java″字节码″的编译后代码在JVM上运行,在此JVM被改变以适合特殊的操作环境。JVM的改变例如,如果被建立的字节码使用小Endian格式却要在要求大Endian的微处理器上运行,那么JVM要负责将指令在给微处理器之前从字节码改变成微处理器的代码。
用Java写成的程序有两种形式:应用程序和小应用程序。Java小应用程序也是一种应用程序,在网页上被下载到用户机器上使用,且在显示此网页的浏览器上运行。由于Java在1995年被提出,在非常短的时间里它已经历了多次巨大的改变。在这段时间中,一些应用程序相对小应用程序的优缺点暴露出来。
应用程序与小应用程序之间的不同点之一在Java运行环境中,另外还有那些改变的影响。 (运行环境包括JVM和一些运行应用程序或小应用程序所需要的文件和类。在下文中,″JVM″和″运行环境″如无另外声明可互换使用。)对于小应用程序,仅有JVM的一个版本存在于某一浏览器的指定版本中。为了更新JVM版本使其与语言的改变同步,浏览器的新版本必须被安装。而且,当新的浏览器的版本在用户端被安装,开发者必须更新和维护Java代码,重编译(且重测试)它以适应浏览器的JVM版本。另外,Java语言的改变导致了在一些情况下Java版本之间的功能(如特殊的应用程序接口,或″APIs″)上的冲突。这意味着在1.0.2版的Java上写成的小应用程序,即使能在1.1版的Java上运行,可能在浏览器换成下一版时如Java2时便不能运行。如要不改变它而继续使用在旧Java版本上写成的小应用程序,那么旧的JVM(和旧的浏览器)就必须被使用。即使这一途径解决了运行在旧版本Java上写成的小应用程序的问题,通常来讲不能在这一浏览器中完成新的小应用程序的部署,因为通常上说开发工具终止了支持对旧版本代码的生成。此外,由于识别出存在的浏览器的JVM的缺陷,小应用程序开发员经常回避他们而等待JVM开发员改正这些问题。一旦这些改正应用后,因回避缺陷而写的代码却会在小应用程序中产生缺陷。另外,获得了最新发布的浏览器并不指它将提供JVM的最新发布,因为在浏览器中的JVM的版本倾向于滞后于当前已发布的JVM 6-8个月。这表示将要使用开发工具包创建的在开发中的小应用程序使用比能得到的新浏览器更新的JVM版本。
对于应用程序来讲,改变到运行环境更易处理,因为许多Java应用程序与它们同版本的Java运行环境捆绑而一起传输而且没有声明所要求的运行环境的版本。然而,与应用程序一同传输运行环境意味着同一JVM版本上多个拷贝可能被装在同一台客户机上,致使浪费存储空间。另外,当应用程序和运行环境没有捆绑时,用户要负责确认正确的JVM版本被安装且应用程序被设置而使用这一版本。改变运行环境版本时Java程序可以运行,确认所有系统设置对新版本是合适的,这些对于目前的用户都是困难的任务。一个解决办法是写可以跨多个Java运行环境正确运行的程序。然而,对开发员来说这是很困难的任务,因此这不是一个可行的办法。
小应用程序的运行环境更进一步的问题是不同厂商的浏览器实现特定JVM版本的不同。目前最常用的浏览器是Netscape Navigator和Internet Explorer。因为小应用程序的开发员通常无法预测那些浏览器将被使用去运行它的应用程序,好的开发实践是在每一种潜在的浏览器上测试小应用程序。因此很明显,当在多个浏览器上,每个浏览器上有多个JVM版本等(如在不同的操作系统的浏览器)测试时,花费在测试小应用程序上的时间将会迅速增加。太阳微系统已经试图通过提供Java插件解决浏览器之间的不同(这也提供了一种方式给小应用程序运行一最新的运行环境),这些插件允许小应用程序使用由Sun公司提供的运行环境执行,以代替由浏览器提供的运行环境。某一JVM版本可由被那些插件所支持的版本中选出。然而,这一方法需要用户了解所需的JVM版本和如何去选它。另外,插件还提供了JVM的单一版本直到用户手动选择另一个,因此不能解决以上所讨论的有关JVM版本间不同的问题。
对应用程序来讲,JVM实现中的不同表明了它们的不同。一般来讲,每一个操作系统平台上一个JVM仅有一个版本。对于开发员,预测应用程序运行的操作系统比预测小应用程序的浏览器容易。因此,应用程序的测试和支持明显的简单于小应用程序。相对于以上所谈的小应用程序的情况,用于应用程序开发的JVM和用于执行产生的应用程序的JVM之间的同步,还有由关于修改错误的同步问题,不易引起问题。这是因为应用程序的开发和运行环境一般有相同厂商提供。另外,当希望在旧的JVM上运行应用程序时(例如,因为改变被舍弃的功能,如前述),应用程序易于小应用程序。应用程序的唯一要求是能得到旧的JVM。
另一个应用程序和小应用程序之间的不同是对用户的易用性。支持Java的浏览器使用户可以很简单的使用Java小应用程序,用户需要作的仅仅为将指针移到浏览器中的小应用程序上和点击按键。用户需要知道非常少的Java语言和小应用程序的知识,甚至不必知道小应用程序已被启动。因此,用户不需要被培训去使用Java小应用程序,便节省了时间和金钱。然而,运行Java应用程序(如在浏览器外运行Java程序)要复杂的多。Java应用程序可由开发工具包中运行,如JDK(Java开发包),太阳微系统的产品;还有,可运行在″JRE″(Java运行环境)(以下称为″JRE″)上,也为太阳微系统公司产品。JRE是JDK的子集,提供了供应用程序执行的功能。使用JRE是程序由命令行启动执行。使用JRE或JDK运行程序都需要大量的有关Java语言和其环境的知识。例如,连接库路径和类路径这些环境变量必须被正确设置,且对于不同应用程序来讲可能还要改变他们。为了运行特殊应用程序一些相关信息可能存在。例如,如果应用程序使用如Swing用户界面组件的Java扩展,则必须有Swing库。如果这些扩展的代码还未安装在用户的机器上,对于一般的用户来讲很难定位并作合适的安装(换言之,包括设置所有需要的变量以使类装载器在运行中找到合适的代码)。另外,用户必须了解如何使用JDK或JRE而使程序执行。虽然Java开发员和系统管理员可能很容易了解信息的类型,但是把这一重任交给仅仅想执行程序的一般用户是不合理的。
已讨论了关于浏览器实现的几个问题。另外,在安全性支持和档案格式这两个附加的问题上是不同的。安全性功能在小应用程序中通过调用浏览器提供的安全性API被使用。当前使用的主要浏览器有不同的安全性API。这迫使开发员写(和测试)浏览器之间不同的安全代码,增加了小应用程序代码的成本。尽管″CAB″(指″集装″)文件格式被用于Internet Explorer浏览器文件的分发和存档管理,而″JAR″(″Java档案″)文件格式被用于发布和存档管理Java小应用程序文件。
发明内容
因此,需要一种技术克服目前Java环境的缺点。理想状况下,小应用程序和应用程序的优点要被结合起来,并提供一种环境避免两者的缺点。本发明定义了一种新的途径解决这些问题,使得程序更易使用和减少成本。
本发明的目的是提供一种技术,以此技术使目前Java环境的缺点可被解决。
本发明的另一目的是提供一种技术,以此技术使小应用程序和应用程序的优点要被结合起来,并提供一种环境避免两者的缺点。
本发明的另一目的是提供一种技术,以此技术可以在每个程序的基础上在Java程序的运行环境之间动态切换。
本发明的另一目的是以某种方式提供一种技术,可以使用户很容易在不同的运行环境之间切换。
另外,本发明的目的还有提供一种技术指定Java应用程序的相关信息,包括所需的运行环境。
还有,本发明的目的为以某种方式提供一种技术,可以不需要静态定位信息,使相关信息被自动的定位、下载和安装。
本发明的其它目的和优点将在以下的结合附图描述,它们将是显而易见的并由描述中得到或被由发明的实践中学得。
为了完成前述的目的,和与在此大量被描述的发明的意图一致,本发明提供了一种方法、系统和计算机可读的代码,此方法、系统和计算机可读的代码是为了在具有网络连接的计算环境中使用,提高Java环境的可管理性和可用性。这一技术包括:定义了Java应用程序的多个的属性,由这些属性描述应用程序,执行此应用程序所需的零或多个扩展,执行此应用程序所需的运行环境;和应用程序的标识一起存储定义后的属性。此技术还可能更进一步包括使用已存储的属性将应用程序安装在客户的机器上。最好是,应用程序的安装还包括:安装一或多个应用程序的相关信息,相关信息中包括所需的扩展和所需的运行环境;在用户端机器上安装应用程序的Java存档文件,相关信息的安装还将进一步包括:解析属性以定位相关信息;确定是否每一个相关信息已被安装在用户端机器上;当相关信息还未装时获取和安装已定位的相关信息。可选的方法还有,此技术可以进一步包括为应用程序已存储的属性最新版本的获得优先于一或多个相关信息的安装操作。一或多个相关信息的安装可以进一步包括为了使用所谓的获取和安装动态地取得其位置。从一方面讲,此技术可以进一步在用户端创建一个与属性相关的注册表文件。从这方面讲,此技术最好进一步包括:接收请求去执行用户端机器上选定的应用程序;使用相关的注册表文件为选定的应用程序建立运行环境和在建立的运行环境中开始执行选定的应用程序。此建立过程可以进一步包括:读取相关的注册表文件以决定应用程序当前的相关信息,当前的相关信息包括应用程序当前需要的扩展和当前的运行环境;确保选定的应用程序的每个当前相关信息已被安装;为当前的运行环境设置合适的环境变量;和为当前所需控制设置适合的环境变量。可选的方法为,此技术可以进一步包括:在注册表文件中更新当前的运行环境;和在注册表文件中更新当前所需的扩展。另外,此技术可以进一步包括使用相关的注册表文件设置选定应用程序的一或多个参数,且用于注册表文件中参数的更新。
以下将参考附图描述本发明,在此相似附图序号代表相同单元。
图1为计算机工作站环境的方块图,在此环境中本发明得以实现;
图2为网络计算环境框图,在此环境中本发明得以实现;
图3描述了的技术使本发明的最佳实施例,将Java应用程序和属性联系在一起,且保存属性供以后使用;
图4A定义了本发明所使用的属性信息的设计,图4B描述了将本设计应用于特殊应用程序的实例;
图5A和图5B显示了在最佳实施例中的逻辑,为定位和安装应用程序的相关信息,和在最佳实施例中在客户计算机上为应用程序安装Jobbi JAR文件;
图6A定义了用于本发明的注册表文件的设计,图6B描述将设计应用于一应用程序的例子;
图7描述了当应用程序在客护端机器上启动时,在最佳实施例中的逻辑;
图8描述使运行信息可以被在应用程序被安装后更新的逻辑。
详细说明
图1说明了一种代表性的硬件环境,在此环境上本发明得以实现。图1的环境包括了具有代表性的单一用户计算机10,如个人计算机,包括相关的外围设备。工作站10包括一个微处理器12和一个总线14,总线被用于用已知的技术连接和完成微处理器12与工作站10其他部分的通信。工作站10通常包括一个用户接口适配器16,适配器16通过总线14连接微处理器12到一或多个接口设备,如键盘18、鼠标20且/或其他接口设备22,其它设备22可以是任一种用户接口设备,如触摸屏、数字式输入板等。总线14还通过显示适配器26连接微处理器12到显示设备24,如LCD屏幕或监视器。总线14还连接微处理器12到内存28和长期(long-term)存储器30,长期存储器30包括硬盘驱动器、磁盘驱动器、磁带机等。
工作站10可以于其它计算机或计算机网络通信,例如通过通信通道或调制解调器32。另外,工作站10可以使用在32的无线接口通信,如CDPD(蜂窝式数字包数据)卡。工作站10可以在局域网(LAN)或广域网(WAN)内与其它计算机相联系,工作站10可与其它计算机组成客户机/服务器结构中的客户机。所有的配置,包括适合的通信硬件和软件,是在本领域中已知的。
图2图示了一种数据处理网络40,在此环境上本发明得以实现。数据处理网络40可以包括多个独立的网络,如无线网络42和网络44,每个独立的网络都可以包括多个独立的工作站10。另外,本领域的技术人员可以理解能够包括一或多个包括多个智能工作站耦合于主机处理器的LAN。
图2中,网络42和44可以也包括主机系统或服务器,如网关计算机46或应用程序服务器47(可以访问数据仓库48)。网关计算机46作为进入每个网络44的进入点。网关46最好通过通信连接50a连接至另一个网络42。网关计算机46也可以通过通信连接50b、50c被直接连接到一或多个工作站10上。网关46可由IBM提供的Enterprise Systems Architecture/370或Enterprise SystemsArchitecture/390等计算机实现。以应用程序而定,可采用中型计算机,如Application System/400(也被称为AS/400)可被应用。(″Enterprise Systems Architecture/370″是IBM的商标;″Enterprise Systems Architecture/390″、″ApplicationSystem/400″和″AS/400″是IBM的注册商标。)
网关计算机46也可以被连接49至存储设备(如数据仓库48)。进一步讲,网关46可以被直接或间接连接至一或多个工作站10。
本领域的技术人员可以理解网关46可以位于与网络相距极远地理位置,同样,工作站10也可与网络42和44有极大的地理距离。例如,网络42可以在加州,而网关46在德州,且一或多个工作站10在纽约州。工作站10可以使用传输控制协议/因特网协议(″TCP/IP″)连接到无线网络42,可使用一些可选的连接媒体,如蜂窝电话、收音机频率网络、卫星网络等。无线网络42最好连接到网关46使用网络连接50a,例如TCP或UDP(用户数据包协议)通过IP、X.25、帧中继、ISDN(综合业务数据网)、PSTN(公众电话网)等。工作站10还可用拨号连接50b或50c直接连接到网关46。进一步讲,无线网络42和网络44可以用类似于图2描述的方式连接一或多个其他网络(未示出)。
实现本发明的程序代码通常由工作站10和服务器47的微处理器12由某种长期存储介质存储,如CD-ROM或硬盘驱动器。程序代码可以在多种已知数字处理系统的媒介上存储,如磁盘、硬盘或CD-ROM。代码可以由其它系统的用户由这些媒介,或由一台计算机系统或某种其他类型的网络系统的存储器或内存中分发给其它计算机系统。可选的方法为,程序代码可以在内存28中实现,且有微处理器12使用总线14访问。为了实现程序代码的,在内存中、或物理介质中且/或网上的分布放置代码的技术和方法是已知的,这里不作讨论。
本发明的用户使用有线或无线联接将其计算机连至服务器。有线联接是指使用如电缆或电话线之类的物理介质的联接,而无线联接是指使用如卫星联接、无线频率波和红外线之类的媒介的连接。许多联接技术能被用于多种媒介,如:使用计算机调制解调器通过电话线建立连接;使用如令牌环或以太网的LAN卡;使用蜂窝式调制解调器建立无线联接等。用户的计算机可为具有处理和通信能力的任意种类型计算机,包括膝上式、手持或移动计算机;车载设备;台式计算机;主机系统等。同样,远程服务器也为不同类型的具有处理和通信能力的任意种类型计算机指一种。这些技术在本领域中是熟知的,且使其工作的硬件设备和软件也可得到。下文中,用户的计算机将于″工作站″、″设备″或″计算机″同等理解,且所有以上词汇或″服务器″都指以上所描述的计算设备中的一种。
在优选实施方案中,本发明以计算机软件程序的方式实现。假定有网络连接,且在用户的计算机上动态装载的软件被启动时网络连接必须是有效的。在优选实施方案中,本发明以一或多个模块(也指代码子程序,或面向对象编程中的″对象″)实现。客户端计算机连接的服务器可能被作为Web服务器,在此Web服务器提供的服务回应因特网上客户机的请求。可选的方法为,服务器在公司的内部网或外部网中,客户机是此网络中的一个组成部分。本发明操作独立于在客户端和服务器之间发送信息或文件的通讯协议,但是当讨论这些消息流时,运行于TCP/IP之上的HTTP(超文本传输协议)协议在这里作为实例使用。
本发明解决了一些Java环境的缺点,在此将被讨论。本发明也使小应用程序在浏览器之外可以运行,就像小应用程序是应用程序(因此所有的可执行程序以下将被称为″应用程序″)。以此方式,小应用程序和应用程序的优点被组合在一起。特别是,以前所讨论的小应用程序的缺点,如关于按浏览器中的JVM版本同步小应用程序代码,对每种浏览器不同的安全性API,和需要支持多种文件档案格式,在浏览器不再作为运行环境时被避免。简称Jobbi-指″由IBM提供的浏览器外的JAVA代码″(″Java code Outside the Browser ByIBM″)-在此被用于指本发明的实现方式。每一个用Jobbi的应用程序有一个与它相关联的属性文件。属性文件中的信息被用于描述应用程序的需求,如小应用程序的标签会描述本领域中小应用程序的需求。使用这一属性信息,每一个应用程序能指定其相关信息-包括应用程序所应运行的特殊运行环境,还有运行应用程序所需的环境设定。多个运行环境(也就是,JVM或JRE的多个版本)可存在于用户端机器上,在那里每一个运行环境的单一拷贝(可共享)可被那些需要它的应用程序访问。在此定义的技术使用属性文件中的信息而动态转换到某特殊应用程序要求的运行环境。这些仅需要用户的少许输入或根本不需要输入。以此方式,较旧的JVM版本在运行时使用同较新的版本同样易于访问,也将应用程序开发员从更新、重编译和重测试应用程序以跟上JVM在最近发布的浏览器或操作系统平台运行环境不断更新的版本的工作中解放出来。
参考图3至图8详细讨论本发明的优选实施方案。
图3示出的技术使本发明的优选实施方法使Java应用程序与属性相联系,且存储起那些属性为将来使用。本发明定义的属性信息格式和使用这一信息的某一特殊应用程序的特例在图4A和图4B中分别示出。
图3所示的属性定义过程是一个应用程序开发员完成的独立过程,此过程最好集成到普通应用程序建立过程,开发员在应用程序开发过程中使用此集成过程。块300指出开发员执行这一普通建立过程,此过程使用本领域中已知的技术。此建立过程的输出结果是一个Java存档文件,也被称为″JAR″文件,如块305所所示。本发明没有改变JAR文件内容。块310显示了正在被调用的本发明的″Jobbi打包器″。此包装步骤被更详细的在块320和325中阐明。在块320中,开发员使用有关应用程序需求的知识指定应用程序的可应用属性的值。这些属性包括应用程序相关信息、运行环境等,将在图4中作更详细的描述。一个新的JAR文件,被指定为Jobbi JAR文件,在块325作为结果被创建。Jobbi JAR文件被储存在档案中为以后使用,如主线流程中的块315所描述,其方式与存在的JAR文件被存储的方式相同。如图3所示,将被在块315存档的Jobbi JAR文件包括根据现有技术为应用程序创建的JAR文件(如单元330所指),也包括Jobbi属性信息(如单元335所指)。所有在Java环境中所需的操作应用程序的信息可由这一档案中获得。(请注意,虽然图3指出现有档案数据330和Jobbi信息335在一起存储,这只是一个采用的技术。可选的方法为,这两种类型的信息可被分开存储而不背离本发明,假设Jobbi属性与存档的应用程序信息相联系。这一联系可以被完成,例如,通过存储标识相关的Jobbi属性文件的指针或其他参数到JAR文件;或如可能被存储于Jobbi属性文件中的指针或引用,指回JAR文件。)
在可选的实施方案中,块310、320和325中描述的操作可被由普通建立过程和JAR文件创建中以时间分开,而不背离本发明的创造性概念。当这一可选的途径被使用,块305中被创建的JAR文件与当前领域一样被存储。当接下来属性信息为应用程序而创建时,为应用程序存储的JAR文件会被定位,且属性信息会被与之联系或存储,如图3所示。
图4A定义了属性信息和本发明优选实施方案预期的文件规划400。规划400将要在参考图5B的例450的情况被解释,例450阐明了一个假定的应用程序的属性信息。本规划中被定义的属性信息提供了一种标准化的手段,不仅为应用程序,而且为Java运行时间和Java扩展打包。信息的不同类型相关于每一种被打包内容的类型。本规划中列出了九种属性值的不同类型,它们是单元405、410、415、420、425、430、435、440和445。(虽然这九种信息类型被用于优选的实施方案,对于本领域的技术人员是显而易见,此技术的附加的或不同的值可能被用于适合的设置,而不背离在此包括的本发明的范围。另外,其他名称可能被使用以代替那些列出的属性,且条目的顺序也可能与所列出的不同。)
属性文件中的某些信息描述了应用程序、运行时间或扩展,和其他信息描述了它的相关信息。每一个条目将在此讨论。第一个单元405是为该应用程序使用的显示名。例如,显示名可被用于显示图标,用户可用此图标调用应用程序。对于一个假定的应用程序″X1″,由图4B的单元455所指,显示名条目语法如459所示。属性的名字首先显示,这种情况就是″显示名″。属性的值被示为″X1的显示名″。对于属性文件中后来的条目480,它属于名为″Y1″的运行环境(见条目480注解),显示名481被图示为″y1的显示名″。(请注意,在图4B的实例中,等号被用于隔断属性名和他们的值。这仅为可被使用的一个隔断符号。)属性条目408指定应用程序文件使用的一个显示图标,460示出了它的一个实例。此条目的值是个文件名,此文件是一个图标以图片、位图等方式存储。在此属性中,用于优选实施方案的字符″|″指路径隔离字符,且被用于单元460中的路径″images|hod.gif″中。(字符″|″将被在注册安装到客户机上时被取代,请见以下图6参考的说明。)
下一属性条目410是被打包的项目的版本。在优选的实施方案中,这一信息将被指定为一种用逗号分割的列表,由主版本、小版本、修订版本和集成版本数组成。这一版本信息标志出属性信息相关于那一版本的应用程序、运行环境或扩展。对图4B的应用程序X1来说,版本语法在单元461中所示。对于运行环境Y1,版本显示于482。与优选实施方案的逗号分割列表不同的版本语法可在适合时使用,以配合特定安装中使用的语法。
属性条目415确定了用属性文件中这一条目描述信息的类型。类型可能是应用程序、运行环境或扩展。如图4B中462和483所示,关键词″应用程序″和″运行环境″被使用。可选的方法为,另一些技术可以被用来转变类型,如分配数字值(如0到2)给被打包的条目。
被打包条目的位置类型被指定使用属性条目420。这一位置类型420被与位置条目425一起使用。如图4A所描述,位置类型可以为URL(统一资源位置),指定一个网络位置,由此存档后的包项目可被取得。使用URL的实例如图4B中单元484(在此处类型被标识为使用关键词″URL″)和485(在此处指定URL的一个实例)中示出。位置类型420的可选方式为一个文件,在这种情况下位置425指定一个文件被定位的目录结构信息。使用文件位置的实例如图4B中单元463和464所示。464所示的位置实例中,特殊字符″.″已被用于指明已存档的信息在当前的JAR文件中。这种情况下,不需要在属性文件中指定一个位置值。(虽然优选的实施方案使用特定字符″.″来指明这种情况,如某一另外的字符的其他技术也可选择使用。)当引用存档后的信息在JAR文件中时,一个唯一的标识或唯一标识JAR文件中信息的″UID″可能被使用。位置信息420可能也被指定为″jobbi-查找-服务器″,表示运行时将被动态定位(将参考图5B进行讨论)。此种情况下,位置值425最好被至空。位置425可能被指定使用关键词″prompt″,如428所示。这种情况下,用户被提示输入位置信息。(在优选实施方案中,属性类型的关键词将出现在属性文件中,紧跟着分割符语法,当值为空时不用联系值。)由以上参考条目425的描述,较短的标识符如数字值可以被用以代替条目420的关键词。
属性条目430指定是否存档后的包项目包含本地代码。条目430与条目435一起使用,条目435指定当430的值为″true″时的原有代码平台的一个字符串标识。使用这一条目的实例如单元465和466,在平台值为假时,而单元486和487,在平台值为真时。
包条目的相关信息被指定使用属性条目440。在优选实施方案中,相关性语法为代码使用UID逗号分割列表,用于必须为这一包条目安装以运行在任意一种平台上的代码。如没有相关信息,那么这一属性的值最好至空。单元467显示了相关信息的实例,在此两个标识″x2″和″y1″被列出。如单元470和480所示,属性信息还将提供给这些相关信息。单元488示出运行环境Y1无相关信息。通过在存档后的包中特定出相关信息,可使用要安装和使用包的所有依Java而定的信息。例如,应用程序X1(图4B中的单元455)指定运行环境″Y1″,″Y1″在467需要作为相关信息。
属性条目445定义了优选实施方案的最后一个条目,它是包括主函数的Java类名。除非包项目不是应用程序,此条目是一个空值。此条目列出的值将被在运行时使用以启动应用程序。如应用程序X1在单元468中所示,此应用程序的主程序被定位在类″com.ibm.X1″。
图5A示出了优选实施方案中所使用的逻辑,用于定位和安装应用程序的相关信息,图5B示出用于优选实施方案的逻辑,用于在客户机上的应用程序安装Jobbi JAR文件。如500所描述,相关信息安装逻辑在客户机上操作。这一逻辑可以在单机方式下被调用,以确定应用程序的相关信息被安装。可选的方法为,它可被在应用程序执行时被调用,如参考图7中块730的进一步讨论。特定应用程序的相关信息安装在块505被请求。在优选实施方案中,一个HTTP请求506被发送到Web服务器510,在此Web服务器存储Jobbi JAR文件515、516、517等,使用以上图3所描述的技术这些文件被创建。这个HTTP请求为被请求的应用程序指定唯一的标识。相关的JobbiJAR文件将被Web服务器510定位,且返回507到用户机。块520指明这一文件在客户机被接收,然后在块525被处理。Jobbi JAR文件的处理过程将在以下块535和540中作细节性的解释。属性信息(见图4)在块535被解析以定位块505所请求的应用程序的相关信息。当相关信息被摘录出时,块540检查是否相关项被安装。这一检查过程可以有3个输出结果,如流程541,542和543所示。如果相关信息(或多个相关信息)已被安装,过程在块530处继续,如流程542所示。如果有相关信息,且相关信息位置已知,那么如流程541所示控制返回到块505。这是相关信息安装过程的递归调用,对于本领域的技术人员是显而易见的。递归调用可被用于获取所请求的应用程序的需要运行环境,应用程序需要的扩展等。如果需要某一相关信息,但其位置不明(例如,属性条目420的值被定为″jobbi-查找-服务器″),那么相关信息的唯一标识将被发往查询服务器545,如流程543所示。这一查找服务器545将返回相关的Jobbi JAR文件到客户机,如流程544所指出。在优选实施方案中,这一返回的信息是一个URL,此URL指定存储存档后信息的服务器的位置。现在相关信息的位置已知,相关信息安装过程的递归调用使用流程541被调用。确定相关信息位置的这一技术动态地使本发明提供非常灵活的包装过程,当然是相对于现有技术的位置信息必须静态的预先确定而言。(请注意如图5A所描述的单一的Web服务器510,是为了阐明这一目的。多个服务器可能被使用,在此HTTP请求506将使用其URL指定合适的服务器。)
块540信息检查过程将被为每一个指定的相关信息重复。确定相关信息是否已被安装使用本领域中的已知技术。一旦相关信息如参考块535和540的描述已被完全的处理,控制返回块530中的主线过程,在此由507取得的Jobbi JAR文件在客户机上被安装在Jobbi注册表中。这一过程在图5B中将作更多细节描述。
在用户机上用于安装应用程序的Jobbi JAR文件的安装过程由图5B块570开始,在此应用程序的JAR文件被从Jobbi JAR文件(当两者被一起存储时,见图3种单元315)中摘出且被拷贝到客户机UID目录中。(UID目录是创建于客户机上的一个目录,它与它的Jobbi档案的UID有相同的名字。此技术有助于在以后建立应用程序环境时找到Jobbi档案信息。可选的方法为,其他目录命名方法也可使用,在这种情况下,为应用程序存储存档信息的目录名称必须被作为注册表文件的一部分存储。)然后块575从Jobbi JAR文件中使用Jobbi属性信息,且由此属性信息创建注册表文件。注册表文件的格式如图6所示,且将在以下作详细讨论。然后注册表文件信息580在块585为此客户机在注册表文件中被存储。图5B的过程结束。
图6A定义了本发明使用的注册表文件的规划600,图6B描述了使用这一规划的特定应用程序的实例570。虽然属性文件包含在多个可能被安装的平台上使用应用程序所需的信息,注册表提供了剪裁后的关于在特定客户机上使用应用程序的信息。在运行时,注册表信息将被用于为应用程序建立适合的环境,如以下将参考图7的讨论。一些注册表条目在如图5B的块575的过程中被直接由属性文件摘出,如这里所描述。(如参考图4A中规划400的描述的同样方式,注册表规划600描述了优选实施方案,且关于应用程序、运行环境或扩展。规划信息可以被改变或扩展到合适的环境,它可被冲排序,且其他关键词也可被用于代替在此所示的。)
注册表条目605指定了此包的唯一标识,它可为任意有效字串。此标识可由,如调用随机数生成器或非本发明各部分的技术(包括用户输入)的方法生成。标识串的一个实例如图6B单元671所示。请注意在此实例中注册表条目被加入前缀″jobbi″:这仅为说明目的,且还明显的指出这里有在Jobbi注册表中的条目。
注册表条目610被用于指定包含主函数的Java类。这一信息在图5B可块575处理期间,从属性文件的条目445摘出,假设此属性文件是某应用程序的属性文件。使用条目610的实例如图6B的单元672所示,在此指定类名。注册表条目615是此包的显示名,且可为任一可显示的字串值。此值从属性条目405摘出,且例670的在单元673中示出。条目620指定了一个为应用程序文件所用的显示图标,它的实例在674示出。此条目的值将为一个文件名,一个图标会以图片、位图等的方式存于此文件。如图6A底部的所示,字符″|″被用于优选实施方案中作为路径分隔符,且已被用于单元674中的路径指定″images|hod.gif″中。此″|″符号在安装在客户机的注册表中时将被字符″\″或″/″取代,当然要视客户端的操作系统而定。条目620的值由属性文件中的单元408中摘出。
当包在被使用时需要被包括在类路径环境变量中的相关目录或档案名被指定使用注册表条目625。此条目所使用的值被自动创建,且为存储的包在客户的文件系统中的位置。如675所示。请注意符号″&″已被使用,表示与平台相关的联接符号在客户机的注册表上安装时被用于代替此符号(如图6A所解释)。
注册表条目630指定了执行此包的运行环境的唯一标识的列表。最初建此列表时,可从属性文件中取得信息,属性文件中,包的相关信息被诊测以定位包的每个运行环境。另外,用户或开发员的输入可被顺序使用,以扩展此列表中的值。单元676显示此例的应用程序中,任何三个不同的运行环境中的一个可被用于执行应用程序。
需要被设为环境变量的相关工作目录被指定为注册表条目635的值。特殊语法″.″被用于例677,指出被使用的当前目录。它的值最好初始化为值″.″的方式创建,且提供了一种方式(如配置菜单),依此种方式在需要的情况下被顺序的改变。
注册表信息描述的条目类型被指定使用条目640,且将为应用程序、扩展或运行环境。单元678指出此例与应用程序有关,使用应用程序值为0。此条目的值由属性文件条目415推出。
注册表条目645指定了被应用程序使用的当前选择的运行环境。此条目为运行环境和扩展从注册表文件中省略。运行标识符的一个例子如679所示,它与单元676中运行列表的最后选择相符合。条目645所用的值将从条目630中的值中选出。最好是选择策略将被用于特殊的实现方式,如选择备选列表中的最后单元,或选择第一个单元等。可选的方法为,用户可被提示从列表中选择。
包条目650指定了包的档案名,使用URL标识他在网络上的服务器上存储的位置,或使用文件路径标识它在文件系统的位置。如果存档后的包已被解开且被安装在客户机的UID目录中,那么此条目的值被留为空,如单元680所示。
外部条目655是一个用分号分隔的唯一标识符的列表,本包与其相关,列表由属性文件的条目440创建。当没有相关信息时,此条目可被由注册表文件中完全省略,如例670中所作的。
注册表文件的优选实施方案中的最后一个条目是参数条目660。它为一个参数的列表,最好用分号分开,它将在应用程序调用时传给主函数。因此除非注册表类型640是应用程序,此条目不被指定。通常,参数值将在应用程序启动过程中由用户输入,因而没有参数值将被永久的存入注册表文件。然而,可能由一或多个参数有固定的值。在此情况下,值可被存于注册表中,以避免在运行时要求用户输入。例670省略了参数值的指定。
图7描述了当应用程序在客户机上被启动时,在优选实施方案中被调用的逻辑。当用户请求执行应用程序时,过程在块700开始,且发生在客户机上(如单元710注释)。用户用以请求应用程序的方式不是本发明的一部分。用户可以点击代表应用程序的图标(如注册表文件中标明的显示图标620),也可选择应用程序标识符(如显示名615)从弹出或上拉列表中,还可使用计时器列表调用应用程序等。在块715中,为应用程序建立合适运行环境和在此环境中启动应用程序执行的过程开始。如将被阐明的,用户被要求了解一点或几乎不知道运行环境如何操作。块715打开了与请求的应用程序相连接的注册表文件,在此包括了如参考图6A和6B所描述的信息。依平台而变的逻辑将在块720和725被调用,以处理注册表文件中的环境数据。例如,类目录条目625将被扩展成类路径变量,且工作目录将由条目635的信息设定。然后,块730检查相关信息列表655,以确定所有相关信息被安装。如果没有,那么最好如图5的安装过程将被调用。对于已安装的相关信息,如图7逻辑的递归调用如732所示被执行,使用相关信息设置适合的信息。当所有的相关信息被处理完,控制转移给块735。应用程序注册表文件当前的运行时间条目645被摘出,且其值被用于为运行环境取得注册表文件。然后,块740使用运行时间注册表中的信息,且为环境变量使用合适的设置(如将目录附加到库路径或执行文件路径等)。
块745中,平台独立的JNI(Java本地接口)被调用。如本领域中已知,JNI是一个标准,虚拟机无关接口用于使Java应用程序调用用其他语言如C或C++写成的代码本地库。适合的环境变量和应用程序参数在此调用中被传递,以使块750决定环境变量设置,然后用在其中执行的应用程序开始系统过程。然后,如图7的过程结束,程序正常执行。如已示出的,本发明的新技术使适合的运行环境为应用程序所用,它可包括为每一个被选中执行的不同的应用程序动态改变运行环境。
依图8描述的逻辑,应用程序的运行环境可用本发明简单的改变。在块800,用户使用图形用户界面(GUI)、命令行等输入,来请求改变注册表文件中的信息。(可选的方法为,系统管理员能用此方法强制信息在一或多台客户机上更新。例如,如果新的运行环境正在整个组织中被下载,系统管理员可以更新所有客户机的注册表文件来使用该新运行环境。此方法将有助于减少用户需要知道的运行知识。本领域中,从网络下载信息到客户机的方法是已知的,且将被使用调用图8的逻辑。)如果用户的请求是在注册表中更新目前的运行条目645,那么块805将从用户接收新的运行标识符。可选方法为,继续此标识符的校验。如果用户请求改变永久存储的应用程序参数655,块810将接受新参数值。可选方法为,参数值可通过检查可用的应用程序来检验,以确定参数值的数量和类型是合适的。如果用户请求改变或增加相关信息650,那么块815将接受新信息。可选方法为,相关信息标识的存储列表可被显示给用户,同时用户可以增加、删除和改变此列表。一旦用户输入了被改变的注册表信息,且任一可选的检验被执行,块820为应用程序更新存储的注册表信息。当下次此应用程序被启动,根据图7建立执行环境时,修正后的信息将被使用。因此,显而易见,改变应用程序以使其在不同的运行环境中使用,比本领域中当前的方法简单的多。
虽然本发明优选实施方案已被描述,在学会本发明的基本创新概念后,此实施例的其他改变也可由本领域中的技术人员完成。因此,权利要求的范围是使优选实施方案和所有变化落入本发明精神和范围。
Claims (22)
1.一种在具有网络连接的计算环境中 为提高Java环境的可管理性和可用性的系统,包括:
为Java应用程序定义多个属性的装置,其中所述属性描述所述应用程序,执行所示应用程序所需的零或多个扩展和执行所示应用程序所需的运行环境;及
与所述应用程序的标识一起存储所述被定义属性的装置。
2.如权利要求1的为提高Java环境的可管理性和可用性的系统,进一步包括在客户机上使用已存储属性安装所述应用程序的装置。
3.如权利要求2的为提高Java环境的可管理性和可用性的系统,其中所述安装所述应用程序的装置进一步包括:
安装所述应用程序的一或多个相关信息的装置,其中所述相关信息包括所述所需的扩展和所述被需求的运行环境,进一步包括;
为分析所述属性以定位所述相关信息的装置;
确定是否每一个所述相关信息已被安装在所述客户机上的装置;及
当确定装置的结果为否定时,获取和安装所述以定位的相关信息的装置;及
在客户机上为所述应用程序安装Java档案文件的装置。
4.如权利要求3的为提高Java环境的可管理性和可用性的系统,进一步包括获取所述应用程序的所述已存储的属性的最新版本的装置的操作优先于所述安装一或多个相关信息的装置的操作。
5.如权利要求3的为提高Java环境的可管理性和可用性的系统,其中所述为安装一或多个相关信息的装置进一步包括为所述的获取和安装的装置所用的动态获取位置的装置。
6.如权利要求3的为提高Java环境的可管理性和可用性的系统,进一步包括在客户机上创建相应于所述属性的注册表文件的装置。
7.如权利要求6的为提高Java环境的可管理性和可用性的系统,进一步包括:
获取在所述客户机上执行已选应用程序的请求的装置;
使用相应的注册表文件为所述已选的应用程序建立适合的运行环境的装置;及
在所述已建立的环境中开始所述已选应用程序的执行的装置。
8.如权利要求7的为提高Java环境的可管理性和可用性的系统,其中所述的建立装置进一步包括:
读取相应的注册表文件以确定所述应用程序当前的相关信息的装置,其中所述当前的相关信息包括所述应用程序当前所需的扩展和当前的运行环境;
确保所述已选应用程序的所述每一个当前相关信息已安装的装置;
为所述当前运行环境设置合适的环境变量的装置;及
为所述当前所需的扩展设置合适的环境变量的装置。
9.如权利要求8的为提高Java环境的可管理性和可用性的系统,进一步包括使用所述相应的注册表文件设置一或多个所述已选应用程序的参数的装置。
10.如权利要求6的为提高Java环境的可管理性和可用性的系统,进一步包括:
在所述注册表文件中更新所述当前运行环境的装置;及
在所述注册表文件中更新所述当前所需扩展的装置。
11.如权利要求9的为提高Java环境的可管理性和可用性的系统,进一步包括在所述注册表文件中更新所述参数的装置。
12.一种在具有网络连接的计算环境中,为提高Java环境的可管理性和可用性的方法,包括步骤如下:
为Java应用程序定义多个的属性,其中所述属性描述了所述的应用程序、执行所述应用程序所需的零或多个扩展和执行所述应用程序所需的一个运行环境;及
与所述应用程序的标识一起存储所述被定义的属性。
13.如权利要求12的为提高Java环境的可管理性和可用性的方法,进一步包括在客户机上使用所述已存储的属性安装所述应用程序的步骤。
14.如权利要求12的为提高Java环境的可管理性和可用性的方法,其中所述安装所述应用程序进一步包括步骤如下:
安装一或多个所述应用程序的相关信息,其中所述相关信息包括所述所需的扩展和所述所需的运行环境,进一步包括步骤如下;
分析所述属性以定位所述相关信息;
确定是否每一个所述相关信息已被安装在所述客户机上;及
当确定步骤的结果为否定时,获取和安装所述已定位的相关信息;及
为所述的应用程序在客户机上安装Java档案文件。
15.如权利要求14的为提高Java环境的可管理性和可用性的方法,进一步包括为所述应用程序获取所述已存储的属性的最新版本的步骤先于所述安装一或多个相关信息步骤的操作。
16.如权利要求14的为提高Java环境的可管理性和可用性的方法,其中安装一或多个相关信息步骤进一步包括为获取和安装步骤动态获取位置的步骤。
17.如权利要求14的为提高Java环境的可管理性和可用性的方法,进一步包括在所述客户机上创建与所述属性相应的注册表文件的步骤。
18.如权利要求17的为提高Java环境的可管理性和可用性的方法,进一步包括步骤如下:
在所述客户机上获取执行所选应用程序的请求;
使用相应的注册表文件为所述已选应用程序建立适合的运行环境;
在已建立的环境中开始所述已选应用程序的执行。
19.如权利要求18的为提高Java环境的可管理性和可用性的方法,其中所述建立步骤进一步包括步骤如下:
读取所述相应的注册表文件以确定所述应用程序的当前的相关信息,其中所述当前相关信息包括所述应用程序的当前所需的扩展和当前运行环境;
确保所述已选应用程序的每一个所述当前相关信息被安装;
为所述当前运行环境设置适合的环境变量;及
为所述当前所需的扩展设置适合的环境变量。
20.如权利要求19的为提高Java环境的可管理性和可用性的方法,进一步包括使用相应的注册表文件设置所述已选应用程序的一或多个参数的步骤。
21.如权利要求17的为提高Java环境的可管理性和可用性的方法,进一步包括步骤如下:
在所述注册表文件中更新当前运行环境;及
在所述注册表文件中更新当前所需的扩展。
22.如权利要求20的为提高Java环境的可管理性和可用性的方法,进一步包括在所述注册表文件中更新所述参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/300,041 US6571389B1 (en) | 1999-04-27 | 1999-04-27 | System and method for improving the manageability and usability of a Java environment |
US09/300041 | 1999-04-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1271893A CN1271893A (zh) | 2000-11-01 |
CN1153138C true CN1153138C (zh) | 2004-06-09 |
Family
ID=23157441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001068032A Expired - Fee Related CN1153138C (zh) | 1999-04-27 | 2000-04-13 | 提高Java环境的可管理性和可用性的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6571389B1 (zh) |
EP (1) | EP1049005A3 (zh) |
JP (1) | JP4215373B2 (zh) |
KR (1) | KR100397589B1 (zh) |
CN (1) | CN1153138C (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738806B1 (en) * | 1999-06-14 | 2004-05-18 | Wind River International, Ltd. | Method and system of deploying an application between computers |
US7200651B1 (en) * | 1999-07-02 | 2007-04-03 | Cisco Technology, Inc. | Dynamic configuration and up-dating of integrated distributed applications |
US6813778B1 (en) * | 1999-08-16 | 2004-11-02 | General Instruments Corporation | Method and system for downloading and managing the enablement of a list of code objects |
US6983315B1 (en) | 2000-01-18 | 2006-01-03 | Wrq, Inc. | Applet embedded cross-platform caching |
US7284064B1 (en) | 2000-03-21 | 2007-10-16 | Intel Corporation | Method and apparatus to determine broadcast content and scheduling in a broadcast system |
US7131122B1 (en) * | 2000-08-24 | 2006-10-31 | International Business Machines Corporation | Apparatus, system and method for detecting old version of an applet in a client brower's JVM |
US7013455B1 (en) * | 2000-10-19 | 2006-03-14 | International Business Machines Corporation | System for automatically altering environment variable to run proper executable file by removing references to all except one duplicate file in the path sequence |
US7140011B2 (en) * | 2000-12-12 | 2006-11-21 | Intel Corporation | Dynamically loading program code over a push-based network |
US6769118B2 (en) * | 2000-12-19 | 2004-07-27 | International Business Machines Corporation | Dynamic, policy based management of administrative procedures within a distributed computing environment |
JP2002215411A (ja) * | 2001-01-19 | 2002-08-02 | Hitachi Ltd | Javaアプリケーション実行装置 |
IL157959A0 (en) * | 2001-03-19 | 2004-03-28 | Qualcomm Inc | Dynamically downloading and executing system services on a wireless device |
US7730468B1 (en) * | 2001-03-26 | 2010-06-01 | Trowbridge Sean E | System and method providing on-demand generation of specialized executables |
US20020144265A1 (en) * | 2001-03-29 | 2002-10-03 | Connelly Jay H. | System and method for merging streaming and stored content information in an electronic program guide |
US20020144269A1 (en) * | 2001-03-30 | 2002-10-03 | Connelly Jay H. | Apparatus and method for a dynamic electronic program guide enabling billing broadcast services per EPG line item |
US7185352B2 (en) * | 2001-05-11 | 2007-02-27 | Intel Corporation | Method and apparatus for combining broadcast schedules and content on a digital broadcast-enabled client platform |
US7328455B2 (en) * | 2001-06-28 | 2008-02-05 | Intel Corporation | Apparatus and method for enabling secure content decryption within a set-top box |
US7363569B2 (en) | 2001-06-29 | 2008-04-22 | Intel Corporation | Correcting for data losses with feedback and response |
EP1288757A1 (de) * | 2001-08-07 | 2003-03-05 | Siemens Aktiengesellschaft | Verfahren und Prozessleitsystem zum Betrieb einer technischen Anlage |
US7047456B2 (en) * | 2001-08-28 | 2006-05-16 | Intel Corporation | Error correction for regional and dynamic factors in communications |
US20030046683A1 (en) * | 2001-08-28 | 2003-03-06 | Jutzi Curtis E. | Server-side preference prediction based on customer billing information to generate a broadcast schedule |
US6854112B2 (en) * | 2001-08-29 | 2005-02-08 | International Business Machines Corporation | System and method for the automatic installation and configuration of an operating system |
US7231653B2 (en) | 2001-09-24 | 2007-06-12 | Intel Corporation | Method for delivering transport stream data |
US8943540B2 (en) | 2001-09-28 | 2015-01-27 | Intel Corporation | Method and apparatus to provide a personalized channel |
US20030093508A1 (en) * | 2001-10-18 | 2003-05-15 | Seiko Epson Corporation | System for installing and launching network applications |
JP2003173246A (ja) * | 2001-12-05 | 2003-06-20 | Ricoh Co Ltd | デバイス情報収集方法、プログラム、サーバ装置及び記憶媒体 |
WO2003058398A2 (en) * | 2001-12-28 | 2003-07-17 | Postx Corporation | System and method for applet caching |
US20030135857A1 (en) * | 2002-01-11 | 2003-07-17 | Ramesh Pendakur | Content discovery in a digital broadcast data service |
US20030135605A1 (en) * | 2002-01-11 | 2003-07-17 | Ramesh Pendakur | User rating feedback loop to modify virtual channel content and/or schedules |
US20030182403A1 (en) * | 2002-01-15 | 2003-09-25 | De Bonet Jeremy S. | System and method for program configuration |
US7165099B2 (en) | 2002-03-15 | 2007-01-16 | Qualcomm Inc. | Dynamically downloading and executing system services on a wireless device |
US7823148B2 (en) * | 2002-05-22 | 2010-10-26 | Oracle America, Inc. | System and method for performing patch installation via a graphical user interface |
US9009694B2 (en) * | 2002-05-22 | 2015-04-14 | Oracle America, Inc. | Pre-verification and sequencing of patches |
US20040003018A1 (en) * | 2002-06-26 | 2004-01-01 | Pentkovski Vladimir M. | Method and system for efficient handlings of serial and parallel java operations |
DE60313787T2 (de) * | 2002-09-23 | 2008-01-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Verfahren und Mechanismus zum Übertragen von Nachrichten |
US20040088397A1 (en) * | 2002-11-05 | 2004-05-06 | Sidley Austin Brown & Wood Llp. | System and method for management of software applications |
US7165241B2 (en) * | 2002-11-26 | 2007-01-16 | Sun Microsystems, Inc. | Mechanism for testing execution of applets with plug-ins and applications |
US7149752B2 (en) * | 2002-12-03 | 2006-12-12 | Jp Morgan Chase Bank | Method for simplifying databinding in application programs |
US7139559B2 (en) * | 2002-12-09 | 2006-11-21 | Qualcomm Inc. | System and method for handshaking between wireless devices and servers |
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 |
US8032439B2 (en) | 2003-01-07 | 2011-10-04 | Jpmorgan Chase Bank, N.A. | System and method for process scheduling |
US7401156B2 (en) * | 2003-02-03 | 2008-07-15 | Jp Morgan Chase Bank | Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment |
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 |
US7475408B2 (en) | 2003-02-27 | 2009-01-06 | Microsoft Corporation | Hosting an application in one of a plurality of execution environments |
US7379998B2 (en) * | 2003-03-31 | 2008-05-27 | Jp Morgan Chase Bank | System and method for multi-platform queue queries |
US7814073B2 (en) * | 2003-05-02 | 2010-10-12 | Jp Morgan Chase Bank | Utility for identifying differences between two Java objects |
EP1475722A1 (de) * | 2003-05-06 | 2004-11-10 | Rudi Warttmann | Drucksteuersystem |
US20040230602A1 (en) * | 2003-05-14 | 2004-11-18 | Andrew Doddington | System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system |
US7366722B2 (en) * | 2003-05-15 | 2008-04-29 | Jp Morgan Chase Bank | System and method for specifying application services and distributing them across multiple processors using XML |
US8095659B2 (en) | 2003-05-16 | 2012-01-10 | Jp Morgan Chase Bank | Service interface |
WO2005026945A2 (en) * | 2003-09-17 | 2005-03-24 | Research In Motion Limited | System and method for dynamic version management of applications |
EP1678606A2 (en) * | 2003-09-17 | 2006-07-12 | Research In Motion Limited | System and method for management of mutating applications |
US7735078B1 (en) | 2003-10-30 | 2010-06-08 | Oracle America, Inc. | System and method for software patching for cross-platform products |
US8930944B2 (en) * | 2003-11-18 | 2015-01-06 | Microsoft Corporation | Application model that integrates the web experience with the traditional client application experience |
US20050144174A1 (en) * | 2003-12-31 | 2005-06-30 | Leonid Pesenson | Framework for providing remote processing of a graphical user interface |
US20050222990A1 (en) * | 2004-04-06 | 2005-10-06 | Milne Kenneth T | Methods and systems for using script files to obtain, format and disseminate database information |
US7376830B2 (en) * | 2004-04-26 | 2008-05-20 | Jp Morgan Chase Bank | System and method for routing messages |
US7454748B2 (en) * | 2004-07-27 | 2008-11-18 | Nokia Corporation | System and method for specifying virtual machines |
US20060031827A1 (en) * | 2004-08-05 | 2006-02-09 | International Business Machines Corporation | System, apparatus and method of assisting with software product update installations |
JP2006077151A (ja) * | 2004-09-10 | 2006-03-23 | Fuji Photo Film Co Ltd | 液晶組成物および液晶素子 |
JP4717426B2 (ja) * | 2004-12-07 | 2011-07-06 | キヤノン株式会社 | 情報処理装置及びその方法 |
KR100653179B1 (ko) * | 2004-12-17 | 2006-12-04 | 한국전자통신연구원 | 플랫폼 동적 업그레이드 기능을 가지는 무선통신단말기 및그 방법 |
JPWO2006067841A1 (ja) * | 2004-12-22 | 2008-06-12 | 富士通株式会社 | 仮想マシン管理プログラムおよび仮想マシン管理方法 |
DE102005008796A1 (de) * | 2005-02-25 | 2006-08-31 | Siemens Ag | Mobiles Endgerät für eine Mehrzahl von Applikationen, die verschiedene virtuelle Maschinen voraussetzen und Verfahren zum Aufrufen einer Mehrzahl von Applikationen |
US20070061794A1 (en) | 2005-09-13 | 2007-03-15 | Mausolf Jeffry R | Method and apparatus for classpath optimization in a Java runtime environment |
US20070067426A1 (en) * | 2005-09-22 | 2007-03-22 | Sun Microsystems, Inc. | Computer implemented methods for transferring files from a development environment to target mobile devices |
US7941797B2 (en) * | 2005-10-27 | 2011-05-10 | International Business Machines Corporation | Dynamically providing native libraries and their dependencies |
US7861238B2 (en) * | 2005-12-19 | 2010-12-28 | Seiko Epson Corporation | Configuration tool and method of updating an archive file property relating to at least one point-of-sale peripheral |
US8495613B2 (en) * | 2005-12-22 | 2013-07-23 | Microsoft Corporation | Program execution service windows |
JP2007193435A (ja) * | 2006-01-17 | 2007-08-02 | Matsushita Electric Ind Co Ltd | 情報処理端末、プログラム |
US20070174824A1 (en) * | 2006-01-23 | 2007-07-26 | Microsoft Corporation | Techniques for generating and executing browser-hosted applications |
KR100772867B1 (ko) | 2006-02-23 | 2007-11-02 | 삼성전자주식회사 | 복수의 애플리케이션에 대해 부분적으로 분리된 수행환경을 제공하는 방법 및 이를 이용한 디지털 정보 기기 |
US7610172B2 (en) * | 2006-06-16 | 2009-10-27 | Jpmorgan Chase Bank, N.A. | Method and system for monitoring non-occurring events |
JP2009543233A (ja) * | 2006-07-06 | 2009-12-03 | アコリ ネットワークス,インコーポレイテッド | アプリケーションシステムの負荷管理 |
US20080027945A1 (en) | 2006-07-28 | 2008-01-31 | Nichols Paul H | Methods, systems and computer program products for downloading a Java application based on identification of supported classes |
CA2659826C (en) * | 2006-09-07 | 2013-08-13 | Nokia Corporation | Managing information relating to secure module applications |
US20080115109A1 (en) * | 2006-11-13 | 2008-05-15 | Bostick James E | Enhanced Hover Help For Software Debuggers |
US20080141225A1 (en) * | 2006-12-06 | 2008-06-12 | Bostick James E | Method for migrating files |
ES2638432T3 (es) * | 2007-01-31 | 2017-10-20 | Nokia Technologies Oy | Gestión de aplicaciones relacionadas con módulos seguros |
US9977721B2 (en) | 2007-12-20 | 2018-05-22 | Netapp, Inc. | Evaluating and predicting computer system performance using kneepoint analysis |
US20090249311A1 (en) * | 2008-03-31 | 2009-10-01 | International Business Machines Corporation | Sharing a native module of compiled code using an abstraction module of interpreted code in a virtual machine environment |
KR101039954B1 (ko) | 2008-09-12 | 2011-06-09 | 주식회사 웰비아닷컴 | 동적실행코드를 이용한 엑티브 웹브라우징 시스템 및 서비스 제공 방법 |
CN101426032B (zh) * | 2008-11-28 | 2011-04-13 | 华为终端有限公司 | 安装Java应用的终端及其安装Java应用的方法 |
JP5682996B2 (ja) | 2010-02-04 | 2015-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法 |
JP2013518733A (ja) * | 2010-04-23 | 2013-05-23 | サムスン ヘビー インダストリーズ カンパニー リミテッド | ロボットシステムの制御方法及びその装置 |
JP5936103B2 (ja) | 2011-10-04 | 2016-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム |
US8863126B2 (en) * | 2011-12-29 | 2014-10-14 | Oracle International Corporation | Java virtual machine embedded in a native mobile application |
CN103955423B (zh) * | 2013-12-25 | 2017-01-11 | 中软信息系统工程有限公司 | 一种国产jvm的测试评估方法 |
US9928087B2 (en) * | 2014-07-09 | 2018-03-27 | International Business Machines Corporation | State-preserving reversible configuration change |
US20160170739A1 (en) * | 2014-12-15 | 2016-06-16 | Dimitar Kapashikov | Alter application behaviour during runtime |
CN105468526B (zh) * | 2015-11-27 | 2018-01-12 | 合肥通用机械研究院 | 家用和类似用途电器软件评估黑盒测试系统 |
CN105446882B (zh) * | 2015-11-27 | 2017-11-07 | 合肥通用机械研究院 | 家用和类似用途电器软件评估黑盒测试系统的测试方法 |
CN107844302B (zh) * | 2017-10-18 | 2020-12-11 | 上海瀚之友信息技术服务有限公司 | 一种基于虚拟机的生产环境模拟系统 |
US11126540B2 (en) | 2019-06-13 | 2021-09-21 | Paypal, Inc. | Big data application lifecycle management |
CN111782300B (zh) * | 2020-07-08 | 2022-02-08 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
US5835777A (en) * | 1996-03-20 | 1998-11-10 | Hewlett-Packard Company | Method of automatically generating a software installation package |
US5752042A (en) * | 1996-06-07 | 1998-05-12 | International Business Machines Corporation | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer |
US6260078B1 (en) * | 1996-07-03 | 2001-07-10 | Sun Microsystems, Inc. | Using a distributed object system to find and download java-based applications |
US6009274A (en) * | 1996-12-13 | 1999-12-28 | 3Com Corporation | Method and apparatus for automatically updating software components on end systems over a network |
US6456974B1 (en) * | 1997-01-06 | 2002-09-24 | Texas Instruments Incorporated | System and method for adding speech recognition capabilities to java |
GB2321981B (en) * | 1997-02-06 | 2002-01-09 | Ibm | Hosted machine code installation |
US5995756A (en) * | 1997-02-14 | 1999-11-30 | Inprise Corporation | System for internet-based delivery of computer applications |
US6014702A (en) * | 1997-06-04 | 2000-01-11 | International Business Machines Corporation | Host information access via distributed programmed objects |
US5983348A (en) * | 1997-09-10 | 1999-11-09 | Trend Micro Incorporated | Computer network malicious code scanner |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6353926B1 (en) * | 1998-07-15 | 2002-03-05 | Microsoft Corporation | Software update notification |
US6357019B1 (en) * | 1999-01-29 | 2002-03-12 | International Business Machines Corporation | Method and apparatus for employing network loadable debugging agents, capable of first failure support on retail versions of software products |
-
1999
- 1999-04-27 US US09/300,041 patent/US6571389B1/en not_active Expired - Fee Related
-
2000
- 2000-04-12 EP EP00303100A patent/EP1049005A3/en not_active Ceased
- 2000-04-13 CN CNB001068032A patent/CN1153138C/zh not_active Expired - Fee Related
- 2000-04-20 KR KR10-2000-0020931A patent/KR100397589B1/ko not_active IP Right Cessation
- 2000-04-20 JP JP2000119829A patent/JP4215373B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1049005A2 (en) | 2000-11-02 |
JP2000353078A (ja) | 2000-12-19 |
KR20010006997A (ko) | 2001-01-26 |
CN1271893A (zh) | 2000-11-01 |
KR100397589B1 (ko) | 2003-09-13 |
EP1049005A3 (en) | 2005-01-26 |
US6571389B1 (en) | 2003-05-27 |
JP4215373B2 (ja) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1153138C (zh) | 提高Java环境的可管理性和可用性的系统和方法 | |
CN110572436B (zh) | 多地跨集群的服务器部署方法及系统 | |
CN1113290C (zh) | 为应用程序透明地加载只读存储器中的资源的系统和方法 | |
US7246351B2 (en) | System and method for deploying and implementing software applications over a distributed network | |
US8448163B2 (en) | Deploying J2EE web applications in an OSGI environment | |
CN100421375C (zh) | 数据共享系统及方法 | |
US9342613B2 (en) | Display and installation of portlets on a client platform | |
EP2021937B1 (en) | Techniques to perform gradual upgrades | |
US7908580B2 (en) | Connecting an integrated development environment with an application instance | |
US20020188941A1 (en) | Efficient installation of software packages | |
CN100388265C (zh) | 管理数据处理系统中的应用文件的方法和装置 | |
US20030037328A1 (en) | Extending installation suites to include topology of suite's run-time environment | |
US8418169B2 (en) | Management method for managing software module and information processor | |
US20030046448A1 (en) | Application programming interface layer for a device | |
US20060075070A1 (en) | Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture | |
CN1363887A (zh) | 用于提供与软件包相关的信息的系统及其支持测试的系统 | |
CN106502717A (zh) | 应用程序运行方法及装置 | |
EP2098964A1 (en) | System and method for conversion of WEB services' applications into component based applications for mobile devices | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
US20110040852A1 (en) | Obtaining and providing cached settings within a development platform | |
CN113553070B (zh) | 一种基于浏览器插件的应用集成方法 | |
Avvenuti et al. | Embedding remote object mobility in Java RMI | |
KR20040041138A (ko) | 분산배포서버에 의한 클라이언트 모듈 배포 및 버전 자동매핑방법 | |
CN118151933A (zh) | 小程序生成方法、装置、电子设备及计算机可读存储介质 | |
CN118466991A (zh) | 节点管理组件升级方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040609 Termination date: 20120413 |