在以下描述中,将给出多个特定细节。然而,对于本领域内普通技术人员而言,显然可以不利用这样的特定细节来实现本发明。在其他情况下,公知的部件或者电路只用框图形式给出,以便不使本发明埋没于不必要的细节之中。在多数情况下,与时序考虑等有关的细节都被省去,只要这样的细节对于完全理解本发明是不必要的,并且属于相关技术领域普通技术人员的常识。
现在参照图1,示出能够在其中实现本发明的数据处理系统。数据处理系统20包括处理器22、键盘82和显示器96。键盘82由电缆连接到处理器22。显示器96包括显示屏幕30,可以采用阴极射线管(CRT)、液晶显示器(LCD)、电极照明板等实现。数据处理系统20还包括指点装置84,它可以采用跟踪球、游戏杆、触感板或屏或如图所示的鼠标实现。指点装置84可被用来移动显示屏幕30上的箭头或光标。处理器22还可以连接到一个或多个外围设备,比如调制解调器92、CD-ROM78、网络适配器90和软盘驱动器40,每个外围设备相对于处理器22的外壳可以是内置或外置的。可将象打印机100这样的输出设备连接到处理器22。
本领域内的普通技术人员应该认识到,显示器96、键盘82和指点装置84每个都可以利用几个公知的现有部件实现。
现在参照图2,所示的高层框图示出根据本发明的教导可以包括在图1的数据处理系统20中的部件。该数据处理系统20主要由计算机可读的指令控制,计算机可读的指令可以采用软件的形式,而不管在哪里或利用什么手段存储或访问这种软件。这种软件可以在中央处理部件(CPU)50中执行,使得数据处理系统20工作。
与系统总线5连接的存储装置包括随机存取存储器(RAM)56,只读存储器(ROM)58,和非易失性存储器60。这种存储器包括允许存储和获取信息的电路。ROM含有不能够修改的存储数据。存储在RAM中的数据可以由CPU 50或其他硬件设备改变。非易失性存储器60是当掉电时不失去数据的存储器。非易失性存储器包括ROM、EPROM、快闪存储器或电池后备的CMOS RAM。如图2所示,这种电池后备CMOS RAM可以用来存储系统配置信息。
扩展卡或板是包括芯片或其他电子部件的电路板,被连接起来向计算机增加功能或资源。一般地,可用扩展卡增加存储器、磁盘驱动控制器66、视频支持、并行和串行口以及内置调制解调器。对于膝上计算机、掌上计算机或者其他便携计算机,扩展卡一般采取PC卡的形式,它们是信用卡大小的装置,被设计为插入到计算机侧面或背面的槽中。这种槽的一个例子是PCMCIA槽(个人计算机存储卡国际协会),定义了第1、2和3型卡槽。这样,可以采用空槽68接收各种类型的扩展卡或PCMCIA卡。
磁盘控制器66和软盘控制器70两者都包括专用集成电路和相关的电路,它们分别指导和控制从和向硬盘驱动器72以及软盘74读或写数据。这种磁盘控制器处理这样的任务,比如定位读/写头、在驱动器和CPU50之间仲裁、以及控制向和从存储器传送信息。单个磁盘控制器能够控制一个以上的磁盘驱动器。
CD-ROM控制器76可以包括在数据处理系统20中,用于从CD-ROM(小型光盘只读存储器)78读数据。这种CD-ROM采用激光光学器件而不是磁装置来读数据。
键盘鼠标控制器80设置在数据处理系统20中,用于与键盘82和指点装置84进行接口。这种指点装置一般用于控制一个屏上元件,比如一个光标,可以采用箭头的形状,它有一个热点,在用户按鼠标按键时指定指点器的位置。其他的指点装置包括图形输入板、指示笔、光笔、激戏杆、跟踪球、轨迹板和由IBM公司以“TrackPoint”商标出售的指点装置。
数据处理系统20与其他数据处理系统之间的通信可以由都与系统总线5连接的串口控制器88和网络适配器90简化。串口控制器88用于在计算机之间、计算机与外围设备之间传送信息,在单条线路上一次一位地传输。串行通信可以是同步的(由某些标准比如时钟控制)或是异步的(通过交换对信息流进行控制的控制信号来管理)。串行通信标准的例子包括RS-232接口和RS-422接口。如图所示,这种串行接口可以用于与调制解调器92通信。调制解调器是一种使得计算机能够在标准电话线上传送信息的通信装置。调制解调器92将数字计算机信号转换为适于在电话线上传输的内部时钟信号。调制解调器92可以用来将数据处理系统20连接到一个在线信息服务机构,比如由IBM和Sears以服务商标“PRODIGY”提供的信息服务机构。这种在线服务提供商可以提供经调制解调器92下载到数据处理系统20的软件。调制解调器92可以提供与比如服务器、电子公告板、因特网或万维网这样的软件资源的连接。
网络适配器90可以用来将数据处理系统20连接到局域网94。网络94可以向计算机用户提供以电子方式通信和传送软件和信息的装置。另外,网络94可以提供分布式处理,在执行一个任务时它采用几台计算机共享负载或协作。
由显示控制器98所控制的显示器96用于显示数据处理系统20所产生的视频输出。这种视频输出可以包括文本、图形、动画和影象。显示器96可以利用基于CRT的视频显示器、基于LCD的平板显示器或者基于气体等离子体的平板显示器实现。显示控制器98是用于产生发送至显示器96的视频信号的电子部件。
打印机100可以经过并口控制器102连接到数据处理系统20。打印机100用于将文本或计算机产生的图象放置到纸张或者另一介质上,比如透明胶片。其他类型的打印机可以包括图象设置器、绘图仪或者胶片记录器等。
并口控制器102用来在系统总线5与另一并行通信装置(比如打印机100)之间连接的线路上同时发送多种数据和控制位。
CPU50读取、解码和执行指令,并且经过计算机主数据传送通路(即系统总线5)向和从其他资源传送信息。这种总线连接数据处理系统20中的各个部件,并且限定数据交换的媒体。系统总线5将存储部件56、58、60和CPU 50以及其他设备连接在一起,如图2所示,并且允许在它们之间交换数据。
现在参照图3,示出能够实现本发明的掌上数据处理系统300。掌上数据处理系统300的前面板上具有显示屏幕301、手写区域302、滚动按钮303,应用程序按钮304。显示屏幕1用于显示掌上数据处理系统300中所存储的信息,并且是触感式的,能够感应用户用笔在屏幕上的点击。显示屏幕301也能够显示用户在使用应用程序时的控制和设定信息。手写区域302是用户用笔书写文本的区域。滚动按钮30用于观看超出显示屏幕301之外的文本或其他信息,包括下滚按钮和上滚按钮。应用程序按钮304用于激活各个应用程序,每个按钮具有一个特定的图标,与其应用程序相对应。掌上数据处理系统300例如可以是可从IBM公司购得的WorkPad,可从3COM公司购得的PalmPilot等。在IBM WorkPad的前面板上具有四个应用程序按钮,分别对应于记事本、通讯录、任务表和备忘录。可以重新指定应用程序按钮304,来激活WorkPad中所存储的任何应用程序。另外可为掌上数据处理系统300随机提供一支专用的笔(未示出),用于点击显示屏幕301或者在手写区域302上书写。
掌上数据处理系统300的高层框图与图2所示类似,所不同的是省略了图2中所示的某些部件,以满足掌上数据处理系统的小巧和轻便的特性。在掌上数据处理系统300中不具有象磁盘这样的大容量外存设备,而一般只设置一个存储器模块作为内存。目前的掌上数据处理系统300的总内存空间一般小于1M。虽然可以使用PCMCIA卡对内存进行扩充,但是扩充后的容量一般也只有几兆。在IBM WorkPad中,存储空间分为ROM和RAM,位于同一个存储器模块中。ROM容量为0.5至1.5MB,RAM最小容量为1M。在ROM中预先置入PalmOS的主要应用程序组。其他的或者替换的应用程序和系统扩充可以装载到RAM中,但是受RAM存储容量的限制,这并非始终是实际可行的。可以通过更换ROM对软件进行升级或提高。也可以通过安装单个存储器模块来完全更换整个系统软件和应用程序组。另外,在掌上数据处理系统300中,一般内置了较强的网络通信能力,可以与因特网或万维网取得连接。
现在参照图4,图中示出根据本发明最佳实施方式的客户/服务器体系。图4中,客户请求(比如对新闻的请求)91由客户92发送到服务器88。服务器88可以是在因特网或者其他通信网络上能够访问的远程计算机系统。客户92可以在图1所示的计算机20或者图3所示的掌上计算机300中运行。
服务器88根据客户请求,扫描和搜索原始(比如未压缩的)信息(比如在线新闻或新闻组),将过滤的电子信息作为服务器响应93提供给客户92。
客户92可以在第一计算机中活动,服务器过程可以在第二计算机系统中活动,经过通信媒体相互通信,从而提供分布式功能并允许多个客户利用服务器的信息收集能力。
在万维网的环境下,客户机内运行的浏览器进程建立与服务器的连接并且向用户提供信息。服务器内运行相应的服务器软件,该软件把信息以HTTP响应的形式提供给客户机。HTTP响应对应于由HTML语言构成的Web页,或者其他服务器产生的数据。
在客户机中运行与HTML兼容的浏览器时,利用URL来定义链接。客户机请求由链接所标识的服务器,并且从服务器接收HTML格式的文件。
本发明中可以采用任何数目的市场上可获得的浏览器。例如,可以是网景公司的Navigator、Communicator、微软公司的IE,从伊利诺伊州Urbana-Champaign市的国家超计算应用中心(NCSA)获得的Mosaic牌浏览器,或是Lynx牌浏览器。任何其他的可提供HTTP所规定的功能的浏览器都可以使用。
因特网服务一般通过指定唯一的网址(即统一资源定位符-URL)受到访问,该统一资源定位符(URL)表示到达服务器的网络路径,其中URL具有定义网络连接的特定句法。统一资源定位符分为两个基本部分,即所使用的协议和对象路径名。例如,统一资源定位符地址“http://www.uspto.gov”(美国专利商标局的主页),规定了超文本传输协议“http”和域名“www.uspto.gov”。域名与唯一的数字值(TCP/IP地址)相关联。
现在参照图5,以更详细的框图示出了根据本发明最佳实施方式的客户/服务器体系。客户92利用网络连接814与服务器88连接。为了直观起见,网络连接814为因特网、内联网或者其他公知的互连。就因特网而言,服务器88为客户92可以访问的众多服务器之一,其中标号92表示一个客户,它是运行在某台客户机上的进程,比如可以是Web浏览器、邮件阅读器、FTP(文件传输协议)客户端软件、Telnet(远程登录)客户端软件等等。
客户机可以是台式机、笔记本计算机、手持或者掌上计算机等。例如,客户机可以是在OS/2操作系统下运行的IBM或IBM兼容机、IBMThinkPad笔记本计算机,运行Windows3.1或更高版本的操作系统的其他x86或基于奔腾系列芯片的计算机,也可以是运行PalmOS操作系统的IBM WorkPad掌上计算机,或者是运行Windows CE操作系统的其他掌上型计算机,也可以是具有网络通信能力的个人数字助理(PDA)。
典型的服务器包括一台IBM RISC/6000计算机(基于所谓的RISC工作站的精简指令集),运行AIX(先进交互式执行程序版本4.1或更高)操作系统和服务器程序。通常利用拨号计算机网络,服务器从客户机接收请求,以便获得客户所请求的文件或对象,或者执行所请求的任务。在IBM公司的许多出版物中说明了基于RISC的计算机的各种型号,如《RS/6000、7013和7016 POWERstation和POWERserver硬件技术参考手册》(定购号SA23-2644-00)。在IBM公司1985年11月出版《AIX操作系统技术参考手册》第一版以及其他出版物中说明了AIX操作系统。尽管以上所述是实际可用的,但是也可以采用任何其他适宜的硬件/操作系统/服务器组合。
现在参照图6,图中示出计算机网络80,它可根据本发明的最佳实施方式实现。计算机网络80代表因特网,可以描述为根据这里所述的客户/服务器体系的公知计算机网络。当然,本领域内熟练的技术人员应认识到因特网不仅仅是根据本发明最佳实施方式采用的分布式计算机网络。也可以采用其他分布式计算机网络来实现计算机网络80,比如本领域内公知的所谓“内联网”。
理论上,因特网是包括服务器88的一个大网络,这些服务器可由客户机,一般是个人计算机的用户,通过某些专用因特网接入提供商84(比如Internet America)或者在线服务提供商(比如America On-Line、Prodigy、Compuserve等等)来访问。每个客户机上可以运行浏览器(一个客户)以经过接入提供商访问服务器88。每个服务器88操作所谓的“Web站点”。
由于本发明涉及及网络传输,故对网络及其操作原理的理解会是有帮助的。在这里并不过分深入地描述本发适用的网络的细节。例如,本发明可用于象因特网这样的全球性网络。
现在参照图7,图中示出根据本发明的为离线客户请求提供响应的装置的详细框图。图7中的客户92和服务器88与图4和图5中所示相同,网络连接814与图5中所示相同,这里不再重复。
图7中最基本的部件是网络流重定向器701、离线服务器702和请求-响应存储器703。由它们三者即可构成本发明最基本的装置。网络流重定向器701能起到以下作用。当客户92处于在线状态工作时,比如用户正在利用浏览器浏览服务器88上的网页时,网络流重定向器701对客户92与服务器88之间的数据传输不做任何改变。也就是说,客户92发往服务器88的请求仍然通过网络连接814传送到服务器88,而服务器88收到客户请求后,完成客户所请求的任务后将适当的响应通过网络连接814返回给客户92。当客户92处于离线状态工作时,即不存在或不能取得网络连接814的情况下,网络流重定向器701将把客户92的请求重定向到位于客户机本地的离线服务器702,然后离线服务器702对此请求作出适当的响应(将在后文描述)。
网络流重定向器701的上述功能,可以通过修改客户机的系统设置来实现。如在前文所述,统一资源定位符URL地址中规定了网络传输协议和域名。例如,URL“http://www.ibm.com”指明域名为“www.ibm.com”。域名与唯一的IP地址相关联。因特网中的所有数据传输都是根据IP地址进行的。因此,客户指定一个域名后,要由网络机制转换为相应的IP地址。目前的因特网中,这一转换过程是由域名服务器进行的。因此,网络流重定向器701所做的工作只是将客户所请求的域名转换为客户机本身的IP地址,或将其恢复为原来的IP地址。
而这种IP地址转换过程又可由以下简单的文件操作来完成。根据TCP/IP协议,操作系统得到URL中所含的域名后,首先在本地的文件系统中搜寻“HOSTS”文件。例如,在Windows NT操作系统中,“HOSTS”文件存储在:“\NT\system32\drivers\etc\”目录中,在UNIX操作系统中,该文件存储在“\etc\”目录中,在Windows 95操作系统中,该文件存储在“\Windows\”目录中。在该文件中可以含有域名到IP地址的转换表。每个转换表项是单独的一行。每行中,IP地址放在第一列,其后跟随相应的域名。IP地址与域名之间至少由一个空格分离。例如,在“HOSTS”文件中,可包括这样的内容:
102.54.94.97 rhino.acme.com
38.25.63.10 x.acme.com其中,包括了两个域名及其相应的IP地址。
在目前的因特网技术中,由于域名可由域名服务器转换为IP地址,所以客户机中的“HOSTS”文件一般为空,或者根本不存在。
本发明中,只需要在“HOSTS”文件中加入适当的几行,即可由操作系统将所请求的域名转换为本机的IP地址。
例如,假设本机的IP地址为“127.0.0.1”,则例如可以在“HOSTS”文件中加入以下内容:
127.0.0.1 www.ibm.com
127.0.0.1 www.uspto.gov则客户发出的所有到“www.ibm.com”或者“www.uspto.gov”的请求都被重定向到客户机本地。
当恢复客户机的系统设置时,只需简单地清空“HOSTS”文件的内容,则客户发出的所有到“www.ibm.com”或者“www.uspto.gov”的请求都自动地转到由域名服务器获得的相应IP地址。
正是由于在客户92处于离线状态时,网络流重定向器701能够将客户请示重定向到离线服务器702,并将离线服务器702的响应返回给客户92,所以才使客户92能够继续工作,就好象客户92处于在线状态下工作一样。
请求-响应存储器703中预先存储了多个请求和与这些请求相对应的多个响应。这些请求和响应可以是由用户事先定义的,也可以通过本发明提供的以下方法自动记录下来。
在客户92处于在线状态工作时,由用户设定一种请求捕获状态。在请求捕获状态下,网络流重定向器701可以始终将客户请求重定向到离线服务器702。一旦客户92发出请求,离线服务器702即可捕获该请求。然后,离线服务器702通过网络连接814将该请求发送到服务器88,并且接收服务器88返回的响应(如图7中虚线所示)。然后,离线服务器702将收到的服务器响应返回给网络流重定向器701。与此同时,离线服务器702将捕获的客户请求和收到的服务器响应按照一定的数据格式存储在请求-响应存储器703中。这里所述的数据格式不构成对本发明的限制。只要是在以后的处理中便于离线服务器702根据收到的请求以及在请求-响应存储器703中存储的多个请求和多个响应构造一个响应,就可以采用任何数据格式。网络流重定向器701收到离线服务器返回的响应之后,将该响应返回给客户92。重复上述处理过程,直到用户指定结束请求捕获状态。因此,在请求-响应存储器703中存储了多个请求和与之相对应的多个响应。
根据网络传输所采用的协议的不同,比如可以采用HTTP(超文本传输协议)、FTP(文件传输协议)、TELNET(远程登录)等等,请求和响应的数据内容是不同的。由于这些都属于本领域内熟练的技术人员的常识,故在此不必详述。
在客户92处于在线状态工作时,客户发送的每个请求经过网络连接814传送到服务器88,并且经过同一网络连接接收服务器88返回的响应。如前所述,在客户92处于离线状态工作时,或者在用户指定的请求捕获状态时,这些请求被网络流重定向器701重定向到离线服务器702,而这些响应由离线服务器702发送到网络流重定向器701,并且进而返回给客户92。
以上描述了产生请求-响应存储器703中的多个请求和多个响应的方法,即通过用户定义,或者在用户指定的请求捕获状态中由离线服务器702捕获。但是,可以理解的是,用户可以对按照上述方法产生的请求和响应进行适当编辑和修改,并且可以针对某些请求定义一些默认响应,以模拟实际情况。另外,在一个客户机上构成了请求-响应存储器703的存储内容之后,可以简单地将该请求-响应存储器703的内容拷贝到其他客户机中的请求-响应存储器中,从而免去了以上的定义、捕获、编辑的过程。
另外,本领域内熟练的技术人员应该理解到,本文中所述的存储器可以是单独的任何形式的存储器,也可以是客户机中已有存储器中的一部分存储区。例如,可以是位于图2所示的磁盘驱动器72中的数据库、文件,或者是位于图2所示的RAM 56中的存储区。在客户机为图3所示的掌上计算机的情况下,本文中所述的存储器可能是位于掌上计算机中所安装的存储卡上。
离线服务器702在客户92处于离线状态时开始工作。首先,离线服务器702接收由网络流重定向器701重定向到客户机本地的客户请求。然后,离线服务器702根据收到的客户请求以及在请求-响应存储器703中存储的多个请求和多个响应构造一个与所收到的客户请求相应的响应。
现在简要说明离线服务器702如何根据收到的请求以及在请求-响应存储器703中存储的多个请求和多个响应构造一个响应。
假设请求-响应存储器703中已经存储了以下多个请求和多个响应:
R1(请求1)
S1(响应1)
R2(请求2)
S2(响应2)
…
Rn(请求n)
Sn(响应n)。
又假设离线服务器702刚刚收到一个请求R,则离线服务器702根据公式(1)构造一个响应S:
S=f(R,R1,R2,...,Rn,S1,S2,...,Sn) 公式(1)
作为公式(1)的一种特例,响应S可以是响应S1至Sn中一员,按照公式(2)从响应S1至Sn中进行选择:
根据所采用的网络传输协议的不同,上式中的“逻辑等于”的运算方式也不尽相同。
以HTTP为例,假设R1的内容为:
GET URL1
DATE 99.01.01/HTTP
刚刚收到的请求R的内容为:
GET URL1
DATE 99.01.10/HTTP
显然,R1与R的数据内容是不相同的,但是实质部分是相同的,即都存在“GET URL1”,即都是请求URL1所标识的网络资源。所以应以相同的响应来回复。因此,离线服务器702判断为“R逻辑等于R1”,所以构造一个响应S,使其等于请求-响应存储器703中存储的S1。
值得说明的是,以上请求R1和R的数据内容只是示意性的,实际的数据内容会有所差别。但是这些差别并不构成对本发明的限制。
作为公式(1)更一般的情况,可以根据请求R、请求R1至Rn以及响应S1至Sn构造一个响应S。
在此仅举一个简单的例子。假设R1的内容为:
http://search.yahoo.com/bin/search?p=game
R的内容为:
http://search.yahoo.com/bin/search?p=Internet
虽然R1与R逻辑相等,但是两个URL中包含的参数不同,所以不能将S1作为响应S。此时,可以构造一个包括如下内容的响应S:
“对不起,本地数据不足,不能搜索‘Internet”
根据本发明,可以利用各种复杂的算法对离线服务器702进行编程,使它能够根据收到的请求R以及存储在请求-响应存储器703中的多个请求和多个响应构造出一个适当的响应S。各种不同的算法并不构成对本发明的限制。
在本发明的装置中,除了如上所述的最基本部件:网络流重定向器701、离线服务器702和请求-响应存储器703之外,本发明的装置还可以包括一个离线请求存储器705和一个实际网络服务装置706,它们都位于客户机中。在客户92处于离线状态工作时,离线服务器702一旦收到客户请求,除了根据该请求以及在请求-响应存储器703中存储的多个请求和多个响应构造一个响应之外,还将该请求接时间顺序存储到离线请求存储器705中。在客户结束离线状态后,离线请求存储器705中存储了客户92在离线状态下发送的所有请求。在客户92进入在线状态工作之后,实际网络服务装置706开始工作,它按照时间顺序依次从离线请求存储器705中取出一个请求,然后通过网络连接814发送到服务器88,由服务器88实际完成客户92曾经请求完成的工作。
更好的是,本发明的装置中还可以包括一个离线响应存储器704、一个比较装置707和一个通知装置708,它们都位于客户机中。在客户92处于离线状态工作时,离线服务器702在向网络流重定向器701返回一个响应之后,还将该响应接时间顺序存储到离线响应存储器704中。这样,离线响应存储器704中存储的响应是与离线请求存储器705中存储的请求相对应的。当然,本领域内熟练的技术人员应该理解到,离线请求存储器705和离线响应存储器704可以是单独的存储器或存储区,也可以是位于同一个存储器或存储区中,只要能够保证请求与响应之间的相关联的关系即可。这些小的差别不构成对本发明的限制。在客户结束离线状态后,不但离线请求存储器705中存储了客户92在离线状态下发送的所有请求,而且离线响应存储器704中存储了离线服务器702向客户92发送的所有响应。在客户92进入在线状态工作之后,实际网络服务装置706开始工作,它按照时间顺序依次从离线请求存储器705中取出一个请求,然后通过网络连接814发送到服务器88,由服务器88实际完成客户92曾经请求完成的工作。然后,通过网络连接814接收服务器88返回的响应,将该响应送到比较装置707。比较装置707对该响应与存储在离线响应存储器704中的与所发送的请求相关联的响应进行比较。如果比较结果指示存在逻辑错误,则启动通知装置708向用户报告这种错误。一种可能的方式是调用客户服务软件。实际网络服务装置706一直重复上述过程,直到离线请求存储器705中的请求都被检索出。
作为上述由比较装置707执行的比较运算的例子,可以对两个响应的状态码进行比较。假设将离线请求存储器705中的请求R1’发送到服务器88之后,实际网络服务装置706收到的响应S为:
S<HTTP 1.0 302 Object Not Found而在离线响应存储器704中存储的与请求R1’相关联的响应为S1’:
S1’<HTTP 1.0 200 OK比较装置707对响应S和S1’的状态码进行比较,发现它们的状态码不相等,则说明存在逻辑错误。也就是说,曾经向客户返回的响应S1’是错误的。于是,比较装置707启动通知装置708向用户报告这一逻辑错误。
当然,在实际应用中,还可能有其他的比较方法。但是这些小的差别不构成对本发明的限制。
现在参照图8,图中示出在客户处于离线状态工作时,本发明的方法的基本流程图。在步骤800开始之后,本发明的方法首先在步骤801判断客户是否进入离线状态?如果客户未进入离线状态,则不工作,或者转到图9所示的流程图。如果在步骤801判断出客户进入离线状态,则过程进行到步骤802。在步骤802,修改客户机的系统设置,使得客户请求被从网络连接重定向到客户机本地。修改客户机系统设置的方法如前文参照图7所述,可以仅是修改客户机中存储的“HOSTS”文件。在此,不再赘述。
步骤803,接收客户发送的一个请求。然后,步骤804将该请求存储到离线请求存储器中。步骤805,根据收到的请求以及在请求-响应存储器中存储的多个请求和多个响应构造一个响应。这里,离线请求存储器、请求-响应存储器以及根据收到的请求以及在请求-响应存储器中存储的多个请求和多个响应构造一个响应的方法都如前文参照图7所述。
然后,步骤806,将在步骤805构造的一个响应返回给客户,并且在步骤807将该响应存储到离线响应存储器。这里的离线响应存储器如前文参照图7所述。
接着,在步骤808判断客户是否结束离线状态。如果步骤808的判断为否,则处理转到步骤803,继续工作;否则,结束工作,或者转到图9所示的流程图。
这里值得说明的是,图中所示的有些步骤的执行顺序是可以改变的。例如,步骤804可以在步骤805之后、或者在步骤806之后、或者在步骤807之后执行,而不必紧接在步骤803之后执行。又比如,步骤807也可以在步骤806之前执行。这些细微的差别不构成对本发明的限制。另外,如果后文不利用离线响应存储器中的内容,也可以省略步骤807。
另外,离线请求存储器和离线响应存储器可以是单独的存储器或存储区,也可以是位于同一个存储器或存储区中,只要能够保证请求与响应之间的相关联的关系即可。这些小的差别不构成对本发明的限制。
现在参照图9,示出在客户结束离线状态并且进入在线状态时本发明的方法的流程图。在步骤901,判断客户是否进入在线状态,如果为否,则转到步骤910,处理结束。如果步骤901的判断为是,则转到步骤902。步骤902修改客户机的系统设置,使得客户请求被从客户机本地重定向到网络连接。修改客户机系统设置的方法如前文对步骤802所述,不再赘述。
步骤903判断离线请求存储器中是否存在仍未被检索的请求。如果步骤903判断结果为否,则处理进行到步骤910,处理结束;否则进行到步骤904。步骤904,从离线请求存储器中检索出一个请求。步骤905,通过网络连接将该请求发送到服务器,由服务器实际完成客户曾经请求过的任务。步骤906,通过网络连接接收服务器应该返回的一个响应。然后,在步骤907对服务器返回的这个响应与刚刚向服务器发送的那个请求相关联的响应(曾在前述图8的步骤807中存储到离线响应存储器中)进行比较。步骤908,判断步骤907所进行的比较运算的结果是否指示存在逻辑错误。这里所述的逻辑错误,与前文参照图7对比较装置707的描述中所述的逻辑错误具有相同的含义。如果步骤908的判断结果为否,说明在图8的步骤806中向客户返回的响应是正确的,则处理转到步骤903;否则,处理进行到步骤909。在步骤909,通过适当方式向用户通知该逻辑错误,并且由用户采取适当措施对所发送的请求进行修改。步骤909中所采用的一种可能的方式是调用客户服务软件。然后可以重新向服务器发送修改后的请求。步骤909之后,处理返回到步骤903。
现在参照图10,举例示出一个保险公司的内联网页的相互关系。当该保险公司的业务员利用客户即浏览器(比如是网景公司的Communicator或者是微软公司的IE)访问该保险公司的网址时,浏览器向服务器发送GET HTTP请求。该公司的服务器收到请求后向浏览器返回以HTML(超文本标记语言)格式书写的主页面描述文件。浏览器收到这个HTML文件后,根据文件中所含的HTML标记,按照这些标记所规定的格式,在客户机的显示屏幕上显示HTML文件中所含的其他数据。业务员看到的即是该保险公司的内联网主页1000。该主页1000中存在两个热链接,分别对应两个选项:1.销售保险;2.赔偿。
当业务员点击第一热链接(即用鼠标点击“1.销售保险”)后,浏览器从主页文件中获得第一个热连接的URL,形成另一个请求,将该请求送到服务器。服务器收到该请求后,根据请求中指定的URL,形成另一个响应,即以HTML格式书写的另一页面描述文件,返回给浏览器。浏览器收到该另一个响应,在客户机的显示屏幕上显示文件的数据,业务员看到的即是销售表格1001。在销售表格1001中,有三个空白1001A、1001B和1001C,业务员在销售保险时需要在这三个空白中填写顾客的适当数据,以完成保险的销售。如同本领域内熟练的技术人员所知,三个空白1001A、1001B和1001C中填写的数据分别作为三个参数存储在一个URL中。这里所述的三个空白只是举例而已,空白的具体数目与保险销售业务所需的顾客数据项目有关。这一点不构成对本发明的限制。
页面1001中包括两个热连接,分别对应“OK”和“取消”。如果业务员在页面1001中点击“OK”,浏览器将包括上述三个参数的URL的请求发送给服务器,服务器处理正确无误后,返回另一个HTTP响应,浏览器相应地显示“销售成功”页面1003。如果业务员在页面1001中点击“取消”,则浏览器显示“销售取消”页面1004。
类似地,当业务员在内联网主页1000中点击第二热连接(即用鼠标点击“2.赔偿”)时,浏览器显示从服务器获得的赔偿表格1002。其中也含有三个参数。如果业务员在页面1002中点击“OK”后,浏览器将向服务器发送含有三个参数数据的URL的请求。服务器处理正确无误后,返回“赔偿成功”页面1005。如果业务员在页面1002中点击“取消”,则浏览器显示“赔偿取消”页面1006。
在这一例子中,由于采用的网络传输协议是HTTP,所以在浏览器与服务器之间传送的请求和响应符合HTTP规定的格式。
假设该保险公司的某个业务员希望访问三个顾客,向其中的两位顾客销售保险,并向另一位顾客赔偿。可以采用的第一种作法是,将这三位顾客请到保险公司来,由该业务员利用位于公司内部的客户机访问公司的内联网主页,填写上述表格1001和1002,完成这些业务。但是这种将顾客请进来的作法是不现实的。第二种作法是,由业务员携带安装有浏览器的笔记本计算机或者掌上计算机外出拜访上述三位顾客。在拜访每一位顾客时,利用笔记本计算机或者掌上计算机通过拨号网络取得与保险公司服务器的连接,获得相应表格,填写所需数据,由服务器完成相应的销售或赔偿业务。由于不能保证在任何时候都能取得网络连接,并且考虑到因特网慢的传输速度以及网络传输的安全性问题,所以第二种方法也有其不利之处。
如果采用本发明,即可克服上述诸多不便。比如,在该业务员外出拜上述这三位顾客之前,将其笔记本计算机或者掌上计算机连接到公司的服务器上,然后指定进入一种如前文所述的请求捕获状态。如前文所述,在请求捕获状态下,业务员利用浏览器分别访问一遍内联网主页1000、销售表格1001、销售成功1003、销售取消1004、赔偿表格1002、赔偿成功1005和赔偿取消1006。在完成这一过程之后,在该业务员的笔记本计算机或者掌上计算机中所安装的请求-响应存储器中就已经存储了在其外出期间需要向保险公司的服务器发送的各种请求以及相应的响应。
当然,请求-响应存储器的数据内容也可以由保险公司的计算机技术人员预先定义和编辑。在每位业务员外出办理业务之前,将制定好的数据内容拷贝到业务员的笔记本计算机中的请求-响应存储器中,或者将适当的存储卡安装到其掌上计算机中。
这样,在外出期间,可以不建立与公司服务器的网络连接,即客户离线工作,也能够获得与在线工作一样的效果。
现在参照图11,示出浏览器在离线状态下工作时可得到的响应的举例。
比如,在业务员拜访第一位顾客时,运行浏览器,根据本发明的方法或者装置,即可根据浏览器发送的请求以及在请求-响应存储器中存储的多个请求和多个响应构造一个相应的响应,浏览器获得该响应,显示内联网主页1100。因为业务员向第一位顾客销售保险,所以点击“1.销售保险”。浏览器同样可以获得一个根据浏览器请求以及在请求-响应存储器中存储的多个请求和多个响应构造的的响应,并且显示销售表格1101。业务员在空白1101A、1102B和1103C中填写第一位顾客的有关数据,然后点击“OK”。浏览器获得相应响应,显示销售成功1103。然后退出浏览器。在这一过程中,在业务员的笔记本计算机中所安装的离线请求存储器和离线响应存储器中存储了多个请求和多个响应。
与上述过程类似地,在业务员拜访第二位顾客之后,在离线请求存储器和离线响应存储器中增加了多个请求和多个响应。
在业务员拜访第三位顾客时,启动浏览器,显示内联网主页1100。因为要向第三位顾客赔偿,所以点击“2.赔偿”。浏览器获得一个根据浏览器请求以及在请求-响应存储器中存储的多个请求和多个响应构造的响应,并且显示赔偿表格1102。业务员填写顾客数据,然后点击“OK”。浏览器获得相应响应,显示赔偿成功1105。然后退出浏览器。在这一过程中,在业务员的笔记本计算机中所安装的离线请求存储器和离线响应存储器中又增加了多个请求和多个响应。
因此,按照本发明的方法或者装置,无论是对于业务员来讲还是对于顾客来讲,上述过程就如同浏览器在线工作一样。
在业务员返回保险公司之后,可以将其笔记本计算机通过内联网与服务器连接,根据本发明的方法或装置即可自动地将离线请求存储器中的多个请求分别发送到服务器,由服务器完成实际的任务,即两次销售和一次赔偿。当然,如前文所述,在一过程中,有可能向业务员报告存在的逻辑错误。比如,在销售保险时,顾客将其年龄误填为90岁,当时浏览器得到的响应是“销售成功”。而根据该保险公司的规定,对于年龄在90岁或90岁以上的人不提供保险,所以服务器在进行这项任务时,返回比如“年龄不能超过90岁”这样的响应。因此,出现逻辑错误,则将该逻辑错误通知给业务员,比如在浏览器窗口中显示“顾客年龄不得超过90岁”。然后,业务员可以向顾客核实或者修改错误的顾客数据,再次发送请求。
另外,可将本发明的方法实现为计算机程序,然后存储到计算机可读的程序记录媒体上。实际应用中,可将该程序安装到客户端软件所在的移动装置中,从而不必修改客户端软件,即可使客户端软件能够在离线状态下工作。这里所指的程序记录媒体可以包括各种形式,比如以磁的形式或者以光的形式。各种不同的形式不构成对本发明的限制。
虽然以上结合附图详细描述了本发明的最佳实施方式,但是对于本领域内熟练的技术人员而言,可以做出各种修改和变更,而不背离本发明的范围和实质。因此,本发明的范围仅由权利要求书限定。