在客户机-服务器分布式系统中使用的方法、服务器和客户机的制作方法

文档序号:6412841阅读:108来源:国知局
专利名称:在客户机-服务器分布式系统中使用的方法、服务器和客户机的制作方法
技术领域
本发明涉及在使用同步通信的客户机-服务器分布式系统中使用的方法、服务器和客户机。更具体地说,本发明涉及一种方法、服务器和客户机,用所述方法、服务器和客户机,可以减少从客户机对服务器进行服务器功能调用时起直到客户机接收到已完成服务器功能的通知为止的周转时间。
背景技术
在使用诸如计算机的信息处理终端的客户机-服务器分布式系统中的常规同步通信中,客户机对服务器进行服务器功能调用。服务器执行相应于被调用的服务器功能的处理。当已完成该处理时,服务器发送完成的通知给客户机。
图13是时序图,示出在诸如上面所述的常规同步通信中,服务器与客户机之间的处理流程。在图13中,客户机能够执行处理操作的时间是由阴影表示的。客户机对服务器进行服务器功能调用。客户机不能执行任何过程,直到从服务器接收到已完成服务器功能的通知为止。从客户机调用服务器功能时起直到客户机被通知已完成服务器功能为止的时间称为“周转时间(turnaroundtime)”。由于客户机在周转时间期间不能执行任何处理的问题,因此提出了一种用于减少周转时间技术,即减少客户机等待时间的技术(例如,见日本公开专利出版物编号9-330287)。
图14是时序图,示出在日本公开专利出版物编号9-330287中描述的常规同步通信方法的流程。在图14中,客户机包括客户机命令部件,用于在客户机侧执行过程并调用服务器功能;和用于与服务器通信的通信控制部件。当产生调用服务器功能的需求时,客户机命令部件请求通信控制部件调用服务器功能。响应于该请求,通信控制部件立即向客户机命令部件返回完成通知,表示服务器功能调用已经失败。同时,通信控制部件通过异步通信发送请求消息给服务器,以请求服务器功能的执行。已接收了请求消息的服务器执行相应于所请求的服务器功能的处理。在完成服务器功能处理时,服务器发送完成消息给客户机。客户机的通信控制部件保存已从服务器发送的完成消息的内容。当通信控制部件从客户机命令部件接收请求以再次调用这个服务器功能时,通信控制部件基于在那里保存的完成消息的内容,通知客户机命令部件该服务器功能的完成。
如上所述,通过使用在日本公开专利出版物编号9-330287中描述的同步通信方法,可以减少客户机的周转时间。
在上述常规同步通信方法中,通信控制部件立即返回完成通知至客户机命令部件,即服务器功能的执行已失败,由此可以减少客户机的周转时间。然而,由于不是在将服务器功能完成通知返回至客户机命令部件时进行实际服务器功能调用,因此客户机命令部件需要至少调用服务器功能两次以确认服务器功能调用的处理结果。
另外,由于完成服务器功能处理的时间是不知道的,因此客户机有可能在从服务器接收到完成消息之前进行第二次服务器功能调用,导致不必要处理的产生。
发明概述因此,本发明的目标是,为客户机-服务器系统提供一种同步通信方法、服务器和客户机,用所述方法、服务器和客户机,在服务器执行相应于服务器功能的处理的情况下,可以减少从客户机对服务器进行服务器功能调用时起直到客户机接收到已完成服务器功能的通知为止的周转时间,而不使客户机多次调用服务器功能。
本发明具有下列特征以获得上面提到的目标。本发明的第一方面是针对一种在客户机-服务器分布式系统中使用的方法,在该系统中客户机对服务器进行所希望的服务器功能调用,并且服务器执行相应于被调用的服务器功能的处理,该方法包括下列步骤注册为预处理,该处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理;注册为后处理,该处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理;以及建立经注册的预处理和经注册的后处理与表示服务器功能的服务器功能标识符之间的对应。
在上述方法中,相应于服务器功能的处理可以被划分成预处理和后处理。
较佳的是,该方法还包括下列步骤由客户机发送请求消息给服务器以调用所希望的服务器功能,请求消息包括表示所希望的服务器功能的服务器功能标识符;由服务器从客户机接收请求消息;由服务器执行相应于包括在请求消息中的服务器功能标识符的预处理;由服务器获得预处理的执行结果;由服务器发送完成消息给客户机,完成消息包括预处理的结果;在已发送了完成消息之后,由服务器执行相应于包括在请求消息中的服务器功能标识符的后处理;以及由客户机基于预处理的执行结果执行处理。
在上述方法中,在完成预处理时将完成消息返回给客户机。由于对于客户机所必需的最小信息是通过预处理获得的,因此客户机可以在接收到完成消息之后继续处理。因此,可以减少周转时间。另外,服务器在预处理之后执行后处理,由此调用所希望的服务器功能。
较佳的是,该方法还包括下列步骤由服务器获得后处理的执行结果;由服务器发送后处理结果消息给客户机,后处理结果消息包括后处理的执行结果;以及由客户机基于后处理的执行结果执行处理。
在上述方法中,由于客户机被通知后处理的执行结果,客户机可以基于后处理的执行结果执行所希望的处理。
较佳的是,该方法还包括下列步骤如果接收到取消服务器功能调用的取消指令,则由客户机预先注册一个条件,所述条件用于基于取消指令来确定是否取消服务器功能调用;如果接收到取消指令,则由客户机基于取消指令来确定是否取消服务器功能调用;以及如果确定取消服务器功能调用,则由客户机取消服务器功能调用。
在上述方法中,由于可以取消服务器功能调用,因此例如,在已进行不必要的服务器功能调用的情况下,可以减少周转时间。
本发明的第二方面是针对一种用于执行由客户机调用的服务器功能的服务器,包括预处理注册部件用于注册为预处理,该处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理;后处理注册部件,用于注册为后处理,该处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理;以及服务器功能对应部件,用于建立经注册的预处理和经注册的后处理与表示服务器功能的服务器功能标识符之间的对应。
较佳的是,该方法还包括接收部件,用于从客户机接收请求消息,请求消息包括表示由客户机调用的服务器功能的服务器功能标识符;预处理执行部件,用于执行相应于包括在请求消息中的服务器功能标识符的预处理并输出预处理的执行结果;发送部件,用于给客户机发送完成消息,完成消息包括已由预处理执行部件输出的预处理的执行结果;以及后处理执行部件,用于在发送部件已发送完成消息之后,执行相应于包括在请求消息中的服务器功能标识符的后处理。
较佳的是,后处理执行部件输出后处理的执行结果,以及发送部件向客户机发送后处理结果消息,后处理结果消息包括已由后处理执行部件输出的后处理的执行结果。
本发明的第三方面是针对一种用于对服务器进行所希望的服务器功能调用的客户机,包括发送部件,用于发送请求消息给服务器以调用所希望的服务器功能,请求消息包括表示所希望的服务器功能的服务器功能标识符;接收部件,用于从服务器接收完成消息,完成消息包括相应于包括在请求消息中的服务器功能标识符的预处理的执行结果,预处理是由服务器执行的;以及控制部件,用于基于已由接收部件接收到的预处理的执行结果来执行处理,其中,服务器功能标识符与预处理和后处理相对应,预处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理,后处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理。
较佳的是,服务器向客户机发送后处理结果消息,后处理结果消息包括后处理的执行结果,接收部件接收已从服务器发送的后处理结果消息,以及控制部件基于包括在后处理结果消息中的后处理的执行结果来执行处理。
较佳的是,该客户机还包括取消条件注册部件,用于如果接收到取消服务器功能调用的取消指令,则由客户机预先注册一个条件,该条件用于基于取消指令来确定是否取消服务器功能调用,以及如果接收到取消指令,则控制组件基于在取消条件注册部件注册的条件来确定是否取消服务器功能调用,并且如果确定取消服务器功能调用,则控制部件取消服务器功能调用。
如上所述,按照本发明,相应于服务器功能的处理被划分成预处理和后处理,并在完成预处理时将完成消息返回给客户机。由于对于客户机所必需最小信息是通过预处理获得的,因此客户机可以在接收到完成消息之后继续处理。因此,可以减少周转时间。另外,服务器在预处理之后执行后处理,由此调用所希望的服务器功能。
通过下面本发明的详细描述并结合附图,本发明的这些和其它目标、特征、方面和优点将变得更显而易见。


