[go: up one dir, main page]

KR101160382B1 - Session management system and method of controlling the same - Google Patents

Session management system and method of controlling the same Download PDF

Info

Publication number
KR101160382B1
KR101160382B1 KR1020090028993A KR20090028993A KR101160382B1 KR 101160382 B1 KR101160382 B1 KR 101160382B1 KR 1020090028993 A KR1020090028993 A KR 1020090028993A KR 20090028993 A KR20090028993 A KR 20090028993A KR 101160382 B1 KR101160382 B1 KR 101160382B1
Authority
KR
South Korea
Prior art keywords
session
server
client
address
communication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020090028993A
Other languages
Korean (ko)
Other versions
KR20090106360A (en
Inventor
가쯔히로 와다
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Priority to KR1020090028993A priority Critical patent/KR101160382B1/en
Publication of KR20090106360A publication Critical patent/KR20090106360A/en
Application granted granted Critical
Publication of KR101160382B1 publication Critical patent/KR101160382B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/677Multiple interfaces, e.g. multihomed nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

통신 어드레스가 네트워크 인터페이스에 할당된 경우에 네트워크 리소스를 효율적으로 이용할 수 있게 하는 세션 관리 시스템이 제공된다. 시스템은 복수의 어드레스를 갖는 서버와 클라이언트 사이의 세션들을 관리한다. 클라이언트에 제공된 어플리케이션이 서버와 통신하도록 요구하는 경우에, 어플리케이션에 의해 지정된 어드레스와 상이한 어드레스가 클라이언트와 서버 사이에 이미 확립되어 있는지를 판정한다. 세션이 이미 확립되어 있다고 판정되면 이미 확립된 세션을 이용하여 어플리케이션이 서버와 통신하게 하고, 세션이 확립되어 있지 않다고 판정되면 신규로 확립된 세션을 이용하여 어플리케이션이 서버와 통신하게 한다.A session management system is provided that enables efficient use of network resources when a communication address is assigned to a network interface. The system manages sessions between a server and a client having a plurality of addresses. When an application provided to a client requires communication with a server, it is determined whether an address different from the address specified by the application has already been established between the client and the server. If it is determined that the session is already established, then the application uses the already established session to communicate with the server. If it is determined that the session is not established, then the application uses the newly established session to communicate with the server.

서버, 클라이언트, 세션, 어플리케이션, 식별 정보 Server, Client, Session, Application, and Identification Information

Description

세션 관리 시스템 및 그 제어 방법{SESSION MANAGEMENT SYSTEM AND METHOD OF CONTROLLING THE SAME}Session management system and control method {SESSION MANAGEMENT SYSTEM AND METHOD OF CONTROLLING THE SAME}

본 발명은, 어플리케이션간의 통신에서의 논리적인 접속 관계를 나타내는 세션의 관리 기술에 관한 것이다.The present invention relates to a session management technique that represents a logical connection relationship in communication between applications.

종래, 네트워크(LAN 등의 인트라넷 또는 인터넷)에서 이용되는 통신 장치로서, PC(퍼스널 컴퓨터), 프린터, MFP(Multi-Function Peripherals)를 포함하는 다양한 정보 처리 장치가 알려져 있다.Background Art Conventionally, various information processing apparatuses including PCs (personal computers), printers, and MFPs (Multi-Function Peripherals) are known as communication apparatuses used in a network (intranet such as a LAN or the Internet).

현재, 네트워크에 접속되는 정보 처리 장치에서는, IP 프로토콜이 널리 이용되고 있고, 이 IP 프로토콜에서는, 각 정보 처리 장치에 고유한 IP 어드레스(통신 어드레스)을 할당함으로써, 접속 장치들이 서로 식별된다.Currently, IP protocols are widely used in information processing apparatuses connected to a network. In this IP protocol, connection apparatuses are identified from each other by assigning an IP address (communication address) unique to each information processing apparatus.

종래의 IP 프로토콜(IPv4(IP 버전 4)) 하에서는, 일반적으로, 하나의 정보 처리 장치를 다른 정보 처리 장치로부터 식별하기 위한 IP 어드레스로서 1개의 네트워크 인터페이스에 대해서 1개의 IP 어드레스가 부여되어 있었다.Under the conventional IP protocol (IPv4 (IP version 4)), generally, one IP address has been assigned to one network interface as an IP address for identifying one information processing device from another information processing device.

한편, 최근 보급되고 있는 IPv6(IP 버전 6) 하에서는, 단말기 장치는, 라우터에 접속되었을 때에, 그 라우터와 통신을 행하여 자동적으로 IP 어드레스를 취득 하고 있다. 또한,라우터가 존재하지 않을 경우도 통신을 행할 수 있도록 하기 위해, 그 IP 어드레스 이외에, 네트워크 인터페이스마다 IPv6 어드레스를 할당한다.On the other hand, under IPv6 (IP version 6), which has been widespread in recent years, when connected to a router, the terminal device communicates with the router and automatically acquires an IP address. In addition, in order to enable communication even when no router exists, an IPv6 address is assigned to each network interface in addition to the IP address.

또한,DHCP(Dynamic Host Configuration Protocol) 서버가 존재할 경우도 있다. 상기한 바와 같이, IPv6을 사용하는 환경에서는, 복수의 IPv6 어드레스가 1개의 네트워크 인터페이스에 할당된다. 그 결과, IPv6을 지원하는 정보 처리 장치에서는,1개의 네트워크 인터페이스에 대하여, IPv4 어드레스 및 복수의 IPv6 어드레스를 할당할 수 있다.In addition, there may be a Dynamic Host Configuration Protocol (DHCP) server. As described above, in an environment using IPv6, a plurality of IPv6 addresses are assigned to one network interface. As a result, in the information processing apparatus supporting IPv6, an IPv4 address and a plurality of IPv6 addresses can be assigned to one network interface.

또한,정보 처리 장치가 서로 통신을 행하는 경우에는, 송신원과 송신처의 네트워크 소켓, 즉 IP 어드레스와 포트 번호의 조가 작성된다. 이 네트워크 소켓의 작성 처리는, 각 정보 처리 장치의 네트워크 리소스인 메모리 공간 및 CPU 처리 시간을 소비한다.In addition, when the information processing apparatuses communicate with each other, a set of network sockets, that is, an IP address and a port number, of a sender and a sender is created. This network socket creation process consumes memory space and CPU processing time which are network resources of each information processing apparatus.

그 때문에,다수의 정보 처리 장치와 접속해서 통신을 행하는 서버는, 접속수의 양에 대응하는 네트워크 리소스를 소비한다. 한편,프린터, MFP 등의 정보 처리 장치에 이용가능한 네트워크 리소스 양은, 서버에 이용가능한 네트워크 리소스의 양보다 작기 때문에, 동시에 정보 처리 장치에 접속될 수 있는 통신 기기의 수도 작다.Therefore, the server which connects and communicates with many information processing apparatuses consumes the network resource corresponding to the quantity of connections. On the other hand, since the amount of network resources available to an information processing apparatus such as a printer and an MFP is smaller than the amount of network resources available to a server, the number of communication devices that can be connected to the information processing apparatus at the same time is small.

또한,데이터 사이즈의 여하를 막론하고, 네트워크 소켓을 개방할 때까지의 시간이, UDP 통신의 경우에 비해서 길게 설정되는 TCP 통신의 경우에는, 단위 시간당 확립가능한 동시 접속수가 UDP 통신의 경우에 비해 작아지도록 제한되기 때문에, 서버에서는, 클라이언트로부터의 요구가 쇄도할 경우에 접속 에러가 발생된다.In addition, in the case of TCP communication in which the time until the network socket is opened regardless of the data size is set longer than in the case of UDP communication, the number of concurrent connections that can be established per unit time is smaller than in the case of UDP communication. Because of this limitation, the server generates a connection error when a request from a client floods.

이러한 문제를 해결하기 위해, 클라이언트/서버 시스템에서, 클라이언트에 제공된 복수의 어플리케이션이 동일 어드레스가 할당된 서버와 복수의 세션을 확립해서 그와 통신하는 경우에, 네트워크 리소스를 절약할 수 있게 하는 제안이 이루어져 있다(특개평 10-177548호 공보 참조).In order to solve this problem, in a client / server system, there is a proposal to save network resources when a plurality of applications provided to a client establishes and communicates with multiple servers assigned to the same address. (See Japanese Patent Application Laid-Open No. 10-177548).

그러나, 상기 특개평 10-177548호 공보에서는, 1개의 네트워크 인터페이스에 대하여 복수의 IPv6 어드레스를 할당한 경우에는, 동일 서버와의 통신에서라도, 복수의 서버 어드레스에 대한 접속을 확립하기 위한 네트워크 리소스를 절약할 수 없다.However, in Japanese Patent Laid-Open No. 10-177548, when a plurality of IPv6 addresses are allocated to one network interface, even in communication with the same server, network resources for establishing a connection to the plurality of server addresses are saved. Can not.

본 발명은 세션 관리 시스템 및 그 제어 방법을 제공한다.The present invention provides a session management system and a control method thereof.

본 발명의 제1 양태에서는,복수의 어드레스를 갖는 서버와 클라이언트 사이의 세션들을 관리하는 세션 관리 시스템으로서,상기 클라이언트에 제공된 어플리케이션이 상기 서버와 통신하도록 요구하는 경우에, 상기 어플리케이션에 의해 지정된 어드레스와 상이한 어드레스를 이용하는 세션이 상기 클라이언트와 상기 서버 사이에 이미 확립되어 있는지의 여부를 판정하도록 구성된 판정 유닛, 및 상기 세션이 이미 확립되어 있다고 판정된 경우에 상기 어플리케이션이 이미 확립된 세션을 이용하여 상기 서버와 통신하게 하고, 상기 세션이 확립되어 있지 않다고 판정된 경우에 상기 어플리케이션이 신규로 확립된 세션을 이용하여 상기 서버와 통신 하게 하도록 구성된 제어 유닛을 포함하는 세션 관리 시스템이 제공된다.In a first aspect of the present invention, there is provided a session management system for managing sessions between a server having a plurality of addresses and a client, wherein the application provided to the client requests communication with the server. A determination unit configured to determine whether a session using a different address is already established between the client and the server, and the server using the session in which the application has already been established if it is determined that the session is already established. And a control unit configured to cause the application to communicate with the server using the newly established session when it is determined that the session is not established.

본 발명의 제2 양태에서는, 복수의 어드레스를 갖는 서버와 클라이언트 사이의 세션들을 관리하는 세션 관리 시스템을 제어하는 방법으로서, 상기 클라이언트에 제공된 어플리케이션이 상기 서버와 통신하도록 요구하는 경우에, 상기 어플리케이션에 의해 지정된 어드레스와 상이한 어드레스를 이용하는 세션이 상기 클라이언트와 상기 서버 사이에 이미 확립되어 있는지의 여부를 판정하는 단계, 상기 세션이 이미 확립되어 있다고 판정된 경우에 상기 어플리케이션이 이미 확립된 세션을 이용하여 상기 서버와 통신하게 하는 단계, 및 상기 세션이 확립되어 있지 않다고 판정된 경우에 상기 어플리케이션이 신규로 확립된 세션을 이용하여 상기 서버와 통신하게 하는 단계를 포함하는 세션 관리 시스템의 제어 방법이 제공된다.In a second aspect of the present invention, there is provided a method for controlling a session management system for managing sessions between a server and a client having a plurality of addresses, wherein the application provided to the client requests communication with the server. Determining whether a session using an address different from the address specified by the client is already established between the client and the server, and if it is determined that the session is already established, the application uses the already established session. Communicating with a server, and if it is determined that the session is not established, causing the application to communicate with the server using a newly established session.

본 발명에 따르면, 1개의 네트워크 인터페이스에 대하여 복수의 통신 어드레스를 할당하는 경우에, 네트워크 리소스를 효율적으로 이용하고, 혹은 절약할 수 있다.According to the present invention, when a plurality of communication addresses are assigned to one network interface, network resources can be efficiently used or saved.

첨부 도면을 참조한 이하의 예시적인 실시예의 상세 설명으로부터 본 발명의 다른 특징이 보다 명백해질 것이다.Other features of the present invention will become more apparent from the following detailed description of exemplary embodiments with reference to the accompanying drawings.

명세서의 일부에 포함되고 일부를 구성하는 첨부 도면은 상세한 설명과 함께 발명의 실시예들을 나타내고 발명의 원리를 설명하는 역할을 한다.The accompanying drawings, which are incorporated in and constitute a part of the specification, together with the description serve to explain embodiments of the invention and to explain the principles of the invention.

이하, 본 발명의 실시예를 나타내는 첨부 도면을 참조하여 본 발명이 상세히 설명될 것이다. 본 발명은 이하에 설명되는 제1 실시예 내지 제7 실시예에 한정되지 않음을 주의해야 한다. 또한,제1 내지 제7 실시예에 따른 특징 사항의 조합의 모두가 본 발명에 필수적인 것이라고는 할 수 없다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings, which illustrate embodiments of the present invention. Note that the present invention is not limited to the first to seventh embodiments described below. In addition, not all combinations of the feature items according to the first to seventh embodiments are essential to the present invention.

도 1은, 본 발명의 제1~3, 7 실시예에 따른 세션 관리 시스템을 적용한 클라이언트/서버 시스템의 소프트웨어의 구성을 나타내는 도면이다.1 is a diagram showing the software configuration of a client / server system to which the session management system according to the first to third and seventh embodiments of the present invention is applied.

도 1에 도시된 바와 같이, 클라이언트 PC(클라이언트 단말기)(100)와 서버 PC(105)는, 네트워크(106)를 통해서 상호 접속되어 있다. 제1 내지 제3 및 제7 실시예에서는, 네트워크(106)는, LAN이나 WAN에 의해 구현되는 것으로 상정되지만, LAN 및 WAN과 상이한 유형의 네트워크를 이용하는 것도 가능하다. 또한,클라이언트 PC(100)와 서버 PC(105)는, 네트워크(106)에 의해서가 아니라, IEEE 1394 또는 1284 등의 규격에 따른 인터페이스(케이블)에 의해 접속될 수 있다.As shown in FIG. 1, the client PC (client terminal) 100 and the server PC 105 are interconnected via a network 106. In the first to third and seventh embodiments, the network 106 is assumed to be implemented by LAN or WAN, but it is also possible to use a different type of network than the LAN and WAN. In addition, the client PC 100 and the server PC 105 can be connected not by the network 106 but by an interface (cable) according to the standard such as IEEE 1394 or 1284.

또한,제1~7 실시예에서는, 클라이언트 PC(100)는, 통상의 PC(Personal Computer)로 구현되는 것으로 상정되지만, PC 대신에 프린터 또는 MFP(multifunction peripheral)을 이용할 수도 있다. 즉, 네트워크 통신 기능을 갖는 휴대형 정보 단말기, 스캐너, 팩시밀리 장치 등의 각종의 기기에도 제1~7 실시예에 따른 특징 사항을 적용할 수 있다.In addition, in the first to seventh embodiments, the client PC 100 is assumed to be implemented by a normal PC (Personal Computer), but a printer or a multifunction peripheral (MFP) may be used instead of the PC. That is, the feature items according to the first to seventh embodiments can be applied to various devices such as portable information terminals, scanners, and facsimile devices having a network communication function.

클라이언트 PC(100)는, 클라이언트 어플리케이션(101 및 101a)을 포함한다. 단, 클라이언트 PC(100)가 1개 또는 3개 이상의 클라이언트 어플리케이션만을 포함하는 경우에도 제1 실시예를 적용할 수 있다(이것은 제2~7의 실시예에도 적용됨).The client PC 100 includes client applications 101 and 101a. However, even when the client PC 100 includes only one or three or more client applications, the first embodiment can be applied (this also applies to the second to seventh embodiments).

클라이언트 어플리케이션(101 및 101a)은, 각각 스터브 오브젝트(102, 102a)를 이용해서 통신을 행한다. 이 경우, 실제의 통신 처리는, 클라이언트 프로세스간 통신부(103)에 의해 행해진다.The client applications 101 and 101a communicate using the stub objects 102 and 102a, respectively. In this case, the actual communication process is performed by the communication process 103 between client processes.

클라이언트 프로세스간 통신부(103)는, 오퍼레이팅 시스템의 통신 라이브러리(104a)를 이용해서 서버 PC(105)와 통신한다. 통신 라이브러리(104a)를 이용해서 행해지는 통신은, 소켓(IP 어드레스+포트 번호) 통신 이외에, RPC(Remote Procedure call), LPC(Local Procedure Call) 및 Web 서비스 등에 의한 통신도 포함한다.The client interprocess communication unit 103 communicates with the server PC 105 using the communication library 104a of the operating system. The communication performed using the communication library 104a includes not only socket (IP address + port number) communication but also communication by RPC (Remote Procedure call), LPC (Local Procedure Call), Web service, and the like.

서버 PC(105)에서는, 서버 어플리케이션(108)이 동작하고 있다. 서버 어플리케이션(108)은, 서버 프로세스간 통신부(107)를 이용해서 통신을 행한다. 서버 프로세스간 통신부(107)는, 통신 라이브러리(104b)를 이용하여, 네트워크(106)을 통해서 클라이언트 PC(100)와 통신을 행한다. 또한,하나 또는 그 이상의 서버 어플리케이션(108)이 제공될 수도 있다.In the server PC 105, the server application 108 is operating. The server application 108 communicates using the server process communication unit 107. The server inter-process communication unit 107 communicates with the client PC 100 via the network 106 using the communication library 104b. In addition, one or more server applications 108 may be provided.

상기한 바와 같이, 클라이언트 어플리케이션(101 또는 101a)과 서버 어플리케이션(108) 사이의 실제의 통신 처리는, 클라이언트 프로세스간 통신부(103)와 서버 프로세스간 통신부(107)에 의해 행해진다. 이 실제의 통신 처리는, 일련의 요구 및 응답에 따른 세션 관리 처리도 포함한다. 바꾸어 말하면, 클라이언트 프로세스간 통신부(103) 및 서버 프로세스간 통신부(107)에 의해, 본 발명에 특유한 세션 관리 처리가 행해진다.As described above, the actual communication processing between the client application 101 or 101a and the server application 108 is performed by the inter-client communication unit 103 and the inter-server communication unit 107. This actual communication process also includes session management processing according to a series of requests and responses. In other words, the session management process peculiar to the present invention is performed by the client interprocess communication unit 103 and the server interprocess communication unit 107.

또한,도 1의 클라이언트/서버 시스템에서는, 클라이언트와 서버가 PC(Personal Computer)에 의해 각각 구현되지만,다른 네트워크 디바이스, 통신 기능을 갖는 정보 처리 장치, 주변 장치 등으로 구성된 클라이언트/서버 시스템에 제1~제3 실시예를 적용할 수도 있다. 이 경우, 도 1의 클라이언트/서버 시스템의 클라이언트 PC(100) 또는 서버 PC(105)에 의해 수행되는 프로그램의 동작을, 클라이언트 PC(100) 및 서버 PC(105) 이외의 네트워크 디바이스 등에 제공된 CPU, ROM 또는 RAM을 이용해서 실행하도록 시스템을 구성하기만 하면 된다.In addition, in the client / server system of FIG. 1, although the client and the server are each implemented by a personal computer (PC), the client / server system includes a first network device configured of another network device, an information processing apparatus having a communication function, a peripheral device, and the like. The third embodiment can also be applied. In this case, a CPU provided to an operation of a program performed by the client PC 100 or the server PC 105 of the client / server system of FIG. 1 may be provided to a network device other than the client PC 100 and the server PC 105, or the like. You just need to configure your system to run using ROM or RAM.

클라이언트 PC(100) 및 서버 PC(105)는, 도 2 에 도시한 바와 같이 구성된 하드웨어를 갖는 컴퓨터(2000)에 의해 실현된다.The client PC 100 and the server PC 105 are realized by a computer 2000 having hardware configured as shown in FIG. 2.

컴퓨터(2000)는, 본체 제어부(200), 주변기기로서의 키보드(209), 표시 장치(210), 외부 메모리(211)를 포함한다. 본체 제어부(200)는, CPU(201), RAM(202), ROM(203), 키보드 제어부(205), 표시 제어부(206), 디스크 제어부(207), 및 네트워크 제어부(208)를 포함한다.The computer 2000 includes a main body control unit 200, a keyboard 209 as a peripheral device, a display device 210, and an external memory 211. The main body control unit 200 includes a CPU 201, a RAM 202, a ROM 203, a keyboard control unit 205, a display control unit 206, a disk control unit 207, and a network control unit 208.

CPU(201)는, 시스템 버스(204)에 접속된 디바이스들의 총괄적인 제어를 수행한다. CPU(201)는, ROM(203)의 프로그램용 ROM(203b), 혹은 외부 메모리(HD)(2101)에 기억된 어플리케이션(문서 처리 프로그램, 서비스 제공 프로그램 등)에 기초하여, 문서 처리 및 서비스 제공 처리를 포함하는 각종 처리를 수행한다.The CPU 201 performs overall control of the devices connected to the system bus 204. The CPU 201 provides document processing and service provision based on an application (document processing program, service providing program, etc.) stored in the program ROM 203b of the ROM 203 or the external memory (HD) 2101. Various processing including processing is performed.

또한,문서 처리 프로그램은, 도형, 이미지, 문자 및 표(스프레드시트 포함)를 혼합하여 포함한 문서를 처리하기 위한 문서 처리가 행해진다. 또한,외부 메모리(211)는, 문서 처리를 위한 어플리케이션뿐만 아니라, 정지 화상이나 동화상에 서의 화상 정보 및 음악 정보, 음 정보를 포함하는 영상 정보 등의 각종 정보를 취득?처리하기 위한 어플리케이션을 기억해도 된다.In addition, the document processing program performs document processing for processing a document including a mixture of figures, images, characters, and tables (including a spreadsheet). In addition, the external memory 211 stores not only an application for document processing but also an application for acquiring and processing various information such as image information, music information, sound information, and the like in still and moving images. You may also

CPU(201)는, 예를 들면 RAM(202)에 설정된 표시 RAM에의 아우트라인 폰트(outline font)의 래스터라이즈 처리를 행하고, 표시 제어부(206)를 통해서 문자열을 표시 장치(210)에 표시한다. 또한,CPU(201)는, 표시 장치(210) 상의 마우스 커서(도시 생략) 등으로 지정된 커맨드에 기초하여, 여러 가지 윈도우 중 관련된 것을 열어서 여러 가지 데이터 처리 또는 서비스 제공 처리 중 관련된 것을 실행한다. 유저는, 클라이언트 어플리케이션(101 또는 101a) 또는 서버 어플리케이션(108)을 사용할 경우에, 그 어플리케이션에 대한 설정 윈도우를 열고, 이 윈도우 상에서 각종 설정을 행할 수 있다. 표시 장치(210)는, CRT 표시 장치, 액정 표시 장치, 플라즈마 표시 장치 등 중 어느 것에 의해 실현될 수 있다.The CPU 201 performs rasterization processing of an outline font in the display RAM set in the RAM 202, for example, and displays the character string on the display device 210 through the display control unit 206. In addition, the CPU 201 opens the related one among various windows and executes the related one among various data processing or service providing processing based on a command designated by a mouse cursor (not shown) or the like on the display device 210. When the user uses the client application 101 or 101a or the server application 108, the user can open a setting window for the application and make various settings on this window. The display device 210 can be realized by any of a CRT display, a liquid crystal display, a plasma display, and the like.

RAM(202)은, CPU(201)의 주 메모리, 작업 영역 등으로서 이용된다. ROM(203)은, 폰트용 ROM(203a), 프로그램용 ROM(203b) 및 데이터용 ROM(203c)에 의해 구성되어 있다.The RAM 202 is used as a main memory of the CPU 201, a work area, and the like. The ROM 203 is comprised by the font ROM 203a, the program ROM 203b, and the data ROM 203c.

폰트용 ROM(203a) 및 외부 메모리(211)는, 문서 처리 및 서비스 제공 처리 에서 사용하는 폰트 데이터 등을 기억하고 있다. 프로그램용 ROM(203b) 및 외부 메모리(211)는, CPU(201)의 제어 프로그램인 오퍼레이팅 시스템, 및 유사한 다른 프로그램을 기억하고 있다. 데이터용 ROM(203c) 및 외부 메모리(211)는, 문서 처리 또는 서비스 제공 처리에 사용하는 각종 데이터(프로그램을 포함)를 기억하고 있다. 외부 메모리(211)에 기억되어 있는 프로그램은, 실행 시에는 RAM(202)에 각 각 로딩된다.The font ROM 203a and the external memory 211 store font data and the like used in document processing and service providing processing. The program ROM 203b and the external memory 211 store an operating system, which is a control program of the CPU 201, and similar other programs. The data ROM 203c and the external memory 211 store various data (including a program) used for document processing or service providing processing. Programs stored in the external memory 211 are loaded into the RAM 202 at the time of execution.

키보드 제어부(205)는, 키보드(209) 및 포인팅 디바이스(도시 생략)로부터의 입력 데이터, 커맨드를 제어한다. 표시 제어부(206)는, 표시 장치(210)의 표시 동작을 제어한다. 디스크 제어부(207)는, 외부 메모리(211)에 대한 액세스를 제어한다.The keyboard control unit 205 controls input data and commands from the keyboard 209 and the pointing device (not shown). The display control unit 206 controls the display operation of the display device 210. The disk control unit 207 controls access to the external memory 211.

네트워크 제어부(208)는, 쌍방향성 인터페이스(212)를 통해서 네트워크(106)에 접속되어 있다. 이 네트워크 제어부(208)는, 도 1에 각각 나타낸 클라이언트 프로세스간 통신부(103 또는 107) 및 통신 라이브러리(104a 또는 104b)에 기초하여 네트워크 및 세션의 접속 또는 절단 처리를 행한다.The network control unit 208 is connected to the network 106 via the bidirectional interface 212. This network control unit 208 performs connection or disconnection processing of a network and a session based on the client inter-process communication unit 103 or 107 and the communication library 104a or 104b shown in FIG. 1, respectively.

키보드(209)는, 각종 데이터 및 커맨드를 입력하기 위한 키를 구비하고 있다. 표시 장치(210)는, 문서 처리, 서비스 제공 처리에 따른 각종의 정보 등을 표시한다. 외부 메모리(211)는, 하드 디스크(HD), 플렉시블 디스크(FD) 등에 의해 구현되어 있다. 이 외부 메모리(211)는, 부트 프로그램, 각종 어플리케이션, 폰트 데이터, 유저 파일, 편집 파일 등을 기억하고 있다. 또한,외부 메모리(211)는, 어플리케이션으로서, 도 6~도 9b, 도 10a~도 11b, 및 도 12a~도 13b에 도시된 플로우차트, 시퀀스도를 참조해서 후술하는 각 처리를 실행하는 제어 프로그램도 기억하고 있다.The keyboard 209 is provided with keys for inputting various data and commands. The display device 210 displays various types of information according to document processing, service providing processing, and the like. The external memory 211 is implemented by a hard disk HD, a flexible disk FD, or the like. This external memory 211 stores a boot program, various applications, font data, user files, edit files, and the like. In addition, the external memory 211 is an application, as a application, a control program that executes each of the processes described later with reference to the flowcharts and sequence diagrams shown in FIGS. I also remember.

도 3은, 서버 PC(105)의 서버 프로세스간 통신부(107)의 상세한 소프트웨어 구성을 도시하는 블록도이다.3 is a block diagram showing the detailed software configuration of the server interprocess communication unit 107 of the server PC 105.

서버 프로세스간 통신부(107)는, 서버 프로세스간 통신 제어부(301) 및 서버 식별자 회신부(302)를 갖고,클라이언트 PC(100)로부터의 통신 요구에 응답한다. 즉, 서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)로부터의 요구에 응답하여, 서버 식별자 회신부(302)에 의해 서버 식별자(504)(도 5 참조)를 회신하거나, 서버 어플리케이션(108)에 의해 작성된 데이터를 클라이언트 PC(100)에 회신하거나 하도록 한다. 이 서버 식별자(504)의 회신 처리의 상세 내용은, 후술한다.The interprocess communication unit 107 has a server interprocess communication control unit 301 and a server identifier return unit 302, and responds to a communication request from the client PC 100. That is, the server inter-process communication control unit 301 returns the server identifier 504 (see FIG. 5) by the server identifier reply unit 302 in response to a request from the client PC 100, or the server application ( The data created by 108 may be returned to the client PC 100. Details of the reply processing of this server identifier 504 will be described later.

도 4는, 클라이언트 PC(100)의 클라이언트 프로세스간 통신부(103)의 상세한 소프트웨어 구성을 도시하는 블록도이다. 도 4에서는, 도 1을 참조하여 설명한 스터브 오브젝트(102 및 102a)의 기재는 생략하고 있다(도 15 및 도 24도 동일하게 적용). 도 4에 도시한 바와 같이,클라이언트 프로세스간 통신부(103)는, 프로세스간 통신 제어부(401), 서버 식별자 취득부(402), 세션 관리부(403), DB(데이터베이스) 관리부(405), 세션 절단 관리부(407) 및 세션 재접속 관리부(409)를 포함한다. 클라이언트 프로세스간 통신부(103)는, 세션 판정부(404), 세션 관리 정보 DB(406) 및 접속 레퍼런스 카운트 기억부(408)를 더 포함한다.4 is a block diagram showing the detailed software configuration of the client interprocess communication unit 103 of the client PC 100. In FIG. 4, description of the stub objects 102 and 102a demonstrated with reference to FIG. 1 is abbreviate | omitted (applies also to FIG. 15 and FIG. 24). As illustrated in FIG. 4, the inter-process communication unit 103 includes an inter-process communication control unit 401, a server identifier acquisition unit 402, a session management unit 403, a DB (database) management unit 405, and session disconnection. A management unit 407 and a session reconnection manager 409. The inter-process communication unit 103 further includes a session determination unit 404, a session management information DB 406, and a connection reference count storage unit 408.

클라이언트 프로세스간 통신부(103)는, 프로세스간 통신 제어부(401)의 제어 하에 세션의 관리를 행함으로써, 클라이언트 어플리케이션(101 및 101a)와 서버 어플리케이션(108) 사이에서 행해지는 통신 동작을 제어한다. 서버 식별자 취득부(402)는, 서버 PC(105)의 서버 식별자 회신부(302)에 의해 회신된 서버 식별자(504)을 취득한다. 서버 식별자(504)는, 사용되는 세션을 선택하기 위해서 이용된다.The client interprocess communication unit 103 controls the communication operation performed between the client applications 101 and 101a and the server application 108 by managing the session under the control of the interprocess communication control unit 401. The server identifier acquisition unit 402 acquires the server identifier 504 returned by the server identifier reply unit 302 of the server PC 105. The server identifier 504 is used to select the session used.

세션 관리부(403)는, 세션 정보의 작성 처리를 행하거나, 세션 관리 정보 DB(406) 내에 기억된 관리 정보의 일부를 삭제할 지의 여부를 판단한다. 세션 판정부(404)는, 접속 요구시 지정된 수신처 어드레스와 상이한 수신처 어드레스에 대한 기존 세션이, 서버 식별자(504)(서버 식별 정보)로 식별되는 동일한 서버를 수반하는 것을 포함하는지 여부를 판정한다. 바꾸어 말하면, 세션 판정부(404)는, 새로운 세션을 확립해서 통신을 행할지, 혹은 기존 세션을 이용해서 통신을 행할지를 판정한다.The session management unit 403 performs a process of creating session information or determines whether to delete a part of the management information stored in the session management information DB 406. The session determination unit 404 determines whether an existing session for a destination address different from the destination address specified at the connection request includes the same server identified by the server identifier 504 (server identification information). In other words, the session determination unit 404 determines whether to communicate by establishing a new session or by using an existing session.

DB 관리부(405)는, 세션 관리 정보 DB(406)(도 5 참조)에 대한 액세스를 제어한다. 세션 절단 관리부(407)는, 접속 레퍼런스 카운트에 기초하여 세션의 절단 관리를 행한다. 접속 레퍼런스 카운트 기억부(408)는, 접속 레퍼런스 카운트를 기억한다. 이 접속 레퍼런스 카운트는, 세션을 클로즈(close)하는 타이밍을 결정하기 위해서 이용된다. 세션 재접속 관리부(409)는, 통신 에러가 발생한 세션에서 현재 행하고 있는 통신을, 다른 어드레스(소켓)에서 재접속해서 계속하기 위한 제어를 행한다.The DB manager 405 controls access to the session management information DB 406 (see FIG. 5). The session truncation management unit 407 performs session management on the basis of the connection reference count. The connection reference count storage unit 408 stores the connection reference count. This connection reference count is used to determine the timing to close the session. The session reconnection management unit 409 controls to continue the communication currently being performed in the session in which the communication error has occurred, by reconnecting at another address (socket).

도 5는, 세션 관리 정보 DB(406)에 등록되어 있는 세션 관리 정보를 예시한 도면이다. 어플리케이션 식별자(501)는, 접속 요구를 발생한 클라이언트 어플리케이션(101 또는 101a)을 식별하는 식별자(인스턴스 핸들)이다.5 is a diagram illustrating session management information registered in the session management information DB 406. The application identifier 501 is an identifier (instance handle) that identifies the client application 101 or 101a that generated the connection request.

요구 어드레스 정보(502)는, 클라이언트 어플리케이션(101 또는 101a)이 접속을 요구할 때에 클라이언트 어플리케이션(101 또는 101a)이 지정한 수신처 어드레스를 나타낸다. 이 수신처 어드레스는, IP 어드레스(502a)와 포트 번호(502b)를 포함하고 있다. 통신 어드레스 정보(503)는, 지정된 수신처 어드레스에 기초하여 기존 세션의 이용 가능성을 판단한 후, 실제 통신을 위해 선택된 세션의 접속처(서버 PC(105))의 어드레스를 나타낸다. 이 통신 어드레스는, IP 어드레스(503a)와 포트 번호(503b)을 포함하고 있다.The request address information 502 indicates a destination address designated by the client application 101 or 101a when the client application 101 or 101a requests a connection. This destination address includes an IP address 502a and a port number 502b. The communication address information 503 indicates the address of the connection destination (server PC 105) of the session selected for actual communication after determining the availability of an existing session based on the designated destination address. This communication address includes an IP address 503a and a port number 503b.

또한,통신 어드레스 정보(503)는, IP 어드레스(503a) 및 포트 번호(503b) 이외에, 포트 번호(503b)의 대체 정보로서의 엔드 포인트, 혹은 IP 어드레스(503a) 및 포트 번호(503b)의 대체 정보로서의 채널 정보를 포함할 수도 있다.The communication address information 503 is, in addition to the IP address 503a and the port number 503b, an endpoint as replacement information of the port number 503b, or replacement information of the IP address 503a and the port number 503b. It may also include channel information as.

서버 식별자(504)(인스턴스 핸들)는, 접속 요구원의 클라이언트 어플리케이션(101 또는 101a)이 수신처 어드레스(IP 어드레스, 포트 번호 등)에 기초하여 서버 PC(105)에 요구함으로써 취득된다. 세션 번호(505)는, 접속 요구원의 클라이언트 어플리케이션(101 또는 101a)과, 접속처인 서버 어플리케이션(108) 사이에서 교환되는 일련의 요구 및 응답(데이터 전송)에 기초하여 확립된 각 세션을 서로 다른 하나의 섹션으로부터 식별하기 위해서 부여되는 식별 번호이다.The server identifier 504 (instance handle) is obtained by requesting the server PC 105 based on the destination address (IP address, port number, etc.) of the client application 101 or 101a of the connection request source. The session number 505 is different for each session established based on a series of requests and responses (data transmission) exchanged between the client application 101 or 101a of the connection request source and the server application 108 as the connection destination. An identification number assigned to identify from one section.

다음으로,서버 PC(105)의 서버 프로세스간 통신부(107)가 행하는 세션 관리 처리를, 도 6의 플로우차트에 기초해서 설명한다.Next, session management processing performed by the server inter-process communication unit 107 of the server PC 105 will be described based on the flowchart of FIG. 6.

서버 프로세스간 통신부(107)의 서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)로부터 접속 요구를 받으면,서버 식별자 회신부(302)에 의해, 서버 식별자(504)를 작성시킨다(단계 S601). 이 서버 식별자(504)로서, 일의의 식별을 가능하게 하는 UUID(Universally Unique Identifier) 등이 사용된다. 이제부터, 서버 PC(105)의 서버 프로세스간 통신부(107)는, 패킷을 수신한 소켓의 IP 어드레스 및 포트 번호의 여하를 막론하고, 동일한 서버 식별자(504)을 회신한다.When the server interprocess communication control unit 301 of the server process intercommunication unit 107 receives a connection request from the client PC 100, the server identifier reply unit 302 creates a server identifier 504 (step S601). ). As this server identifier 504, a universally unique identifier (UUID) or the like that enables unique identification is used. From now on, the server interprocess communication unit 107 of the server PC 105 returns the same server identifier 504 regardless of the IP address and the port number of the socket that received the packet.

