用于处理小服务器的装置和方法

文档序号:6412142阅读:1043来源:国知局
专利名称:用于处理小服务器的装置和方法
技术领域
本发明涉及客户-服务器计算机环境中的信息交换。特别是,涉及响应服务器计算机信息请求的改进技术。
本申请是1996年11月25日提出的题为“Method and System forFacilitating Servlets”的美国专利申请U.S.08/756,325的部分继续申请,而该08/756,325号申请又是1996年5月30日提出的题为“Method and System forFacilitating Servlets”的美国专利申请U.S.08/657,712的继续申请。
客户-服务器计算机网络是公知的。最突出的客户-服务器计算机网络的例子是计算机环球网(World Wide Web)。在客户-服务器计算机网络中,服务器计算机接收来自客户计算机的信息请求。运行在服务器计算机上的网服务器软件一般从存贮在永久存贮设备上的文件中检索请求的信息,并通过网络将该文件传送至请求该信息的客户计算机。网服务器软件一般不用面向对象的程序语言编写。因此,不易对其进行扩展以便提供新功能。由于现在软件市场的动态特性,产品缺乏灵活性和可扩展性会严重阻碍产品销路。
目前的网服务器软件能响应客户计算机的请求而动态地生成文件。一般,网服务器接收该请求然后创建(fork)公用网关接口(CGI)进程以动态生成文件。一旦生成文件,网服务器软件就将文件送回客户计算机。遗憾的是,每次需产生动态信息时都创建一个进程,计算量很大。
因此,迫切希望提供一种网服务器,它能响应客户计算机请求而动态产生信息,但在产生动态信息的同时无需进程启动方面的开销。而且,迫切希望提供一种灵活且可扩展的面向对象的网服务器环境。
本发明包括一种用于操作客户-服务器网络的本地服务器计算机的方法和装置。本发明包括接收来自客户-服务器网络中客户计算机请求的技术。确定请求是否需要由客户-服务器网络的小服务器(Servlet)对象来动态生成信息。若是如此,可从客户-服务器网络的一远程服务器计算机上加载对应于请求的特定小服务器对象。然后执行该特定小服务器对象以获得对应于请求的动态生成信息。
本发明的小服务器对象提供一种灵活且可扩展的面向对象的网服务器环境。本发明的客户-服务器网络具有小服务器对象。小服务器对象运行在连续循环中直至被调用。因此,不存在与执行小服务器对象相关的启动额外开销。通过遵守一公共应用程序接口,小服务器对象可在任何服务器环境中运行。本发明的特点允许不信任的(untrusted)小服务器对象在安全区中执行,将动态生成信息从安全区送至其余服务器环境中。
为了更好地理解本发明的特点和目的,下面结合附图详细描述,其中