图1是方框图,示出按照本发明第一实施例的客户机-服务器系统的示例性结构;图2示出保存在服务器功能对应部件103中的服务器功能与预处理和后处理之间的示例性对应表;图3是时序图,描述在按照第一实施例的客户机-服务器系统中服务器10b与客户机10a之间处理的大纲;图4是流程图,示出按照本发明第一实施例的客户机-服务器系统的所有操作的细节;图5是流程图,示出能够获得后处理执行结果的客户机-服务器系统的所有操作的细节;图6是方框图,示出按照本发明第二实施例的整个客户机-服务器的示例性结构;图7是流程图,示出按照第二实施例的客户机-服务器系统的所有操作;图8是流程图,示出在客户机通知服务器取消了服务器功能调用的情况下客户机-服务器系统的所有操作;图9是流程图,示出在客户机发送恢复消息给服务器的情况下客户机-服务器系统的所有操作;图10是时序图,示意性地示出在按照第一个例子的客户机-服务器系统中处理的流程;图11是时序图,示意性地示出在按照第二个例子的客户机-服务器系统中处理的流程;图12是时序图,示意性地示出按照第三个例子的客户机-服务器系统中处理的流程;图13是时序图,示出以常规的同步通信方法在服务器与客户机之间处理的流程;以及图14是时序图,示出在日本公开专利出版物编号9-330287中描述的常规同步通信方法的流程。
详细说明下面将参考附图,描述本发明的实施例。
(第一实施例)图1是方框图,示出按照本发明第一实施例的客户机-服务器系统的示例性结构。
在图1中,客户机-服务器系统包括客户机10a和服务器10b。客户机10a和服务器10b可以彼此通信。在本实施例所示的客户机-服务器系统中,客户机10a通过同步通信对服务器10b进行在服务器10b上处理并执行的服务器功能调用。
在客户机10a和服务器10b是分开、单独的设备的情况下,客户机10a和服务器10b使用例如,无线通信诸如蓝牙、无线LAN或红外线无线通信或有线通信诸如ISDN、ADSL、串行电缆或并行电缆来互相通信。在单一装置中提供客户机10a和服务器10b的情况下,客户机10a和服务器10b在处理、任务或线程期间互相通信。注意,虽然在图1中提供单个客户机10a和单个服务器10b,但可提供多个客户机10a和多个服务器10b。
客户机10a包括客户机命令部件104和通信控制部件112。客户机命令部件104在客户机侧执行过程并根据该过程调用服务器功能。通信控制部件112控制客户机命令部件104与服务器10b之间的通信。
通信控制部件112具有同步通信部件105、异步通信发送部件106和异步通信接收部件111。同步通信部件105通过同步通信从客户机命令部件104接收服务器功能调用并发送请求给异步通信发送部件106以调用服务器功能。另外,同步通信部件105从异步通信接收部件111接收来自服务器的完成消息,并通知客户机命令部件104服务器功能的完成。异步通信发送部件106从同步通信部件105接收调用请求,并通过异步通信发送请求消息给服务器。异步通信接收部件111从服务器接收完成消息,并通知同步通信部件105完成。
服务器10b包括服务器命令部件100、预处理注册部件101、后处理注册部件102、服务器功能对应部件103、异步通信接收部件107、预处理执行部件108、异步通信发送部件109和后处理执行部件110。
预处理注册部件101注册预处理。预处理是相应于已由客户机10a调用的服务器功能的处理的一部分,并且是一直到获得对于客户机10a所必需的最小信息时的点的处理。在执行预处理随后的处理(即,将在后面描述的后处理)之前,服务器10b发送预处理的执行结果给客户机10a。
后处理注册部件102注册后处理。后处理是相应于已由客户机10a调用的服务器功能的处理的一部分,并且是在服务器10b发送预处理的执行结果给客户机10a之后执行的处理,即相应于服务器功能除预处理之外的处理的一部分。
将在后面描述的例子中描述预处理和后处理。
响应于服务器控制顺的指令,服务器命令部件100请求预处理注册部件101或后处理注册部件102注册预处理和后处理。服务器命令部件100可响应于来自连接到服务器10b的客户机的指令或者响应于来自在服务器10b上执行的应用的指令来进行这样的请求。
基于来自预处理注册部件101和后处理注册部件102的指令,服务器功能对应部件103创建并保存服务器功能与预处理和后处理之间的对应表。图2示出服务器功能与预处理和后处理之间的示例性对应表,它被保存在服务器功能对应部件103中。如在图2中所示,服务器功能对应部件103以表格化的形式注册代表服务器功能的标识符(在下文中称为“服务器功能标识符”)及其相应的预处理和后处理。在图2所示的例子中,预处理1被注册为服务器功能A的预处理,而后处理2被注册为服务器功能A的后处理;预处理2被注册为服务器功能B的预处理,而后处理1被注册为服务器功能B的后处理;以及预处理3被注册为服务器功能C的预处理。在将这样一个表注册在服务器功能对应部件103中的情况下,例如,当客户机10a请求服务器功能A时,服务器10b执行预处理1,发送预处理1的执行结果至客户机10a,随后执行后处理2。
异步通信接收部件107从客户机10a接收请求消息以调用服务器功能并将请求消息传递给服务器功能对应部件103。服务器功能对应部件103请求预处理执行部件108执行预处理。预处理执行部件108随后将预处理的执行结果返回给服务器功能对应部件103。服务器功能对应部件103基于已从预处理执行部件108返回的预处理执行结果创建完成消息,并将完成消息传递给异步通信发送部件109。异步通信发送部件109通过异步通信发送完成消息给客户机10a。在服务器功能对应部件103已将完成消息传递给异步通信发送部件109之后,服务器功能对应部件103请求后处理执行部件110执行相应于被调用的服务器功能的后处理。响应于来自服务器功能对应部件103的请求,后处理执行部件110执行后处理。
图3是时序图,用于说明在按照第一实施例的客户机-服务器系统中服务器10b与客户机10a之间处理的大纲(outline)。参考图3,下面将描述在按照第一实施例的客户机-服务器系统中服务器10b与客户机10a之间处理的大纲。
在客户机10a的客户机命令部件104产生调用服务器功能的请求的情况下,通信控制部件112通过异步通信发送请求消息到服务器106以调用服务器功能。
已接收了请求消息的服务器10b只执行相应于所请求的服务器功能的预处理。在完成预处理时,服务器10b发送完成消息给客户机10a,以通知客户机10a预处理的执行结果。之后,服务器10b执行后处理。
当客户机10a的通信控制部件112从服务器10b接收到完成消息时,通信控制部件112通知客户机命令部件104已完成服务器功能调用。如此,客户机命令部件104可以接收预处理的执行结果。
图4是流程图,示出按照本发明第一实施例的客户机-服务器系统的所有操作的细节。参考图4,下面将描述按照第一实施例的客户机-服务器系统的所有操作的细节。在图4中,步骤S201至S203是由服务器10b执行的操作。步骤S204和S205是由客户机10a执行的操作。步骤S206至S210是由服务器10b执行的操作。步骤S211和S212是由客户机10a执行的操作。
首先,服务器10b的预处理注册部件101从服务器命令部件100接收请求以注册预处理并执行注册过程(步骤S201)。接着,预处理注册部件102从服务器命令部件100接收请求以注册后处理并执行注册过程(步骤S202)。注意,虽然在本实施例中在步骤S201和S202的注册请求是由服务器命令部件100产生的,但可执行注册过程使得服务器10b从客户机10a的客户机命令部件104接收注册请求并将注册请求分别发送给预处理注册部件101和后处理注册部件102。在服务器从服务器操作员接收到指令时,或者在服务器从与其连接的客户机接收到指令时,或者服务器从在服务器10b上执行的应用接收到指令时,可执行步骤S201和S202。
随后,服务器功能对应部件103存储经注册的预处理和后处理,使得相应于服务器功能标识符(步骤S203)。注意,虽然在本实施例中,在注册预处理和后处理之后的某一时刻,服务器功能对应部件103创建预处理和后处理与服务器功能标识符之间的对应,但可每次在步骤S201和S202执行注册过程时建立对应。
在由客户机10a的客户机命令部件104产生请求以调用一个特定的服务器功能的情况下,同步通信部件105通过同步通信接收调用请求(步骤S204)。服务器功能调用请求包括调用服务器功能所要求的信息和通过异步通信建立同步通信所要求的地址信息,诸如所请求的服务器功能的服务器功能标识符、源信息、目的地信息,以及在执行预处理时所要求的数据和在执行后处理所要求的数据。
随后,已接收到服务器功能调用请求的同步通信部件105允许异步通信发送部件106通过异步通信发送请求消息给服务器10b以调用服务器功能(步骤S205)。
服务器10b的异步通信接收部件107从客户机10a接收请求消息(步骤S206)。
服务器功能对应部件103参考保存在那里的表,确定相应于包括在接收到的请求消息中的服务器功能标识符的预处理,并随后允许预处理执行部件108执行相应的预处理(步骤S207)。注意,只在执行预处理时所要求的数据包括在步骤S206所接收到的请求消息中时,预处理执行部件108使用该数据在步骤S207执行预处理。
预处理执行部件108输出在步骤S207执行的预处理的执行结果至服务器功能对应部件103(步骤S208)。
服务器功能对应部件103将从预处理执行部件108获得的执行结果传递给异步通信发送部件109,随后允许异步通信发送部件109创建包括执行结果的完成消息,并通过异步通信将完成消息发送给客户机10a(步骤S209)。完成消息包括通知客户机10a已完成服务器功能请求所需要的信息,诸如源信息和目的地信息,以及预处理的执行结果。作为目的地的客户机10a的地址是基于包括在请求消息中的源信息来确定的。
在已在步骤S209将完成消息发送给客户机10a之后,服务器功能对应部件103确定相应于服务器功能标识符的后处理并允许后处理执行部件110执行后处理(步骤S210)。注意,只有在执行后处理时所要求的数据包括在步骤S206所接收到的请求消息中时,后处理执行部件110使用该数据在步骤S210执行后处理。
客户机10a的异步通信接收部件111从服务器10b接收完成消息,并通知同步通信部件105完成(步骤S211)。
同步通信部件105相应地通知客户机命令部件104已完成服务器功能调用(步骤S212)。完成通知包括在完成消息中所包括的预处理的执行结果。已接收到通知的客户机命令部件104继续所希望的处理。
如上所述,在第一实施例中,服务器10b注册相应于服务器功能的处理,以便将它划分成预处理和后处理。在由客户机10a产生请求以执行服务器功能的情况下,服务器10b执行相应于服务器功能的预处理并在完成预处理的执行时发送完成消息给客户机10a。如此,客户机10a可以在已完成所有相应于服务器功能处理(即,预处理和后处理)之前接收完成消息,并可以执行所希望的处理,因而与客户机10a在已完成所有相应于服务器功能的处理之后接收完成消息并执行所希望的处理相比较,可以减少周转时间。另外,通过只调用服务器功能一次,客户机10a可以识别完成相应于服务器功能的最小必需处理时的点,因而客户机10a不需要多次调用服务器功能。
注意,在图4中所示的流程图描述了注册预处理的过程(步骤S201),注册后处理的过程(步骤S202)和建立对应的过程(步骤S203)是顺序地与在步骤S204的处理之后的过程一起执行的;但是,在步骤S201至S203的过程一般预先独立于在步骤S204的过程之后的过程执行。
在第一实施例中,如果在步骤S201中没有预先执行注册预处理,在执行服务器10b从客户机10a接收到请求消息的步骤S206时,服务器10b可跳过执行预处理的步骤S207和输出预处理的执行结果的步骤S208,并可在步骤S209发送不包括预处理的执行结果的完成消息。
在第一实施例中,在图2所示的服务器功能C的情况下,例如,如果在步骤S202中没有预先执行注册后处理,在执行服务器10b从客户机10a接收请求消息的步骤S206时,服务器10b可跳过执行后处理的步骤S208。也就是说,不总是需要分别执行注册预处理和后处理的步骤S201和S202两者。
(第一实施例的变体)前述第一实施例没有明确地描述在后处理执行部件110已完成后处理的执行之后执行的操作。另一方面,在第一实施例的变体中,服务器10b可通知客户机10a后处理的执行结果。
图5是流程图,示出能够获得后处理的执行结果的客户机-服务器系统的所有操作的细节。参考图5,下面将描述能够获得后处理的执行结果的客户机-服务器系统的所有操作的细节。注意,在图5中,表示与在图4中所示的客户机-服务器系统的操作相同操作的步骤由相同的步骤数字指定,并将省略其描述。在图5中,步骤S401和S402是由服务器10b执行的操作。明确地说,服务器10b执行步骤S210,然后是步骤S401和S402。步骤S403和S404是由客户机10a执行的操作。
已在步骤S210执行了后处理的服务器10b的后处理执行部件110输出后处理的执行结果至服务器功能对应部件103(步骤S401)。
服务器功能对应部件103随后将后处理的执行结果传递给异步通信发送部件109,并允许异步通信发送部件109创建包括执行结果的后处理结果消息,随后通过异步通信将后处理结果消息发送给客户机10a(步骤S402)。后处理结果消息包括通知客户机10a服务器已完成所有相应于服务器功能调用的处理所必需的信息,诸如源信息和目的地信息,以及后处理的执行结果。作为目的地的客户机10a的地址是基于包括在请求消息中的源信息来确定的。
随后,客户机10a的异步通信接收部件111从服务器10b接收后处理结果消息(步骤S403)。
同步通信部件105通知客户机命令部件104包括在接收到的后处理结果消息中的后处理执行结果,因此通知服务器已完成所有相应于服务器功能调用的处理(步骤S404)。客户机命令部件104相应地基于后处理的执行结果继续所希望的处理。
如此,客户机可以获得后处理的执行结果,由此客户机被通知服务器已完成所有相应于服务器功能调用的处理。
(第二实施例)本发明的第二实施例具有除在第一实施例中描述的功能之外的功能,即客户机不仅可以处理完成消息,而且还可以处理取消消息,它表示已取消服务器功能调用。已接收到取消消息的客户机取消服务器功能调用。参考附图,下面将描述第二实施例。
图6是方框图,示出按照本发明第二实施例的整个客户机-服务器系统的示例性结构。注意,在图6中,具有与在图1中所示的功能相同的功能的相同组件由相同的参考数字指定,并将省略其描述。
在图6中,按照第二实施例的客户机10c包括客户机命令部件104c和通信控制部件502。通信控制部件502具有同步通信部件105c、异步通信发送部件106、异步通信接收部件111c和取消条件注册部件501。
取消条件注册部件501注册用于基于包括在取消消息中的信息确定是否取消服务器功能调用的条件。
图7是流程图,示出按照第二实施例的客户机-服务器系统的所有操作。参考图7,下面将描述客户机清除等待完成消息的状态的操作。注意,在图7中,与在图4中所示的操作相同的操作由相同的步骤数字指定,并将省略其描述。
客户机命令部件104c在取消条件注册部件501中预注册一个条件,在客户机10c接收取消消息时,使用该条件基于取消消息确定是否取消服务器功能调用(步骤S601)。可以在任何步骤S201、S202、S203和S204之前或之后的任何时间执行步骤S601的操作,或者可预先完全独立于这些操作来执行它。
在步骤S602,客户机10c的异步通信发送部件111c从服务器10b接收完成消息或接收取消消息。注意,异步通信接收部件111c在步骤S602接收到的消息是在步骤S209从服务器10b发送的完成消息、从客户机命令部件104c发送的取消消息和从另一个客户机50a发送的取消消息中的任何一个。
随后,异步通信接收部件111c确定在步骤S602接收到的消息是否是取消消息或完成消息(步骤S603)。如果它被确定为完成消息,则客户机10c前进至步骤S212的操作。
另一方面,如果它被确定为取消消息,异步通信接收部件111c基于在步骤S601中注册在取消条件注册部件501中的条件来确定是否取消服务器功能调用(步骤S604)。
如果在步骤S604确定要取消服务器功能调用,则异步通信接收部件111c通知同步通信部件105c已取消服务器功能调用。同步通信部件105c相应地通知客户机命令部件104c已取消服务器功能调用(步骤S605)。在收到通知时,客户机命令部件104c恢复处理。另一方面,如果在步骤S604确定不取消服务器功能调用,则异步通信接收部件111c返回至步骤S602的操作并恢复接收消息。
如上所述,按照第二实施例,客户机10c的通信控制部件502可以接收取消消息也可以接收完成消息。通信控制部件502可以在其中注册一个条件,在接收取消消息时,使用该条件来确定是否取消服务器功能调用。在通信控制部件502接收到取消消息的情况下,通信控制部件502基于上述条件确定是否取消服务器功能调用过程。如果确定取消服务器功能调用,则由客户机进行的服务器功能调用在过程中被取消,由此可以减少周转时间。
如果客户机10c在已取消服务器功能之后从服务器10b接收到完成消息,则客户机10c可丢弃这个完成消息。
(第二实施例的第一变体)已取消服务器功能调用的客户机10c的异步通信发送部件106响应于收到取消消息,可不仅给服务器10b发送请求消息,而且还可发送客户机-至-服务器取消消息,它表示已取消服务器功能调用。在这种情况下,服务器10b的异步通信接收部件107可不仅接收请求消息,而且还可接收客户机-至-服务器取消消息作为要从异步通信发送部件106发送的消息。在异步通信接收部件107接收到客户机-至-服务器取消消息的情况下,服务器10b不发送对服务器功能调用的响应给客户机10c。将在图8中详细地描述此操作。
图8是流程图,示出在客户机通知服务器已取消服务器功能调用的情况下客户机-服务器系统的所有操作。参考图8,下面将描述在客户机已取消服务器功能调用的情况下客户机-服务器系统的所有操作。注意,在图8中,表示与在图7中所示的操作相同操作的步骤由相同的步骤数字指定,并将省略其描述。
如果在步骤S604确定取消服务器功能调用,则异步通信接收部件111c通知同步通信部件105c已取消服务器功能调用(步骤S605)。同步通信部件105c相应地允许异步通信发送部件106发送客户机-至-服务器取消消息给服务器10b(步骤S701)。
在已输出预处理的执行结果(步骤S208)之后,服务器10b确定服务器10b是否已从客户机10c接收到客户机-至-服务器取消消息(步骤S702)。如果在步骤S702确定服务器10b还没有接收到客户机-至-服务器取消消息,则服务器10b前进至步骤S209的操作。另一方面,如果确定服务器10b已接收到客户机-至-服务器取消消息,则服务器10b前进至步骤S206的操作,在这里服务器10b从客户机10c接收另一个请求消息,而不执行步骤S209和S210的操作。
按照上述方法,在从客户机10c将客户机-至-服务器取消消息发送给服务器10b的情况下,服务器10b不需要将对服务器功能调用的响应发送给客户机10c。另外,即使在步骤S202注册了后处理,服务器10b也不需要执行已变得不必要的后处理。
(第二实施例的第二变体)在前述第一变体中,在客户机10c接收到取消消息的情况下,客户机10c的异步通信发送部件106取消服务器功能调用,随后发送客户机-至-服务器取消消息至服务器10b。在这种情况下,已发送客户机-至-服务器取消消息的异步通信发送部件106可发送恢复消息以恢复被取消的服务器功能调用。这里,服务器10b的异步通信接收部件107不仅可以接收请求消息和客户机-至-服务器取消消息,而且还可以接收恢复消息。当服务器10b从客户机10c接收恢复消息以恢复服务器功能调用时,服务器10b执行响应于收到客户机-至-服务器取消消息而没有执行的后处理,由此可以恢复服务器功能调用。将在图9中详细地描述该操作。
图9是流程图,示出在客户机发送恢复消息给服务器的情况下客户机-服务器系统的所有操作。参考图9,下面将描述在客户机发送恢复消息给服务器的情况下客户机-服务器系统的操作。在图9中,表示与图8的操作相同的操作的步骤由相同的步骤数字指定,并将省略其描述。
在客户机10c已在步骤S701发送客户机-至-服务器消息给服务器10b之后,客户机命令部件104c确定是否发送恢复消息给服务器10b以恢复被取消的服务器功能调用(步骤S801)。如果确定发送恢复消息,则客户机命令部件104c允许同步通信部件105c和异步通信发送部件106发送恢复消息给服务器10b(步骤S802)。注意,可以在步骤S701的操作之后任何时间执行步骤S801的操作。
在步骤S205之后,服务器10b从客户机10c或者接收请求消息或者接收恢复消息(步骤S803)。
服务器10b随后确定在步骤S803接收到的消息是请求消息还是恢复消息(步骤S804)。如果确定该消息是请求消息,则服务器10b前进至步骤S207的操作。另一方面,如果确定该消息是恢复消息,则服务器10b前进至步骤S210的操作并执行后处理。
按照上述方法,在服务器10b在接收客户机-至-服务器取消消息之后从客户机10c接收到恢复消息的情况下,服务器10b执行因服务器功能调用的取消而未执行的后处理。由此,可以恢复被取消的服务器功能处理。
现在,将使用有关服务器功能、预处理和后处理的具体例子来描述本发明的例子。
(第一个例子)本发明的第一个例子描述使用图象解码服务器作为服务器的情况下的客户机-服务器系统。
按照惯例,在客户机请求服务器作为一个服务器功能来执行图象解码过程,服务器执行图象解码过程,随后发送解码结果给客户机,并且服务器恢复控制。然而,这个处理流程引起在客户机上显示布局的时延。要克服此问题,按照本发明第一个例子的图象解码服务器,将在图象解码过程之中用于获得图象尺寸的处理注册为预处理,并将用于解码图象的处理注册为后处理。由此,可以克服在显示布局时的时延问题。在本例的预处理中,获得有关被解码图象尺寸的信息作为对于客户机的最小必需信息。
图10是时序图,示意性地示出按照第一个例子的客户机-服务器系统中处理的流程。如在图10中所示,当客户机选择一个URL(步骤S1)时,客户机发送在URL中显示的图象数据至图象解码服务器,并作为一个服务器功能请求图象解码服务器解码图象(步骤S2)。
响应于该请求,图象解码服务器作为预处理从所发送的图象数据获得图象的尺寸(步骤S3)并作为预处理的执行结果通知客户机图象的尺寸(步骤S4)。
客户机等待显示相应于图象数据的部分,直到客户机由图象解码服务器通知图象的尺寸(步骤S5)为止。当客户机接收到图象尺寸的通知时,客户机基于图象的尺寸空出一个嵌入图象的区域,随后显示布局(步骤S6)。
在预处理之后,图象解码服务器作为后处理解码图象(步骤S7)。在完成后处理时,图象解码服务器发送被解码的图象至客户机,作为后处理的执行结果(步骤S8)。
客户机相应地在空出的区域中显示已发送给它的图象(步骤S9)。
如上所述,在第一个例子中,在预处理中,服务器预先获得仅有关图象尺寸的信息,这是对于客户机显示布局的最低需要,随后将该信息发送给客户机。之后,服务器作为后处理解码图象,随后发送被解码的图象给客户机。如此,客户机可以开始布局过程而不需要等待服务器完成解码处理。
(第二个例子)本发明的第二个例子描述使用假名-日本汉字转换服务器作为服务器的情况下的客户机-服务器系统。
按照惯例,在服务器尝试在客户机指定日本汉字候选(candidate)的时间点上执行获得预言性数据(predictive data)的过程的情况下,获得过程要求一些时间并因此对于客户机要费时间来显示预言性数据。另一方面,为了改进显示预言性数据的响应时间,如果客户机在客户机请求服务器获得候选的同时尝试获得预言性数据,则对于客户机要费时间来显示候选。要克服此问题,按照本发明第二个例子的假名-日本汉字转换服务器,将在假名-日本汉字转换处理之中用于提取候选的处理注册为预处理,并将用于获得预言性数据的处理注册为后处理。在本例的预处理中,获得有关假名-日本汉字转换候选的信息,作为对于客户机的最低必需信息。
图11是时序图,示意性地示出按照第二个例子的客户机-服务器系统中处理的流程。如在图11中所示,当客户机输入假名(步骤S11)时,客户机请求假名-日本汉字转换服务器获得转换候选(步骤S12)。
响应于该请求,假名-日本汉字转换服务器作为预处理提取相应于所发送的假名的转换候选(步骤S13),随后发送转换候选给客户机,作为预处理的执行结果(步骤S14)。
客户机等待执行处理直到假名-日本汉字转换服务器通知客户机转换候选为止(步骤S15)。当客户机被通知转换候选时,客户机显示转换候选(步骤S16)。随后,客户机从转换候选选择一个候选,并将所确定的结果通知服务器(步骤S17)。这里,假设选择的是“犬”。
在预处理之后,假名-日本汉字转换服务器作为后处理组织相应于转换候选的预言性数据(步骤S18)。例如,假名-日本汉字转换服务器组织预言性数据,使得如果选择的是“狗”,则提取“与游玩”作为预言性数据,而如果选择的是“犬”,则提取“不喜欢”和“的名字”作为预言性数据。由于在本例中,已选择了“犬”,因此假名-日本汉字转换服务器通知客户机相应于“犬”的预言性数据,作为后处理的结果(步骤S19)。
客户机相应地显示所通知的预言性数据(步骤S20)。
如上所述,在第二个例子中,用于提取转换候选的处理被注册为预处理,而将用于组织预言性数据的处理注册为后处理。在已完成用于提取转换候选的处理的时候,服务器允许客户机恢复控制。如此,由于由客户机执行的转换候选的显示和由服务器执行的预言性数据的组织是同时进行的,因此可以减少在指定汉字候选时显示预言性数据的响应时间。
(第三个例子)本发明第三个例子描述使用移动-图象(moving-image)服务器作为服务器的情况下的客户机-服务器系统。
在第三个例子中,“活动状态”表示应用当前正在被用户操作,而“不活动状态”表示应用当前没有被用户操作。在第三个例子中使用的应用可以是常驻应用,或者是非常驻应用。这里,常驻应用指一种应用,在接收到不活动的请求之后,在操作的同时进入不活动状态。非常驻应用指一种应用,在收到不活动请求时完全停止。在下面的描述中,每个应用是常驻应用。
在移动终端诸如移动电话中,当电话应用接收到电话呼叫请求时,电话应用播放振铃音以通知用户有进入的呼叫。移动-图象应用服务器再现带有声音的移动图象。由于移动终端通常不能同时输出两种或多种声音,因此争用仲裁应用确定应用(例如,电话应用和移动-图象应用服务器)之间的争用,并允许每个应用从其活动状态转移到其不活动状态。按照惯例,在当移动-图象应用服务器处于活动状态中时有一个进入的呼叫,电话应用请求争用仲裁应用将电话应用带到活动状态。争用仲裁应用随后请求移动-图象应用服务器进入不活动状态。响应于不活动请求,移动-图象应用服务器停止移动图象,存储中间信息,随后通知争用仲裁应用移动-图象应用已进入不活动状态。争用仲裁应用相应地通知电话应用允许电话应用进入活动状态。电话应用随后开始播放振铃音。在常规方法中,如上所述,电话应用必须等待开始播放振铃单直到移动图象应用存储中间信息为止,导致长周转时间。
要克服该问题,在收到不活动请求时,按照本发明第三个例子的移动图象应用,将在用于将移动图象应用带到不活动状态的处理之中用于停止移动-图象的处理注册为预处理,而将用于存储有关移动图象应用的中间信息为文件的处理注册为后处理。
图12是时序图,示意性地示出按照第三个例子的客户机-服务器系统的处理流程。如在图12中所示,当电话应用处于不活动状态(步骤S21)时,电话应用已接收到进入呼叫通知(步骤S22)。电话应用相应地通过同步通信请求争用仲裁应用确定是否允许电话应用进入活动状态(步骤S23),从而进入同步返回等待状态(步骤S35)。
处于事件等待状态中的争用仲裁应用(步骤S24)相应地请求通过同步通信请求移动-图象应用服务器进入不活动状态(步骤S25),从而进入同步返回等待状态(步骤S31)。
作为预处理,处于活动状态(步骤S26)的移动-图象应用服务器停止正在运行的移动图象(步骤S27),从而进入不活动状态(步骤S28)。移动-图象应用服务器随后发送OK通知给争用仲裁应用移动-图象应用服务器已进入不活动状态(步骤S29)。之后,作为后处理,移动-图象应用服务器存储有关移动图象应用的中间信息作为文件(步骤S30)。中间信息包括有关停止点、移动图象的显示位置、颜色调整等的信息。通过存储这样的中间信息作为文件,移动-图象应用服务器可以恢复移动图象的再现。
当处于同步返回等待状态(步骤S31)的争用仲裁应用从移动-图象应用服务器接收到OK通知时,争用仲裁应用清除其同步返回等待状态(步骤S32),并发送OK通知给电话应用允许电话应用进入活动状态(步骤S33),从而进入事件等待状态(步骤S34)。
响应于来自争用仲裁应用的OK通知,电话应用从同步返回等待状态(步骤S35)转到活动状态(步骤S36),随后开始播放其振铃音(步骤S37)。如此,可以避免声音之间的争用。
如上所述,在第三个例子中,用于避免声音之间争用的最低必需处理被注册为预处理,而将用于为再次再现移动图象进行准备的处理注册为后处理,由此可以减少电话应用和争用仲裁应用中的周转时间。
如上所述,在按照本发明的客户机-服务器系统中使用的方法、服务器和客户机使减少从客户机通过同步通信进行服务器功能请求时起直到客户机接收到服务器功能完成的通知为止的周转时间成为可能,因而对于具有很少硬件性能的设备或系统诸如移动电话或PDA是有用的。
虽然已详细地描述了本发明,前面的描述在所有方面是说明性的而不是限制性的。应该理解,可以在不脱离本发明的范围的情况下设计出众多的其它修改和变化方案。
权利要求
1.一种在客户机-服务器分布式系统中使用的方法,在所述系统中客户机对服务器进行所希望的服务器功能调用,并且服务器执行相应于被调用的服务器功能的处理,其特征在于,所述方法包括下列步骤注册为预处理,所述处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理;注册为后处理,所述处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理;以及建立经注册的预处理和经注册的后处理与表示服务器功能的服务器功能标识符之间的对应。
2.如权利要求1所述的方法,其特征在于,还包括下列步骤由客户机发送请求消息给服务器以调用所希望的服务器功能,请求消息包括表示所希望的服务器功能的服务器功能标识符;由服务器从客户机接收请求消息;由服务器执行相应于包括在请求消息中的服务器功能标识符的预处理;由服务器获得预处理的执行结果;由服务器发送完成消息给客户机,完成消息包括预处理的执行结果;在已发送了完成消息之后,由服务器执行相应于包括在请求消息中的服务器功能标识符的后处理;以及由客户机执行基于预处理的执行结果处理。
3.如权利要求2所述的方法,其特征在于,还包括下列步骤由服务器获得后处理的执行结果;由服务器发送后处理结果消息给客户机,后处理结果消息包括后处理的执行结果;以及由客户机执行基于后处理的执行结果处理。
4.如权利要求2所述的方法,其特征在于,还包括下列步骤如果接收到取消服务器功能调用的取消指令,则由客户机预先注册一个条件,所述条件用于基于取消指令来确定是否取消服务器功能调用;如果接收到取消指令,则由客户机基于取消指令来确定是否取消服务器功能调用;以及如果确定取消服务器功能调用,则由客户机取消服务器功能调用。
5.一种用于执行由客户机调用的服务器功能的服务器,其特征在于,包括预处理注册部件用于注册为预处理,所述处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理;后处理注册部件,用于注册为后处理,所述处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理;以及服务器功能对应部件,用于建立经注册的预处理和经注册的后处理与表示服务器功能的服务器功能标识符之间的对应。
6.如权利要求5所述的服务器,其特征在于,还包括接收部件,用于从客户机接收请求消息,请求消息包括表示由客户机调用的服务器功能的服务器功能标识符;预处理执行部件,用于执行相应于包括在请求消息中的服务器功能标识符的预处理并输出预处理的执行结果;发送部件,用于给客户机发送完成消息,完成消息包括已由预处理执行部件输出的预处理的执行结果;以及后处理执行部件,用于在发送部件已发送完成消息之后,执行相应于包括在请求消息中的服务器功能标识符的后处理。
7.如权利要求6所述的服务器,其特征在于后处理执行部件输出后处理的执行结果;以及发送部件向客户机发送后处理结果消息,后处理结果消息包括已由后处理执行部件输出的后处理的执行结果。
8.一种用于对服务器进行所希望的服务器功能调用的客户机,其特征在于,包括发送部件,用于发送请求消息给服务器以调用所希望的服务器功能,请求消息包括表示所希望的服务器功能的服务器功能标识符;接收部件,用于从服务器接收完成消息,完成消息包括相应于包括在请求消息中的服务器功能标识符的预处理的执行结果,预处理是由服务器执行的;以及控制部件,用于基于已由接收部件接收到的预处理的执行结果来执行处理,其中,服务器功能标识符与预处理和后处理相对应,预处理是相应于服务器功能的处理的一部分并且是一直到获得对于客户机所必需的最小信息时的点的处理,后处理是相应于服务器功能的处理的一部分并且是在预处理之后执行的处理。
9.如权利要求8所述的客户机,其特征在于,其中,服务器向客户机发送后处理结果消息,后处理结果消息包括后处理的执行结果,接收部件接收已从服务器发送的后处理结果消息,以及控制部件基于包括在后处理结果消息中的后处理的执行结果来执行处理。
10.如权利要求9所述的客户机,其特征在于,还包括取消条件注册部件,用于如果接收到取消服务器功能调用的取消指令,则预先注册一个条件,所述条件用于基于取消指令来确定是否取消服务器功能调用,其中如果接收到取消指令,则控制组件基于在取消条件注册部件注册的条件来确定是否取消服务器功能调用,并且如果确定取消服务器功能调用,则控制部件取消服务器功能调用。
全文摘要
在客户机-服务器-分布式数据系统中的同步通信中,减少从客户机调用服务器功能时起直到客户机接收到服务器功能完成的通知为止的周转时间。服务器包括预处理注册部件用于注册预处理;后处理注册部件用于注册后处理;服务器命令部件用于请求注册预处理和后处理;以及服务器功能对应部件用于建立预处理和后处理与服务器功能标识符之间的对应。当服务器从客户机接收到请求消息以调用服务器功能时,服务器执行预处理并发送包括预处理的执行结果的完成消息至客户机。在发送完成消息之后,服务器执行后处理。
文档编号G06F9/54GK1581142SQ20041005641
公开日2005年2月16日 申请日期2004年8月6日 优先权日2003年8月6日
发明者秦秀彦, 山下健 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1