다음으로,서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)로부터의 패킷을 통신 라이브러리(104b)을 통해서 수신한다(단계 S602). 그리고, 서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)로부터 수신한 패킷이, 서버 식별자(504)의 취득 요구에 따른 것인지의 여부를 판별한다(단계 S603).Next, the inter-server communication control unit 301 receives the packet from the client PC 100 via the communication library 104b (step S602). Then, the inter-process communication control unit 301 determines whether the packet received from the client PC 100 is in accordance with the acquisition request of the server identifier 504 (step S603).

패킷이 서버 식별자(504)의 취득 요구에 따른 것이면, 서버 프로세스간 통신 제어부(301)는, 단계 S601에서 서버 식별자 회신부(302)에 의해 생성된 서버 식별자(504)를, 서버 식별자(504)를 요구하는 클라이언트 PC에 회신한다. 이 처리는, 단계 S604에서 행해진다. 이 경우, 서버 식별자(504)는, 회신 패킷으로서, 통신 라이브러리(104b)를 이용해서 네트워크(106) 경유로 클라이언트 PC(100)에 회신된다.If the packet is in accordance with the acquisition request of the server identifier 504, the inter-process communication control unit 301 determines the server identifier 504 generated by the server identifier reply unit 302 in step S601. Reply to the client PC requesting This process is performed in step S604. In this case, the server identifier 504 is returned as a reply packet to the client PC 100 via the network 106 using the communication library 104b.

다음으로,서버 프로세스간 통신 제어부(301)는, 서비스 종료 지시의 수신 유무를 판별한다(단계 S608). 서비스 종료 지시가 수신되지 않았으면, 처리는 단계 S602로 되돌아가서, 서비스 제공을 속행한다.Next, the inter-server communication control unit 301 determines whether or not a service end instruction has been received (step S608). If no service end instruction has been received, the process returns to step S602 to continue service provision.

한편,수신 패킷이 서버 식별자(504)의 취득 요구에 따른 것이 아닌 경우에는, 서버 프로세스간 통신 제어부(301)는, 수신 패킷이 신규 데이터의 송신 요구인지 여부를 판별한다(단계 S605).On the other hand, when the received packet does not comply with the acquisition request of the server identifier 504, the inter-process communication control unit 301 determines whether the received packet is a request for transmission of new data (step S605).

수신 패킷이 신규 데이터의 송신을 요구하면, 서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)에 데이터 전송을 행하기 위한 소켓을 작성한다(단계 S606). 이 소켓 작성 처리는, 통신 라이브러리(104b)을 이용하여, 통신 프로토콜로서의 TCP 프로토콜에 기초한 승인 처리를 통해 행해진다.If the received packet requests the transmission of new data, the server inter-process communication control unit 301 creates a socket for transmitting data to the client PC 100 (step S606). This socket creation process is performed through the approval process based on the TCP protocol as a communication protocol using the communication library 104b.

단계 S606의 처리 후에, 처리는 단계 S607로 진행한다. 한편,수신 패킷이 신규 데이터의 송신을 요구하지 않으면, 처리는 단계 S606의 소켓 작성 처리를 스킵하고, 단계 S607로 진행한다.After the processing of step S606, the processing proceeds to step S607. On the other hand, if the received packet does not require transmission of new data, the process skips the socket creation process in step S606 and proceeds to step S607.

단계 S607에서는, 서버 프로세스간 통신 제어부(301)는, 단계 S602에서 수신한 패킷에 대한 서비스 처리를, 서버 어플리케이션(108)에 의해 실행시킨다. 즉, 서버 프로세스간 통신 제어부(301)는, 클라이언트 PC(100)로부터의 수신 데이터를 서버 어플리케이션(108)에 전송하고, 서버 어플리케이션(108)은, 클라이언트 PC(100)로부터의 요구에 따라서 회신 데이터를 작성한다. 또한,서버 어플리케이션(108)은, 작성한 회신 데이터를 서버 프로세스간 통신 제어부(301)에 전송한다. 서버 프로세스간 통신 제어부(301)는, 통신 라이브러리(104b)를 이용하여, 네트워크(106)를 경유해서 클라이언트 PC(100)에 회신 데이터를 회신한다. 그리고, 서버 프로세스간 통신 제어부(301)는, 단계 S608을 행한다.In step S607, the inter-server communication control unit 301 causes the server application 108 to execute service processing for the packet received in step S602. That is, the inter-server communication control unit 301 transmits the received data from the client PC 100 to the server application 108, and the server application 108 returns the reply data in response to a request from the client PC 100. Write. In addition, the server application 108 transmits the created reply data to the inter-server communication control unit 301. The inter-process communication control unit 301 uses the communication library 104b to return the reply data to the client PC 100 via the network 106. Then, the server process communication control unit 301 performs step S608.

다음으로,클라이언트 PC(100)의 클라이언트 프로세스간 통신부(103)가 행하는 세션 관리 처리를, 도 7의 플로우차트에 기초해서 설명한다. 또한,본 플로우차트의 처리는, 실제로 또는 직접적으로, 프로세스간 통신 제어부(401)가 행한다 (도 10a, 도 10b, 도 12a, 도 12b, 도 18, 도 20, 도 21, 도 26a 및 도 26b에 동일하게 적용).Next, the session management processing performed by the client interprocess communication unit 103 of the client PC 100 will be described based on the flowchart of FIG. 7. In addition, the process of this flowchart is actually or directly performed by the inter-process communication control part 401 (FIGS. 10A, 10B, 12A, 12B, 18, 20, 21, 26A, and 26B). Equally).

클라이언트 프로세스간 통신부(103)의 프로세스간 통신 제어부(401)는, 서버 PC(105)의 서버 어플리케이션(108)에 대한 접속 요구를 접수한다(단계 S701). 이 접속 요구는, 클라이언트 어플리케이션(101 또는 101a)으로부터 이루어진다.The interprocess communication control unit 401 of the client interprocess communication unit 103 receives a connection request for the server application 108 of the server PC 105 (step S701). This connection request is made from the client application 101 or 101a.

다음으로,프로세스간 통신 제어부(401)는, 상기 수신처 어드레스에 송신된 접속 요구에 응답하여 서버 PC(105)로부터 회신된 서버 식별자(504)를, 서버 식별자 취득부(402)를 통해서 취득한다(단계 S702). 즉, 서버 식별자 취득부(402)는, 프로세스간 통신 제어부(401)의 제어 하에, 통신 라이브러리(104a)를 이용하여, 네트워크(106) 경유로 서버 PC(105)에 서버 식별자(504)의 취득 요구 정보를 송신한다. 또한,서버 식별자 취득부(402)는, 프로세스간 통신 제어부(401)의 제어 하에, 서버 PC(105)로부터 송신된 서버 식별자(504)을 취득한다.Next, the inter-process communication control unit 401 acquires, via the server identifier acquisition unit 402, the server identifier 504 returned from the server PC 105 in response to the connection request sent to the destination address ( Step S702). That is, the server identifier acquisition unit 402 acquires the server identifier 504 from the server PC 105 via the network 106 using the communication library 104a under the control of the inter-process communication control unit 401. Send request information. The server identifier acquisition unit 402 also acquires the server identifier 504 transmitted from the server PC 105 under the control of the interprocess communication control unit 401.

다음으로,세션 관리부(403)는, 프로세스간 통신 제어부(401)의 제어 하에, 단계 S702에서 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존의 세션이 존재하는지를 판별한다(단계 S703).Next, the session managing unit 403 determines, under the control of the inter-process communication control unit 401, whether there is an existing session associated with the same server identifier 504 as the server identifier 504 acquired in step S702 (step S703). ).

이 경우, 세션 관리부(403)는, DB 관리부(405)에 의해, 세션 관리 정보 DB(406)로부터 세션 관리 정보를 취득하게 한다. 그리고, 세션 관리부(403)는, 세션 관리 정보에 기초하여, 다른 어드레스를 이용하여 현재 통신 중인 기존 세션 중에, 금회의 접속 요구에 대한 응답으로서 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존 세션이 존재하는지를 판정한다. 이 판정 처리는, 실제로는, 세션 판정부(404)가 행한다.In this case, the session management unit 403 causes the DB management unit 405 to acquire session management information from the session management information DB 406. Based on the session management information, the session manager 403 uses the same server identifier 504 as the server identifier 504 acquired as a response to this connection request during the existing session currently in communication using another address. Determine if there is an existing session involved. This determination processing is actually performed by the session determination unit 404.

도 5의 세션 관리 정보의 예를 참조하면, 관리 번호 1 및 2로 나타낸 통신에서는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 상이한 어드레스와의 접속을 위한 접속 요구가 이루어진다. 어드레스들은 상이하지만, 이들 통신은 동일한 서버 PC(105)와 실행된다. 따라서, 동일한 서버 PC(105)와 통신을 행하기 위 해, 복수의 세션을 작성하는 것은 효율적이지 않기 때문에, 여기에서는 1개의 세션을 이용해서 관리 번호 1 및 2로 나타낸 통신을 실행한다.Referring to the example of session management information in Fig. 5, in the communication indicated by management numbers 1 and 2, a connection request for connection with different addresses from the client application 101 or 101a is made. The addresses are different, but these communications are executed with the same server PC 105. Therefore, since it is not efficient to create a plurality of sessions in order to communicate with the same server PC 105, the communication indicated by the management numbers 1 and 2 is executed here using one session.

즉, 예를 들면 먼저 관리 번호 1로 나타낸 통신이 개시된 상태에서 관리 번호 2로 나타낸 통신을 개시하려고 하는 경우에는, 프로세스간 통신 제어부(401)는, 신규인 세션을 작성하지 않는다. 그 대신, 프로세스간 통신 제어부(401)는, 관리 번호 1로 나타낸 기존 세션을 관리 번호 2로 나타낸 통신의 데이터 전송용의 세션으로서 선택한다(단계 S707). 그리고, 처리는 후술하는 단계 S708로 진행한다.That is, for example, when attempting to start the communication indicated by the management number 2 while the communication indicated by the management number 1 has been started, the inter-process communication control unit 401 does not create a new session. Instead, the inter-process communication control unit 401 selects the existing session indicated by the management number 1 as the session for data transmission of the communication indicated by the management number 2 (step S707). The process then proceeds to step S708, which will be described later.

또한,기존 세션을 선택한 경우에는, 세션이 UDP 프로토콜(비커넥션형 프로토콜) 통신에 기초하고 있으면 해당 세션을 절단할 필요는 없지만, 세션이 TCP 프로토콜(커넥션형 프로토콜) 통신에 기초하고 있으면 해당 세션을 절단할 필요가 있다. 이것은, 도 10a 내지 도 12b의 단계 S707에도 적용된다.If you select an existing session, you do not need to disconnect the session if the session is based on UDP protocol (non-connection protocol) communication, but if the session is based on TCP protocol (connection protocol) communication, It is necessary to cut. This also applies to step S707 of Figs. 10A to 12B.

금회 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존 세션이 존재하지 않는 경우에는, 세션 관리부(403)는, 신규 세션을 확립하기 위해서 신규 소켓을 작성한다(단계 S704). 이 경우, 세션 관리부(403)는, 통신 라이브러리(104a)를 이용하여, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 기초하여 신규 소켓을 작성한다.If there is no existing session associated with the server identifier 504 that is the same as the server identifier 504 obtained this time, the session manager 403 creates a new socket to establish a new session (step S704). In this case, the session managing unit 403 uses the communication library 104a to create a new socket based on the destination address specified by the client application 101 or 101a.

