Sign In to Follow Application
View All Documents & Correspondence

Process Distributing Device, Process Distributing Program, And Data Processing System

Abstract: This load balancing device (200) stores an association table file in which respective identifiers of server devices (300) each storing content data to be used in data processing are associated with processing commands each designating data processing. The load balancing device receives a processing request packet from a client device (110) and selects from the association table file the identifier of a server device associated with the same processing command as the processing command included in the processing request packet. Then the load balancing device transmits a distribution packet including the processing command to the server device identified by the identifier selected from the association table file.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
13 March 2017
Publication Number
14/2017
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

MITSUBISHI ELECTRIC CORPORATION
7-3, Marunouchi 2-chome, Chiyoda-ku, Tokyo 100 83 10, Japan

Inventors

1. KANASHIRO, Akira
c/o Mitsubishi Electric Corporation, 7-3, Marunouchi 2-chome, Chiyoda-ku, Tokyo 100- 83 10. Japan

Specification

Title of Invention:
PROCESSING ALLOCATION DEVICE, PROCESSING ALLOCATION PROGRAM, 5 AND DATA PROCESSING SYSTEM
Technical Field
[0001] The present invention relates to a technique for allocating data processing to a
plurality of server devices. Background Art
[0002] There exists a three-layered Web server system having a client device, a Web
server device, and a database server device. In the three-layered Web server system,
the Web server device is also called a front-end server. The database server device is
also called a back-end server. 15 [0003] Patent Literature 1 and Non-Patent Literature 1 disclose techniques for
distributing the loads of a plurality of front-end servers by providing a load balancer in a
Web server system.
The load balancer allocates a plurality of pieces of data processing to the
plurality of front-end servers, such that the loads are distributed equally to each 20 front-end server.
However, although the load balancer can distribute the loads of a plurality of
front-end servers, the load balancer cannot distribute the loads of a plurality of back-end
servers. Therefore, the load balancer cannot sufficiently distribute the loads
throughout the system. 25 [0004] Non-Patent Literature 2 discloses a distributed storage technique for

