Information processing apparatus
The information processing apparatus addresses delayed rendering in cloud services by strategically storing results in the nearest database, enhancing display speed through intelligent database selection based on communication speeds.
Patent Information
- Application Number
- JP2023216512
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-22
- Publication Date
- 2025-07-03
AI Technical Summary
In cloud services with multiple server groups in different regions, devices experience delayed rendering results due to poor communication environments, especially when the cloud browser saves the result in a remote database, leading to prolonged display times.
An information processing apparatus that selectively stores rendering results in the nearest available database based on communication speed measurements, using a CPU to determine the optimal storage location among multiple databases to minimize communication time.
This approach enables faster rendering result delivery to clients by optimizing database selection based on proximity and communication speeds, reducing display latency.
Smart Images

Figure 2025099664000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus.
Background Art
[0002] Patent Document 1 discloses a client system in which a low-cost computer, a thin client terminal having only minimum functions such as screen display and input, is distributed to general employees, and resources such as application software are centrally managed by a server.
[0003] Further, Patent Document 1 explains that the client system has a problem that the communication time from the client terminal to the server affects the display on the client terminal.
[0004] Furthermore, Patent Document 1 discloses that, in order to solve the problem, a relay device is arranged between the client terminal and the server to improve the efficiency of the display on the client terminal.
[0005] On the other hand, in recent years, it has become possible to execute an application on a cloud service, and even a device without a high-performance browsing function can have the application on the cloud service perform processing and receive the processing result of the application.
[0006] For example, a technique of drawing a screen using HTML (https: / / html.spec.whatwg.org) is known. An application that processes HTML is called a browser and performs drawing according to the HTML specification.
[0007] When such a browser is executed in an application execution environment of a cloud service, it is called a cloud browser.
[0008] Then, in response to a rendering request from a device that does not have high - performance browsing capabilities, the cloud browser performs rendering and saves the rendering result in the database of the same cloud service.
[0009] After that, the cloud browser sends a URL for accessing the saved rendering result to the device. The device that receives the URL retrieves the rendering result from the database of the storage destination and displays it on the screen of the device.
Prior Art Documents
Patent Documents
[0010]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0011] By the way, in cloud services, a plurality of servers form a group of servers that share one database, and such groups of servers are arranged in various regions. And each group of servers provides services such as an application execution environment and a database in its respective region.
[0012] Therefore, in cloud services, there are multiple groups of servers, and these groups of servers are arranged in different regions. So, there are groups of servers close to the device and groups of servers far from the device.
[0013] And when the cloud browser that performs rendering in response to a request from the device is provided by a cloud server in a group of servers far from the device, the rendering result will be saved in the database of the group of servers far from the cloud server to which it belongs.
[0014] As a result, the device will obtain the drawing result from the databases of remote server groups. When the communication environment is poor, it takes time to obtain the drawing result, and it may take time to display the drawing result on the device.
[0015] Note that the technology disclosed in Patent Document 1 is premised on a one-to-one correspondence between the sink client terminal and the server, and it is difficult to apply when there are multiple server groups.
[0016] The present invention has been made in view of such circumstances, and an object thereof is to provide an information processing apparatus that can provide a drawing result to a client at high speed even when there are multiple server groups.
Means for Solving the Problems
[0017] The present invention is grasped by the following configuration in order to achieve the above object. The information processing apparatus of the present invention is an information processing apparatus that provides a drawing result of a web page to the client based on a request from the client. In order to provide the drawing result to the client, the drawing result is stored in either a first database or a second database different from the first database. A storage means for storing, a first information regarding the time from the request of the client to the provision of the drawing result to the client using the first database, and a second information regarding the time from the request of the client to the provision of the drawing result to the client using the second database. And a selection means for selecting a database used by the storage means as a storage destination of the drawing result.
Effects of the Invention
[0018] According to the present invention, it is possible to provide an information processing apparatus that can provide a drawing result to a client at high speed even when there are multiple server groups.
Brief Description of the Drawings
[0019]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Embodiments for Carrying Out the Invention
[0020] Hereinafter, with reference to the accompanying drawings, embodiments for carrying out the present invention (hereinafter referred to as "embodiments") will be described in detail. However, the following embodiments do not limit the present invention according to the claims. Also, not all combinations of the features described in the embodiments are essential for the solution means of the present invention. Note that the same numbers or signs are assigned to the same elements throughout the description of the embodiments.
[0021] (First Embodiment) FIG. 1 is a diagram for explaining the relationship between the device EQ and the server group according to the first embodiment of the present invention. The first server group SVs1 shown in FIG. 1 has a plurality of cloud servers that share one database DB1. In the figure, only one cloud server 101 is shown, and the cloud server 101 is an example of the information processing apparatus according to the present invention.
[0022] The second server group SVs2 shown in FIG. 1 also has a plurality of cloud servers sharing one database DB2. However, in the figure, only the database DB2 is shown for easier viewing later.
[0023] The device EQ does not have a high - performance browsing function and is, for example, a printer, a PC, a notebook PC, a tablet, etc., and is an example of a client according to the present invention.
[0024] And in FIG. 1, as an example of a request from the client, a case where the device EQ makes a drawing request of the external web server WSV to the cloud server 101 is shown.
[0025] And in the present embodiment, a case where the device EQ is arranged closer to the second server group SVs2 than to the first server group SVs1 is shown.
[0026] For example, the area where the first server group SVs1 is installed is Japan, the area where the second server group SVs2 is installed is the United States, and the device EQ is arranged in the United States.
[0027] In such a case, depending on the communication environment, in order to quickly display the drawing result drawn by the cloud server 101 on the device EQ, it may be better to save the drawing result in the database DB1, or it may be better to save it in the database DB2.
[0028] Under such circumstances, according to the present embodiment, among the database DB1 and the database DB2, it is possible to appropriately select to use the database that can quickly display the drawing result on the device EQ, which will be described in detail below.
[0029] First, the cloud server 101 will be described with reference to FIG. 2, which is a configuration diagram showing an overview of the cloud server 101 according to the first embodiment of the present invention.
[0030] As shown in FIG. 2, the cloud server 101 includes a CPU 108, a ROM 102, a RAM 103, an input unit 105 (also referred to as input means), an external storage unit 104 (also referred to as external storage means), and a network connection interface 107. When the present invention is implemented by software or the like, each block in the figure does not necessarily have to be in the information processing apparatus.
[0031] The CPU 108 is a system control unit (also referred to as system control means) and controls the entire cloud server 101.
[0032] The ROM 102 stores the control program of the CPU and various fixed data.
[0033] The RAM 103 is composed of SRAM, DRAM, etc., and is for storing program control variables, various setting parameters, various work buffers, etc.
[0034] The external storage unit 104 is composed of a hard disk or the like and is for storing file data such as documents and images. In this embodiment, virtualization software for realizing the same function as a physical computer is also stored.
[0035] The input unit 105 is composed of a keyboard, a touch panel, etc., and is for the operator to perform various input operations.
[0036] The network connection interface 107 is an interface for connecting to a network, and the connection methods include LAN, USB, etc.
[0037] The cloud server 101 may be configured as a virtual machine and is started by loading the virtualization software stored in the external storage unit 104 into the RAM 103.
[0038] Then, the cloud browser is executed on the cloud server 101 as a virtual machine. For example, when the cloud browser receives a rendering request including the URL of a web page from the device EQ, it accesses an external web server based on the URL specified via the network connection interface 107.
[0039] Then, it acquires the content constituting the accessed web page and outputs the result of processing the content to the RAM 103 as a rendering result.
[0040] Next, with reference to FIGS. 3 to 5, the operation of the cloud server 101 according to the first embodiment of the present invention will be described. Note that the following description of the operation of the cloud server 101 will be given assuming the states of the device EQ, the first server group SVs1, the second server group SVs2, etc., which were described with reference to FIG. 1 for easier understanding of the content.
[0041] FIG. 3 is a flowchart for explaining the operation of the cloud server 101 according to the first embodiment of the present invention. FIG. 4 is a diagram showing the communication speed described in the flowchart of FIG. 3. FIG. 5 is a diagram showing the communication time described in the flowchart of FIG. 3. FIG. 6 is a diagram showing an example of HTML acquired for performing rendering according to the first embodiment of the present invention. FIG. 7 is a diagram showing a rendering result based on the HTML shown in FIG. 6.
[0042] Specifically, the operation of the cloud server 101 will be described with reference to the flowchart shown in FIG. 3.
[0043] In step 201, the cloud server 101 receives a rendering request including the first URL of the web page to be rendered from the device EQ that displays the rendering result via the network connection interface 107 and saves it in the RAM 103.
[0044] Note that the drawing request may include information indicating the location of the device EQ. Also, the drawing request may be string information or binary data. Furthermore, the communication protocol may be HTTP or HTTPS.
[0045] In step 202, the CPU 108 requests, via the network connection interface 107, the device EQ to measure the communication speed CV1 (see FIG. 4) between the database DB1 belonging to the first server group SVs1. The device EQ measures the communication speed CV1 (see FIG. 4) and replies to the cloud server 101.
[0046] Note that since the database DB1 is arranged near the cloud server 101, this communication speed CV1 (see FIG. 4) may be substituted with the communication speed between the device EQ and the cloud server 101. For example, the communication speed between the device EQ and the cloud server 101 may be calculated based on the HTTP header obtained in step 201, or may be calculated based on the transmission and reception of packets with the device EQ via the network connection interface 107.
[0047] When based on the HTTP header, the transmission date and time are obtained from the Date header, and the transmission data amount is obtained from the Content-Length header to measure the communication speed. In this case, the CPU 108 may be made to perform the measurement of the communication speed based on such an HTTP protocol and function as the first measurement means for measuring the communication speed based on the HTTP protocol.
[0048] When based on the transmission and reception of packets, packets are transmitted using the TCP protocol to measure the communication speed. In this case, the CPU 108 may be made to perform the measurement of the communication speed based on the transmission and reception of packets and function as the second measurement means for measuring the communication speed based on the transmission and reception of packets.
[0049] In step 203, the CPU 108 measures the communication speed DV1 (see FIG. 4) with the database DB1 belonging to the first server group SVs1.
[0050] In step 204, the CPU 108 determines whether there is a second server group SVs2 closer to the device EQ than the first server group SVs1 to which the cloud server 101 belongs. The location of the device EQ may be obtained from the drawing request, may be determined from the IP address, or may be registered in advance from the device EQ. If there is a second server group SVs2, the process proceeds to step 205; otherwise, the process proceeds to step 208.
[0051] Note that the determination in step 204 includes a selection of designating, as the second server group SVs2, the server group closer to the device EQ when there are a plurality of server groups closer to the device EQ than the first server group SVs1.
[0052] In step 205, the CPU 108 requests, via the network connection interface 107, the measurement of the communication speed DV2 (see FIG. 4) between the device EQ and the database DB2 belonging to the second server group SVs2. The device EQ measures the communication speed DV2 (see FIG. 4) and returns it to the cloud server 101.
[0053] In step 206, the CPU 108 measures the communication speed CV2 (see FIG. 4) with the database DB2 belonging to the second server group SVs2.
[0054] In step 207, the CPU 108 calculates the first communication time T1 (see FIG. 5) when the drawing result is transmitted to the device EQ via the database DB1 belonging to the first server group SVs1. Note that the first communication time T1 is an example of the first information of the present invention, is obtained by (data capacity of the drawing result) / (communication speed DV1 + communication speed CV1), and the CPU 108 functions as the first calculation means for calculating the first information.
[0055] Also, in step 207, when the drawing result is transmitted to the device EQ via the database DB2 belonging to the second server group SVs2, the second communication time T2 (see FIG. 5) is calculated. Note that the second communication time T2 is an example of the second information of the present invention, and is obtained by the data capacity of the drawing result / (communication speed DV2 + communication speed CV2), and the CPU 108 functions as the second calculation means for calculating the second information.
[0056] Then, in step 207, it is determined whether the device EQ can acquire the drawing result in a shorter time by using the database DB1 belonging to the first server group SVs1. Specifically, the CPU 108 determines whether the first communication time T1 is shorter than the second communication time T2. If it is a short time (the first communication time T1 < the second communication time T2), the process proceeds to step 208; otherwise, the process proceeds to step 209.
[0057] In step 208, the CPU 108 sets the storage location of the drawing result as the database DB1 belonging to the first server group SVs1.
[0058] In step 209, the CPU 108 sets the storage location of the drawing result as the database DB2 belonging to the second server group SVs2.
[0059] As can be understood from the descriptions of step 207, step 208, and step 209, the CPU 108 functions as a selection means for selecting the database to be used as the storage destination based on the first information and the second information.
[0060] In step 210, the CPU 108 acquires the content via the network connection interface 107 based on the first URL included in the drawing request and stores it in the RAM 103. The content is data necessary for rendering the page indicated by the first URL, and is HTML, text, image, audio, video, etc. For example, as an example of HTML, it is as shown in FIG. 6.
[0061] Then, the CPU 108 generates a rendering result based on the content and stores it in the RAM 103. For example, if it is a rendering result based on the HTML shown in FIG. 6, it will be as shown in FIG. 7.
[0062] In step 211, the CPU 108 stores the rendering result in a database having the storage location via the network connection interface 107.
[0063] Specifically, if, according to the determination in step 207, the process has advanced to step 208, the database DB1 is the storage location. In this case, the rendering result is stored in the database DB1.
[0064] Conversely, if, according to the determination in step 207, the process has advanced to step 209, the database DB2 is the storage location. In this case, the rendering result is stored in the database DB2.
[0065] In this way, the CPU 108 functions as a storage means for storing the rendering result in either the database DB1 (also referred to as the first database) or the database DB2 (also referred to as the second database).
[0066] Then, the database in which the rendering result is stored issues a second URL for the rendering result, that is, issues a second URL for accessing the stored rendering result. Then, the CPU 108 stores the second URL in the RAM 103.
[0067] In step 212, the CPU 108 transmits the second URL to the device EQ via the network connection interface 107 and ends the process of the cloud server 101.
[0068] Then, based on the second URL, the device EQ accesses the database where the rendering result is stored to obtain the rendering result, and updates the user interface UI of the device EQ, that is, displays the rendering result.
[0069] For example, if the device EQ is a printer, the rendering result is displayed by printing or by projecting it onto an attached screen. Also, if the device EQ is a PC, laptop, tablet, etc., the rendering result is displayed by projecting it onto an attached screen.
[0070] Conventionally, the rendering result was stored in the database DB1 belonging to the first server group SVs1 where the cloud server 101 providing the cloud browser was located.
[0071] However, when there are multiple server groups, depending on the location of the device EQ, it is not always possible to say that storing the rendering result in the database DB1 provides the rendering result at high speed.
[0072] However, according to the present embodiment, considering the location of the device EQ and determining which database is suitable for storing the rendering result from the perspective of providing the rendering result at high speed, the rendering result can be provided at high speed.
[0073] As shown in FIG. 3, in the present embodiment, it is executed when the device EQ first sends a rendering request to the cloud server 101, but it may be executed again when a predetermined threshold value, for example, a fixed time such as 24 hours, has elapsed since the previous rendering request.
[0074] That is, the CPU 108 is made to function as an elapsed time calculation means for calculating the elapsed time from the rendering request of the device EQ, which is the previous request from the client.
[0075] Furthermore, the CPU 108 may function as re-selection means for re-selecting the selection means by performing steps 202 to 209 again when the elapsed time exceeds the threshold value.
[0076] (Second Embodiment) Next, with reference to FIG. 8, the operation of the cloud server 101 according to the second embodiment of the present invention will be described. FIG. 8 is a flowchart for explaining the operation of the cloud server 101 according to the second embodiment of the present invention.
[0077] Note that the second embodiment has parts similar to the first embodiment, and in FIG. 8, the same step numbers as those shown in FIG. 3 are assigned to the similar parts, and it is arranged to be understandable by referring to the first embodiment. Therefore, hereinafter, mainly the parts different from the first embodiment will be described, and the description of the parts similar to the first embodiment may be omitted.
[0078] In step 501, the CPU 108 measures the time taken to compress the drawing result in the cloud server 101.
[0079] In step 502, the CPU 108 requests the device EQ to measure the time taken to decompress the compressed drawing result. The device EQ measures the time and returns it to the cloud server 101.
[0080] In step 503, the CPU 108 calculates a first communication time T1 and a second communication time T2. This first communication time T1 and second communication time T2 are the same as the first communication time T1 and second communication time T2 in the first embodiment.
[0081] Also, in step 503, the CPU 108 compresses the drawing result, transmits the compressed drawing result to the device EQ via the database DB1 belonging to the first server group SVs1, and calculates a third communication time when the drawing result is decompressed by the device EQ. Specifically, the third communication time is calculated in the same way as the first communication time T1, but instead of the data volume of the rendering result used in the calculation of the first communication time T1, the data volume of the compressed rendering result is used, which is different. That is, the CPU 108 functions as a third calculation means for calculating the first information described in the first embodiment based on the data-compressed rendering result.
[0082] Furthermore, in step 503, the CPU 108 compresses the rendering result, transmits the compressed rendering result to the device EQ via the database DB2 belonging to the second server group SVs2, and calculates the fourth communication time when the device EQ decompresses it. Specifically, the fourth communication time is calculated in the same way as the second communication time T2, but instead of the data volume of the rendering result used in the calculation of the second communication time T2, the data volume of the compressed rendering result is used, which is different. That is, the CPU 108 functions as a fourth calculation means for calculating the second information described in the first embodiment based on the data-compressed rendering result.
[0083] Then, in step 503, the CPU 108 further determines whether it is possible to obtain a rendering result in a state where the device EQ can be displayed in a shorter time by using the database DB1 belonging to the first server group SVs1 based on the first to fourth communication times. Note that the rendering result in a displayable state (hereinafter sometimes referred to as a displayable rendering result) means that when the device EQ receives data as compressed data, the decompression process has been completed.
[0084] Specifically, if either the first communication time T1 or the third communication time is the shortest, the CPU 108 determines that it is possible to obtain a rendering result in a state where the device EQ can be displayed in a shorter time by using the database DB1 belonging to the first server group SVs1, and proceeds to step 208.
[0085] Conversely, if either the second communication time T2 or the fourth communication time is the shortest, the CPU 108 proceeds to step 209.
[0086] Incidentally, even when the answer in step 204 is No, the process flows through step 208. However, the first communication time T1 and the third communication time are required to make the determination in step 504 described later.
[0087] Therefore, when the answer in step 204 is No, the process proceeds to step 503’. In step 503’, the CPU 108 calculates the first communication time T1 and the third communication time, and then proceeds to step 208.
[0088] In step 504, the CPU 108 determines whether to compress the drawing result. Specifically, if either the third or the fourth communication time is the shortest, the CPU 108 proceeds to step 505; otherwise, it proceeds to step 211.
[0089] In step 505, the CPU 108 compresses the drawing result.
[0090] By performing the process control described in the second embodiment, it is possible to further speed up the display of the drawing result compared to the case of the first embodiment.
[0091] As described above, the present invention has been described based on specific embodiments. However, the present invention is not limited to the above embodiments.
[0092] For the purpose of the present invention, a recording medium storing a drawing program code of software that realizes the functions of the above-described embodiments may be supplied to a system or an apparatus.
[0093] Needless to say, it can also be achieved by a computer (or a CPU or an MPU) of the system or apparatus reading and executing the drawing program code stored in the recording medium.
[0094] In this case, the drawing program code itself read from the recording medium realizes the functions of the above-described embodiments, and the recording medium on which the drawing program code is recorded constitutes the present invention.
[0095] As the recording medium for supplying the drawing program code, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a non-volatile memory card, a ROM, a DVD, etc. can be used.
[0096] Also, the functions of the above-described embodiments may be realized by executing the drawing program code read by the computer.
[0097] Furthermore, based on the instructions of the drawing program code, an Operating System (OS) or the like running on the computer may perform part or all of the actual processing.
[0098] Needless to say, the case where the functions of the above-described embodiments are realized by such processing is also included.
[0099] Furthermore, the drawing program code read from the recording medium may be written into the memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer.
[0100] Thereafter, based on the instructions of the drawing program code, a CPU or the like provided in the function expansion board or the function expansion unit performs part or all of the actual processing, and needless to say, the case where the functions of the above-described embodiments are realized by such processing is also included.
[0101] Thus, the present invention includes those obtained by making changes and improvements to the embodiments within the technical scope of the invention, which is obvious to those skilled in the art from the description of the claims.
Explanation of Reference Numerals
[0102] 101… Cloud server 102… ROM 103… RAM 104… External memory unit 105… Input unit 107… Network connection interface 108… CPU CV1, CV2, DV1, DV2… Communication speed EQ… Equipment DB1, DB2… Database SVs1, SVs2… Server group T1, T2… Communication time
Claims
1. An information processing apparatus that provides a rendering result of a web page to the client based on a request from the client, storage means for storing the rendering result in either a first database or a second database different from the first database in order to provide the rendering result to the client; selection means for selecting a database to be used by the storage means as a storage destination for the rendering result based on first information regarding the time from the request of the client until the rendering result is provided to the client using the first database and second information regarding the time from the request of the client until the rendering result is provided to the client using the second database; An information processing apparatus, characterized by comprising the above.
2. first calculation means for calculating the first information based on a communication speed between the information processing apparatus and the first database and a communication speed between the client and the first database; second calculation means for calculating the second information based on a communication speed between the information processing apparatus and the second database and a communication speed between the client and the second database; The information processing apparatus according to claim 1, further comprising the above.
3. the time taken for compressing the rendering result, the communication speed between the information processing apparatus and the first database, the communication speed between the client and the first database, third calculation means for calculating the first information based on the time taken for decompressing the compressed rendering result; the time taken for compressing the rendering result, the communication speed between the information processing apparatus and the second database, the communication speed between the client and the second database, and the time taken for decompressing the compressed rendering result, fourth calculation means for calculating the second information based on the above; The information processing apparatus according to claim 1, further comprising the above.
4. The information processing apparatus according to claim 2, further comprising first measurement means for measuring a communication speed based on the HTTP protocol.
5. The information processing apparatus according to claim 2, further comprising second measurement means for measuring a communication speed based on packet transmission and reception.
6. elapsed time calculation means for calculating an elapsed time from a previous request of the client a reselection means for performing the selection means again when the elapsed time exceeds a threshold value; The information processing apparatus according to claim 2, further comprising:
Citation Information
Patent Citations
THIN CLIENT SYSTEM, THIN CLIENT TERMINAL, RELAY DEVICE, AND THIN CLIENT TERMINAL SCREEN UPDATE METHOD
JP4326836B2