다음으로,세션 관리부(403)는, 신규 소켓을 포함하는 신규 세션의 정보를, DB관리부(405)에 의해, 세션 관리 정보 DB(406)에 등록시킨다(단계 S705). 그리고, 프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 기초하여 신규 세션을, 금회의 데이터 전송용의 세 션으로서 선택한다(단계 S706).Next, the session manager 403 registers the information of the new session including the new socket in the session management information DB 406 by the DB manager 405 (step S705). Then, the interprocess communication control unit 401 selects a new session as the session for data transmission this time based on the destination address specified by the client application 101 or 101a (step S706).

다음으로,프로세스간 통신 제어부(401)는, 단계 S706 또는 단계 S707에서 선택된 세션에 의해, 클라이언트 어플리케이션(101 또는 101a)으로부터의 데이터를 서버 어플리케이션(108)에 전송한다(단계 S708).Next, the inter-process communication control unit 401 transmits the data from the client application 101 or 101a to the server application 108 by the session selected in step S706 or step S707 (step S708).

또한,데이터 전송용의 세션으로서 신규 세션이 선택된 경우에는, 단계 S704 내지 S708에서는, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스와, 실제로 통신을 행하는 통신 어드레스가 서로 동일해지는 것을 주의해야 한다. 이렇게 신규 세션에 의한 통신 처리는, 종래의 프로세스간 통신 기술인 RPC(Remote Procedure Call)에서 행해진 것과 같다.In addition, when a new session is selected as the session for data transmission, it should be noted that in steps S704 to S708, the destination address specified by the client application 101 or 101a and the communication address to actually communicate with each other are the same. The communication processing by the new session as described above is the same as that performed by the RPC (Remote Procedure Call) which is a conventional interprocess communication technology.

한편,기존 세션이 선택된 경우에는, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스와, 실제로 통신을 행하는 통신 어드레스가 서로 상이하다. 그러나,금회의 접속 요구에 대한 응답으로서 단계 S702에서 취득한 서버 식별자(504)와, 기존 세션의 서버 식별자(504)와는 일치하고 있다. 따라서, 해당 클라이언트 PC(100)의 클라이언트 프로세스간 통신부(103)는, 동일한 서버 PC(105)의 서버 프로세스간 통신부(107)와 통신을 행하는 것이 가능하다.On the other hand, when an existing session is selected, the destination address specified by the client application 101 or 101a is different from the communication address that actually communicates. However, in response to the current connection request, the server identifier 504 acquired in step S702 and the server identifier 504 of the existing session are identical. Therefore, the inter-process communication unit 103 of the client PC 100 can communicate with the inter-process communication unit 107 of the same server PC 105.

이러한 이유로,본 실시예에서는, 단계 S707의 처리에서는, 금회의 접속 요구에 대한 응답으로서 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존 세션을 금회의 데이터 통신용의 세션으로서 선택하고 있다. 이 경우, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 기초하여 데이터 통신을 위한 소켓(세션)이 신규로 작성되지 않는다.For this reason, in the present embodiment, in the processing of step S707, an existing session associated with the same server identifier 504 as the server identifier 504 obtained as a response to the current connection request is selected as the session for data communication. . In this case, a socket (session) for data communication is not newly created based on the destination address specified by the client application 101 or 101a.

이렇게, 신규로 소켓을 작성하지 않고, 기존 세션에 의해 통신을 행함으로써, 클라이언트 PC(100) 및 서버 PC(105)는, 통신 소켓수를 저감할 수 있어, 네트워크 리소스를 절약하는 것이 가능하게 된다.In this way, by communicating with an existing session without creating a new socket, the client PC 100 and the server PC 105 can reduce the number of communication sockets, thereby saving network resources. .

다음으로,프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 클로즈 요구, 또는 통신 라이브러리(104a)로부터의 절단 요구가 수신되었는지의 여부를 판단한다(단계 S709). 상기 클로즈 요구 또는 절단 요구가 수신되지 않은 경우에는, 처리는 단계 S701로 되돌아가서 단계S701~S709의 처리를 속행한다.Next, the inter-process communication control unit 401 determines whether a close request from the client application 101 or 101a or a disconnect request from the communication library 104a has been received (step S709). If the close request or the disconnect request has not been received, the process returns to step S701 to continue the processing of steps S701 to S709.

한편,클로즈 요구 또는 절단 요구 중 어느 하나가 수신된 경우에는, 세션 관리부(403)는, 통신 라이브러리(104a)에 의해, 클로즈(절단) 요구와 관련된 어드레스의 세션 또는 소켓을 클로즈하기 위해 클로즈 처리를 행하게 한다(단계 S710). 그리고, 세션 관리부(403)는, 단계 S710에서의 처리 결과에 기초하여, DB 관리부(405)에 의해, 세션 관리 정보 DB(406) 내의 세션 관리 정보를 갱신하게 한다(단계 S711).On the other hand, when either a close request or a disconnect request is received, the session manager 403 performs a close process by the communication library 104a to close the session or socket of an address associated with the close request. (Step S710). Then, the session manager 403 causes the DB manager 405 to update the session manager information in the session manager information DB 406 based on the processing result in step S710 (step S711).

다음으로,도 6 및 도 7에 도시된 처리예를, 도 8a 내지 도 9b에 도시된 시퀀스도에 기초해서 설명한다. 도 8a 및 도 8b는, 상기 기존 세션이 존재하지 않을 경우의 처리 시퀀스를 나타내고 있다.Next, the processing example shown in FIG. 6 and FIG. 7 is demonstrated based on the sequence diagram shown in FIG. 8A-9B. 8A and 8B show a processing sequence when the existing session does not exist.

도 8a의 프로세스 P801에서는, 서버 프로세스간 통신부(107)는, 서버 어플리케이션(108)이 서비스를 개시하면,클라이언트 PC(100)로부터의 패킷 수신을 행하는 Listen 처리를 개시한다. 또한,서버 프로세스간 통신부(107)는, 단계 S601에 있어서, 서버 식별자(504)로서 이용하는 UUID의 생성 처리를 행한다.In the process P801 of FIG. 8A, the server inter-process communication unit 107 starts a Listen process for receiving packets from the client PC 100 when the server application 108 starts a service. In addition, in step S601, the server inter-process communication unit 107 performs the process of generating the UUID to be used as the server identifier 504.

또한,서버 프로세스간 통신부(107)는, 프로세스 P801에 있어서, Listen 처리에서 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에서의 수신을 행하기 위해 수신 소켓을 작성한다. 서버 프로세스간 통신부(107)는, 마찬가지로, IPv6 어드레스 [2001::10], 포트 번호 [1025]에 대한 수신 소켓도 작성한다.In addition, in the process P801, the server inter-process communication unit 107 creates a reception socket for reception at the IPv4 address [10.0.0.10] and port number [1025] in the Listen process. Similarly, the server interprocess communication unit 107 also creates a reception socket for the IPv6 address [2001 :: 10] and the port number [1025].

프로세스 P802에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언트 프로세스간 통신부(103)에 대하여, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에의 접속을 요구한다. 프로세스 P803에서는, 클라이언트 프로세스간 통신부(103)는, 이 접속 요구를 받고, 단계 S702의 서버 식별자(504)의 취득 처리를 행한다. 프로세스 P804에서는, 서버 프로세스간 통신부(107)는, 단계 S604의 서버 식별자(504)의 회신 처리를 행한다.In the process P802, the client application 101 or 101a requests the client inter-process communication unit 103 to connect to the IPv4 address [10.0.0.10] and port number [1025]. In process P803, the client inter-process communication unit 103 receives this connection request and performs the acquisition processing of the server identifier 504 in step S702. In process P804, the server inter-process communication unit 107 performs the reply processing of the server identifier 504 in step S604.

또한,프로세스 P803 및 P804의 니고시에이션(negotiation)은,TCP 통신에 비교해서 신뢰성은 다소 뒤떨어지지만, 고속 통신을 가능하게 하는 UDP 통신을 이용하여 행하는 것이 바람직하다. 그러나,TCP 통신을 이용해서 니고시에이션을 행해도 좋다. 이것은, 후술하는 도 9a, 도 9b, 도 11a, 도 11b, 도 13a 및 도 13b에 있어서의 니고시에이션에도 적용된다.Further, although the negotiations of the processes P803 and P804 are somewhat inferior to the TCP communication, the communication is preferably performed using UDP communication that enables high-speed communication. However, you may negotiate using TCP communication. This also applies to the negotiation in FIGS. 9A, 9B, 11A, 11B, 13A, and 13B described later.

프로세스 P805에서는, 클라이언트 프로세스간 통신부(103)는, 단계 S703의 처리, 즉, 세션 관리 정보에 기초하여 동일한 서버 식별자(504)와 관련된 기존 세션의 유무를 판정하는 처리를 행한다. 도 8a 및 도 8b의 시퀀스 예에서는, 이 처리에 있어서 기존 세션이 없다고 판정된다. 이 때문에, 프로세스 P806에서는, 단 계S704 내지 단계 S706의 신규 세션의 작성 처리가 행해진다.In process P805, the client inter-process communication unit 103 performs the processing of step S703, that is, determining whether there is an existing session associated with the same server identifier 504 based on the session management information. In the sequence example of Figs. 8A and 8B, it is determined that there is no existing session in this process. For this reason, in process P806, the process of creating a new session in steps S704 to S706 is performed.

프로세스 P807에서는, 서버 프로세스간 통신부(107)는, TCP 기반 accept 처리를 행하여 신규 세션용의 소켓을 작성한다. 프로세스 P808에서는, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)에 대하여, 프로세스 P802에서의 접속 요구에 응답하여 행해진 접속 처리의 결과를 회신한다.In process P807, the server interprocess communication unit 107 performs a TCP-based accept process to create a socket for a new session. In process P808, the client inter-process communication unit 103 returns the result of the connection process performed in response to the connection request in process P802 to the client application 101 or 101a.

프로세스 P809에서는, 단계 S708의 처리가 행해진다. 즉, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)이 지정한 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 데이터를 송신하는 데이터 송신 처리를 행한다.In process P809, the process of step S708 is performed. That is, the inter-process communication unit 103 performs data transmission processing for transmitting data to the IPv4 address [10.0.0.10] and port number [1025] designated by the client application 101 or 101a.

이 송신 처리에 이어, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 데이터량에 따라서, 프로세스 P810-1~프로세스 P810-n에서, 서버 PC(105)를 향해서 데이터를 전송한다.Following this transmission process, the inter-client communication unit 103 transfers the data toward the server PC 105 in the processes P810-1 to P810-n in accordance with the amount of data from the client application 101 or 101a. do.

프로세스 P811에서는, 서버 프로세스간 통신부(107)는, 클라이언트 어플리케이션(101 또는 101a)으로부터 데이터를 수신하고,서버 어플리케이션(108)에 대하여 데이터를 전송한다. 프로세스 P812에서는, 클라이언트 프로세스간 통신부(103)는, 데이터 전송이 완료되면 클라이언트 어플리케이션(101 또는 101a)에 대하여 데이터 전송의 결과를 통지한다.In process P811, the server inter-process communication unit 107 receives data from the client application 101 or 101a and transmits data to the server application 108. In process P812, the client inter-process communication unit 103 notifies the client application 101 or 101a of the data transfer result when the data transfer is completed.

또한,프로세스 P809~P810-n에 있어서의 실제의 데이터 통신은, UPD 통신에 비교해서 통신 속도는 저속이기는 하지만 신뢰성의 높은 TCP 통신을 이용하여 행해지는 것이 바람직하다. 그러나,실제의 데이터 통신에 대해 UPD 통신을 이용할 수 도 있다. 이것은, 도 9a, 도 9b, 도 11a, 도 11b, 도 13a 및 도 13b에 있어서의 니고시에이션에도 적용된다.In addition, the actual data communication in the processes P809 to P810-n is preferably performed using highly reliable TCP communication, although the communication speed is lower than that of the UPD communication. However, UPD communication may be used for actual data communication. This also applies to the negotiation in FIGS. 9A, 9B, 11A, 11B, 13A, and 13B.

프로세스 P813에서는, 클라이언트 어플리케이션(101 또는 101a)이 클라이언트 프로세스간 통신부(103)에 대하여, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]의 절단(클로즈) 요구를 발행한다. 이 절단 요구에 응답하여, 클라이언트 프로세스간 통신부(103)는, 단계 S710의 절단 처리를 행한다.In process P813, the client application 101 or 101a issues a disconnect (close) request of the IPv4 address [10.0.0.10] and port number [1025] to the client interprocess communication unit 103. In response to this disconnect request, the client interprocess communication unit 103 performs the disconnection process of step S710.

프로세스 P814에서는, 서버 프로세스간 통신부(107)는, 클라이언트 프로세스간 통신부(103)로부터 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]의 접속 클로즈 지시를 받고, 세션의 절단 처리를 행한다. 프로세스 P815에서는, 클라이언트 프로세스간 통신부(103)는, 단계 S711의 처리를 행하고, 클라이언트 어플리케이션(101 또는 101a)에 대하여 해당 세션의 절단을 통지한다.In process P814, the server inter-process communication unit 107 receives the connection close instruction of the IPv4 address [10.0.0.10] and the port number [1025] from the client inter-process communication unit 103, and performs a session disconnection process. In process P815, the client inter-process communication unit 103 performs the process of step S711, and notifies the client application 101 or 101a of the disconnection of the session.

도 9a 및 도 9b는, 제1 실시예에 따른 세션 관리 시스템이 실행하는, 기존 세션이 존재할 경우의 처리 시퀀스를 나타낸다. 도 9의 프로세스 P901에서는, 서버 프로세스간 통신부(107)는, 서버 어플리케이션(108)이 서비스를 개시하면,클라이언트로부터의 패킷을 수신하기 위해, Listen 처리를 개시하고, 단계 S601에서 서버 식별자(UUID)(504)를 생성한다.9A and 9B show a processing sequence when there is an existing session executed by the session management system according to the first embodiment. In process P901 of FIG. 9, when the server application 108 starts a service, the server interprocess communication unit 107 starts a Listen process in order to receive a packet from the client, and in step S601 a server identifier (UUID). Generate 504.

또한,서버 프로세스간 통신부(107)는, 프로세스 P901에서는, Listen 처리에 의해, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에서의 수신 처리를 행하기 위해 수신 소켓을 작성한다. 서버 프로세스간 통신부(107)는, 마찬가지로, IPv6 어드레스 [2001::10], 포트 번호 [1025]에 대한 수신 소켓도 작성한다.In the process P901, the server inter-process communication unit 107 creates a reception socket in order to perform reception processing at the IPv4 address [10.0.0.10] and port number [1025] by Listen processing. Similarly, the server interprocess communication unit 107 also creates a reception socket for the IPv6 address [2001 :: 10] and the port number [1025].

프로세스 P902에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언트 프로세스간 통신부(103)에 대하여, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에의 접속 요구를 발행한다. 프로세스 P903에서는, 클라이언트 프로세스간 통신부(103)는, 이 접속 요구를 받고, 단계 S702의 서버 식별자(504)의 취득 처리를 행한다. 프로세스 P904에서는, 서버 프로세스간 통신부(107)는, 단계 S604에서 응답으로서의 서버 식별자(504)의 회신 처리를 행한다.In process P902, the client application 101 or 101a issues a connection request to the IPv4 address [10.0.0.10] and port number [1025] to the client inter-process communication unit 103. In process P903, the client inter-process communication unit 103 receives this connection request, and performs acquisition processing of the server identifier 504 in step S702. In process P904, the server inter-process communication unit 107 performs reply processing of the server identifier 504 as a response in step S604.

프로세스 P905에서는, 클라이언트 프로세스간 통신부(103)는, 단계 S703의 처리, 즉, 세션 관리 정보에 기초하여, 접속 요구에 대한 응답시 얻어지는 것과 동일한 서버 식별자(504)와 관련된 기존 세션의 유무를 판정하는 처리를 행한다. 도 9a 및 도 9b의 시퀀스 예에서는, 프로세스 P905의 판정 처리에 있어서 기존 세션이 없다고 판정된다. 이 때문에, 프로세스 P906에서는, 단계 S704로부터 단계 S706의 신규 세션의 작성 처리가 행해진다.In process P905, the client inter-process communication unit 103 determines whether or not there is an existing session associated with the same server identifier 504 obtained in response to the connection request, based on the process of step S703, that is, session management information. The process is performed. In the sequence example of FIG. 9A and FIG. 9B, it is determined that there is no existing session in the determination process of process P905. For this reason, in process P906, the creation process of the new session of step S706 is performed from step S704.

프로세스 P907에서는, 서버 프로세스간 통신부(107)는, TCP 기반의 accept 처리에 의해 신규 세션용의 소켓을 작성한다. 프로세스 P908에서는, 클라이언트 프로세스간 통신부(103)는, 프로세스 P802에서의 접속 요구에 응답하여 행해진 접속 처리의 결과를, 클라이언트 어플리케이션(101 또는 101a)에 회신한다.In process P907, the server inter-process communication unit 107 creates a socket for the new session by TCP-based accept processing. In process P908, the client inter-process communication unit 103 returns the result of the connection process performed in response to the connection request in process P802 to the client application 101 or 101a.

프로세스 P909에서는, 단계 S708의 처리가 행해진다. 즉, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)이 지정한 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대해 데이터를 송신하는 데이터 송신 처리를 행한다. 이 송신 처리에 이어, 클라이언트 프로세스간 통신부(103)는, 클라 이언트 어플리케이션(101 또는 101a)으로부터의 데이터량에 따라서, 프로세스 P910-1~프로세스 P910-n에서, 서버 PC(105)에 대해 데이터를 전송한다.In process P909, the process of step S708 is performed. That is, the inter-process communication unit 103 performs data transmission processing for transmitting data to the IPv4 address [10.0.0.10] and port number [1025] designated by the client application 101 or 101a. Following this transmission process, the client inter-process communication unit 103 sends data to the server PC 105 in the processes P910-1 to P910-n in accordance with the amount of data from the client application 101 or 101a. send.

프로세스 P911에서는, 서버 프로세스간 통신부(107)는, 클라이언트 어플리케이션(101 또는 101a)으로부터 수신한 데이터를, 서버 어플리케이션(108)에 전송한다. 프로세스 P912에서는, 클라이언트 프로세스간 통신부(103)는, 데이터 전송이 완료하면,데이터 전송의 완료를 클라이언트 어플리케이션(101 또는 101a)에 통지한다.In process P911, the server inter-process communication unit 107 transmits the data received from the client application 101 or 101a to the server application 108. In the process P912, when the data transfer is completed, the client inter-process communication unit 103 notifies the client application 101 or 101a of the completion of the data transfer.

프로세스 P913에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언트 프로세스간 통신부(103)에 대하여, IPv6 어드레스 [2001::10], 포트 번호 [1025]에의 접속을 위한 접속 요구를 발행한다. 프로세스 P914에서는, 서버 프로세스간 통신부(107)는, 이 접속 요구를 클라이언트 프로세스간 통신부(103)로부터 받고, 단계 S604에서 응답으로서의 서버 식별자(504)의 회신 처리를 행한다. 이 경우, 클라이언트 어플리케이션(101 또는 101a)은, IPv6 어드레스 [2001::10], 포트 번호 [1025]와 관련된 서버 식별자(504)을 취득한다.In step P913, the client application 101 or 101a issues a connection request to the client inter-process communication unit 103 for connection to the IPv6 address [2001 :: 10] and port number [1025]. In process P914, the server inter-process communication unit 107 receives this connection request from the client inter-process communication unit 103, and performs a reply process of the server identifier 504 as a response in step S604. In this case, the client application 101 or 101a acquires the server identifier 504 associated with the IPv6 address [2001 :: 10] and the port number [1025].

프로세스 P915에서는, 클라이언트 프로세스간 통신부(103)는, 단계 S703의 처리, 즉, 세션 관리 정보에 기초하여, 접속 요구에 대한 응답시 획득된 것과 동일한 서버 식별자(504)와 관련된 기존 세션의 유무를 판정하는 처리를 행한다.In process P915, the client inter-process communication unit 103 determines whether there is an existing session associated with the same server identifier 504 obtained in response to the connection request, based on the process of step S703, that is, session management information. A process is performed.

도 9a 및 도 9b의 시퀀스 예에서는, IPv6 어드레스 [2001::10], 포트 번호 [1025]로 취득한 서버 식별자 "10"와 동일한 식별자가, 이미 세션을 확립하고 있는 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]로부터 회신된다. 따라서, 클라이언 트 프로세스간 통신부(103)는, 접속 요구에 대한 응답으로서 획득된 것과 동일한 서버 식별자(504)와 관련된 기존 세션이 존재한다고 판정하고, IPv6 어드레스 [2001::10], 포트 번호 [1025]에 대하여 세션을 확립하지 않는다.In the sequence example of Figs. 9A and 9B, the same identifier as the server identifier "10" obtained by the IPv6 address [2001 :: 10] and the port number [1025] is the IPv4 address [10.0.0.10], which has already established a session, Reply from port number [1025]. Accordingly, the client interprocess communication unit 103 determines that there is an existing session associated with the same server identifier 504 obtained as a response to the connection request, and that the IPv6 address [2001 :: 10], port number [1025] Does not establish a session.

이후, 클라이언트 프로세스간 통신부(103)는, 초기의 IPv6 어드레스 [2001::10], 포트 번호 [1025]와 관련된 데이터를, IPv4어드레스 [10.0.0.10], 포트 번호 [1025]에 대하여 전송한다.Thereafter, the client inter-process communication unit 103 transmits data related to the initial IPv6 address [2001 :: 10], the port number [1025], to the IPv4 address [10.0.0.10] and the port number [1025].

즉, 프로세스 P916에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언트 프로세스간 통신부(103)에 대하여, IPv6 어드레스 [2001::10], 포트 번호 [1025]로 데이터 전송을 요구한다.That is, in process P916, the client application 101 or 101a requests the client inter-process communication unit 103 to transmit data to the IPv6 address [2001 :: 10] and the port number [1025].

이 데이터 전송 요구에 대한 응답으로, 클라이언트 프로세스간 통신부(103)는, 프로세스 P917에 있어서, 데이터 전송을 위해 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 IPv6 어드레스 [2001::10], 포트 번호 [1025]와 상이한 어드레스인, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대한 요구와 관련된 데이터를 전송한다.In response to this data transfer request, the client inter-process communication unit 103, in process P917, specifies the IPv6 address [2001 :: 10], port number [1025] specified by the client application 101 or 101a for data transfer. Data associated with a request for an IPv4 address [10.0.0.10], a port number [1025], which is a different address from [].

프로세스 P918에서는, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 데이터량에 따라서, 데이터 전송이 완료할 때까지 기존 세션을 이용하여 필요한 전송 처리를 반복한다.In the process P918, the client inter-process communication unit 103 repeats the necessary transfer process using the existing session until the data transfer is completed, in accordance with the amount of data from the client application 101 or 101a.

프로세스 P919에서는, 서버 프로세스간 통신부(107)는, 클라이언트 어플리케이션(101 또는 101a)으로부터 수신된 데이터를, 서버 어플리케이션(108)에 전송한다. 프로세스 P920에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언 트 프로세스간 통신부(103)에 대하여, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에의 접속 절단(클로즈)을 지시한다. 이 절단 지시에 응답하여, 클라이언트 프로세스간 통신부(103)는, 단계 S710의 절단 처리를 행한다.In process P919, the server inter-process communication unit 107 transmits the data received from the client application 101 or 101a to the server application 108. In process P920, the client application 101 or 101a instructs the client interprocess communication unit 103 to disconnect (close) the IPv4 address [10.0.0.10] and the port number [1025]. In response to this disconnect instruction, the client inter-process communication unit 103 performs the disconnect process of step S710.