distributing the loads of a plurality of storage devices.
According to the distributed storage technique, a storage area for distributed storage is secured in each of the plurality of storage devices, and the respective storage areas for distributed storage are aggregated to create a virtual storage device, and a plurality of pieces of data are each stored in multiple places in the virtual storage device.
If the distributed storage technique is applied to a Web server system, there is a possibility that data processing may be allocated to a back-end server that does not store the target data. In this case, the back-end server to which the data processing is allocated needs to communicate with a back-end server that stores the target data in order to access the target data. Then, this communication processing imposes an overhead causing a delay in the data processing, thereby reducing the throughput of the system. Citation List Patent Literature
[0005] Patent Literature 1: JP 2003-196178 A Non-Patent Literature
[0006] Non-Patent Literature 1: Wensong Zhang, "Linux Virtual Server for Scalable Network Services", Ottawa Linux Symposium 2000.
Non-Patent Literature 2: Vijay Bellur, "GlusterFS-Architecture & Roadmap", [online], [retrieved August 4, 2014], Internet (URL: http://www.giuster.org/community/ documentation/images/8/80/GlusterFS_Architecture_%26_Roadmap~Vijay_BeIlur-Linu xCon_EU_2013.pdf) Summary of Invention Technical Problem [0007] It is an object of the present invention to allow data processing to be allocated
distributing the loads of a plurality of storage devices.
According to the distributed storage technique, a storage area for distributed storage is secured in each of the plurality of storage devices, and the respective storage areas for distributed storage are aggregated to create a virtual storage device, and a plurality of pieces of data are each stored in multiple places in the virtual storage device.
If the distributed storage technique is applied to a Web server system, there is a possibility that data processing may be allocated to a back-end server that does not store the target data. In this case, the back-end server to which the data processing is allocated needs to communicate with a back-end server that stores the target data in order to access the target data. Then, this communication processing imposes an overhead causing a delay in the data processing, thereby reducing the throughput of the system. Citation List Patent Literature
[0005] Patent Literature 1: JP 2003-196178 A Non-Patent Literature
[0006] Non-Patent Literature 1: Wensong Zhang, "Linux Virtual Server for Scalable Network Services", Ottawa Linux Symposium 2000.
Non-Patent Literature 2: Vijay Bellur, "GlusterFS-Architecture & Roadmap", [online], [retrieved August 4, 2014], Internet (URL: http://www.giuster.org/community/ documentation/images/8/80/GlusterFS_Architecture_%26_Roadmap~Vijay_BeIlur-Linu xCon_EU_2013.pdf) Summary of Invention Technical Problem [0007] It is an object of the present invention to allow data processing to be allocated

to a server device that stores content data used in the data processing. Solution to Problem
[0008] Aprocessing allocation device according to the present invention includes:
an association table file storage section to store an association table file that associates a processing instruction specifying data processing with a server identifier of a server device that stores content data used in the data processing;
a processing instruction accepting section to accept a first processing instruction specifying first data processing which uses first content data;
an association table managing section to select, from the association table file, a server identifier associated with a same processing instruction as the first processing instruction accepted by the processing instruction accepting section; and
a processing allocating section to make a request to execute the first data processing to a server device identified by the server identifier selected by the association table managing section. Advantageous Effects of Invention
[0009] According to the present invention, data processing can be allocated to a server device that stores content data used in the data processing. Brief Description of Drawings
[0010] Fig. 1 is a schematic diagram of a load distribution system 100 in a first embodiment;
Fig. 2 is a functional configuration diagram of a load distribution device 200 in the first embodiment;
Fig. 3 is a functional configuration diagram of a server device 300 in the first embodiment;
Fig. 4 is a flowchart illustrating the operation of the load distribution device

200 in the first embodiment;
Fig. 5 is a diagram illustrating an example of an association table file 291 in the first embodiment;
Fig. 6 is a diagram illustrating an example of a server list file 292 in the first embodiment;
Fig. 7 is a flowchart illustrating the operation of the server device 300 in the first embodiment;
Fig. 8 is a flowchart illustrating the operation of the server device 300 in the first embodiment;
Fig. 9 is a diagram illustrating an example of a data location file 391 in the first embodiment;
Fig. 10 is a hardware configuration diagram of the load distribution device 200 in the first embodiment;
Fig. 11 is a configuration diagram of a client server system 101 in a second embodiment; and
Fig. 12 is a functional configuration diagram of a client device 110 in the second embodiment. Description of Embodiments [0011] First Embodiment
An embodiment according to which data processing is allocated to a server device that stores content data used in the data processing will be described. [0012] Fig. 1 is a schematic diagram of a load distribution system 100 in a first embodiment.
With reference to Fig. 1, an outline of the load distribution system 100 in the first embodiment will be described.

The load distribution system 100 (an example of a data processing system) is a system to distribute a plurality of processing requests generated from one or more client devices 110 to a plurality of server devices (300Ato 300D). [0013] The load distribution system 100 has one or more client devices 110, the plurality of server devices (300Ato 300D), and a load distribution device 200 (an example of a processing allocation device). These devices communicate through a network 109.
If no distinction is made among the server devices, each server device will be described as a server device 300.
[0014] The client device 110 is a computer to request execution of data processing. Data used in data processing will hereinafter be referred to as content data. [0015] The plurality of the server devices (300Ato 300D) are computers to execute data processing.
A storage device provided in each server device (a server storage section 390 of Fig. 3 to be described later) constitutes a distributed storage (a distributed storage area 399 of Fig. 3 to be described later) to store a plurality of distributed pieces of content data.
The plurality of pieces of content data are distributed to and stored in the plurality of server devices. Each piece of content data is stored in two or more of the server devices, thereby being stored in multiple places.
With reference to Fig. 1, content data A3 81 and content data B382 are both stored in the server device 300A and the server device 300C, thereby being stored in multiple places. Content data C383 and content data D384 are both stored in the server device 300B and the server device 300D, thereby being stored in multiple places. [0016] The load distribution device 200 is a computer to distribute a plurality of

processing requests to request execution of data processing to the plurality of server devices. The load distribution device 200 is also called a load balancer.
The load distribution device 200 receives a processing request from the client device 110, allocates the processing request to one of the server devices 3 00, receives a processing result from this server device 300, and returns the processing result to the client device 110.
[0017] With reference to (1) to (5) of Fig. 1, an example of the operation of the load distribution system 100 will be described.
(1) The client device 11.0 requests execution of data processing C which uses the content data C383.
(2) The load distribution device 200 allocates a processing request to request execution of the data processing C to one of the server devices. In this case, since the content data C383 used in the data processing C is stored in the server device 300B and the server device 300D, an appropriate server device as an allocation destination of the processing request is the server device 300B or the server device 300D.
If the load distribution device 200 knows the appropriate server device, the load distribution device 200 allocates the processing request for the data processing C to the server device 300B or the server device 300D.
If the load distribution device 200 does not know the appropriate server device, the load distribution device 200 allocates the processing request for the data processing C to a server device with a light load. The server device with a light load can be identified by an existing load distribution technique.
It is assumed here that the load distribution device 200 does not know the appropriate server device and allocates the processing request for the data processing C to the server device 300A.

(3) Based on a data location file 391 (see Fig. 3) to be described later, the server device 300A selects the server device 300B (or the server device 300D) that stores the content data C383. Then, the server device 300A communicates with the server device 300B (or the server device 300D) to access the content data C383 and executes the data processing C.
(4) The server device 300A returns an execution result and access information of the data processing C to the load distribution device 200. The access information is information indicating that the appropriate server device as the allocation destination of the processing request for the data processing C is the server device 300B (or the server device 300D).
(5) The load distribution device 200 stores the access information of the data processing C, and returns the execution result of the data processing C to the client device 110.
[0018] In (5) above, the access information of the data processing C is stored in the load distribution device 200. Therefore, the load distribution device 200 can allocate a subsequent processing request for the data processing C to the server device 300B (or the server device 300D).
If the processing request for the data processing C is allocated to the server device 300B, it is not necessary for the server device 300A to communicate with the server device 300B as described in (3) above. Therefore, a processing delay involved in communication between the server devices does not occur, thereby improving the throughput of the system.
[0019] Fig. 2 is a functional configuration diagram of the load distribution device 200 in the first embodiment.
With reference to Fig. 2, the functional configuration of the load distribution

device 200 in the first embodiment will be described. However, the functional configuration of the load distribution device 200 is not required to be identical to the functional configuration illustrated in Fig. 2.
[0020] The load distribution device 200 has a request accepting section 210 (an example of a processing instruction accepting section), an association table managing section 220, a request allocating section 230 (an example of a processing allocating section), and a load distribution storage section 290 (an example of an association table file storage section).
[0021] The load distribution storage section 290 stores data which is used, generated, or input and output by the load distribution device 200. For example, the load distribution storage section 290 stores an association table file 291, a server list file 292, and the like.
The association table file 291 associates a processing instruction specifying data processing with an identifier of the server device 300 that stores content data used in the data processing. An example of the association table file 291 will be described later (see Fig. 5).
The server list file 292 associates an identifier of the server device 300 with information such as an IP address. An example of the server list file 292 will be described later (see Fig. 6).
[0022] The request accepting section 210 receives a processing request packet including a processing instruction specifying data processing from the client device 110, and transmits a processing response packet including execution result data which indicates an execution result of the data processing to the client device 110.
The processing request packet is a packet to request execution of the data processing, and the processing response packet is a packet to return the execution result

of the data processing.
[0023] The association table managing section 220 has an association table referring section 221 (an example of an associated server selecting section) and an association table editing section 222 (an example of an associated server registering section), and manages the association table file 291,
The association table referring section 221 selects, from the association table file 291, an identifier of the server device 300 associated with the same processing instruction as the processing instruction included in the processing request packet.
The association table editing section 222 associates the processing instruction included in the processing request packet with access information data to be described later, and registers them in the association table file 291.
[0024] The request allocating section 230 transmits an allocation packet including the processing instruction to the server device 300 identified by the identifier selected by the association table referring section 221, Then, the request allocating section 230 receives an execution result packet including the execution result of the data processing from this server device 300.
The allocation packet is a packet to request execution of the data processing, and the execution result packet is a packet to return the execution result of the data processing.
[0025] Fig. 3 is a functional configuration diagram of the server device 300 in the first embodiment.
With reference to Fig. 3, the functional configuration of the server device 300 in the first embodiment will be described. However, the functional configuration of the server device 300 is not required to be identical to the functional configuration illustrated in Fig. 3.

[0026] The server device 300 has a WEB server section 301, a DB server section 320, a distributed storage managing section 330 (an example of an access requesting section), an access information generating section 340, and a server storage section 390 (an example of a content data storage section and a data location file storage section). The WEB server section 301 has a WEB application section 310. [0027] The server storage section 390 stores data which is used, generated, or input and output by the server device 300.
For example, the server storage section 390 stores the data location file 391, a server list file 392, a content data group 380, and the like.
The data location file 391 associates an identifier of content data with an identifier of the server device 300 that stores this content data. An example of the data location file 391 will be described later (see Fig. 9).
The server list file 392 associates an identifier of the server device 300 with information such as an IP address. The server list file 392 is a file which is substantially the same as the server list file 292 of the load distribution device 200 (see Fig. 2).
The content data group 380 consists of one or more pieces of content data. The content data group 380 is stored in a storage area secured for distributed storage. The storage area secured for distributed storage will hereinafter be referred to as the distributed storage area 399.
[0028] The WEB server section 301 executes a WEB server program for causing the server device 300 to function as a WEB server.
The WEB application section 310 has an execution, request accepting section 311, a processing executing section 312, and an execution result returning section 313.
The execution request accepting section 311 receives an allocation packet from

the load distribution device 200.
The processing executing section 312 executes the data processing specified by a processing instruction included in the allocation packet.
The execution result returning section 313 transmits, to the load distribution device 200, an execution result packet including execution result data which indicates an execution result of the data processing and access information data which is generated by the access information generating section 340.
[0029] The DB server section 320 executes a DB server program for causing the server device 300 to function as a database server (DB server).
The distributed storage managing section 330 accesses content data stored in the distributed storage area 399.
If the content data to be accessed is not stored in the distributed storage area 399, the distributed storage managing section 330 selects, from the data location file 391, an identifier of the server device 300 associated with an identifier of this content data. Then, the distributed storage managing section 330 makes a request for access to this content data to the server device 300 identified by the selected identifier.
If access to content data is requested from another server device 300, the distributed storage managing section 330 accesses the content data stored in the distributed storage area 399.
[0030] The access information generating section 340 generates access information data including the identifier of the server device 300 that stores the content data that has been used in the data processing.
[0031] Fig. 4 is a flowchart illustrating the operation of the load distribution device 200 in the first embodiment.
With reference to Fig. 4, the operation of the load distribution device 200 in the

first embodiment will be described. However, the operation of the load distribution device 200 is not required to be identical to the operation described with reference to Fig. 4.
[0032] In SI 10, the client device 110 transmits a processing request packet to request execution of data processing to the load distribution device 200.
Then, the request accepting section 210 of the load distribution device 200 receives the processing request packet. The processing request packet includes a processing instruction specifying the data processing.
[0033] For example, a GET method of an HTTP request is an example of the processing instruction, and an IP packet including the HTTP request is an example of the processing request packet. HTTP is an abbreviation for HyperText Transfer Protocol. IP is an abbreviation for Internet Protocol.
After SI 10, processing proceeds to SI20. [0034] In SI20, the association table referring section 221 determines whether a server identifier associated with the same processing instruction as the processing instruction included in the processing request packet is registered in the association table file .291.
An applicable server identifier will be referred to as an associated server identifier, and the server device 300 identified by the associated server identifier will be referred to as an associated server.
[0035] For example, it is assumed that the processing instruction included in the processing request packet is an HTTP request described as "GET/aaa HTTP/1.1". In this case, two associated server identifiers (a server A and a server C) are registered in the association table file 291 (see Fig. 5).
Alternatively, it is assumed that the processing instruction included in the processing request packet is an HTTP request described as "GET /ccc HTTP/1,1". In

this case, no associated server identifier is registered in the association table file 291 (see Fig. 5).
If the associated server identifier is registered in the association table file 291 (YES), processing proceeds to S121.
If no associated server identifier is registered in the association table file 291 (NO), processing proceeds to S122.
[0036] Fig. 5 is a diagram illustrating an example of the association table file 291 in the first embodiment.
With reference to Fig. 5, an example of the association table file 291 in the first embodiment will be described.
The association table file 291 associates a Request column with an Access Data column, an Access Server column, and an Associated Server column.
The Request column indicates a processing instruction.
The Access Data column indicates an identifier of content accessed in the data processing specified by the processing instruction.
The Access Server column indicates an identifier of an associated server, of one or more associated servers, which has accessed the access data in the previous data processing.
The Associated Server column indicates an individual identifier of each of one or more associated servers.
[0037] In S121 (see Fig. 4), the request allocating section 230 selects one associated server identifier from one or more associated server identifiers. At this time, the request allocating section 230 may preferably select an identifier of the server device 300 with a light load from one or more associated server identifiers. The server device 300 with a light load can be identified by the existing load distribution technique.

The selected associated server identifier will be referred to as an allocation destination identifier, and the server device 300 identified by the allocation destination identifier will be referred to as an allocation destination server.
After S121, processing proceeds to S130. [0038] In S122, the request allocating section 230 selects one server identifier from a plurality of server identifiers registered in the server list file 292 (see Fig. 6). At this time, the request allocating section 230 may preferably select an identifier of the server device 300 with a light load from a plurality of server identifiers. The server device 300 with a light load can be identified by the existing load distribution technique.
The selected server identifier will be referred to as an allocation destination identifier, and the server device 300 identified by the allocation destination identifier will be referred to as an allocation destination server.
After S122, processing proceeds to S130. [0039] Fig. 6 is a diagram illustrating an example of the server list file 292 in the first embodiment.
With reference to Fig. 6, an example of the server list file 292 in the first embodiment will be described.
The server list file 292 associates a Server column with a column of information such as IP Address.
The Server column indicates an identifier of the server device 300 included in the load distribution system 100.
The IP Address column indicates an IP address of the server device 300. [0040] In SI 30 (see Fig. 4), the request allocating section 230 selects, from the server list file 292 (see Fig. 6), an IP address associated with the same server identifier as the allocation destination identifier selected in S121 or SI22.

Using the selected IP address as a transmission destination address, the request allocating section 230 generates a packet destined to the allocation destination server. This packet will be referred to as an allocation packet.
The allocation packet is.a packet to request the allocation destination server to execute the data processing. The allocation packet includes the processing instruction included in the processing request packet.
[0041] The request allocating section 230 transmits the allocation packet to the allocation destination server.
After S130, processing proceeds to S131. [0042] In S131, the request allocating section 230 receives an execution result packet including execution result data and access information data from the allocation destination server,
The execution result data indicates an execution result of the data processing.
The access information data includes an access data identifier, an access server identifier, and an associated server identifier group.
The access data identifier indicates an identifier of the content, data that has been accessed.
The access server identifier indicates an identifier of the server device 300 that has accessed the content data.
The associated server identifier group consists of one or more associated server identifiers. Each associated server identifier is an individual identifier of each of one or more server devices 300 that store the same content data as the content data that has been accessed.
After S131, processing proceeds to S140. [0043] In S140, the association table editing section 222 edits the association table file

291 as described below using the processing instruction included in the processing request packet and the access information data (the access data identifier, the access server identifier, and the associated server identifier group) included in the execution result packet.
If an applicable record including, in the Request column, the same processing instruction as the processing instruction included in the processing request packet is registered in the association table file 291 (see Fig. 5), the association table editing section 222 updates the applicable record based on the access information data. That is, the association table editing section 222 updates the Access Data column of the applicable record with the access data identifier, updates the Access Server column of the applicable record with the access server identifier, and updates the Associated Server column of the applicable record with the associated server identifier group.
If no applicable record including, in the Request column, the same processing instruction as the processing instruction included in the processing request packet is registered in the association table file 291 (see Fig. 5), the association table editing section 222 generates a new record using the processing instruction and the access information data. That is, the association table editing section 222 generates a new record including the processing instruction in the Request column, including the access data identifier in the Access Data column, including the access server identifier in the Access Server column, and including the associated server identifier group in the Associated Server column. Then, the association table editing section 222 registers the new record in the association table file 291.
After S140, processing proceeds to S150. [0044] In S150, the request accepting section 210 generates a processing response packet to return the execution result of the data processing, and transmits the processing

response packet to the client device 110 from which the processing request packet has been transmitted. The processing response packet includes the execution result data included in the execution result packet.
After S150, the operation of the load distribution device 200 with regard to one processing request packet ends.
[0045] Fig. 7 and Fig. 8 are flowcharts illustrating the operation of the server device 300 in the first embodiment.
With reference to Fig. 7 and Fig. 8, the operation of the server device 300 in the first embodiment will be described. However, the operation of the server device 300 is not required to be identical to the operation described with reference to Fig. 7 and Fig. 8.
[0046] hi S210, the execution request accepting section 311 receives an allocation packet including a processing instruction.
After S210, processing proceeds to S220. [0047] In S220, the processing executing section 312 starts execution of a processing logic, based on the processing instruction included in the allocation packet.
The processing logic is a program which is also called a module, a routine, a function, or the like, and indicates a procedure for data processing. For example, the processing logic includes a procedure for generating a query for accessing content data. [0048] For example, if the processing instruction is "GET/aaa HTTP/1.1", the processing executing section 312 selects a processing logic for the GET method from among a plurality of processing logics, and starts execution of the processing logic using "aaa" as a parameter.
After S220, processing proceeds to S230. [0049] In S230, the processing executing section 312 generates a query for accessing

content data in accordance with the processing logic, and transfers the query to the DB server section 320.
After S230, processing proceeds to S231. [0050] In S231, the DB server section 320 receives the query, generates an access instruction for accessing the content data specified in the query, and transfers the access instruction to the distributed storage managing section 330.
After S231, processing proceeds to S232. [0051] In S232, the distributed storage managing section 330 receives the access instruction, and determines whether the content data specified in the access instruction is stored in the distributed storage area 399. The content data specified in the access instruction will be referred to as applicable content.
If the applicable content is stored in the distributed storage area 399 (YES), processing proceeds to S233.
If the applicable content is not stored in the distributed storage area 399 (NO), processing proceeds to S235 (see Fig. 8).
[0052] In S233, the distributed storage managing section 330 accesses the applicable content stored in the distributed storage area 399 in accordance with the access instruction.
For example, the distributed storage managing section 330 reads the applicable content from the distributed storage area 399.
[0053] The distributed storage managing section 330 transfers an execution result of the access instruction to the DB server section 320. For example, the execution result of the access instruction includes the applicable content that has been read from the distributed storage area 399. [0054] The DB server section 320 receives the execution result of the access

instruction, generates an execution result of the query using the execution result of the access instruction, and transfers the execution result of the query to the processing executing section 312. For example, the execution result of the query includes the applicable content that has been read from the distributed storage area 399.
After S233, processing proceeds to S234. [0055] In S234, the distributed storage managing section 330 selects, from the data location file 391 (see Fig. 9), a server identifier group associated with the identifier of the same content data as the applicable content. For example, if the applicable content is content A, the distributed storage managing section 330 selects two server identifiers (the server A and the server C) from the data location file 391 (see Fig. 9).
Then, the distributed storage managing section 330 transfers the server identifier group and the identifier of the applicable content to the access information generating section 340.
[0056] The access information generating section 340 receives the server identifier group and the identifier of the applicable content, generates access information data, and transfers the access information data to the execution result returning section 313.
The access information data includes the identifier of the applicable content as the access data identifier, includes the identifier of the allocation destination server as the access server identifier, and includes the received server identifier group as the associated server identifier group.
After S234, processing proceeds to S240. [0057] Fig. 9 is a diagram illustrating an example of the data location file 391 in the first embodiment.
With reference to Fig. 9, an example of the data location file 391 in the first embodiment will be described.

The data location file 391 associates a Server column with a column of information such as Content.
The Server indicates an individual identifier of each of one or more server devices 300.
The Content indicates an individual identifier of each of one or more pieces of content data stored in the server device 300.
'0058] In S240 (see Fig. 7), the processing executing section 312 receives the execution result of the query from the DB server section 320.
Based on the execution result of the query, the processing executing section 312 executes the data processing. For example, the processing executing section 312 generates a WKB page using the applicable content included in the execution result of ;he query.
Then, the processing executing section 312 ends the execution of the data processing, and generates execution result data indicating an execution result of the data processing. For example, the processing executing section 312 generates execution result data including the WEB page generated by the data processing.
After S240, processing proceeds to S250. ^0059] hi S250, the execution result returning section 313 receives the access nformation data from the access information generating section 340.
Then, the execution result returning section 313 generates an execution result packet including the execution result data and the access information data, and transmits ;he execution result packet to the load distribution device 200.
After S250, the operation of the server device 300 with regard to one allocation packet ends. '0060] In S235 (see Fig. 8), the distributed storage managing section 330 selects, from

the data location file 391 (see Fig. 9), a server identifier group associated with the identifier of the same content data as the applicable content specified in the access instruction.
Then, the distributed storage managing section 330 selects one server identifier from the server identifier group. At this time, the distributed storage managing section 330 may preferably select an identifier of the server device 300 with a light load. The server device 300 with a light load can be identified by the existing load distribution technique.
The selected server identifier will be referred to as an associated server identifier, and the server device 300 identified by the associated server identifier will be referred to as an associated server.
After S235, processing proceeds to S236. [0061] In S236, the distributed storage managing section 330 selects, from the server list file 392, an IP address associated with the same server identifier as the associated server identifier. The server list file 392 is a file which is substantially the same as the server list file 292 described with reference to Fig. 6.
Using the selected IP address as a transmission destination address, the distributed storage managing section 330 generates a packet destined to the associated server. This packet will be referred to as an access request packet.
The access request packet is a packet to request the associated server to execute the access instruction. The access request packet includes the access instruction. [0062] The distributed storage managing section 330 transmits the access request packet to the associated server.
After S236, processing proceeds to S237. [0063] In S237, the distributed storage managing section 330 of the associated server

receives the access request packet.
In accordance with the access instruction included in the access request packet, the distributed storage managing section 330 of the associated server accesses the applicable content stored in the distributed storage area 399 of the associated server.
Then, the distributed storage managing section 330 of the associated server generates an access response packet including an execution result of the access instruction, and transmits the access response packet to the server device 300 from which the access request packet has been transmitted.
After S237, processing proceeds to S238. [0064] In S238, the distributed storage managing section 330 of the allocation destination server receives the access response packet.
In the allocation destination server, the distributed storage managing section 330 transfers the execution result of the access instruction included in the access response packet to the DB server section 320.
The DB server section 320 receives the execution result of the access instruction, generates an execution result of the query using the execution result of the access instruction, and transfers the execution result of the query to the processing executing section 312 (substantially the same as S233).
After S238, processing proceeds to S239. [0065] In S239, the distributed storage managing section 330 of the allocation destination server transfers the identifier of the applicable content, the server identifier group selected from the data location file 391, and the associated server identifier selected from the server identifier group to the access information generating section 340.
The access information generating section 340 receives the identifier of the

applicable content, the server identifier group, and the associated server identifier, generates access information data, and transfers the access information data to the execution result returning section 313 (substantially the same as S234).
The access information data includes the identifier of the applicable content as the access data identifier, includes the server identifier group as the associated server identifier group, and includes the associated server identifier as the access server identifier.
After S239, processing proceeds to S240 (see Fig. 7). The processing in S240 and thereafter is as described with reference to Fig. 7.
[0066] Fig. 10 is a hardware configuration diagram of the load distribution device 200 in the first embodiment.
With reference to Fig. 10, the hardware configuration of the load distribution device 200 in the first embodiment will be described. However, the hardware configuration of the load distribution device 200 is not required to be identical to the hardware configuration illustrated in Fig. 10.
[0067] The load distribution device 200 is a computer that has an arithmetic device 901, an auxiliary storage device 902, a main storage device 903, a communication device 904, and an input/output device 905.
The arithmetic device 901, the auxiliary storage device 902, the main storage device 903, the communication device 904, and the input/output device 905 are connected to a bus 909.
[0068] The arithmetic device 901 is a CPU (Central Processing Unit) to execute programs.
The auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.

The main storage device 903 is, for example, a RAM (Random Access Memory).
The communication device 904 communicates in a wired or wireless manner through the Internet, a LAN (Local Area Network), a telephone network, or other types of network.
The input/output device 905 is, for example, a mouse, a keyboard, and a display device. [0069] The programs are stored in the auxiliary storage device 902.
For example, an operating system (OS) is stored in the auxiliary storage device 902. Programs for realizing the functions each described as a "section" are also stored in the auxiliary storage device 902.
The programs are stored in the auxiliary storage device 902, and are loaded into the main storage device 903 to be executed by the arithmetic device 901. [0070] Information, data, files, signal values, or variable values indicating results of processing such as "assess", "determine", "extract", "detect", "set", "register", "select", "generate", "input", and "output" are stored in the main storage device 903 or the auxiliary storage device 902.
[0071] The client device 110 and the server device 300 each have substantially the same hardware configuration as that of the load distribution device 200. [0072] Effects as described below, for example, are provided by the first embodiment.
The load distribution device 200 has the association table file 291, so that the load distribution device 200 can allocate a processing request for data processing to the appropriate server device 300. That is, the load distribution device 200 can allocate the processing request for the data processing to the server device 300 that stores the content data (applicable content) used in the data processing.

If the server device 300 being the allocation destination of the processing request stores the applicable content, it is not necessary for the server device 300 being the allocation destination of the processing request to communicate with another server device 300 to access the applicable content. Therefore, a processing delay involved in communication between the server devices does not occur, thereby improving the throughput of the system.
[0073] The first embodiment is an example of an embodiment of the load distribution system 100.
That is, the load distribution system 100 may be without some of the components described in the first embodiment. The load distribution system 100 may also have a component not. described in the first embodiment. [0074] Second Embodiment
An embodiment of a client server system not having the load distribution device 200 will be described.
Differences from the first embodiment will be mainly described hereinafter. Matters for which description is omitted are substantially the same as those in the first embodiment.
[0075] Fig. 11 is a configuration diagram of a client server system 101 in a second embodiment.
With reference to Fig. II, the client server system 101 (an example of the data processing system) has one or more client devices 110 and a plurality of server devices 300.
[0076] Fig. 12 is a functional configuration diagram of the client device 110 in the second embodiment.
With reference to Fig. 12, the client device 110 has a request accepting section

210, an association table managing section 220, and a request allocating section 230, similarly to the load distribution device 200 (see Fig. 2).
The client device 110 has a client storage section 119 (an example of the association table file storage section) to store an association table file 291, a server list file 292, and the like.
[0077] The operation of the client device 110 in the second embodiment is substantially the same as the operation of the load distribution device 200 in the first embodiment (see Fig. 4).
However, in SI 10, the request accepting section 210 accepts a processing instruction which is input by a user to the client device 110, instead of receiving a processing request packet.
In S150, the request accepting section 210 displays execution result data on a screen, instead of transmitting a processing response packet.
[0078] In the second embodiment, the client device 110 can provide substantially the same effects as those provided by the load distribution device 200 in the first embodiment. That is, the client device 110 can allocate a processing request for data processing to the server device 300 that stores the content data used in the data processing.
[0079] The second embodiment is an example of an embodiment of the client server system 101.
That is, the client server system 101 maybe without some of the components described in the second embodiment. The client server system 101 may also have a component not described in the second embodiment.
[0080] The processing procedures described using the flowcharts or the like in each embodiment are examples of a processing procedure of a method and a program

according to each embodiment. The method and the program according to each embodiment may be implemented by a processing procedure partially different from the processing procedures described in each embodiment.
[0081 ] In each embodiment, a "section" may be interpreted as a "process", a "step", a "program", a "device", and the like. Reference Signs List
[0082] 100: load distribution system, 101: client server system, 109: network, 110: client device, 119: client storage section, 200: load distribution device, 210: request accepting section, 220: association table managing section, 221: association table referring section, 222: association table editing section, 230: request allocating section, 290: load distribution storage section, 291: association table file, 292: server list file, 300: server device, 301: WEB server section, 310: WEB application section, 311: execution request accepting section, 312: processing executing section, 313: execution result returning section, 320: DB server section, 330: distributed storage managing section, 340: access information generating section, 380: content data group, 381: content data A, 382: content data B, 383: content data C, 384: content data D, 390: server storage section, 391: data location file, 392: server list file, 399: distributed storage area, 901: arithmetic device, 902: auxiliary storage device, 903: main storage device, 904: communication device, 905: input/output device, 909: bus

[Claim 1] A processing allocation device comprising:
an association table file storage section to store an association table file that associates a processing instruction specifying data processing with a server identifier of a server device that stores content data used in the data processing;
a processing instruction accepting section to accept a first processing instruction specifying first data processing which uses first content data;
an association table managing section to select, from the association table file, a server identifier associated with a same processing instruction as the first processing instruction accepted by the processing instruction accepting section; and
a processing allocating section to make a request to execute the first data processing to a server device identified by the server identifier selected by the association table managing section.
[Claim 2] The processing allocation device according to claim 1,
wherein if no server identifier associated with the same processing instruction as the first processing instruction is included in the association table file and therefore no server identifier is selected by the association table managing section, the processing allocating section makes the request to execute the first data processing to one of a plurality of server devices.
[Claim 3] The processing allocation device according to claim 1 or claim 2,
wherein the processing allocating section accepts an execution result of the first data processing and a server identifier of a server device that stores the first contentdata from the server device to which the request for the first data processing has been made, and wherein the association table managing section associates the first processing instruction with the server identifier accepted by the processing allocating section, and registers the first processing instruction and the server identifier in the association table file.
[Claim 4] The processing allocation device according to claim 3, wherein if a plurality of server identifiers are accepted by the processing allocating section, the association table managing section associates the first processing instruction with the plurality of server identifiers and registers the first processing instruction and the plurality of server identifiers in the association table file.
[Claim 5] The processing allocation device according to any one of claim 1 to claim 4,
wherein if there are a plurality of server identifiers associated with the same processing instruction as the first processing instruction and therefore the plurality of server identifiers are selected by the association table managing section, the processing allocating section makes the request to execute the first data processing to a server device identified by one of the plurality of server identifiers.
[Claim 6] A processing allocation program using an association table file,
the association table file being a file that associates a processing instruction
specifying data processing with a server identifier of a server device that stores content
data used in the data processing,
the processing allocation program causing a computer to execute: a processing instruction accepting process to accept a first processing instruction specifying first data processing which uses first content data; an associated server selecting process to select, from the association table file, a server identifier associated with a same processing instruction as the first processing instruction accepted by the processing instruction accepting process; and
a processing allocating process to make a request to execute the first data processing to a server device identified by the server identifier selected by the associated server selecting process.
[Claim 7] A data processing system comprising a processing allocation device and a plurality of server devices,the processing allocation device including:
an association table file storage section to store an association table file that associates a processing instruction specifying data processing with a server identifier of a server device that stores content data used in the data processing;
a processing instruction.accepting section to accept a first processing instruction specifying first data processing which uses first content data;
a processing allocating section to, if no server identifier associated with a same processing instruction as the first processing instruction accepted by the processing instruction accepting section is included in the association table file, make a request to execute the first data processing to one of the plurality of server devices, and accept an execution result of the first data processing and a server identifier of a server device that stores the first content data from the server device to which the request has been made; and
an associated server registering section to associate the first processing

instruction with the server identifier accepted by the processing allocating section and register the first processing instruction and the server identifier in the association table file,
each of the plurality of server devices including:
a content data storage section to store content data;
a data location file storage section to store a data location file that associates a data identifier to identify content data with a server identifier of a server device that stores the content data;
a processing executing section to execute the first data processing requested by the processing allocation device;
an access requesting section to, if the first content data is not stored in the content data storage section, select a server identifier associated with a data identifier of the first content data from the data location file, and make a request for access to the first content data to a server device identified by the selected server identifier; and
an execution result returning section to return, to the processing allocation device, an execution result of the first data processing executed by the processing executing section and the server identifier selected by the access requesting section.

Documents

Application Documents

# Name Date
1 Translated Copy of Priority Document [13-03-2017(online)].pdf 2017-03-13
2 PROOF OF RIGHT [13-03-2017(online)].pdf 2017-03-13
3 Power of Attorney [13-03-2017(online)].pdf 2017-03-13
4 Form 5 [13-03-2017(online)].pdf 2017-03-13
5 Form 3 [13-03-2017(online)].pdf 2017-03-13
6 Form 18 [13-03-2017(online)].pdf_512.pdf 2017-03-13
7 Form 18 [13-03-2017(online)].pdf 2017-03-13
8 Form 1 [13-03-2017(online)].pdf 2017-03-13
9 Drawing [13-03-2017(online)].pdf 2017-03-13
10 Description(Complete) [13-03-2017(online)].pdf_509.pdf 2017-03-13
11 Description(Complete) [13-03-2017(online)].pdf 2017-03-13
12 201747008609.pdf 2017-03-14
13 Correspondence by Agent_Assignment_24-03-2017.pdf 2017-03-24
14 Other Document [30-03-2017(online)].pdf 2017-03-30
15 Marked Copy [30-03-2017(online)].pdf 2017-03-30
16 Form 13 [30-03-2017(online)].pdf 2017-03-30
17 Description(Complete) [30-03-2017(online)].pdf_171.pdf 2017-03-30
18 Description(Complete) [30-03-2017(online)].pdf 2017-03-30
19 201747008609-FORM 3 [04-09-2017(online)].pdf 2017-09-04
20 201747008609-FORM 3 [09-09-2017(online)].pdf 2017-09-09
21 201747008609-FER.pdf 2020-07-13
22 201747008609-OTHERS [16-12-2020(online)].pdf 2020-12-16
23 201747008609-FORM-26 [16-12-2020(online)].pdf 2020-12-16
24 201747008609-FORM 3 [16-12-2020(online)].pdf 2020-12-16
25 201747008609-FER_SER_REPLY [16-12-2020(online)].pdf 2020-12-16
26 201747008609-DRAWING [16-12-2020(online)].pdf 2020-12-16
27 201747008609-COMPLETE SPECIFICATION [16-12-2020(online)].pdf 2020-12-16
28 201747008609-CLAIMS [16-12-2020(online)].pdf 2020-12-16
29 201747008609-ABSTRACT [16-12-2020(online)].pdf 2020-12-16
30 201747008609-FORM 3 [02-03-2023(online)].pdf 2023-03-02
31 201747008609-US(14)-HearingNotice-(HearingDate-07-08-2023).pdf 2023-07-12
32 201747008609-Correspondence to notify the Controller [02-08-2023(online)].pdf 2023-08-02

Search Strategy

1 SearchStrategyMatrixE_13-07-2020.pdf
2 SearchStrategyMatrixAE_08-03-2021.pdf