This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2014-002644, filed on Jan. 9, 2014, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a request distribution program, a request distribution method, and an information processing apparatus.
Various services have been provided by cloud computing. For example, design assist services for assisting with circuit designing by cloud computing are provided. The design assist services, for example, run a computer aided design (CAD) program on a server. The design assist services accept an operation from a client via a network. Furthermore, the design assist services transmit image information that is generated on the server according to the accepted operation to the client and the client displays the image. In this manner, the design assist services can provide the designer with a design environment equivalent to a design environment in which CAD runs on the client.
Patent Document 1: Japanese Laid-open Patent Publication No. 2007-4303
Patent Document 2: Japanese Laid-open Patent Publication No. 2005-513597
In cloud computing, when high-performance servers are used for all servers that are used to provide the services, the costs for building the system increase. Furthermore, the functions provided by the services include functions that are sufficiently implemented with the processing performance of a low-performance server, such as an old-type server, not by a high-performance server. For example, in the design assist services, the performance of a low-performance server may be satisfactory depending on the CAD function used for designing. For this reason, the servers that are used to provide the services may include both of high-performance servers and low-performance servers.
However, when the servers used to provide the services include both of high-performance servers and low-performance servers, it is difficult to allocate processing efficiently to the servers.
A portal of the design assist services will be described here with reference to
When each designer does not want to intermit the designing operations and selects high-performance servers each capable implement all functions comfortably, the high-performance servers are used exclusively so that the usage efficiency of low-performance servers lowers. Furthermore, when the high-performance servers are used exclusively, it is difficult to use a high-performance server for a designer that uses a function that can be implemented comfortably by only high-performance servers.
According to an aspect of an embodiment, a non-transitory computer-readable recording medium stores therein a program for causing a computer to execute a process. The process includes receiving a request regarding a function that is implemented by a server; and specifying a server to implement a function requested by the received request on the basis of first information that associates one of multiple functions that are implemented by a server with a server that includes hardware necessary to implement the function.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Preferred Embodiments of the Present Invention will be explained with reference to accompanying drawings. The embodiments do not limit the invention. Each embodiment can be combined as long as no contradiction is caused in the content of the processing.
System Configuration
A system 10 according to a first embodiment will be described below.
The client 12 is a computer that is used by a designer for circuit designing. The client 12 is, for example, a desktop PC (personal computer) or a laptop PC. A designer transmits various requests regarding circuit designing to the system 10, using the client 12, and performs circuit designing, using a design environment that is provided by the system 10. In the
The system 10 provides a design environment for performing circuit designing. The system 10 accepts various requests regarding circuit designing from the client 12 via the network 11. Upon accepting a request, the system 10 performs processing according to the accepted request. The system 10 then transmits image information obtained by performing the processing to the client 12 and the client 12 displays the image. As illustrated in
The request distribution apparatus 20 is a computer that functions as a portal that accepts a request from the client 12, i.e., an example of an information processing apparatus. The request distribution apparatus 20 is, for example, a server computer that is provided to a data center or each company. The request distribution apparatus 20 relays the accepted request from the client 12 to the application server 21. The request distribution apparatus 20 relays information resulting from processing performed by the application server 21 to the client 12.
The application server 21 is a computer that provides a design environment. The application server 21 is, for example, a server computer that is provided to the data center or each company. The application server 21 runs a CAD program to perform processing according to the request that is received from the client 12 via the request distribution apparatus 20. The application server 21 generates information obtained by performing the processing, such as image information obtained by performing the processing, and transmits the information to the client that is the source of the request.
The file server 22 is a computer that stores various types of data that is used for circuit designing. The file server 22 is, for example, a server computer that is provided to the data center or each company. The file server 22 stores various types of data, such as design data and various types of setting information, and provides various types of data according to the request from the application server 21.
Configuration of Request Distribution Apparatus
A request distribution apparatus according to a first embodiment will be described here.
The communication I/F unit 30 is an interface that controls communications with other devices. The communication I/F unit 30 transmits/receives various types of information to/from other devices via a network (not illustrated). For example, the communication I/F unit 30 receives a request regarding various CAD functions from the client 12 and transmits the received request to an application server 21. The communication I/F unit 30 then receives, from the application server 21, image information obtained by performing processing according to the received request and transmits the received image information to the client 12 that transmits the request, i.e., that is the request source. For the communication I/F unit 30, a network interface card, such as a LAN card, can be used.
The storage unit 31 is a storage device, such as a semiconductor memory device such as a flash memory, a hard disk, or an optical disk. The storage unit 31 may be a data rewritable semiconductor memory, such as a random access memory (RAM), a flash memory, or a non-volatile static random access memory (NVSRAM).
The storage unit 31 stores an operating system (OS) that is caused to run by the controller 32 and various programs for processing received requests. The storage unit 31 further stores various types of data used for the programs executed by the controller 32. For example, the storage unit 31 stores function information 40, server information 41, and request source information 42.
The function information 40 is information that associates the various CAD functions and sets of hardware used to implement the functions. For example, the function information 40 stores, for each of the various CAD functions, information on hardware suitable to implement the function.
The GPU is a semiconductor chip that performs calculations for 3D graphic displays. A server that includes a GPU can use the GPU for 3D displays so that a 3D display can be made in a short processing time. For this reason, 3D displays are preferably processed by an application server 21 that includes a GPU. A GPGPU has a function of using the arithmetic operation function of the GPU for purposes other than image processing. A server that includes a GPU that has the GPUGPU function can perform relatively simple calculations in parallel at high speed so that analysis processing etc. can be performed in a short processing time. For this reason, the analysis is preferably performed by an application server 21 that includes a GPGPU.
The following description refers back to
The
The following description refers back to
The
The following description refers back to
The receiver 50 is a processor that receivers various requests. For example, the receiver 50 receives requests regarding various CAD functions that are transmitted from the client 12. The receiver 50 specifies the source of the request from the received request. For example, the receiver 50 specifies the client 12, i.e., the source of the request, and the process from the IP address and the port number that are contained in the packet data of the received request. When the data of the received request contains identification information indicating the client 12, i.e., the request source, and the process, the receiver 50 may specify the client 12, i.e., the request source, and the process from the identification information.
The hardware specifying unit 51 is a processor that specifies the hardware to be used to implement the requested function. For example, when the receiver 50 receives a request regarding a CAD function, the hardware specifying unit 51 specifies the hardware to be used to implement the received CAD function on the basis of the function information 40. For example, the hardware specifying unit 51 reads the data of the GPU and GPGPU items of the record corresponding to the received CAD function and determines whether to use a GPU and GPGPU to implement the received CAD function.
The server specifying unit 52 is a processor that specifies the application server 21 that processes the request from the client 12. For example, the server specifying unit 52 specifies the application server 21 that processes the request from the client 12 that transmits the request. For example, the server specifying unit 52 reads the record corresponding to the client 12 that transmits the request from the request source information 42 and the server specifying unit 52 specifies the application server 21 that processes the request of the client 12 from the application server item.
The selecting unit 53 is a processor that selects an application server 21 to be caused to implement the requested function. For example, the selecting unit 53 determines, on the basis of the server information 41, whether the application server 21 that is specified by the server specifying unit 52 includes the hardware that is specified by the hardware specifying unit 51. For example, the selecting unit 53 reads, from the server information 41, the record of the application server 21 specified by the server specifying unit 52 and determines, from the data of the GPU and GPGPU items of the assistance item, whether the application server 21 includes the hardware to be used to implement the requested CAD function. The selecting unit 53 determines whether the hardware to be used to implement the requested CAD function is in use from the data of the GPU and GPGPU items of the assistance use state item.
When the application server 21 that is specified by the server specifying unit 52 includes the hardware to be used to implement the requested CAD function and the hardware is not in use, the selecting unit 53 selects the application server 21 as the application server 21 to be caused to implement the CAD function.
On the other hand, when the application server 21 that is specified by the server specifying unit 52 does not include the hardware to be used to implement the requested CAD function or the hardware is in use, the selecting unit 53 selects another application server 21. For example, the selecting unit 53 selects, from among the multiple application servers 21, an application server 21 including the hardware that is specified by the hardware specifying unit 51 and that is not in use. For example, the selecting unit 53 extracts, from among the multiple application servers 21 that are stored in the server information 41, application servers 21 that include the hardware that is specified by the hardware specifying unit 51 and that is not in use. The selecting unit 53 then selects an application server 21 to be caused to implement the requested CAD function from among the extracted application servers 21. The selecting unit 53 selects an application server 21 where the number of requests being processed does not exceed the maximum processed-request number. When multiple application servers 21 are selected, the selecting unit 53 selects an application server 21 that has the best processing performance for implementing the requested CAD function.
When the application server 21 that is specified by the server specifying unit 52 does not include the hardware to be used to implement the requested CAD function, the application server 21 is an application server 21 that is not suitable to implement the requested CAD function. For this reason, the selecting unit 53 selects another application server 21 including the hardware that is specified by the hardware specifying unit 51 and that is not in use.
The transfer unit 54 is a processor that transfers the application server 21 that processes the request from the client 12. For example, when the application server 21 that is specified by the server specifying unit 52 does not include the hardware to be used to implement the requested CAD function, the transfer unit 54 transfers the design environment of the specified application server 21 to another application server 21 that is selected by the selecting unit 53.
When the number of requests being processed by the application server 21 selected by the selecting unit 53 exceeds the maximum processed-request number, the transfer unit 54 transfers the processing environment in which any one of the requests is processed to another application server 21. The processing environment refers to information and software that are necessary for the application server 21 to process the request by the application server 21. The processing environment is transferred to another application server 21 and is caused to run so that the application server 21 enters a state where the requested processing can be performed.
The transmitter 55 is a processor that transmits, to the application server 21, the request that is received by the receiver 50. For example, the transmitter 55 transmits a request regarding a CAD function, which is the request received by the receiver 50, to an application server 21 that is selected by the selecting unit 53. Accordingly, the request regarding the CAD function is transmitted to the application server 21 that includes the hardware to be used to implement the CAD function.
System Operations
The processing operations of the system 10 according to the first embodiment will be described here. First, the general operations performed by the system 10 according to the embodiment to perform circuit designing will be described.
The designer accesses the request distribution apparatus 20, using the client 12, to request a connection (step S10). The request distribution apparatus 20, for example, displays a login screen to cause a user to input the ID, password, etc. and determines whether the user is authentic. Upon authenticating the user, the request distribution apparatus 20 makes a notification indicating that the user is authenticated (step S11) so that the design assist services are available.
Using the client 12, the designer transmits various types of information used for circuit designing to the request distribution apparatus 20 (step S12). For example, the designer transmits design data under designing etc. to the request distribution apparatus 20. The request distribution apparatus 20 stores the received various types of information in association with the designer in the file server 22 (step S13). The request distribution apparatus 20 determines an application server 21 to be used for circuit designing. The application server 21 used for circuit designing may be specified by the designer. The application server 21 used for circuit designing may be automatically determined by the request distribution apparatus 20 according to given rules. For example, the request distribution apparatus 20 may randomly determine the application server 21 to be used for circuit designing. The request distribution apparatus 20 may determine, as the application server 21 to be used for circuit designing, an application server 21 where the value obtained by subtracting the number of requests being processed from the maximum processed-request number is the largest. The request distribution apparatus 20 may determine an application server 21 to be used for circuit designing according to a predetermined order. The application server item of the request source information 42 stores, as the initial connection destination, information that identifies the determined application server 21. The request distribution apparatus 20 issues, to the determined application server 21, an instruction for activating the CAD program and reading the data of the designer (step S14).
The application server 21 starts the CAD program according to the instruction from the request distribution apparatus 20 and reads the data of the designer from the file server 22 (step S15). Thus, the application server 21 builds a design environment where the designer performs circuit designing. Once the design environment is built and the activation completes, the application server 21 notifies the request distribution apparatus 20 of the completion of the activation (step S16). The application server 21 generates image information representing the design environment and transmits the image information to the request distribution apparatus 20.
Upon being notified by the application server 21 of the completion of the activation, the request distribution apparatus 20 notifies the client 12 of the preparation completion (step S17) and transmits the image information, which is received from the application server 21, to the client 12. Accordingly, a design environment screen is displayed on the client 12.
Using the client 12, the designer performs various operations regarding circuit designing. The client 12 transmits various requests regarding CAD functions to the request distribution apparatus 20 according to the accepted operations (step S18).
Upon accepting a request from the client 12, the request distribution apparatus 20 transmits the request to the application server 21 where the design environment of the client 12 is built (step S19). The application server 21 performs processing according to the received request and updates the data of the designer that is stored in the file server 22 (step S20). The application server 21 generates processing result information, such as image information representing the result of the processing, and transmits the processing result information to the request distribution apparatus 20 (step S21). The request distribution apparatus 20 transmits the process result information, such as the image information, received from the application server to the client 12 that transmits the request (step S22). Accordingly, a screen displaying the result of implementing the requested function is displayed on the client 12.
Each time the designer performs various operations regarding circuit designing using the client 12, the above-described steps S18 to S22 are repeated.
When ending circuit designing, the designer operates the client 12 to issue an instruction for ending circuit designing. The client 12 transmits the end instruction to the request distribution apparatus 20 (step S23).
Upon accepting the end instruction from the client 12, the request distribution apparatus 20 transmits the end instruction to the application server 21 where the design environment of the client 12 is built (step S24). Upon accepting the store instruction, the application server 21 stores the data of the designer in the file server 22 (step S25). Once storing of the data completes, the application server 21 ends the CAD program, frees the design environment, and transmits a response indicating that the processing ends to the request distribution apparatus 20 (step S26). Upon receiving the response indicating that the processing ends from the application server 21, the request distribution apparatus 20 transmits the response indicating that the processing ends to the client 12 (step S27). Upon receiving the response indicating that the processing ends from the request distribution apparatus 20, the client 12 transmits a disconnection request to the request distribution apparatus (step S28) and, upon receiving a response to the disconnection request from the request distribution apparatus 20 (step S29), ends the process.
Detailed operations performed when the client 12 performs operations regarding circuit designing will be described here.
Using the client 12, the operator performs various operations regarding circuit designing. The client 12 transmits various requests regarding CAD functions to the request distribution apparatus 20 according to the accepted operations (step S50).
The request distribution apparatus 20 determines whether to switch the application server 21 according to whether the application server 21 with the design environment of the client 12 includes the hardware to be used to implement the requested function (step S51).
When the application server 21A includes a GPU and the GPU is not in use, the selecting unit 53 selects the application server 21A as the application server 21 to be caused to implement the requested CAD function.
On the other hand, when the application server 21A includes no GPU or when the GPU is in use, the selecting unit 53 determines to switch the application server 21. In the
When determining to switch the application server 21, the selecting unit 53 selects, from among the multiple application servers 21, an application server including the hardware that is specified by the hardware specifying unit 51 and that is not in use.
The selecting unit 53 updates the processed-request number item and the assistance use state item of the server information 41 in order to cause the selected application server 21 to implement the requested CAD function. For example, the selecting unit 53 updates the processed-request number item of the record of the selected application server 21 in the server information 41 to the value obtained by adding 1 to the value of the processed-request number item. Furthermore, the selecting unit 53 updates the GPU item of the assistance use state item of the record of the selected application server 21 in the server information to “used” indicating that the GPU is in use ((1-5) in
The following description refers back to
The transfer unit 54 gives, to the application server 21B, an instruction for activating the CAD program and for reading various types of information regarding the design environment (step S54). According to the instruction from the request distribution apparatus 20, the application server 21B activates the CAD program and reads the various types of information regarding the design environment from the file server 22 (step S55). Accordingly, the design environment is transferred from the application server 21A to the application server 21B. Once the design environment is built in the application server 21B and when the activation completes, the application server 21B notifies the request distribution apparatus 20 of the completion of the activation (step S56). Upon being notified of the completion of the activation by the application server 21B to which the design environment is transferred, the transfer unit 54 transmits an end instruction to the application server 21A from which the design environment is transferred (step S57). Upon accepting the end instruction, the application server 21A ends the AD program, frees the design environment, and transmits a response indicating that the processing ends to the request distribution apparatus 20 (step S58).
The application server 21A ends and accordingly the transfer unit 54 updates the server information 41 (step S59).
The following description refers back to
The application server 21 ends performing the requested processing and accordingly the transmitter 55 updates the request source information 42 (step S63).
The following description refers back to
The processing operations performed when multiple clients 12 perform circuit designing will be described here.
Each of the clients 12A and 12B accepts various operations regarding circuit designing from the designer. The clients 12A and 12B transmit various requests regarding CAD functions according to the accepted operations. For example, the client 12A transmits a request to the request distribution apparatus 20 according to the accepted operation (step S70). The client 12B transmits a request to the request distribution apparatus 20 according to the accepted operation (S71).
Upon accepting a request from a client 12, the request distribution apparatus 20 transmits the request to an application server 21 where the design environment of the client 12 is built. For example, upon accepting a request from the client 12A, the request distribution apparatus 20 transmits the request to the application server 21A (step S72). Upon accepting a request from the client 12B, the request distribution apparatus 20 transmits the request to the application server 21B (step S73).
The application server 21A performs processing according to the request from the client 12A and updates the data of the designer that is stored in the file server (step S74). The application server 21A generates processing result information, such as image information representing the result of the processing, and transmits the processing result information to the request distribution apparatus 20 (step S75). The application server 21B performs processing according to the request from the client 12B and updates the data of the designer that is stored in the file server 22 (step S76). The application server 21B generates processing result information, such as image information representing the result of the processing, and transmits the processing result information to the request distribution apparatus 20 (step S77).
The request distribution apparatus 20 transmits the processing result information, such as image information, that is received from the application server 21A to the client 12A that transmits the request (step S78). The request distribution apparatus 20 transmits the processing result information, such as image information, that is received from the application server 21B to the client 12B that transmits the request (step S79).
Detailed operations of the system performed when multiple clients 12 perform circuit designing will be described here.
Using the client 12A, the designer performs various operations regarding circuit designing. The client 12A transmits various requests regarding CAD functions to the request distribution apparatus 20 according to the accepted operations (step S50).
The request distribution apparatus 20 determines whether to switch the application server 21A according to whether the application server 21A with the design environment of the client 12, in which the request is processed, includes the hardware to be used to implement the requested function (S51). Here, the selecting unit 53 determines to switch the application server 21A and selects the application server 21B as the application server to which the application server 21A is switched. The selecting unit 53 updates the processed-request number item and the assistance use state item in the server information 41 in order to cause the selected application server 21B to implement the requested CAD function.
The following description refers back to
The following description refers back to
The transfer unit 54 extracts all clients 12 to which the application server 21B provides the design environment. For example, the transfer unit 54 extracts all records of the application servers 21 whose design environment should be transferred from the request source information 42. For example, in the
The transfer unit 54 selects records according to the ascending order of TAT and specifies an application server 21 to which design environment can be transferred (S82).
The transfer unit 54 searches for another application server 21 that can implement the specified CAD function. For example, the transfer unit 54 specifies hardware to be used to implement the specified CAD function. For example, when the specified CAD function is Editing 1, the transfer unit 54 specifies that there is no particular hardware to be used to implement the function of Editing 1 ((2-5) in
The transfer unit 54 determines whether the number of requests processed by the searched application server 21 is smaller than the maximum processed-request number. When the processed-request number is smaller than the maximum processed-request number, the transfer unit 54 estimates the performance implemented when the searched application server 21 implements the specified CAD function. For example, the transfer unit 54 performs operations of dividing the performance ratio of the application server 21 from which design environment should be transferred by the performance ratio of the searched application server 21 to which the design environment is to be transferred and multiplying the value resulting from the division by the TAT of the specified CAD function. When the value resulting from the operations is within the value of the TAT allowance of the specified CAD function, which is the allowance stored in the function information 40, the transfer unit 54 determines the application server 21 as the application server 21 to which design environment can be transferred. For example, when transferring the design environment from the application server 21B to the application server 21C, the transfer unit 54 divides the performance ratio “8” of the application server 21B illustrated in
The following description refers back to
The transfer unit 54 gives, to the application server 21C, an instruction for activating the CAD program and reading various types of information regarding the design environment to be transferred (step S85). The application server 21C activates the CAD program according to the instruction and reads various types of information regarding the design environment to be transferred from the file server 22 (step S86). Accordingly, the design environment is transferred from the application server 21B to the application server 21C. Once the design environment is built and the activation completes, the application server 21C notifies the request distribution apparatus 20 of the completion of the activation (step S87). Upon being notified of the completion of the activation by the application server 21C to which the design environment is transferred, the transfer unit 54 gives an end instruction to the application server 21B from which the design environment is transferred (step S88). Upon receiving the end instruction, the application server 21B frees the design environment and transmits a response indicating that the processing ends to the request distribution apparatus (step S89).
The transfer unit 54 then restarts accepting requests from the client 12A (step S90). The transfer unit 54 updates the server information 41.
According to the same processing as that at steps S52 to S63, the transfer unit 54 then transfers the design environment from the application server 21A to the application server 21B.
Processing Flow
The flow of request distribution processing for distributing requests that is performed by the request distribution apparatus 20 will be described here.
As illustrated in
On the other hand, when a request is received (YES at step S100), the hardware specifying unit 51 reads a record corresponding to the received CAD function from the function information 40 and specifies hardware to be used to implement the requested function (step S102). The server specifying unit 52 reads, from the request source information 42, the record corresponding to the client 12 that transmits the request and specifies an application server 21 to process the request (step S103).
On the basis of the server information 41, the selecting unit 53 determines whether the specified application server 21 includes the specified hardware (step S104). When the specified application server 21 includes the specified hardware (YES at step S104), the selecting unit 53 selects the specified application server 21 as an application server 21 to be caused to implement the requested CAD function (step S105) and the procedure goes to step S107.
On the other hand, when the specified application server 21 does not include the specified hardware (NO at step S104), the selecting unit selects an application server 21 including the specified hardware that is not in use as the application server 21 to be caused to implement the requested CAD function (step S106). The transfer unit 54 determines whether an application server 21 that includes the specified hardware can be selected (step S107). When no application server 21 that includes the specified hardware is selected (NO at step S107), the transfer unit 54 transmits, to the client 12 that transmits the request, information indicating that there is no application server 21 suitable to implement the requested CAD function (step S108) and the procedure goes to step S100.
On the other hand, when such an application server 21 can be selected (step S105 or YES at step S107), the transfer unit 54 determines whether it is unnecessary to switch the application server 21 (step S109). For example, when the selected application server 21 is an application server 21 that has the design environment of the client 12 that transmits the request, the transfer unit 54 determines that it is unnecessary to switch the application server 21. When it is unnecessary to switch the application server 21 (YES at step S109), the procedure goes to step S117.
On the other hand, when it is not unnecessary to switch the application server 21 (NO at step S109), the transfer unit 54 determines whether the number of requests being processed by the selected application server 21 is larger than the maximum processed-request number (step S110). When the processed-request number is equal to or smaller than the maximum processed-request number (NO at step S110), the procedure goes to step S116, which will be described below.
When the processed-request number is larger than the maximum processed-request number (YES at step S110), the transfer unit 54 specifies an application server 21 to which the design environment can be transferred (step S111). The transfer unit 54 determines whether an application server 21 to which the design environment can be transferred is specified (step S112). When not any application server 21 to which the design environment can be transferred is specified (NO at step S112), the procedure goes to step S108.
On the other hand, when an application server 21 to which the design environment can be transferred is specified (YES at step S112), the transfer unit 54 temporarily stops accepting requests (step S113). The transfer unit 54 then transfers the design environment of the application server 21 to which the design environment can be transferred to the selected application server 21 (step S114). The transfer unit 54 then restarts accepting requests (step S115).
The transfer unit 54 transfers the design environment of the specified application server 21 to a selected application server 21 (step S116). The transmitter 55 then transmits the received request to the selected application server 21 (step S117). Upon receiving image information indicating the response to the request from the application server 21, the transmitter 55 transmits the image information to the client 12 that transmits the request (step S118) and the procedure goes to step S100.
Effects
As described above, the request distribution apparatus 20 according to the first embodiment receives a request regarding a function that is implemented by an application server 21. On the basis of the function information 40 that associates one of multiple functions and hardware that is necessary to implement the function, the request distribution apparatus 20 specifies hardware necessary to implement the function requested by the received request. On the basis of the server information 41 that associates an application server 21 and the hardware of the application server 21, the request distribution apparatus 20 selects an application server 21 that includes the specified hardware from among multiple application servers 21. By selecting an application server 21 for the received request in this manner, the request distribution apparatus 20 can efficiently distribute processing to the application servers 21.
Furthermore, on the basis of the request source information 42 that associates a client 12 that is a request source of a request and an application server 21 that processes the last request from the client 12, the request distribution apparatus 20 according to the first embodiment specifies the application server 21 corresponding to the request source of the received request. When the specified application server 21 includes the specified hardware, the request distribution apparatus 20 selects the specified application server 21. When the specified application server 21 does not include the specified hardware, the request distribution apparatus 20 selects another application server 21 that includes the specified hardware. Accordingly, when the application server 21 corresponding to the source of the request includes the hardware to be used to implement the requested function, the request distribution apparatus 20 can cause the same application server 21 to process the request. When the application server 21 does not include the hardware to be used to implement the requested function, the request distribution apparatus 20 can distribute an application server 21 suitable to process the received request.
When the specified application server 21 does not include the specified hardware, the request distribution apparatus 20 according to the first embodiment transfers the processing environment of the specified application server 21 in which processing according to the received request is performed to another application server 21. Accordingly, the request distribution apparatus 20 can cause another application server 21 to process the request using the same processing environment.
When the number of requests from each request source being processed by the selected application server 21 exceeds a given threshold, the request distribution apparatus 20 according to the first embodiment transfers the processing environment in which a request other than the received request is processed to a different application server 21. Accordingly, the request distribution apparatus 20 can reduce the load of processing performed by the selected application server 21.
The request distribution apparatus 20 according to the first embodiment transfers, to a different application server 21, the processing environment corresponding to any one of the requests where a processing time in which the different application server 21 processes the request is within an allowable time for the request. Accordingly, the request distribution apparatus 20 can prevent that the processing time in which the different server processes the request is longer than the allowable time.
The request distribution apparatus 20 according to the first embodiment receives requests for CAD functions including 3D display and analysis, selects an application server 21 including a GPU for a 3D display request, and selects an application server 21 including a GPGPU for an analysis request. Accordingly, the request distribution apparatus 20 can distribute the CAD functions to application servers 21 that can comfortably implement the CAD functions.
The first embodiment of the disclosed apparatus has been described. In addition to the above-described embodiment, the disclosed technology can be implemented in various different modes. Other embodiments of the present invention will be described below.
For the above-described embodiment, the case has been described where circuit designing is performed by cloud computing. However, the disclosed apparatus is not limited to this. Any system may be used as long as it is determined which hardware is used to implement each requested function, servers with different types of servers are used, and received requests are distributed to the servers.
For the above-described embodiment, the case has been described where, on the basis of the function information 40 and the server information 41, an application server 21 that includes the hardware necessary to implement the function requested by the received request. However, the disclosed apparatus is not limited to this. For example, the function information 40 and the server information 41 may be integrated. For example, the storage unit 31 may store a table that associates one of multiple functions to be implemented by application servers 21 with an application server 21 that includes hardware necessary to implement the function. This table is an example of first information. In this case, on the basis of the table, the hardware specifying unit 51 may specify an application server 21 that implements the function requested by a received request. Accordingly, an application server 21 is selected for the received request and accordingly the processing can be efficiently distributed to the application server 21.
For the above-described embodiment, the case has been described where, when the number of requests being processed by a server exceeds the maximum processed-request number, the processing environment in which CAD runs on the server is transferred. However, the disclosed apparatus is not limited to this. For example, the request distribution apparatus 20 may transfer the processing environment for the request where the turnaround time from when a request is received from a client 12 until a response to the request is made is larger than the allowance to a server where the turnaround time is equal or smaller than the allowance. Accordingly, when it takes time to create a screen display image due to a large volume of data, the request distribution apparatus 20 can automatically switch the server that is implementing the CAD processing environment to the server with much higher performance. Accordingly, the request distribution apparatus 20 can prevent that the wait time of the client gets longer than the allowance.
The request distribution apparatus 20 may accept specifying of a server whose processing environments are all transferred for, for example, maintenance operations and, when a server is specified, may perform processing for transferring all request processing environments in which the specified server operates may be transferred to another server. Accordingly, even if a designer uses a server, the maintenance of the server can be performed without stopping the operations.
For the above described embodiment, the case has been described where the server is switched when the server does not include hardware to be used to implement a requested function for the requested processing. However, the disclosed apparatus is not limited to this. For example, when the performance of the hardware is too much for the requested function, the request distribution apparatus 20 may transfer the processing environment to a server with lower performance. For example, upon receiving a request for the Editing 1 function, the request distribution apparatus 20 may transfer the processing environment to a server that does not include any GPU and does not have GPGPU. In other words, the request distribution apparatus 20 may switch the server according to the requested function. Accordingly, the request distribution apparatus 20 can prevent that high-performance servers are much used for processing.
Each component of each device illustrated in the drawings is a functional idea and is not necessarily required to be configured physically as illustrated in the drawings. In other words, a specific state of separation and integration of each device is not limited to the state illustrated in the drawings and the devices may be configured to be entirely or partly separated or integrated functionally or physically according to various types of load or operating state and according to an arbitrary unit. For example, each processor of the receiver 50, the hardware specifying unit 51, the server specifying unit 52, the selecting unit 53, the transfer unit 54, and the transmitter 55 of the request distribution apparatus 20 may be integrated as appropriate. Furthermore, the processing performed by each processor may be separated into sets of processing performed by multiple processors properly. Furthermore, all of or an arbitrary part of each processing function implemented by each processor may be implemented by a CPU or using a program that is analyzed and executed by the CPU or may be implemented as wired-logic hardware.
Request Distribution Program
The various types of processing illustrated for the above-described embodiments can be also implemented by executing a prepared program with a computer system, such as a personal computer or a work station. An example of the computer system that executes the program with the same functions as those of the above-describe embodiments will be described below.
As illustrated in
The HDD 320 previously stores a request distribution program 320a that implements the same functions as those of the receiver 50, the hardware specifying unit 51, the server specifying unit 52, the selecting unit 53, the transfer unit 54, and the transmitter 55 of the request distribution apparatus 20. The request distribution program 320a may be divided as appropriate.
The HDD 320 stores various types of information. For example, the HDD 320 stores various types of data used to distribute requests for, for example, selecting an OS or an area.
The CPU 310 reads the request distribution program 320a from the HDD 320 and executes the request distribution program 320a, so that the same operations as those of each processor of the embodiments are implemented. In other words, the request distribution program 320a implements the same operations as those of the receiver 50, the hardware specifying unit 51, the server specifying unit 52, the selecting unit 53, the transfer unit 54, and the transmitter 55.
The request distribution program 320a is not necessarily required to be stored in the HDD 320 from the beginning.
For example, the program is stored in a “portable physical medium”, such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card, that is inserted into the computer 300. The computer 300 may read the program from the portable physical medium and execute the program.
Alternatively, the program may be stored in, for example, “another computer (or server)” that is connected to the computer 300 via, for example, a public line, the Internet, a LAN, or a WAN. The computer 300 may read the program from the computer and execute the program.
According to an aspect of an embodiment, processing can be distributed to servers efficiently.
All examples and conditional language recited herein are intended for pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2014-002644 | Jan 2014 | JP | national |