프로세스 P921에서는, 서버 프로세스간 통신부(107)는, 클라이언트 프로세스간 통신부(103)로부터의 절단 지시를 받고, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대한 세션의 절단 처리를 행한다.In process P921, the server inter-process communication unit 107 receives a disconnect instruction from the client inter-process communication unit 103, and performs a session disconnection process for the IPv4 address [10.0.0.10] and the port number [1025].

상술한 바와 같이, 제1 실시예에 따르면, 클라이언트 어플리케이션(101 또는 10 1a)에 의해 지정된 수신처 어드레스와 상이하지만 동일한 서버 식별자(504)와 관련된 어드레스에 대해 확립된 기존 세션을, 데이터 통신용의 세션으로서 이용한다.As described above, according to the first embodiment, an existing session established for an address different from the destination address specified by the client application 101 or 10 1a but associated with the same server identifier 504 is used as the session for data communication. I use it.

이에 의해, 소켓 등의 네트워크 리소스를 효율적으로 사용하거나, 저감할 수 있다. 후술되는 제2 및 제3 실시예도 동일한 효과를 제공할 수 있다.As a result, network resources such as sockets can be efficiently used or reduced. The second and third embodiments described below can also provide the same effects.

제1 실시예에서는, 예를 들면 클라이언트 어플리케이션(101)이, 제1 세션을 절단했을 경우, 제1 세션을 기존 세션으로서 사용하고 있는 클라이언트 어플리케이션(101a)은, 데이터 통신을 더 이상 행할 수 없다.In the first embodiment, for example, when the client application 101 disconnects the first session, the client application 101a using the first session as an existing session can no longer perform data communication.

그러나,예를 들면, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 접속 요구 또는 클로즈 요구에 응답하여, 세션의 레퍼런스 카운터만을 증감하고, 레퍼런스 카운터가 0이 되었을 때에 실제로 세션을 절단하도록 구성되면, 클라이언트 어플리케이션(101 및 101a)이 세션을 공유한다고 하더라도, 세션의 절단으로 인해 문제가 발생하는 것을 방지할 수 있다.However, for example, in response to a connection request or a close request from the client application 101 or 101a, the client inter-process communication unit 103 increments only the reference counter of the session and actually the session when the reference counter becomes zero. If the client application 101 and 101a share the session, it is possible to prevent the problem from occurring due to the disconnection of the session.

따라서,제2 실시예는, 클라이언트 어플리케이션(101 및 101a) 중 하나에 의해 지정된 수신처 어드레스와는 상이한 어드레스에서 확립된 기존 세션에서 데이터 송신을 행할 경우에도, 기존 세션에 의한 통신이 어플리케이션(101 및 101a) 중 다른 하나로부터의 절단 지시에 의해 무심코 절단되지 않도록 구성된다.Therefore, in the second embodiment, even when data transmission is performed in an existing session established at an address different from the destination address designated by one of the client applications 101 and 101a, communication by the existing session is performed by the applications 101 and 101a. ) Is not inadvertently cut by the cutting instruction from the other.

도 10a 및 도 10b는, 본 발명의 제2 실시예에 있어서 세션 관리 시스템의 클라이언트 프로세스간 통신부(103)가 행하는 세션 관리 처리를 나타내는 플로우차트다. 또한, 제2 실시예에 따른 세션 관리 시스템의 구성은 제1 실시예에 따른 세션 관리 시스템의 경우와 마찬가지이기 때문에, 그 설명은 생략한다(제3 실시예도 같음). 또한,도 10b에 있어서, 단계 S701~S711의 처리는, 도 7의 플로우차트에 있어서의 단계S701~S711의 처리와 동일하기 때문에, 그 설명은 필요에 따라서만 주어질 것이다.10A and 10B are flowcharts showing session management processing performed by the client process interprocess communication unit 103 of the session management system according to the second embodiment of the present invention. In addition, since the configuration of the session management system according to the second embodiment is the same as that of the session management system according to the first embodiment, the description thereof is omitted (the same applies to the third embodiment). In addition, in FIG. 10B, since the process of step S701-S711 is the same as the process of step S701-S711 in the flowchart of FIG. 7, the description will be given only as needed.

도 10b를 참고하면, 프로세스간 통신 제어부(401)는, 단계 S1001에서는, 단계S706 또는 단계S707에서 선택된 세션의 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분시킨다. 이 클로즈 레퍼런스 카운터는, 상기 레퍼런스 카운터 또는 도 4의 접속 레퍼런스 카운터에 상당하며, 절단 요구수를 카운트하는 것이다. 클라이언트 PC(100)의 세션 절단 관리부(407)는, 각 세션의 클로즈 레퍼런스 카운터의 카운트를 접속 레퍼런스 카운트 기억부(408)에 보존하고, 각 카운트에 기초하여 관련 세션을 절단할지를 판단한다.Referring to FIG. 10B, in step S1001, the inter-process communication control unit 401 increments the count of the close reference counter of the session selected in step S706 or step S707 by one. This close reference counter corresponds to the reference counter or the connection reference counter shown in Fig. 4, and counts the number of cut requests. The session disconnection management unit 407 of the client PC 100 stores the count of the closed reference counter of each session in the connection reference count storage unit 408, and determines whether to disconnect the associated session based on each count.

다음으로,프로세스간 통신 제어부(401)는, 단계 S706 또는 단계 S707에서 선택된 세션에 의해, 클라이언트 어플리케이션(101 및 101a)으로부터의 데이터를 서버 어플리케이션(108)에 전송한다(단계 708). 또한,단계 S707에서, 수신처 어드레스와 상이한 어드레스에서 확립된 기존 세션이 선택된 경우에는, 데이터 전송을 위한 기존 세션의 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분할 뿐, 신규 세션을 작성하지 않는다.Next, the inter-process communication control unit 401 transmits the data from the client applications 101 and 101a to the server application 108 by the session selected in step S706 or step S707 (step 708). In addition, in step S707, when an existing session established at an address different from the destination address is selected, only the count of the close reference counter of the existing session for data transmission is incremented by one, and a new session is not created.

다음으로,프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 클로즈 요구 또는 통신 라이브러리(104a)로부터의 절단 요구를 수신했는지 여부를 판단한다(단계 S709). 클로즈 요구 또는 절단 요구가 수신되지 않은 경우에는, 처리는 단계 S701로 되돌아가서, 단계 S701~S709의 처리를 속행한다.Next, the inter-process communication control unit 401 determines whether a close request from the client application 101 or 101a or a disconnect request from the communication library 104a has been received (step S709). If no close request or cut request has been received, the process returns to step S701 to continue the processing of steps S701 to S709.

한편,클로즈 요구 또는 절단 요구가 수신된 경우에는, 프로세스간 통신 제어부(401)는, 세션 관리부(403)로 하여금, 세션 절단 관리부(407)에게 클로즈 요구 또는 절단 요구와 관련된 어드레스에 대한 해당 세션을 클로즈하는 클로즈 처리를 행할 것을 요구하도록 시킨다(단계 S1002). 이 경우, 세션 절단 관리부(407)는, 접속 레퍼런스 카운트 기억부(408) 내의 해당 세션의 클로즈 레퍼런스 카운트를 1만큼 감소시킨다(단계 S1002).On the other hand, when a close request or a disconnect request is received, the inter-process communication control unit 401 causes the session management unit 403 to inform the session disconnect management unit 407 of the session for the address associated with the close request or disconnect request. It is made to request to perform the closing process to close (step S1002). In this case, the session truncation management unit 407 decreases the close reference count of the corresponding session in the connection reference count storage unit 408 by one (step S1002).

다음으로,프로세스간 통신 제어부(401)는, 클로즈 레퍼런스 카운터의 카운트가 1만큼 감소된 후에 0이 되었는지 여부를 판단한다(단계 S1003). 카운트가 0이 되지 않았으면, 프로세스는, 단계 S701로 되돌아간다.Next, the inter-process communication control unit 401 determines whether or not it becomes 0 after the count of the close reference counter is decreased by one (step S1003). If the count does not become zero, the process returns to step S701.

한편,클로즈 레퍼런스 카운터의 카운트가 0이 된 경우에는, 프로세스간 통신 제어부(401)는, 세션 관리부(403) 및 통신 라이브러리(104a)가 클로즈(절단) 요구와 관련된 세션 또는 소켓을 클로즈하는 클로즈 처리를 행하게 한다(단계 S710). 그리고, 세션 관리부(403)는, 단계 S710에서의 처리 결과에 기초하여, DB 관리부(405)가 세션 관리 정보 DB(406) 내의 세션 관리 정보를 갱신하게 한다(단계 S711).On the other hand, when the count of the close reference counter is 0, the inter-process communication control unit 401 closes the session or socket to which the session management unit 403 and the communication library 104a close the session or socket associated with the close request. (Step S710). Then, the session manager 403 causes the DB manager 405 to update the session manager information in the session manager information DB 406 based on the processing result in step S710 (step S711).

다음으로,도 10a 및 도 10b의 세션 관리 처리의 예를, 도 11a 및 도 11b의 시퀀스도를 참조하여 설명한다. 또한,도 11a 및 도 11b의 시퀀스는, 수신처 어드레스와 상이한 어드레스에서 확립된 기존의 세션에 의해 데이터 송신을 행할 경우를 나타내고 있다. 하기와 같은 시퀀스에서, 기존 세션에 의한 통신이 무심코 불능이 되지 않도록, 기존 세션의 절단을 적절하게 행할 경우를 나타내고 있다.Next, an example of the session management processing of FIGS. 10A and 10B will be described with reference to the sequence diagrams of FIGS. 11A and 11B. 11A and 11B show a case where data transmission is performed by an existing session established at an address different from the destination address. In the following sequence, a case where the existing session is appropriately disconnected is shown so that communication by the existing session is not inadvertently disabled.

즉, 프로세스 P1101에 있어서, 클라이언트 프로세스간 통신부(103)는, 단계 S706에서 신규 세션이 확립되므로, 단계 S1001의 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분시키는 처리를 행한다. 이 클로즈 레퍼런스 카운터는, 접속 요구가 이루어지는 각 수신처 어드레스에 대해, 그 접속 요구수 및 절단 요구수를 계수하는 카운터로서 기능한다.That is, in the process P1101, the client inter-process communication unit 103 establishes a new session in step S706, and therefore performs a process of incrementing the count of the close reference counter of step S1001 by one. This close reference counter functions as a counter that counts the number of connection requests and the number of disconnect requests for each destination address at which a connection request is made.

프로세스 P1102에서는, 단계 S707에서 수신처 어드레스와 상이한 어드레스에서 확립된 기존의 세션을 이용한다. 따라서, 클라이언트 프로세스간 통신부(103)는 신규 세션을 작성하지 않지만,단계S1001의 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분시키는 처리를 행한다.In process P1102, an existing session established at an address different from the destination address is used in step S707. Accordingly, the client inter-process communication unit 103 does not create a new session, but performs a process of incrementing the count of the closed reference counter by step S1001 by one.

이 시점에서, 접속 레퍼런스 카운트 기억부(408)에 기억되어 있는 클로즈 레퍼런스 카운터의 카운트는, 서버 식별자(504)가 "10"으로 할당된 서버 PC(105)에 대하여 "2"가 된다. 실제의 통신 어드레스는, IPv4 어드레스의 [10.0.0.10], 포트 번호 [1025]로 설정된다.At this time, the count of the close reference counter stored in the connection reference count storage unit 408 becomes "2" for the server PC 105 to which the server identifier 504 is assigned "10". The actual communication address is set to [10.0.0.10] and port number [1025] of the IPv4 address.

수신처 어드레스로서는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025] 이외에, IPv6 어드레스 [2001::10], 포트 번호 [1025]가 존재하고, 이들 어드레스는, 각각 접속 상태에서 존재하고 있다.As the destination address, in addition to the IPv4 address [10.0.0.10] and the port number [1025], an IPv6 address [2001 :: 10] and a port number [1025] exist, and these addresses exist in the connected state, respectively.

프로세스 P1103에서는, 클라이언트 프로세스간 통신부(103)는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대한 클로즈 처리를 행한다. 이때, 단계S1002의 처리가 행해져서, 해당 세션과 관련되어 접속 레퍼런스 카운트 기억부(408) 내에 기억된 클로즈 레퍼런스 카운터의 카운트가 1만큼 감소된다.In process P1103, the client inter-process communication unit 103 performs the closing process for the IPv4 address [10.0.0.10] and port number [1025]. At this time, the process of step S1002 is performed so that the count of the closed reference counter stored in the connection reference count storage unit 408 in association with the session is reduced by one.

이 클로즈 처리가 행해지는 경우, 접속 레퍼런스 카운트 기억부(408) 내에 기억된 클로즈 레퍼런스 카운터의 카운트는, 서버 식별자가 "10"으로 할당된 서버 PC(105)에 대하여 1이 된다. 또한, 실제의 통신 어드레스는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]로 남아있다. 또한,수신처 어드레스로서는, IPv6 어드레스 [2001::10], 포트 번호 [1025]가 존재하고, 이 어드레스는 접속 상태에 있다.When this closing process is performed, the count of the close reference counter stored in the connection reference count storage unit 408 becomes 1 for the server PC 105 to which the server identifier is assigned "10". In addition, the actual communication address remains as an IPv4 address [10.0.0.10] and a port number [1025]. As the destination address, an IPv6 address [2001 :: 10] and a port number [1025] exist, and this address is in a connected state.

프로세스 P1104에서는, 클라이언트 프로세스간 통신부(103)는, IPv6 어드레스 [2001::10], 포트 번호 [1025]에 대한 클로즈 처리를 행한다. 이때, 단계 S1002의 처리가 행해져서, 접속 레퍼런스 카운트 기억부(408) 내에 기억된 클로즈 레퍼런스 카운터의 카운트가 1만큼 감소된다.In process P1104, the client inter-process communication unit 103 performs the closing process for the IPv6 address [2001 :: 10] and the port number [1025]. At this time, the process of step S1002 is performed, and the count of the closed reference counter stored in the connection reference count storage unit 408 is decremented by one.

이 클로즈 처리가 행해지면, 접속 레퍼런스 카운트 기억부(408) 내에 기억된 클로즈 레퍼런스 카운터의 카운터는, 서버 식별자 "10"이 할당된 서버 PC(105)와 관련하여 0이 된다. 클라이언트 프로세스간 통신부(103)는, 클로즈 레퍼런스 카운터의 카운트가 0이 되었기 때문에, 프로세스 P1105에 있어서, 단계 S710의 세션 클로즈 처리를 행한다. 본 예에서는, 클라이언트 어플리케이션(101 또는 101a)은, 클라이언트 프로세스간 통신부(103)에 대하여, IPv6 어드레스 [2001::10], 포트 번호 [1025]에 대한 절단 지시를 행한다.When this closing process is performed, the counter of the close reference counter stored in the connection reference count storage unit 408 becomes zero with respect to the server PC 105 to which the server identifier "10" has been assigned. Since the count of the close reference counter has become 0, the client inter-process communication unit 103 performs the session closing process of step S710 in process P1105. In this example, the client application 101 or 101a instructs the client inter-process communication unit 103 to cut off the IPv6 address [2001 :: 10] and the port number [1025].

그러나,클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 절단 지시를 받고, 실제의 통신 어드레스인 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대하여 절단 처리를 행한다. 이 절단 처리는, 단계 S710 및 단계 S711에서 행해진다.However, the inter-client communication unit 103 receives a disconnect instruction from the client application 101 or 101a, and performs a truncation process for the IPv4 address [10.0.0.10] and the port number [1025] which are actual communication addresses. This cutting process is performed in step S710 and step S711.

다음으로,프로세스 P1106에 있어서, 서버 프로세스간 통신부(107)는 다음과 같은 처리를 행한다: 서버 프로세스간 통신부(107)는 클라이언트 프로세스간 통신부(103)로부터의 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]에 대한 절단 지시에 응답하여, 통신 라이브러리(104b)를 이용하여 관련 세션을 절단하는 절단 처리를 행한다.Next, in process P1106, the server inter-process communication unit 107 performs the following processing: The server inter-process communication unit 107 is an IPv4 address [10.0.0.10], port number from the client inter-process communication unit 103. In response to the disconnect instruction for [1025], a truncation process is performed to disconnect the associated session using the communication library 104b.

이것은, 다음을 의미한다: 즉, 하나의 어플리케이션에 의해 지정된 수신처 어드레스와 상이한 어드레스에서 확립된 기존 세션에서 통신을 행하고 있을 때에, 해당 기존 세션을 절단하는 절단 지시가 다른 어플리케이션으로부터 발행되었다고 가정하자. 이 경우에는, 해당 기존 세션이 절단되지는 않는다.This means the following: That is, when communicating in an existing session established at an address different from the destination address designated by one application, suppose that a disconnect instruction for disconnecting the existing session has been issued from another application. In this case, the existing session is not disconnected.

환언하면, 제2 실시예에 따르면, 수신처 어드레스와는 상이한 어드레스에서 확립된 기존 세션에서 데이터 송신을 행할 경우에도, 기존 세션에 의한 통신이 다른 어플리케이션으로부터의 절단 지시에 의해 무심코 절단되지 않는다.In other words, according to the second embodiment, even when data transmission is performed in an existing session established at an address different from the destination address, communication by the existing session is not inadvertently disconnected by a disconnect instruction from another application.

예를 들면 클라이언트 어플리케이션(101)이, 클라이언트 어플리케이션(101a)이 기존 세션으로서 데이터 통신에 사용하고 있는 세션을 절단했을 경우, 클라이언트 어플리케이션(101a)은, 더이상 데이터 통신을 행할 수 없게 된다.For example, when the client application 101 disconnects the session that the client application 101a uses for data communication as an existing session, the client application 101a can no longer perform data communication.

그러나,예를 들면, 클라이언트 프로세스간 통신부(103)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 동일한 서버에의 각 접속 요구 및 각 클로즈(절단) 요구에 응답하여, 해당 서버에의 기존의 세션에 제공된 레퍼런스 카운터의 카운트를 증감시키고, 레퍼런스 카운터가 0이 되었을 때에만 실제로 세션을 절단하도록 구성함으로써, 클라이언트 어플리케이션(101 또는 101a)에 의해 세션을 공유하더라도, 세션의 절단시에 상기한 문제가 발생하는 것을 방지할 수 있다.However, for example, the client interprocess communication unit 103 responds to each connection request and each close request from the client application 101 or 101a to the same server, and then to an existing session with the server. By increasing or decreasing the count of the provided reference counter and configuring the session to actually disconnect only when the reference counter becomes zero, even if the session is shared by the client application 101 or 101a, the above problem occurs when the session is disconnected. Can be prevented.

제1 실시예에 따르면, 클라이언트 어플리케이션(101 및 101a)이 각각 상이한 수신처 어드레스를 지정했을 경우라도, 동일한 세션을 이용할 수 있다. 이때, 실제로 통신에 이용하는 통신 어드레스는, 세션을 작성하기 위해 이용한 제1 수신처 어드레스로 설정된다.According to the first embodiment, even when the client applications 101 and 101a respectively designate different destination addresses, the same session can be used. At this time, the communication address actually used for communication is set to the first destination address used to create the session.

그러나,세션을 작성하기 위해 이용된 제1 수신처 어드레스를 이용한 통신에서 통신 장애가 발생한 경우에는, 제2 수신처 어드레스에서의 통신이 가능할 때라도, 원래 제2 수신처 어드레스를 지정했던 클라이언트 어플리케이션은 제1 수신처 어드레스를 이용해 작성한 세션을 통해서는 더 이상 통신을 행할 수 없다.However, if a communication failure occurs in the communication using the first destination address used to create the session, even when communication at the second destination address is possible, the client application that originally specified the second destination address may select the first destination address. You can no longer communicate through the session you created.

제3 실시예에 따르면, 세션에 그러한 통신 장애가 발생했을 경우에도, 통신가능한 수신처 어드레스가 존재할 때는, 해당 세션에서의 통신을 가능하게 하도록 하고 있다.According to the third embodiment, even when such a communication failure occurs in the session, when there is a destination address that can be communicated with, the communication in the session is enabled.

도 12a 및 도 12b는, 본 발명의 제3 실시예에 따른 세션 관리 시스템의 클라이언트 PC(100)의 클라이언트 프로세스간 통신부(401)가 행하는 세션 관리 처리의 플로우챠트이다. 또한,도 12a 및 도 12b에 있어서, 단계 S701~S711은, 도 7의 플로우차트에 있어서의 단계 S701~S711과 동일하기 때문에, 모든 단계가 아니라 제3 실시예에 특유한 단계만을 설명한다.12A and 12B are flowcharts of session management processing performed by the inter-process communication unit 401 of the client PC 100 of the session management system according to the third embodiment of the present invention. 12A and 12B, the steps S701 to S711 are the same as the steps S701 to S711 in the flowchart of Fig. 7, and therefore only the steps specific to the third embodiment will be described instead of all the steps.

도 12b를 참조하면, 프로세스간 통신 제어부(401)는, 단계 S706 또는 단계 S707에서 선택된 세션에 의해, 클라이언트 어플리케이션(101 또는 101a)으로부터의 데이터를 서버 어플리케이션(108)에 전송한다(단계 S708).12B, the inter-process communication control unit 401 transmits data from the client application 101 or 101a to the server application 108 by the session selected in step S706 or step S707 (step S708).

다음으로,프로세스간 통신 제어부(401)는, 데이터 전송에 성공하였는지의 여부를 판단한다(단계 S1201). 데이터 전송에 성공하고 있는 경우에는, 프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 클로즈 요구나, 통신 라이브러리(104a)로부터의 절단 요구를 수신하였는지를 판단한다 (단계 S709).Next, the inter-process communication control unit 401 determines whether or not the data transfer is successful (step S1201). If the data transfer is successful, the inter-process communication control unit 401 determines whether a close request from the client application 101 or 101a or a disconnect request from the communication library 104a has been received (step S709).

한편,데이터 전송에 실패한 경우에는, 프로세스간 통신 제어부(401)는, 세션 관리부(403)에 의해, 동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스의 존재 유무를 판단하게 한다(단계 S1202).On the other hand, when the data transfer fails, the inter-process communication control unit 401 causes the session management unit 403 to determine the presence or absence of another destination address associated with the same server identifier 504 (step S1202).

그 결과, 동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스가 존재하 지 않을 경우, 프로세스간 통신 제어부(401)는, 데이터 전송의 에러 처리를 행하고(단계 S1206), 처리가 단계 S709로 진행한다.As a result, when there is no other destination address associated with the same server identifier 504, the inter-process communication control unit 401 performs an error process of data transfer (step S1206), and the process proceeds to step S709.

한편,동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스가 존재하는 경우에는, 프로세스간 통신 제어부(401)는, 세션 재접속 관리부(409)로 하여금, 동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스에 재접속 세션을 확립하게 한다(S1203). 이 경우, 통신에 실패한 통신 어드레스와는 상이한 수신처 어드레스를 이용하여 신규 소켓이 작성된다.On the other hand, when there is another destination address associated with the same server identifier 504, the inter-process communication control unit 401 causes the session reconnection management unit 409 to reconnect to another destination address associated with the same server identifier 504. To establish a session (S1203). In this case, a new socket is created using a destination address different from the communication address that failed to communicate.

다음으로,프로세스간 통신 제어부(401)는, DB 관리부(405)에 의해, 재접속 세션을 세션 관리 정보 DB(406)에 등록한다(단계 S1204). 그리고, 프로세스간 통신 제어부(401)는, 재접속 세션을 데이터 전송용 세션으로서 선택한다(단계 S1205). 그 후, 처리는 단계 S708로 되돌아가고, 재접속 세션을 이용하여 데이터 전송을 행한다.Next, the inter-process communication control unit 401 registers the reconnection session with the session management information DB 406 by the DB management unit 405 (step S1204). The interprocess communication control unit 401 then selects the reconnection session as the session for data transmission (step S1205). The process then returns to step S708 to perform data transfer using the reconnection session.

