封装程序供远程执行的方法和装置制造方法及图纸

技术编号:2887749 阅读:180 留言:0更新日期:2012-04-11 18:40
在服务器执行的任务接收到为一个客户机上的远程执行封装程序代码的请求,并确定已经存在于客户机上的软件成份。该任务采用该信息形成一组对另一个生成该程序包的任务的指令。将所生成的程序包传送给客户机,程序执行开始。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】
本申请与下面的美国专利申请相关,并将其作为参考美国专利申请No.09/044,904,题目为“链接程序供远程执行的方法和装置”,其代理人文档号为.06502.0074-00000,并且与本申请的申请日相同。本专利技术的实施例一般地涉及分布式计算机系统,特别涉及封装程序供远程执行的方法和装置。在当今社会中,因特网已经成为信息交换的重要媒介。虽然因特网现在在一般公众中非常普及,其最初是开始于一个由政府和学术研究者使用的互连计算机的系统(或网络)。这种网络的一个早期问题源于相互连接的计算机是不相同这样一个事实;这些计算机采用不同的硬件和不同的操作系统。在这样一个多机种网络上的信息交换产生了通信的问题这个问题是通过在共同标准上的协议来解决的,包括诸如传输控制协议/互连网络协议(TCP/IP)和超文本传输协议(HTTP)等的协议。这些协议使各种互连机器能以静态文本或图形文件的形式共享信息。然而,这些协议在因特网的发展中只代表了两个步骤。虽然用户可以在与因特网相连的各种计算机之间交换信息文件,但他们不能交换以常规语言、例如C或C++写成的可执行应用程序,这些可执行应用程序是为特定的处理器(例如,Intel奔腾处理器)和/或特定的操作系统(例如,Windows 95或DOS)而设计的。这个问题因JavaTM程序设计语言及其相关的运行时间系统的出现而得到了解决。Java程序设计语言是一个面向对象的程序设计语言,在例如由Addison-Wesley的Mary Campione和Kathy Walrath在1996年所著的题为“JavaTM导读”的教科书中进行了描述1。重要地是,Java程序设计语言是一个与平台无关的解释语言-也就是说,其实用性并不限于一个特定的计算机系统。使用Java程序设计语言,软件开发者以通常被称为Java源代码的形式写程序。当开发者完成程序的编写时,他则以一个Java编译器将其编译成被称为字节代码的中间形式。Java源代码和字节代码都是与平台无关的。然后,可以将编译过的字节代码在任何采用了一个包括虚拟机(VM)的可兼容运行时间系统的计算机系统上执行,例如包括Java虚拟机(JVM)和Java类库的Java运行环境(JRE)。JVM在由Addison Wesley的Tim Lindholm和FrankYellin在1996年所著的题为“Java虚拟机规程”的教科书中进行了描述。JavaVM起到作为字节代码和所使用的特定计算机系统之间的解释器的作用。通过使用与平台无关的字节代码和Java VM,可以在任何计算机系统上执行以Java程序设计语言写出的程序。这在将不同的计算机系统进行互连的网络、例如因特网中是特别有用的。在能够执行一个Java程序之前,必须将某些必不可少的类(class)装载进执行该程序的计算机的存储器中。这些类可以从计算机的磁盘装载,但更常用的是通过网络从一个服务器传输。习惯上,将这些类在程序执行期间尽可能晚地装载;换句话说,它们是根据需要在程序执行期间首次被引用时才装载的。当这种装载出现时,一旦需要一个类的任何一部分,通常装载整个类。根据一种常规方法,当机器上的用户发出执行驻留在一个远程服务器上的程序的请求时,将包含main方法的类文件通过网络从该服务器装载到该客户机这个类文件包含程序字节代码。虚拟机然后通过调用程序的main方法开始执行。执行一直持续进行到程序引用一个成份,例如,被称为“F”的成份。响应于该引用,将包含成份F的整个类从服务器上的类文件通过网络传输给客户机。所引用的成份F被使用,执行然后继续进行,直到引用另一个成份,例如被称为“G”的成份。响应于该引用,将包含成份G的整个类从服务器上的类文件通过网络传输给客户机。执行则继续进行到结束。一旦执行已经完成,在客户机和服务器之间通过网络的一系列连接最终可以被终止。以上说明表明常规方法有两个显著的缺陷。首先,在程序执行期间,它需要在客户机和服务器之间的重复连接。这样一种连接所必须的长周期对于诸如移动计算的情况是成问题的。其次,一旦引用一个成份,例如成份F,该方法需要从服务器加载包含所引用成份的整个类。然而,如果在类内只有很少的成份最终被使用,则从服务器向客户机传输未用成份所需的带宽就被浪费了。这在涉及客户机和服务器之间的有限带宽、即慢的连接速度或高等待时间的连接的情况中是成问题的。因此,需要一种通过只将一整个程序的所需成份封装在一起并在执行开始之前将其传送给客户机来减轻这些问题的系统。已经采用了用于远程执行的预封装软件,该软件使用其他需要机器兼容性的编译计算机语言,例如Cobol、C和Fortran。然而,还没有采用使用一种面向对象的语言、例如Java程序设计语言的软件,其中Java程序设计语言提供了很多另外的好处,例如从其父类提取所需的成份。依据本专利技术,一种为分布式系统中的执行封装一个程序成份的方法包括如下步骤接收为一个客户机上的远程执行封装程序的请求,识别在客户机可得到的程序中引用的任何类,以及向一个链接编辑器提供一个包括至少一个对于所识别类的引用的指令。依据本专利技术,一种计算机可读介质包含用于为分布式系统中的执行封装一个程序成份的指令,该封装通过下列步骤完成接收为一个客户机上的远程执行封装程序的请求,识别在客户机可得到的程序中引用的任何类,以及向一个链接编辑器提供一个包括至少一个对于所识别类的引用的指令。依据本专利技术,一种为分布式系统中的执行封装一个程序成份的设备,包括如下装置用于接收为一个客户机上的远程执行封装程序的请求的装置,用于识别在客户机可得到的程序中引用的任何类的装置,以及用于向一个链接编辑器提供一个包括至少一个对于所识别类的引用的指令的装置。依据本专利技术,一个系统包括客户机、服务器和网络。客户机具有处理器、存储器和包括虚拟机任务的运行环境。服务器具有处理器、存储器、接口任务、链接编辑器任务和成份文件。网络将客户机和服务器进行互连。在本说明书中所包含的并构成说明书的一部分的附图显示了本专利技术的一个实施例,并与说明书一起用于解释本专利技术的优点和原理。在附图中,附图说明图1是一个典型的客户机-服务器结构的方框图,用于说明使用包括一个虚拟机的运行环境的远程程序执行;图2是显示一个典型的可执行面向对象程序及其引用的成份和它们的依赖性的方框图;图3是说明与本专利技术一致的链接和执行的定时的时线;图4是显示典型的与服务器和客户机有关的接口和链接编辑器任务的方框图;图5是由与本专利技术一致的封装处理中的接口任务执行的步骤的流程图;图6是在本专利技术的一个实施例中由封装输出文件中的链接编辑器执行的步骤的流程图;以及图7是在本专利技术的一个实施例中为了增加必要的方法而执行的步骤的流程图;以及图8是在本专利技术的一个实施例中为了执行程序而由客户机执行的步骤的流程图。下面将参考附图详细说明本专利技术的实施形式。其中,在整个附图和下面的说明中,相同的标号代表相同或相似的部分。A.概述依据本专利技术的系统和方法工作在一个分布式计算机系统中,该系统典型地具有多个客户机和一个或多个服务器。例如,试图执行一个程序的客户机向服务器请求将运行程序所需的软件封装在一起。在形成该请求时,客户机可以指定应该包括在该程序包内的特定成份。在服务器执行的任务(“接口任务”)接收到这个请本文档来自技高网...

【技术保护点】
一种用于在分布式系统中执行程序的方法,包括如下步骤: 接收为一个客户机上的远程执行封装程序的请求; 识别在客户机可得到的程序中引用的任何类;以及 向一个链接编辑器提供对于所识别类的引用。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:皮特W马德尼里查德塔克尼迪姆福勒斯克哈尼格叶斯卡
申请(专利权)人:太阳微系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1