服务器侧的异步格式管理的制作方法

文档序号:6414419阅读:98来源:国知局
专利名称:服务器侧的异步格式管理的制作方法
技术领域
本发明涉及远程/移动式计算,更具体来说,涉及利用Web浏览器/Web服务器的通信模型进行的远程/移动式计算。
近来对“信息高速公路”的宣传和重视,提高了人们对因特网作为一种大众传媒的认同。因特网作为在多个网络间通讯和交互的一种切实可行的传媒工具的这种广泛认同,也建立了在因特网的标准化的计算机网络间交互作用的协议基础上建立的广大用户基地。
因特网是客户机-服务器关系的一个范例,其中,因特网客户机(浏览器)与因特网服务器通信。为了向更多用户提供接入因特网的机会,客户机与服务器所用的通信协议和语言已经被标准化。这些协议包括,超文本传输协议(HTTP)-一种在客户机与服务器之间使用的通信协议,传输控制协议/互联网协议(TCP/IP)-其中的TCP部分是用于计算机或应用程序之间通信的传输专用协议。被标准化了的还有一种客户机与服务器之间的通信语言-超级文本标记语言(HTML)。
在环球网(World Wide Web)的客户机/服务器应用程序的上下文中,客户机可以是作为用户界面的Web浏览器。Web浏览器能向适当的Web服务器发送用户请求,并将从Web服务器返回的HTML数据进行格式化并显示出来。Web浏览器还能对HTML数据进行评估,判断HTML数据中是否嵌入的超链接语句。HTML数据中超链接语句要求随后将由浏览器启动的浏览器请求。Web服务器充当客户机的服务器,它处理Web浏览器的请求,将所请求的结果以HTTP数据流的HTML数据部分返回给浏览器。