도 13a 및 도 13b는, 본 발명의 제3 실시예에 있어서 서버 PC(105)과 클라이언트 PC 사이에서 행해지는 세션 관리 처리를 나타내는 시퀀스도이다. 이 시퀀스에서는, 수신처 어드레스와 상이한 어드레스에서 확립된 기존의 세션을 이용하여 데이터 송신을 행할 경우에, 세션 재접속 처리를 가능하게 하고 있다. 또한,도 13a 및 도 13b에 있어서 도 9a 및 도 9b의 처리 시퀀스와 마찬가지의 처리에 대해서는, 그 설명을 생략한다.13A and 13B are sequence diagrams showing session management processing performed between the server PC 105 and the client PC in the third embodiment of the present invention. This sequence enables session reconnection processing when data transmission is performed using an existing session established at an address different from the destination address. In addition, in FIG. 13A and 13B, the description about the process similar to the process sequence of FIG. 9A and FIG. 9B is abbreviate | omitted.

프로세스 P1301에서는, 프로세스간 통신 제어부(401)는, 단계 S1201의 데이터 전송 성공의 확인 처리를 행한다. 이 시점에서, 접속 레퍼런스 카운트 기억 부(408)가 기억하고 있는 클로즈 레퍼런스 카운터의 카운트는, 서버 식별자(504)가 "10"으로 할당된 서버 PC(105)에 대하여 2가 된다. 실제의 통신 어드레스는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]로 설정된다.In process P1301, the inter-process communication control unit 401 performs a confirmation process of data transmission success in step S1201. At this point in time, the count of the close reference counter stored in the connection reference count storage unit 408 becomes two for the server PC 105 to which the server identifier 504 is assigned "10". The actual communication address is set to an IPv4 address [10.0.0.10] and a port number [1025].

또한,이 시점에서는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025], 및 IPv6 어드레스 [2001::10], 포트 번호 [1025]의 2개의 수신처 어드레스가 각각 접속 상태로 존재한다.At this point, two destination addresses, an IPv4 address [10.0.0.10], a port number [1025], and an IPv6 address [2001 :: 10] and a port number [1025], respectively exist in the connected state.

본 시퀀스 예에서는, 프로세스 P1301에 있어서, 프로세스간 통신 제어부(401)는, 실제의 통신 어드레스인 IPv4 어드레스 [10.0.0.10], 포트 번호 [1025]를 이용한 데이터 전송이 실패라고 판단한다.In this sequence example, in process P1301, the inter-process communication control unit 401 determines that data transfer using the IPv4 address [10.0.0.10] and the port number [1025], which are actual communication addresses, has failed.

프로세스 P1302에서는, 프로세스간 통신 제어부(401)는, 세션 재접속 관리부(409)로 하여금, 단계 S1202의 동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스가 존재하는지 여부를 판정하는 처리를 행하도록 한다.In process P1302, the inter-process communication control unit 401 causes the session reconnection management unit 409 to perform a process of determining whether there is another destination address associated with the same server identifier 504 in step S1202.

본 시퀀스 예에서는, 세션 재접속 관리부(409)는, 동일한 서버 식별자(504)와 관련된 다른 수신처 어드레스가 있다고 판정하고, 재접속 세션의 확립을 행한다.(프로세스P1303). 세션 재접속 관리부(409)는, DB 관리부(405)로 하여금, 재접속 세션을 세션 관리 정보 DB(406)에 등록하게 한다.In this sequence example, the session reconnection manager 409 determines that there is another destination address associated with the same server identifier 504, and establishes a reconnection session. (Process P1303). The session reconnection manager 409 causes the DB manager 405 to register the reconnection session with the session management information DB 406.

이 시점에서는, 접속 레퍼런스 카운트 기억부(408)가 기억하고 있는 클로즈 레퍼런스 카운터의 카운트는, 서버 식별자가 "10"으로 할당된 서버 PC(105)에 대하여 2로 유지된다.At this point in time, the count of the close reference counter stored in the connection reference count storage unit 408 is kept at 2 for the server PC 105 to which the server identifier is assigned "10".

실제의 통신 어드레스는, IPv6 어드레스 [2001::10], 포트 번호 [1025]로 설 정된다. 또한,수신처 어드레스로서는, IPv4 어드레스 [10.0.0.10], 포트 번호 [1025], IPv6 어드레스의 [2001::10], 포트 번호 [1025]가 각각 접속 상태에서 존재한다.The actual communication address is set to an IPv6 address [2001 :: 10] and a port number [1025]. As the destination address, an IPv4 address [10.0.0.10], a port number [1025], [2001 :: 10] and a port number [1025] of the IPv6 address are present in the connected state, respectively.

프로세스 P1304에서는, 프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 데이터를, IPv6 어드레스 [2001::10], 포트 번호 [1025]를 이용하여 송신한다.In process P1304, the interprocess communication control unit 401 transmits the data specified by the client application 101 or 101a using the IPv6 address [2001 :: 10] and the port number [1025].

따라서, 동일한 서버 식별자와 관련된 세션이 하나 이상의 접속 가능한 수신처 어드레스를 포함하는 경우에는, 클라이언트 어플리케이션(101 및 101a)은, 통신 장애를 의식하지 않고 통신을 계속하는 것이 가능하게 된다.Therefore, when a session associated with the same server identifier includes one or more connectable destination addresses, the client applications 101 and 101a can continue the communication without being aware of the communication failure.

제1~3의 실시예에서는, 클라이언트 PC(100)는, 서버 PC(105)로부터 취득한 서버 식별자, 즉, 서버 식별 정보에 기초하여 기존 세션의 유무를 판정한다.In the first to third embodiments, the client PC 100 determines the presence or absence of an existing session based on the server identifier acquired from the server PC 105, that is, the server identification information.

그러나,이를 행하기 위해,서버 PC(105)에 서버 식별자(서버 식별 정보)를 회신하는 기능, 즉, 서버 프로세스간 통신 제어부(301)의 제어 하에 서버 식별자를 회신하는 서버 식별자 회신부(302)을 제공할 필요가 있다. 이 때문에, 다수의 클라이언트 PC와 통신하는 서버 PC(105)의 처리 부담이 증가할 뿐만 아니라, 네트워크 리소스의 유효 이용이 저해된다.However, in order to do this, a function of returning a server identifier (server identification information) to the server PC 105, that is, a server identifier reply unit 302 which returns a server identifier under the control of the inter-process communication control unit 301. It is necessary to provide. This not only increases the processing burden of the server PC 105 communicating with a large number of client PCs, but also effectively uses network resources.

이러한 문제를 해결하기 위해,제4 실시예에 따르면, 클라이언트 PC(100)는, 서버 PC(105)로부터 취득한 서버 식별자에 기초하지 않고 기존 세션의 유무를 판정하도록 구성된다. 즉, 클라이언트 PC(100)는 서버 PC(105)와 협동하지 않고 기존 세션의 유무를 판정하도록 구성된다.In order to solve this problem, according to the fourth embodiment, the client PC 100 is configured to determine the presence or absence of an existing session based on the server identifier obtained from the server PC 105. That is, the client PC 100 is configured to determine the presence or absence of an existing session without cooperating with the server PC 105.

도 14는, 본 발명의 제4~6의 실시예에 따른 각 세션 관리 시스템을 적용한 클라이언트/서버 시스템의 소프트웨어의 구성을 나타내는 도면이다.Fig. 14 is a diagram showing the software configuration of a client / server system to which each session management system according to the fourth to sixth embodiments of the present invention is applied.

도 14의 클라이언트/서버 시스템이 제1~3의 실시예에 따른 각 세션 관리 시스템을 적용한 도 1의 클라이언트/서버 시스템과 다른 점은, DNS(Domain Name System) 서버(1401)가 네트워크(106)에 접속되어 있는 점이다.The client / server system of FIG. 14 differs from the client / server system of FIG. 1 in which each session management system according to the first to third embodiments is applied to a network 106 by a DNS server 1401. Is connected to.

제4 실시예에서는, DNS 서버(1401) 등을 이용함으로써, 클라이언트 PC(100)는, 서버 PC(105)와 협동하지 않고, 기존 세션의 유무를 판정한다.  또한,DNS 서버(1401)에서 동작하고 있는 DNS 서비스의 사양은, IETF(Internet Engineering Task Force) 기술 사양에 기초하고 있다. 구체적으로는,DNS 서버(1401)는, RFC(Request for comments) 1034나 RFC 1035 등으로 규정되어 있는 사양에 따라 어드레스 문제 해결 서비스를 제공한다.In the fourth embodiment, by using the DNS server 1401 or the like, the client PC 100 does not cooperate with the server PC 105 to determine the presence or absence of an existing session. In addition, the specification of the DNS service operating in the DNS server 1401 is based on the IETF (Internet Engineering Task Force) technical specification. Specifically, the DNS server 1401 provides an address problem solving service according to a specification specified in RFC (Request for comments) 1034, RFC 1035, or the like.

RFC 1034, RFC 1035 등에는, IPv4에 대응한 A 레코드의 사양 및 응답의 구현에 대해서 기술되어 있다. 또한,RFC 1886 등에는, IPv6에 대응한 AAAA 레코드의 사양 및 응답의 구현에 대해서 기술되어 있다. 이들 RFC는, http://www.ietf.org/rfc.htm1에서 참조될 수 있다.RFC 1034, RFC 1035, and the like describe the implementation of an A record specification and response corresponding to IPv4. Also, RFC 1886 and the like describe the implementation of the AAAA record specification and response corresponding to IPv6. These RFCs can be referenced at http://www.ietf.org/rfc.htm1.

도 15는, 제4 실시예에 따른 세션 관리 시스템을 적용한 클라이언트/서버 시스템의 클라이언트 PC(100)의 클라이언트 프로세스간 통신부(103)의 상세한 소프트웨어 구성을 도시하는 블록도이다.FIG. 15 is a block diagram showing the detailed software configuration of the inter-process communication unit 103 of the client PC 100 of the client / server system to which the session management system according to the fourth embodiment is applied.

클라이언트 PC(100)은, 클라이언트 어플리케이션(101 또는 101a)으로부터의 요구에 응답하여, 스터브 오브젝트(도시 생략)을 통하여, 클라이언트 프로세스간 통신부(103) 및 통신 라이브러리(104a)를 이용하여 서버 PC(105)과 통신을 행한다.In response to a request from the client application 101 or 101a, the client PC 100 uses the server inter-process communication unit 103 and the communication library 104a through a stub object (not shown) to communicate with the server PC 105. ) To communicate with.

클라이언트 프로세스간 통신부(103)는, 제1~3 실시예와 마찬가지로, 프로세스간 통신 제어부(401), 세션 관리부(403), 세션 관리 정보 DB(406) 및 세션 판정부(404)을 포함한다.The client inter-process communication unit 103 includes the inter-process communication control unit 401, the session management unit 403, the session management information DB 406, and the session determination unit 404, similarly to the first to third embodiments.

또한,클라이언트 프로세스간 통신부(103)는, 제1~3 실시예와 마찬가지로,세션 절단 관리부(407) 및 세션 재접속 관리부(409)을 포함한다. 또한,클라이언트 프로세스간 통신부(103)는, 제4 실시예에 특유한 소프트웨어로서, 어드레스 리스트 취득부(1501) 및 어드레스 리스트 기억부(1502)를 포함한다.In addition, the inter-client communication unit 103 includes a session disconnection management unit 407 and a session reconnection management unit 409 as in the first to third embodiments. In addition, the inter-process communication unit 103 is software specific to the fourth embodiment and includes an address list acquisition unit 1501 and an address list storage unit 1502.

프로세스간 통신 제어부(401)는, 세션의 관리를 행하면서, 클라이언트 어플리케이션(101 및 101a)과 서버 어플리케이션(108) 사이에서 행하는 통신을 총괄적으로 제어한다. 어드레스 리스트 취득부(1501)는, 클라이언트 어플리케이션(101 및 101a)에 의해 지정된 수신처 어드레스와 관련된 1개 또는 복수의 어드레스를 DNS 서버(1401)로부터 취득하고, 취득된 어드레스들을 어드레스 리스트 기억부(1502)에 순차적으로 기억한다. 이 어드레스 리스트 기억부(1502) 내에 기억된 어드레스 리스트 정보에 대해서는, 이후에 도 16 및 도 23에 기초해서 상세하게 설명한다.The inter-process communication control unit 401 collectively controls the communication performed between the client applications 101 and 101a and the server application 108 while managing the session. The address list obtaining unit 1501 obtains, from the DNS server 1401, one or a plurality of addresses associated with the destination addresses specified by the client applications 101 and 101a, and stores the obtained addresses in the address list storing unit 1502. To remember sequentially. The address list information stored in the address list storage unit 1502 will be described in detail later with reference to FIGS. 16 and 23.

세션 관리부(403)는, 세션 관리 정보 DB(406)에 등록되는 세션 관리 정보를 관리한다. 제4 실시예에 있어서의 세션 관리 정보에 대해서는, 이후에 도 17에 기초해서 상세하게 설명한다. 세션 판정부(404)는, 어드레스 리스트 및 세션 관리 정보에 기초하여, 신규 세션의 작성 처리나 기존 세션의 이용 가능성을 판단한다.The session management unit 403 manages session management information registered in the session management information DB 406. The session management information in the fourth embodiment will be described in detail later with reference to FIG. 17. The session determination unit 404 determines the creation process of the new session or the availability of the existing session based on the address list and the session management information.

세션 절단 관리부(407), 접속 레퍼런스 카운트 기억부(408) 및 세션 재접속 관리부(409)의 각각은, 제1~3 실시예와 동일한 처리를 행한다.Each of the session disconnection management unit 407, the connection reference count storage unit 408, and the session reconnection management unit 409 performs the same processing as in the first to third embodiments.

다음으로,어드레스 리스트 기억부(1502)에 기억되어 있는 어드레스 리스트 정보를 도 16에 기초해서 상세하게 설명한다. 어드레스 리스트 기억부(1502)에는, DNS 서버(1401)로부터 취득된 수신처(서버)에 관한 어드레스 리스트 정보가 순차 저장되어서, 데이터베이스로 형성된다.Next, the address list information stored in the address list storage unit 1502 will be described in detail with reference to FIG. In the address list storage unit 1502, address list information about a destination (server) obtained from the DNS server 1401 is sequentially stored and formed into a database.

서버 식별자(1601)는, 접속 요구원의 클라이언트 어플리케이션(101 또는 101a)이 지정한 수신처(접속처)와 관련된 서버(서버 PC(105))의 서버 식별자(서버 식별 정보)이다. 서버 식별자(1601)로서는, 예를 들면, 호스트명, NetBIOS명, 컴퓨터명, FQDN(Fully Qualified Domain Name) 등이 있다.The server identifier 1601 is a server identifier (server identification information) of a server (server PC 105) associated with a destination (connection destination) designated by the client application 101 or 101a of the connection request source. Examples of the server identifier 1601 include a host name, a NetBIOS name, a computer name, a fully qualified domain name (FQDN), and the like.

그러나,후술하는 바와 같이, 제4 실시예에서는, 어드레스 리스트 취득부(1501)는, 클라이언트 어플리케이션(101 및 101a)이 상이한 형식의 서버 식별 정보를 이용하여 접속 요구를 행한 경우에, 다른 형식의 서버 식별 정보를 호스트명으로 변환한다. 어드레스 리스트 취득부(1501)는, 호스트명의 어드레스 리스트를 DNS 서버(1401)로부터 취득한다.However, as will be described later, in the fourth embodiment, the address list obtaining unit 1501 uses a server of a different format when the client applications 101 and 101a make a connection request using server identification information of different formats. Converts identification information to a host name. The address list obtaining unit 1501 obtains an address list of host names from the DNS server 1401.

따라서, 도 16의 어드레스 리스트 정보에 있어서의 서버 식별자(1601) 각각은, 실제로는 호스트명으로 나태내어진다. 마찬가지로의 이유에서, 도 17의 세션 관리 정보에 있어서의 서버 식별자(504)도, 실제로는 호스트명으로 나타내어진다. 그러나,도 23의 어드레스 리스트 정보에 있어서의 각 서버 식별자(1601)는, 실제로는 호스트명의 형태이지만, 설명의 편의상, 클라이언트 어플리케이션(101 또는 101a)이 실제로 지정한 서버 식별자(서버 식별 정보)를 나타내고 있다.Therefore, each server identifier 1601 in the address list information in FIG. 16 is actually represented by a host name. For the same reason, the server identifier 504 in the session management information of FIG. 17 is also actually represented by a host name. However, although each server identifier 1601 in the address list information in FIG. 23 is actually in the form of a host name, for convenience of description, it shows the server identifier (server identification information) actually designated by the client application 101 or 101a. .

어드레스 취득 방법(1602)은, 관련 수신처(서버)의 어드레스를 DNS 서버(1401)로부터 취득할 때에 이용한 프로토콜이나 그 취득 방법을 나타내는 정보이다. 어드레스 종별(1603)은, DNS 서버(1401)로부터 실제로 취득한 어드레스의 종별을 나타내는 정보이다. IP 어드레스(1604)는, DNS 서버(1401)로부터 실제로 취득한 어드레스(IP 어드레스) 자체를 나타내는 정보이다.The address acquiring method 1602 is information indicating a protocol used when acquiring an address of an associated destination (server) from the DNS server 1401, and the acquiring method. The address type 1603 is information indicating the type of the address actually obtained from the DNS server 1401. The IP address 1604 is information indicating the address (IP address) itself actually obtained from the DNS server 1401.

도 16의 예에서는, 서버 식별자(1601)가 "AppServer: 호스트명"으로 나타내어지는 서버에 대해서는, 리스트 번호 1 및 4로 나타낸 통신을 위해 IPv4 어드레스 [10.0.0.10]을 취득하고 있다. 또한,서버 식별자(1601)가 "AppServer: 호스트명"으로 나타내어진 서버에 대해서는, 리스트 번호 2로 나타낸 통신을 위해 IPv6 어드레스 [2001::10]을 취득하고, 리스트 번호 3으로 나타낸 통신을 위해 IPv6 어드레스 [fe80::10]을 취득하고 있다.In the example of FIG. 16, for the server indicated by the server identifier 1601 as "AppServer: host name", an IPv4 address [10.0.0.10] is obtained for the communication indicated by list numbers 1 and 4. FIG. Further, for the server indicated by the server identifier 1601 as "AppServer: host name", an IPv6 address [2001 :: 10] is obtained for the communication indicated by the list number 2, and IPv6 for the communication indicated by the list number 3. The address [fe80 :: 10] is acquired.

또한,서버 식별자(1601)가 "AppServer 2:호스트명"으로 나타내어지는 서버에 대해서는, 리스트 번호 5로 나타낸 통신을 위해 IPv4 어드레스 [10.0.0.20]을 취득하고, 리스트 번호 6으로 나타낸 통신을 위해 IPv6 어드레스 [2001::20]을 취득하고 있다.Further, for the server whose server identifier 1601 is represented by "AppServer 2: Host Name", the IPv4 address [10.0.0.20] is obtained for the communication shown in list number 5, and the IPv6 address is shown for communication shown in list number 6. The address [2001 :: 20] is obtained.

도 17은, 세션 관리 정보를 예시한 도면이다. 어플리케이션 식별자(501)는, 접속 요구측에서 클라이언트 어플리케이션(101 또는 101a)을 식별하는 식별자(인스턴스 핸들)이다. 요구 어드레스 정보(502)는, 클라이언트 어플리케이션(101 또는 101a)이 접속을 요구할 때에 접속처로서 지정된 수신처 어드레스를 나타낸다. 이 수신처 어드레스(요구 어드레스 정보(502))는, 서버 식별 정보(호스트명, FQDN 등), IPv4 어드레스, IPv6 어드레스 등의 IP 어드레스(502a), 및 포트 번호(502b)를 포함하고 있다.17 is a diagram illustrating session management information. The application identifier 501 is an identifier (instance handle) for identifying the client application 101 or 101a at the connection request side. The request address information 502 indicates a destination address designated as a connection destination when the client application 101 or 101a requests a connection. This destination address (request address information 502) includes server identification information (host name, FQDN, etc.), an IP address 502a such as an IPv4 address, an IPv6 address, and a port number 502b.

통신 어드레스 정보(503)는, 수신처 어드레스에 기초하여 기존 세션의 이용 가능성을 판단한 후에, 실제로 통신을 위해 선택된 세션의 접속처의 어드레스를 나타낸다. 이 통신 어드레스 정보(503)는, IP 어드레스(503a) 및 포트 번호(503b)를 포함하고 있다.The communication address information 503 indicates the address of the connection destination of the session actually selected for communication after determining the availability of an existing session based on the destination address. This communication address information 503 includes an IP address 503a and a port number 503b.

서버 식별자(504)는, 클라이언트 어플리케이션(101 또는 101a)이 DNS 서버(1401)에 대하여 접속처의 어드레스 리스트를 공급하도록 요청한 서버의 서버 식별자(본 예에서는, 호스트명)를 나타낸다. 세션 번호(505)는, 통신을 실제로 행하는 세션의 관리 번호(세션 식별 인스턴스 핸들)를 나타낸다.The server identifier 504 indicates the server identifier (in this example, the host name) of the server that the client application 101 or 101a requests to supply the address list of the connection destination to the DNS server 1401. The session number 505 indicates a management number (session identification instance handle) of the session that actually communicates.

다음으로,클라이언트 프로세스간 통신부(103)의 프로세스간 통신 제어부(401)가 행하는 제4 실시예에 따른 세션 관리 처리를, 도 18의 플로우차트에 기초해서 설명한다. 또한,도 18에서는, 도 7과 동일한 처리에 대해서는, 동일한 단계 번호를 붙이고 있음을 주의해야 한다(도 20, 도 21, 도 22a, 도 22b, 도 26a, 도 26b 및 도 27에도 동일하게 적용).Next, the session management processing according to the fourth embodiment performed by the inter-process communication control unit 401 of the client inter-process communication unit 103 will be described based on the flowchart of FIG. 18. In addition, in FIG. 18, it should be noted that the same process number is attached | subjected about the same process as FIG. 7 (it applies also to FIG. 20, FIG. 21, FIG. 22A, FIG. 22B, FIG. 26A, FIG. 26B and FIG. 27). .

클라이언트 프로세스간 통신부(103)의 프로세스간 통신 제어부(401)는, 서버 PC(105)의 서버 어플리케이션(108)에 대한 접속 요구를 접수한다(단계 S701). 이 접속 요구는, 클라이언트 어플리케이션(101 또는 101a)으로부터 발행된다.The interprocess communication control unit 401 of the client interprocess communication unit 103 receives a connection request for the server application 108 of the server PC 105 (step S701). This connection request is issued from the client application 101 or 101a.

다음으로, 프로세스간 통신 제어부(401)는, 어드레스 리스트 취득부(1501)에게 수신처 어드레스에 관한 어드레스 리스트를 취득시킨다(단계 S1801).Next, the inter-process communication control unit 401 causes the address list acquisition unit 1501 to acquire an address list relating to the destination address (step S1801).

이 경우, 어드레스 리스트 취득부(1501)는, 통신 라이브러리(104a)를 이용하여, 네트워크(106)을 경유하여 DNS 서버(1401)에 대하여, 어드레스 리스트 상의 A 레코드나 AAAA 레코드 등의 취득 요구를 발행한다. DNS 서버(1401)는, 어드레스 리스트 취득부(1501)로부터의 어드레스 리스트 취득 요구에 응답하여, 관련된 어드레스 리스트를 회신한다.In this case, the address list acquisition unit 1501 issues an acquisition request such as an A record or an AAAA record on the address list to the DNS server 1401 via the network 106 using the communication library 104a. do. The DNS server 1401 returns an associated address list in response to an address list acquisition request from the address list acquisition unit 1501.

또한,어드레스 리스트 취득부(1501)는, 단계 S1801에서는, DNS 서버(1401) 이외에, 각종의 어드레스 문제 해결 서비스를 이용해서 어드레스 리스트 취득 처리를 행한다. 어드레스 문제 해결 서비스로서는, 예를 들면, LLMNR(Link Local Multocast Name Resolution) 및 NetBIOS에 의한 브로드 캐스트 탐색을 들 수 있다.In addition, in step S1801, the address list acquisition unit 1501 performs address list acquisition processing using various address problem solving services in addition to the DNS server 1401. Examples of address problem solving services include LLMNR (Link Local Multocast Name Resolution) and broadcast search by NetBIOS.