图1说明本发明实施例的客户-服务器计算机网络。
图2简要说明网服务器与本发明的小服务器之间的交互。
图3简要说明网服务器与从外部服务器加载的小服务器之间的交互。
图4说明根据本发明的一个实施例的与一小服务器处理例程有关的处理步骤。
图5说明根据本发明的一个实施例的与一小服务器处理例程有关的处理步骤。
几幅图中对应的部分标以相同的标号。
图1示出可按本发明运行的客户-服务器计算机网络20,网络20包括至少一个客户计算机22和至少一个服务器计算机24。客户计算机22和服务器计算机24通过传送通道26相连,传送通道26可是任何有线或无线传送通道。
客户计算机22是标准计算机,包括与存储器(主存储器和/或辅助存储器)32相连的中央处理单元(CPU)。存储器32存储有多个计算机程序,包括“浏览器”34。如本领域所公知的,浏览器用于与远程服务器计算机24通信,以及显示从这些计算机接收的信息。客户计算机22通过标准网络连接设备36建立网络通信。
服务器计算机24包括标准服务器计算机部件,包括网络连接设备40、CPU42、以及存储器(主存储器和/或辅助存储器)44。存储器44存贮有一组计算机程序以实现与本发明有关的处理。存储器44存贮有网服务器46。网服务器46可是本领域公知的类型,将其改为含有图1所示的附加程序。即,在本发明的实施例中,将标准网服务器46改为含有服务器接收器线程48、连接队列50、池管理器52、线程池54、小服务器56、小服务器映射58、安全管理器60、以及边界小服务器62。
图2简要说明按本发明实施例构造的服务器计算机24A。该图示出与一组小服务器56A-56N交互的网服务器46。具体地,网服务器46通过应用程序接口(API)与小服务器交互。如图1所示,网服务器46和小服务器56存贮在存储器44中。网服务器46可是经修改含有这里所述的功能的标准网服务器软件。每一小服务器56是一段用于动态生成信息的软件代码。每一小服务器56是一等待被调用的实例化的(instantiated)软件对象。一旦被调用,它就动态生成信息。注意,这种动态生成信息技术与从永久存贮设备取静态信息的一般处理不同。本发明的技术在动态生成信息的意义上类似于CGI脚本(Script)。但是,不像CGI脚本,本发明的小服务器对象在服务器启动时被实例化。因此,可认为小服务器运行在连续循环中等待执行。注意到,实例化后不存在调用小服务器时的计算启动花销。
图3概括示出本发明的附加特点。图3示出本地服务器计算器24A,它通过传送通道26接收来自客户计算机(未示出)的请求。网服务器46确定需要来自小服务器对象的动态生成信息。这种情况下,小服务器对象最初不在本地服务器计算机24A上,因此它由本地服务器计算机24A利用通信链路26从远程服务器计算机24B加载。在图3所示的例子中,小服务器56P从远程服务器计算机24B传送至本地服务器计算机24A。
图3示出本发明的另一特点。具体地说,它说明所加载的小服务器56P在本地服务器计算机24A安全区57中执行。执行后,结果送至本地服务器计算器24A其余部分中的边界小服务器60。这种安全特性允许安全执行不信任的小服务器。
上述说明概括描述了本发明的特点和优点。现在更详细地描述这些特点和优点。图4的左侧示出与本发明实施例有关的处理步骤。图4的右侧示出可用于执行这些操作的程序部分。
图4所示第一处理步骤确定是否已接收到一新的请求(步骤70)。如上所述,请求是从客户计算机22至服务器计算机24的信息请求。客户计算机22从服务器计算机24请求信息的操作是公知的。一般用统一资源定位器(Uniform Resource Locator)或URL完成。URL指定一个计算机和一个文件。典型的URL是http//SU//123。此URL是利用超文本传输协议“HTTP”从State University计算机“SU”检索文件“123”的指令。
如图4所示,服务器接收器线程48用于处理每一新请求。最好,本发明实现为具有服务器接收器线程的面向连接的网服务器,该服务器接收器线程在接收请求的同时连续循环。一旦收到请求,它将请求送至连接队列(步骤72)。如图1所示,连接队列50形成在本地服务器计算机24的存储器中。
如果未收到新请求,则进行检查以确定队列是否为空(步骤71)。如果队列不为空或已收到新请求,处理进行至步骤74。步骤74需要线程池管理操作,它由池管理器52执行。图1示出一个线程池54。线程池54是一个用于请求处理的线程的池。各线程提取并处理来自连接队列50的请求。运行池管理器52以确保连接队列50中的每一请求有一线程。池管理器52建立附加线程以处理连接队列50中的新请求。如果达到最大线程数,池管理器52阻止新的请求进入连接队列50。这种情况下,服务器计算机接收不到新请求。另一方面,如果一个线程等待来自连接队列50的请求的时间大于预定的时间段,则池管理器60将删除它。最好,用删除的处理线程的缓冲空间创建新的处理线程。换句话说,最好通过对一线程采用特定缓冲存储空间来实现本发明。一个线程被删除时,清除缓冲存储空间,将其指定给新的线程。通过以此方式重新使用所分配的存储器,本发明的此实施例将系统所用存储器数量减至最小,特别是与根据每一请求分配和解除分配存储器的系统相比。
在执行线程池管理操作后(步骤74),一线程从连接队列检索一请求(步骤76)。然后线程将请求映射为一小服务器名(步骤78)。小服务器可由URL指定,在此情况下映射处理是直接的。另一方面,可能需要一些转换过程以便鉴别哪个小服务器可服务此请求。可以下列方式之一进行映射操作。服务器管理器可指定某些类型的客户请求始终映射至特定小服务器。例如,一个对特定数据库讲话的客户请求。服务器管理器可指定部分客户请求为所述小服务器的名字,如在被管理的小服务器目录中看到的。在许多站点,在共同为该站点客户分担处理任务的服务器之间共用此目录。某些服务器可能根据其管理配置自动调用小服务器以筛选其它小服务器的输出。例如,特定类型的小服务器输出可触发其它小服务器进行的后处理,也许是进行格式转换。适当授权的客户可指定要调用的小服务器,而无需管理干预。
安全操作也可由线程执行(步骤80)。安全管理器60可用于鉴别小服务器的信任(trusted)与不信任(untrusted)的类型。通过与安全管理器60有关的一组规则可确定信任一小服务器。例如,安全管理器60可决定信任所有本地小服务器而不信任所有加载的网络小服务器。然后在安全区57中执行不信任的小服务器,如图3所示。安全管理器60还可用于确定小服务器是否被授权执行预定的风险操作。此类型的安全信息可存贮在线程中。
按照本发明的JAVA小服务器强大的安全策略支持。这是因为所有JAVA环境提供安全管理器,它可用于控制是否允许如网络或文件存取之类的操作。在缺省状态下,所有的小服务器是不信任的,且不允许执行如存取网络服务或本地文件之类的操作。但是,服务器“内建”的小服务器,或被数字式地签名为已被放入JAVA Archive(存档)文件的小服务器,安全管理器可信任并给予更多许可。可执行代码上的数字式签名(signature)表示对该代码签名的机构在某种程度上“为它担保”。这种签名不能支持由其自身承担责任,但它们确实表示了使用此代码可给予的担保程度。例如,在一个公司的Intranet中允许对网络服务进行一般访问的所有的代码都可能需要来自MIS机构的特定签名。此签名可能只用在高度信任其不会违反特定安全策略的代码上。在其它语言如C或脚本语言中的扩展API,即使它们允许数字式签名用于其代码中,也不能支持如此精细的存取控制。
在执行安全操作后(步骤80),调度线程(图5的步骤82)。调度操作需调用一小服务器使之产生请求的动态信息。调度操作为两种类型之一。判断以确定此小服务器是否为本地的(步骤84)。如果此小服务器是本地的,则执行该本地小服务器(步骤86)。由此生成动态信息,然后由网服务器46以标准方式处理该动态信息。网服务器46一般用公知技术将此信息送回客户计算机。如下所述,通过一应用程序接口完成一小服务器和网服务器46之间的信息交换。
如果小服务器不是本地的,则将其从远程服务器24B加载(步骤88)。然后确定所加载的小服务器是否安全(步骤90)。回忆前面曾说过,安全操作步骤产生为小服务器获取安全参数方面信息的线程。如果不存在与加载的小服务器有关的安全问题,则将其在本地执行(执行步骤92)。另一方面,如果发现安全问题,则在安全区中执行此小服务器(步骤94)。随后,将动态生成的结果送至非安全区(步骤96)。一个边界小服务器可用于此目的。此边界小服务器可通过使用残桩(Stub)与子合同(Subcontract)或通过本领域公知的其它“防火墙”技术而实现。执行所述小服务器后,处理返回至图4的步骤70。
现已充分说明本发明的操作。下面具体说明用于本发明的小服务器对象和结合小服务器对象使用的应用程序接口的实施例。如上所述,小服务器对象是用于动态生成信息的软件对象。它们是位于循环中等待调用的实例化的对象。最好以JAVATM编程语言将其写成目标字节代码。JAVATM编程语言用于实现客户计算机上的“小应用程序(applet)”是广泛公知的。“小应用程序”是可执行的JAVA目标字节代码,用于在客户计算机上产生图形显示。本发明的小服务器在服务器侧执行且没有图形内容。
一般地,一小服务器在服务器启动时实例化。或者,在预定的一组条件下或由客户调用实例化此小服务器。通过使用其URL(如,http//host/<servletURL>)可实例化并执行此小服务器。http协议支持参数的传递,所以,可传递参数给小服务器(如,http//host/<servlet URL>?<arguments>)。特性对象(propenies object)是含有一组“name(名字)value(值)”对的JAVA编程语言特性类。系统管理器可通过特性对象将数考传递给实例化的HttpServlet对象。以此方式,系统管理器可为特定站点的特定服务器“定制”一HttpServlet。例如,系统管理器可将站点特有的信息传递给Httpservlet对象,该信息是关于一存储文档(这些文档将被客户进程通过网络请求)的数据库的网络位置,或关于处理服务器管理器所用的系统缓冲器中现有存储器的数量。
一旦实例化,小服务器将循环直至服务器关闭或服务器在此小服务器上调用删除方法。由于此小服务器等待请求作用于其上时以连续循环方式工作,服务器计算机避免了在对所述小服务器的请求之间创建与删除小服务器的额外开销。而且,在请求之间保持小服务器有效,允许小服务器相互间传送数据并通信。例如,小服务器可在用户的多次使用之间保持有关用户的数据。该数据可在不同的小服务器间共用,以便定制用户在其中工作的工作环境。如果根据每一请求建立并删除小服务器,一个小服务器理解其运行的环境并利用该知识提供改进的处理能力将是非常困难的,如果不是不可能的话。当在时间、存储器等方面达到某个资源极限时,服务器计算机可在小服务器上调用删除方法。
小服务器应用程序接口(API)为小服务器和信息服务器(如网服务器)的接口建立了一个标准。小服务器API含有初始化小服务器、处理请求、获取小服务器信息以及删除小服务器的方法。此小服务器API允许独立于平台的小服务器。一个小服务器接口的例子如下
Servlet interfaceinterface HttpServlet{Initialize(ServletContext,ServerProperties);Service(HttpRequest,HttpResponse);Destroy();}服务器计算机传递实现“HttpRequest”的对象,而小服务器返回一个“HttpResponse”对象。“ServletContext”接口用作与服务器环境交换信息。“ServletContext”对象的某些方法是“GetServer()”和“GetServlets()”。“GetServer”返回一指向母服务器的指针,实例化的HttpServlet运行于该母服务器中。使用该指针,HttpServlet对象能找到关于其母服务器的信息。“GetServlet”方法返回指向在母服务器上运行的小服务器的指针。“ServerProperties”接口用于交换有关由服务器管理器建立的特定服务器特性的信息。
小服务器支持接收请求和产生响应的常用编程模型。下面是定义称为“service”的单个方法的简单小服务器<pre listing-type="program-listing"><![CDATA[import java.servlet.*;public class MyServlet extends GenericServlet{ public void service( ServletRequest request, ServletResponse response )throws ServletException,IOException {   … } …}]]></pre>该服务方法设有Request(请求)和Response(响应)参数。这些参数封装客户送来的数据,从而允许小服务器报告诸如出错等的状态信息。小服务器通常通过输入流检索其大部分参数,且用输出流传送其响应ServletInputStream in=request.getInputStream();ServletOutputStream out=response.getOutputStream();这些输入与输出流可与任何适当格式的数据一起使用。例如,使用对象串行化、HTML、或任何数量的图像格式,小应用程序(applet)和小服务器可交换数据。
由于小服务器是JAVA对象,因此具有实例特有的数据。这就是说,实际上小服务器是在服务器内运行的独立应用程序,无需附加的类(某些其他的服务器扩展API要求附加的类)。初始化时小服务器可以得到某些小服务器特有的配置数据。这样允许同一小服务器类的不同实例以不同数据进行初始化,象不同命名的小服务器那样进行管理。初始化时提供的数据包括一个区域,每个实例将其永久的实例特有的数据保存在此区域中。
在上述简单小服务器例子的基础上构成的下列程序代码是一个小服务器的例子,该小服务器在调用时用于传送Hypertext Markup Language(超文本标记语言,HTML)文本<pre listing-type="program-listing"><![CDATA[public class SimpleServlet extends GenericServlet{public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException { res.setContentType(″text/html″); PrintWriter out=new PrintWriter(res.getOutputStream()); out.println(″<HEAD><TITLE>SimpleServlet Output</TITLE></HEAD><BODY>″); out.println(″<h1>SimpleServlet Output</h1>″); out.println(″<P>This is output from SimpleServlet.″); out.println(″<BODY>″); out.flush();}public String getServletInfo(){ return″A simple servlet″; }}]]></pre>下列程序代码是用finger协议查询有关指定主机上用户信息的一个小服务器的例子。查询字符串参数&lt;tt&gt;user&lt;/tt&gt;,&lt;tt&gt;hosts&lt;/tt&gt;和&lt;tt&gt;verbose&lt;/tt&gt;可用于指定待查询的用户和主机。参数&lt;tt&gt;user&lt;/tt&gt;是用户名,&lt;tt&gt;hosts&lt;/tt&gt;是逗号分隔的待查询的主机的列,而&lt;tt&gt;verbose&lt;/tt&gt;,如果指定,将产生冗长输出。例如,&lt;pre&gt;http/goa/finger.html?user=dac&amp;hosts=eno,doppio&amp;verbose=yes&lt;/pre&gt;将请求两主机“eno”和“doppio”上有关用户“dac”的所有信息。
<pre listing-type="program-listing"><![CDATA[publicclass FingerServlet extends GenericServlet{/**Port number for finger daemon.*/static final int FINGER_PORT=79;/***Handles a single finget request from the client.*/public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException{ String user=req.getParameter(″user″); String hosts=req.getParameter(″hosts″); String verbose=req.getParameter(″verbose″); res.setContentType(″text/html″);PrintStream out=new PrmtStream(res.getOutputStream());out.println(″<html>″);out.println(″<head><title>Finger Servlet</title></head>″);out.println(″<body>″);out.println(″<h2>Finger results</h2>″);outprintln(″<pre>″);if(hosts==null) {finger(out,user,null,″yes″.equalsIgnoreCase(verbose));} else { StringTokenizer st=new StringTokenizer(hosts,″,″); while(st.hasMoreTokens()){ String host=st.nextToken(); out.println(″[″+host+″]″); try{ finger(out,user,host,″yes″.equalsIgnoreCase(verbose)); }catch(IOException e){ out.println(e); } out.println();} } out.println(″</pre>″); out.println(″</body></html>″); } /**Sends finger output for a user and host to the specified output*stream.*/void finger(OutputStream out,String user,String host,boolean verbose) throws IOException { //open connection to finger daemon Socket s; if(host==null){s=new Socket(InetAddress.getLocalHost(),FINGER_PORT); } else { s=new Socket(host,FINGER_PORT); } //send finger command PrintStream ps=new PrintStream(s.getOutputStream()); if(verbose){ ps.print(″/W″); } if(user!=null){ ps.print(user); } ps.print(″\r\n″); ps.flush(); //copy results to output stream InputStream in=s.getInputStream(); byte[]buf=new byte[512]; int len; while((len=in.read(buf,O,buf.length))!=-1){ out.write(buf,O,len); } s.close(); }}]]></pre>
本领域的技术人员可以懂得,根据HTTP协议使用的小服务器可支持任何HTTP方法,包括GET、POST、HEAD等等。它们可将请求重定向到其它地址,并传送HTTP特有的出错信息。它们能存取通过标准HTML形式传递的参数,包括待执行的HTTP方法和识别请求目的地的URI。
如上所示,小服务器的最大的工作特性之一是它们不需为每一请求创建一个新进程。在大多数情况下,许多小服务器作为服务器并列运行在同一进程中。在这种环境中按照HTTP使用时,小服务器与CGI方法和Fast-CGI(快速CGI)方法两者相比具有压倒的优点。这是因为小服务器在线程前后文(thread context)切换期间具有小的计算量方面的花销。由于大多数情况下,小服务器每次初始化时能处理许多客户请求,所以初始化方面的花销分散到许多方法。对该服务的所有客户请求有机会共享数据与通信资源,而更多得益于系统高速缓存。
本领域的技术人员可以知道,本发明的小服务器可用于动态扩展JAVA使能的(Java-enabled)服务器。小服务器为使用请求-响应范例建立的服务提供总框架。小服务器能提供安全的基于网的数据访问,该数据用HTML网页表示,且它们可用于使用动态网页产生技术来交互地查看或修改该数据。
本发明的小服务器可用于为客户库提供定制的多用户服务。且小服务器很灵活,足以支持标准化的服务和代理服务,前者如通过HTTP(或HTTPS)协议提供静态网页。由于它们用于动态可扩展性,因而可以以插入(plug-in)形式使用,支持一些实用程序如搜索引擎(search engine),和半定制应用程序如基于网的订单或商品目录系统。
虽然小服务器最好以JAVA编写,但小服务器客户可以任何语言编写。当小服务器用在分布式应用系统的中层时,它们又可以是其它服务的客户,可以以任何语言编写。
本领域的技术人员可以知道小服务器可以几种模式使用。基本模式是位于请求/响应协议的核心。另外,小服务器可专门用于支持如HTTP等协议。在基于HTTP的应用程序中,小服务器是可移植的,完整的,而且可以更有效地取代基于CGI的扩展。而且,在HTTP应用程序中,小服务器可用于HTML服务器侧,包括动态产生部分网文件。
为了说明,上述描述使用特定的术语以便全面理解本发明。但是,对本领域的技术人员而言,实现本发明不需要具体的细节。在其它例子中,公知的电路与设备以方框图形式表示,以免不必要地偏离基本发明。所以,上述本发明特定实施例的描述是为了说明和描述,而不是为了穷举或将本发明限制于所披露的精确形式,很明显,根据上述思想可作出多种修改与变形。选择并描述实施例是为了更好地说明本发明的原理及其实际应用,从而使本领域的其他技术人员更好地利用本发明和各种适用于特定目的的各种修改的实施例。本发明的范围由下述权利要求及其等同物界定。
权利要求
1.一种由本地服务器计算机在程序控制下执行的方法,所述本地服务器计算机包括存贮所述程序的存储器,所述本地服务器计算机构成客户-服务器网络的一部分,所述方法包括以下步骤接收来自所述客户-服务器网络的客户计算机的请求;确定所述请求需要来自所述客户-服务器网络的一个小服务器对象的动态生成信息;从所述客户-服务器网络的远程服务器计算机加载对应所述请求的一个指定的小服务器对象;以及执行所述指定的小服务器对象,以获得对应所述请求的动态生成信息。
2.如权利要求1所述的方法,还包括将来自所述指定的小服务器对象的动态生成信息传送到运行在所述本地服务器计算机上的网服务器的步骤,利用应用程序接口方便了所述传送步骤。
3.如权利要求2所述的方法,其特征在于,所述应用程序接口指定用于执行至少下述操作之一的技术初始化一小服务器对象,执行一小服务器对象,以及删除一小服务器对象。
4.如权利要求2所述的方法,其特征在于,所述特定小服务器对象和所述应用程序接口指定为JAVA编程语言编写的目标字节代码。
5.如权利要求2所述的方法,还包括将所述动态生成信息从所述网服务器传送到所述客户计算机的步骤。
6.如权利要求1所述的方法,其特征在于,所述执行步骤包括以下步骤在所述本地服务器计算机的安全区中执行所述指定的小服务器;且将所述动态生成信息从所述安全区传送到所述本地服务器计算机的非安全区。
7.如权利要求1所述的方法,其特征在于,所述本地服务器计算机存贮多个小服务器对象,每个所述小服务器对象连续运行直至响应于来自客户计算机的指定的请求而被调用。
8.如权利要求7所述的方法,其特征在于,所述多个小服务器对象相互传送数据。
9.如权利要求7所述的方法,其特征在于,所述多个小服务器对象的所述选择的服务器对象在所述本地服务器计算机启动时被实例化。
10.如权利要求7所述的方法,其特征在于,所述多个小服务器对象的所选择的小服务器对象响应来自所述客户计算机的要求而被实例化。
11.如权利要求7所述的方法,其特征在于,所述多个小服务器对象的所选择的小服务器对象响应一个激活的小服务器URL而被实例化。
12.如权利要求11所述的方法,其特征在于,所述小服务器URL包括参数。
13.如权利要求1所述的方法,其特征在于,所述接收步骤包括在一连接队列中存贮所述请求的步骤。
14.如权利要求13所述的方法,其特征在于,所述确定步骤包括从处理线程池中选择一处理线程以执行所述确定步骤。
15.如权利要求14所述的方法还包括通过有选择地创建新处理线程并删除旧处理线程来操作所述处理线程池的步骤。
16.如权利要求15所述的方法,其特征在于,所述操作步骤包括将所述旧处理线程的缓冲存储空间重用于所述新处理线程的步骤。
17.一种计算机可读存储器,它能指导客户-服务器计算机网络的服务器计算机以指定的方式工作,它包括第一组指令,接收来自所述客户-服务器网络的客户计算机的请求;第二组指令,确定所述请求需要来自所述客户-服务器网络的一小服务器对象的动态生成信息;第三组指令,从所述客户-服务器网络的远程服务器计算机加载对应所述请求的一指定的小服务器对象;以及第四组指令,执行所述指定的小服务器对象以便获得对应所述请求的动态生成信息。
18.如权利要求17所述的装置,还包括第五组指令,它通过应用程序接口,将动态生成信息从所述指定的小服务器对象传送到运行在所述本地服务器计算机上的网服务器。
19.如权利要求18所述的装置,还包括第六组指令,它将所述动态生成信息从所述网服务器传送到所述客户计算机。
20.如权利要求17所述的装置,还包括第七组指令,它将多个小服务器对象存贮在所述服务器计算机上,每个所述小服务器对象连续运行直至响应来自客户计算机的指定的请求而被调用。
21.如权利要求20所述的装置,其特征在于,所述第七组指令包括在所述多个小服务器对象之间传送数据的指令。
22.一种计算机可读存储器,它能指导客户-服务器计算机网络的服务器计算机以指定的方式工作,它包括第一组指令,接收来自所述客户-服务器计算机网络的客户计算机的请求;第二组指令,确定所述请求需要来自所述服务器计算机的一小服务器对象的动态生成信息;第三组指令,执行所述指定的小服务器对象以获得对应所述请求的动态生成信息;以及第四组指令,将所述动态生成信息传送到所述客户计算机。
23.如权利要求22所述的装置,其特征在于,所述第二组指令包括解释对应于所述请求的一小服务器URL的指令。
24.如权利要求22所述的装置,其特征在于,所述第二组指令包括解释具有参数的一小服务器URL的指令。
25.如权利要求22所述的装置,还包括第五组指令,它将多个小服务器对象存贮在所述服务器计算机上,每一所述小服务器对象连续运行直至响应来自客户计算机的指定的请求而被调用。
26.如权利要求20所述的装置,其特征在于,所述第五组指令包括在所述多个小服务器对象之间传送数据的指令。
27.一种客户-服务器计算机网络,包括一个产生请求的客户计算机;和一个服务器计算机,用于确定所述请求需要来自所述服务器计算机的一小服务器对象的动态生成信息,执行所述指定的小服务器对象以获得对应所述请求的动态生成信息,以及将所述动态生成信息传送到所述客户计算机。
28.如权利要求27所述的装置,还包括远程服务器计算机,它存贮一组可传送到所述服务器计算机的小服务器对象。
29.如权利要求27所述的装置,其特征在于,所述服务器计算机存贮多个小服务器对象,每一所述小服务器对象连续运行直至响应来自所述客户计算机的指定的请求而被调用。
30.如权利要求29所述的装置,其特征在于,所述多个小服务器对象在其之间传送数据。
全文摘要
一种用于操作客户—服务器网络的本地服务器计算机的方法和装置,包括接收来自客户—服务器网络客户计算机的请求的技术。判断请求是否需要来自客户—服务器网络的一小服务器对象的动态生成信息。如果需要,可从客户—服务器网络的远程服务器计算机加载对应于请求的特定小服务器对象。然后执行指定的小服务器对象以获得对应于请求的动态生成信息。
文档编号G06F9/445GK1191350SQ9711358
公开日1998年8月26日 申请日期1997年5月30日 优先权日1996年5月30日
发明者詹姆斯·A·戈斯林, 帕万尼·迪旺吉, 戴维·W·康奈利 申请人:太阳微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1