会话管理系统及其控制方法

文档序号:7706484阅读:280来源:国知局
专利名称:会话管理系统及其控制方法
技术领域
本发明涉及一种用于管理在应用程序之间的通信中指示逻辑连接关系的会 话的技术。
背景技术
传统上,己知包括PC (个人计算机,Personal Computer)、打印机及MFP (多功能外围设备,Multi-Function Peripheral)的各种信息处理装置作为通信装 置在网络(诸如LAN (局域网,Local Area Network)的内联网、或者互联网) 上使用。
如今,在连接到网络的信息处理装置中广泛使用IP协议,在IP协议下, 对各信息处理装置分配唯一的IP地址(通信地址),从而使连接的装置相互识 别。
通常,在传统的IP协议(IPv4 (IP版本4, IP Version 4))下,对单个网 络接口分配单个IP地址作为用于从其它信息处理装置识别一个信息处理装置 的IP地址。
另一方面,在最近广泛使用的IPv6 (IP版本6, IP Version 6)下,终端装 置在连接到路由器时与路由器通信,以自动获取IP地址。另外,为了使得在没 有路由器时也能够进行通信,除了IP地址之外,还基于网络接口来分配IPv6 地址。
另外,有时存在DHCP (动态主机配置协议,Dynamic Host Configuration Protocol)服务器。在使用IPv6的环境中,如上所述对单个网络接口分配多个 IPv6地址。因而,在支持IPv6的信息处理装置中,对单个网络接口分配IPv4 地址及多个IPv6地址。
在信息处理装置相互通信的情况下,创建传输发送方与传输目的地的网络 套接字(socket),即IP地址与端口号对。创建网络套接字的处理消耗作为各信息处理装置的网络资源的存储空间及其CPU处理时间。
由于该原因,连接到用于通信的多个信息处理装置的服务器消耗其在量上
与连接数目相对应的网络资源。另一方面,打印机、MFP等信息处理装置可用 的网络资源的量比服务器可用的网络资源的量小,因此能够同时连接到信息处 理装置的通信装置的数目也较小。
另外,在TCP通信中,不管数据的大小,开放网络套接字之前花费的时间 段设定为比在UDP通信中长,而且每单位时间能够建立的同时连接的数目被限 制为比在UDP通信中小的值,因而,来自客户机的一连串请求导致服务器中的 连接错误。
为了解决该问题,提出了一种技术,其在客户机服务器系统中的客户机中 提供的多个应用程序与分配有相同地址的服务器建立多个会话以与其进行通信 的情况下,可以节约网络资源(参见日本特开平10-177548号公报)。
然而,当将多个IPv6地址分配给单个网络接口时,在日本特开平10-177548 号公报中公开的技术即使在与同一服务器通信时,也不能节约与多个服务器地 址建立连接而消耗的网络资源。

发明内容
本发明提供一种会话管理系统及其控制方法。
在本发明的第一方面,提供一种会话管理系统,其用于管理具有多个地址 的服务器与客户机之间的会话,该会话管理系统包括确定单元,其被配置为
在设置有所述客户机的应用程序请求与所述服务器通信的情况下,确定是否已 在所述客户机与所述服务器之间建立了使用与所述应用程序所指定的地址不同 的地址的会话;以及控制单元,其被配置为在确定已建立了会话时、使所述应 用程序通过使用已建立的会话与所述服务器通信,并且在确定未建立会话时、 使所述应用程序通过使用新建立的会话与所述服务器通信。
在本发明的第二方面,提供一种控制会话管理系统的方法,所述会话管理 系统用于管理具有多个地址的服务器与客户机之间的会话,该方法包括在设 置有所述客户机的应用程序请求与所述服务器通信的情况下,确定是否在所述 客户机与所述服务器之间已建立了使用与所述应用程序指定的地址不同的地址 的会话;在确定已建立了会话时,使所述应用程序通过使用已建立的会话与所述服务器通信;以及在确定未建立会话时,使所述应用程序通过使用新建立的 会话与所述服务器通信。
根据本发明,当对单个网络接口分配多个通信地址时,可以高效地利用或 者节约网络资源。
通过下面参照附图对示例性实施方式的详细描述,本发明的其它特征将变 得更加明显。