어드레스 리스트 취득부(1501)는, 수신처 어드레스 중에서 서버 식별 정보로서 "Numeric host address"가 지정된 경우에는, 그 "Numeric host address"를 호스트명으로 변환해서 어드레스 리스트 취득 처리를 행한다.When "Numeric host address" is specified as the server identification information in the destination address, the address list acquisition unit 1501 converts the "Numeric host address" into a host name and performs address list acquisition processing.

단계 S1801에서 행해진 어드레스 리스트 취득 처리의 상세를, 도 19의 플로우차트에 기초해서 설명한다.Details of the address list acquisition process performed in step S1801 will be described based on the flowchart of FIG. 19.

어드레스 리스트 취득부(1501)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 수신처 정보 중에서, 호스트명 형식의 서버 식별 정보 및 어드레스 형식의 서버 식별 정보 중 어느 것을 사용하여 서버를 지정할 것인지를 판별한다(단계 S1901). 여기에서 "어드레스"란, "Numeric host address"를 가리킨다.The address list obtaining unit 1501 determines, from among the destination information from the client application 101 or 101a, whether to specify a server using either server identification information in a host name format or server identification information in an address format (step). S1901). Here, "address" refers to "Numeric host address".

어드레스 형식의 서버 식별 정보를 이용하여 서버가 지정되어 있는 경우에 는, 어드레스 리스트 취득부(1501)는, 해당 어드레스와 관련된 호스트명을 DNS 서버(1401) 상에서 검색한다(단계 S1902). 이 경우, 어드레스 리스트 취득부(1501)는, 예를 들면, C/C++의 소켓 프로그래밍에서는,getnameinfo() 함수에 의해, 해당 지정 어드레스와 관련된 호스트명을 검색한다.When the server is designated using the server identification information in the address format, the address list acquisition unit 1501 searches the DNS server 1401 for the host name associated with the address (step S1902). In this case, the address list acquisition unit 1501 searches for a host name associated with the designated address by, for example, the getnameinfo () function in C / C ++ socket programming.

다음으로,어드레스 리스트 취득부(1501)는, 어드레스 취득 함수에 기초하여 검색된 호스트명을 지정함으로써, 해당 호스트명과 관련된 서버의 어드레스 리스트를 DNS 서버(1401)로부터 취득한다(단계 S1903). 이 경우, 예를 들면, C/C++의 소켓 프로그래밍에서는,getaddrinfo() 함수의 ai_family에 값 AF_UNSPEC를 설정해서 그 함수의 호출을 행함으로써, 호스트명과 관련된 어드레스 리스트를 취득한다.Next, the address list obtaining unit 1501 obtains the address list of the server associated with the host name from the DNS server 1401 by designating the host name retrieved based on the address obtaining function (step S1903). In this case, for example, in C / C ++ socket programming, a value AF_UNSPEC is set in the ai_family of the getaddrinfo () function and a function call is made to obtain an address list associated with a host name.

한편,호스트명의 형식의 서버 식별 정보를 이용하여 서버가 지정되어 있는 경우에는, 처리는 단계 S1902을 스킵해서 단계 S1903으로 진행한다. 단계 S1903의 처리가 종료하면, 어드레스 리스트 취득부(1501)는, 상기 호스트명 및 해당 호스트명과 관련된 어드레스 리스트를 어드레스 리스트 기억부(1502)에 등록하고(단계 S1904), 처리는 도 18의 주요 처리로 리턴한다.On the other hand, when a server is specified using server identification information in the form of host name, the process skips step S1902 and proceeds to step S1903. When the process of step S1903 ends, the address list acquisition unit 1501 registers the host name and the address list associated with the host name in the address list storage unit 1502 (step S1904), and the process is the main process of FIG. Return to.

그 후, 세션 판정부(404)는, 프로세스간 통신 제어부(401)의 제어 하에, 단계 S1801에서 취득된 어드레스 리스트와 세션 관리 정보 DB(406)의 정보에 기초하여, 기존 세션의 이용 가능성을 판정한다(단계 S1802).Then, under the control of the inter-process communication control unit 401, the session determination unit 404 determines the availability of the existing session based on the address list acquired in step S1801 and the information of the session management information DB 406. (Step S1802).

이 경우, 세션 판정부(404)는, 취득한 어드레스 리스트에 기재된 어드레스와 관련하여 세션 관리 정보 DB(406)에 등록되어 있는 기존 세션이, 동일 호스트명의 호스트(서버)와 관련된 기존 세션으로서 이용가능한지 여부를 판정한다.In this case, the session determination unit 404 determines whether an existing session registered in the session management information DB 406 is available as an existing session associated with a host (server) of the same host name in association with the address described in the obtained address list. Determine.

즉, 세션 판정부(404)는, 취득한 어드레스 리스트(1개의 어드레스만을 포함할 수도 있음)를 취득할 때 이용되는 어드레스와는 상이한 어드레스를 이용하여 현재 통신을 행하고 있는 기존 세션 중에서, 어드레스 리스트가 취득된 서버와 동일한 서버와 관련된 세션이 존재하는지를 판단한다. 그 결과, 동일한 서버와 관련된 기존 세션이 존재할 경우에는, 세션 판정부(404)는, 기존 세션을 이용 가능하다고 판정한다.In other words, the session determination unit 404 acquires the address list from existing sessions currently communicating using an address different from the address used when acquiring the acquired address list (which may include only one address). It is determined whether there is a session related to the same server as the established server. As a result, when there is an existing session associated with the same server, the session determination unit 404 determines that the existing session is available.

이 경우, 상술한 바와 같이, 어드레스 리스트는, 서버 식별 정보를 호스트명으로 통일 변환한 상태로 취득되어 있다. 따라서, 세션 판정부(404)는, 호스트명에 기초하여 서버를 식별한다.In this case, as described above, the address list is obtained in the state of uniformly converting the server identification information into the host name. Therefore, the session determination unit 404 identifies the server based on the host name.

이것은, 실질적으로, 클라이언트 어플리케이션(101 및 101a)이 접속 요구시에 지정한 수신처 어드레스와 관련된 서버 식별 정보가 서로 상이해도, 동일한 서버에 관련된 서버 식별 정보이면, 동일한 식별 정보로서 취급하는 것을 의미한다.This substantially means that if the server identification information associated with the destination address specified by the client applications 101 and 101a at the time of the connection request are different from each other, the server identification information relating to the same server is treated as the same identification information.

이에 의해,상이한 서버 식별 정보에 의해 서버가 지정되더라도, 기존 세션의 이용 가능성을 적절하게 판정할 수 있어,네트워크 리소스를 보다 효율적으로 사용하는 것이 가능하게 된다. 이 이점에 대해서는, 나중에, 도 23을 참조하여 상세하게 설명한다.As a result, even if a server is designated by different server identification information, the availability of an existing session can be appropriately determined, which makes it possible to use network resources more efficiently. This advantage will be described later in detail with reference to FIG.

그 후, 프로세스간 통신 제어부(401)는, 기존 세션이 이용 가능할 경우에는, 그 기존 세션을 금회에 행해지는 데이터 전송용의 세션으로서 선택한다(단계 S1803).Thereafter, when the existing session is available, the inter-process communication control unit 401 selects the existing session as the session for data transmission performed this time (step S1803).

예를 들면, 도 17의 세션 관리 정보예에서는, 관리 번호 1과 2로 표시한 세 션은, 클라이언트 어플리케이션(1)으로부터 지정된 각각의 상이한 수신처 어드레스에 대한 세션이다. 그러나, 관리 번호 2의 경우, 이미 확립된 기존 세션으로서, 동일한 서버 식별자 "AppServer"와 관련된 기존 세션(관리 번호 1과 관련되고 세션 번호 1이 할당되어 있음)이 존재한다. 이와 같은 경우, 프로세스간 통신 제어부(401)는, 신규인 세션을 작성하지 않고, 해당 기존 세션을 데이터 전송용의 세션으로서 선택한다.For example, in the example of session management information in Fig. 17, sessions indicated by management numbers 1 and 2 are sessions for respective different destination addresses designated by the client application 1. However, for management number 2, as an existing session already established, there is an existing session (associated with management number 1 and assigned session number 1) associated with the same server identifier "AppServer". In such a case, the inter-process communication control unit 401 selects the existing session as the data transfer session without creating a new session.

도 16의 어드레스 리스트의 예에서는, IP 어드레스 [10.0.0.10] 및 [2001::10] 은, 동일한 서버 식별자 "AppServer"와 관련되기 때문에,상기한 바와 같이, 동일한 서버 식별자와 관련된 기존 세션이 존재한다고 판정할 수 있다.In the example of the address list of Fig. 16, since the IP addresses [10.0.0.10] and [2001 :: 10] are associated with the same server identifier "AppServer", as described above, there is an existing session associated with the same server identifier. Can be determined.

도 16 및 도 17의 예에서는, 리스트/관리 번호 2와 관련된 어드레스 [2001::10]에의 접속 요구에 관한 통신에 대해서는, 어드레스 [2001::10]과 관련된 것과 동일한 서버 식별자 "AppServer" 및 관리 번호 1과 관련된 어드레스 [10.0.0.10]의 기존 세션을 이용해서 데이터 전송이 행해진다.In the examples of Figs. 16 and 17, for the communication regarding the connection request to the address [2001 :: 10] associated with the list / management number 2, the same server identifier "AppServer" and management as those associated with the address [2001 :: 10] are managed. Data transfer is performed using an existing session at address [10.0.0.10] associated with number 1.

따라서, 기존 세션을 이용하는 것에 의해, 클라이언트 PC(100) 및 서버 PC(105)는, 수신처 어드레스에 대한 통신 소켓을 새롭게 작성할 필요가 없어지고, 해당 통신 소켓 등의 네트워크 리소스를 절약하는 것이 가능하게 된다.Therefore, by using the existing session, the client PC 100 and the server PC 105 do not need to newly create a communication socket for the destination address, and it is possible to save network resources such as the communication socket. .

도 18에 있어서의 단계 S704, S705, S708~S711은, 도 7의 동일 단계 번호로 표시된 단계와 동일하므로, 그 설명을 생략한다.Steps S704, S705 and S708 to S711 in FIG. 18 are the same as the steps indicated by the same step numbers in FIG. 7, and therefore description thereof will be omitted.

다음으로,제1, 제2 클라이언트 어플리케이션이 상이한 서버 식별 정보(호스트명, FQDN 등)에 의해 서버를 각각 지정했을 경우 설명이 제공된다.Next, a description is provided when the first and second client applications respectively designate the server by different server identification information (host name, FQDN, etc.).

상술한 바와 같이, 제4 실시예에서는, 수신처를 지정하기 위해 사용되는 서버 식별 정보가 서로 다르더라도, 서버 식별 정보가 동일 서버를 식별하기 위한 것이라면, 동일한 서버 식별 정보로서 취급함으로써, 기존 세션의 이용 가능성을 적절하게 판정할 수 있다.As described above, in the fourth embodiment, even if the server identification information used to designate a destination is different, if the server identification information is for identifying the same server, use of the existing session is handled as the same server identification information. The possibility can be determined appropriately.

도 23은, 이와 같은 경우에 취득된 어드레스 리스트 정보를 예시한 것이다. 도 23의 정보 항목은, 도 16의 어드레스 리스트 정보의 정보 항목과 완전히 동일하므로, 동일한 정보 항목에 각각 동일한 부호를 붙이고, 그 설명은 생략한다. 그러나,도 23의 어드레스 리스트 정보에 있어서의 서버 식별자(1601)는, 상이한 형식으로 지정된 서버 식별 정보를 호스트명으로 통일 변환하여 얻어진 호스트명에 의해서가 아니라, 설명의 편의상, 그 변환 전의 지정을 위해 초기에 이용된 서버 식별 정보에 의해 표시된다.Fig. 23 illustrates the address list information obtained in such a case. Since the information items in FIG. 23 are exactly the same as the information items in the address list information in FIG. 16, the same information items are assigned the same reference signs, and description thereof is omitted. However, the server identifier 1601 in the address list information in FIG. 23 is not for the host name obtained by uniformly converting the server identification information specified in the different format into the host name. It is indicated by the server identification information used initially.

도 23의 예에서는, 서버 식별자 "AppServer.foo.test"로 식별된 서버 및 서버 식별자 "AppServer"로 식별된 서버가, 동일한 IP 어드레스 "fe80::10"과 관련된다(리스트 번호 2, 3 참조).In the example of FIG. 23, the server identified by the server identifier "AppServer.foo.test" and the server identified by the server identifier "AppServer" are associated with the same IP address "fe80 :: 10" (see list numbers 2 and 3). ).

이와 같은 경우에는, 상술한 바와 같이, 서버 식별자 "AppServer.foo.test"와 "AppServer"가 호스트명으로 통일 변환되어 이들 서버가 동일한 서버로 취급된다. 그리고, 세션 판정부(404)는, 실질적으로 단일인, 이들 양방의 서버 식별자 를 포함하는 어드레스 리스트 정보에 기초하여, 기존 세션의 이용 가능성을 판정 한다.In such a case, as described above, the server identifiers "AppServer.foo.test" and "AppServer" are uniformly converted into host names, and these servers are treated as the same server. And the session determination part 404 judges the availability of an existing session based on the address list information containing these server identifiers which are substantially single.

예를 들면, 접속 요구시의 수신처정보 중에서 서버 식별자 "AppServer.foo.test"가 지정되어 있지만, 해당 서버 식별자와 관련된 IP 어드레스에 대한 기존 세션이 없다고 가정한다. 이 경우에, 서버 식별자 "AppServer.foo.test"와 동일한 서버를 식별하는 서버 식별자 "AppServer"와 관련된 기존 세션으로서, IP 어드레스 [2001::10]에 대한 세션이 존재하는 것으로도 가정한다.For example, suppose that the server identifier "AppServer.foo.test" is specified in the destination information at the time of the connection request, but there is no existing session for the IP address associated with the server identifier. In this case, it is also assumed that there is a session for the IP address [2001 :: 10] as an existing session associated with the server identifier "AppServer" that identifies the same server as the server identifier "AppServer.foo.test".

이와 같은 경우, 세션 판정부(404)는, 서버 식별자 "AppServer.foo.test"를 이용한 접속 요구에 응답하여, 서버 식별자 "AppServer"와 관련된 IP 어드레스 [2001::10]에 대한 기존 세션이 이용 가능하다고 판정한다.In such a case, the session determination unit 404 responds to the connection request using the server identifier "AppServer.foo.test" and uses the existing session for the IP address [2001 :: 10] associated with the server identifier "AppServer". It is determined that it is possible.

상기한 바와 같이, 서버 식별자는 서로 상이하지만,동일 서버와 관련된 서버 식별자에 대해서는, 동일한 서버 식별자로서 취급함으로써, 상이한 서버 식별자에 의해 서버를 지정했을 경우에도, 서버에 기존 세션을 이용할 수 있기 때문에,소켓 등의 네트워크 리소스를 보다 효율적으로 사용할 수 있다.As described above, the server identifiers are different from each other. However, by treating the server identifiers associated with the same server as the same server identifier, even if a server is designated by a different server identifier, an existing session can be used for the server. Network resources such as sockets can be used more efficiently.

제1~4 실시예에서는, 클라이언트 어플리케이션(101)과 클라이언트 어플리케이션(101a)이 각각 상이한 수신처 어드레스를 지정했을 경우에도, 양자의 클라이언트 어플리케이션이 동일한 세션을 이용하는 경우가 있다. 이 경우, 클라이언트 프로세스간 통신부(103)는, 최초에 확립된 세션(동일한 세션)에 대한 수신처 어드레스를 이용하여 실제의 통신을 행한다.In the first to fourth embodiments, even when the client application 101 and the client application 101a respectively designate different destination addresses, both client applications may use the same session. In this case, the client inter-process communication unit 103 performs actual communication using the destination address for the session (same session) initially established.

그러나,최초에 지정된 수신처 어드레스를 가지고 행해진 통신에 있어서, 통신 장애가 발생한 경우에는, 다른 어드레스를 이용한 통신이 가능하여도, 동일 세션으로 통신을 행하는 다른 클라이언트 어플리케이션도 통신 불능이 된다.However, in the communication performed with the initially designated destination address, when a communication failure occurs, even if communication using a different address is possible, other client applications that communicate in the same session also become incapable of communication.

이러한 문제를 해결하기 위해,제5 실시예에서는, 통신 장애가 발생해도, 접속 가능한 다른 어드레스가 존재하는 경우에는, 그 접속 가능한 다른 어드레스에 대해 세션을 확립해서 통신을 행하도록 하고 있다.In order to solve such a problem, in the fifth embodiment, even if a communication failure occurs, when there is another address that can be connected, a session is established to communicate with another address that can be connected.

다음으로,제5 실시예에 따른 세션 관리 시스템의 클라이언트 PC(100)의 프로세스간 통신 제어부(401)가 행하는 세션 관리 처리를, 도 20 및 도 21의 플로우차트에 기초해서 설명한다. 도 20 및 도 21의 플로우차트는, 도 18의 플로우차트와 부분적으로 일치하고 있다. 따라서,도 20 및 도 21에서는, 도 18과 동일한 단계에 대해서는, 동일한 단계 번호를 붙이고, 그 설명은 생략한다. 이후, 제4 실시예와의 상위점만을 설명할 것이다.Next, session management processing performed by the inter-process communication control unit 401 of the client PC 100 of the session management system according to the fifth embodiment will be described based on the flowcharts of FIGS. 20 and 21. The flowcharts of FIG. 20 and FIG. 21 partially coincide with the flowchart of FIG. Therefore, in FIG. 20 and FIG. 21, about the same step as FIG. 18, the same step number is attached | subjected and the description is abbreviate | omitted. In the following, only differences from the fourth embodiment will be described.

프로세스간 통신 제어부(401)는, 도 21의 단계 S2001에 있어서, 단계 S708에서 선택된 세션을 이용하여 행한 데이터 전송에 성공하였는지의 여부를 판별한다. 그 결과, 데이터 전송에 성공한 경우에는, 단계 S709~S711의 처리를 행한다.In step S2001 of FIG. 21, the inter-process communication control unit 401 determines whether or not the data transfer performed using the session selected in step S708 is successful. As a result, when data transfer is successful, the processing of steps S709 to S711 is performed.

한편,데이터 전송에 실패한 경우에는, 세션 판정부(404)는, 프로세스간 통신 제어부(401)의 제어 하에, 세션 관리 정보 DB(406) 내의 동일한 서버 식별 정보(호스트명 등)와 관련된 다른 어드레스가 존재하는지를 판정한다(단계 S2002). 그 결과, 동일한 서버 식별 정보와 관련된 다른 어드레스가 존재하지 않는 경우에는, 프로세스간 통신 제어부(401)는, 데이터 전송의 에러 처리를 행하고(단계 S2006), 단계S709로 진행한다.On the other hand, if data transmission fails, the session determination unit 404, under the control of the inter-process communication control unit 401, has another address associated with the same server identification information (host name, etc.) in the session management information DB 406. It is determined whether it exists (step S2002). As a result, when there is no other address associated with the same server identification information, the inter-process communication control unit 401 performs error processing of data transfer (step S2006) and proceeds to step S709.

한편,동일한 서버 식별 정보와 관련된 다른 어드레스가 존재하는 경우에는, 프로세스간 통신 제어부(401)는, 동일한 서버 식별 정보(호스트명)와 관련된 다른 어드레스에 다시 접속하기 위한 세션을 확립한다(단계 S2003). 이 경우, 프로세스간 통신 제어부(401)는, 동일한 서버 식별 정보(호스트명)와 관련된 다른 어드레스에 대한 신규 소켓을 작성한다.On the other hand, if there is another address associated with the same server identification information, the inter-process communication control unit 401 establishes a session for reconnecting to another address associated with the same server identification information (host name) (step S2003). . In this case, the interprocess communication control unit 401 creates a new socket for another address associated with the same server identification information (host name).

프로세스간 통신 제어부(401)는, 동일한 서버 식별 정보(호스트명)와 관련된 다른 어드레스가 복수개 존재할 때는, 클라이언트 어플리케이션(101 또는 101a)이 지정한 어드레스에 대한 세션을 우선적으로 확립한다.When there are a plurality of different addresses associated with the same server identification information (host name), the inter-process communication control unit 401 preferentially establishes a session for the address specified by the client application 101 or 101a.

다음으로,프로세스간 통신 제어부(401)는, 세션 관리부(403)에 의해, 재접속에 대한 세션의 정보를 세션 관리 정보 DB(406)에 등록하게 한다(단계 S2004). 그리고, 프로세스간 통신 제어부(401)는, 재접속에 대한 세션을 데이터 전송용의 세션으로서 선택하고(단계 S2005), 처리는 단계 S708로 되돌아간다.Next, the inter-process communication control unit 401 causes the session management unit 403 to register the session information for reconnection with the session management information DB 406 (step S2004). Then, the inter-process communication control unit 401 selects the session for reconnection as the session for data transmission (step S2005), and the process returns to step S708.

상술한 바와 같이, 제5 실시예에 따르면, 복수의 어플리케이션이 동일한 세션에서 데이터 전송을 행하고 있을 때에 하나의 어플리케이션을 이용하여 통신하는 동안 장애가 발생해도, 다른 어플리케이션(들)은 통신을 속행할 수 있다. 따라서, 제5 실시예에서는, 통신 장애에 강해서 데이터 전송의 신뢰성이 높은 통신 시스템을 구축하는 것이 가능하게 된다.As described above, according to the fifth embodiment, even when a failure occurs while communicating using one application when a plurality of applications are performing data transmission in the same session, the other application (s) can continue the communication. . Therefore, in the fifth embodiment, it is possible to construct a communication system which is resistant to communication disturbance and has high reliability of data transmission.

제4 및 제5 실시예에서는, 예를 들면 어플리케이션(101)이 제1 세션을 절단 하는 경우,제1 세션을 이용하고 있는 클라이언트 어플리케이션(101a)은 통신을 행할 수 없게 된다.In the fourth and fifth embodiments, for example, when the application 101 disconnects the first session, the client application 101a using the first session cannot communicate.

제6 실시예에서는, 이 문제를 다음과 같이 해결하고 있다. 즉, 프로세스간 통신 제어부(401)는, 세션의 클로즈 요구를 받을 때마다, 각 세션을 클로즈하지 않 고, 각 세션에 제공된 클로즈 레퍼런스 카운터에 기초하여 각 세션을 클로즈하고 있다. 제6 실시예에서는, 접속 레퍼런스 카운트 기억부(408)에 클로즈 레퍼런스 카운터를 기억시킨다.In the sixth embodiment, this problem is solved as follows. In other words, the inter-process communication control unit 401 does not close each session each time the session close request is received, and closes each session based on the close reference counter provided to each session. In the sixth embodiment, the connection reference count storage unit 408 stores the close reference counter.

제6 실시예에 있어서의 세션 관리 처리를, 도 22a 및 도 22b의 플로우차트에 기초해서 설명한다. 도 22a 및 도 22b의 플로우차트는, 도 18의 플로우차트와 부분적으로 일치하고 있다. 따라서,도 22a 및 도 22b에서는,도 7 및 도 18과 동일한 단계에 대해서는, 동일한 단계 번호를 붙이고, 그 설명은 생략한다. 이후, 제4 실시예와의 상위점만을 설명한다.The session management processing in the sixth embodiment will be described based on the flowcharts in FIGS. 22A and 22B. 22A and 22B partially coincide with the flowchart of FIG. 18. Therefore, in FIG. 22A and FIG. 22B, about the same step as FIG. 7 and FIG. 18, the same step number is attached | subjected and the description is abbreviate | omitted. Hereinafter, only differences from the fourth embodiment will be described.

세션 절단 관리부(407)는, 프로세스간 통신 제어부(401)의 제어 하에, 도 22b의 단계 S2201에 있어서, 단계 S706 또는 S707에서 선택된 세션에 대한 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분시킨다. 이때, 세션 절단 관리부(407)는, 1만큼 증분된 클로즈 레퍼런스 카운터의 카운트를 접속 레퍼런스 카운트 기억부(408)에 보존한다.Under the control of the inter-process communication control unit 401, the session truncation management unit 407 increments the count of the close reference counter for the session selected in step S706 or S707 by one in step S2201 of FIG. 22B. At this time, the session truncation management unit 407 stores the count of the closed reference counter incremented by one in the connection reference count storage unit 408.

