Information processing system, information processing device, control method for information processing device, and program
The system optimizes cloud browser operations by pre-storing client device information, minimizing redundant communication and improving efficiency by avoiding repeated requests for unchanged data.
Patent Information
- Application Number
- JP2024094508
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-11
- Publication Date
- 2025-12-23
AI Technical Summary
Existing cloud browser systems incur redundant communication processing by repeatedly requesting client location or sensor information when there is no change, leading to inefficient use of resources.
An information processing system where a cloud server pre-stores local information from a client device, allowing it to generate rendering results without continuous requests for unchanged data, reducing redundant communication.
This approach minimizes redundant communication by utilizing pre-stored client device information, enhancing efficiency and reducing unnecessary data transmission.
Smart Images

Figure 2025185979000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing system, an information processing device, a control method and a program for an information processing device, and in particular to a technique related to API calls when generating a Web page. [Background technology]
[0002] Traditionally, users have used web browsers to browse web pages. Web browsers are now installed not only on personal computers but also on mobile devices such as smartphones and tablets, making it common to browse web pages while on the go.
[0003] A web browser retrieves web content specified by a URL (HTML documents, JavaScript, CSS, etc.), analyzes the web content, generates rendering results through rendering processing, and displays the web content specified by the user. In addition, when a user operates the rendering results via a mouse, touch panel, keyboard, etc., the browser displays the rendering results in response to that operation. The program that takes web content as input and processes the rendering results of the web content is referred to here as the browser engine. The browser engine, the processing of user operations, and the output processing of the rendering results generated by the browser engine are generally all performed within a single device; hereafter, this type of web browser will be referred to as an embedded browser.
[0004] On the other hand, resource-saving devices may not be able to be equipped with an embedded browser. In contrast to this, there is a cloud browser format in which rendering results are generated on a server with a browser engine and displayed on a client device. The client device mainly handles input and output, such as specifying a URL, displaying rendering results, and user operations. The cloud server acquires web content, analyzes the web content, and generates rendering results through rendering processing. In this way, distributing processing allows web content to be displayed and operated even on resource-saving devices. For example, rendering results are converted into images on the server, and the client device displays the images sent from the server.
[0005] By the way, the Geolocation API, a JavaScript API for handling user location information in web content, has been defined by a web standards organization. By using this API, you can obtain user location information and create web content that displays information about stores near the user's location, map information, etc.
[0006] However, in the case of a cloud browser, JavaScript processing is executed on the cloud server, so the location information of the cloud server is handled.
[0007] In response to this, Patent Document 1 discloses a technology that uses location information received from a client device when a Geolocation API is called. In Patent Document 1, a server requests location information from a client device, and the location information received from the client device is used in the Geolocation API. The browser engine has a mechanism for extension with its own functions, making it possible to overwrite the standard Geolocation API or define a non-standardized, proprietary API to execute unique functions. By using this extension, when the Geolocation API or a proprietary JavaScript API is called, the location information and sensor information of the client device are sent to a cloud server, making it possible to use the information from the client device. [Prior art documents] [Patent documents]
[0008] [Patent Document 1] Japanese Patent Application Laid-Open No. 2012-118730 Summary of the Invention [Problem to be solved by the invention]
[0009] However, in the technology described in Patent Document 1, every time an API for acquiring client location information or sensor information is called, a transmission / reception process is generated to request the client for the location information or sensor information, which poses a problem in that redundant transmission / reception process is executed even when there is no change in the location information or sensor information.
[0010] The present invention has been made in view of the above-mentioned problems, and has an object to provide a technique for reducing the occurrence of redundant communication processing. [Means for solving the problem]
[0011] An information processing system according to the present invention that achieves the above object comprises: An information processing system in which a first information processing device processes web content and transmits a rendering result obtained to a second information processing device for display, The second information processing device an acquisition means for acquiring local information of the second information processing device; a transmitting means for transmitting the local information to the first information processing device, The first information processing device a receiving means for receiving the local information from the second information processing device; a storage means for storing the local information; a processing means for processing the Web content based on the local information stored in the storage means to generate the rendering result when the instructions written in the Web content include an instruction to acquire the local information. It is characterized by: [Effects of the Invention]
[0012] According to the present invention, it is possible to reduce the occurrence of redundant communication processing. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a diagram showing an example of the configuration of an information processing system according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing a hardware configuration of an information processing device (cloud server) according to an embodiment. [Figure 3] FIG. 1 is a block diagram showing a hardware configuration of an information processing device (client device) according to an embodiment. [Figure 4] FIG. 2 is a functional block diagram of an information processing apparatus (client device) according to an embodiment. [Figure 5] FIG. 2 is a functional block diagram of an information processing apparatus (cloud server) according to an embodiment. [Figure 6] 5 is a flowchart showing the flow of processing in the information processing device (client device) according to the first embodiment. [Figure 7]4 is a flowchart showing the flow of processing in the information processing device (cloud server) according to the first embodiment. [Figure 8] 10 is a flowchart showing the flow of processing in an information processing device (client device) according to the second embodiment. [Figure 9] 10 is a flowchart showing the flow of processing in an information processing device (cloud server) according to the second embodiment. [Figure 10] FIG. 10 is a diagram showing an example of a table stored in the information processing apparatus (cloud server) according to the second embodiment. [Figure 11] FIG. 10 is a functional block diagram of an information processing device (client device) according to a second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0014] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the claimed invention. Although multiple features are described in the embodiments, not all of these multiple features are necessarily essential to the invention, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same reference numerals are used to designate the same or similar components, and redundant explanations will be omitted.
[0015] (Embodiment 1) <System configuration> 1 is a diagram showing the configuration of an information processing system according to this embodiment, and is a diagram showing the configuration of a cloud browser. Reference numeral 100 denotes an information processing system including a cloud server 101 and a client device 102.
[0016] Reference numeral 101 denotes an information processing device that functions as a cloud server. The cloud server 101 includes a browser engine 103 and an imaging program 104. The cloud server 101 runs on a virtual machine in a cloud environment. Various device resources required for a PC are virtually allocated to the virtual machine. Therefore, the browser engine running on the virtual machine can operate in the same way as when running on a PC.
[0017] An information processing device 102 functions as a client device on the user side who browses a web page. The client device 102 transmits user operations to the cloud server 101, and displays images of web pages generated by the cloud server 101.
[0018] Reference numeral 103 denotes a browser engine. The browser engine 103 analyzes web content obtained from a web content server 105, performs drawing processing, etc., and creates the drawing results of a web page. The browser engine 103 analyzes the syntax of an HTML document and CSS, and generates a DOM tree and a CSSOM (CSS Object Model) that represent each element as a tree structure. The browser engine 103 further generates a render tree that represents the drawing structure based on these trees. The browser engine 103 also analyzes and compiles JavaScript to convert it into machine language and executes the script.
[0019] An imaging program 104 converts the rendering results generated by the browser engine 103 into image data in an image format such as PNG or JPEG. A web content server 105 provides web content such as HTML, JavaScript, and CSS based on requests.
[0020] <Cloud server hardware configuration> 2 is a block diagram showing the hardware configuration of the cloud server 101 according to this embodiment. The cloud server 101 includes, as its main components, a controller unit 201 that controls the entire cloud server 101, a storage device 205, and a communication device 206.
[0021] The controller unit 201 includes a CPU 202, a ROM 203, and a RAM 204. The CPU 202 is one or more CPUs that execute the processing of each processing unit in the cloud server 101. The ROM 203 stores various programs executed by the CPU 202 and data required by the programs. The RAM 204 is composed of SRAM, DRAM, etc., and stores program control variables, etc. Various work buffers are also stored in the RAM 204. The storage device 205 is composed of a hard disk, etc., and stores file data such as documents and images. The communication device 206 is an interface for connecting to a network. One connection method is a LAN.
[0022] The cloud server 101 accesses the web content server 105 to acquire web content, and executes a browser engine 103 program that interprets the web content and generates a rendering result. The cloud server 101 also generates a rendering result corresponding to an input operation based on the input operation received from the client device. The cloud server 101 then uses an imaging program 104 to visualize the rendering result generated by the browser engine 103. Each program is stored in the ROM 203 or the storage device 205, and is read into the RAM 204 where it is processed by the CPU 202. Communication between the web content server 105 and the client device 102 can be performed via the communication device 206.
[0023] <Client device hardware configuration> 3 is a block diagram showing the hardware configuration of the client device 102 according to this embodiment. The client device 102 mainly includes a controller 301 that controls the entire client device 102, an operation device 305, a display device 306, a storage device 307, and a communication device 308.
[0024] The controller unit 301 includes a CPU 302, a ROM 303, and a RAM 304. The CPU 302 is one or more CPUs that execute the processing of each processing unit in the client device 102. The ROM 303 stores various programs executed by the CPU 302 and data required by the programs. The RAM 304 is composed of an SRAM, a DRAM, etc., and stores program control variables, etc. Various work buffers are also stored in the RAM 304.
[0025] The operation device 305 is made up of a keyboard, touch panel, mouse, etc. and is used by the user to perform various input operations. The display device 306 is used to display or notify the user using an LCD, LED display, etc. The storage device 307 is made up of a hard disk, etc. and stores file data such as documents and images. The communication device 308 is an interface for connecting to a network. One connection method is LAN.
[0026] The client device 102 executes various programs, such as programs related to UIs such as a URL input field and a web page display field, and programs related to sending and receiving communications. The programs are stored in the ROM 303 or the storage device 307, read into the RAM 304, and executed by the CPU 302.
[0027] A display device 306 displays UIs and images received from the cloud server 101. A URL specification and operations on a web page are accepted by an operation device 305. Communication with the cloud server 101 can be performed via a communication device 308.
[0028] <Client device functional configuration> 4 is a block diagram showing a schematic diagram of the software functions of the client device 102 in this embodiment. Each unit will be described. Each unit is controlled by a program stored in the ROM 303.
[0029] The communication unit 401 transmits and receives data to and from the cloud server 101. The communication unit 401 receives images of rendering results generated by the cloud server 101, and the like. The communication unit 401 also transmits to the cloud server requests to start and stop use of the cloud server 101, operation requests of user operations received by the client device 102, and requests to set local information that is information unique to the client device 102. User operations include mouse input and touch input, and the operation request includes information about the input content and its coordinates. For example, when sending a request to set local information, the communication unit 401 transmits the related JavaScript API and the local information that is its value.
[0030] The display unit 402 displays an image of the rendering result received by the communication unit 401 and displays UIs such as a URL input field and dialogs generated by the client device 102 .
[0031] The input unit 403 accepts user operations, such as mouse input and touch input (click, double click, mouse down, mouse up, mouse move, touch start, touch end, touch move, etc.) from the operation device 305, such as a touch panel or a mouse, and coordinate input.
[0032] The local information acquisition unit 404 acquires local information of the client device 102 that is handled by a JavaScript API that uses information on the client device 102. For example, since the Geolocation API uses the location information of the client device 102, the local information acquisition unit 404 acquires the location information of the client device 102 from a GPS module (not shown). Also, if a unique JavaScript API that handles the local information of the client device 102 is defined, the corresponding local information is acquired.
[0033] Here, local information includes, for example, the operating status of the client device (operating, paused, etc.), the language setting for UI display, and, if the client device is a printer or scanner, the number of times a job has been executed, but is not limited to these.
[0034] The change detection unit 405 detects changes in the information that is the acquisition target of the local information acquisition unit 404, and acquires new information. For example, the change detection unit 405 detects whether there has been a change in the value of the local information that the communication unit 401 has sent to the cloud server 101, and acquires the changed local information in order to request the cloud server 101 to set the updated value.
[0035] <Cloud server functional configuration> 5 is a block diagram showing a schematic diagram of the software functions of the cloud server 101 in this embodiment. Each unit will be described. Each unit is controlled by a program stored in the ROM 203.
[0036] The communication unit 501 transmits and receives data to and from the client device 102, and acquires web content from the web content server 105. The communication unit 501 receives, for example, a request to start using the cloud server, a request to stop using the cloud server, a request to acquire a rendering result image, a user operation request, a local information setting request, and the like from the client device 102. The communication unit 501 also responds to requests from the client device 102, such as transmitting a rendering result image.
[0037] The content analysis unit 502 performs an analysis process of the Web content received from the Web content server 105. It performs syntax analysis of the HTML document, CSS, and JavaScript, and generates a DOM tree, CSSOM, and render tree, as well as a JavaScript AST (Abstract Syntax Tree).
[0038] The drawing unit 503 generates a drawing result based on the render tree generated by the content analysis unit 502 and the execution result of the JavaScript execution unit 504. The drawing unit 503 also manages the status of changes in the drawing result, and notifies other processing units of any changes in the drawing result.
[0039] The JavaScript execution unit 504 executes JavaScript using the AST generated by the content analysis unit 502 as input. If the standard Geolocation API processing is overwritten as a mechanism for extension with a unique function provided in the browser engine 103, or if a unique API is defined and a unique function is implemented, the JavaScript execution unit 504 executes that processing. For example, as will be described later, the JavaScript execution unit 504 executes processing to return local information obtained from the client device 102 in response to an API call.
[0040] The imaging processing unit 505 converts the drawing result generated by the drawing unit 503 into an image. The created image is sent to the client device 102 via the communication unit 501.
[0041] The input unit 506 executes the contents of mouse input and touch input, which are user operation information obtained from the communication unit 501, and the input of coordinates, as operations on the cloud server 101. The contents of mouse input and touch input include, for example, click, double click, mouse down, mouse up, mouse move, touch start, touch end, touch move, etc. This makes it possible to reflect user operations on the web page or dialog drawn by the drawing unit 503.
[0042] The storage unit 507 stores local information of the client device 102 received from the client device 102. For example, the storage unit 507 stores the local information and the JavaScript API name that handles the local information. For example, if the local information is for a unique JavaScript API called "currentLang" that handles the device's language setting, the storage unit 507 stores the API name "currentLang" and its value, the language setting "en."
[0043] <Client device processing> Next, the flow of processing performed by the client device 102 of this embodiment will be described with reference to the flowchart shown in FIG.
[0044] In S601, the communication unit 401 transmits a server usage start request to the cloud server 101. In S602, the communication unit 401 transmits a JavaScript API that handles local information of the client device 102 and the local information to the cloud server 101. For example, the communication unit 401 transmits the JavaScript API "currentLang" and its corresponding value, "en", which is the application language setting of the client device 102. If there are multiple pairs of the JavaScript API and the local information, the multiple pairs are transmitted to the cloud server 101. Note that this information may be transmitted to the cloud server 101 by being included in the server usage start request.
[0045] In S603, the input unit 403 determines whether or not a user input to the URL field or a user operation on the drawing result image has been detected. If detected (S603-YES), the process proceeds to S604. On the other hand, if not detected (S603-NO), the process proceeds to S607.
[0046] In S604, the communication unit 401 transmits a request for a rendering result image to the cloud server 101. This processing is processing for transmitting a URL to request a rendering result image obtained by rendering Web content corresponding to the URL, or transmitting a user operation on the rendering result image displayed on the client device 102 to request a transition image in response to the user operation.
[0047] In S605, the communication unit 401 acquires the rendering result image transmitted from the cloud server 101. In S606, the display unit 402 displays the rendering result image acquired in S605. Thereafter, the process returns to S603.
[0048] In S607, the change detection unit 405 determines whether the local information has been updated. If the local information has been updated (S607-YES), the process proceeds to S608. On the other hand, if the local information has not been updated (S607-NO), the process proceeds to S609. For example, if the user changes the setting from English "en" to Japanese "ja" via the UI for setting the display language of the client device 102, the UI detects the change in display language as an event notification.
[0049] In S608, the communication unit 401 transmits a local information update request specifying the JavaScript API associated with the changed local information to the cloud server 101. For example, if an update to the language setting described above is detected in S607, the communication unit 401 transmits the changed display language setting "ja" together with the associated JavaScript API "currentLang" to the cloud server 101. Then, the process returns to S603.
[0050] In S609, the input unit 403 determines whether or not termination of the browser application has been detected. If termination of the browser application has been detected (S609-YES), the process proceeds to S610. If termination of the browser application has not been detected (S609-NO), the process returns to S603. For example, if the input unit 403 detects that the browser application has been closed or that a command to turn off the client device 102 has been input, the process determines that the application has been terminated.
[0051] In S610, the communication unit 401 transmits an end request to the cloud server 101 to notify the end of use of the cloud server 101. The above is the series of processes in FIG.
[0052] <Cloud server processing> Next, the flow of processing by the cloud server 101 of this embodiment will be described with reference to the flowchart shown in FIG.
[0053] In S701, the communication unit 501 receives a server usage start request from the client device 102. In S702, the communication unit 501 receives local information and related JavaScript APIs from the client device 102. There may be either a single pair of local information and a related JavaScript API, or multiple pairs.
[0054] In S703, the storage unit 507 associates the local information received in S702 with the related JavaScript API and stores them, and then proceeds to S704. For example, when the JavaScript API "currentLang" and its corresponding value, "en", which is the application language setting of the client device 102, are received, "currentLang" and "en" are associated and stored in the table. When multiple pairs of JavaScript API and local information are received, they are associated and stored.
[0055] The cloud server 101 is accessed by multiple client devices 102, and therefore manages a table for each client device. For example, a client ID that uniquely identifies the client device 102 is stored in association with the table. The client device 102 can manage a table for each client device by including the client ID that uniquely identifies the client device 102 in a request.
[0056] In S704, the communication unit 501 determines whether or not it has received a drawing request for Web content specifying a URL or a user operation request specifying a user operation on a Web page from the client device 102. If it has received a drawing request or a user operation request (YES in S704), it proceeds to S705. If it has not received a drawing request or a user operation request (NO in S704), it proceeds to S709.
[0057] In S705, the JavaScript execution unit 504 determines whether or not a JavaScript API that handles local information when executing JavaScript is described in the Web content. That is, it determines whether or not the JavaScript API to be processed is included in the table stored in the storage unit 507. If it is included in the table (S705-YES), proceed to S706. If it is not included in the table (S705-NO), proceed to S707.
[0058] In S706, the JavaScript execution unit 504 refers to the table in the storage unit 507 to obtain local information corresponding to the JavaScript API call and returns it as the execution result of the JavaScript API. In S707, the drawing unit 503 generates a drawing result based on the render tree generated by the content analysis unit 502 and the execution result of the JavaScript execution unit 504. Then, the imaging processing unit 505 visualizes the drawing result. In S708, the communication unit 501 transmits the drawing result image generated by the imaging processing unit 505 to the client device 102.
[0059] In S709, the communication unit 501 determines whether the received request is a local information update request from the client device 102. If it is a local information update request (S709-YES), the process proceeds to S710. If it is not a local information update request (S709-NO), the process proceeds to S711.
[0060] In S710, the storage unit 507 associates and stores the paired JavaScript API and local information included in the local information update request. For example, the storage unit 507 receives the JavaScript API "currentLang" and its corresponding value, "ja," when the application language setting of the client device 102 has been changed to Japanese. Therefore, the storage unit 507 associates and stores "currentLang" and "ja" in the table. When multiple pairs of JavaScript API and local information are received, the storage unit 507 associates and stores them.
[0061] In S711, the communication unit 501 determines whether the received request is an end request from the client device 102. If it is an end request (S711-YES), the process proceeds to S712. If it is not an end request, the process returns to S704.
[0062] In S712, the storage unit 507 deletes the table that stores the local information and its corresponding JavaScript API. For example, the termination request may include a client device ID that uniquely identifies the client device 102, and the table stored in association with the client device ID may be deleted. This completes the series of processes shown in FIG. 7.
[0063] The processing of this embodiment has been described above with reference to the flowcharts of Figures 6 and 7. By performing this processing, the cloud server 101 pre-stores local information of the client device 102 for a JavaScript API that handles local information. Then, since the stored local information is used for calling the JavaScript API, it is no longer necessary to communicate with the client device 102 for each call.
[0064] In this embodiment, an example has been described in which local information is received in S702 and stored in S703, but the timing of receiving the local information is not limited to this. The local information may be received at any time before the JavaScript execution unit 504 processes JavaScript based on the Web content rendering or user operation request in S704 (before executing the command (JavaScript API) described in the Web content).
[0065] Therefore, the request in S704 may include local information, and if it is included in the request, the local information and the related JavaScript API are associated and stored, and then the JavaScript execution unit 504 processes the JavaScript.
[0066] As described above, in this embodiment, if the instructions (JavaScript API) written in the Web content include an instruction to obtain local information of the client device 102, the cloud server 101 processes the Web content using the local information previously received and stored from the client device 102, generates a drawing result, and transmits it to the client device 102.
[0067] According to this embodiment, a cloud browser is provided that provides client device information to a cloud server in advance, so that information is not acquired from the client device every time an API call is made to acquire client device information, thereby reducing redundant communication processing.
[0068] (Embodiment 2) In the second embodiment, an example will be described in which processing is branched by determining whether the JavaScript API is to be executed by the cloud server 101 or the client device 102. Note that the same processes as those in the first embodiment are designated by the same reference numerals, and descriptions thereof will be omitted.
[0069] Figure 10 is a table that manages the target JavaScript API, execution device, local information, and the method of accessing information required to execute this JavaScript.
[0070] The table records local information when it is set by the target JavaScript API, the execution device, and the client device 102. Also, the access information records information required when executing the target API. For example, when using a web service provided by the client device 102, access information to the web service is recorded, and when access to information in the cloud server 101 is required, that information is stored.
[0071] <Client device functional configuration> FIG. 11 is a block diagram that schematically shows the software functions of the client device 102 in this embodiment.
[0072] In addition to the components shown in the functional block diagram of FIG. 4, the client device 102 further includes a service providing unit 1101 that receives data acquisition, data setting, and processing execution requests for the client device 102 from outside. When the service providing unit 1101 receives a request via communication from outside, it executes the requested processing. The service providing unit 1101 provides, for example, a service defined by a REST (Representational State Transfer) API. This service is a service that can provide information about XXX in the JavaScript API getXXX, or set a value for CCC in the JavaScript API setCCC. It is also a service that performs execution processing related to DDD in the JavaScript API executeDDD.
[0073] This table shows how five JavaScript APIs are registered.
[0074] The JavaScript API getAAA is a process executed by the cloud server 101, and therefore when called, it returns aaaData that has been set in advance by the client device 102. Also, for example, if execution is specified by the client device 102, the table records access information to a service that provides AAA data provided by the client device 102 as "access information," rather than local information.
[0075] Since getBBB is a process executed by the client device 102, it indicates that information about BBB is obtained and returned by accessing https: / / client / service / BBB using the HTTP GET method.
[0076] It is specified that setCCC is to be executed on the client device 102. It is specified that the value for CCC is to be set by using the HTTP POST method and sending a JSON message with the value to be set in $value in the HTTP request body to https: / / client / service / CCC.
[0077] Since executeDDD is a process to be executed by the client device 102, the JSON message entered in the $value argument at the time of execution is written in the HTTP request body using the HTTP POST method. Then, sending it to https: / / client / service / DDD indicates that a process related to DDD will be executed.
[0078] removeCookie is executed by cloud server 101, and the cookie data storage destination on cloud server 101, file: / / data / cookieFile, required to execute this process, is recorded as the access destination. For example, in the case of a cloud browser, cookie information is held by cloud server 101. If removeCookie, which deletes cookies, is defined as an API, it operates as a process executed on the server side to delete cookies stored in cloud server 101. Therefore, the executing device for removeCookie is cloud server 101, and the cookie storage destination such as file: / / data / cookieFile is specified as the access information.
[0079] When removeCookie is called, the storage destination of the cookie to be deleted is identified from the access information in this table. Note that if the cookie to be deleted is from the browser engine 103 defined by a specific API, the cookie can be deleted by calling the API, so there is no need to record the access information.
[0080] The "executing device" recorded in the table may be specified in advance or may be changed depending on conditions. For example, the "executing device" for getAAA is normally the "server," but if it is determined in S709 that the update frequency of the local information is higher than a predetermined number of updates, indicating a high frequency of communication processing, the "executing device" may be dynamically changed, such as being set to the "client." In this case, the cloud server 101 can request the client device 102 not to notify the client device 102 of the update of AAA, thereby stopping the update notification, thereby reducing communication processing.
[0081] <Client device processing> 8 is a flowchart showing the processing flow of the client device 102 in the second embodiment. The difference from the first embodiment is the processing of S801 and S802. The following mainly describes the differences.
[0082] In S801, the communication unit 401 determines whether or not an execution request for a service provided by the service providing unit 1101 has been received from the cloud server 101 (request reception processing). If an execution request has been received (S801-YES), the process proceeds to S802. If an execution request has not been received (S801-NO), the process proceeds to S605. For example, if the communication unit 401 receives an instruction to access https: / / client / service / BBB using the HTTP GET method, it can determine that an execution request for a service that provides BBB information has been received.
[0083] In S802, the service providing unit 1101 executes the service for which the execution request has been received, and then transmits the execution result to the cloud server 101 (result transmission process).
[0084] For example, when https: / / client / service / BBB is accessed, the service providing unit 1101 transmits BBB information, which is local information of the client device 102, to the cloud server 101. When https: / / client / service / CCC is accessed, the service providing unit 1101 obtains the value for "value" specified in the HTTP request body and sets it as the value for CCC. When https: / / client / service / DDD is accessed, the service providing unit 1101 obtains the value for "value" specified in the HTTP request body and executes DDD processing with "value" as an argument.
[0085] Although not specified in Figure 10, a service that provides local information about AAA when https: / / client / service / AAA is accessed may be implemented. The success or failure of each service execution can be expressed by the HTTP status code of the response message.
[0086] <Cloud server processing> 9 is a flowchart showing the flow of processing by the cloud server 101 in the second embodiment. The main difference from the first embodiment is that it includes steps S901 to S904. The following mainly describes the differences.
[0087] In S901, the JavaScript execution unit 504 refers to the table in the storage unit 507 and determines whether the execution device of the target JavaScript API is a "server." If the execution device is a "server" (S901-YES), the process proceeds to S902. If the execution device is not a "server" (S901-NO), the process proceeds to S903. In the example of the table in FIG. 10, if the target API is getAAA or removeCookie, the execution device is determined to be a "server."
[0088] In S902, the JavaScript execution unit 504 executes processing corresponding to the JavaScript API call by referring to the table in the storage unit 507. After that, the process proceeds to S707.
[0089] In the example table of FIG. 10, if the target API is getAAA, the local information "aaaData" is recorded in getAAA, and this local information is returned as the execution result of the JavaScript API. If the target API is removeCookie, the cookie save destination file required to perform the cookie deletion process is registered as access information, and this information is used to delete the file. Note that if the cookie deletion target is the browser engine 103 defined by a specific API, the cookie can be deleted by calling the API. In that case, there is no need for access information for removeCookie; it is sufficient for the table to record that the execution device is a "server."
[0090] In S903, the JavaScript execution unit 504 transmits an execution request for a service provided by the client device 102 via the communication unit 501 (request transmission process). For example, assume that the client device 102 provides, as services defined by the REST API, acquisition of local information such as AAA and BBB, setting of CCC data, and execution of DDD processing. In this case, for getBBB, setCCC, and executeDDD, which are specified to be executed by the client device 102 in the table of Fig. 10, the method of accessing the service is obtained from the access information.
[0091] Then, a request to execute the service is sent according to the access method. In the case of getBBB, an HTTP GET request is sent to https: / / client / service / BBB. In the case of getCCC, an HTTP POST request is sent to https: / / client / service / CCC, with a JSON message specifying the value of the value argument of getCCC in the request body. In the case of getDDD, an HTTP POST request is sent to https: / / client / service / DDD, with a JSON message specifying the value of the value argument of executeDDD in the request body.
[0092] In S904, the JavaScript execution unit 504 receives the execution result for the service execution request from the client device 102 via the communication unit 501 (result reception process), and returns the execution result to JavaScript based on the received execution result. Then, the process proceeds to S707.
[0093] For example, if you access https: / / client / service / BBB and obtain local information BBB, BBB will be returned as the JavaScript execution result. For services that do not return a value when successfully completed, such as https: / / client / service / CCC and https: / / client / service / DDD, there is no process to return a value. However, if an HTTP status code indicating processing failure is received as a response, an error will be returned.
[0094] The processing of this embodiment has been described above using the table in Fig. 10 and the flow charts in Fig. 8 and 9. By performing this processing, it is possible to select whether to perform processing on the cloud server 101 or the client device 102 based on conditions such as the update frequency of the local information, thereby reducing unnecessary communication and the communication frequency.
[0095] The disclosure of this specification includes the following information processing system, information processing device, control method for an information processing device, and program. (Item 1) An information processing system in which a first information processing device processes web content and transmits a rendering result obtained to a second information processing device for display, The second information processing device an acquisition means for acquiring local information of the second information processing device; a transmitting means for transmitting the local information to the first information processing device, The first information processing device a receiving means for receiving the local information from the second information processing device; a storage means for storing the local information; a processing means for processing the Web content based on the local information stored in the storage means to generate the rendering result when the instructions written in the Web content include an instruction to acquire the local information. An information processing system comprising: (Item 2) The second information processing device further comprising a detection means for detecting an update of the local information of the second information processing device; 2. The information processing system according to item 1, wherein the transmitting means transmits the updated local information to the first information processing device when an update of the local information is detected. (Item 3) The first information processing device The information processing system described in item 1 or 2, further comprising a deletion means for deleting the local information stored in the storage means when a termination request is received from the second information processing device by the receiving means. (Item 4) The first information processing device a determination means for determining whether the instruction is an instruction to be processed by the first information processing device or an instruction to be processed by the second information processing device; a request sending means for sending an execution request for the command to the second information processing device when the command is determined to be a command to be processed by the second information processing device; a result receiving means for receiving an execution result of the command from the second information processing device; 4. The information processing system according to any one of items 1 to 3, further comprising: (Item 5) The second information processing device a request receiving means for receiving an execution request from the first information processing device to execute processing of the command in the second information processing device; an execution means for executing the command based on the execution request; a result transmission means for transmitting an execution result of the command to the first information processing device; 5. The information processing system according to any one of items 1 to 4, further comprising: (Item 6) 6. The information processing system according to any one of items 1 to 5, wherein the storage means of the first information processing device stores the command and the local information in association with each other. (Item 7) 7. The information processing system according to any one of items 1 to 6, wherein the local information is information specific to the second information processing device. (Item 8) An information processing system described in any one of items 1 to 7, characterized in that the transmitting means of the second information processing device transmits the local information to the first information processing device before the first information processing device executes the instructions described in the web content. (Item 9) 9. The information processing system according to any one of items 1 to 8, wherein the command is a JavaScript API. (Item 10) 10. The information processing system according to item 9, wherein the JavaScript API includes a Geolocation API. (Item 11) the first information processing device is a cloud server, The second information processing device is a client device. 11. The information processing system according to any one of items 1 to 10, (Item 12) An information processing device that processes web content and transmits a drawing result obtained to another information processing device for display, a receiving means for receiving local information of the other information processing device from the other information processing device; a storage means for storing the local information; a processing means for processing the Web content based on the local information stored in the storage means to generate the rendering result when the instructions written in the Web content include an instruction to acquire the local information; An information processing device comprising: (Item 13) An information processing device that receives and displays a rendering result obtained by processing web content in another information processing device from the other information processing device, an acquisition means for acquiring local information of the information processing device; a transmitting means for transmitting the local information to the other information processing device before the other information processing device executes a command written in the web content; An information processing device comprising: (Item 14) A control method for an information processing device that processes web content and transmits a rendering result to another information processing device for display, a receiving step of receiving local information of the other information processing device from the other information processing device; a storage step of storing the local information in a storage means; a processing step of generating the rendering result by processing the Web content based on the local information stored in the storage means when the instruction written in the Web content includes an instruction to acquire the local information; 1. A method for controlling an information processing device, comprising: (Item 15) A control method for an information processing device that receives and displays a rendering result obtained by processing web content in another information processing device from the other information processing device, an acquisition step of acquiring local information of the information processing device; a transmitting step of transmitting the local information to the other information processing device before the other information processing device executes an instruction described in the web content; 1. A method for controlling an information processing device, comprising: (Item 16) 16. A program for causing a computer to execute the method for controlling an information processing device according to item 14 or 15.
[0096] (Other embodiments) The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program.The present invention can also be realized by a circuit (e.g., ASIC) that realizes one or more functions.
[0097] The invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]
[0098] 100: Information processing system, 101: Cloud server, 102: Client device, 103: Browser engine, 104: Imaging program, 105: Web content server, 401: Communication unit, 402: Display unit, 403: Input unit, 404: Local information acquisition unit, 405: Change detection unit, 501: Communication unit, 502: Content analysis unit, 503: Drawing unit, 504: JavaScript execution unit, 505: Imaging processing unit, 506: Input unit, 507: Storage unit
Claims
1. An information processing system in which a first information processing device processes web content, and transmits a rendering result obtained from the processing to a second information processing device for display, The second information processing device an acquisition means for acquiring local information of the second information processing device; a transmitting means for transmitting the local information to the first information processing device, The first information processing device a receiving means for receiving the local information from the second information processing device; a storage means for storing the local information; a processing means for processing the Web content based on the local information stored in the storage means to generate the drawing result when the instruction written in the Web content includes an instruction to acquire the local information. An information processing system comprising:
2. The second information processing device a detection unit for detecting an update of the local information of the second information processing device; 2. The information processing system according to claim 1, wherein said transmitting means transmits the updated local information to said first information processing device when an update of said local information is detected.
3. The first information processing device 2. The information processing system according to claim 1, further comprising a deletion means for deleting the local information stored in the storage means when a termination request is received by the receiving means from the second information processing device.
4. The first information processing device a determination means for determining whether the instruction is an instruction to be processed by the first information processing device or an instruction to be processed by the second information processing device; a request sending means for sending a request for execution of the command to the second information processing device when the command is determined to be a command to be processed by the second information processing device; a result receiving means for receiving an execution result of the command from the second information processing device; The information processing system according to claim 1 , further comprising:
5. The second information processing device a request receiving means for receiving, from the first information processing device, an execution request for executing processing of the command in the second information processing device; an execution means for executing the command based on the execution request; a result transmission means for transmitting an execution result of the command to the first information processing device; The information processing system according to claim 1 , further comprising:
6. 2. The information processing system according to claim 1, wherein the storage means of the first information processing device stores the command and the local information in association with each other.
7. 2. The information processing system according to claim 1, wherein the local information is information specific to the second information processing apparatus.
8. The information processing system according to claim 1, characterized in that the transmitting means of the second information processing device transmits the local information to the first information processing device before the first information processing device executes the instructions described in the Web content.
9. 2. The information processing system according to claim 1, wherein the command is a JavaScript API.
10. 10. The information processing system according to claim 9, wherein the JavaScript API includes a Geolocation API.
11. the first information processing device is a cloud server, The second information processing device is a client device.
2. The information processing system according to claim 1, wherein:
12. An information processing device that processes web content, transmits a drawing result obtained to another information processing device, and displays the drawing result, a receiving means for receiving local information of the other information processing device from the other information processing device; a storage means for storing the local information; a processing means for processing the Web content based on the local information stored in the storage means to generate the drawing result when the instruction written in the Web content includes an instruction to acquire the local information; An information processing device comprising:
13. An information processing device that receives and displays a rendering result obtained by processing web content in another information processing device from the other information processing device, an acquisition means for acquiring local information of the information processing device; a transmitting means for transmitting the local information to the other information processing device before the other information processing device executes a command described in the web content; An information processing device comprising:
14. A control method for an information processing device that processes web content, transmits a drawing result obtained from the processing to another information processing device, and displays the drawing result, comprising: a receiving step of receiving local information of the other information processing device from the other information processing device; a storage step of storing the local information in a storage means; a processing step of generating the drawing result by processing the Web content based on the local information stored in the storage means when the instruction written in the Web content includes an instruction to acquire the local information; 1. A method for controlling an information processing device, comprising:
15. A control method for an information processing device that receives and displays a rendering result obtained by processing web content in another information processing device from the other information processing device, comprising: an acquisition step of acquiring local information of the information processing device; a transmitting step of transmitting the local information to the other information processing device before the other information processing device executes a command described in the web content; 1. A method for controlling an information processing device, comprising:
16. 16. A program for causing a computer to execute the method for controlling an information processing device according to claim 14.
Citation Information
Patent Citations
Thin client system and program
JP2012118730A