图1中表示了一种基于因特网的系统的基本通信结构。图1中,Web浏览器10与Web服务器20在通信链路15上通信。这种通信链路一般是局域网连接、广域网连接、通过电话线的连接或者是这三种方式的组合。Web浏览器10与Web服务器20用TCP/IP进行通信。大多数因特网的通信中,Web浏览器10与Web服务器20的通信使用普通的通信协议HTTP,该协议通过Web浏览器10与Web服务器之间的TCP/IP链接在Web浏览器10与Web服务器之间传输。在Web浏览器10与Web服务器20之间实际被传递的数据是如上所述的HTTP数据对象(例如HTML数据)。Web服务器20可以是个代理,作用是接收来自许多Web浏览器的Web浏览器通讯,选择路由将它们送到适当的服务器。
Web浏览器/Web服务器以及它们的公用信息与传输协议HTML和HTTP的流行,使Web技术作为网络访问获取信息的通用界面迅速为人们接受。此外,因为在Web浏览器与Web服务器之间通信所用的协议和语言是标准化了的,所以,用户无论用Netscape NavigatorTM、NCSA MosaicTM、WebExplorerTM还是任何其它Web浏览器来访问网络信息,通信协议和语言都是一样的。使用Web浏览器与因特网相连接的广大的现成用户基础,以及用HTTP定义的公用网关接口(CGI-Common Gateway Interface)书写Web应用服务器的容易,使Web技术对于各类基于格式的应用(forms-based applications)具有很大吸引力。
在因特网得到越来越多认同和欢迎的同时,移动计算也越来越流行。膝上型电脑、笔记本电脑、个人数字助手/个人通讯助手(PDA/PCA-Personal Digital/Communication Assistants)等便携式设备的使用,导致对无线通讯需求的增加。然而,如果在Web上下文中使用无线广域网、蜂窝式通信和分组式无线电通信,它们都有一些共同的限制。通信的单位字节费用高、应答速度慢、带宽低以及可靠性差等缺点,阻碍无线技术在无状态的(stateless)环球网通信协议中的应用。而且,因为Web通信协议是无状态的,所以,假若通信不是自包含式的,那么通过无线连接方式传递的请求通信的次数和每次请求的数据量就会比实际需要的大。
此外,Web浏览的内在机制和协议是以传统网络模型作为蓝本开发出来的。开发这些机制时基于了这样的默认假设,即所涉及的计算机是通过带宽高、费用低、性能可靠的链路相互连接的。然而与有线的局域网或广域网环境截然不同的是,移动式链路一般来说带宽低、费用高、性能不可靠。有些移动式连接方式是比另外一些的负担要小-比如,一个简单的拨号调制解调器就比分组式无线电通信更快更便宜-但是与局域网的联络方式相比,它们都慢得出奇。移动式连接的可靠性也较低由信号衰减、堵塞及其它问题导致掉线并非不常见。因此,针对局域网环境设计的诸如Web浏览器等应用程序,在网络受到制约的设置环境中的操作性能经常很差。
此外,移动式环境还产生断开(disconnect)操作的问题。标准Web浏览-以及许多现有的网络应用-假设,断开是一种比较罕见的出错情况。一般来说,当客户机与服务器断开时,操作就失败。
弱连接和断接的可能性导致了移动式环境中的第三种问题用户连接的动态性质。同一用户在不同的时刻可能是强连接的(局域网)、弱连接的(蜂窝式或其它移动式链路)或断开的。
在资源受到限制的或无线通信方式代表的不可靠通信环境中使用浏览器时,可用性差和用户生产率低有若干原因。第一,浏览器协议是同步的,即用户必须等一个请求完成后才能发出另一个请求。当无线传输速度慢、因特网或内特网(intranet)通信量拥挤或者Web服务器负载过重,导致长时间的延迟时,用户会变得灰心丧气,一无所获。
第二,同步请求/应答模式固有的突发性,在速度慢的链路或基于时间成本的链路上会变成一个重要问题。在有线的局域网上,服务器的应答时间通常是焦点问题,但是在无线的环境中,带宽和等待时间一般是主导因素。(分组式无线电通信中的等待时间可能是数秒的数量级。)第三,通常的同步请求/应答模式在出现自愿的或不自愿的断开时,完全不能工作。如果请求不能立即得到满足,一般是返回一个错误码,用户稍后必须明确地重新发出请求。
鉴于以上叙述,有必要对在其特点是对连接性能和可靠性的级别进行改变的移动式计算环境中的Web浏览器/Web服务器的操作加以改进。
鉴于以上讨论,本发明的一个目的是,减少弱连接或断开环境中浏览器通信的同步性质的影响。
本发明的另一个目的是,克服浏览器在传输时间、等待时间或其它通信限制降低浏览器/服务器通信的应答速度的远程或移动式环境中的限制。
本发明的另一个目的是,在其本质上对用户透明的移动式环境中提供浏览器功能。
本发明的另一个目的是,使连接状态对浏览器透明,以便能在移动式环境中利用现有的浏览器。
本发明的这些目的和其它目的,是通过一些方法、系统和计算机程序产品实现的,这些方法、系统和计算机程序产品用于与在暂时或断续连接到第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信,通信方法是在第二台计算机的一个持久请求队列中,存储该Web浏览器向一个服务器应用程序的一个请求,该第二计算机可访问该服务器应用程序。对来自客户机应用程序的请求的响应是,向Web浏览器提供中间应答。将所储存请求提供给服务器应用程序,并接收服务器应用程序的应答。然后将收到的应答提供给在远程/移动式处理系统上执行的Web浏览器。
通过在第二台计算机(服务器侧)处的请求队列中存储请求并向Web浏览器提供中间应答,可以实现Web浏览器的异步操作。此外,通过在通信的服务器侧存储请求,还能在与远程/移动式处理系统的连接结束时处理这些请求。这样,本发明就克服了弱连接的缺陷。在慢速度的环境中,本发明允许用户无须等待对请求的应答就能上载数个请求,并在请求被进行后台处理时继续工作。
在本发明的一个具体实施例中,要判定从浏览器收到的请求是不是一个被延迟处理的请求。如果该请求不是一个被延迟的处理请求,就不存储该请求,而是直接处理之,并将应答提供给浏览器。
一旦请求被接受并在第二台计算机的请求队列中存储,远程/移动式处理系统就可以与第二台计算机断开。在这种情况下,如果远程/移动式处理系统要接收对所储存的请求的应答,就要重新接入第二台计算机。在一个具体的实施例中,可以将被存储的请求的一个列表提供给Web浏览器,用于向用户显示。用户通过Web浏览器,可以从该被储存的请求列表中选择被存储的请求列表中的一项。然后,对列表中该选定项的应答被提供给Web浏览器,用于向用户显示。此外,还可以在第二台计算机收到应答之后,通知用户可得到所收到的应答。如果用户要求该应答,就将该应答提供给Web浏览器。
因为在请求的发送和接收中可能会用到多个连接,所以本发明的另一个实施例建立与用户标识符关联的一个持久请求队列。在这种情况下,当远程/移动式处理系统重新接入第二台计算机时,远程/移动式处理系统可以向第二台计算机提供一个用户标识符。第二台计算机然后将其收到的、对与所收到的用户标识符关联的持久请求队列中的请求的应答,提供给远程/移动式处理系统。因此,通过将用户标识符与请求队列相关联,许多用户可以接入相同的第二台计算机并且只访问它们自己的请求队列。于是就可以提供一个安全的应答和请求队列,以防止对某个请求队列或与请求队列关联的应答的越权存取。
本发明的另一个实施例中,对收到应答进行分析,判定收到的应答是否嵌入至少一个请求。如果收到的应答中嵌入了请求,就将该嵌入的请求提供给由该嵌入的请求所指定的服务器。在第二台计算机接收并存储对嵌入的请求的应答。然后,将储存的应答与持久请求队列中储存的请求关联。然后,将储存的所接收的应答与储存的对嵌入的请求的应答提供给Web浏览器。
本发明的另一个实施例中,将对某请求的应答存储在第二台计算机,并在与某用户标识符关联的持久请求队列中储存的该请求关联。这样就可以建立许多持久请求队列,其中的每个持久请求队列与一个用户标识符关联。这样就能在许多持久请求队列中存储来自许多浏览器的请求,每个Web浏览器的每个用户的请求被存储在与该用户的用户标识符关联的持久请求队列中。然后就可以将这许多请求提供给关联的Web服务器,并从这些关联的Web服务器接收许多应答。所收到的许多应答可以这样提供给许多Web浏览器,即将对某个请求的应答提供给该请求所来自的浏览器。
在本发明的另一个实施例中,与在第二台计算机暂时或断续连接的远程/移动式处理系统上执行的Web浏览器的通信方法是,将Web浏览器对第二台计算机可访问的服务器应用程序的请求,存储在第二台计算机的持久请求队列中。用客户机标识与被存储请求建立关联关系,将储存的请求提供给服务器应用程序。从服务器应用程序接收应答,并将应答存入驻留在第二台计算机上的服务器侧高速缓冲存储器。然后将储存的所接收的应答与所储存的请求关联,并提供给与客户机标识所关联的Web浏览器,该客户机标识与所存储的该请求相关。
本发明的另一个方面,在与客户机标识符关联的Web浏览器随后的连接期间,提供该储存的请求。此外,在将所储存的请求提供给服务器应用程序之前,可以接受对请求的修改。可以对请求队列中所储存的请求进行修改,用修改后的请求替换所储存的请求。
本发明的另一个实施例中,判定从浏览器接收的请求是否是被延迟处理的请求。如果该请求是被延迟处理的请求,就将该请求存储在请求队列中并作相应处理。
本发明的另一个实施例中,将许多服务器的应答与持久请求队列中的单独一项关联。响应于对该项的请求,将与持久请求队列中这个项关联的这些应答提供给远程/移动式处理系统。
本领域的熟练人员进一步会明白,本发明可以实现为一种方法、装置/系统或计算机程序产品。
图1是一个典型的Web浏览器/Web服务器系统的方框图;图2是本发明的使用一个客户机截收器(intercept)和一个服务器截收器的实施例中的Web浏览器/Web服务器系统的方框图;图3是按照本发明的客户机侧截收模块的方框图;图4是按照本发明的服务器侧截收模块的方框图;图5是按照本发明的服务器截收模块从客户机侧截收模块接收一个请求的操作的流程图;图5a是按照本发明的服务器截收模块从客户机接收一个请求的操作的流程图;图6是按照本发明的服务器截收模块接入客户机的操作的流程图;图7是按照本发明的一个方面,断开或延迟处理操作的的流程图;图8是按照本发明的一个方面,远程/移动式数据处理系统上接收对浏览器请求的应答的操作的流程图;图9是按照本发明的一个方面,与修改请求有关的操作的流程图;以下结合各附图,对本发明作更详细的描述。附图中表示了本发明若干较佳实施例。不过,本发明可以有许多不同的形式来实现,而不应被视为局限于本文所举各实施例。本文中提供的实施例,旨在透彻地说明本发明,向本领域的熟练人员全面地传达本发明的范围。本说明书自始至终用相同的数字代表相同的单元。本领域的熟练人员会明白,本发明可以用方法或设备来实现。所以,本发明的体现形式,可以全部是硬件,全部是软件,或是软件硬件两方面的综合。
本文对本发明的描述,是按流程图的顺序或者按本发明的特点进行的。应当明白,流程图的每个功能块,以及流程图的各功能块的组合,都可以由计算机程序指令实现。可以将这些程序指令提供给处理机以产生一个机器,使得在处理机上执行的指令能生成流程图功能块中规定的功能的装置。计算机程序指令可由处理机执行,使处理机完成一系列操作步骤,产生一个计算机实现的过程,使得处理机上执行的指令能提供实现流程图功能块中规定的功能的步骤。
因此,各流程图功能块支持对执行特定功能的装置的组合,对执行特定功能的步骤的组合,以及执行特定功能的程序指令装置。还应当明白,流程图的每个功能块以及流程图功能块间的组合,都能由执行指定功能或步骤的基于硬件的专用系统实现,或者由专用硬件与计算机指令的组合实现。
图2表示本发明的一个实施例。图2中,Web浏览器10与客户机侧截收模块30通信。Web服务器20与服务器侧截收模块40通信。客户机侧截收模块30与服务器侧截收模块40通过通信链路35进行通信。Web浏览器10与客户机侧截收模块30处于第一个计算机5中。Web服务器20与服务器侧截收模块40处于第二台计算机6中。第一台计算机5与第二台计算机6通过外部通信链路35进行通信。第一个计算机5最好是一个远程/移动式数据处理系统。本文中“远程/移动式”的意思是“暂时和断续连接的”,其中暂时的意思是“持续有限时间”,断续的意思是“有间隔地不连续或偶尔的时进时出”。远程/移动式数据处理系统中也可以含有-例如通过网络-远程访问其它系统的数据处理系统。
Web浏览器10最好是用超文本传输协议(HTTP)和超文本标记语言(HTML)与同样使用HTTP和HTML的因特网Web服务器20通信的因特网Web浏览器。操作过程中,Web浏览器10会输出一个被客户机侧截收模块30截收的一个HTTP数据流。客户机侧截收模块30对HTTP数据流的截收可以通过利用TCP/IP环回部件来完成,其中客户机侧截收模块30驻留在带网络号127的一个IP地址上,例如127.0.0.1。客户机侧截收模块30然后将该HTTP数据流转换成一种客户机/服务器专用协议,并将该客户机/服务器专用数据流传送到外部通信链路35。服务器侧截收模块40接收客户机/服务器专用数据流,并将其重新组织成对应于通信起源端的Web浏览器的源HTTP数据流。然后,将重组的HTTP数据流传送到服务器20。Web服务器20以因特网Web服务器的标准方式对该HTTP数据流作出响应。本领域的熟练人员会明白,Web服务器也可以是一个允许有许多浏览器连入因特网的代理。
例如当为响应浏览器对某特定URL主页的请求而要传送到Web浏览器10的数据被Web服务器20收到时,Web服务器20输出一个对应于要发往Web浏览器10的通讯的数据流。该起源于Web服务器的通讯被服务器侧的截收模块40截收,转换成客户机/服务器专用数据流。然后,该对应起源于Web服务器的通讯的客户机/服务器专用数据流,通过外部通信链路35,被从第二台计算机发送到第一台计算机。客户机/服务器专用数据流被客户机侧的截收模块30接收,该对应起源于Web服务器的通信的源HTTP数据流被重组,提供给Web浏览器10。
本发明一个具体实施例中,外部通信链路35是一个无线通信链路。在这个例子中,为了获得用户能接受的系统性能,需要在两方面减少外部通信链路35上的通信量,一方面是通信的频率,一方面是必须在外部通信链路35上传送的信息量。为此,本发明优选地采用高速缓存(caching)、差分外(differencing)和协议减缩(protocol reduction)等技术,尽量减少需要在外部通信链路35上传送的通信量。实现这些技术的方法是,将无状态的或随机的HTTP协议转换成使用客户机和服务器专用的数据的客户机/服务器专用协议,以减少通信量和通信的频率。
实际过程中,客户机侧截收模块30和服务器侧截收模块40对Web浏览器和Web(代理)服务器都是透明的,因此,可用于任何Web浏览器。客户机侧截收模块30和服务器侧截收模块40都能高速缓存图形和HTML对象。如果浏览器请求的URL指定客户机侧截收器的高速缓冲存储器内的一个对象,该对象就作为浏览器的应答而被立即返回。高速缓存功能保证了客户限定的时间间隔内高速缓冲存储器的完整性。服务器侧截收器的高速缓冲存储器中存储着许多来自被请求的Web服务器的应答。如果从客户机侧截收器接收的被请求URL被高速缓存在服务器侧截收器的高速缓冲存储器中,它就被作为对该请求的应答而返回。
本发明优选地利用一个虚拟套接字系统,例如美国专利《客户机/服务器通信系统》中所述的系统(《CLIENT/SERVER COMMUNICATION SYSTEM》-申请号为08/601,804,律师案号RA895-0154),其作为参考引用在本说明书中。本发明还优选地利用了数据减缩技术,关于这些技术的说明可参见美国专利《时间相干的高速缓存系统》(《TIME COHERENT CACHING SYSTEM》-申请号08/601,753,律师卷号No.RA9-95-086),和美国专利《差分通信系统》(《DIFFERENCING COMMUNICATION SYSTEM》-申请号为08/601,903),其作为参考引用在本说明书中。
尽管对本明已作的和将作的描述,针对的是单个Web浏览器应用程序和单个Web服务器应用程序,本领域的熟练人员会明白,对与一个Web服务器关联的许多Web浏览器,也能取得本发明的益处和优点。因此,本发明的方法、装置和程序产品与许多浏览器相连接,每个浏览器均与一个客户机侧截收模块通信,而这些客户机侧截收模块则与Web服务器或Web代理的服务器侧截收模块进行通信。
此外,尽管本文中是针对一个客户机侧截收模块和一个服务器侧截收模块描述本发明的,本领域的熟练人员会明白,本发明只需要一个服务器侧截收模块。因此,本发明不应被视为局限于既有一个客户机侧截收模块和一个服务器侧截收模块的系统。
本发明还具有异步请求和应答处理的功能,它允许用户在以前的请求还未完成时能继续提出请求。异步请求和应答处理最好要在客户机侧截收模块和服务器侧截收模块二者之间协调,以提高用户使用的灵活性,取得优良的操作性能。请求被记录在内部,用于由客户机侧截收模块、服务器侧截收模块、或二者进行后台处理。请求完成后的结果保存和状态更新是异步进行的。用户在请求完成时会得到通知(也可以不通知),可以转换到状态页去看看一个或许多请求的状态。每个请求的状态项,含有请求的状态信息(尚未启动、正在进行、已经完成),如果请求已经被完成,状态项中还含有指向应答页的链路。
本发明也具有在远程/移动式数据处理系统未连入能访问服务器应用的计算机时进行断开操作的功能。用户既能在同步方式下操作,能在异步方式下操作。无论在哪种方式下,如果检测到失去联络,或者如果通信不可能(例如超出了信号范围),就可以将请求保存在等待队列等待以后处理,也可以将请求在服务器侧截收模块排队,在断开期间处理,重新连接时检索应答。这种功能使用户能在脱机状态下继续工作。下面结合图3、图4和图5~10的流程图说明这些操作。
图3表示采用本发明具体实施例的一个远程/移动式数据处理系统。如图3所示,远程/移动式数据处理系统5中有一个在远程/移动式数据处理系统5上执行的应用程序,例如Web浏览器10。来自Web浏览器10的请求被HTTP请求截收器31截收,放入请求队列32中。请求队列32中的请求由HTTP请求队列处理机33处理,处理机33在与具有能访问请求中所规定的服务器的第二台计算机建立连接时执行请求队列32中的请求。这些请求被处理后,为每个请求启动一个服务线程(service thread)34以执行该请求。将对请求的应答存入高速缓冲存储器35并与生成该请求的请求队列中的该请求关联。图3中以虚线表示这种关联关系。图3中从请求队列的各项目到高速缓冲存储器的实线,代表请求项与用于产生请求的格式(form)的关联关系。这种关联关系使用户即使在请求已经被生成后也能对该请求进行编辑。一种可选方案是,将请求和应答二者都与队列中的请求项关联,使请求和应答二者都能被提供给用户。
请求队列32是一个请求表,其内容是HTTP请求截收器31从浏览器收到的请求及其状态和控制信息。每个请求单元中有从浏览器接收的全部信息(HTTP标题和任何主体)。这样就能在晚些时间将请求转发到网络。每个请求单元中还有与该请求关联的状态信息。状态信息包括处理请求的进展情况小结和其余尚待执行工作的列表。
也可以将特殊的处理指令与请求队列中的请求相关联。例如,在无线通信环境中,页面内嵌图像的下载费用通常过于昂贵。如果为请求进行了图像压缩,那么这个处理控制信息就被放在请求单元中。请求队列在客户机会话期保持不变。
请求的内部数据由一个属性集合组成。属性集合中的每个属性是一个名称-数值对。请求被创建时,只有给定的属性才含有浏览器请求。随着处理的进行,描述处理进展、从浏览器返回的状态信息等等的属性被添加入属性集合。某些属性,例如进展说明,是按请求描述的。属性也可以按队列描述,这种情况下要对加到队列的全部单元的处理进行控制。按队列描述的属性用于支持根据其源情况或请求特点以不同方式处理请求的许多队列。因此依照本发明,可以创建一个以上的请求队列,请求可以在它们被客户机侧截收器收到时被自动分类到适当的队列,也可以在用户输入时被人工分类。
因为本发明允许采用设计用于同步联机处理的浏览器之类的应用程序进行脱机处理,所以断开和异步操作需要新的用户接口。因此依照本发明,如果用户的请求可以从客户机侧的高速缓冲存储器得到满足,就可以立即提供应答,而标准化浏览器接口保持不变。然而,如果高速缓冲存储器中没有,就可以用与本发明脱机处理相关联的机制和接口扩展浏览器的语义。
因为本发明的浏览器是一段不可改变的代码,所以,每当远程/移动式数据处理系统正在异步操作或者与第二台计算机断开、不能满足对高速缓冲存储器的请求或者没有出现客户机侧截收时,可以返回一个替换页(stand-in page)。替换页的内容是对已发生事件的解释-“您的请求已经排上队等待以后的处理”-并且可以依要求显示所有等待处理的请求的当前状态。注意,就浏览器而言,该替换页就是对请求的应答。换言之,浏览器保留请求/应答机制不变,而本发明的截收模块处理请求所对应的细节。此外,对于断开的请求和异步请求二者都可以采用这一相同机制,即向浏览器返回一个信息页作为对请求的应答。
一种可选方案是,返回到当前页面,而不是出现一个中间性的回应。这种选择可以通过向浏览器返回代码204而实现。虽然从用户的角度来看,揿按连接时浏览器还停留在原来的页面上,但实际上本发明的截收模块在后台把该请求排入了队列。
图4表示依照本发明的服务器侧截收模块40的一个实施例。该服务器侧截收模块驻留在图2的第二台计算机6上。来自客户机侧截收模块30或直接来自浏览器10的通信,由输入数据处理机200接收,并有选择地被放置到请求队列230中。因为一个服务器侧截收模块可以接收来自许多客户机侧模块或浏览器的通信,所以服务器侧截收模块最好为每个利用异步处理的客户机维护一个请求队列。图4中以队列230、231和232表示与不同客户机关联的请求队列。这些请求队列的结构可以都与请求队列230相同,只是它们具有的与队列中请求关联的客户机的标识互不相同。
请求队列230、231和232中的请求由HTTP请求队列处理机233处理。处理机233在与具有能访问请求中指定的服务器(即每个代理)的第二台计算机建立连接时执行请求。这些请求被处理时,为每个请求启动一个服务线程234以执行该请求。将对请求的应答存入高速缓冲存储器210并与生成该请求的请求队列中的该请求关联。图4中以虚线表示这种关联关系。
图4中从请求队列的各项到高速缓冲存储器的实线,代表请求项与用于产生请求的格式的关联关系。这种关联关系使使用仅服务器配置的用户即使在请求已经生成后也能对请求进行修改或删除。一种可选方案是,将请求和应答二者都与队列中的请求项关联,使请求和应答二者都能被提供给用户。
请求队列230是一个请求表,其内容是输入数据处理机200从客户机侧截收器或浏览器收到的请求及其状态和控制信息。每个请求单元中有从浏览器接收的全部信息(HTTP标题和任何主体)。这样就能在晚些时间将请求重新转发到网络。每个请求单元中还有与该请求关联的状态信息。状态信息包括处理该请求的进展情况小结和其余尚待执行工作的列表。
客户机侧使用的请求队列项的格式,可以与以上叙述的服务器侧截收器所用的格式相同。然而,当请求被传送到服务器侧截收模块时,要有一个与该请求关联的请求标识,请求标识可以由客户机在当地生成。一种可选方案是,在连接建立时,建立用于连接期间的用户标识符。因此,用户标识符会被与从该连接接收的所有请求关联。因为请求期间允许断开,所以在不同的处理阶段会涉及不同的套接字。在向服务器侧截收器传输请求之前,为每个请求规定一个客户机标识符/请求标识符对,采用这种方法,不依赖套接字的连接就能协调最后结果的传递。对于向服务器侧截收器发送的用于处理的请求,其标识也要在客户机侧记录下来,以便以后能将请求与结果匹配。通过对客户机标识采取保密措施,其它的客户机的请求,即使是存储在服务器侧截收模块中的其它的客户机的请求,也不能对其访问。
实际操作中,当用户作好断开准备,并希望服务器在断开期间处理等待的请求,以便其晚些时候取回数据时,客户机调用命令,在断开期间将请求传送到服务器侧截收器。这种命令可以是一个客户机侧的API flush()命令。API flush()命令的功能是,把要在通信链路的服务器侧处理的排队请求发送到服务器。被传送的项目可以通过名称/数值对被标记为客户机请求队列中的清仓(flushed)项。flush()命令至少有三种合理形式flush()传送所有未标记为“保留”的项目(缺省命令);flush(全部)传送所有项目,包括“保留”项目;flush(项目)传送一个特定项目。
保留请求(即被指定在由用户规定的一个较晚的时间进行处理的请求)也能被传送到服务器侧取进行断开处理。然而,保留请求的主要原因是为了推迟传送结果,直到有足够的带宽可用。对保留的请求进行断开处理可能并不是一种理想的做法,因为用户未必在很长时间后还会请求得到结果。因此,若是还要处理请求,存储用户不再需要的结果,那就是对服务器资源的一种浪费。
一种选择方案是,在一个浏览器至服务器侧截收器的配置中,所有不能在服务器侧截收器得到满足的请求,都在服务器侧截收器排队。这样,如果发生断续连接失败,则在浏览器断开期间,这些请求可以由服务器侧截收器继续处理。这种系统的另一个优点是,浏览器与服务器侧截收器之间的连接得到完全利用,这是因为,向浏览器提供的应答队列一旦被建立,通信链路上的空载时间就会减少。
本发明也考虑了对客户机侧所储存请求的修改。如果某特定请求项在服务器侧截收器上排了队,那么对客户机请求队列中的该项进行的任何修改都会传给服务器。例如,如果用户从客户机请求队列中删除一个清仓的请求,就应该通知服务器侧截收器,以便停止处理(如果有必要),放弃正在准备的处理结果,从服务器侧的客户机请求队列中将该项删除。与此类似,如果某被清仓项的状态变成停顿(held)或解除停顿(unheld),就应该通知服务器侧的请求队列,以便其能视需要而中止或开始处理。在这种断开方式下,有益于记录对客户机侧清仓项进行的变化性操作,以便它们能在重接服务器侧截收模块时被立即转发。
一旦服务器侧的处理产生应答,向客户机传播回的数据是基于规则的。在客户机下一次被连接时,盲目地向客户机传送对断开请求的应答并不可取。因为客户机可能正在一个低带宽链路上作某种优先级很高的事情,用户宁愿第一个连接时间不是花在传送对旧请求的应答上。因此,可以用一组可配置规则与函数来帮助客户机优化数据传输。
GetDigest()函数就是这样一个函数。GetDigest()返回在被请求的服务器侧队列中为该客户机积累的数据的一个摘要。因此,执行GetDigest()函数后能获得下列数据,包括URL、题目、大小、已完成时间和请求的状态。GetDigest()函数调用返回的状态有完成、正在进行、停顿、等等。因此状态可以指出,服务器侧截收器对请求的处理到了什么程度。客户机可以用这种摘要来决定如何继续。对应于上述的flush()操作,可以用以下sync()函数提取被存储的应答sync()取得对所有非停顿项的应答(缺省);sync(全部)取得对包括停顿项在内的所有项的应答;sync(项目)取得对特定请求的应答。
除了这些明示的请求之外,用户还可以在连接期间或重新连入的过程中进行自动同步GetPrefs()返回该客户机的当前的优选项列表;SetPrefs(列表)定义一个新的优选项列表;UpdatePrefs(列表)只更新指定的优选项优选项列表由一系列名称/数值对组成。名称/数值对确定数据自动传输的规则。有些属性可以是优先级、大小、源、等等。这样,基于服务器侧处理的异步操作就可以通过客户机侧的交互作用管理,后者包括用户制导的动作组合以及自动传输。
现在结合图5、图5a和图6来描述服务器侧截收器。图5表示的是当服务器侧截收模块接收客户机侧截收模块的传输时,服务器侧截收模块的操作。方框250表示服务器侧截收器接收客户机侧截收模块的一个请求。该信息一般采用两种形式标准化浏览器请求,或者由服务器侧截收器自己处理的请求(例如上文讨论过的GetDigest()和SetPrefs()函数)。因此,服务器侧截收器要判定,所截收的传输是对服务器的请求还是对服务器侧截收器的请求(框252),如果该请求是对服务器侧截收器的请求,服务器侧截收器就相应地处理该请求。上文中提供了截收通信的类型的例子。
如果所截收的传输不是向服务器侧截收器本身的截收传输,服务器侧截收模块就要判定,该请求是否是由服务器侧截收模块处理的断开操作的请求(框256)。如果该请求不是断接操作请求,则该请求就被作为其它类请求处理(框258)。服务器侧截收器也要判定该请求是不是客户机的第一个请求(框264),如果是,就为用户建立一个请求队列(框266)。请求队列中有用户标识符,以便将随后的通讯存储在适当的队列中,并保证通讯的安全性,使用户的请求和应答不会被提供给未授权的用户。请求队列建立后或者如果队列已经存在,就将请求就存储在客户机的请求队列中(框268),进行脱机处理。该脱机处理方式可以与下文描述的客户机侧截收器的脱机处理相同。
图5a表示的是,在没有客户机侧截收器的情况下服务器侧截收器与浏览器通信时(仅有服务器侧的情况),服务器侧截收器的操作。如图5a所示,服务器侧截收模块接收来自浏览器的请求(框350)。服务器侧截收器然后判定,该请求是不是个延迟请求(即用于断开的操作的请求)(框356)。或者是,在仅有服务器侧的情况下,将所有请求按延迟请求处理,在服务器侧截收模块中排队。任何情况下,如果请求不是要求延迟操作的,就对请求作常规处理(框358)。然而,如果请求是要求断开处理的,则浏览器需要得到一个相应的应答,才能继续下一步。因此,服务器侧截收器可以向浏览器提供一个中间应答(框362)。简单的中间应答只指出请求已经收到,将作脱机处理;复杂的中间应答是提供所有等待脱机处理的请求的全部状态信息。
在仅有服务器侧的情况下,服务器侧截收器还要判定,请求是否是客户机的第一个请求(框364),如果是,就为该用户创建一个请求队列(框366),请求队列中有用户标识符,以便将随后的通讯存储在适当的队列中,并保证通讯的安全性,使用户的请求和应答不会被提供给未授权的用户。请求队列创建后或者如果队列已经存在,就将请求存储在客户机的请求队列中(框368),进行脱机处理。该脱机处理方式可以与下文描述的客户机侧截收器的脱机处理相同。
图6表示是服务器截收模块在某个使用异步服务器侧处理的客户机接入该模块时的操作。图6一般地描述了在客户机侧/服务器侧情况和仅有服务器侧情况的两种情形中,服务器截收模块的操作。然而,本领域的熟练人员会明白,在仅有服务器侧的情况下向客户机提供的数据应当遵循能够由Web浏览器解释的格式;而在客户机侧/服务器侧的情况下,所提供的数据可以是能够由客户机侧截收模块解释的任何适当格式,由客户机侧截收模块将数据翻译成能够由与客户机侧截收模块通信的浏览器解释的格式。
如图6所示,首先要确认客户机的客户机标识符(框270),然后服务器侧截收器判定客户机是否指定了任何与该客户机的队列关联的管理操作(框272)。如果是,就执行管理功能(框274)。这些管理功能包括,设置用户优选项、更新队列以反映在上述客户机断开期间对队列中的请求所作的改变。
除了执行管理功能外,还要检查与客户机标识关联的队列,判定队列中有无请求项存在(框276)。如果队列中有请求项,就向客户机发送一个提示(框278),通知客户机在队列中有请求项。这种提示可以复杂也可以简单,可以用用户优选项规定。然后,用户可以按其认为适当的方式对该提示作出响应,队列中的各请求项得到相应的处理。例如,用户可以请求将所有已完成的请求发送到浏览器。或者是,将这种操作延迟到稍迟后的连接时或在当前连接中稍迟后再执行。
此外,还可以将与某用户标识关联的诸应答相互关联,使得它们可以被作为基于一个用户请求的块,提供给客户机侧截收器或者浏览器。在这种情况下,服务器侧截收器在请求队列中建立一个请求项并将该信息与该请求项关联,使得该单项请求代表许多应答。然后,在该请求项被请求时,这许多应答被作为一组发送给客户机。然后就可以用浏览器在该应答链中漫游。这样,服务器侧截收器就能在请求队列中创建能向浏览器提供许多应答的单项请求。此外,用户还可以规定将哪些应答组成一个块,这使得用户得以控制应答被Web浏览器接收的方式。
图7描述利用本发明的客户机侧截收器的操作。如图7所示,客户机侧截收器30截收浏览器10的一个请求(框50)。然后,客户机侧截收器判定,对该请求的应答是否存储在高速缓冲存储器中(框52)。如果是,就将该高速缓存的应答返回给Web浏览器(框54)。
如果应答未被高速缓存,客户机侧截收器就要判定,数据处理系统是否连入用于访问服务器的第二台计算机(框56)。如果数据处理系统连入,那么,如果请求不是延迟请求(功能框58),则将请求发送到第二台计算机。然而,如果数据处理系统未连入,或者请求处理是延迟类型的,则将请求存入请求队列,并用一个中间应答作为对请求的应答提供给浏览器(功能框62)。
对队列方式的请求的处理是由线程(thread)进行的。本发明中的线程的运行,独立于截收模块中的任何其它活动。队列中的请求一般是按“先进先出”(FIFO)原则处理的。然而,可以有选择地将请求标记为“停顿”类型,并且,所有新的请求都应被停顿(功能框58)。这样,即使在可以连接的情况下,用户也能指示,对这些请求的处理应当延迟到稍后的时间。例如,某些请求在特定的链路上处理的费用太高,所以用户宁愿推迟处理,直到能连接局域网或者能拨号连接。停顿属性也可用于在客户机最初启动时留下的任何未完成的排成队列的请求。这样可以避免从廉价的链路出人意外地转接到费用更昂贵的无线链路上。
如图7所示,处理一个排成队列的请求的第一个步骤是要求连入能访问该请求的服务器的第二台计算机(功能框64)。当第一次收到一个请求时,就开始试图连入,如果连接没有建立(功能框66),就继续试,直到通过队列处理器或因为其它活动建立了连接(功能框70和64)。用一个指数延迟(exponential backoff)程序来控制试连接之间的延迟(功能框68)。因此,试连接的间隔时间随着试连接次数的增加而增加。在通信出现瞬时失败时该延迟程序能提供响应,而在长时间通信失败时不增加网络负担。
一旦建立了连接,就用最初从浏览器保存并在请求队列中存储的数据重新构造该请求,并将该请求发送到第二台计算机(功能框72)。此时的请求在服务器看来如同直接来自浏览器的一样。如果由于无线链路的故障,请求失败(功能框74),在稍后时间还会接着作几次尝试。重新尝试的请求使用户觉察不到瞬时的通信故障。其它类型的故障也能被记录下来,用于以后返回给用户。
图8表示按照本发明的客户机侧截收模块和服务器侧截收模块在对前一个排成队列的请求的应答被接收时的操作。如图8所示,来自服务器的应答被接收(功能框80)。然而,如今在Web页面中使用图形、小应用程序(applet)和其它嵌入(embed)几乎成为通行的做法。如果用户要求过要看这些信息,就要分析返回的页面看看有无嵌入(功能框82)。然后将每个嵌入提取出来(功能框84),与源应答一起存入高速缓冲存储器(功能框86)。将应答与适当的请求队列中的请求关联,并将随应答一起返回的所有状态信息与该请求关联(功能框88)。此时请求完成,可以通知用户,它能得到应答了(功能框90)。在服务器侧截收器的情况下,则该通知要被推迟到用户重新连接时。
本发明提供的是一种透明的HTTP代理,所以它可以用于任何浏览器。为后台处理对请求进行排队与浏览器预期的模型并不匹配,因此,要通过HTML或HTML码向用户返回一个中间应答,以便浏览器和用户能继续操作(见图5的方框262和图7的方框55)。类似地,可以用HTML页面和嵌入的HTML信息来报告状态,以保持浏览器的独立。
未完成的请求的状态,可以用许许多多的方法来报告。这些方法包括,任选的完成上托(completion popup)、嵌在返回的Web页面顶部的任选状态条、或在总结队列状态的HTML页面上的状态信息。
上托(popup)能使用户知道后台页面(background page)上有新完成的页面供阅览,并列出该页面的URL。这些上托中有一个是在新数据一旦可用时生成的,然后,进一步的信息被抑制,直到用户访问了页面并阅览了该信息。这就使用户能得到异步的完成通知,不会因为是在更快速的链路上而来不及。
用户也可以选择在每个返回页面中嵌入一个描述客户机侧截收器状态的状态条。状态条中的信息包括已经被完成的请求的数量、未完成的数量、停顿的数量。状态条还包括表示有新结果可用的上托的文字信息和通往各种被生成的状态页的链路。
这些链路中的一条链路能将用户导引到一个对该请求的状态进行总结的页面。该页面逐行显示队列中的每个请求。每个请求有一个表示该请求处理进展情况的状态示意图,示意图采用诸如交通灯模型的标志,其中红色表示请求尚未发送;黄色表示基页已经收到,嵌入部分正在进行;绿色表示请求完成。状态图除了颜色外,还可以有形状区别,例如红色是无边的圆形、黄色是半月形,绿色是实心球形。如果发生错误(例如,请求已经发送,但基页检索不出来),就在交通灯符号上标上X,表示故障。
删除请求或停顿请求的选择,也能随状态图一起显示出来。在采用格式的情况下,用户可以浏览或重新编辑请求。如果请求完成了,则该页中也可以有一个指向被高速缓存的结果的链路。
为了提供基于URL的、对后台队列和其它内部生成的页面的访问,可以将客户机侧截收器的域名(例如artour.web.express)与其它合适选项合在一起使用。例如,可以通过URL的http://artour.web.express/HTEP/访问后台队列。这类请求最好使用HTTP和一个保留域名,而不是定义一个所有者协议名(proprietary protocol name),因为标准化浏览器会拒绝不熟悉的协议。
请求处理的进展情况也可以向用户报告。请求的状态随着请求的处理要经过一系列状态从提交请求起,至处理开始,检索出起始页,直到最后完成。当请求进入一个状态时,就要向内部事件管理程序发送一个描述该状态转换的事件。内部事件管理程序接收请求的状态,并把状态信息传递给其它部件或应用程序。其它部件可以向事件管理程序登记要求接收一些由事件状态和其它标准过滤出的事件。处理事件可被用于生成到客户机侧截收器的动态接口。上托通知就是这些事件的用途的一个例子。
应答被接收后,应答也需要被保存起来,供用户将来脱机阅览用。然而,当浏览器作出请求并接收应答时,它通常有两种方法之一处理应答。如果预期应答是相对静态的,就由浏览器将其高速缓存起来,以便将来对该页的请求能得到迅速处理。然而,如果该页是对格式(forms)请求的应答,或者是由其它方式生成的(所谓的“cgi-bin”请求),则浏览器只显示该应答,而不高速缓存该应答,这是因为一般来说对一个cgi-bin请求的这种应答与对下一个cgi-bin请求的应答是互不相同的。还有,对于源服务器标记是“不高速缓存”的对象,如果浏览器和代理发现这个指示,就不保存这些项目。然而,如果某项是作为处理一个排成队列的请求的一部分而检索时,就必须保存起来供以后阅览。
这些通常是短暂的对象被保存起来(功能框86),作为新类型的高速缓存信息用户数据。这些数据是为响应用户请求而检索出来的数据,只是在该请求的上下文中才有意义。与标准Web数据不同的是,用户数据对象只能作为队列状态页上的应答被访问。它们不能被用于处理其它请求,因为它们是时间短暂的或请求敏感的应答。用户数据不受用于管理高速缓冲存储器的标准的相干(coherency)算法和老化(aging)算法的约束。在被用户删除之前,它们一直存在并有效。
Web页面设计者经常采用HTML格式来安排只要求简单交互作用的数据项。用HTML格式标记建立用于Web交互作用的电子格式是一种方便的方法。HTML格式标记允许Web用户选择列表项、检查开/关选框、选择单选按钮、向文本域或多行的大文字区输入文本、按下执行钮。用户按下执行钮时,所输入的数据就被发送到由名称/数值对所指定的Web服务器。名称/数值对的各个名称代表一个输入域,各个值代表用户在该域的输入内容。此外,还可以有隐藏域,存放Web服务器与该格式一起发送的预设值。这些隐藏值与可视域中的值一起被发送回服务器。
与任何HTML页一样,HTML格式可以被存储在高速缓冲存储器中供将来使用。依照本发明,高速缓存的HTML格式可以被不同的用户输入编辑后提交或者再提交。例如,某个检索输入格式可以被一次又一次地编辑,用于发出不同的检索请求。类似地,对内部网数据项格式,例如病人住院表,也能进行编辑,用以校正数据项错误,或登入其它病人的新数据后再提交。对于多数格式来说,将它们存储在高速缓冲存储器中供将来独立提交是有益的,这是因为,这些格式要么有一个简单的一格式交互作用的模型,要么含有自足的隐藏域,使得Web应用程序能够接受单个的提交。
在移动式环境中,断开的格式提交能提高用户的生产率,即使在不能接触到服务器时也是如此。这样就允许在未连入任何网络的情况下,在许多数据项页面中填入数据。还有,由于本发明的再编辑功能,用户可以草拟一些格式,有机会再审阅、确定或者编辑这些格式,最后将它们发送给服务器。
如上所述,可以按任何HTML页面对一个格式处理,图5和图7的操作的功能是,对应填好的格式,在请求队列中建立一项。与常规HTML页面一样,用户用URL获得高速缓存的HTML格式。用户在格式中填充数据,按一个执行钮提交它。格式被提交后,名称/数值对与源格式URL一起被存储并排队。如果用户又请求相同的URL格式,并提交新的结果,新提交的就与以前提交的分开保存。每次的提交都被作为队列中的单独一项,在能够连接时自动提交。这些项在被用户删除之前一直保留着。
图9表示用本发明方法对格式进行再编辑的过程。再编辑所用的是图7中队列中的格式。如图9所示,队列中可用格式的清单被提供给浏览器(功能框100),接收用户选择队列项的输入(102)。可以把一个HTML页面显示给用户,内容是能用超级连接访问的队列项。
根据用户的输入,从本地高速缓冲存储器获得一个与用来生成排成队列的请求的格式的URL对应的格(功能框104)。该基格式可以根据以前插入的表示格式出处的数据检索出来。当空白格式第一次从服务器提取出来时,客户机侧截收器将隐藏值插入HTML,然后将该页面返回给浏览器。该隐藏的信息包括源URL和在该页面中的格式号。为了再编辑该格式,要用含有该格式的URL的该隐藏值来检索空白格式。为了建立请求与生成请求的格式之间的关联关系,该URL与该请求一起存储在请求队列中。
逐个检查格式与排成队列的请求是否与请求中的名称/数值对匹配(功能框106)。如果发现有匹配的,就改变缺省的选择或者输入值,以反映用户的提交(功能框108)。要特别注意有许多HTML格式的Web页面,因为它们可能在不同的子格式中使用相同的域名。因此,要为子格式分配唯一的标识符以便能跟踪它们。然后对源输入格式和数据进行重新构造。如果对请求的应答已经收到(功能框110),则一可选地-可以将提交按钮替换为到该应答的链路,以便用户能够阅览该提交的结果(功能框112)。否则,就将重新构造的请求提供给浏览器供用户进行编辑(功能框114)。如果用户再提交,就可以用新数据将现存的队列项覆盖,或者,用户也可选择在队列中新建一项。这个特点允许用户利用填有内容的格式作为模板,只需少量的进一步输入就能创建数据类似的其它请求。
如上所述,如果请求被客户机作了修改,修改内容就被作为管理功能的一部分被提供给服务器侧截收器。此外,尽管图9中的修改操作最好是在客户机侧进行,这些操作也可以在通信链路的服务器侧执行。
在附图和说明书中,说明了本发明的若干典型的较佳实施例,并且,尽管上述内容中使用了专门术语,它们都仅仅具有一般性和说明性的意义,不具有限制性意义。本发明的范围在权利要求书中提出。
权利要求
1.一种与在暂时或断续连接到第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的方法,其特征在于包括以下步骤在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、由第二台计算机可访问的一个服务器应用的请求;响应来自客户机应用的请求向Web浏览器提供一个中间应答;向服务器应用提供该储存的请求;接收一个来自服务器应用的应答;将收到的应答提供给在远程/移动式处理系统上执行的Web浏览器。
2.根据权利要求1的方法,其特征在于,进一步包括这样的步骤判定从浏览器接收的请求是不是一个延迟处理的请求;如果该判定步骤判定所接收的请求是延迟处理的请求,则还要执行所述在持久高速缓冲存储器中进行存储和提供中间应答诸步骤。
3.根据权利要求1的方法,其特征在于,提供中间应答的步骤之后的步骤是,将远程/移动式数据处理机与第二台计算机断开;向Web浏览器提供所接收的应答的步骤之前的步骤是,将远程/移动式数据处理机重新连接到第二台计算机。
4.根据权利要求3的方法,其特征在于,进一步包含以下步骤将所储存的请求的列表提供给Web浏览器供用户阅读;从Web浏览器接收一个要求取出一个从所储存的请求的列表中选定的一个请求的请求;向Web浏览器提供对根据用户输入从储存的请求的列表中选定的一个储存的请求的相关应答。
5.根据权利要求3的方法,其特征在于,进一步包含以下步骤在应答被第二台计算机接收后通知用户所收到的应答的可用性;以及如果用户请求该应答,就将该应答提供给Web浏览器。
6.根据权利要求3的方法,其特征在于,在持久请求队列中存储的步骤之前的步骤是,建立一个与某用户标识符关联的持久请求队列;重新连接远程/移动式数据处理机的步骤中包括的步骤有,将远程/移动式数据处理系统连接到第二台计算机,从远程/移动式数据处理系统接收一个用户标识符;提供收到的应答的步骤包括的步骤有,将收到的应答提供给持久请求队列中与收到的用户标识符关联的请求。
7.根据权利要求6的方法,其特征在于进一步包括以下步骤检查收到的应答,判定收到的应答中是否嵌入了至少一个请求;将收到的应答中的该至少一个嵌入的请求提供给由该嵌入的请求规定的服务器;接收对该嵌入的请求的应答;将所收到的对该嵌入的请求的应答存储在第二台计算机;将储存的对该嵌入的请求的所收到的应答与持久请求队列中储存的请求关联;将收到的应答提供给Web浏览器的步骤包括,将储存的所收到的应答与储存的对嵌入的请求的应答提供给Web浏览器。
8.根据权利要求6的方法,其特征在于进一步包括以下步骤将对该请求的应答存储在第二台计算机;将储存的应答和与用户标识符相关联的持久请求队列中储存的请求关联。
9.根据权利要求8的方法,其特征在于,建立持久请求队列的步骤包括的步骤有,建立许多持久请求队列的步骤,其中每个持久请求队列与一个用户标识符关联;在持久请求队列中存储的步骤包括的步骤有,将来自许多Web浏览器的请求存储到许多持久请求队列,使来自某浏览器的某用户的请求被存储在与该用户的用户标识符关联的一个持久请求队列中;将储存的请求提供给服务器应用的步骤包括的步骤有,向关联的Web服务器提供许多请求;从服务器应用接收应答的步骤包括的步骤有,从关联的Web服务器接收许多应答;将收到的应答提供给远程/移动式处理系统上执行的Web浏览器的步骤包括的步骤有,将收到的许多应答提供给许多Web浏览器,使对某个请求的应答被提供给从其接收该请求的Web浏览器。
10.根据权利要求1的方法,其特征在于进一步包括以下步骤将来自的服务器的许多应答与持久请求队列中的一项关联;将与持久请求队列中该一项关联的该许多应答提供给远程/移动式数据处理系统。
11.一种与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的方法,其特征在于包括以下步骤在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器、由第二台计算机可访问的一个服务器应用的请求;将一个客户机标识符与该储存的请求关联;向服务器应用提供所储存的请求;接收一个来自服务器应用的应答;将从服务器接收的应答存储到第二台计算机上驻留的服务器侧高速缓冲存储器;将储存的所收到的应答与储存的请求关联;将所储存的所收到的应答提供给与客户机标识符相关联的Web浏览器,该客户机标识符与所储存的请求关联。
12.根据权利要求11的方法,其特征在于,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的步骤包括的步骤有,在随后的连接期间,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器。
13.根据权利要求11的方法,其特征在于,进一步包括以下步骤在向服务器应用提供所储存的请求的步骤之前,接收对该请求的修改;修改持久请求队列中储存的该请求,用修改后的请求替换所储存的请求。
14.根据权利要求11的方法,其特征在于,进一步包括这样的步骤判定从浏览器接收的请求是不是一个延迟处理的请求;如果该判定步骤判定,所接收请求是延迟处理的请求,则还包括所述在持久高速缓冲存储器中进行存储的步骤。
15.根据权利要求11的方法,其特征在于,进一步包含以下步骤将将所储存的请求的列表提供给Web浏览器供用户阅读;从Web浏览器接收一个要求取出一个从所储存的请求的列表中选定的一个所储存的请求的请求;将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相相关联的Web浏览器的步骤包括的步骤有,向Web浏览器提供对根据用户输入从储存的请求的列表中选定的一个请求的相关联的所储存的应答。
16.根据权利要求11的方法,其特征在于,进一步包含以下步骤在应答被第二台计算机接收后,通知用户可以得到所接收的应答;将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的步骤包括的步骤有,如果用户请求所储存的所收到的应答,就将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器。
17.根据权利要求11的方法,其特征在于进一步包括以下步骤检查收到的应答,判定收到的应答中是否嵌入了至少一个请求;将收到的应答中的该至少一个嵌入的请求提供给由该嵌入的请求规定的服务器;接收对该嵌入的请求的应答;将对该嵌入的请求的所收到的应答存储在第二台计算机上驻留的高速缓冲存储器;将储存的对该嵌入的请求的所收到的应答与持久请求队列中储存的请求关联;将收到的应答提供给Web浏览器的步骤包括,将储存的所收到的应答与储存的对该嵌入的请求的应答提供给Web浏览器。
18.根据权利要求11的方法,其特征在于,在持久请求队列中存储的步骤包括的步骤有,将来自许多Web浏览器的请求存储到许多持久请求队列,使来自某浏览器的某用户的请求被存储在与该用户的用户标识符关联的一个持久请求队列中,该客户机标识符与所储存的请求相关联;将储存的请求提供给服务器应用的步骤包括的步骤有,向关联的Web浏览器提供许多所储存的请求;从服务器应用接收应答的步骤包括的步骤有,从关联的Web服务器接收许多应答;将收到的应答提供给远程/移动式处理系统上执行的Web浏览器的步骤包括的步骤有,将收到的许多应答提供给许多Web浏览器,使对某个请求的应答被提供给对应于与该接收的请求相关的客户机标识符的Web浏览器。
19.根据权利要求11的方法,其特征在于进一步包括以下步骤将来自的服务器的许多应答与持久请求队列中的一项关联;将与持久请求队列中该一项关联的该许多应答提供给远程/移动式数据处理系统。
20.一种与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的系统,其特征在于包括在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、对由第二台计算机可访问的一个服务器应用的请求的装置;响应来自客户机应用的请求向Web浏览器提供一个中间应答的装置;向服务器应用提供该储存的请求的装置;接收一个来自服务器应用的应答的装置;将收到的应答提供给在远程/移动式处理系统上执行的Web浏览器的装置。
21.根据权利要求20的系统,其特征在于,进一步包括判定装置,该判定装置能判定从浏览器接收的请求是不是一个延迟处理的请求,并且,在持久高速缓冲存储器进行存储的装置和提供中间应答的装置能与该判定装置关联。
22.根据权利要求20的系统,其特征在于进一步包括将远程/移动式数据处理机与第二台计算机断开的装置;将远程/移动式数据处理机与第二台计算机重新连接的装置。
23.根据权利要求22的系统,其特征在于进一步包括将所储存的请求的列表提供给Web浏览器供用户阅读的装置;从Web浏览器接收一个要求取出一个从所储存的请求的列表中选定的所储存的一个请求的请求的装置;向Web浏览器提供对根据用户输入从储存的请求的列表中选定的所储存的一个请求的有关的应答的装置。
24.根据权利要求22的系统,其特征在于进一步包括在应答被第二台计算机接收后通知用户收到应答的可用性的装置;如果用户请求该应答,就将该应答提供给Web浏览器的装置。
25.根据权利要求22的系统,其特征在于进一步包括建立一个与一个用户标识符关联的持久请求队列的装置;重新连接远程/移动式数据处理机的装置中包括将远程/移动式数据处理机连接第二台计算机的装置,从远程/移动式数据处理机接收一个用户标识符的装置;提供收到的应答的装置包括将收到的应答提供给持久请求队列中与收到的用户标识符关联的请求的装置。
26.根据权利要求25的系统,其特征在于进一步包括检查收到的应答以判定收到的应答中是否嵌入至少一个请求的装置;将收到的应答中的该至少一个嵌入的请求提供给由该嵌入的请求规定的服务器的装置;接收对该嵌入的请求的应答的装置;将对该嵌入的请求的所收到的应答存储在第二台计算机的装置;将储存的对该嵌入的请求的所收到的应答与持久请求队列中储存的请求关联的装置;将收到的应答提供给Web浏览器的装置包括,将储存的所收到的应答与储存的对嵌入的请求的应答提供给Web浏览器的装置。
27.根据权利要求25的系统,其特征在于进一步包括将对该请求的应答存储在第二台计算机的装置;将储存的应答与和用户标识符关联的持久请求队列中储存的请求相关联的装置。
28.根据权利要求27的系统,其特征在于,建立持久请求队列的所述装置包括建立许多持久请求队列的装置,其中每个持久请求队列与一个用户标识符关联;在持久请求队列中存储的装置包括将来自许多Web浏览器的请求存储到许多持久请求队列,使来自一个浏览器的用户的请求被存储在与该用户的用户标识符关联的一个持久请求队列中的装置;将储存的请求提供给服务器应用的装置包括向关联的Web服务器提供许多请求的装置;从服务器应用接收应答的装置包括从关联的Web服务器接收许多应答的装置;将收到的应答提供给远程/移动式处理系统上执行的Web浏览器的装置包括将收到的许多应答提供给许多Web浏览器,使对某个请求的应答被提供给从其接收该请求的Web浏览器的装置。
29.根据权利要求20的系统,其特征在于进一步包括将来自的服务器的许多应答与持久请求队列中的一项关联的装置;将与持久请求队列中该一项关联的该许多应答提供给远程/移动式处理系统的装置。
30.一种与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的系统,其特征在于包括在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、对由第二台计算机可访问的一个服务器应用的请求的装置;将客户机标识符与所储存的请求关联的装置;向服务器应用提供所储存的请求的装置;接收一个来自服务器应用的应答的装置;将所接收的来自服务器的应答存入第二台计算机上驻留的服务器侧高速缓冲存储器的装置;将所储存的所收到的应答与所储存的请求关联的装置;将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的装置。
31.根据权利要求30的系统,其特征在于,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的装置包括在随后的连接期间,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的装置。
32.根据权利要求30的系统,其特征在于在持久请求队列中存储的装置包括将来自许多Web浏览器的请求存储到许多持久请求队列,使来自一个Web浏览器的用户的请求被存储在与和所存储的请求关联的客户机标识符相关联的一个持久请求队列中的装置;将所储存的请求提供给服务器应用的装置包括向关联的Web服务器提供许多所存储的请求的装置;从服务器应用接收应答的装置包括从关联的Web服务器接收许多应答的装置;将所收到的应答提供给在远程/移动式处理系统上执行的Web浏览器的装置包括将收到的许多应答提供给许多Web浏览器,使对一个请求的应答被提供给对应于与所存储的请求关联的客户机标识符的Web浏览器的装置。
33.一种与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的计算机程序产品,其特征在于包括在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、对由第二台计算机可访问的一个服务器应用的请求的计算机可读程序代码装置;响应来自客户机应用的请求向Web浏览器提供一个中间应答的计算机可读程序代码装置;向服务器应用提供所储存的请求的计算机可读程序代码装置;接收一个来自服务器应用的应答的计算机可读程序代码装置;将收到的应答提供给在远程/移动式处理系统上执行的Web浏览器的计算机可读程序代码装置。
34.根据权利要求33的计算机程序产品,其特征在于,进一步包括用于判定的计算机可读程序代码装置,该用于判定的计算机可读程序代码装置能判定从浏览器接收的请求是不是一个延迟处理的请求,并且,在持久高速缓冲存储器进行存储的计算机可读程序代码装置和提供中间应答的计算机可读程序代码装置能与该用于判定的计算机可读程序代码装置关联。
35.根据权利要求33的计算机程序产品,其特征在于进一步包括将远程/移动式数据处理机与第二台计算机断开的计算机可读程序代码装置;将远程/移动式数据处理机与第二台计算机重新连接的计算机可读程序代码装置。
36.根据权利要求35的计算机程序产品,其特征在于进一步包括将所储存的请求的列表提供给Web浏览器供用户阅读的计算机可读程序代码装置;从Web浏览器接收一个要求取出一个从所储存的请求的列表中选定的所储存的一个请求的请求的计算机可读程序代码装置;向Web浏览器提供对根据用户输入从储存的请求的列表中选定的所储存的一个请求的相关的应答的计算机可读程序代码装置。
37.根据权利要求35的计算机程序产品,其特征在于进一步包括在应答被第二台计算机接收后通知用户收到的应答的可用性的计算机可读程序代码装置;如果用户请求该应答,就将该应答提供给Web浏览器的计算机可读程序代码装置。
38.根据权利要求35的计算机程序产品,其特征在于进一步包括建立与用户标识符关联的持久请求队列的计算机可读程序代码装置;重新连接远程/移动式数据处理机的计算机可读程序代码装置包括将远程/移动式数据处理机连接到第二台计算机的计算机可读程序代码装置,从远程/移动式数据处理机接收一个用户标识符的计算机可读程序代码装置;提供收到的应答的计算机可读程序代码装置包括将收到的应答提供给持久请求队列中与收到的用户标识符关联的请求的计算机可读程序代码装置。
39.根据权利要求38的计算机程序产品,其特征在于进一步包括检查收到的应答以判定收到的应答中是否嵌入至少一个请求的计算机可读程序代码装置;将收到的应答中的该至少一个嵌入的请求提供给由该嵌入的请求规定的服务器的计算机可读程序代码装置;接收对该嵌入的请求的应答的计算机可读程序代码装置;将对该嵌入的请求的所收到的应答存储在第二台计算机的计算机可读程序代码装置;将储存的对该嵌入的请求的所收到的应答与持久请求队列中储存的请求关联的计算机可读程序代码装置;将收到的应答提供给Web浏览器的计算机可读程序代码装置包括,将储存的所收到的应答与储存的对所嵌入的请求的应答提供给Web浏览器的计算机可读程序代码装置。
40.根据权利要求38的计算机程序产品,其特征在于进一步包括将对该请求的应答存储在第二台计算机的计算机可读程序代码装置;将储存的应答与和用户标识符关联的持久请求队列中储存的请求相关联的计算机可读程序代码装置。
41.根据权利要求40的计算机程序产品,其特征在于,建立持久请求队列的计算机可读程序代码装置包括建立许多持久请求队列的计算机可读程序代码装置,其中每个持久请求队列与一个用户标识符关联;在持久请求队列中存储的计算机可读程序代码装置包括将来自许多Web浏览器的请求存储到许多持久请求队列,使来自一个浏览器的用户的请求被存储在与该用户的用户标识符关联的一个持久请求队列中的计算机可读程序代码装置;将储存的请求提供给服务器应用的计算机可读程序代码装置包括向关联的Web服务器提供许多请求的计算机可读程序代码装置;从服务器应用接收应答的计算机可读程序代码装置包括从关联的Web服务器接收许多应答的计算机可读程序代码装置;将收到的应答提供给远程/移动式处理系统上执行的Web浏览器的计算机可读程序代码装置包括将收到的许多应答提供给许多Web浏览器,使对某个请求的应答被提供给从其该接收该请求的Web浏览器的计算机可读程序代码装置。
42.根据权利要求33的计算机程序产品,其特征在于进一步包括将来自服务器的许多应答与持久请求队列中的一项关联的计算机可读程序代码装置;将与持久请求队列中该一项关联的该许多应答提供给远程/移动式处理系统的计算机可读程序代码装置。
43.一种与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的计算机程序产品,该计算机程序产品的特征在于包括在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、对由第二台计算机可访问的一个服务器应用的请求的计算机可读程序代码装置;将客户机标识符与所储存的请求关联的计算机可读程序代码装置;向服务器应用提供所储存的请求的计算机可读程序代码装置;接收一个来自服务器应用的应答的计算机可读程序代码装置;将所接收的来自服务器的应答存入第二台计算机上驻留的服务器侧高速缓冲存储器的计算机可读程序代码装置;将所储存的所收到的应答与所储存的请求关联的计算机可读程序代码装置;将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的计算机可读程序代码装置。
44.根据权利要求43的计算机程序产品,其特征在于,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的计算机可读程序代码装置包括在随后的连接期间,将所储存的所收到的应答提供给与和所储存的请求关联的客户机标识符相关联的Web浏览器的计算机可读程序代码装置。
45.根据权利要求43的计算机程序产品,其特征在于在持久请求队列中存储的计算机可读程序代码装置包括将来自许多Web浏览器的请求存储到许多持久请求队列,使来自一个浏览器的用户的请求被存储在与和所存储的请求相关的客户机标识符相关联的一个持久请求队列中的计算机可读程序代码装置;将所储存的请求提供给服务器应用的计算机可读程序代码装置包括向关联的Web服务器提供许多所存储的请求的计算机可读程序代码装置;从服务器应用接收应答的计算机可读程序代码装置包括从关联的Web服务器接收许多应答的计算机可读程序代码装置;将收到的应答提供给在远程/移动式处理系统上执行的Web浏览器的计算机可读程序代码装置包括将收到的许多应答提供给许多Web浏览器,使对某个请求的应答被提供给对应于与所存储的请求相关的客户机标识符的Web浏览器的计算机可读程序代码装置。
全文摘要
与在暂时或断续连接第二台计算机的远程/移动式处理系统上执行的Web浏览器进行通信的方法、系统和计算机程序产品,是通过在第二台计算机的一个持久请求队列中,存储一个来自Web浏览器的、对由第二台计算机可访问的一个服务器应用的请求而实现的。本发明中的方法、系统和计算机程序产品还能对Web浏览器的异步操作进行操作和管理,其中的异步操作由服务器侧截收模块执行。
文档编号G06F12/00GK1210409SQ9811841
公开日1999年3月10日 申请日期1998年8月13日 优先权日1997年8月28日
发明者M·布朗特, R·A·弗洛伊德, 张鸿洋, B·C·豪泽尔三世, N·H·科恩, D·B·林德奎斯特, S·麦斯特里安尼, M·夏皮罗, C·D·泰特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1