다음, 프로세스간 통신 제어부(401)는, 단계 S706 또는 S707에서 선택된 세션에 의해, 데이터 전송을 행한다(단계 S708). 다음으로,프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)으로부터의 클로즈 요구 또는 통신 라이브러리(104a)로부터의 절단 요구를 받았는지의 여부를 판단한다(단계 S709). 상기 클로즈 요구 또는 절단 요구를 받지 않은 경우에는, 처리는, 단계 S701로 되돌아간다.Next, the inter-process communication control unit 401 performs data transfer by the session selected in step S706 or S707 (step S708). Next, the inter-process communication control unit 401 determines whether a close request from the client application 101 or 101a or a disconnect request from the communication library 104a has been received (step S709). If the close request or the cut request is not received, the process returns to step S701.

한편,상기 클로즈 요구 또는 절단 요구 중 어느 하나를 받은 경우에는, 세 션 절단 관리부(407)는, 그 요구와 관련된 어드레스에 대해 확립된 세션의 클로즈 레퍼런스 카운터의 카운트를 1만큼 감소시킨다(단계 S2202). 상술한 바와 같이, 세션 절단 관리부(407)는, 세션과 관련된 수신처 어드레스마다, 해당 수신처 어드레스에 접속하기 위한 접속 요구에 응답하여 클로즈 레퍼런스 카운터의 카운트를 1만큼 증분시키고, 절단 요구에 응답하여 1만큼 감소시킨다.On the other hand, when either of the close request or the disconnect request is received, the session cut management unit 407 decrements the count of the close reference counter of the session established for the address associated with the request by one (step S2202). . As described above, the session truncation management unit 407 increments the count of the close reference counter by one in response to the connection request for connecting to the destination address for each destination address associated with the session, and by one in response to the truncation request. Decrease.

그 후, 프로세스간 통신 제어부(401)는, 클로즈 레퍼런스 카운터의 카운트가1만큼 감소되는 것에 의해, 클로즈 레퍼런스 카운터의 카운트가 0이 되었는지 여부를 판단한다(단계 S2203). 클로즈 레퍼런스 카운터의 카운트가 0이 아니면, 처리 단계 S701로 되돌아간다.Thereafter, the inter-process communication control unit 401 determines whether the count of the closed reference counter has become zero by decreasing the count of the closed reference counter by one (step S2203). If the count of the close reference counter is not 0, processing returns to processing step S701.

한편,클로즈 레퍼런스 카운터의 카운트가 0이면, 처리가 단계 S710로 진행하고, 프로세스간 통신 제어부(401)는, 클로즈 요구 또는 절단 요구와 관련된 어드레스의 세션 및 소켓의 클로즈 처리를 행한다.On the other hand, if the count of the close reference counter is zero, the process proceeds to step S710, and the inter-process communication control unit 401 performs the closing process of the session and the socket of the address associated with the close request or the disconnect request.

상기한 바와 같이, 제6 실시예에 따르면, 세션의 클로즈 요구를 받을 때마다 각 세션을 클로즈하지 않고, 세션에 제공되는 클로즈 레퍼런스 카운터에 기초하여 세션을 클로즈하고 있다.As described above, according to the sixth embodiment, the session is closed based on the close reference counter provided to the session, instead of closing each session each time a session close request is received.

따라서, 상이한 클라이언트 어플리케이션이 동일한 세션을 이용해서 데이터를 전송하는 경우에, 한쪽의 클라이언트 어플리케이션으로부터의 절단 지시에 의해, 다른 쪽의 클라이언트 어플리케이션이 데이터 전송 불능이 되는 것을 방지할 수 있다. 이에 의해,소켓 등의 네트워크 리소스를 보다 효율적으로 사용하는 것이 가능하게 된다.Therefore, when different client applications transmit data using the same session, the disconnection instruction from one client application can prevent the other client application from being unable to transmit data. This makes it possible to use network resources such as sockets more efficiently.

제1~6 실시예에서는, 기존 세션을 이용할 수 있는 경우에는, 반드시 그 기존 세션을 이용해서 통신을 행하고 있었다. 그러나, 먼저 개시된 제1 통신에 대해 확립된 기존 세션에 비해, 나중에 개시되는 제2 통신에 대해 본래 확립되어야 할 신규 세션이, 통신 속도, 통신을 행할 때 경유하는 라우터의 수 등의 관점에서 통신 효율이 좋은 경우가 있다.In the first to sixth embodiments, when an existing session can be used, communication is always performed using the existing session. However, compared to the existing session established for the first communication that was first started, the communication efficiency in terms of the communication speed, the number of routers through which the new session, which should be originally established for the second communication that is started later, and the like are communicated. This is a good case.

이러한 이유로,본 발명의 제7 실시예에서는, 이용 가능한 세션이 있는 경우라도, 금회의 통신에서 확립되어야 할 신규 세션이 기존 세션보다도 통신 효율이 좋을 경우에는, 신규 세션을 확립해서 통신을 계속하도록 하고 있다.For this reason, in the seventh embodiment of the present invention, even when there is a session available, if a new session to be established in this communication has a better communication efficiency than the existing session, a new session is established to continue communication. have.

상기 통신 효율을 판정하기 위해서, 제7 실시예에서는, 도 24에 도시한 바와 같이,클라이언트 프로세스간 통신부(103)에는, 프로세스간 통신 제어부(401)의 제어 하에 회선 정보를 취득하는 회선 정보 취득부(2401)를 설치하고 있다.In order to determine the communication efficiency, in the seventh embodiment, as shown in FIG. 24, the line information acquisition unit that acquires line information is controlled by the inter-process communication control unit 401 under the control of the inter-process communication control unit 401. (2401) is installed.

클라이언트 PC(100)의 다른 소프트웨어 구성은, 도 4에 나타낸 제1 실시예의 대응 부분과 거의 마찬가지이므로, 이하에서는 상위점만을 설명한다. 또한,도 24에서는 도 4의 세션 절단 관리부(407), 접속 레퍼런스 카운트 기억부(408), 및 세션 재접속 관리부(409)가 도시 생략되어 있음을 주의해야 한다.Since the other software configuration of the client PC 100 is almost the same as that of the corresponding part of the first embodiment shown in Fig. 4, only the differences will be described below. It should be noted that in FIG. 24, the session disconnection manager 407, the connection reference count storage unit 408, and the session reconnection manager 409 of FIG. 4 are not shown.

회선 정보 취득부(2401)는, 네트워크(106) 상의 수신처 어드레스에 대한 통신 루트의 회선 정보를, 통신 라이브러리(104a)로부터 취득한다. 그리고, 회선 정보 취득부(2401)는, DB 관리부(405)를 통하여, 그 회선 정보를 세션 관리 정보로서 세션 관리 정보 DB(406)에 등록한다.The line information acquisition unit 2401 acquires the line information of the communication route with respect to the destination address on the network 106 from the communication library 104a. Then, the line information acquisition unit 2401 registers the line information as the session management information in the session management information DB 406 through the DB manager 405.

회선 정보 취득부(2401)가 취득하는 회선 정보는, IPv6 헤더의 Traffic Class, Flow Label, 및 Hop Limit, IPv4 헤더의 Service Type 및 Time To Live, 및 추가의 통신 대역을 포함한다.The line information acquired by the line information acquisition unit 2401 includes a Traffic Class, a Flow Label and a Hop Limit of an IPv6 header, a Service Type and a Time To Live of an IPv4 header, and an additional communication band.

회선 정보 취득부(2401)는, IP 프로토콜의 Path MTU(Maximum Transmission Unit)Discovery를 이용한 Path MTU를 검출할 수 있다. Path MTU Discovery는 1회의 데이터 전송에 의해 전송가능한 데이터그램의 최대값을 자동적으로 검출한다. Path MTU Discovery에 관해서는, RFC(Request for Comments)에서 규정되어 있다.The line information acquisition unit 2401 can detect the Path MTU using Path MTU (Maximum Transmission Unit) Discovery of the IP protocol, and Path MTU Discovery automatically determines the maximum value of datagrams that can be transmitted by one data transmission. Path MTU Discovery is specified in RFC (Request for Comments).

회선 정보 취득부(2401)는, RFC 1981에 규정된 Path MTU Discovery for IP version 6, RFC 1191에 규정된 Path MTU Discovery 등을, 통신 라이브러리(104a)로부터 취득한다.The line information acquisition unit 2401 acquires the Path MTU Discovery for IP version 6 specified in RFC 1981, the Path MTU Discovery specified in RFC 1191, and the like from the communication library 104a.

또한,회선 정보 취득부(2401)는, 통신 대역에 관해서는, 클라이언트 PC(100)에 장착된 네트워크 카드의 대역 정보를 취득할 수 있다. 또한,회선 정보 취득부(2401)는, RFC 2205에 규정되어 있는 네트워크 제어 프로토콜을 이용하여, 클라이언트 어플리케이션이 제어하는 대역의 대역 정보를 취득할 수 있다.The line information acquisition unit 2401 can acquire the band information of the network card attached to the client PC 100 with respect to the communication band. In addition, the line information acquisition unit 2401 can acquire the band information of the band controlled by the client application by using the network control protocol specified in RFC 2205.

도 25는, 제7 실시예에 따른 세션 관리 시스템에서 사용되는 세션 관리 정보를 제시한 도면이다. 이 세션 관리 정보는, 세션 관리 정보 DB(406)에 데이터베이스로서 등록되어 있다.25 is a diagram showing session management information used in the session management system according to the seventh embodiment. This session management information is registered in the session management information DB 406 as a database.

도 25에 나타낸 제7 실시예에 따른 세션 관리 시스템에서 사용되는 세션 관리 정보가, 도 5에 나타낸 제1 실시예에 따른 세션 관리 시스템에서 사용되는 세션 관리 정보와 구별되는 점은, 도 5의 세션 관리 정보와 동일한 데이터 항목에 회선 정보(2501)가 부가되어 있다는 점이다. 이 회선 정보(2501)는, 클라이언트 어플리 케이션(101 또는 101a)이 접속 요구를 행했을 때에 수신처로서 지정한 수신처 어드레스, 및 관련된 포트 번호에 대한 통신 루트의 회선 상태를 나타낸다.The session management information used in the session management system according to the seventh embodiment shown in FIG. 25 is distinguished from the session management information used in the session management system according to the first embodiment shown in FIG. 5. The line information 2501 is added to the same data item as the management information. This line information 2501 indicates the line state of the communication route to the destination address specified as the destination when the client application 101 or 101a makes a connection request, and the associated port number.

회선 정보(2501)는, 예를 들면, 대역 정보(2501a), 라우터 수(2501b), Path MTU(2501c)를 포함한다. 그러나,이들 정보 이외의 회선 정보를 이용해서 통신 효율을 판정하는 것도 가능하다.The line information 2501 includes band information 2501a, the number of routers 2501b, and the Path MTU 2501c, for example. However, it is also possible to determine communication efficiency using line information other than these information.

다음으로,제7 실시예에 따른 세션 관리 시스템에 의한 세션 관리 정보를, 도 26a, 도 26b 및 도 27의 플로우차트에 기초해서 설명한다. 본 플로우차트는, 제1 실시예에 따른 도 7의 플로우챠트와 동일한 다수의 처리 단계를 포함한다. 이들 단계에 대해서는, 동일 대응 단계 부호를 붙이고, 그 설명을 생략한다.Next, session management information by the session management system according to the seventh embodiment will be described based on the flowcharts of FIGS. 26A, 26B, and 27. This flowchart includes the same number of processing steps as the flowchart of FIG. 7 according to the first embodiment. These steps are denoted by the same corresponding step symbols and their description is omitted.

프로세스간 통신 제어부(401)는, 단계 S702에서 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 따라, 서버 PC(105)로부터 서버 식별자를 취득한다. 또한,프로세스간 통신 제어부(401)는, 회선 정보 취득부(2401)에 의해, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 대한 통신 루트에 따른 회선 정보를 취득하게 한다(단계 S2601).The inter-process communication control unit 401 obtains a server identifier from the server PC 105 in accordance with the destination address specified by the client application 101 or 101a in step S702. In addition, the interprocess communication control unit 401 causes the line information acquisition unit 2401 to acquire line information corresponding to the communication route to the destination address specified by the client application 101 or 101a (step S2601).

이 경우, 회선 정보 취득부(2401)는, getsockopt 함수에 기초하여, 클라이언트 PC(100)의 OS 상의 소켓 라이브러리로부터, 상기 통신 루트 상의 정보를 취득할 수 있다. 또한,회선 정보 취득부(2401)는, 상기 OS 상의 통신 라이브러리(104a)로부터 Path MTU Discovery를 취득하고, 이 Path MTU Discovery를 이용해서 상기 통신 루트에 관한 Path MTU(2501c)를 취득할 수도 있다. 또한,회선 정보 취득부(2401)는, IPv4 헤더의 TTL(Time To Live) 정보나, IPv6 헤더의 Hop Limit 정보 를 취득하는 것도 가능하다.In this case, the line information acquisition unit 2401 can acquire the information on the communication route from the socket library on the OS of the client PC 100 based on the getsockopt function. The line information acquisition unit 2401 may also acquire Path MTU Discovery from the communication library 104a on the OS, and obtain Path MTU 2501c regarding the communication route using this Path MTU Discovery. The line information acquisition unit 2401 can also acquire TTL (Time To Live) information of the IPv4 header and Hop Limit information of the IPv6 header.

다음으로,프로세스간 통신 제어부(401)는, 세션 관리부(403)에 의해, 단계S702에서 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련하여 확립된 기존 세션이 존재하는지를 판별한다(단계 S703).Next, the inter-process communication control unit 401 determines, by the session management unit 403, whether there is an existing session established with respect to the same server identifier 504 as the server identifier 504 acquired in step S702 (step) S703).

이 경우, 세션 관리부(403)는, DB 관리부(405)를 통해, 세션 관리 정보 DB(406)로부터 세션 관리 정보를 취득한다. 그리고, 세션 관리부(403)는, 취득한 세션 관리 정보에 기초하여, 다른 어드레스를 이용하여 현재 통신 중인 기존 세션 중에, 금회의 접속 요구시에 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존 세션이 존재하는지를 판정한다. 이 판정 처리는, 실제로는, 세션 판정부(404)가 행한다.In this case, the session manager 403 obtains session management information from the session management information DB 406 through the DB manager 405. Based on the session management information obtained, the session management unit 403 is associated with the same server identifier 504 as the server identifier 504 acquired at the time of the connection request during the existing session currently in communication using another address. Determine if an existing session exists. This determination processing is actually performed by the session determination unit 404.

단계 S702에서 취득한 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된 기존의 세션이 존재하는 경우에는, 처리가 단계 S2602로 진행한다.If there is an existing session associated with the same server identifier 504 as the server identifier 504 acquired in step S702, the processing proceeds to step S2602.

단계 S2602에서는, 프로세스간 통신 제어부(401)는, 세션 판정부(404)에 의해, 이미 접속된 기존 세션의 회선 상태와, 금회 접속 요구시 지정된 수신처 어드레스에 관한 회선 상태를 비교하여, 후자쪽이 양호한지를 판별한다.In step S2602, the interprocess communication control unit 401 compares, by the session determination unit 404, the line state of the existing session that is already connected with the line state of the destination address specified at the time of the connection request, and the latter. Determine if it is good.

도 25의 세션 관리 정보의 예에서는, 각각 관리 번호 1 및 2로 할당된 통신은, 어드레스가 상이하지만 서버가 동일한 서버 식별자를 갖는 어드레스에 대하여 클라이언트 어플리케이션으로부터 발행된 접속 요구에 기초하고 있다. 이 양자의 통신을 Path MTU(2501c)의 관점에서 비교하면, 관리 번호 1의 Path MTU(2501c)는 1500이고, 관리 번호 2의 Path MTU(2501c)는 9000이다. 이로부터, Path MTU가 큰(즉, 통신 오버헤드가 작은) 관리 번호 2의 회선 상태가 양호하다고 판별된다.In the example of session management information in FIG. 25, the communication assigned to management numbers 1 and 2, respectively, is based on a connection request issued from a client application for an address having a different address but the server having the same server identifier. Comparing these communications from the viewpoint of Path MTU 2501c, Path MTU 2501c of management number 1 is 1500 and Path MTU 2501c of management number 2 is 9000. From this, it is determined that the line state of management number 2 with a large Path MTU (that is, a small communication overhead) is good.

또한,양자의 통신을 라우터 수(2501b)의 관점에서 비교하면, 관리 번호 1의 라우터 수는 3이고, 관리 번호 2의 라우터 수는 1이다. 이로부터, 통신을 행하기 위해 경유하는 라우터 수가 작은(즉, 통신 오버헤드가 작은) 관리 번호 2의 회선 상태가 양호하다고 판별된다. 또한,대역 정보(2501a)의 취득 방법에 대해서는, 나중에 상세하게 설명한다.In addition, when the quantum communication is compared in terms of the number of routers 2501b, the number of routers of management number 1 is three and the number of routers of management number 2 is one. From this, it is determined that the line state of the management number 2 with a small number of routers passing through for communication (that is, a small communication overhead) is good. In addition, the acquisition method of the band information 2501a is demonstrated in detail later.

대역 정보(2501a), 라우터 수(2501b) 및 Path MTU(2501c)에 기초한 각각의 방법에 의한 회선 상태의 양호성의 판별 결과가 서로 모순되는 경우가 상정될 수 있지만, 이와 같은 경우는, 판별 결과를 종합해서 총 통신 오버헤드에 기초하여 판별을 행할 수 있다.It may be assumed that the determination result of the goodness of the line state by each method based on the band information 2501a, the number of routers 2501b, and the Path MTU 2501c is inconsistent with each other. In total, discrimination can be made based on the total communication overhead.

또한,대역 정보(2501a), 라우터 수(2501b) 및 Path MTU(2501c) 이외의 통신 조건에 기초하여 회선 상태의 양호성을 판별하는 것도 가능하다. 예를 들어, 통신 루트의 트래픽 등의 시시각각 변화하는 통신 조건을 사용할 수 있다. 또한,유저의 지정에 의해, 대역 정보(2501a), 라우터 수(2501b) 및 Path MTU(2501c)를 포함하는 파라미터 각각에 대해서 가중치 부여를 하여 얻어진 총 통신 오버헤드에 기초하여 회선 상태의 양호성을 판별하는 것도 가능하다.Further, it is also possible to determine the goodness of the line state based on communication conditions other than the band information 2501a, the number of routers 2501b, and the Path MTU 2501c. For example, it is possible to use a communication condition that changes at any time, such as traffic of a communication route. Further, by designation of the user, goodness of the line state is determined based on the total communication overhead obtained by weighting each of the parameters including the band information 2501a, the number of routers 2501b, and the Path MTU 2501c. It is also possible.

금회 접속 요구시 지정된 수신처 어드레스에 관한 회선 상태가, 이미 접속된 기존 세션에 관한 회선 상태보다도 양호한 경우에는, 프로세스간 통신 제어부(401)는, 세션 관리부(403)에 의해, 신규로 세션을 확립시킨다(단계 S2603). 이 경우, 세션 관리부(403)는, 통신 라이브러리(104a)를 이용하여, 클라이언트 어플리케이 션(101 또는 101a)에 의해 지정된 수신처 어드레스에 기초하여 신규 소켓을 작성한다.If the line state for the destination address specified at the time of this connection request is better than the line state for the existing session already connected, the inter-process communication control unit 401 causes the session management unit 403 to establish a new session. (Step S2603). In this case, the session manager 403 creates a new socket using the communication library 104a based on the destination address specified by the client application 101 or 101a.

다음으로,세션 관리부(403)는 신규 소켓을 포함하는 신규 세션의 정보를, DB 관리부(405)에 의해, 세션 관리 정보 DB(406)에 등록시킨다(단계 S2604). 그리고, 프로세스간 통신 제어부(401)는, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 대해 확립된 신규 세션을, 금회의 데이터 전송용의 세션으로서 선택한다(단계 S2605).Next, the session manager 403 registers the information of the new session including the new socket in the session management information DB 406 by the DB manager 405 (step S2604). Then, the inter-process communication control unit 401 selects a new session established for the destination address specified by the client application 101 or 101a as the session for data transmission this time (step S2605).

다음으로,프로세스간 통신 제어부(401)는, 데이터 전송을 행하고 있는 통신의 동일 서버에 따른 기존 세션을 신규 세션으로 변경한다(단계 S2606). 그리고, 프로세스간 통신 제어부(401)는, 세션 관리 정보 DB(406)로부터 기존 세션을 삭제한다(단계 S2607).Next, the inter-process communication control unit 401 changes the existing session according to the same server of the communication performing data transfer into a new session (step S2606). The interprocess communication control unit 401 deletes the existing session from the session management information DB 406 (step S2607).

도 25의 세션 관리 정보의 예에서는, 관리 번호 3과 관리 번호 2로 나타낸 통신에 대해서는, 관리 번호 2의 통신이 더 양호한 회선 상태에 있다. 이 회선 상태에 있어서, 관리 번호 3 및 관리 번호 2의 순서로 클라이언트 어플리케이션(101)이 접속 요구를 발행한다고 가정한다.In the example of the session management information of FIG. 25, for the communication indicated by the management number 3 and the management number 2, the communication of the management number 2 is in a better line state. In this line state, it is assumed that the client application 101 issues a connection request in the order of the management number 3 and the management number 2. FIG.

이 경우, 우선,관리 번호 3으로 나타낸 세션이 신규로 작성된다. 이 세션에서는, 클라이언트 어플리케이션(101)이 실제로 데이터 전송을 행하는 통신 어드레스는, [2001::20], 포트 번호 1025가 된다.In this case, first, a session indicated by the management number 3 is newly created. In this session, the communication address at which the client application 101 actually transmits data is [2001 :: 20] and port number 1025.

그 후, 관리 번호 2의 접속 요구가 클라이언트 어플리케이션(101a)로부터 발행되면,관리 번호 2의 회선 상태가 관리 번호 3의 회선 상태보다도 양호하므로, 관리 번호 2에 대한 세션이 신규로 작성된다.After that, when the connection request of the management number 2 is issued from the client application 101a, the line number of the management number 2 is better than the line state of the management number 3, so that a session with the management number 2 is newly created.

그 후, 단계 S2605~S2607의 처리에 의해, 클라이언트 어플리케이션(101 및 101a)에 따른 후속 데이터 전송은, 관리 번호 2의 신규 세션을 이용하여 통신 어드레스 [2001::10], 포트 번호 1025로 행해진다.Subsequently, by the processing of steps S2605 to S2607, subsequent data transfer in accordance with the client applications 101 and 101a is performed at the communication address [2001 :: 10] and the port number 1025 using a new session of the management number 2. .

이미 접속된 기존 세션의 회선 상태가, 신규 지정된 수신처 어드레스에 관한 회선 상태보다도 양호한 경우에는, 처리가 단계 S707로 진행한다. 이 단계 S707에서는, 프로세스간 통신 제어부(401)는, 금회 루프의 접속 요구에 대한 응답으로서 취득된 서버 식별자(504)와 동일한 서버 식별자(504)와 관련된, 상기 미리 접속된 기존 세션을 금회의 데이터 통신용의 세션으로서 선택한다.If the line state of the existing session already connected is better than the line state for the newly designated destination address, the process proceeds to step S707. In this step S707, the inter-process communication control unit 401 sends the current data connected to the previously-connected existing session associated with the same server identifier 504 as the server identifier 504 obtained as a response to the connection request of the current loop. Select as session for communication.

다음으로,회선 정보(2501)에 포함되는 대역 정보(2501a)의 취득 방법에 대해서 설명한다. 이 대역 정보(2501a)는, 도 26a의 단계 S2601에 있어서, 회선 정보 취득부(2401)가, 클라이언트 어플리케이션(101 또는 101a)에 의해 지정된 수신처 어드레스에 따라서 취득한다.Next, the acquisition method of the band information 2501a contained in the line information 2501 is demonstrated. This band information 2501a is acquired by the line information acquisition unit 2401 in accordance with the destination address specified by the client application 101 or 101a in step S2601 of FIG. 26A.