包含在说明书中并构成说明书的一部分的附图示出本发明的实施方式,并 与说明书一起用来说明本发明的原理。
图1是根据本发明的第一至第三及第七实施方式的应用会话管理系统的客 户机服务器系统的软件配置的图。
图2是示出图1所示的客户机PC或服务器PC的硬件配置的框图(第一至 第三实施方式)。
图3是详细示出服务器PC的服务器进程间通信部的软件配置的框图(第 一至第三实施方式)。
图4是详细示出客户机PC的客户机进程间通信部的软件配置的框图(第 一至第三实施方式)。
图5是会话管理信息的示例的图(第一至第七(第六)实施方式)。
图6是第一实施方式中的服务器PC的服务器进程间通信部执行的会话管 理处理的流程图。
图7是第一实施方式中的客户机PC的客户机进程间通信部执行的会话管 理处理的流程图。
图8A和8B是图6及7中的处理的示例的序列图(在不存在现有会话的情 况下)。
图9A和9B是图6及7中的处理的示例的序列图(在存在现有会话的情况下)。
图IOA和10B是本发明的第二实施方式中的客户机PC的客户机进程间通 信部执行的会话管理处理的流程图。
图11A和11B是在第二实施方式中在服务器PC与客户机PC之间执行的会话管理处理的序列图。
图12A和12B是本发明的第三实施方式中的客户机PC的客户机进程间通 信部执行的会话管理处理的流程图。
图13A和13B是在第三实施方式中在服务器PC与客户机PC之间执行的 会话管理处理的序列图。
图14是根据本发明的第四至第六实施方式的应用会话管理系统的客户机 服务器系统的软件配置的图。
图15是详细示出根据第四实施方式的客户机PC的客户机进程间通信部的 软件配置的框图。
图16是第四实施方式中的地址列表信息的图。
图17是第四实施方式中的会话管理信息的示例的图。
图18是在第四实施方式中执行的会话管理处理的流程图。
图19是详细示出在图18中的步骤S1801中执行的地址列表获取处理的流 程图。
图20是在第五实施方式中的地址列表获取处理中执行的会话管理处理的 流程图。
图21是图20中的流程图的继续。
图22A和22B是在第六实施方式中执行的会话管理处理的流程图。 图23是在通过不同的识别信息指定相同服务器的情况下的地址列表信息 的示例的图。
图24是详细示出根据第七实施方式的客户机PC的客户机进程间通信部的 软件配置的框图。
图25是第七实施方式中的会话管理信息的示例的图。
图26A和26B是在第七实施方式中执行的会话管理处理的流程图。
图27是图26A中的流程图的继续。
具体实施例方式
现在,参照示出本发明的实施方式的附图详细描述本发明。应当注意,本 发明不局限于下文描述的第一至第七实施方式。另外,对于本发明而言,根据 第一至第七实施方式的特征的所有组合并非是绝对必要的。图1是根据本发明的第一至第三及第七实施方式的应用会话管理系统的客 户机服务器系统的软件配置的图。
如图1所示,客户机PC (客户机终端)100与服务器PC 105经由网络106 互连。在第一至第三及第七实施方式中,假定通过LAN或WAN来实现网络 106,但是可以使用与LAN及WAN不同类型的网络。另外,可以不通过网络 106、而通过正EE 1394或1284标准等定义的接口 (线缆)来连接客户机PC 100 与服务器PC105。
在第一至第七实施方式中,假定利用通用PC (个人计算机,Personal Computer)而不是可能使用打印机或MFP (多功能外围设备,Multifunction Peripheral)的PC来实现客户机PC 100。也就是说,第一至第七实施方式的特 征可以应用于各种各样的配备有网络通信功能的装置,例如便携式信息终端、 扫描器及传真机。
客户机PC 100包含客户机应用程序101及101a。第一实施方式还可以应 用于客户机PC 100仅包含一个或两个以上客户机应用程序的情况(这也适用于 第二至第七实施方式)。
客户机应用程序101及101a分别使用分支线(stub)对象102及102a进 行通信。在这种情况下,由客户机进程间通信部103进行实际通信处理。
客户机进程间通信部103使用操作系统的通信库104a与服务器PC 105进 行通信。使用通信库104a进行的通信不仅包括套接字(IP地址+端口号)通信, 而且包括RPC (远程过程调用,Remote Procedure Call)、 LPC (本地过程调用, Local Procedure Call)、以及Web服务等进行的通信。
服务器应用程序108在服务器PC 105上运行。服务器应用程序108使用服 务器进程间通信部107进行通信。服务器进程间通信部107使用通信库104b 经由网络106与客户机PC 100通信。可以提供一个或更多个服务器应用程序 108。
如上所述,客户机进程间通信部103及服务器进程间通信部107执行客户 机应用程序101或101a与服务器应用程序108之间的实际通信处理。该实际通 信处理包括涉及一系列请求及响应的会话管理处理。换句话说,客户机进程间 通信部103及服务器进程间通信部107执行本发明特有的会话管理处理。
虽然在图1中的客户机服务器系统中,客户机与服务器各自通过PC(个人计算机)来实现,但是第一至第三实施方式可以应用于包括其它网络设备、配 备有通信功能的信息处理装置、外围装置等的客户机服务器系统。在这种情况
下,只需要将系统配置为使用设置在客户机PC 100及服务器PC 105以外的网 络设备等中的CPU、ROM或RAM来执行由图1中的客户机服务器系统中的客 户机PC 100或服务器PC 105进行的程序操作。
利用具有如图2所示的配置硬件的计算机2000分别实现客户机PC 100及 服务器PC105。
计算机2000包括主控制器200、键盘209、显示设备210、以及作为外围 设备的外部存储器211。主控制器200包括CPU201、 RAM 202、 ROM 203、 键盘控制器205、显示控制器206、盘控制器207及网络控制器208。
CPU 201对连接到系统总线204的设备进行集中控制。CPU 201基于存储 在ROM203中的程序ROM 203b或者外部存储器(HD) 211中的应用程序(文 档处理程序、服务提供程序等)执行包括文档处理及服务提供处理的各种处理。
提供文档处理程序用于进行以混合方式处理包含图形、图像、文本及表格 (包括电子表单)的文档的文档处理。另外,外部存储器211不仅可以存储用 于文档处理的应用程序,而且可以存储用于获取和处理诸如关于静止图像或运 动图像的图像信息、以及包括音乐信息、声音信息的视频信息等的各种信息的 应用程序。
CPU 201进行用于将例如描边字(outline font)光栅化到固定在RAM 202 中的显示RAM中的处理,从而经由显示控制器206在显示设备210上显示字 符串。另外,基于由鼠标光标(未示出)等在显示设备210上指定的命令,CPU 201打开各种窗口中相关联的窗口,并执行各种数据处理或服务提供处理中相 关联的处理。在使用客户机应用程序101或101a或者服务器应用程序108的情 况下,用户可以打开应用程序的配置窗口,以在窗口上配置各种设置。显示设 备210可以利用CRT显示设备、液晶显示设备、等离子显示设备等中的任何一 种来实现。
RAM 202用作CPU 201的主存储器、工作区等。ROM 203包括字体ROM 203a、程序ROM 203b及数据ROM 203c。
字体ROM 203a及外部存储器211存储用于文档处理及服务提供处理的字 体数据等。程序ROM 203b及外部存储器211存储作为CPU 201的控制程操作系统以及类似的其它程序。数据ROM 203c及外部存储器211存储用于文 档处理及服务提供处理的各种数据(包括程序)。在执行时将存储在外部存储器 211中的程序各自加载于RAM202中。
键盘控制器205控制来自键盘209及定点设备(未示出)的输入数据及命 令。显示控制器206控制显示设备210的显示操作。盘控制器207控制对外部 存储器211的访问。
网络控制器208经由双向接口 212连接到网络106。网络控制器208执行 各自在图1中所示的客户机进程间通信部103或107及通信库104a或104b的 网络和会话的连接或断开。
键盘209配备有用于输入各种数据及命令的键。显示设备210显示文档处 理、服务提供处理等中所涉及的各种信息。利用硬盘(HD, hard disk)、软盘 (FD, flexible disk)等来实现外部存储器211 。外部存储器211存储引导程序、 各种应用程序、字体数据、用户文件、编辑后的文件等。外部存储器211还存 储作为用于执行各个处理的应用程序的控制程序,下文参照图6至9B、图10A 及11B以及图12A至13B所示的流程图及序列图描述这些处理。
图3是详细示出服务器PC 105的服务器进程间通信部107的软件配置的框图。
服务器进程间通信部107包括服务器进程间通信控制器301及服务器标识 符发送部302,并且响应来自客户机PC100的通信请求。更具体地说,响应于 来自客户机PC 100的请求,服务器进程间通信控制器301使服务器标识符发送 部302将服务器应用程序108生成的服务器标识符504 (参见图5)或响应数据 发送回客户机PC 100。下文中将详细描述作为响应发送服务器标识符504的处 理。
图4是详细示出客户机PC 100的客户机进程间通信部103的软件配翼的框 图。在图4中,省略了参照图1描述的分支线对象102及102a (这同样适用于 图15及24)。如图4所示,客户机进程间通信部103包括进程间通信控制器401、 服务器标识符获取部402、会话管理部403、 DB (数据库,database)管理部 405、会话断开管理部407、以及会话重新连接管理部409。客户机进程间通信 部103还包括会话确定部404、会话管理信息DB406、以及连接参考计数存储 部408。客户机进程间通信部103在进程间通信控制器401的控制下执行会话管理, 从而控制在客户机应用程序101及101a与服务器应用程序108之间执行的通信 操作。服务器标识符获取部402获取从服务器PC 105的服务器标识符发送部 302返回的服务器标识符504。服务器标识符504用来选择要使用的会话。
会话管理部403进行生成会话信息的处理,或者确定是否删除存储在会话 管理信息DB 406中的管理信息的一部分。会话确定部404确定与在请求连接 时指定的目的地地址不同的目的地地址的现有会话,是否包括涉及服务器标识 符504 (服务器识别信息)所标识的相同服务器的会话。换句话说,会话确定 部404确定是否通过建立新的会话或者通过使用现有会话来执行通信。
DB管理部405控制对会话管理信息DB 406 (参见图5)的访问。会话断 开管理部407基于连接参考计数来管理会话断开。连接参考计数存储部408存 储连接参考计数。该连接参考计数用来确定关闭会话的定时。会话重新连接管 理部409执行控制,以通过重新连接到另一地址(套接字)来继续当前在出现 通信错误的会话中执行的通信。
图5是会话管理信息DB 406中登记的会话管理信息的示例的图。应用程 序标识符501是用于识别发出了连接请求的客户机应用程序101或101a的标识 符(实例句柄)。
请求地址信息502指示在客户机应用程序101或10la请求连接时由客户机 应用程序101或101a指定的目的地地址。目的地地址包括IP地址502a及端口 号502b。通信地址信息503指示在基于指定的目的地地址确定了现有会话可用 之后、选择用于实际通信的会话的连接目的地(服务器PC105)的地址。该通 信地址包括IP地址503a及端口号503b。
除了 IP地址503a及端口号503b之外,通信地址信息503还可以包含作为 端口号503b的替代信息的端点、或者作为IP地址503a及端口号503b的替代 信息的信道信息。
由连接请求侧的客户机应用程序101或lOla通过基于目的地地址(IP地 址、端口号等)请求服务器PC 105来获取服务器标识符504 (实例句柄)。会 话号505是分配给基于在连接请求侧的客户机应用程序101或lOla与作为连接 目的地的服务器应用程序108之间交换的一系列请求及响应(数据传送)而建 立的各会话的识别编号。接下来,参照图6中的流程图描述服务器PC 105的服务器进程间通信部 107执行的会话管理处理。
在接收到来自客户机PC 100的连接请求时,服务器进程间通信部107的服 务器进程间通信控制器301使服务器标识符发送部302生成服务器标识符504 (步骤S601)。实现唯一识别的UUID (通用唯一标识符,Universally Unique Identifier)等用作服务器标识符504。从这时起,服务器PC 105的服务器进程 间通信部107返回相同服务器标识符504,而不管接收到数据包的套接字的IP 地址及端口号。
接下来,服务器进程间通信控制器301从客户机PC 100经由通信库104b 接收数据包(步骤S602)。然后,服务器进程间通信控制器301确定从客户机 PC 100接收到的数据包是否用于进行获取服务器标识符504的请求(步骤 S603)。
如果数据包用于进行获取服务器标识符504的请求,则服务器进程间通信 控制器301向请求服务器标识符504的客户机PC返回在步骤S601中服务器标 识符发送部302生成的服务器标识符504。该处理在步骤S604中进行。在这种 情况下,使用通信库104b经由网络106将服务器标识符504作为响应包返回给 客户机PCIOO。
然后,服务器进程间通信控制器301确定是否已接收到服务结束指令(步 骤S608)。如果尚未接收到服务结束指令,则该处理返回到步骤S602,继续提 供服务。
另一方面,如果接收到的数据包不是用于进行获取服务器标识符504的请 求,则服务器进程间通信控制器301确定接收到的数据包是否是传输新数据的 请求(步骤S605)。
如果接收到的数据包请求传输新数据,则服务器进程间通信控制器301生 成用于向客户机PC100传送数据的套接字(步骤S606)。基于作为通信协议的 TCP协议通过接受处理,使用通信库104b来进行该套接字生成处理。
在执行步骤S606之后,该处理进入到步骤S607。另一方面,如果接收到 的数据包未请求传输新数据,则该处理跳过步骤S606中的套接字生成处理, 进入到步骤S607。
在步骤S607中,服务器进程间通信控制器301使服务器应用程序108对在步骤S602中接收到的数据包执行服务处理。更具体地说,服务器进程间通 信控制器301将接收自客户机PC 100的数据传送给服务器应用程序108,服务 器应用程序108根据来自客户机PC 100的请求生成响应数据。另外,服务器应 用程序108将生成的响应数据传送给服务器进程间通信控制器301。服务器进 程间通信控制器301使用通信库104b经由网络106将响应数据返回给客户机 PC 100。然后,服务器进程间通信控制器301执行步骤S608。
接下来,参照图7中的流程图描述客户机PC 100的客户机进程间通信部 103执行的会话管理处理。由进程间通信控制器401实际或直接执行本流程图 的处理(这同样适用于图IOA、 IOB、 12A、 12B、 18、 20、 21、 26A和26B)。
客户机进程间通信部103的进程间通信控制器401接受向服务器PC 105 的服务器应用程序108做出的连接请求(步骤S701)。该连接请求是从客户机 应用程序101或101a做出的。
然后,进程间通信控制器401经由服务器标识符获取部402获取响应于发 送到目的地地址的连接请求而从服务器PC 105返回的服务器标识符504 (步骤 S702)。更具体地说,在进程间通信控制器401的控制下,服务器标识符获取 部402使用通信库104a,将用于获取服务器标识符504的获取请求信息经由网 络106发送给服务器PC105。另夕卜,在进程间通信控制器401的控制下,服务 器标识符获取部402获取从服务器PC 105发送的服务器标识符504。
然后,在进程间通信控制器401的控制下,会话管理部403确定是否存在 与在步骤S702中获取的服务器标识符504相同的服务器标识符504相关联的 现有会话(步骤S703)。
在这种情况下,会话管理部403使DB管理部405从会话管理信息DB 406 获取会话管理信息。然后,会话管理部403基于会话管理信息来确定当前在使 用其它地址的通信中的现有会话之中,是否存在与作为对此时做出的连接请求 的响应而获取的服务器标识符504相同的服务器标识符504相关联的现有会话。 该确定处理由会话确定部404实际进行。
参考图5中的会话管理信息的示例,在管理号1及2指示的通信中,从客 户机应用程序101或101a做出连接到不同地址的连接请求。虽然地址是不同的, 但是利用相同服务器PC 105执行这些通信。在这种情况下,创建多个会话与相 同服务器PC 105通信效率不高,因此使用单个会话执行管理号1及2指示的通信。
更具体地说,例如,在首先开始管理号1指示的通信的状态下开始管理号 2指示的通信的情况下,进程间通信控制器401不创建新的会话。相反,进程
间通信控制器401选择管理号1指示的现有会话作为用于管理号2指示的通信 的数据传送会话(步骤S707)。然后,该处理进入到在下文中描述的步骤S708。
当选择了现有会话时,如果会话基于UDP协议(非连接型协议)通信,则 不需要断开会话,但如果会话基于TCP协议(连接型协议)通信,则需要断开 会话。这适用于图IOA至12B中的每一个中的步骤S707。
如果不存在与此时获取的服务器标识符504相同的服务器标识符504相关 联的现有会话,则会话管理部403创建新的套接字,以建立新的会话(步骤 S704)。在这种情况下,会话管理部403使用通信库104a基于客户机应用程序 101或101a指定的目的地地址创建新的套接字。
接下来,会话管理部403使DB管理部405在会话管理信息DB 406中登 记包含新套接字的关于新会话的信息(步骤S705)。然后,进程间通信控制器 401基于客户机应用程序101或101a指定的目的地地址选择新会话,用于当前 的数据传送会话(步骤S706)。
接下来,进程间通信控制器401利用在步骤S706或S707中选择的会话, 将来自客户机应用程序101或101a的数据传送给服务器应用程序108 (步骤 S708)。
应当注意,当选择新会话作为数据传送会话时,在步骤S704至S708中客 户机应用程序101或101a指定的目的地地址与实际通信的通信地址彼此相同。 因此,通过新会话进行的通信处理与在作为传统进程间通信技术的RPC (远程 过程调用)中进行的通信处理相同。
另一方面,当选择现有会话时,客户机应用程序101或101a指定的目的地 地址与实际通信的通信地址互不相同。然而,作为对此时做出的连接请求的响 应在步骤S702中获取的服务器标识符504与现有会话中的服务器标识符504 相同。因此,客户机PC100的客户机进程间通信部103能够与同一服务器PC 105的服务器进程间通信部107通信。
由于该原因,在本实施方式中,在步骤S707中的处理中,选择与作为对 此时做出的连接请求的响应而获取的服务器标识符504相同的服务器标识符504相关联的现有会话,用于当前的数据通信会话。在这种情况下,不基于客 户机应用程序101或101a指定的目的地地址为数据通信重新创建套接字(会 话)。
通过如此在不重新创建套接字的情况下利用现有会话来执行通信,客户机 PC 100及服务器PC 105可以实现通信套接字数目的减少,这有助于网络资源 的节约。
接下来,进程间通信控制器401确定是否接收到了来自客户机应用程序101 或101a的关闭请求、或者来自通信库104a的断开请求(步骤S709)。如果既 未接收到关闭请求,也未接收到断开请求,则该处理返回到步骤S701,继续执 行步骤S701至S709。
另一方面,如果接收到了关闭请求或者断开请求,则会话管理部403使通 信库104a执行关闭处理,以关闭使用与关闭(断开)请求相关联的地址的会话 或套接字(步骤S710)。然后,会话管理部403使DB管理部405基于步骤S710 中的处理的结果更新会话管理信息DB406中的会话管理信息(步骤S711)。
接下来,参照图8A至图9B所示的序列图描述图6及7所示的处理的示例。 图8A和8B示出没有上述现有会话的情况下的处理序列。
在图8A中的处理P801中,当服务器应用程序108开始服务时,服务器进 程间通信部107开始用于从客户机PC100接收数据包的监听(Listen)处理。 另外,服务器进程间通信部107进行用于创建用作步骤S601中的服务器标识 符504的UUID的处理。
另外,在处理P801中,服务器迸程间通信部107创建接收套接字,以在 监听处理中在IPv4地址[10.0.0.10]及端口号[1025]处执行接收。同样地,服务器 进程间通信部107还针对IPv6地址[2001::10]及端口号[1025]创建接收套接字。
在处理P802中,客户机应用程序101或101a向客户机进程间通信部103 做出请求,以连接到IPv4地址[10.0.0.10]及端口号[1025]。在处理P803中,客 户机进程间通信部103接收连接请求,并进行步骤S702中用于获取服务器标 识符504的处理。在处理P804中,服务器进程间通信部107进行步骤S604中 用于返回服务器标识符504的处理。
优选使用UDP通信执行处理P803及P804中的协商,UDP通信在可靠性 方面比TCP通信稍差,但能够进行高速通信。然而,可以使用TCP通信进行协商。这也适用于图9A、 9B、 IIA、 IIB、 13A及13B中的协商。
在处理P805中,客户机进程间通信部103进行步骤S703中的处理,即基 于会话管理信息确定是否存在与相同服务器标识符504相关联的现有会话的处 理。在图8A和8B的序列示例中,在该处理中确定不存在现有会话。因此,在 处理P806中,执行步骤S704至S706中的处理以创建新的会话。
在处理P807中,服务器进程间通信部107进行基于TCP的接受处理,从 而为新会话创建套接字。在处理P808中,客户机进程间通信部103将响应于 处理P802中的连接请求而执行的连接处理的结果返回给客户机应用程序101 或101a。
在处理P809中,进行步骤S708中的处理。更具体地说,客户机进程间通 信部103进行数据传输处理,以将数据传输给客户机应用程序101或101a指定 的IPv4地址[10.0.0.10]及端口号[1025]。
在该传输处理之后,在处理P810-1至P810-n中,客户机进程间通信部103 根据来自客户机应用程序101或101a的数据量向服务器PC 105传送数据。
在处理P811中,服务器进程间通信部107接收来自客户机应用程序101 或101a的数据,并将数据传送给服务器应用程序108。在完成数据传送时,在 处理P812中,客户机进程间通信部103将数据传送的结果通知给客户机应用 程序101或101a。
优选使用TCP通信来执行处理P809至P810-n中的实际数据通信,TCP通 信与UDP通信相比在通信速度方面较差,但在可靠性方面较好。然而,可以使 用UDP通信进行实际数据通信。这适用于图9A、 9B、 IIA、 IIB、 13A及13B
中的协商。
在处理P813中,客户机应用程序101或101a向客户机进程间通信部103 发出关闭与IPv4地址[10.0.0.10]及端口号[1025]的连接的断开(关闭)请求。响 应于断开请求,客户机进程间通信部103进行步骤S710中的断开处理。
在处理P814中,服务器进程间通信部107从客户机进程间通信部103接 收关闭与IPv4地址[10.0.0.10]及端口号[1025]的连接的指令,并进行会话断开处 理。在处理P815中,客户机进程间通信部103进行步骤S711中的处理,并将 会话的断开通知给客户机应用程序101或101a。
图9A和9B示出根据第一实施方式的会话管理系统在存在现有会话的情况下执行的处理序列。在图9A中的处理P901中,当服务器应用程序108开始服 务时,服务器进程间通信部107开始监听处理,并创建步骤S601中的服务器 标识符(UUID) 504,以接收来自客户机的数据包。
另外,在处理P901中,服务器进程间通信部107创建接收套接字,以在 监听处理中在IPv4地址[10.0.0.10]及端口号[1025]处进行接收处理。服务器进程 间通信部107还针对IPv6地址[2001::10]及端口号[1025]创建接收套接字。
在处理P902中,客户机应用程序101或101a向客户机进程间通信部103 发出连接到IPv4地址[10.0.0.10]及端口号[1025]的请求。在处理P903中,客户 机进程间通信部103接收连接请求,并进行步骤S702中用于获取服务器标识 符504的处理。在处理P904中,服务器进程间通信部107进行步骤S604中用 于作为响应返回服务器标识符504的处理。
在处理P905中,客户机进程间通信部103进行步骤S703中的处理,即基 于会话管理信息确定是否存在与作为对连接请求的响应而获取的服务器标识符 504相同的服务器标识符504相关联的现有会话的处理。在图9A和9B的序列 示例中,在处理P905中的确定处理中确定不存在现有会话。因此,在处理P906 中,执行步骤S704至S706中的处理来创建新的会话。
在处理P907中,服务器进程间通信部107通过执行基于TCP的接受处理 来为新会话创建套接字。在处理P908中,客户机进程间通信部103将响应于 处理P802中的连接请求而执行的连接处理的结果返回给客户机应用程序101 或101a。
在处理P909中,进行步骤S708中的处理。更具体地说,客户机进程间通 信部103进行数据传输处理,以将数据传输给客户机应用程序101或101a指定 的IPv4地址[10.0.0.10]及端口号[1025]。在该传输处理之后,在处理P910-1至 P910-n中,客户机进程间通信部103根据来自客户机应用程序101或101a的 数据量向服务器PC 105传送数据。
在处理P911中,服务器进程间通信部107将从客户机应用程序101或101a 接收到的数据传送给服务器应用程序108。在完成数据传送时,在处理P912中, 客户机进程间通信部103将数据传送的完成通知给客户机应用程序101或 101a。
在处理P913中,客户机应用程序101或101a向客户机进程间通信部103发出连接到IPv6地址[2001::10]及端口号[1025]的连接请求。在处理P914中, 服务器进程间通信部107接收来自客户机进程间通信部103的连接请求,并进 行步骤S604中作为响应返回服务器标识符504的处理。在这种情况下,客户 机应用程序101或101a获取与IPv6地址[2001二10]及端口号[1025]相关联的服 务器标识符504。
在处理P915中,客户机进程间通信部103进行步骤S703中的处理,即基 于会话管理信息确定是否存在与作为对连接请求的响应而获取的服务器标识符 504相同的服务器标识符504相关联的现有会话的处理。
在图9A和9B的序列示例中,从已与其建立会话的IPv4地址[IO.O.O.IO] 及端口号[1025]返回与针对IPv6地址[2001::10]及端口号[1025]获取的服务器标 识符"10"相同的标识符。因此,客户机进程间通信部103确定存在与作为对 连接请求的响应而获取的服务器标识符504相同的服务器标识符504相关联的 现有会话,并且不针对IPv6地址[2001::10]及端口号[1025]建立会话。
从这时起,客户机进程间通信部103将原来与IPv6地址[2001::10]及端口 号[1025]相关联的数据传送给IPv4地址[10.0.0.10]及端口号[1025]。
更具体地说,在处理P916中,客户机应用程序101或101a请求客户机进 程间通信部103将数据传送给IPv6地址[2001二10]及端口号[1025]。
响应于该数据传送请求,在处理P917中,客户机进程间通信部103将与 该请求相关联的数据传送给IPv4地址[10.0.0.10]及端口号[1025],该IPv4地址 [10.0.0.10]及端口号[1025]是与客户机应用程序101或101a指定用于数据传送 的IPv6地址[2001:: 10]及端口号[l025]不同的地址。
在处理P918中,客户机进程间通信部103根据来自客户机应用程序101 或101a的数据量,使用现有会话重复地进行所需的传送处理,直到数据传送完 成为止。
在处理P919中,服务器进程间通信部107将从客户机应用程序101或101a 接收到的数据传送给服务器应用程序108。在处理P920中,客户机应用程序 101或101a指示客户机进程间通信部103断开(关闭)与IPv4地址[10.0.0.10] 及端口号[1025]的连接。响应该断开指令,客户机进程间通信部103进行步骤 S710中的断开处理。
在处理P921中,服务器进程间通信部107接收来自客户机进程间通信部103的断开指令,并进行用于断开针对IPv4地址[10.0.0.10]及端口号[1025]的会
话的断开处理。
如上所述,根据第一实施方式,使用针对与客户机应用程序101或101a 指定的目的地地址不同、但是与相同服务器标识符504相关联的地址而建立的 现有会话,作为用于数据通信的会话。
这使得能够高效地使用或节约诸如套接字的网络资源。下文描述的第二及 第三实施方式也能够提供相同的有益效果。
在第一实施方式中,例如当客户机应用程序101断开第一会话时,使用第 一会话作为现有会话的客户机应用程序101a不能再执行数据通信。
然而,如果客户机进程间通信部103被配置为响应于来自客户机应用程序 101或101a的连接请求或关闭请求而仅使会话的参考计数器递增或递减,并且 在参考计数器等于0时实标断开会话,则即使在由客户机应用程序101与101a 共享会话时,也可以防止由于会话断开而出现问题。
为此,第二实施方式被配置为即使在针对与客户机应用程序101及101a 中的一个指定的目的地地址不同的地址而建立的现有会话中执行数据传输时, 防止通过现有会话进行的通信被来自客户机应用程序101及101 a中的另 一个的 断开指令无意地断开。
图IOA和IOB是根据第二实施方式的会话管理系统的客户机进程间通信部 103执行的会话管理处理的流程图。根据第二实施方式的会话管理系统的配置 与根据第一实施方式的会话管理系统的配置相同,因此省略其描述(这适用于 第三实施方式)。另外,图10B中的步骤S701至S711中的处理与图7的流程 图中的步骤S701至S711中的处理相同,因而仅按需要给出其描述。
参照图IOB,在步骤S1001中,进程间通信控制器401使在步骤S706或 S707中选择的会话的关闭参考计数器的计数递增1。关闭参考计数器对应于上 面提到的参考计数器或图4中的连接参考计数器,并对断开请求的数目进行计 数。客户机PC 100的会话断开管理部407将各个会话的关闭参考计数器的计数 存储在连接参考计数存储部408中,并基于各计数确定是否断开相关联的会话。
接下来,进程间通信控制器401利用在步骤S706或S707中选择的会话, 将来自客户机应用程序101及101a的数据传送给服务器应用程序108 (步骤 S708)。当在步骤S707中选择了针对与目的地地址不同的地址而建立的现有会话时,将用于数据传送的现有会话的关闭参考计数器的计数递增1,而不创建 新会话。
然后,进程间通信控制器401确定是否接收到了来自客户机应用程序101 或101a的关闭请求、或者来自通信库104a的断开请求(步骤S709)。如果未 接收到关闭请求或断开请求,则该处理返回到步骤S701,继续执行步骤S701 至S709。
另一方面,如果接收到了关闭请求或断开请求,则进程间通信控制器401 使会话管理部403请求会话断开管理部407执行用于关闭针对与关闭请求或断 开请求相关联的地址的会话的关闭处理(步骤S1002)。在这种情况下,会话断 开管理部407使连接参考计数存储部408中的会话的关闭参考计数器的计数递 减l (步骤S1002)。
接下来,进程间通信控制器401确定关闭参考计数器的计数在递减1之后 是否等于0 (步骤S1003)。如果计数不等于0,则该处理返回到步骤S701。
另一方面,如果关闭参考计数器的计数等于0,则进程间通信控制器401 使会话管理部403及通信库104a进行用于关闭与关闭(断开)请求相关联的会 话或套接字的关闭处理(步骤S710)。然后,会话管理部403使DB管理部405 基于步骤S710中的处理的结果更新会话管理信息DB 406中的会话管理信息 (步骤S711)。
接下来,参照图UA和IIB所示的序列图描述图10A和10B中的会话管 理处理的示例。应当注意,图IIA和11B的序列示出通过针对不同于目的地地 址的地址而建立的现有会话来执行数据传输的情况。在下面描述的序列中,以 防止通过现有会话进行的通信被无意地禁止的适当方式执行现有会话的断开。
在处理P1101中,由于在步骤S706中建立了新会话,因此客户机进程间 通信部103进行步骤S1001中用于使关闭参考计数器的计数递增1的处理。该 关闭参考计数器充当计数器,用于对针对向其做出连接请求的各目的地地址的 连接请求及断开请求的数目进行计数。
在处理P1102中,利用针对不同于步骤S707中的目的地地址的地址而建 立的现有会话。因此,客户机进程间通信部103不创建新的会话,而是进行步 骤S1001中用于使关闭参考计数器的计数递增1的处理。
此时,存储在连接参考计数存储部408中的针对分配有服务器标识符504"10"的服务器PC 105的关闭参考计数器的计数等于"2"。实际通信地址被设 置为IPv4地址[10.0.0.10]及端口号[1025〗。
除了 IPv4地址[10.0.0.10]及端口号[1025]之夕卜,作为目的地地址还存在IPv6 地址[2001::10]及端口号[1025],并且这些地址各自处于连接状态。
在处理P1103中,客户机进程间通信部103针对IPv4地址[10.0.0.10]及端 口号[1025]进行关闭处理。此时,执行步骤S1002中的处理,从而使存储在连 接参考计数存储部408中的与该会话相关联的关闭参考计数器的计数递减1。
当执行该关闭处理时,存储在连接参考计数存储部408中的针对分配有服 务器标识符"10"的服务器PC 105的关闭参考计数器的计数变为等于1。另外, 实际通信地址保持为IPv4地址[10.0.0.10]及端口号[1025]。另夕卜,作为目的地地 址存在IPv6地址[2001::10]及端口号[1025],并且该地址处于连接状态。
在处理P1104中,客户机进程间通信部103针对IPv6地址[2001::10]及端 口号[1025]进行关闭处理。此时,执行步骤S1002中的处理,从而使存储在连 接参考计数存储部408中的关闭参考计数器的计数递减1。
当执行该关闭处理时,存储在连接参考计数存储部408中的与分配有服务 器标识符"10"的服务器PC105相关联的关闭参考计数器的计数变为等于0。 由于关闭参考计数器的计数已变为等于0,因此客户机迸程间通信部103进行 处理P1105中的步骤S710中的会话关闭处理。在本示例中,客户机应用程序 101或101a向客户机进程间通信部103给出针对IPv6地址[2001::10]及端口号 [1025]的断开指令。
然而,接收到来自客户机应用程序101或101a的断开指令的客户机进程间 通信部103针对作为实际通信地址的IPv4地址[10.0.0.10]及端口号[1025]进行断 开处理。在步骤S710及S711中执行该断开处理。
接下来,在处理P1106中,服务器进程间通信部107进行以下处理响应 于来自客户机进程间通信部103的针对IPv4地址[10.0.0.10]及端口号[1025]的断 开指令,服务器进程间通信部107使用通信库104b进行用于断开相关联的会话 的断开处理。
这意味着如下假定正在针对不同于一个应用程序指定的目的地地址的地 址而建立的现有会话中执行通信时,从另一应用程序发出用于断开现有会话的 断开指令。在这种情况下,不断开现有会话。换句话说,根据第二实施方式,即使在针对不同于目的地地址的地址而建 立的现有会话中执行数据传输的情况下,通过现有会话进行的通信不会被来自 另 一应用程序的断开指令无意地断开。
例如,假设当客户机应用程序101断开客户机应用程序101a正用作用于数 据通信的现有会话的会话时,客户机应用程序101a不能再执行数据通信。
然而,通过例如配置为客户机进程间通信部103响应于来自客户机应用程 序101或101a的各连接请求及各关闭(断开)请求,仅使针对与相同服务器的 现有会话提供的参考计数器的计数递增和递减,并且仅当参考计数器变为等于 0时实际断开会话,即使客户机应用程序101及101a共享会话,也可以防止在 会话断开时出现上述问题。
根据第一实施方式,即使当客户机应用程序101及101a分别指定不同的目 的地地址时,也可以使用相同的会话。在这种情况下,将实际用于通信的通信 地址设置为创建会话所使用的第一目的地地址。
然而,如果在利用创建会话所使用的第一目的地地址的通信中发生通信故 障,则即使当第二目的地地址可用于通信时,原来指定了第二目的地地址、并 且当前在与另一客户机应用程序相同的会话中执行通信的一个客户机应用程 序,不能再执行通信。
根据第三实施方式,即使会话遇到这样的通信故障,只要存在可用于通信 的目的地地址,就可以在会话中执行通信。
图12A和12B是根据本发明的第三实施方式的会话管理系统的客户机PC 100的客户机进程间通信部103执行的会话管理处理的流程图。应当注意,图 12A和12B中的步骤S701至S711与图7的流程图中的步骤S701至S711相同, 因此不描述所有步骤,而只描述第三实施方式特有的步骤。
参照图12B,进程间通信控制器401通过在步骤S706或S707中选择的会 话,将来自客户机应用程序101或101a的数据传送给服务器应用程序108 (步 骤S708)。
接下来,进程间通信控制器401确定数据传送是否成功(步骤S1201)。如 果数据传送成功,则进程间通信控制器401确定是否接收到来自客户机应用程 序101或101a的关闭请求或者来自通信库104a的断开请求(步骤S709)。
另一方面,如果数据传送不成功,则进程间通信控制器401使会话管理部403确定是否存在与相同服务器标识符504相关联的另一目的地地址(步骤 S1202)。
当不存在与相同服务器标识符504相关联的其它目的地地址时,进程间通 信控制器401执行数据传送错误处理(步骤S1206),该处理进入到步骤S709。
另一方面,当存在与相同服务器标识符504相关联的另一目的地地址时, 进程间通信控制器401使重新连接管理部409针对与相同服务器标识符504相 关联的另一目的地地址建立重新连接会话(S1203)。在这种情况下,使用不同 于经受通信失败的通信地址的地址来创建新的套接字。
接下来,进程间通信控制器401经由DB管理部405将该重新连接会话登 记在会话管理信息DB 406中(步骤S1204)。然后,进程间通信控制器401选 择该重新连接会话作为数据传送会话(步骤S1205)。然后,该处理返回到步骤 S708,使用该重新连接会话执行数据传送。
图13A和13B是在第三实施方式中在服务器PC 105与客户机PC之间执 行的会话管理处理的序列图。该序列使得可以在使用针对不同于目的地地址的 地址而建立的现有会话执行数据传输的情况下进行会话重新连接处理。省略对 图13A和13B中与图9A和9B的处理序列中相同的处理的描述。
在处理P1301中,进程间通信控制器401进行步骤S1201中用于检査数据 传送是否成功的处理。此时,存储在连接参考计数存储部408中的针对分配有 服务器标识符504 "10"的服务器PC 105的关闭参考计数器的计数变为等于2。 实际通信地址被设置为IPv4地址[10.0.0.10]及端口号[1025]。
另外,此时,存在各自处于连接状态的两个目的地地址IPv4地址[IO.O.O.IO] 及端口号[1025]与IPv6地址[2001::10]及端口号[1025]。
在本序列示例中,进程间通信控制器401在处理P1301中确定使用IPv4 地址[10.0.0.10]及端口号[1025]作为实际通信地址所执行的数据传送不成功。
在处理P1302中,进程间通信控制器401使会话重新连接管理部409进行 步骤S1202中用于确定是否存在与相同服务器标识符504相关联的另一 目的地 地址的处理。
在本序列示例中,会话重新连接管理部409确定存在与相同服务器标识符 504相关联的另一目的地地址,并建立重新连接会话(处理P1303)。会话重新 连接管理部409使DB管理部405将该重新连接会话登记在会话管理信息DB406中。
此时,存储在连接参考计数存储部408中的针对分配有服务器标识符"10" 的服务器PC 105的关闭参考计数器的计数变为等于2。
实际通信地址被设置为IPv6地址[2001::10]及端口号[1025]。另外,存在各 自处于连接状态的IPv4地址[10.0.0.10]及端口号[1025]与IPv6地址[2001::10]及 端口号[1025]作为目的地地址。
在处理P1304中,进程间通信控制器401使用IPv6地址[2001::10]及端口 号[1025]来传输客户机应用程序101或101a指定的数据。
因此,在与相同服务器标识符相关联的会话包括一个或更多个可连接目的 地地址的情况下,客户机应用程序101及101a可以在不知道通信故障的情况下 继续通信。
在第一至第三实施方式中,客户机PC IOO基于服务器标识符(即从服务器 PC 105获取的服务器识别信息)确定是否存在现有会话。
然而,为此,需要对服务器PC105提供返回服务器标识符(服务器识别信 息)的功能,即在服务器进程间通信控制器301的控制下返回服务器标识符的 服务器标识符发送部302。这不仅使对与大量客户机PC通信的服务器PC 105 施加的处理负荷增大,还妨碍网络资源的有效使用。
为了解决该问题,根据第四实施方式,客户机PC100被配置为不基于从服 务器PC 105获取的服务器标识符对是否存在现有会话进行确定。换句话说,客 户机PC 100被配置为在不与服务器PC 105协作的情况下确定是否存在现有会 话。
图14是应用根据本发明的第四至第六实施方式的各会话管理系统的客户 机服务器系统的软件配置的图。
图14所示的客户机服务器系统与应用根据第一至第三实施方式的各会话 管理系统的图1的客户机服务器系统的不同之处在于,DNS(域名系统,Domain Name System)服务器1401连接到网络106。
在第四实施方式中,通过使用DNS服务器1401等,客户机PCIOO在不与 服务器PC 105协作的情况下确定是否存在现有会话。在DNS服务器1401上运 行的DNS服务基于正TF (互联网工程任务组,Internet Engineering Task Force) 技术规范。具体来说,DNS服务器1401根据例如在RFC (请求注解,Requestfor Comments) 1034、 RFC 1035等中定义的规范提供地址问题解决服务。
RFC 1034、 RFC 1035等描述符合IPv4的A记录的规范及响应的实现。另
夕卜,RFC 1886等描述符合IPv6的AAAA记录的规范及响应的实现。这些RFC
可以在http://www.ietf.org/rfc.html上进行査阅。
图15是详细示出应用根据第四实施方式的会话管理系统的客户机服务器
系统的客户机PC 100的客户机进程间通信部103的软件配置的框图。
响应于来自客户机应用程序101或101a的请求,客户机PC IOO使用客户
机进程间通信部103及通信库104a经由分支线对象(未示出)与服务器PC 105通信。
如在第一至第三实施方式中,客户机进程间通信部103包括进程间通信控 制器401、会话管理部403、会话管理信息DB406及会话确定部404。
与第一至第三实施方式类似,客户机进程间通信部103还包括会话断开管 理部407及会话重新连接管理部409。另外,作为第四实施方式特有的软件, 客户机进程间通信部103设置有地址列表获取部1501及地址列表存储部1502。
进程间通信控制器401在管理会话时,对在客户机应用程序101及101a 与服务器应用程序108之间执行的通信执行总体集中控制。地址列表获取部 1501从DNS服务器1401获取与客户机应用程序101及101a指定的目的地地 址相关联的一个或更多个地址,并将获取的地址顺序存储在地址列表存储部 1502中。下文将参照图16及23详细描述存储在地址列表存储部1502中的地 址列表信息。
会话管理部403管理登记在会话管理信息DB 406中的会话管理信息。下 文将参照图17详细描述第四实施方式中的会话管理信息。会话确定部404基于 地址列表及会话管理信息对新会话的创建以及现有会话的可用性进行确定。
会话断开管理部407、连接参考计数存储部408及会话重新连接管理部409 中的每一个进行与第一至第三实施方式中相同的处理。
接下来,参照图16详细描述存储在地址列表存储部1502中的地址列表信 息。从DNS服务器1401获取的关于目的地(服务器)的地址列表信息被顺序 存储在地址列表存储部1502中,并形成数据库。
服务器标识符1601是用于识别与连接请求侧的客户机应用程序101或 101a指定的目的地(连接目的地)相关联的服务器(服务器PC 105)的服务识别信息。服务器标识符1601可以是例如主机名、NetBIOS名、计算机名或正 式域名(FQDN, Fully Qualified Domain Name)。
然而,在第四实施方式中,当客户机应用程序101及101a使用不同形式的 服务器识别信息请求连接时,如下文所描述的,地址列表获取部1501将不同形 式的服务器识别信息转换为主机名。地址列表获取部1501从DNS服务器1401 获取主机名的地址列表。
因此,实际上用主机名来表示图16的地址列表信息中的各服务器标识符 1601。由于同样的原因,实际上也用主机名来表示图17的会话管理信息中的各 服务器标识符504。然而,为了方便描述,作为客户机应用程序101或101a实 际指定的服务器标识符(服务器识别信息)示出图23的地址列表信息中的各服 务器标识符1601,尽管其实际上是主机名形式的。
地址获取方法1602是指示从DNS服务器1401获取相关联的目的地(服务 器)地址所使用的协议及其获取方法的信息。地址类型1603是指示从DNS服 务器1401实际获取的地址的类型的信息。IP地址1604是指示从DNS服务器 1401实际获取的地址(IP地址)本身的信息。
在图16的示例中,对于具有用"AppServer:主机名"表示的服务器标识 符1601的服务器,针对列表号1及4指示的通信获取IPv4地址[IO.O.O.IO]。另 外,对于具有用"AppServer:主机名"表示的服务器标识符1601的服务器, 针对列表号2指示的通信获取IPv6地址[2001::10],针对列表号3指示的通信 获取IPv6地址[fe80::10]。
此外,对于具有用"AppServer 2:主机名"表示的服务器标识符1601的 服务器,针对列表号5指示的通信获取IPv4地址[10.0.0.20],针对列表号6指 示的通信获取IPv6地址[2001::20]。
图17是会话管理信息的示例的图。应用程序标识符501是用于识别连接请 求侧的客户机应用程序101或101a的标识符(实例句柄)。请求地址信息502 指示客户机应用程序101或lOla在请求连接时指定为连接目的地的目的地地 址。该目的地地址(请求地址信息502)包括服务器识别信息(主机名、FQDN 等)、诸如IPv4地址或IPv6地址的IP地址502a、以及端口号502b。
通信地址信息503指示在基于目的地地址对现有会话的可用性进行了确定 之后选择用于实际通信的会话的连接目的地的地址。通信地址信息503包括IP地址503a及端口号503b。服务器标识符504指示客户机应用程序101或101a请求DNS服务器1401 提供连接目的地地址列表的服务器的服务器标识符(本示例中的主机名)。会话 号505指示用于实际通信的会话的管理号(会话识别实例句柄)。接下来,参照图18所示的流程图描述客户机进程间通信部103的进程间通 信控制器401执行的根据第四实施方式的会话管理处理。应当注意,在图18 中,用相同的步骤编号表示与图7中的步骤相同的步骤(这适用于图20、 21、 22A、 22B、 26A、 26B及27)。客户机进程间通信部103的进程间通信控制器401接收要连接到服务器PC 105的服务器应用程序108的请求(步骤S701)。该连接请求从客户机应用程 序101或101a发出。然后,进程间通信控制器401使地址列表获取部1501获取关于目的地地址 的地址列表(步骤S1801)。在这种情况下,地址列表获取部1501使用通信库104a经由网络106向DNS 服务器1401发出获取请求,以便获取地址列表上的A记录、AAAA记录等。 DNS服务器1401响应于来自地址列表获取部1501的地址列表获取请求,返回 相关联的地址列表。应当注意,在步骤S1801中,地址列表获取部1501除了利用DNS服务器 1401之外还利用各种地址问题解决服务进行地址列表获取处理。地址问题解决 服务的示例包括LLMNR (链路本地多播名称解析,Link Local Multicast Name Resolution)以及NetBIOS的广播搜索。当在目的地地址中指定"数字主机地址(Numeric host address)"作为服务 器识别信息时,地址列表获取部1501将"数字主机地址"转换为主机名,然后 执行地址列表获取处理。参照图19所示的流程图详细描述在步骤S1801中执行的地址列表获取处理。地址列表获取部1501确定在来自客户机应用程序101或101a的目的地信 息中使用主机名类型服务器识别信息及地址类型服务器识别信息中的哪一个来 指定服务器(步骤S1901)。这里的"地址"是指"数字主机地址"。当使用地址类型服务器识别信息指定服务器时,地址列表获取部1501在DNS服务器1401中搜索与地址相关联的主机名(步骤Sl卯2)。在这种情况下, 例如在0^++套接字编程中,地址列表获取部1501利用getoameinfo()函数来搜 索与指定地址相关联的主机名。然后,地址列表获取部1501指定基于地址获取函数而找到的主机名,从而 从DNS服务器1401获取与主机名相关联的服务器的地址列表(步骤Sl卯3)。 在这种情况下,例如在0^++套接字编程中,地址列表获取部1501将 getaddrinfo()函数的ai—family设定为值AFJJNSPEC并调用该函数,从而获取 与主机名相关联的地址列表。另一方面,当使用主机名类型服务器识别信息指定服务器时,跳过步骤 S1902进入到步骤S1903。在步骤S1卯3完成之后,地址列表获取部1501将主 机名以及与主机名相关联的地址列表登记在地址列表存储部1502中(步骤 S1904),该处理返回到图18中的主处理。然后,在进程间通信控制器401的控制下,会话确定部404基于在步骤 S1801中获取的地址列表以及会话管理信息DB 406中的信息对现有会话的可 用性进行确定(步骤S1802)。在这种情况下,会话确定部404确定登记在与在获取的地址列表中输入的 地址相关联的会话管理信息DB 406中的现有会话,可作为与具有相同主机名 的主机(服务器)相关联的会话来使用。更具体地说,会话确定部404确定在当前使用与在获取所获取的地址列表 (其可能只包含一个地址)时使用的地址不同的地址执行通信的现有会话中, 是否存在与获取了地址列表的相同服务器相关联的会话。当存在与相同服务器 相关联的现有会话时,会话确定部404确定现有会话可用。在这种情况下,在如上文所述服务器识别信息被统一转换为主机名的状态 下,获取地址列表。因此,会话确定部404基于主机名识别服务器。这实质上意味着,即使与客户机应用程序101及101a在请求连接时所指定 的目的地地址相关联的服务器识别信息互不相同,只要服务器识别信息与相同 服务器相关联,就将服务器识别信息作为相同识别信息进行处理。因此,即使在通过不同的服务器识别信息指定服务器时,也可以对现有会 话的可用性进行正确的确定,从而能够更高效地利用网络资源。该有益效果将 参照图23来详细描述。然后,当现有会话可用时,进程间通信控制器401选择现有会话作为用于 此时要执行的用于数据传送的会话(步骤S1803)。例如,在图17所示的会话管理信息的示例中,管理号1及2指示的会话是 针对从客户机应用程序(1)指定的各个不同目的地地址的会话。然而,在管理 号2的情况下,存在已经建立的与相同服务器标识符"AppServer"相关联的现 有会话(与管理号1及分配的会话号1相关联)。在这种情况下,进程间通信控 制器401选择该现有会话作为用于传送数据的会话,而不创建新会话。在图16中的地址列表的示例中,由于IP地址[10.0.0.10]及[2001::10]与相 同服务器标识符"AppServer"相关联,因此如上所述,可以确定存在与该相同 服务器标识符相关联的现有会话。在图16及17所示的示例中,对于关于连接到与列表/管理号2相关联的地 址[2001::10]的请求的通信,使用针对与管理号1以及与和地址[2001::10]相关联 的服务器标识符相同的服务器标识符"AppServer"相关联的地址[10.0.0.10]的 现有会话,来执行数据传送。因此,使用现有会话使得客户机PC 100及服务器PC 105能够消除针对目 的地地址创建新通信套接字的需要,这使得能够节约诸如通信套接字的网络资 源。图18中的步骤S704、 S705及S708至S711与图7中相同的步骤编号表示 的步骤完全相同,因此省略其描述。接下来,描述第一及第二客户机应用程序分别通过不同的服务器识别信息 (主机名、FQDN等)指定服务器的情况。如上文所述,在第四实施方式中,即使当用来指定目的地的服务器识别信 息互不相同时,只要服务器识别信息用于识别相同服务器,就将服务器识别信 息作为相同服务器识别信息进行处理,从而能够正确地确定现有会话的可用性。图23示出在这种情况下获取的地址列表信息的示例。图23的地址列表信 息中的信息项与图16中的地址列表信息中的信息项完全相同,因此省略其描 述,其中相同的附图标记分别表示相同的信息项。然而,为了方便描述,图23 的地址列表信息中的服务器标识符1601不用通过将以不同形式指定的服务器 标识符信息统一转换为主机名而获得的主机名来表示,而用在转换之前原本用 于进行指定的服务器识别信息来表示。在图23的示例中,由服务器标识符"AppServer.foo.test"标识的服务器以 及由服务器标识符"AppServer"标识的服务器与相同IP地址"fe80::10"相关 联(参见列表号2及3)。在这种情况下,如上文所述,将服务器标识符"AppServer.foo.test"及 "AppServer"统一转换为主机名,从而将这些服务器当作相同服务器来处理。 然后,会话确定部404基于包含实际上是一个的这两个服务器标识符的地址列 表信息来确定现有会话是否可用。例如,假定在请求连接时在目的地信息中指定了服务器标识符 "AppServer.foo.test",但是不存在针对与该服务器标识符相关联的IP地址的现 有会话。还假定在这种情况下存在针对IP地址[2001::10]的会话,作为与标识 和服务器标识符"AppServer.foo.test"所标识的服务器相同的服务器的服务器标 识符"AppServer"相关联的现有会话。在这种情况下,会话确定部404响应于使用服务器标识符 "AppServer.foo.test"的连接请求,确定针对与服务器标识符"AppServer"相 关联的IP地址[2001::10]的现有会话可用。因此,如上所述,将互不相同、但与相同服务器相关联的服务器标识符作 为相同服务器标识符来处理,因此,即使在通过不同的服务器标识符指定服务 器时,也能够利用与服务器的现有会话,从而能够更高效地使用诸如套接字的 网络资源。在第一至第四实施方式中,即使当客户机应用程序101及101a指定各自不 同的目的地地址时,两个客户机应用程序有时也使用相同的会话。在这种情况 下,客户机进程间通信部103使用较早建立了会话(相同的会话)的目的地地 址之一来执行实际通信。然而,当在通过较早指定的目的地地址执行的通信中出现通信故障时,即 使可以使用其它地址进行通信,通过相同的会话执行通信的其它客户机应用程 序也变得不能执行通信。为了解决该问题,第五实施方式被配置为即使出现通信故障,只要存在可 以连接的另一地址,就针对可以连接的该另一地址建立会话,从而执行通信。接下来,参照图20及21所示的流程图,描述根据第五实施方式的会话管 理系统的客户机PC 100的进程间通信控制器401执行的会话管理处理。图20及21所示的流程图的一部分与图18中的流程图相同。因此,在图20及21中, 用相同的步骤号表示与图18中的步骤相同的步骤,并省略其描述。下面,只描 述与第四实施方式的不同点。在图21中的步骤S2001中,进程间通信控制器401确定使用在步骤S708 中选择的会话执行的数据传送是否成功。如果数据传送成功,则执行步骤S709 至S711。另一方面,如果数据传送不成功,则会话确定部404在进程间通信控制器 401的控制下,确定在会话管理信息DB 406中是否存在与相同服务器识别信息 (主机名等)相关联的其它地址(步骤S2002)。如果不存在与相同服务器识别 信息相关联的其它地址,则进程间通信控制器401执行数据传送错误处理(步 骤S2006),该处理进入到步骤S709。另一方面,如果存在与相同服务器识别信息相关联的另一地址,则进程间 通信控制器401建立用于重新连接到与相同服务器识别信息(主机名)相关联 的该另一地址的会话(步骤S2003)。在这种情况下,进程间通信控制器401针 对与相同服务器识别信息(主机名)相关联的地址创建新的套接字。如果存在与相同服务器识别信息(主机名)相关联的多个其它地址,则进 程间通信控制器401优先针对客户机应用程序101或101a指定的地址建立会 话。接下来,进程间通信控制器401使会话管理部403在会话管理信息DB 406 中登记关于用于重新连接的会话的信息(步骤S2004)。然后,进程间通信控制 器401选择该用于重新连接的会话作为用于数据传送的会话(步骤S2005),该 处理返回到步骤S708。如上所述,根据第五实施方式,即使在多个应用程序通过相同会话执行数 据传送时在使用一个应用程序进行通信期间出现故障,其它应用程序也能够继 续通信。因此,第五实施方式使得能够构建能够抵抗通信故障、并且在数据传 送方面可靠性高的通信系统。在第四及第五实施方式中,例如当应用程序101断开第一会话时,也使用 第一会话的应用程序101a变得不能执行通信。本发明的第六实施方式以如下方式对该问题提供解决方案进程间通信控 制器401不是每当接收到针对会话的关闭请求时就关闭各会话,而是基于针对会话提供的关闭参考计数器来关闭各会话。在第六实施方式中,将关闭参考计数器存储在连接参考计数存储部408中。参照图22A和22B所示的流程图描述第六实施方式中的会话管理处理。图 22A和22B所示的流程图的一部分与图18中的流程图相同。因此,在图22A 和22B中,用相同的步骤号表示与图7及图18中的步骤相同的步骤,并省略 其描述。下面,只描述与第四实施方式的不同点。在图22B中的步骤S2201中,在进程间通信控制器401的控制下,会话断 开管理部407使在步骤S706或S707中选择的会话的关闭参考计数器的计数递 增1。此时,会话断开管理部407将递增1的关闭参考计数器的计数存储在连 接参考计数存储部408中。接下来,进程间通信控制器401通过在步骤S706或S707中选择的会话进 行数据传送(步骤S708)。然后,进程间通信控制器401确定是否己接收到来 自客户机应用程序101或101a的关闭请求、或者来自通信库104a的断开请求 (步骤S709)。如果尚未接收到关闭请求或断开请求,则该处理返回到步骤 S701。另一方面,如果已接收到关闭请求或断开请求,则会话断开管理部407使 针对与该请求相关联的地址所建立的会话的关闭参考计数器的计数递减1(步 骤S2202)。如上所述,对于与会话相关联的各目的地地址,会话断开管理部 407响应于连接到目的地地址的连接请求使相关联的关闭参考计数器的计数递 增1,并响应于断开请求使相关联的关闭参考计数器的计数递减1。然后,进程间通信控制器401确定关闭参考计数器的计数是否由于关闭参 考计数器的计数递减1而变为等于0 (步骤S2203)。如果关闭参考计数器的计 数不等于0,则该处理返回到步骤S701。另一方面,如果关闭参考计数器的计数等于O,则该处理进入到步骤S710, 其中进程间通信控制器401进行用于关闭针对与关闭请求或断开请求相关联的 地址的会话及相应套接字的关闭处理。如上所述,根据第六实施方式,不是每当接收到针对会话的关闭请求时就 关闭各会话,而是基于针对会话提供的关闭参考计数器来关闭各会话。因此,在不同的客户机应用程序使用同一会话进行数据传送的情况下,能 够防止来自客户应用程序之一 的断开指令使其它客户应用程序进行的数据传送失效。这使得能够更高效地使用诸如套接字的网络资源。在第一至第六实施方式中,当现有会话可用时,总是使用该现有会话执行 通信。然而,与针对较早开始的第一通信所建立的现有会话相比,在通信速度、 执行通信的路由器的数量等方面,原本要针对稍后开始的第二通信建立的新会 话在通信效率方面有时更优越。由于该原因,本发明的第七实施方式被配置为即使在存在可用会话的情况 下,在当前通信要建立的新会话在通信效率方面优于现有会话时,也建立新的 会话来继续通信。在第七实施方式中,如图24所示,客户机进程间通信部103设置有线路信 息获取部2401,用于在进程间通信控制器401的控制下获取线路信息以确定通 信效率。客户机PC100的软件配置的其它部分与图4所示的第一实施方式中的相应 部分基本相同,因此下面仅对不同点给出描述。应当注意,在图24的图示中省 略了图4中的会话断开管理部407、连接参考计数存储部408以及会话重新连 接管理部409。线路信息获取部2401从通信库104a获取关于到网络106上到目的地地址 的通信路线的线路信息。然后,线路信息获取部2401经由DB管理部405将线 路信息作为会话管理信息登记在会话管理信息DB 406中。线路信息获取部2401获取的线路信息包括IPv6头的流量分类(Traffic Class)、流标号(Flow Label)及跳数限帝U(Hop Limit)、IPv4头的服务类型(Service Type)及使用期限(TimeToLive)、还有通信频带。线路信息获取部2401能够使用IP协议的路径MTU发现(Path MTU Discovery)来检测路径MTU(Path MTU(最大传输单元,Maximum Transmission Unit))。路径MTU发现自动检测一次数据传送可传输的数据报的最大值。由 RFC (请求注解)定义路径MTU发现。线路信息获取部2401从通信库104a获取在RFC 1981中定义的IP第6版 的路径MTU发现、在RFC 1191中定义的路径MTU发现等。关于通信频带,线路信息获取部2401可以获取关于安装在客户机PC 100 中的网卡的频带信息。另外,线路信息获取部2401可以使用在RFC 2205中定 义的网络控制协议获取关于客户机应用程序所控制的频带的频带信息。图25是在根据第七实施方式的会话管理系统中使用的会话管理信息的图。该会话管理信息作为数据库存储在会话管理信息DB 406中。根据第七实施方式的会话管理系统使用的图25的会话管理信息与根据第 一实施方式的会话管理系统使用的图5的会话管理信息的区别之处在于,对与 图5的会话管理信息的数据项相同的数据项添加线路信息2501。该线路信息 2501指示到客户机应用程序101或101a在请求连接时指定为目的地的目的地 地址及相关联的端口号的通信路线的线路状况。线路信息2501包括例如频带信息2501a、路由器计数2501b及路径MTU 2501c。然而,还可以使用这些信息以外的线路信息来确定通信效率。接下来,参照图26A、 26B及27所示的流程图描述根据第七实施方式的会 话管理系统的会话管理信息。该流程图包括与第一实施方式中图7的流程图中 的处理步骤相同的若干处理步骤。用相应的相同步骤号表示这些步骤,并省略 其描述。在步骤S702中,进程间通信控制器401根据客户机应用程序101或101a 指定的目的地地址从服务器PC 105获取服务器标识符。另外,进程间通信控制 器401使线路信息获取部2401获取关于到客户机应用程序101或101a指定的 目的地地址的通信路线的线路信息(步骤S2601)。在这种情况下,线路信息获取部2401可以基于getsockopt函数从客户机PC100的OS上的套接字库获取关于通信路线的信息。另外,线路信息获取部2401可以从OS上的通信库104a获取路径MTU发现,然后使用路径MTU发现来获取关于通信路线的路径MTU 2501c。线路信息获取部2401还可以获取IPv4头中的TTL (使用期限,Time To Live)信息、或者IPv6头中的跳数限制^自 i 口 's、 o接下来,进程间通信控制器401使会话管理部403确定是否存在与在步骤 S702中获取的服务器标识符504相同的服务器标识符504相关联的已建立的现 有会话(步骤S703)。在这种情况下,会话管理部403经由DB管理部405从会话管理信息DB 406 获取会话管理信息。然后,会话管理部403基于获取的会话管理信息来确定在 当前使用其它地址的通信中的现有会话中,是否存在与在做出本连接请求时获 取的服务器标识符504相同的服务器标识符504相关联的现有会话。由会话确定部404实际进行该确定处理。当存在与和在步骤S702中获取的服务器标识符504相同的服务器标识符 504相关联的现有会话时,该处理进入到步骤S2602。在步骤S2602中,进程间通信控制器401使会话确定部404通过比较已经 连接的现有会话的线路状况与关于在本连接请求中指定的目的地地址的线路状 况来确定后者是否更有利。在图25中的会话管理信息的示例中,分配有各个管理号1及2的通信基于 从客户机应用程序向不同的地址、但是属于具有相同服务器标识符的服务器的 地址发出的连接请求。当就路径MTU2501c比较这两个通信时,管理号1的路 径MTU 2501c是1500,而管理号2的路径MTU 2501c是9000。由此,确定具 有更大路径MTU (更小通信开销)的管理号2的线路状况更为有利。另外,当就路由器计数2501b比较两个通信时,管理号l的路由器计数是 3,而管理号2的路由器计数是1。由此,确定执行通信的路由器数目更小(即 通信开销更小)的管理号2的线路状况更为有利。下文将详细描述获取频带信 息2501a的方法。可以想象通过基于频带信息2501a、路由器计数2501b及路径MTU 2501c的各方法进行的关于线路状况的有利程度的确定结果相互矛盾的情况,但是在 这些情况下,可以基于通过合计确定结果而获得的总通信开销来执行确定。另外,可以基于除频带信息2501a、路由器计数2501b及路径MTU 2501c 以外的通信状况来确定线路状态的有利程度。例如,可以使用诸如通信路线的 流量的不断变化的通信状况。此外,可以基于通过对用户指定的包括频带信息 2501a、路由器计数2501b及路径MTU 2501c的参数中的各个参数进行加权而 获得的总通信开销等来确定线路状况的有利程度。当关于在本连接请求中指定的目的地地址的线路状况比关于已连接的现有 会话的线路状况更有利时,进程间通信控制器401使会话管理部403建立新的 会话(步骤S2603)。在这种情况下,会话管理部403使用通信库104a基于客 户机应用程序101或101a指定的目的地地址创建新的套接字。接下来,会话管理部403使DB管理部405在会话管理信息DB 406中登 记关于包含新套接字的新会话的信息(步骤S2604)。然后,进程间通信控制器 401选择针对客户机应用程序101或101a指定的目的地地址而建立的新会话,作为用于本数据传送的会话(步骤S2605)。接下来,迸程间通信控制器401将与执行了通信以进行数据传送的相同服 务器相关联的现有会话改变为新会话(步骤S2606)。然后,进程间通信控制器 401从会话管理信息DB 406中删除现有会话(步骤S2607)。在图25中的会话管理信息的示例中,对于管理号3及2各自的通信,管理 号2的通信处于更有利的线路状况。假定在该线路状况下,客户机应用程序101 以管理号3及2的次序发出连接请求。在这种情况下,首先,重新创建管理号3指示的会话。在该会话中,客户 机应用程序101实际执行数据传送的通信地址是[2001::20]及端口号1025。然后,如果客户机应用程序101a发出管理号2的连接请求,则由于管理号 2的线路状况比管理号3的线路状况更有利,因此重新创建管理号2的会话。然后,执行步骤S2605至S2607,从而使用针对通信地址[2001::20]及端口 号1025的管理号2的新会话来迸行客户机应用程序101及101a的后续数据传 送。当已连接的现有会话的线路状况比关于重新指定的目的地地址的线路状况 更有利时,该处理进入到步骤S707。在步骤S707中,进程间通信控制器401 选择与和作为对当前循环中的连接请求的响应而获取的服务器标识符504相同的服务器标识符504相关联的已连接的现有会话,作为用于当前数据传送的会 话。接下来,对获取包含在线路信息2501中的频带信息2501a的方法进行描述。 在图26A中的步骤S2601中,线路信息获取部2401根据客户机应用程序101 或101a指定的目的地地址获取频带信息2501a。在这种情况下,线路信息获取部2401利用LinkSpeed获取函数从客户机 PC 100的OS上的套接字库获取客户机PC 100的网络适配器的LinkSpeed,该 LinkSpeed指示从发送方地址到目的地地址的链接的速度。应当注意,线路信息获取部2401可以从OS上的套接字库获取用于实现网 络设备的QoS (服务质量,Quality of Service)的网络控制协议,从而识别频带 信息2501a。在这种情况下,线路信息获取部2401从网络控制协议获取RSVP (资源保留协议,Resource Reservation Protocol) (RFC 2205)设置。线路信息获取部2401检查这些设置,并获取客户机PC 100的网络适配器的LinkSpeed以及关于通信路径上的网络设备的使用带宽的信息,从而确定线 路状况的有利程度。然后,客户机进程间通信部103总体确定频带信息2501a、路由器计数2501b 及路径MTU 2501c,从而选择通过针对不同地址所建立的会话执行数据传送时 使用的地址。然后,客户机进程间通信部103选择针对所选择的地址的会话, 作为在实际数据传送时使用的会话。在确定线路状况的有利程度时,不需要使用频带信息2501a、路由器计数 2501b及路径MTU2501c三者全部。可以使用三者中的一个、或者三者中的所 希望的两个的组合来确定线路状况的有利程度。本发明可以应用于包括多个装置的系统或者由单个装置形成的单元。另外, 虽然在上述各个实施方式中,假定主要使用IPv6作为通信协议,但是根据实施 方式的技术思路也可以应用于使用可以对单个节点分配多个地址等的任何其它 通信协议的情况。应当理解,还可以通过对系统或装置提供存储有实现上述任一实施方式的 功能的软件的程序代码的存储介质、并使系统或装置的计算机(或CPU或MPU) 读出和执行存储在存储介质中的程序代码来实现本发明。在这种情况下,从存储介质读取的程序代码本身实现上述任一实施方式的 功能,因此程序代码以及存储有程序代码的存储介质构成本发明。用于提供程序代码的存储介质的示例包括软(floopy,注册商标)盘、硬 盘、磁光盘、诸如CD-ROM、 CD-R、 CD-RW、 DVD-ROM、 DVD-RAM、 DVD-RW 或DVD+RW的光盘、磁带、非易失性存储卡以及ROM。作为选择,可以经由 网络下载程序。另外,应当理解,不仅可以通过执行计算机读出的程序代码,还可以通过 使在计算机上运行的OS (操作系统,Operating System)等基于程序代码的指 令执行部分或全部实际操作,来实现上述任一实施方式的功能。另外,应当理解,可以通过将从存储介质读出的程序代码写入设置在插入 计算机的扩展板上的存储器或者设置在连接到计算机的扩展单元中的存储器、 然后使设置在扩展板或扩展单元中的CPU等基于程序代码的指令执行部分或 全部的实际操作,来实现上述任一实施方式的功能。虽然参照示例性实施方式对本发明进行了描述,但是应当理解,本发明不局限于所公开的示例性实施方式。所附权利要求的范围符合最宽的解释,以覆 盖所有变形、等同结构及功能。
本申请要求2008年4月4日提交的日本专利申请第2008-098363号、以及 2009年1月8日提交的日本专利申请第2009-002433号的优先权,其全部内容 通过引用包含于此。
权利要求
1.一种会话管理系统,其用于管理具有多个地址的服务器与客户机之间的会话,该会话管理系统包括确定单元,其被配置为在设置有所述客户机的应用程序请求与所述服务器通信的情况下,确定是否已在所述客户机与所述服务器之间建立了使用与所述应用程序所指定的地址不同的地址的会话;以及控制单元,其被配置为在确定已建立了会话时、使所述应用程序通过使用已建立的会话与所述服务器通信,并且在确定未建立会话时、使所述应用程序通过使用新建立的会话与所述服务器通信。
2. 根据权利要求1所述的会话管理系统,其中所述确定单元基于用于识别所述服务器的识别信息执行所述确定。
3. 根据权利要求2所述的会话管理系统,该会话管理系统还包括第一获取单元,其被配置为从所述服务器获取所述识别信息。
4. 根据权利要求2所述的会话管理系统,该会话管理系统还包括第二获取单元,其被配置为从外部装置获取所述识别信息。
5. 根据权利要求4所述的会话管理系统,其中,所述外部装置是域名系统服务器。
6. 根据权利要求1所述的会话管理系统,该会话管理系统还包括管理单元,其被配置为管理基于来自所述应用程序的连接请求及断开请求而 更新的值,其中所述控制单元基于所管理的值来断开在所述客户机与所述服务 器之间建立的会话。
7. 根据权利要求1所述的会话管理系统,其中在即使确定已建立了会话、但是使用所述应用程序指定的地址的会话比所述已建立的会话效率更 高的情况下,所述控制单元使所述应用程序通过使用新建立的会话与所述 服务器通信。
8. —种控制会话管理系统的方法,所述会话管理系统用于管理具有多个地址的服务器与客户机之间的会话,该方法包括-在设置有所述客户机的应用程序请求与所述服务器通信的情况下,确定是否在所述客户机与所述服务器之间已建立了使用与所述应用程序指定 的地址不同的地址的会话;在确定已建立了会话时,使所述应用程序通过使用已建立的会话与所 述服务器通信;以及在确定未建立会话时,使所述应用程序通过使用新建立的会话与所述 服务器通信。
全文摘要
本发明提供一种会话管理系统及其控制方法。在将通信地址分配给网络接口时,会话管理系统能够高效利用或节约网络资源。该系统管理具有多个地址的服务器与客户机之间的会话。在设置有所述客户机的应用程序请求与所述服务器通信的情况下,确定是否已在所述客户机与所述服务器之间建立了使用与所述应用程序所指定的地址不同的地址的会话。在确定已建立了会话时,使所述应用程序通过使用已建立的会话与所述服务器通信,并且在确定未建立会话时,使所述应用程序通过使用新建立的会话与所述服务器通信。
文档编号H04L12/28GK101552788SQ20091013005
公开日2009年10月7日 申请日期2009年4月3日 优先权日2008年4月4日
发明者和田雄弘 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1