Connection request transfer system and connection request transfer program
The connection request transfer system addresses the challenge of routing connection requests by evaluating HTTP requests based on specific headers and path conditions, ensuring accurate and efficient transfer to the appropriate information processing system.
Patent Information
- Application Number
- JP2023183327
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-25
- Publication Date
- 2025-05-12
AI Technical Summary
Conventional connection request transfer systems cannot accurately route connection requests from a connection source to an appropriate information processing system among multiple systems based on the content of the connection request.
A connection request transfer system that evaluates HTTP requests based on specific headers and path conditions, transferring the request to an information processing system associated with satisfied transfer conditions, such as specific character strings in headers indicating tenant or function requirements.
Enables efficient and accurate transfer of connection requests to the appropriate information processing system, ensuring that requests are routed based on their intended content and requirements.
Smart Images

Figure 2025072885000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a connection request forwarding system and a connection request forwarding program for forwarding a connection request from a connection source to any one of a plurality of information processing systems. [Background technology]
[0002] 2. Description of the Related Art Conventionally, there are known techniques for connecting to an information processing system from an external connection source of the information processing system and using functions provided by the information processing system (see, for example, Patent Documents 1 to 3). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2019-139691 A [Patent Document 2] Patent No. 6161803 [Patent Document 3] Patent No. 7111912 Summary of the Invention [Problem to be solved by the invention]
[0004] However, in conventional technology, when a system is provided with multiple information processing systems and a connection request forwarding system that forwards a connection request from a connection source to one of the multiple information processing systems, there is a problem in that the connection request from the connection source cannot be forwarded to an information processing system among the multiple information processing systems that corresponds to the content of the connection request.
[0005] Therefore, an object of the present invention is to provide a connection request forwarding system and a connection request forwarding program that can forward a connection request from a connection source to an information processing system among multiple information processing systems that corresponds to the content of the connection request. [Means for solving the problem]
[0006] The connection request forwarding system of the present invention is a connection request forwarding system that forwards a connection request from a connection source to one of a plurality of information processing systems, and is characterized in that when a forwarding condition as a condition for forwarding the connection request is satisfied based at least on the value of a specific header in the header field of the HTTP request of the connection request, the connection request is forwarded to the information processing system as a forwarding destination corresponding to the forwarding condition.
[0007] With this configuration, the connection request forwarding system of the present invention forwards a connection request to an information processing system as a forwarding destination that is associated with forwarding conditions that are satisfied based at least on the value of a specific header in the header field of the HTTP request of the connection request from the connection source, so that the connection request from the connection source can be forwarded to an information processing system among multiple information processing systems that corresponds to the content of the connection request.
[0008] In the connection request transfer system of the present invention, the transfer condition may include a condition that the value includes a specific character string.
[0009] With this configuration, the connection request forwarding system of the present invention forwards a connection request to a specific information processing system when the value of a specific header in the header field of the HTTP request of a connection request from the connection source contains at least a specific character string, so that the connection request from the connection source can be forwarded to an appropriate information processing system with a simple configuration.
[0010] In the connection request transfer system of the present invention, the transfer condition may be associated with the transfer destination, which is the information processing system for the specific tenant, when the specific character string is a character string indicating a specific tenant using the information processing system.
[0011] With this configuration, the connection request forwarding system of the present invention can forward a connection request to an information processing system for a tenant when the value of a specific header in the header field of the HTTP request of a connection request from the connection source contains at least a string indicating a specific tenant using the information processing system.
[0012] In the connection request transfer system of the present invention, the transfer condition may be associated with the transfer destination, which is the information processing system for the specific function, when the specific character string is a character string indicating a specific function of the information processing system.
[0013] With this configuration, the connection request forwarding system of the present invention can forward a connection request to an information processing system for this function when the value of a specific header in the header field of the HTTP request of a connection request from the connection source contains at least a character string indicating a specific function of the information processing system.
[0014] The connection request forwarding system of the present invention may forward the connection request after editing the path in accordance with an instruction to edit the path included in the request line of the HTTP request when the forwarding condition associated with the instruction is satisfied.
[0015] With this configuration, the connection request transfer system of the present invention transfers the connection request after editing the path in accordance with an instruction to edit the path included in the request line of the HTTP request of the connection request when the transfer condition associated with the instruction is satisfied, so that the configuration of the information processing system to which the connection request is transferred can be configured to correspond to the edited path.
[0016] The connection request forwarding program of the present invention is a connection request forwarding program for forwarding a connection request from a connection source to one of a plurality of information processing systems, and is characterized in that when a forwarding condition as a condition for forwarding the connection request is satisfied based at least on the value of a specific header in the header field of the HTTP request of the connection request, the program causes a computer to forward the connection request to the information processing system as a forwarding destination corresponding to the forwarding condition.
[0017] With this configuration, a computer executing the connection request forwarding program of the present invention forwards a connection request to an information processing system as a forwarding destination that is associated with forwarding conditions that are satisfied based at least on the value of a specific header in the header field of the HTTP request of the connection request from the connection source, so that the connection request from the connection source can be forwarded to an information processing system among multiple information processing systems that corresponds to the content of the connection request. Effect of the Invention
[0018] The connection request transfer system and the connection request transfer program of the present invention can transfer a connection request from a connection source to an information processing system, among a plurality of information processing systems, that corresponds to the content of the connection request. [Brief description of the drawings]
[0019] [Figure 1] FIG. 1 is a block diagram of a system according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram of an example of the gateway shown in FIG. 1 when configured by one computer. [Diagram 3] 3(a) is a diagram showing an example of a URL of a destination of a connection request sent from the connection source shown in Fig. 1. FIG. 3(b) is a diagram showing an example of an HTTP request of a connection request sent to the URL shown in Fig. 3(a). [Figure 4] FIG. 2 is a diagram illustrating an example of a transfer rule illustrated in FIG. [Diagram 5]3 is a flowchart of the operation of the gateway shown in FIG. 2 when a connection request is received from the image forming apparatus. [Figure 6] 6A is a diagram showing an example of an HTTP request for a connection request sent to a pre-transfer URL, which is different from the example shown in Fig. 3B. (b) is a diagram showing an example of an HTTP request that a connection request forwarding unit that has received the HTTP request shown in Fig. 6A forwards to an image processing system cluster. [Figure 7] 7A is a diagram showing an example of an HTTP request for a connection request sent to a pre-transfer URL, which is different from the examples shown in Fig. 3B and Fig. 6A. Fig. 7B is a diagram showing an example of an HTTP request that a connection request forwarding unit that has received the HTTP request shown in Fig. 7A forwards to an image processing system cluster. [Figure 8] Fig. 3A is a diagram showing an example of a pre-transfer URL different from the example shown in Fig. 3A, and Fig. 3B is a diagram showing an example of an HTTP request different from the example shown in Fig. 3B. [Figure 9] FIG. 5 is a diagram illustrating an example of a transfer rule different from the transfer rule illustrated in FIG. 4. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0020] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0021] First, the configuration of the system according to the present embodiment will be described.
[0022] FIG. 1 is a block diagram of a system 10 according to the present embodiment.
[0023] As shown in FIG. 1, the system 10 includes an image processing system cluster 20 as an information processing system that realizes document processing such as generating, searching, editing, and saving documents. The system 10 includes at least one image processing system cluster having a similar configuration to the image processing system cluster 20 in addition to the image processing system cluster 20. The image processing system cluster may operate in a multi-tenant model in which the image processing system cluster is used by multiple tenants. The image processing system cluster may be configured by one computer such as a PC (Personal Computer), or may be configured by multiple computers. The image processing system cluster may be realized on a cloud.
[0024] In the system 10, an image processing system cluster may be installed for each region, such as the United States, Europe, Asia, etc. By installing an image processing system cluster for each region, the system 10 can, for example, distribute the processing load to each region, and even if one of the image processing system clusters goes down, the other image processing system clusters can continue processing.
[0025] In the system 10, an image processing system cluster may be arranged for each function with respect to at least some of the functions of the image processing system cluster, such as an authentication function for authenticating a user, a tenant management function for managing tenants, a device management function for managing image forming apparatuses described below, etc. By arranging an image processing system cluster for each function, the system 10 can reduce costs by, for example, consolidating image processing system clusters for specific functions into one cluster for the entire world.
[0026] An image processing system cluster may be arranged for each tenant for at least some of the tenants in the system 10. By arranging an image processing system cluster for each tenant in the system 10, for example, the processing load can be distributed among the tenants and security performance can be improved.
[0027] The system 10 includes a gateway 30 that relays a session to any one of image processing system clusters arranged in a backend based on a request from an image forming device, a computer, or an external system described below. The gateway 30 may be configured by one computer such as a PC, or may be configured by multiple computers. The gateway 30 may be realized on a cloud.
[0028] The system 10 includes a database 40 that stores transfer rules 41 as rules for transferring a connection request from an image forming device, a computer or an external system, which will be described later, serving as a connection source, to one of a plurality of image processing system clusters.
[0029] The system 10 includes an image forming device 50 as a device for receiving documents from an image processing system cluster, transmitting documents to an image processing system cluster, and printing documents. The system 10 may include at least one image forming device having a similar configuration to the image forming device 50 in addition to the image forming device 50.
[0030] The system 10 includes a computer 60 configured, for example, by a mobile device such as a smartphone, a PC (Personal Computer), or the like. The system 10 may include at least one other computer having a similar configuration to the computer 60 in addition to the computer 60. The computer can use the image processing system cluster via an application such as a web browser or a native application. The computer can, for example, cause the image processing system cluster to store documents, search for documents managed by the image processing system cluster, refer to documents managed by the image processing system cluster, and edit documents managed by the image processing system cluster.
[0031] The system 10 includes an external system 70 that uses the image processing system cluster outside the image processing system cluster. The system 10 may include at least one external system having a similar configuration to the external system 70 in addition to the external system 70. The external system may be a cloud service.
[0032] FIG. 2 is a block diagram of the gateway 30 when configured by a single computer.
[0033] As shown in FIG. 2, the gateway 30 includes an operation unit 31 which is an operation device such as a keyboard or mouse through which various operations are input, a display unit 32 which is a display device such as an LCD (Liquid Crystal Display) that displays various information, a communication unit 33 which is a communication device that communicates with external devices via a network such as a LAN or the Internet, or directly by wired or wireless means without going through a network, a memory unit 34 which is a non-volatile memory device such as a semiconductor memory or an HDD (Hard Disk Drive) that stores various information, and a control unit 35 which controls the entire gateway 30.
[0034] The storage unit 34 can store a connection request transfer program 34a for transferring a connection request from a connection source to any one of a plurality of image processing system clusters. The connection request transfer program 34a may be installed in the gateway 30 during the manufacturing stage of the gateway 30, or may be additionally installed in the gateway 30 from an external storage medium such as a USB (Universal Serial Bus) memory, or may be additionally installed in the gateway 30 from a network.
[0035] The control unit 35 includes, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory) that stores programs and various data, and a RAM (Random Access Memory) that serves as a memory used as a working area for the CPU of the control unit 35. The CPU of the control unit 35 executes programs stored in the storage unit 34 or the ROM of the control unit 35.
[0036] The control unit 35 executes the connection request transfer program 34a to realize a connection request transfer unit 35a that transfers a connection request from a connection source to one of a plurality of image processing system clusters. Therefore, the gateway 30 constitutes a connection request transfer system of the present invention.
[0037] Fig. 3(a) is a diagram showing an example of a Uniform Resource Locator (URL) of a destination of a connection request sent from a connection source. Fig. 3(b) is a diagram showing an example of a Hypertext Transfer Protocol (HTTP) request 80 of the connection request sent to the URL shown in Fig. 3(a).
[0038] A connection source such as the image forming apparatus, computer, or external system shown in FIG. 1 transmits a connection request to a specific URL (hereinafter referred to as the "pre-transfer URL") in order to connect to the image processing system cluster.
[0039] The pre-transfer URL is, for example, a URL in the format "https: / / example.net / region / " shown in FIG.
[0040] 3(a) is the domain name of the gateway 30. In reality, the "region" in the path of the pre-transfer URL contains a specific character string indicating the region, such as "us" indicating the United States, "eu" indicating Europe, or "as" indicating Asia.
[0041] An HTTP request 80 for a connection request sent from the connection source to the pre-transfer URL shown in FIG. 3(a) has, for example, a structure as shown in FIG. 3(b).
[0042] 3(b) includes a single request line 81 as an initial line, and a header field 82, which may consist of multiple lines, placed immediately after the request line 81. The HTTP request 80 may include a blank line placed immediately after the header field 82, and a message body, which may consist of multiple lines, placed immediately after this blank line.
[0043] The request line 81 includes a method 81a that specifies the type of request, a request target 81b that is placed immediately after the method 81a with a space in between, and an HTTP version 81c that is placed immediately after the target 81b with a space in between.
[0044] The method 81a is "GET" in the example shown in FIG. 3(b), but may be a method other than "GET".
[0045] The target 81b is " / region / ", which is the path in the pre-transfer URL shown in FIG.
[0046] In the header field 82, headers are arranged in the format of "field name: value" for each line. For example, the header field 82 includes a host header 82a that specifies the domain name of the server to be connected, a tenant-id header 82b that specifies a tenant ID as identification information of the tenant to be connected, and a function header 82c that specifies the function of the image processing system cluster. The host header 82a shown in FIG. 3(b) is "host:example.net" that indicates the domain name in the pre-transfer URL shown in FIG. 3(a). The tenant-id header 82b shown in FIG. 3(b) is "tenant-id:000-111-333" that indicates "000-111-333" as the tenant ID. The function header 82c shown in FIG. 3(b) is "function:auth" that indicates an authentication function as a function. In addition to "auth" that indicates an authentication function, various values exist as the value of "function", such as "TM" that indicates a tenant management function and "DM" that indicates a device management function.
[0047] FIG. 4 is a diagram showing an example of the transfer rule 41. As shown in FIG.
[0048] The transfer rules 41 shown in FIG. 4 indicate, for each transfer condition, a transfer condition as a condition for transferring a connection request, an ID as identification information of the transfer condition, and a transfer destination associated with the transfer condition.
[0049] The smaller the ID number, the higher the priority of the forwarding condition. The forwarding condition with the ID "001" in the forwarding rule 41 shown in FIG. 4 is a condition that the path included in the request line 81 of the HTTP request 80 contains the character string " / eu / ". The forwarding condition with the ID "002" in the forwarding rule 41 shown in FIG. 4 is a condition that the path included in the request line 81 of the HTTP request 80 contains the character string " / us / ". The forwarding condition with the ID "003" in the forwarding rule 41 shown in FIG. 4 is a condition that the value of the tenant-id header 82b in the header field 82 of the HTTP request 80 completely matches the character string "000-111-333". The forwarding condition with the ID "004" in the forwarding rule 41 shown in FIG. 4 is a condition that the value of the function header 82c in the header field 82 of the HTTP request 80 contains the character string "auth". The transfer condition with ID “005” in the transfer rule 41 shown in FIG. 4 is a condition that the path included in the request line 81 of the HTTP request 80 and the header value in the header field 82 of the HTTP request 80 can be any character string.
[0050] In some cases, a transfer condition may be associated with an instruction to edit a path included in the request line 81 of the HTTP request 80 in the transfer rule 41. The transfer condition with ID "003" or "004" in the transfer rule 41 shown in FIG. 4 includes a character string ""url action":"non"", which indicates that no instruction to edit a path is associated with the transfer condition. The transfer condition with ID "001" in the transfer rule 41 shown in FIG. 4 includes a character string ""url action":"edit"," / "", which indicates that an instruction to edit the path, which is included in the request line 81 of the HTTP request 80, is replaced with the character string " / eu / ". The transfer condition with ID "002" in the transfer rule 41 shown in FIG. 4 includes a character string ""url action":"edit"," / "", which indicates that an instruction to edit the path, which is included in the request line 81 of the HTTP request 80, is replaced with the character string " / us / ". The replacement string may contain regular expressions.
[0051] The transfer destination in the transfer rule 41 indicates a portion of the URL of the transfer destination of the connection request other than the path. "eu.example.com" in the transfer destination associated with the transfer condition with ID "001" in the transfer rule 41 shown in FIG. 4 is, for example, a domain name of an image processing system cluster located in Europe. "us.example.com" in the transfer destination associated with the transfer condition with ID "002" in the transfer rule 41 shown in FIG. 4 is, for example, a domain name of an image processing system cluster located in the United States. "companyA.example.com" in the transfer destination associated with the transfer condition with ID "003" in the transfer rule 41 shown in FIG. 4 is, for example, a domain name of an image processing system cluster for a tenant with a tenant ID "000-111-333". "auth.example.com" in the transfer destination associated with the transfer condition with ID "004" in the transfer rule 41 shown in FIG. 4 is, for example, a domain name of an image processing system cluster for an authentication function. The "as.example.com" in the transfer destination associated with the transfer condition with the ID "005" in the transfer rule 41 shown in FIG. 4 is, for example, the domain name of an image processing system cluster located in Asia. The transfer condition with the ID "005" in the transfer rule 41 shown in FIG. 4 is a condition in which the path included in the request line 81 of the HTTP request 80 and the header value in the header field 82 of the HTTP request 80 may be any character string, as described above. Therefore, the transfer destination associated with the transfer condition with the ID "005" in the transfer rule 41 shown in FIG. 4 is a standard transfer destination that is identified when all other transfer conditions are not satisfied. Note that the transfer rule 41 does not need to include a standard transfer destination.
[0052] Next, the operation of the gateway 30 when a connection request is received from an image forming device, a computer, or an external system will be described.
[0053] Note that, in the following, an example will be described in which the gateway 30 receives a connection request from the image forming device 50; however, the same applies to the case in which the gateway 30 receives a connection request from an image forming device other than the image forming device 50, or the case in which the gateway 30 receives a connection request from a computer or an external system.
[0054] In order to connect to the image processing system cluster, the image forming apparatus 50 transmits a connection request to the pre-transfer URL as described above. In the following, a case where the pre-transfer URL has the format of "https: / / example.net / region / " shown in FIG. 3(a) will be described.
[0055] FIG. 5 is a flowchart showing the operation of the gateway 30 when a connection request is received from the image forming apparatus 50. As shown in FIG.
[0056] When the connection request transfer unit 35a of the gateway 30 receives the connection request from the image forming apparatus 50, the connection request transfer unit 35a executes the operation shown in FIG.
[0057] As shown in FIG. 5, the connection request forwarding unit 35a acquires the forwarding rule 41 from the database 40 (S101).
[0058] When the process of S101 is completed, the connection request forwarding unit 35a determines whether or not there is a forwarding condition in the forwarding rule 41 acquired in S101 that has not yet been targeted in the current operation shown in FIG. 5 (S102).
[0059] When the connection request forwarding unit 35a determines in S102 that there is a forwarding condition in the forwarding rules 41 acquired in S101 that has not yet been targeted in the current operation shown in FIG. 5, the connection request forwarding unit 35a targets one forwarding condition with the smallest ID among the forwarding conditions in the forwarding rules 41 that have not yet been targeted in the current operation shown in FIG. 5 (S103).
[0060] When the process of S103 ends, the connection request forwarding unit 35a judges whether or not the condition related to the path included in the request line 81 of the HTTP request 80 is included in the currently targeted forwarding conditions (S104).
[0061] When the connection request forwarding unit 35a determines in S104 that the condition related to the path included in the request line 81 of the HTTP request 80 is included in the current target forwarding condition, the connection request forwarding unit 35a acquires the path included in the request line 81 of the HTTP request 80 of the connection request received from the image forming apparatus 50 (S105). That is, the connection request forwarding unit 35a acquires the path of the pre-forwarding URL.
[0062] The connection request forwarding unit 35a determines in S104 that the condition regarding the path included in the request line 81 of the HTTP request 80 is not included in the forwarding conditions of the current target, or when the processing of S105 is completed, determines whether or not the condition regarding the header value in the header field 82 of the HTTP request 80 is included in the forwarding conditions of the current target (S106).
[0063] When the connection request forwarding unit 35a determines in S106 that the condition related to the header value in the header field 82 of the HTTP request 80 is included in the current target forwarding conditions, it obtains the header value related to the current target forwarding conditions from the header field 82 of the HTTP request 80 of the connection request received from the image forming device 50 (S107).
[0064] When the connection request transfer unit 35a determines in S106 that the condition related to the header value in the header field 82 of the HTTP request 80 is not included in the forwarding conditions of the current target, or when the process of S107 ends, it determines whether the forwarding conditions of the current target are satisfied (S108). Here, when the connection request transfer unit 35a acquires a path in S105, it determines whether the forwarding conditions of the current target are satisfied based at least on the path acquired in S105. Similarly, when the connection request transfer unit 35a acquires a value in S107, it determines whether the forwarding conditions of the current target are satisfied based at least on the value acquired in S107.
[0065] If the connection request forwarding unit 35a determines in S108 that the current target forwarding condition is not satisfied, it executes the process of S102.
[0066] If the connection request forwarding unit 35a determines in S108 that the current target forwarding condition is satisfied, it determines whether or not an instruction to edit the path is associated with the current target forwarding condition in the forwarding rules 41 (S109).
[0067] When the connection request forwarding unit 35a determines in S109 that an instruction to edit the path is associated with the current target forwarding condition in the forwarding rule 41, it edits the path included in the request line 81 of the HTTP request 80 in accordance with the editing instruction associated with the current target forwarding condition in the forwarding rule 41 (S110). For example, if the forwarding rule 41 acquired in S101 is the one shown in Fig. 4 and the request line 81 of the HTTP request 80 is "GET / eu / HTTP / 1.1", when the forwarding condition with ID "001" is the current target forwarding condition, the connection request forwarding unit 35a edits the request line 81 of the HTTP request 80 to "GET / HTTP / 1.1" by the process of S110.
[0068] When the connection request forwarding unit 35a determines in S109 that the path editing instruction is not associated with the current target forwarding condition in the forwarding rules 41, or when the processing of S110 is completed, it identifies the forwarding destination that is associated with the current target forwarding condition in the forwarding rules 41 acquired in S101 (S111).
[0069] When the process of S111 is completed, the connection request transfer unit 35a transfers the HTTP request 80 to the image processing system cluster identified as the transfer destination in S111 (S112), and ends the operation shown in FIG.
[0070] If the connection request forwarding unit 35a determines in S102 that there are no forwarding conditions in the forwarding rules 41 acquired in S101 that have not yet been targeted in the current operation shown in FIG. 5, it issues an error response such as “404 not found” to the image forming device 50 that is the connection source (S113), and terminates the operation shown in FIG. 5.
[0071] Fig. 6(a) is a diagram showing an example of an HTTP request 80 of a connection request sent to a pre-transfer URL, which is different from the example shown in Fig. 3(b). Fig. 6(b) is a diagram showing an example of an HTTP request 80 that is transferred to an image processing system cluster by the connection request transfer unit 35a that has received the HTTP request 80 shown in Fig. 6(a).
[0072] When the connection request forwarding unit 35a receives the HTTP request 80 shown in FIG. 6(a) and the forwarding rule 41 is the one shown in FIG. 4, the forwarding condition with the ID "003" is satisfied based at least on the value of the tenant-id header 82b in the header field 82 of the HTTP request 80 (YES in S108), and the forwarding condition with the ID "003" is not associated with an instruction to edit the path in the forwarding rule 41 (NO in S109), so the connection request forwarding unit 35a rewrites the Host header 82a of the HTTP request 80 from "Host:example.net" (see FIG. 6(a)) to "Host:companyA.example.com" (see FIG. 6(b)), which indicates the domain name of the forwarding destination associated with the forwarding condition with the ID "003", and then forwards the HTTP request 80 shown in FIG. 6(b) (S112).
[0073] Fig. 7(a) is a diagram showing an example of an HTTP request 80 of a connection request sent to a pre-transfer URL, which is different from the examples shown in Fig. 3(b) and Fig. 6(a). Fig. 7(b) is a diagram showing an example of an HTTP request 80 that is transferred to an image processing system cluster by the connection request transfer unit 35a that has received the HTTP request 80 shown in Fig. 7(a).
[0074] When the connection request forwarding unit 35a receives the HTTP request 80 shown in FIG. 7(a) and the forwarding rule 41 is the one shown in FIG. 4, the forwarding condition with the ID "001" is satisfied based on at least the path included in the request line 81 of the HTTP request 80 (YES in S108), and an instruction to edit the path is associated with the forwarding condition with the ID "001" in the forwarding rule 41 (YES in S109). Therefore, the connection request forwarding unit 35a removes " / eu" from the path included in the target 81b of the request line 81 of the HTTP request 80 (S110) as shown in FIG. 7(b), and then rewrites the Host header 82a of the HTTP request 80 from "Host:example.net" (see FIG. 7(a)) to "Host:eu.example.com" (see FIG. 7(b)), which indicates the domain name of the forwarding destination associated with the forwarding condition with the ID "001", and forwards the HTTP request 80 shown in FIG. 7(b) (S112).
[0075] As described above, the gateway 30 forwards the connection request to an image processing system cluster as a forwarding destination that is associated in the forwarding rules 41 with a forwarding condition that is satisfied based at least on the value of a specific header in the header field 82 of the HTTP request 80 of the connection request from the connection source (S101 to S108, S111 and S112), so that the connection request from the connection source can be forwarded to an image processing system cluster among multiple image processing system clusters that corresponds to the content of the connection request.
[0076] The gateway 30 forwards a connection request to a specific image processing system cluster when the forwarding condition for the ID being "003" or "004" is satisfied, i.e., when the value of a specific header in the header field 82 of the HTTP request 80 of the connection request from the connection source contains at least a specific character string, so that the gateway 30 can forward the connection request from the connection source to an appropriate image processing system cluster with a simple configuration.
[0077] Since the gateway 30 has a transfer condition (a transfer condition with an ID of "003") including a condition that a specific header value in the header field 82 of the HTTP request 80 of the connection request from the connection source contains a character string indicating a specific tenant that uses the image processing system cluster associated with the transfer destination that is the image processing system cluster for this tenant in the transfer rule 41, when the specific header value in the header field 82 of the HTTP request 80 of the connection request from the connection source contains at least a character string indicating a specific tenant that uses the image processing system cluster, the gateway 30 can transfer the connection request to the image processing system cluster for this tenant. Note that the gateway 30 does not need to have a transfer condition including a condition that a specific header value in the header field 82 of the HTTP request 80 of the connection request from the connection source contains a character string indicating a specific tenant that uses the image processing system cluster associated with the transfer destination that is the image processing system cluster for this tenant in the transfer rule 41.
[0078] Since the gateway 30 has a transfer condition (a transfer condition with an ID of "004") including a condition that a character string indicating a specific function of the image processing system cluster is included in a value of a specific header in the header field 82 of the HTTP request 80 of the connection request from the connection source, associated with the transfer destination which is the image processing system cluster for this function in the transfer rule 41, when the specific header value in the header field 82 of the HTTP request 80 of the connection request from the connection source includes at least a character string indicating a specific function of the image processing system cluster, the gateway 30 can transfer the connection request to the image processing system cluster for this function. Note that the gateway 30 does not need to have a transfer condition including a condition that a character string indicating a specific function of the image processing system cluster is included in a value of a specific header in the header field 82 of the HTTP request 80 of the connection request from the connection source associated with the transfer destination which is the image processing system cluster for this function in the transfer rule 41.
[0079] When the instruction to edit the path included in the request line 81 of the HTTP request 80 of the connection request satisfies the transfer condition associated with the transfer rule 41 (YES in S109), the gateway 30 edits the path according to this instruction (S110) and then transfers the connection request (S112). Therefore, the configuration of the image processing system cluster to which the connection request is transferred can be configured to correspond to the edited path. For example, the instruction to edit the path associated with the transfer condition in which the ID in the transfer rule 41 shown in FIG. 4 is "001" or "002" in the transfer rule 41 is an instruction to remove a character string indicating a region from the path. Therefore, the configurations of the multiple image processing system clusters to which the connection request is transferred when the transfer condition in which the ID in the transfer rule 41 shown in FIG. 4 is "001" or "002" is satisfied at least based on the path may be configured to execute the same operation regardless of the region. In other words, the application program code for realizing these image processing system clusters may be common. The above describes a configuration for editing a path when the transfer condition in the transfer rule 41 shown in Fig. 4 is satisfied based at least on the path. However, the same can be said about a configuration for editing a path when the transfer condition in the transfer rule 41 shown in Fig. 4 is satisfied based at least on the value of a specific header in the header field 82 of the HTTP request 80.
[0080] 4 includes a transfer condition related only to the region among the region, tenant ID, and function (a transfer condition with an ID of "001" or "002"), a transfer condition related only to the tenant ID among the region, tenant ID, and function (a transfer condition with an ID of "003"), and a transfer condition related only to the function among the region, tenant ID, and function (a transfer condition with an ID of "004"). However, the transfer rule 41 may include at least one of a transfer condition related to all of the region, tenant ID, and function, a transfer condition related only to the region and tenant ID among the region, tenant ID, and function, a transfer condition related only to the region and function among the region, tenant ID, and function, and a transfer condition related only to the tenant ID and function among the region, tenant ID, and function. For example, possible transfer conditions relating only to region and function among region, tenant ID, and function include the transfer condition "the path included in request line 81 of HTTP request 80 of the connection request from the connection source contains a string indicating a specific region," or "the value of a specific header in header field 82 of HTTP request 80 of the connection request from the connection source contains a string indicating a specific function of the image processing system cluster," or "the path included in request line 81 of HTTP request 80 of the connection request from the connection source contains a string indicating a specific region, and the value of a specific header in header field 82 of this HTTP request 80 contains a string indicating a specific function of the image processing system cluster."
[0081] The transfer rules 41 may be set so that the transfer condition related to the tenant ID and all of the functions is applied with the highest priority among the transfer condition related to all of the tenant IDs and functions, the transfer condition related to only the tenant ID among the tenant IDs and functions, and the transfer condition related to only the functions among the tenant IDs and functions.The transfer rules 41 may be set so that the transfer condition related to only the tenant ID among the tenant IDs and functions is applied with the highest priority among the transfer condition related to only the tenant ID among the tenant IDs and functions, and the transfer condition related to only the functions among the tenant IDs and functions.
[0082] In the above, a case has been described in which the header field 82 includes the tenant-id header 82b and the function header 82c. However, at least one of the tenant-id header 82b and the function header 82c does not have to be included in the header field 82. For example, if the header field 82 does not include the tenant-id header 82b, the pre-transfer URL and the HTTP request 80 may be as shown in FIG.
[0083] Fig. 8(a) is a diagram showing an example of a pre-transfer URL different from the example shown in Fig. 3(a). Fig. 8(b) is a diagram showing an example of an HTTP request 80 different from the example shown in Fig. 3(b).
[0084] In the "tenant-id" of the pre-forwarding URL "https: / / example.net / region / tenant-id / " shown in Fig. 8(a), a specific character string indicating a tenant ID, such as "000-111-333," is actually described. The header field 82 of the HTTP request 80 shown in Fig. 8(b) does not include the tenant-id header 82b (see Fig. 3).
[0085] When the pre-transfer URL and the HTTP request 80 are as shown in FIG. 8, the transfer rule 41 may be as shown in FIG.
[0086] FIG. 9 is a diagram showing an example of a transfer rule 41 that is different from the transfer rule 41 shown in FIG.
[0087] The transfer condition with ID "003" in the transfer rule 41 shown in FIG. 9 is a condition that the path included in the request line 81 of the HTTP request 80 includes the character string " / 000-111-333 / ".
[0088] In the above, the transfer condition has been described as a condition related to the value of the tenant-id header 82b in the header field 82 of the HTTP request 80 and a condition related to the value of the function header 82c in the header field 82 of the HTTP request 80. However, a condition related to the value of a specific header other than the tenant-id header 82b and the function header 82c in the header field 82 of the HTTP request 80 may be set as the transfer condition.
[0089] The image processing system cluster may operate in a multi-tenant model in this embodiment, however, the image processing system cluster may also operate in a single-tenant model where the image processing system cluster is used by one tenant.
[0090] In this embodiment, the information processing system of the present invention is an image processing system cluster, however, the information processing system of the present invention does not have to be one that executes image processing. [Explanation of symbols]
[0091] 20. Image Processing System Cluster (Information Processing System) 30 Gateway (Connection Request Forwarding System, Computer) 34a Connection request forwarding program 50 Image forming device (connection source) 60 Computer (source) 70 External system (connection source) 80 HTTP requests 81 Request Line 82 Header Fields 82b tenant-id header (specific header) 82c function headers (specific headers)
Claims
1. A connection request forwarding system that forwards a connection request from a connection source to any one of a plurality of information processing systems, A connection request forwarding system characterized by forwarding the connection request to the information processing system as a forwarding destination corresponding to a forwarding condition when a forwarding condition as a condition for forwarding the connection request is satisfied based at least on a value of a specific header in a header field of an HTTP request of the connection request.
2. 2. The connection request forwarding system according to claim 1, wherein the forwarding condition includes a condition that the value contains a specific character string.
3. The connection request forwarding system according to claim 2, characterized in that the forwarding condition is associated with the forwarding destination, which is the information processing system for a specific tenant, when the specific string is a string indicating a specific tenant using the information processing system.
4. The connection request transfer system according to claim 2, characterized in that the transfer condition is associated with the transfer destination, which is the information processing system for a specific function, when the specific character string is a character string indicating a specific function of the information processing system.
5. The connection request forwarding system according to claim 1, characterized in that, when the forwarding condition to which an instruction to edit a path included in a request line of the HTTP request corresponds is satisfied, the connection request is forwarded after editing the path in accordance with the instruction.
6. A connection request forwarding program for forwarding a connection request from a connection source to any one of a plurality of information processing systems, A connection request forwarding program characterized by causing a computer to forward the connection request to the information processing system as a forwarding destination corresponding to the forwarding condition when the forwarding condition as a condition for forwarding the connection request is satisfied based at least on the value of a specific header in the header field of the HTTP request of the connection request.
Citation Information
Patent Citations
Coloring machining method of wood such as lumber from thinning
JP1986061803A
Server device, client device, and data processing system
JP2019139691A
System and method for virtual session connections using component-based connection leasing
JP7111912B2