이 경우, 회선 정보 취득부(2401)는 LinkSpeed 취득 함수에 의해, 클라이언트 PC(100)의 네트워크 어댑터의, 송신원 어드레스로부터 수신처 어드레스에 링크할 때의 속도를 나타내는 LinkSpeed를, 클라이언트 PC(100)상의 OS 상의 소켓 라이브러리로부터 취득한다.In this case, the line information acquisition unit 2401 uses the LinkSpeed acquisition function to set LinkSpeed, which indicates the speed when linking from the source address to the destination address of the network adapter of the client PC 100, to the OS on the client PC 100. From the socket library on the top.

또한,회선 정보 취득부(2401)는, 네트워크 기기의 QoS(Quality of Service)를 실현하는 네트워크 제어 프로토콜을 상기 OS 상의 소켓 라이브러리로부터 취득하여, 대역 정보(2501a)를 인식할 수 있다. 이 경우, 회선 정보 취득부(2401)는, 네트워크 제어 프로토콜로부터 RSVP(Resource Reservation Protocol) (RFC 2205)의 설정값을 취득한다.In addition, the line information acquisition unit 2401 can acquire a network control protocol for realizing a Quality of Service (QoS) of the network device from the socket library on the OS, and recognize the band information 2501a. In this case, the line information acquisition unit 2401 acquires the setting value of RSVP (Resource Reservation Protocol) (RFC 2205) from the network control protocol.

회선 정보 취득부(2401)는, 이들의 설정값을 확인하고, 클라이언트 PC(100)의 네트워크 어댑터의 LinkSpeed, 및 통신 경로 상의 네트워크 기기의 이용 대역 정보를 취득함으로써 회선 상태의 양호성을 판정한다.The line information acquisition unit 2401 checks these setting values and determines the goodness of the line state by acquiring LinkSpeed of the network adapter of the client PC 100 and utilization band information of the network device on the communication path.

그 후, 클라이언트 프로세스간 통신부(103)는, 대역 정보(2501a), 라우터 수(2501b), 및 Path MTU(2501c)를 종합적으로 판단하는 것에 의해, 다른 어드레스에서 확립된 세션에 의해 데이터 전송을 행할 때 사용하는 어드레스를 선정한다. 그리고, 클라이언트 프로세스간 통신부(103)는, 선정한 어드레스에 상이한 세션을 실제의 데이터 전송에서 이용하는 세션으로서 선택한다.Thereafter, the client inter-process communication unit 103 performs data transmission by a session established at another address by comprehensively determining the band information 2501a, the number of routers 2501b, and the Path MTU 2501c. Select the address to use. The inter-process communication unit 103 then selects a session different from the selected address as the session to be used for the actual data transfer.

또한,회선 상태의 양호성을 판정하는 경우, 반드시 대역 정보(2501a), 라우터 수(2501b) 및 Path MTU(2501c) 모두를 이용할 필요는 없다. 이들 중 어느 하나, 또는 2개를 임의로 조합해서 회선 상태의 양호성을 판정하는데 사용할 수 있다.In addition, when determining the goodness of the line state, it is not necessary to use all of the band information 2501a, the number of routers 2501b, and the Path MTU 2501c. Any one or two of these may be arbitrarily combined to determine the goodness of the line state.

본 발명은, 복수의 기기, 또는 1개의 기기로 이루어지는 장치를 포함하는 시스템에 적용될 수 있다. 또한,전술의 각실시예에서는, 주로 IPv6을 통신 프로토콜로서 이용하는 것을 상정하고 있었지만, 1개의 노드 등에 복수의 어드레스를 할당하는 것이 가능한 임의의 다른 통신 프로토콜을 이용하는 경우에도, 각 실시예에 따른 기술 사상을 적용가능하다.The present invention can be applied to a system including a plurality of devices or a device consisting of one device. In each of the above embodiments, it is assumed that IPv6 is mainly used as a communication protocol. However, even when using any other communication protocol capable of assigning a plurality of addresses to one node or the like, a technical idea according to each embodiment is given. Is applicable.

또한,본 발명은, 전술한 각 실시예 중 어느 것의 기능을 실현하는 소프트웨 어의 프로그램 코드가 저장된 기록 매체를, 시스템 혹은 장치에 공급하고, 그 시스템 혹은 장치의 컴퓨터(CPU 또는 MPU)가 기록 매체에 저장된 프로그램 코드를 읽어내서 실행하게 함으로써도 달성될 수 있음을 이해해야 한다. In addition, the present invention provides a recording medium storing a program code of software for realizing the function of any of the above embodiments to a system or an apparatus, and the computer (CPU or MPU) of the system or apparatus is a recording medium. It should be understood that this can also be accomplished by having the program code stored in the program read and executed.

이 경우, 기록 매체로부터 읽어 내어진 프로그램 코드 자체가 전술한 각 실시예 중 어느 것의 기능을 실현하므로, 그 프로그램 코드 및 해당 프로그램 코드를 기억한 기록 매체는 본 발명을 구성하게 된다.In this case, since the program code itself read out from the recording medium realizes the functions of any of the above-described embodiments, the program code and the recording medium storing the program code constitute the present invention.

또한,프로그램 코드를 공급하기 위한 기록 매체로서는, 예를 들면, 플로피(등록 상표) 디스크, 하드 디스크, 광 자기 디스크, CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVE+RW 등의 광 디스크, 자기 테이프, 불휘발성의 메모리 카드, ROM 등을 들 수 있다. 또는, 프로그램 코드를, 네트워크를 통해서 다운로드해도 된다.As a recording medium for supplying the program code, for example, a floppy disk, a hard disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, Optical discs such as DVD-RW and DVE + RW, magnetic tapes, nonvolatile memory cards, ROMs, and the like. Alternatively, the program code may be downloaded via a network.

또한,컴퓨터가 읽어낸 프로그램 코드를 실행함으로써 전술한 각 실시예 중 어느 것의 기능이 실현될 뿐만 아니라, 그 프로그램 코드의 지시에 기초하여, 컴퓨터 상에서 가동하고 있는 OS(오퍼레이팅 시스템) 등이 실제의 처리의 일부 또는 전부를 행하게 함으로써, 그 처리에 의해 전술한 각 실시예 중 어느 것의 기능이 실현될 수 있음을 이해해야 한다.In addition, by executing the program code read out by the computer, the functions of any of the above-described embodiments are realized, and the OS (operating system) or the like running on the computer is actually processed based on the instruction of the program code. It is to be understood that by performing some or all of the above, the functions of any of the above-described embodiments can be realized by the processing.

또한,기록 매체로부터 읽어 내어진 프로그램 코드가, 컴퓨터에 삽입된 확장 보드 상에 제공된 메모리나 컴퓨터에 접속된 확장 유닛에 구비되는 메모리에 기입된 후, 그 프로그램 코드의 지시에 기초하여, 확장 보드나 확장 유닛에 구비되는 CPU 등이 실제의 처리의 일부 또는 전부를 행하게 함으로써 전술한 각 실시예 중 어느 것의 기능이 실현될 수 있음을 이해해야 한다.Furthermore, after the program code read out from the recording medium is written in the memory provided on the expansion board inserted into the computer or in the memory provided in the expansion unit connected to the computer, the expansion board or It is to be understood that the functions of any of the above-described embodiments can be realized by causing the CPU or the like provided in the expansion unit to perform part or all of the actual processing.

본 발명은 예시적인 실시예들을 참조하여 설명되었지만, 본 발명은 개시된 예시적인 실시예에 한정되지 않음을 이해해야 한다. 이하의 특허청구의 범위는 모든 변경, 등가 구조 및 기능을 포함하도록 가장 포괄적으로 해석되어야 한다.While the invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all modifications, equivalent structures and functions.

본 출원은 2008년 4월 4일자로 제출된 일본 공개 특허 공보 제2008-098363호 및 2009년 1월 8일자로 제출된 일본 공개 특허 공보 제2009-002433호의 우선권을 주장하며, 이들은 전체가 본원에 참고로 포함된다.This application claims the priority of Japanese Patent Application Publication No. 2008-098363, filed April 4, 2008 and Japanese Patent Application Publication No. 2009-002433, filed January 8, 2009, which are incorporated herein in their entirety. Included for reference.

도 1은 본 발명의 제1~제3, 및 제7 실시예에 따른 세션 관리 시스템을 적용한 클라이언트/서버 시스템의 소프트웨어의 구성을 나타내는 도면.BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing the software configuration of a client / server system to which the session management system according to the first to third and seventh embodiments of the present invention is applied.

도 2는 도 1에 나타난 클라이언트 PC 또는 서버 PC의 하드웨어의 구성을 도시하는 블록도(제1~3 실시예).Fig. 2 is a block diagram showing the hardware configuration of the client PC or server PC shown in Fig. 1 (first to third embodiments).

도 3은 서버 PC의 서버 프로세스간 통신부의 상세한 소프트웨어 구성을 도시하는 블록도(제1~3 실시예).Fig. 3 is a block diagram showing the detailed software configuration of the server inter-process communication unit of the server PC (first to third embodiments).

도 4는 클라이언트 PC의 클라이언트 프로세스간 통신부의 상세한 소프트웨어 구성을 도시하는 블록도(제1~3 실시예).Fig. 4 is a block diagram showing the detailed software configuration of the communication process between the client processes of the client PC (first to third embodiments).

도 5는 세션 관리 정보의 예를 도시한 도면(제1~7(6) 실시예).5 is a diagram showing an example of session management information (Examples 1 to 7 (6)).

도 6은 제1 실시예에 있어서 서버 PC의 서버 프로세스간 통신부가 행하는 세션 관리 처리를 나타내는 플로우차트.Fig. 6 is a flowchart showing session management processing performed by a server-to-server communication unit of the server PC according to the first embodiment.

도 7은 제1 실시예에 있어서 클라이언트 PC의 클라이언트 프로세스간 통신부가 행하는 세션 관리 처리를 나타내는 플로우차트.Fig. 7 is a flowchart showing session management processing performed by a communication process between client processes of the client PC in the first embodiment.

도 8a 및 도 8b는 도 6 및 도 7의 처리의 예를 나타내는 시퀀스도(기존 세션이 존재하지 않을 경우).8A and 8B are sequence diagrams showing examples of the processing of Figs. 6 and 7 (if no existing session exists).

도 9a 및 도 9b는 도 6 및 도 7의 처리의 예를 나타내는 시퀀스도(기존 세션이 존재할 경우).9A and 9B are sequence diagrams illustrating examples of the processing of FIGS. 6 and 7 (if an existing session exists).

도 10a 및 도 10b는 본 발명의 제2 실시예에 있어서 클라이언트 PC의 클라이언트 프로세스간 통신부가 행하는 세션 관리 처리를 나타내는 플로우차트.10A and 10B are flowcharts showing session management processing performed by a communication process between client processes of a client PC in the second embodiment of the present invention.

도 11a 및 도 11b는 본 발명의 제2 실시예에 있어서 서버 PC와 클라이언트 PC 사이에서 행해지는 세션 관리 처리를 나타내는 시퀀스도.11A and 11B are sequence diagrams showing session management processing performed between a server PC and a client PC in the second embodiment of the present invention.

도 12a 및 도 12b는 본 발명의 제3 실시예에 있어서 클라이언트 PC의 클라이언트 프로세스간 통신부가 행하는 세션 관리 처리를 나타내는 플로우차트.12A and 12B are flowcharts illustrating session management processing performed by a communication process between client processes of a client PC in the third embodiment of the present invention.

도 13a 및 도 13b는 본 발명의 제3 실시예에 있어서 서버 PC와 클라이언트 PC 사이에서 행해지는 세션 관리 처리를 나타내는 시퀀스도.13A and 13B are sequence diagrams showing session management processing performed between a server PC and a client PC in the third embodiment of the present invention.

도 14는 본 발명의 제4~6의 실시예에 따른 세션 관리 시스템을 적용한 클라이언트/서버 시스템의 소프트웨어의 구성을 나타내는 도면.Fig. 14 is a diagram showing the software configuration of a client / server system to which the session management system according to the fourth to sixth embodiments of the present invention is applied.

도 15는 제4 실시예에 따른 클라이언트 PC의 클라이언트 프로세스간 통신부의 상세한 소프트웨어 구성을 도시하는 블록도.Fig. 15 is a block diagram showing the detailed software configuration of the inter-process communication unit of the client PC according to the fourth embodiment.

도 16은 제4 실시예에 따른 어드레스 리스트 정보를 나타내는 도면.Fig. 16 is a diagram showing address list information according to the fourth embodiment.

도 17은 제4 실시예에 따른 세션 관리 정보의 예를 나타내는 도면.Fig. 17 is a diagram showing an example of session management information according to the fourth embodiment.

도 18은 제4 실시예에서 행해지는 세션 관리 처리를 나타내는 플로우차트.Fig. 18 is a flowchart showing session management processing performed in the fourth embodiment.

도 19는 도 18의 단계 S1801에서 행해지는 어드레스 리스트 취득 처리의 상세를 나타내는 플로우차트.FIG. 19 is a flowchart showing details of an address list acquisition process performed in step S1801 of FIG. 18;

도 20은 제5 실시예에 따른 어드레스 리스트 취득 처리에서 행해지는 세션 관리 처리를 나타내는 플로우차트.Fig. 20 is a flowchart showing session management processing performed in the address list acquisition processing according to the fifth embodiment.

도 21은 도 20의 플로우차트의 연속.FIG. 21 is a continuation of the flowchart of FIG. 20;

도 22a 및 도 22b는 제6 실시예에서 행해지는 세션 관리 처리를 나타내는 플로우차트.22A and 22B are flowcharts illustrating session management processing performed in the sixth embodiment.

도 23은 동일한 서버가 상이한 서버 식별 정보로 지정되었을 경우의 어드레스 리스트 정보를 예시한 도면.Fig. 23 is a diagram illustrating address list information when the same server is designated with different server identification information.

도 24는 제7 실시예에 따른 클라이언트 PC의 클라이언트 프로세스간 통신부의 상세한 소프트웨어 구성을 도시하는 블록도.Fig. 24 is a block diagram showing the detailed software configuration of the inter-process communication unit of the client PC according to the seventh embodiment.

도 25는 제7 실시예에 따른 세션 관리 정보를 예시한 도면.Fig. 25 is a diagram illustrating session management information according to the seventh embodiment.

도 26a 및 도 26b는 제7 실시예에에서 행해지는 세션 관리 처리를 나타내는 플로우차트.26A and 26B are flowcharts illustrating session management processing performed in the seventh embodiment.

도 27은 도 26a의 플로우차트의 연속.FIG. 27 is a continuation of the flowchart of FIG. 26A;

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100: 클라이언트 PC100: Client PC

101, 101a:클라이언트 어플리케이션101, 101a: Client application

102, 102a: 스터브 오브젝트102, 102a: stub object

103: 클라이언트 프로세스간 통신부103: communication unit between client processes

104a, 104b: 통신 라이브러리104a, 104b: communication library

106: 네트워크106: network

107: 서버 프로세스간 통신부107: communication process between server processes

108: 서버 어플리케이션108: server application

105: 서버 PC105: server PC

Claims (8)

복수의 어드레스를 갖는 서버와 클라이언트 사이의 세션들을 관리하는 세션 관리 시스템으로서,A session management system for managing sessions between a server and a client having a plurality of addresses, 상기 클라이언트에 제공된 어플리케이션이, 상기 어플리케이션에 의해 지정된 서버의 어드레스를 통해 상기 서버와 통신하도록 요구하는 경우에, 지정된 상기 어드레스와 상이한, 서버의 다른 어드레스를 통해 세션이 상기 클라이언트와 상기 서버 사이에 이미 확립되어 있는지의 여부를 판정하도록 구성된 판정 유닛; 및If an application provided to the client requires communication with the server through the address of the server specified by the application, a session has already been established between the client and the server through a different address of the server that is different from the specified address. A judging unit, configured to judge whether a check is made; And 상기 세션이 이미 확립되어 있다고 판정된 경우에 상기 어플리케이션이 이미 확립된 세션을 이용하여 상기 서버와 통신하게 하고, 상기 세션이 확립되어 있지 않다고 판정된 경우에 상기 어플리케이션이 신규로 확립된 세션을 이용하여 상기 서버와 통신하게 하도록 구성된 제어 유닛Cause the application to communicate with the server using the already established session if it is determined that the session is already established, and if the application is determined that the session is not established, the application uses the newly established session. A control unit configured to communicate with the server 을 포함하는 세션 관리 시스템.Session management system comprising a. 제1항에 있어서,The method of claim 1, 상기 판정 유닛은 상기 서버를 식별하기 위한 식별 정보에 기초하여 상기 판정을 행하는 세션 관리 시스템.And the determination unit makes the determination based on the identification information for identifying the server. 제2항에 있어서,3. The method of claim 2, 상기 서버로부터 상기 식별 정보를 취득하도록 구성된 제1 취득 유닛을 더 포함하는 세션 관리 시스템.And a first acquiring unit, configured to acquire the identification information from the server. 제2항에 있어서, 3. The method of claim 2, DNS 서버인 외부 장치로부터 상기 식별 정보를 취득하도록 구성된 제2 취득 유닛을 더 포함하는 세션 관리 시스템.And a second obtaining unit, configured to acquire the identification information from an external device which is a DNS server. 삭제delete 제1항에 있어서,The method of claim 1, 상기 어플리케이션으로부터의 접속(connection) 요구 및 절단(disconnection) 요구에 기초하여 갱신되는 값을 관리하도록 구성된 관리 유닛을 더 포함하고,A management unit configured to manage a value that is updated based on a connection request and a disconnect request from the application, 상기 제어 유닛은 상기 관리된 값에 기초하여 상기 클라이언트와 상기 서버 사이에 확립되는 세션을 절단하는 세션 관리 시스템.And said control unit to disconnect a session established between said client and said server based on said managed value. 제1항에 있어서,The method of claim 1, 상기 제어 유닛은, 상기 세션이 이미 확립되어 있다고 판정된 경우에도, 상기 어플리케이션에 의해 지정된 어드레스를 이용하는 세션이 상기 이미 확립된 세션보다 효율적인 경우에, 상기 어플리케이션이 신규로 확립된 세션을 이용하여 상기 서버와 통신하게 하는 세션 관리 시스템.The control unit uses the session with which the application is newly established when the session using the address specified by the application is more efficient than the already established session, even when it is determined that the session is already established. Session management system for communicating with a user. 복수의 어드레스를 갖는 서버와 클라이언트 사이의 세션들을 관리하는 세션 관리 시스템을 제어하는 방법으로서,A method of controlling a session management system for managing sessions between a server and a client having a plurality of addresses, the method comprising: 상기 클라이언트에 제공된 어플리케이션이, 상기 어플리케이션에 의해 지정된 서버의 어드레스를 통해 상기 서버와 통신하도록 요구하는 경우에, 지정된 상기 어드레스와 상이한, 서버의 다른 어드레스를 통해 세션이 상기 클라이언트와 상기 서버 사이에 이미 확립되어 있는지의 여부를 판정하는 단계;If an application provided to the client requires communication with the server through the address of the server specified by the application, a session has already been established between the client and the server through a different address of the server that is different from the specified address. Determining whether the operation is completed; 상기 세션이 이미 확립되어 있다고 판정된 경우에 상기 어플리케이션이 이미 확립된 세션을 이용하여 상기 서버와 통신하게 하는 단계; 및Causing the application to communicate with the server using the already established session if it is determined that the session is already established; And 상기 세션이 확립되어 있지 않다고 판정된 경우에 상기 어플리케이션이 신규로 확립된 세션을 이용하여 상기 서버와 통신하게 하는 단계Causing the application to communicate with the server using the newly established session if it is determined that the session is not established. 를 포함하는 세션 관리 시스템의 제어 방법.Control method of the session management system comprising a.
KR1020090028993A 2008-04-04 2009-04-03 Session management system and method of controlling the same Active KR101160382B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090028993A KR101160382B1 (en) 2008-04-04 2009-04-03 Session management system and method of controlling the same

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-098363 2008-04-04
JPJP-P-2009-002433 2009-01-08
KR1020090028993A KR101160382B1 (en) 2008-04-04 2009-04-03 Session management system and method of controlling the same

Publications (2)

Publication Number Publication Date
KR20090106360A KR20090106360A (en) 2009-10-08
KR101160382B1 true KR101160382B1 (en) 2012-06-26

Family

ID=41535980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090028993A Active KR101160382B1 (en) 2008-04-04 2009-04-03 Session management system and method of controlling the same

Country Status (1)

Country Link
KR (1) KR101160382B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101442161B1 (en) * 2011-12-23 2014-11-03 주식회사 케이티 Server and method for performing session connection between applications of devices, and the devcies
JP6949578B2 (en) * 2017-06-23 2021-10-13 キヤノン株式会社 Image forming device, control method and program of image forming device
CN112486699B (en) * 2020-11-20 2023-10-24 湖南麒麟信安科技股份有限公司 Session management middleware, system and operation method based on domestic database

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062372A1 (en) * 2000-08-04 2002-05-23 Jack Hong High performance server farm with tagging and pipelining
US20060069776A1 (en) * 2004-09-15 2006-03-30 Shim Choon B System and method for load balancing a communications network
US20060221977A1 (en) * 2005-04-01 2006-10-05 International Business Machines Corporation Method and apparatus for providing a network connection table
US20070061434A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Sharing a port with multiple processes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062372A1 (en) * 2000-08-04 2002-05-23 Jack Hong High performance server farm with tagging and pipelining
US20060069776A1 (en) * 2004-09-15 2006-03-30 Shim Choon B System and method for load balancing a communications network
US20060221977A1 (en) * 2005-04-01 2006-10-05 International Business Machines Corporation Method and apparatus for providing a network connection table
US20070061434A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Sharing a port with multiple processes

Also Published As

Publication number Publication date
KR20090106360A (en) 2009-10-08

Similar Documents

Publication Publication Date Title
EP2107762B1 (en) Session management system and method of controlling the same
JP5425320B2 (en) Information processing apparatus, information processing apparatus control method, and program
Bettstetter et al. A comparison of service discovery protocols and implementation of the service location protocol
US7747779B2 (en) Information processing apparatus, information processing method, and medium storing therein program for executing the method
KR100636186B1 (en) Bidirectional tunnel establishment method and system
US20080080500A1 (en) Apparatus and a system for remote control and a method thereof
JP6040711B2 (en) Management server, virtual machine system, program, and connection method
JP5459983B2 (en) Information processing apparatus, information processing apparatus control method, and computer program
US20090193133A1 (en) Network device management apparatus, control method therefor, network system, and storage medium
RU2448422C2 (en) Information processing apparatus, device, method of controlling information processing apparatus and data storage medium
US20060212554A1 (en) Control apparatus, communication control method executed by the control apparatus, communication control program controlling the control apparatus, and data processing system
KR101160382B1 (en) Session management system and method of controlling the same
US20100332681A1 (en) Communication apparatus capable of selecting a proper source address from a plurality of source addresses assigned thereto, method of controlling the same, and storage medium
JP5473248B2 (en) Information processing apparatus, information processing apparatus control method, and computer program
CN110278558B (en) Message interaction method and WLAN system
JP5638063B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, PROGRAM
US8886701B1 (en) Network based software agent to allow dynamic resource access
Cisco Configuring the TN3270 Server
CN116931846A (en) Method for finding and using local network printer by cloud desktop and storage medium
Cisco Configuring IBM Channel Attach
Cisco Configuring IBM Channel Attach
US20070058527A1 (en) Peripheral setting apparatus and method
JP2000022708A (en) Mobile terminal for mobile ip system and storage medium
JP2004038550A (en) Network device and control method thereof
JP4262016B2 (en) Data processing apparatus, information processing apparatus, data processing method, information processing method, and program

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20090403

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20101029

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20120326

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20120620

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20120620

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20150527

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20160525

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20160525

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20170526

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20170526

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20180525

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20190619

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20190619

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20210525

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20240527

Start annual number: 13

End annual number: 13