Information processing device, screen sharing system, screen sharing method and computer program
By storing request header information and managing resource file retrieval, the system addresses display discrepancies in screen sharing systems, ensuring accurate and efficient sharing of web pages across terminals.
Patent Information
- Application Number
- JP2024041595
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-15
- Publication Date
- 2025-09-29
AI Technical Summary
Existing screen sharing systems face issues with web page display discrepancies between operator and end user terminals due to differences in display environments, leading to inaccurate sharing of resource files like images and CSS, which are subject to cross-origin request controls and access restrictions.
The system stores request header information and resource file location data, enabling direct or indirect retrieval of resource files from external servers, ensuring accurate sharing by handling access restrictions and cross-origin controls.
This approach ensures consistent and accurate display of web pages across terminals by overcoming access restrictions and cross-origin issues, enhancing the accuracy and speed of screen sharing.
Smart Images

Figure 2025141586000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing device, a screen sharing system, a screen sharing method, and a computer program. [Background technology]
[0002] There is a screen sharing system that enables visual promotion of information communication between operators and end users by sharing a screen displayed on an end user browser via an operator browser (for example, Patent Document 1). The screen sharing system comprises an end user browser that displays a web page, an operator browser, and a relay server connected to each browser via a communication network. The end user browser and operator browser send and receive HTML structure data of the web page via the relay server, and the operator browser realizes screen sharing by reconstructing the web page displayed on the end user browser. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2020-177403 Summary of the Invention [Problem to be solved by the invention]
[0004] However, due to differences in the display environment of the web page, there is a problem that simply transmitting and receiving the HTML structure data of the web page and sharing it results in differences in the web page displayed on the operator terminal and the end user terminal screen.
[0005] An object of the present invention is to provide an information processing device, a screen sharing system, a screen sharing method, and a computer program that can realize more accurate screen sharing of a web page between browsers on two terminals. [Means for solving the problem]
[0006] An information processing device according to one aspect of the present invention includes a communication unit that communicates between a browser of a first terminal and a browser of a second terminal, a processing unit that executes a process related to screen sharing that displays a web page displayed on the browser of the second terminal on the browser of the first terminal, and a storage unit that associates and stores request header information used by the browser of the second terminal that displays the web page when communicating with an external device, and a header information ID, and when the processing unit receives request data that includes location information indicating the location of a resource file that constitutes the web page and the header information ID, the processing unit The request header information is obtained from the memory unit, and resource file request data is generated that includes the location information included in the received request data and the request header information obtained from the memory unit. The communication unit obtains the resource file by directly requesting the resource file from an external server using the generated resource file request data, and if obtaining the resource file fails, obtains the resource file by indirectly requesting the resource file from the external server via the second terminal or via the first terminal and the second terminal, and transmits the obtained resource file to the first terminal.
[0007] A screen sharing method according to one embodiment of the present invention is a screen sharing method for displaying a web page displayed in a browser of a second terminal on a browser of a first terminal, the method comprising: storing, in a memory unit, request header information used by the browser of the second terminal displaying the web page when communicating with an external party, in association with a header information ID; when request data transmitted from the browser of the first terminal, including location information indicating the location of a resource file constituting the web page and the header information ID, obtaining from the memory unit the request header information corresponding to the header information ID contained in the request data; generating resource file request data including the location information contained in the received request data and the request header information obtained from the memory unit; using the generated resource file request data to directly request the resource file from an external server, thereby obtaining the resource file; and if obtaining the resource file fails, obtaining the resource file by indirectly requesting the resource file from the external server via the second terminal, or via the first terminal and the second terminal, and transmitting the obtained resource file to the first terminal.
[0008] A computer program according to one embodiment of the present invention is a computer program for causing a computer to execute a process related to screen sharing in which a web page displayed in a browser of a second terminal is displayed in a browser of a first terminal. The computer program stores, in a memory unit, request header information and a header information ID used by the browser of the second terminal displaying the web page when communicating with an external party, in association with each other; when request data transmitted from the browser of the first terminal is received, the request header information corresponding to the header information ID included in the request data is obtained from the memory unit; resource file request data is generated that includes the location information included in the received request data and the request header information obtained from the memory unit; the computer obtains the resource file by directly requesting the resource file from an external server using the generated resource file request data; and if the acquisition of the resource file fails, the computer obtains the resource file by indirectly requesting the resource file from the external server via the second terminal or via the first terminal and the second terminal; and transmits the obtained resource file to the first terminal. [Effects of the Invention]
[0009] Based on the above, it is possible to provide an information processing device, a screen sharing system, a screen sharing method, and a computer program that can realize more accurate screen sharing of a web page between browsers of two terminals. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating an example of the configuration of a screen sharing system according to an embodiment. [Figure 2] 1 is a block diagram illustrating an example of the configuration of a screen sharing system according to an embodiment. [Figure 3]FIG. 1 is a functional block diagram of a screen sharing system according to an embodiment. [Figure 4] FIG. 10 is a sequence diagram showing a processing procedure for establishing two-way communication and sharing a screen. [Figure 5] FIG. 10 is a sequence diagram showing a procedure for saving context information. [Figure 6] FIG. 10 is a sequence diagram showing a processing procedure for determining a resource file target node and extracting a resource file URL in resource file processing. [Figure 7] FIG. 10 is a sequence diagram showing a processing procedure for obtaining and saving a resource file in resource file processing. [Figure 8] FIG. 10 is a sequence diagram showing a processing procedure for obtaining and saving a resource file in resource file processing. [Figure 9] FIG. 10 is a sequence diagram showing a processing procedure for obtaining and saving a resource file in resource file processing. [Figure 10] FIG. 10 is a sequence diagram showing a processing procedure for obtaining and saving a resource file in resource file processing. [Figure 11] FIG. 10 is a sequence diagram showing a process related to updating a resource file in resource file processing. [Figure 12] FIG. 10 is a sequence diagram showing a process related to replacement of a URL of a resource file and reflection of the URL in a resource file target node in resource file processing. [Figure 13] FIG. 10 is a sequence diagram showing a process related to replacement of a URL of a resource file and reflection of the URL in a resource file target node in resource file processing. DETAILED DESCRIPTION OF THE INVENTION
[0011] An information processing device, a screen sharing system, a screen sharing method, and a computer program according to embodiments of the present disclosure will be described below with reference to the drawings. Note that the present disclosure is not limited to these examples, but is defined by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims. Furthermore, at least some of the embodiments described below may be combined in any manner.
[0012] <Overall configuration of the screen sharing system> 1 is a schematic diagram illustrating an example of the configuration of a screen sharing system according to an embodiment. The screen sharing system according to this embodiment includes an information processing device 1, an agent terminal (first terminal) 2, a guest terminal (second terminal) 3, and a web server (external server) 4. The various terminals and servers are connected to the information processing device 1 via a communication network N.
[0013] A user (hereinafter referred to as an agent) who operates the agent terminal 2 is a person who guides a user (hereinafter referred to as a guest) who operates the guest terminal 3, for example, on how to operate a website. Note that the agent and the guest are examples of users of the information processing device 1 according to this embodiment, and the relationship between them is not particularly limited.
[0014] The screen sharing system according to this embodiment allows an agent and a guest to share a screen and visually promote information transmission. Specifically, this system allows a web page screen displayed on a guest terminal 3 to be shared with an agent terminal 2.
[0015] <Screen sharing system overview> Screen sharing between the agent terminal 2 and the guest terminal 3 can be achieved by sharing HTML structure data. However, a screen sharing system that simply shares HTML structure data has the following problems, which result in differences in the web pages displayed on the agent terminal 2 and the guest terminal 3 when the screens are shared.
[0016] For example, for resource files such as images and CSS included in HTML, the agent terminal 2 will make a direct request to the original URL of the resource file, so there is a possibility that the correct resource file will not be responded to for resource files that are subject to cross-origin request control or control based on the presence or value of certain request headers.
[0017] Furthermore, taking into consideration the control of inter-origin requests and the presence or absence and value of some request headers, even if a request is made to the original URL of a resource file via the information processing device 1 of the screen sharing system, if the resource file is subject to access restrictions using authentication information such as cookies or a client certificate, the request will be rejected and the correct resource file will not be responded to, since neither the agent terminal 2 nor the information processing device 1 holds the authentication information or client certificate.
[0018] In this way, if the correct resource file is not responded, there will be a resource file that cannot be expanded on the agent terminal 2 during screen sharing, resulting in differences in the web pages displayed on the agent terminal 2 and guest terminal 3 during screen sharing. Specifically, when the resource file is an image file, a difference occurs such that an image displayed on the guest terminal 3 is not displayed on the agent terminal 2.
[0019] The screen sharing system of this embodiment can acquire resource files that are subject to various controls and access restrictions, and can improve the display speed and accuracy of the contents of the expanded resource files.This system eliminates differences in web pages displayed through screen sharing on the agent terminal 2 and guest terminal 3, and enables information to be transmitted through screen sharing with greater accuracy.
[0020] <Screen sharing system configuration details> 2 is a block diagram showing an example of the configuration of a screen sharing system according to an embodiment. The information processing device 1 is a computer including a processing unit 11, a storage unit 12, and a communication unit 13. The information processing device 1 may be configured to perform distributed processing using multiple computers, may be realized by multiple virtual machines provided in a single server, may be realized using a cloud server, or may be partially configured by a quantum computer.
[0021] The processing unit 11 has one or more arithmetic processing devices such as a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), etc., and performs the screen sharing processing according to this embodiment by reading and executing a computer program P1 stored in the memory unit 12.
[0022] The storage unit 12 is a storage device such as a hard disk, an EEPROM (Electrically Erasable Programmable Read-Only Memory), or a flash memory. The storage unit 12 stores a computer program P1, an agent program P2, and a guest program P3 required for the processing unit 11 to share the contents of web pages displayed on the respective web browsers between the guest terminal 3 and the agent terminal 2 and the operation details. The agent program P2 and the guest program P3 are programs written in, for example, JavaScript (registered trademark), and the information processing device 1 transmits the agent program P2 to the agent terminal 2 and the guest program P3 to the guest terminal 3. The web browser running on the agent terminal 2 (hereinafter referred to as the agent browser B2) executes the agent program P2 to perform the processing required for screen sharing. The web browser running on the guest terminal 3 (hereinafter referred to as the guest browser B3) executes the guest program P3 to perform the processing required for screen sharing. The various programs may be recorded in a computer-readable manner on a recording medium 5. The storage unit 12 stores the computer program P1, the agent program P2, and the guest program P3 read from the recording medium 5 by a reading device (not shown). The recording medium 5 is a semiconductor memory such as a flash memory, an optical disk, a magnetic disk, a magneto-optical disk, or the like. Alternatively, the various programs according to this embodiment may be downloaded from an external server (not shown) connected to the communication network N and stored in the storage unit 12.
[0023] The communication unit 13 includes a processing circuit, a communication circuit, and the like for performing processing related to communication, and transmits and receives information between the agent terminal 2, the guest terminal 3, and the web server 4.
[0024] The agent terminal 2 is a computer including a processing unit (first terminal processing unit) 21, a storage unit 22, a communication unit 23, an operation unit 24, and a display unit 25. The basic configurations of the processing unit 21, the storage unit 22, and the communication unit 23 are the same as those of the information processing device 1. The storage unit 22 stores at least a program related to an agent browser B2. The agent browser B2 implements a Document Object Model (DOM), a program that references and controls elements constituting a web page, and can execute an agent program P2 transmitted from the information processing device 1. The storage unit 22 also stores the agent program P2 distributed from the information processing device 1. The communication unit 23 transmits and receives information between the information processing device 1 and the guest terminal 3. The operation unit 24 is a keyboard, a mouse, or the like, and receives operation and input of the agent. The display unit 25 is a display device such as a liquid crystal display or an organic EL (Electro Luminescence) display, and displays information provided by the processing unit 21. For example, the display unit 25 displays a management screen 7 (see FIG. 1) related to screen sharing.
[0025] The management screen 7 is a screen for executing a screen sharing process for a web page by reproducing and displaying the web page displayed on the guest browser B3 on the agent browser B2. The management screen 7 includes a screen sharing display area 71. The screen sharing display area 71 is a display area on the management screen 7 for redrawing the web page displayed on the guest browser B3 of the guest terminal 3 based on the HTML data of the web page. The screen sharing display area 71 is configured by, for example, an iframe element or the like.
[0026] The guest terminal 3 is a computer including a processing unit (second terminal processing unit) 31, a storage unit 32, a communication unit 33, an operation unit 34, and a display unit 35. The basic configurations of the processing unit 31, the storage unit 32, and the communication unit 33 are the same as those of the information processing device 1. The storage unit 32 stores at least a program related to a guest browser B3. The guest browser B3 implements DOM, a program that references and controls elements constituting a web page, and can execute a guest program P3 transmitted from the information processing device 1. The storage unit 32 also stores the guest program P3 distributed from the information processing device 1. The communication unit 33 transmits and receives information between the information processing device 1 and the agent terminal 2. The operation unit 34 is a keyboard, a mouse, or the like, and accepts operations and inputs from the guest. The display unit 35 is a display device such as a liquid crystal display or an organic EL display, and renders information provided by the processing unit 31. The display unit 35 displays, for example, a screen sharing execution screen 6 (see FIG. 1 ). The screen sharing execution screen 6 is a screen for realizing screen sharing on the guest terminal 3. The screen sharing execution screen 6 is actually a web page screen of an external website that is the target of screen sharing.
[0027] The web server 4 is a server that transmits a document file of a web page and resource files constituting the web page to the guest browser B3 in response to at least a request from the guest browser B3. The resource files include CSS (Cascading Style Sheets) files, image files, JavaScript (registered trademark) files, etc. that constitute the web page. The web server 4 is also a server that transmits the resource files constituting the web page to the information processing device 1 in response to at least a request from the information processing device 1. In this embodiment, the guest browser B3 accesses the web server 4 and displays the web page.
[0028] 3 is a functional block diagram of a screen sharing system according to an embodiment. The agent terminal 2 has an agent browser B2 as a functional unit, and can execute an agent program P2 transmitted from the information processing device 1. The agent program P2 is transmitted from the information processing device 1 to the agent terminal 2 when the agent browser B2 accesses the information processing device 1 and loads the management screen 7.
[0029] The guest terminal 3 has a guest browser B3 as a functional unit, and can execute a guest program P3 transmitted from the information processing device 1. The guest program P3 is transmitted from the information processing device 1 to the guest terminal 3 when reading a web page to be screen-shared, i.e., a screen-sharing execution screen 6.
[0030] The information processing device 1 includes an API processing unit 11a, a socket processing unit 11b, and a file processing unit 11c. The information processing device 1 also includes an account management database 12a, a screen sharing management database 12b, a screen sharing data relay store 12c, a program file storage 12d, and a resource file storage 12e.
[0031] The API processing unit 11a is a functional unit that acquires various setting data of the screen sharing system from the account management database 12a and distributes it.
[0032] The socket processing unit 11b is a functional unit that establishes communication with the agent browser B2 and the guest browser B3 via WebSocket, enabling two-way communication. The socket processing unit 11b executes processes such as issuing a session ID for identifying a session of the screen sharing process, and sending and receiving various data between the agent browser B2 and the guest browser B3 during screen sharing. Note that WebSocket is an example of a communication connection method, and the socket processing unit 11b may be configured to realize pseudo two-way communication between the agent browser B2 and the guest browser B3 by long polling.
[0033] The file processing unit 11c is a functional unit that acquires and manages resource files that constitute a web page to be shared, and performs file processing of the resource files.
[0034] The account management database 12a is a database that stores various setting data for the screen sharing system. The setting data specifies items on a web page that cannot be shared, specifies the layout of various buttons displayed on the web page, and so on, and is managed for each account that uses the screen sharing system.
[0035] The screen sharing management database 12b is a database that stores session IDs and the like for identifying sessions of screen sharing processing.
[0036] The screen sharing data relay store 12c is a relay server that relays various data during screen sharing that is transmitted and received between the agent browser B2 and the guest browser B3. It also relays request data and response data related to file processing of resource files (described later) that are transmitted and received between the agent terminal 2 and the guest terminal 3.
[0037] The program file storage 12d is a storage that stores HTML files, CSS files, image files, computer program P1, agent program P2, guest program P3, etc. that constitute the management screen 7 displayed on the agent browser B2. The computer program P1 is a program for executing main processing on the information processing device 1 and is necessary for realizing various processing units. The agent program P2 is a program for executing main processing on the management screen 7. The guest program P3 is a program for executing main processing on the screen sharing execution screen 6.
[0038] The resource file storage 12e is a storage for storing information used or acquired in file processing of resource files that constitute a web page to be screen-shared. Specifically, the resource file storage 12e stores the following information: (1) Context information: A data file used when the information processing device 1 makes a request to the external web server 4 that distributes the resource file. For example, the context information is a structured data file in JSON format or the like that contains information such as the document type declaration information, title, and URL of the web page displayed by the guest browser B3 (hereinafter referred to as web page information), and information such as the origin, referrer, and user agent used when the guest browser B3 communicates with the web server 4 (hereinafter referred to as request header information). A unique ID (hereinafter referred to as a context ID) is assigned to each piece of saved context information. The context information includes request header information, and the context ID functions as a header information ID for identifying the request header information. (2) Resource files: These are the resource files such as images and CSS included in HTML. Each saved resource file is assigned a unique ID (hereafter referred to as a resource file ID). (3) Index file: A structured data file in JSON format or similar that stores information indicating the storage path of the latest resource file for each hash value of the original URL of the resource file. The original URL is location information written in the HTML of the web page displayed in guest browser B3 that indicates the location of the resource file required to compose the web page.
[0039] <Screen sharing> When an agent uses the screen sharing system according to this embodiment, the agent accesses the management screen 7. Specifically, when the agent accesses the URL of the management screen 7 from the agent browser B2, the information processing device 1 transmits the HTML files and resource files required for displaying the management screen 7, as well as the agent program P2, and the agent browser B2 reads these files and the agent program P2 to display the management screen 7. The management screen 7 is a screen for executing the screen sharing process of the web page.
[0040] When a guest uses the screen sharing system according to this embodiment, the guest accesses a screen sharing execution screen 6. The screen sharing execution screen 6 is actually an external web page that is the target of the screen sharing system. Specifically, when the guest accesses the URL of a web page from the guest browser B3, the web server 4 transmits the HTML file and resource file required to display the web page. The information processing device 1 also transmits the guest program P3. The guest browser B3 loads the files and the guest program P3 transmitted from each server and displays the screen sharing execution screen 6. As a prerequisite, the screen sharing execution screen 6 delivered by the web server 4, i.e., the HTML of the web page, contains a script tag containing location information (src) for the guest program P3. Therefore, when the web page is loaded, the guest program P3 is loaded. When the guest program P3 is loaded, the guest browser B3 acquires setting data for the screen sharing system from the information processing device 1.
[0041] FIG. 4 is a sequence diagram showing the processing steps for establishing two-way communication and screen sharing. When starting screen sharing processing using this system, the socket processing unit 11b of the information processing device 1 establishes communication between the agent browser B2 and the guest browser B3 via WebSocket (step S1). The procedure for establishing communication is not particularly limited. The agent browser B2 and the guest browser B3 are able to perform two-way communication with the information processing device 1. Furthermore, the agent browser B2 and the guest browser B3 are able to send and receive data required for sharing the web page screen via the information processing device 1. The information processing device 1 issues a session ID when starting the screen sharing processing and transmits the issued session ID to the agent browser B2 and the guest browser B3 at an appropriate time. The agent terminal 2 and the guest terminal 3 receive and store the session ID. The information processing device 1 saves the session ID in the screen sharing management database 12b.
[0042] Next, the information processing device 1, the agent browser B2, and the guest browser B3 execute a process of saving context information, which is information necessary for file processing of resource files of the screen sharing system (step S2). The process of saving context information will be described in detail later.
[0043] When the screen sharing process starts, the guest browser B3 creates initial screen sharing data based on the web page displayed on the guest browser B3 and transmits it to the agent browser B2 via the information processing device 1 (step S3). The initial screen sharing data includes page size data, HTML data, guest operation data, etc. The page size data included in the initial screen sharing data includes information indicating the height and width of the display area on the screen of the web page at the time the data was created. The HTML data included in the initial screen sharing data includes information (all) of the nodes that make up the web page at the time the data was created. The HTML data is information indicating the HTML structure of the webpage to be screen-shared, and is nested data generated in JSON (JavaScript (registered trademark) Object Notation) format. Specifically, the HTML data is information about the nodes that make up the webpage, and includes a unique identifier for identifying the node (hereinafter referred to as nodeID), the node type (hereinafter referred to as nodeType), the element name (hereinafter referred to as tagName), the property value (hereinafter referred to as property), and child node information (hereinafter referred to as childNodes). The nodeID is a unique identifier assigned to each node that makes up the webpage. The nodeType is an integer code that indicates the type of node, such as "1" for an element node (ELEMENT_NODE), "3" for a text node (TEXT_NODE), and "8" for a comment node (COMMENT_NODE). The tagName is the name of the node's element, and is present only when the nodeType is "1." For example, the tagName is expressed as "P" for an element representing a paragraph, or "IMG" for an element representing an image. In addition to attributes defined in HTML such as id and class, property has different data depending on the type of tagName. For example, if tagName is "INPUT", there is the input value (value), check status (checked), etc. Therefore, it is necessary to predetermine the property to be obtained depending on the value of tagName. childNodes is information about the nodes that are children of the node in question, and is repeated as long as there are child nodes. The guest operation data included in the initial screen sharing data includes data similar to that when a mouse cursor movement operation event occurs, i.e., data indicating the coordinates of the mouse cursor at the time the data is created (mouse cursor data), and also includes data similar to that when a scroll operation event occurs, i.e., data indicating the amount of scrolling of the web page at the time the data is created (scroll data).
[0044] When the agent browser B2 receives the initial screen sharing data transmitted from the guest browser B3, it analyzes the received initial screen sharing data and executes file processing of the resource file (hereinafter referred to as resource file processing) (step S4). The resource file processing will be described in detail later.
[0045] The agent browser B2 also analyzes the received initial screen sharing data, reconstructs a web page similar to the one displayed on the guest browser B3 in the screen sharing display area 71 on the management screen 7, and reproduces the operation content of the guest (step S5). Specifically, the agent browser B2 sets the height and width of the screen sharing display area 71 to values indicated by the page size data. The agent browser B2 also creates and adds a node on the screen sharing display area 71 based on the HTML data. Furthermore, the agent browser B2 sets the position of the mouse cursor element, which indicates the coordinates of the guest's mouse cursor and which has been added to the screen sharing display area 71, to a value indicated by the mouse cursor data included in the guest operation data. Furthermore, the agent browser B2 sets the scroll amount of the screen sharing display area 71 to a value indicated by the scroll data included in the guest operation data.
[0046] The document type declaration set in the screen sharing display area 71 is the same as the document type declaration of the web page displayed by the guest browser B3. The content of the document type declaration of the guest browser B3 is obtained from context information. The document type declaration of the web page displayed in the screen sharing display area 71 may be set by the agent browser B2, or the information processing device 1 may create a template in which the document type declaration is set and provide it to the agent browser B2. The agent browser B2 displays the template in which the document type declaration is set in the screen sharing display area 71, and reconstructs and reflects the web page to be screen shared on the template.
[0047] For convenience of explanation, steps S4 and S5 are explained separately, but the processing of step S4 may be executed during the processing of step S5, or some of the processing may be executed in parallel.
[0048] Thereafter, the guest browser B3 and the agent browser B2 monitor the state of the web page (page size, HTML structure, operation, etc.), and if a change is detected, create data including the changes, transmit the data via the information processing device 1, and the browser that receives the data reflects the changes in the web page. That is, each time a change or operation on the web page is detected, the processes of steps S6 to S10, which will be described later, are repeatedly executed.
[0049] Specifically, the guest browser B3 monitors the status of the web page, and if it detects changes in the page size, HTML structure, operation, etc., it creates data including the changes and sends the data to the agent browser B2 via the information processing device 1 (step S6).
[0050] The agent browser B2 receives the data including the changes sent from the guest browser B3, analyzes the received data, performs resource file processing as necessary (step S7), and reflects the changes in the agent browser B2 (step S8).
[0051] For convenience of explanation, steps S7 and S8 are explained separately, but the processing of step S7 may be executed during the processing of step S8, or some of the processing may be executed in parallel.
[0052] Similarly, the agent browser B2 monitors the state of the web page, and if it detects a change in the HTML structure, operation, or the like, it creates data including the changes and transmits the data to the guest browser B3 via the information processing device 1 (step S9). The guest browser B3 receives the data including the changes transmitted from the agent browser B2, analyzes the received data, and reflects the changes in the guest browser B3 (step S10).
[0053] Every time the guest browser B3 changes or updates a web page, the processes of steps S2 to S10 are repeatedly executed.
[0054] <Saving context information> 5 is a sequence diagram showing the procedure for saving context information. At the start of screen sharing, i.e., in step S2, the guest browser B3 creates context information including web page information such as document type declaration information, title, and URL of the displayed web page, and request header information such as origin, referrer, and user agent used when the guest browser B3 communicates with the web server 4 (step S11), and transmits the created context information to the agent browser B2 via the socket processing unit 11b of the information processing device 1 (step S12).
[0055] The agent browser B2 transmits the received context information to the file processing unit 11c of the information processing device 1 (step S13). Note that although an example in which the context information is transmitted from the guest browser B3 to the information processing device 1 via the agent browser B2 has been described here, the context information may be transmitted directly from the guest browser B3 to the information processing device 1. For example, when two-way communication between the agent browser B2 and the guest browser B3 is established, a path is also provided through which the guest browser B3 and the information processing device 1 can communicate individually, and the context information can be transmitted from the guest browser B3 to the information processing device 1.
[0056] The information processing device 1 receives the context information transmitted from the agent browser B2, and the file processing unit 11c of the information processing device 1 issues a unique context ID that identifies the received context information (step S14). Then, the information processing device 1 associates the received context information with a unique ID that identifies the account to which the agent belongs (hereinafter referred to as account ID) and the context ID, and stores the associated information in the resource file storage 12e (step S15). The storage path for the context information is, for example, " / ${account ID} / contexts / ${context ID}". Note that the actual entity of ${account ID} included in the storage path for the context information means a folder created with a character string indicating the account ID, and similarly, the actual entity of ${context ID} means a folder created with a character string indicating the context ID. Also, here, the account ID, context ID, and context information are associated with each other by the storage path of the context information, but the method for associating the account ID, context ID, and context information is not particularly limited.
[0057] After completing the storage of the context information, the information processing device 1 transmits the issued context ID to the agent browser B2 as a response (step S16).
[0058] The agent browser B2 receives the context ID transmitted from the information processing device 1 and stores the received context ID in the storage unit 22 (step S17). The context ID is used in resource file processing, which will be described later.
[0059] The resource file processing will be described in detail below. <Resource file processing- Determining the target node for the resource file and extracting the resource file URL> 6 is a sequence diagram showing the processing steps for determining a resource file target node and extracting a resource file URL in resource file processing. After starting screen sharing, when the agent browser B2 receives HTML data transmitted from the guest browser B3, that is, in steps S4 and S7, the agent browser B2 executes the following processing. The agent browser B2 determines whether a node included in the received HTML data, that is, a node to be added or changed on the screen sharing display area 71, is a resource file target node (step S21).
[0060] A resource file target node is a node that has the function of externally acquiring, expanding, and using resource files such as CSS files and image files. Examples of resource file target nodes include an IMG element node, a LINK element node, or a text node under a STYLE element node.
[0061] The purpose of determining whether a node is a resource file target node is that, for resource file target nodes, there is a possibility that a resource file will be loaded from the resource file URL contained in a specific property of the node during screen sharing, so it is necessary to properly perform the resource file processing described below and obtain the correct resource file so as not to be subject to controls or access restrictions.
[0062] The method for determining whether a node is a resource file target node is to check whether it matches a predefined combination of node type and element name based on the node type (nodeType) and element name (tagName), and if so, to determine whether it is a resource file target node.If the node is a text node or other node other than an element node, the element name is not defined, so in that case, the node is determined to be a resource file target node based on the element name of the element node located as the parent of the node.
[0063] For example, the agent program P2 may include a resource file target node determination table that associates the type of node that corresponds to the resource file target node with the name of the element, and the agent browser B2 may determine whether the node to be determined is a resource file target node by referring to the resource file target node determination table.
[0064] If it is determined in step S21 that the node is a resource file target node (step S21: YES), the agent browser B2 determines whether or not a specific property is included in the HTML data of the node (step S22). Note that the specific property is defined in advance for each combination of node type and element name, and in the case of an element node, the entity is an attribute, etc. As an example, the specific property would be the src attribute and srcset attribute if the node is an IMG element node, the href attribute if the node is a LINK element node, the textContent property if the node is a text node under a STYLE element node, or the style attribute if the node is any of the element nodes.
[0065] For example, in order to determine specific properties, the agent program P2 may include a specific property determination table that associates the node type, the element name, and the name of the specific property, and the agent browser B2 may determine whether the property to be determined is a specific property by referring to the specific property determination table.
[0066] If a specific property is included (step S22: YES), the agent browser B2 identifies the value of the property as a target for resource file processing, and extracts the original URL of the resource file from the identified property value (step S23).
[0067] If the property value contains the original URLs of multiple resource files, all of them are extracted. For example, the extracted URL is the entire value if it is the src attribute of an IMG element node or the href attribute of a LINK element node, or the string described as the argument to the url function defined in the value (CSS) if it is the textContent property of a text node under a STYLE element node or the style attribute of any element node. If the extracted URL is a relative value, it is converted to an absolute value based on, for example, the baseURI property defined in the Document of the web page being shared on the screen.
[0068] If the original URL is extracted in step S23, the following processes are executed: acquisition and storage of the resource file (step S24), updating of the resource file (step S25), and replacement of the URL of the resource file and reflection of the URL in the resource file target node (step S26). Details of steps S24 to S26 will be described later. For the sake of convenience, the processes of steps S24 and S25 are explained separately, but in reality, the process of step S25 is executed within the process of step S24.
[0069] In the process of step S23, if the original URL of the resource file is not included in the property value, the processes of steps S24 and S25 described below are not executed, and the process of step S26 is executed.
[0070] Furthermore, if it is determined in step S21 that the node is not a resource file target node (step S21: NO) or if it is determined that the specific property is not included (step S22: NO), resource file processing is not performed on the HTML data, and the HTML data is reflected on the screen sharing display area 71. In other words, the agent browser B2 determines that it is not necessary to acquire a resource file, and develops the nodes and properties that do not require a resource file on the screen sharing display area 71. On the other hand, for HTML data that corresponds to a specific property of the resource file target node, the content is reflected on the screen sharing display area 71 after resource file processing.
[0071] <Resource file processing - Obtaining and saving resource files> 7 to 10 are sequence diagrams showing the processing steps for acquiring and saving resource files in resource file processing. The agent browser B2 executes the following processing for each source URL of the resource file extracted in the above-mentioned processing for determining the resource file target node and extracting the source URL of the resource file.
[0072] Note that, for the second or subsequent processing of the source URL of a resource file that has already been processed during a screen sharing session of the current web page, in order to improve processing efficiency, only the processing of step S65 may be performed based on the index file corresponding to the source URL of the resource file that has already been processed, and the processing of steps S31 to S64 may not be performed. The second or subsequent processing of the source URL of a resource file that has already been processed means, for example, processing of the src attribute of the second or subsequent IMG element node when there are multiple IMG element nodes that have the same URL as their src attribute.
[0073] First, the agent browser B2 calculates a hash value (resource file identification information) based on the original URL of the resource file (step S31). A URL hash value is a character string of a fixed length calculated using an algorithm such as SHA256, and is unique for each URL. The hash value is, for example, 256-bit data. In this embodiment, the method for calculating the hash value is not particularly limited. The purpose of calculating the URL hash value is to enable the resource file and index file (described later) to be saved separately as paths for each URL. Note that it is possible to use the URL character string directly as the save path instead of the hash value by encoding it. However, some URLs may be very long, and in some legacy browsers, the paths of the saved resource file and index file may be too long to be read as a URL. For this reason, a hash value created as a character string of a fixed length regardless of the URL is used.
[0074] Next, the agent browser B2 creates a URL for requesting the index file using the account ID to which the agent belongs and the hash value of the original URL of the resource file calculated in the processing of step S31 (step S32), and sends the request to the file processing unit 11c of the information processing device 1 using the URL (step S33).
[0075] The URL path of the index file is, for example, " / ${account ID} / resources / ${hash value of the original URL of the resource file} / index.json." The domain of the URL of the index file is the domain assigned to the file processing unit 11c of the information processing device 1. The index file is structured data, such as JSON format, created for each original URL of the resource file and describing the storage path of the latest resource file stored in the resource file storage 12e. The purpose of the agent browser B2 acquiring the index file is to eliminate the need to re-acquire the resource file from the external web server 4 if the resource file has already been processed and stored in a previous screen sharing session. However, since the storage path of the resource file includes a unique resource file ID issued for each save, as described below, the agent browser B2 cannot recognize the storage path of the latest resource file and cannot access it as is. To address this issue, an index file is created and the storage path is stored. This allows the agent browser B2 to recognize the correct storage path of the resource file, enabling efficient resource file acquisition without accessing the external web server 4.
[0076] Upon receiving the request for the index file, the file processing unit 11c of the information processing device 1 acquires the index file corresponding to the path of the URL requested by the agent from the resource file storage 12e (step S34).
[0077] Then, the file processing unit 11c determines whether or not the index file has been successfully acquired (step S35). If the index file has been successfully acquired (step S35: YES), the file processing unit 11c transmits the index file acquired from the resource file storage 12e as a response (step S36). Furthermore, the information processing device 1 includes, in the response header to be transmitted, the date and time when the index file was last updated as last update date and time information. The reason for including the last update date and time information will be described later.
[0078] If the agent browser B2 has successfully acquired the index file, that is, if the index file has been sent as a response from the file processing unit 11c of the information processing device 1, the agent browser B2 acquires the storage path of the resource file from the acquired index file (step S37). Although not described here, if the agent browser B2 has successfully acquired the index file, it updates the resource file, as described below, as necessary (see FIG. 11). Note that the index file is not cached in the browser because it is necessary to always hold the storage path of the latest resource file. Specifically, the information processing device 1 transmits cache control information (for example, "no-cache") instructing the agent browser B2 not to cache to the agent browser B2 in a response header included therein.
[0079] On the other hand, if acquisition of the index file fails (step S35: NO), the file processing unit 11c of the information processing device 1 sends an error indicating the failure of acquisition as a response to the agent browser B2 (step S38). That is, if the resource file is not saved, that is, if resource file processing is performed for the resource file for the first time, or if the index file has been deleted due to the expiration of the storage period described later, the index file is not saved in the resource file storage 12e, and therefore the agent browser B2 sends an error indicating the failure of acquisition as a response.
[0080] If the agent browser B2 fails to acquire the index file, that is, if it receives an error response from the file processing unit 11c of the information processing device 1, it sends request data to the file processing unit 11c of the information processing device 1 to acquire the resource file itself from the web server 4 that distributed the resource file (step S39). At the time of the request, the context ID and the original URL of the resource file are included in the request body or a query parameter of the request URL and sent.
[0081] The file processing unit 11c of the information processing device 1 that has received the request to acquire the resource file body acquires context information from the resource file storage 12e based on the account ID to which the agent belongs and the context ID included in the request body received from the agent or the query parameter of the request URL (step S40), and also extracts request header information included in the acquired context information (step S41).
[0082] Next, resource file request data for acquiring the resource file is created (step S42), the original URL of the resource file is set in the request URL constituting the resource file request data (step S43), and the acquired request header information is set in the request header (step S44).
[0083] Then, the file processing unit 11c of the information processing device 1 uses the resource file request data to access the web server 4 that is the distribution source and transmits a request for the resource file (step S45). The web server 4 determines whether the request is to be permitted, for example, whether the request is for access to a resource file that is subject to access restrictions based on authentication information such as a cookie or a client certificate, and whether the request is subject to restrictions (step S46). If it is determined that the request is to be permitted (step S46: YES), the web server 4 transmits the resource file corresponding to the resource file request data as a response (step S47). If it is determined that the request is not to be permitted (step S46: NO), the web server 4 is expected to reject the request based on the resource file request data. In this case, the web server 4 does not transmit the resource file as a response, but transmits an error as a response (step S50).
[0084] If the resource file has been successfully acquired, i.e., if the resource file has been sent as a response from the web server 4, the file processing unit 11c of the information processing device 1 determines whether the Content-Type information included in the response header of the resource file is an allowed Content-Type (step S48). The purpose of determining whether the Content-Type is an allowed Content-Type is, for example, because if the Content-Type of the resource file is "text / javascript," which indicates a JavaScript (registered trademark) file, there is a possibility of security issues such as cross-site scripting occurring during screen sharing, and therefore it is necessary to prevent reading. Note that allowed Content-Types include, for example, "text / css," which indicates a CSS file, or "image / png," which indicates an image file in PNG format.
[0085] If the file processing unit 11c of the information processing device 1 determines that the Content-Type is permitted (step S48: YES), it sends the resource file as a response to the agent browser B2 (step S49). The response header of the response to be sent also includes the corresponding Content-Type information. If the agent browser B2 has successfully acquired the resource file, that is, if the resource file has been sent as a response from the file processing unit 11c of the information processing device 1, it performs processing of step S57, which will be described later.
[0086] If it is determined that the Content-Type is not permitted (step S48: NO), or if acquisition of the resource file fails, i.e., if an error is sent as a response from the web server 4, the file processing unit 11c of the information processing device 1 similarly sends an acquisition failure error as a response to the agent browser B2 (step S51).
[0087] If the agent browser B2 fails to acquire the resource file, that is, if it receives an error response sent from the file processing unit 11c of the information processing device 1, it determines whether the origin of the source URL of the resource file is the same as the origin of the URL of the web page whose screen is being shared (step S52). The purpose of determining whether the origins are the same is that, if the origins are the same, acquisition of the resource file from the guest browser B3 (described later) does not fall under the cross-origin request control, and therefore acquisition of the resource file can be executed. Note that if the source URL of the resource file is a URL in data URL format or blob format, it is determined to be the same origin.
[0088] If it is determined that the origins are not the same (step S52: NO), the agent browser B2 executes the process of step S58, which will be described later. If it is determined that the origins are the same (step S52: YES), that is, if acquisition of the resource file from the file processing unit 11c of the information processing device 1 has failed and the original URL of the resource file has been determined to be the same origin, the agent browser B2 sends request data to the guest browser B3 via the socket processing unit 11b of the information processing device 1, to acquire the resource file itself from the web server 4 that distributed the resource file (step S53). The request data includes the original URL of the resource file.
[0089] The guest browser B3 accesses the web server 4 that is the distribution source based on the original URL of the received resource file and transmits a request for the resource file (step S54). The purpose of requesting a resource file from the guest browser B3 is that there is a high possibility that the guest browser B3 can obtain a resource file that cannot be obtained by a request from the file processing unit 11c of the information processing device 1 described above. Specifically, it is a resource file that is subject to access restrictions based on authentication information such as a cookie or a client certificate, and since it is assumed that the guest browser B3 has the respective cookie or client certificate as a prerequisite, there is a high possibility that the resource file will not be subject to access restrictions and can be obtained.
[0090] The web server 4 transmits the resource file in response to the request as a response (step S55).
[0091] The guest browser B3 receives the resource file transmitted from the web server 4 and transmits the received resource file as a response to the agent browser B2 via the socket processing unit 11b of the information processing device 1 (step S56). The response data to be transmitted includes Content-Type information contained in the response header of the resource file.
[0092] When the agent browser B2 receives a resource file sent from the information processing device 1 in step S49 or a resource file sent from the guest browser B3 in step S56, it determines whether the Content-Type information included in the response header or response data of the received resource file is an allowed Content-Type, as in step S48 (step S57).
[0093] If the agent browser B2 determines that the Content-Type is permitted (step S57: YES), it executes the process of step S60, which will be described later. If the agent browser B2 determines that the Content-Type is not permitted (step S57: NO), it regards the resource file as not existing, creates the resource file as an empty file (step S58), and specifies a content indicating that it is a text file, such as "text / plain," as the Content-Type (step S59). By creating the resource file as an empty file, an index file, which will be described later, can be created. Therefore, from the next time onwards, when resource file processing is performed on the resource file, resource file acquisition and storage processes, etc., are not required. Note that even if the resource file cannot be acquired, i.e., if the file processing unit 11c of the information processing device 1 fails to acquire the resource file and the origin of the source URL of the resource file is different from the origin of the URL of the web page whose screen is being shared, the agent browser B2 also executes the processes of steps S58 to S59.
[0094] The agent browser B2 transmits a request to the file processing unit 11c of the information processing device 1 to store the resource file acquired by the above-described processing in the resource file storage 12e (step S60). Specifically, the agent browser B2 includes a hash value of the original URL of the resource file in the path or query parameter of the request URL. The agent browser B2 also sets the resource file as the request body and transmits the request with the corresponding Content-Type information included in the request header (step S60).
[0095] If the Content-Type of the resource file determined in step S57 is not "text / css" or other content indicating a CSS file, step S60 is executed. If the Content-Type of the resource file determined in step S57 is "text / css" or other content indicating a CSS file, the URL of an external resource file referenced by the CSS file may be included in the CSS file. Therefore, the agent browser B2 extracts the original URL of each resource file included in the CSS file. The original URL of a resource file is, for example, a character string described as an argument of the url function. If the extracted URL is a relative value, it is converted to an absolute value based on the original URL of the resource file (CSS file) from which it was extracted. The agent browser B2 executes steps S31 to S65 for each extracted original URL of each resource file, and after completing the series of processes for each resource file, replaces the original URL of each resource file described in the resource file (CSS file) from which it was extracted with the storage path of the resource file storage 12e. After the replacement process is completed, the agent browser B2 executes the process of step S60 using the original resource file (CSS file) after the replacement has been applied. If the original URL of the resource file is not included in the original resource file (CSS file), the agent browser B2 executes the process of step S60 using the acquired resource file as is.
[0096] When the file processing unit 11c of the information processing device 1 receives a resource file save request, it issues a unique resource file ID to the resource file (step S61). The file processing unit 11c associates the account ID of the agent, the hash value of the source URL of the resource file, and the resource file ID with the received Content-Type information, and saves the resource file in the resource file storage 12e (step S62). The save path is, for example, " / ${account ID} / resources / ${hash value of the source URL of the resource file} / ${resource file ID}." A save period (resource file save period) is set for the saved resource file, and the saved resource file is automatically deleted after a certain period. The resource file save period is, for example, 14 days. The purpose of issuing a unique resource file ID for each save of a resource file's source URL is to address the possibility that a resource file with changed content may be saved in the future, even if the URL is the same, due to resource file updates (described later). By enabling the browser cache for retrieving the saved resource file and accelerating the response speed, the display speed during screen sharing can be improved.
[0097] After the resource file has been saved, the file processing unit 11c of the information processing device 1 creates an index file including the storage path of the resource file, associates the created index file with the account ID to which the agent belongs and the hash value of the original URL of the resource file, and saves the index file in the resource file storage 12e (step S63). The storage path of the index file is as described in the processing of step S32. If an index file already exists, it is overwritten and saved. The index file itself is structured data in JSON format or the like including the storage path of the resource file. The storage path of the resource file is expressed, for example, as " / ${account ID} / resources / ${hash value of the original URL of the resource file} / ${resource file ID}". Specifically, it is a character string such as " / 1 / resources / abcdefg... / 10", where "1" is the account ID, "abcdefg..." is the hash value of the original URL, and "10" is the resource file ID. In addition, a storage period (index file storage period) is set for the saved index file, and it is set to be automatically deleted after a certain period. The index file storage period is, for example, 7 days. Note that since the index file needs to store the storage paths of valid resource files in order to store the storage paths of the resource files, it is appropriate to set the storage period for the index file to be shorter than that of the resource files.
[0098] Next, after the resource file and the index file have been saved, the file processing unit 11c of the information processing device 1 transmits the index file to the agent browser B2 as a response (step S64).
[0099] The agent browser B2 receives the index file transmitted from the information processing device 1, and acquires the storage path of the resource file from the received index file (step S65).
[0100] <Resource file processing - updating resource files> Fig. 11 is a sequence diagram showing the process related to updating a resource file in resource file processing. The process shown in Fig. 11 is executed when the agent browser B2 successfully acquires the index file in the process related to acquiring and saving the resource file described above. Specifically, when the agent browser B2 receives the index file transmitted from the information processing device 1 in the process of step S36 described above (step S71), it acquires the last update date and time information included in the response header of the index file (step S72).
[0101] Next, the agent browser B2 determines whether the date and time described in the acquired last update date and time information is earlier than the date and time obtained by subtracting a predefined update interval from the current date and time (step S73). In other words, it determines whether a predetermined update interval has elapsed since the date and time described in the last update date and time information. The update interval is, for example, 24 hours. If the agent browser B2 determines that the date and time described in the last update date and time information is within the date and time obtained by subtracting the update interval from the current date and time (step S73: NO), it ends the update process. For example, if it determines that the last update was performed within 24 hours before the current date and time, the agent browser B2 does nothing and ends the process.
[0102] On the other hand, if it is determined that the date and time described in the last update date and time information is earlier than the current date and time minus the update interval (step S73: YES), the agent browser B2 determines that the resource file corresponding to the index file is old, and acquires and saves the resource file and performs an update process for the index file (step S74). For example, if it is determined that the last update was more than 24 hours before the current date and time, the agent browser B2 acquires and saves the resource file and performs an update process for the index file.
[0103] The purpose of the resource file update process is to prevent changes to the contents of resource files stored in the resource file storage 12e during the aforementioned storage period for the index file and resource file. Therefore, if the contents of a resource file managed by the source web server 4 are changed during that period, the information processing device 1 cannot detect the changes, and the resource file in its pre-change state is displayed on the agent browser B2 during that storage period. In this case, even if the guest browser B3 and the agent browser B2 load a resource file with the same URL, differences in the resource file contents may occur, resulting in differences in the web page layout. However, by performing the resource file acquisition and storage and index file update processes described below, it is possible to acquire and store the latest resource file for resource files whose last update date and time exceeds the update interval, even during the resource file storage period, thereby updating the resource file at appropriate intervals. This significantly reduces the frequency of differences in web page layout between the guest browser B3 and the agent browser B2.
[0104] The substance of the resource file acquisition and saving and index file update processes is the same as the processes in steps S39 to S64 described above, which are processes for acquiring and saving the latest resource file and overwriting and saving the index file. However, this process is executed separately from the main process and in parallel, and after the index file response is sent by the process in step S64, the process ends without any particular action. Therefore, the newly updated resource file and index file cannot be used during the screen sharing session for the current web page. However, if the web page is transitioned or updated during the current screen sharing session or if the next screen sharing session is started and a web page that requires the resource file to be acquired is shared again, the newly updated resource file and index file can be used.
[0105] <Resource file processing- Replacing the URL of the resource file and reflecting it in the target node of the resource file> 12 and 13 are sequence diagrams showing the process of replacing the URL of the resource file and reflecting it in the resource file target node in the resource file processing. After completing the resource file acquisition and storage process, the agent browser B2 executes the following process.
[0106] The agent browser B2 updates the property values of the resource file target nodes (step S81). The processing of step S81 is a preliminary process before reflecting values in the properties of each resource file target node. Specifically, for properties for which acquisition of the resource file storage path corresponding to the source URL of each resource file has been completed through the processing related to acquiring and saving the resource file described above, the agent browser B2 replaces the source URL of each resource file included in the property value with the resource file storage path. Note that for properties that do not include the source URL of the resource file, no value replacement is performed and the original value is used.
[0107] Next, the agent browser B2 reflects the updated property value in the corresponding property of the resource file target node (step S82). Note that, before the updated property value is reflected, in the case of each resource file target node created based on the HTML data included in the initial screen sharing data, the value set in the corresponding property of the resource file target node is an empty string, and in the processing of step S82, the agent browser B2 sets the updated property value as the property value of the resource file target node. For example, the agent browser B2 writes the updated property value as the property value of the resource file target node in a format that overwrites the currently set empty string. Note that in the case of each resource file target node changed based on HTML data that includes changes to the node, the value set in the property of the resource file target node may not be an empty string but may be the value before the change (the value reflected by the previous resource file processing). Even in this case, the processing of step S82 is performed in the same way, and the updated property value is written in a format that overwrites the current value.
[0108] Agent Browser B2 manages the order in which updated property values are reflected in the properties of each resource file target node. Specifically, for each resource file target node created based on HTML data included in the initial screen sharing data, the updated property values are reflected in the order of HTML rendering. Therefore, even if the property value of a later resource file target node has been updated, the property value is not reflected until the property values of the previous resource file target nodes have been updated. For example, even if an IMG element node immediately follows a LINK element node and the acquisition of the storage path of the resource file corresponding to the URL in the src attribute of the IMG element node and the update of the property value are completed first, the updated property value is not reflected in the src attribute of the IMG element node until the acquisition of the storage path of the resource file corresponding to the URL in the href attribute of the LINK element node and the update of the property value are completed. The updated property value is reflected only after the relevant processing of the LINK element node is completed. The purpose of managing the order in which updated values are reflected in the properties of each resource file target node is to ensure that the order in which resource files are loaded in guest browser B3 and agent browser B2 is the same, because if there are resource files, such as CSS files, in which the priority of the CSS to be applied changes depending on the load order, changing the order in which updated values are reflected in the properties (i.e., the load order of the resource files) could result in differences in the layout of the web page shared between guest browser B3 and agent browser B2.
[0109] Next, the agent browser B2 reflects the updated value in the corresponding property of the resource file target node, and then uses the browser's mechanism to send a request for the resource file to a URL that includes, as a path, the storage path of each resource file included in the property value (step S83). Note that the domain of the request URL is the domain assigned to the file processing unit 11c of the information processing device 1, and is the same domain as the URL of the screen sharing display area 71. In other words, the request is sent to the file processing unit 11c of the information processing device 1 without falling under the cross-origin request control.
[0110] Upon receiving the resource file request, the file processing unit 11c of the information processing device 1 acquires the resource file corresponding to the path of the requested URL from the resource file storage 12e (step S84).
[0111] The information processing device 1 determines whether the resource file is an empty file (step S85). If it is determined that the resource file is an empty file (step S85: YES), the communication unit 13 of the information processing device 1 does not perform the process of determining the permitted Content-Type (step S88), but instead sets the response body to be empty and sends a response with a status code indicating that the response body is empty (step S86). The status code indicating that the response body is empty is, for example, "204".
[0112] When the agent browser B2 receives the response with an empty response body, the resource file does not exist, and therefore the agent browser B2 does not load the file in the screen sharing display area 71 (step S87). By step S87, the agent browser B2 ends the process of replacing the URL of the resource file and reflecting it in the resource file target node.
[0113] If it is determined in the processing of step S84 that the resource file acquired from the resource file storage 12e is not an empty file (step S85: NO), the information processing device 1 determines whether the Content-Type information of the acquired resource file corresponds to the permitted Content-Type, as in step S48 (step S88). Note that the purpose of determining the Content-Type information also when acquiring the stored resource file is to prevent security problems by assuming a case where the Content-Type information is unexpectedly changed for some reason, for example, when the content of the resource file stored in the resource file storage 12e is updated by a process other than resource file processing.
[0114] If the response does not correspond to the permitted Content-Type (step S88: NO), the information processing device 1 sends the response together with a status code indicating that the response is an error (step S92). The status code indicating that the response is an error is, for example, "403" if the error is an access denial error. Having received the error response, the agent browser B2 does not load the file into the screen sharing display area 71 because there is no resource file entity (step S93). In step S93, the agent browser B2 ends the process of replacing the URL of the resource file and reflecting it in the resource file target node.
[0115] If the content type is permitted (step S88: YES), the information processing device 1 transmits the resource file as a response (step S89). Note that the resource file enables browser caching in order to speed up the response. Specifically, cache control information (for example, "max-age=1209600, public, immutable") that instructs the agent browser B2 to cache the resource file is included in the response header and transmitted to the agent browser B2.
[0116] The agent browser B2 that has received the resource file loads the resource file received from the file processing unit 11c of the information processing device 1 in the screen sharing display area 71 (step S90) and caches the resource file (step S91). Since the browser cache is enabled, the next time the agent browser B2 accesses the storage path of the same resource file, the file can be loaded in the screen sharing display area 71 without going through the file processing unit 11c of the information processing device 1.
[0117] <Action and effect> As described above, the screen sharing system according to this embodiment makes it possible to share the screen of a web page between the agent browser B2 and the guest browser B3 with higher accuracy. Specifically, it will be possible to obtain the correct resource files in a wider range, including resource files such as images and CSS included in HTML, including those that are subject to access restrictions such as cross-origin requests, control based on the presence or value of some request headers, and authentication information such as cookies or client certificates. In addition, the acquired resource files are stored for a certain period of time, and the browser cache can be used to speed up responses, which also improves display speed when sharing the screen. Furthermore, since the resource file can be updated in consideration of the case where the contents of the acquired resource file are updated, the resource file can be expanded with higher accuracy.
[0118] In this embodiment, an example of sharing a web page between the agent terminal 2 and the guest terminal 3 has been described, but the functions and uses of each terminal, and the users and uses of each terminal are not particularly limited.
[0119] (Appendix 1) a communication unit that communicates between a browser of the first terminal and a browser of the second terminal; a processing unit that executes a process related to screen sharing for displaying a web page displayed on a browser of the second terminal on a browser of the first terminal; a storage unit that stores request header information used when the browser of the second terminal displaying the web page communicates with an external device, in association with a header information ID; Equipped with The processing unit When the communication unit receives request data including location information indicating the location of a resource file that constitutes the web page and the header information ID, the request header information corresponding to the header information ID included in the request data is obtained from the storage unit; generating resource file request data including the location information included in the received request data and the request header information acquired from the storage unit; The communication unit Using the generated resource file request data, the resource file is directly requested from an external server, thereby obtaining the resource file; If the acquisition of the resource file fails, the resource file is acquired by indirectly requesting the resource file from the external server via the second terminal, or via the first terminal and the second terminal; The acquired resource file is transmitted to the first terminal. Information processing device. (Appendix 2) The processing unit storing the acquired resource file in the storage unit; creating an index file including location information indicating the location of the resource file in the storage unit in association with identification information of the resource file, the location information being created based on the location information indicating the location of the resource file in the external server; When the first terminal requests the index file based on the identification information, the index file associated with the identification information is transmitted to the first terminal. 2. The information processing device according to claim 1. (Appendix 3) A screen sharing system including the information processing device according to Supplementary Note 2, and the first terminal and the second terminal connected to the information processing device via a communication network, The second terminal a second terminal processing unit that transmits data of the web page displayed on the browser of the second terminal to the first terminal via the information processing device; The first terminal a first terminal processing unit that receives data of the web page transmitted from the second terminal, and reconstructs and displays the web page based on the received data; The first terminal processing unit If an element constituting the web page of the received data includes the location information indicating the location of the resource file as a property, the identification information is created based on the location information; requesting the index file from the information processing device based on the created identification information; receiving the index file transmitted from the information processing device in response to a request; The resource file stored in the storage unit is acquired based on the location information included in the received index file. Screen sharing system. (Appendix 4) The first terminal processing unit If the information processing device does not have the index file and is unable to receive the index file, the information processing device transmits the request data to request the external server to acquire the resource file; The information processing device includes: If the resource file is successfully acquired and saved in response to a request based on the request data, the index file is transmitted to the first terminal. 10. The screen sharing system described in Appendix 3. (Appendix 5) The first terminal processing unit If a predetermined update deadline has passed since the creation or update of the received index file, the request data is sent to the information processing device to request the external server to acquire the resource file; The information processing device includes: If the resource file is successfully acquired and saved in response to a request based on the request data, the updated index file is sent to the first terminal. 5. The screen sharing system of claim 3 or 4. (Appendix 6) The information processing device includes: If the resource file fails to be acquired in response to the request based on the request data, an error response is sent to the first terminal; The first terminal processing unit When the error response is received, the second terminal requests the second terminal to acquire the resource file, thereby acquiring the resource file from the external server via the second terminal; transmitting the acquired resource file to the information processing device; The information processing device includes: receiving the resource file transmitted from the first terminal; The received resource file is stored in the storage unit. 6. The screen sharing system of any one of appendixes 3 to 5. (Appendix 7) The information processing device includes: When a predetermined resource file storage period has elapsed since the resource file was stored in the storage unit, the resource file is deleted. 7. The screen sharing system of any one of appendixes 3 to 6. (Appendix 8) The information processing device includes: When a predetermined index file storage period has elapsed since the index file was created, the index file is deleted. 8. The screen sharing system of any one of appendixes 3 to 7. (Appendix 9) The second terminal transmitting the request header information used when a browser displaying the web page of the second terminal communicates with an external device to the information processing device or the first terminal; The information processing device includes: receiving the request header information transmitted from the second terminal or the request header information transmitted via the first terminal, and storing the received request header information and the header information ID in the storage unit in association with each other; 9. The screen sharing system of any one of appendixes 3 to 8. [Explanation of symbols]
[0120] 1. Information processing equipment 2 Agent terminal 3. Guest terminal 4 Web Server 5. Recording media 11a API processing section 11b Socket processing section 11c File Processing Unit 12a Account Management Database 12b Screen sharing management database 12c Screen Sharing Data Relay Store 12d Program File Storage 12e Resource File Storage B2 Agent Browser B3 Guest Browser
Claims
1. a communication unit that communicates between a browser of the first terminal and a browser of the second terminal; a processing unit that executes a process related to screen sharing for displaying a web page displayed on a browser of the second terminal on a browser of the first terminal; a storage unit that stores request header information used when a browser of the second terminal displaying the web page communicates with an external device, in association with a header information ID; Equipped with The processing unit When the communication unit receives request data including location information indicating the location of a resource file that constitutes the web page and the header information ID, the request header information corresponding to the header information ID included in the request data is obtained from the storage unit; generating resource file request data including the location information included in the received request data and the request header information acquired from the storage unit; The communication unit Using the generated resource file request data, the resource file is directly requested from an external server, thereby obtaining the resource file; If the acquisition of the resource file fails, the resource file is acquired by indirectly requesting the resource file from the external server via the second terminal or via the first terminal and the second terminal; The acquired resource file is transmitted to the first terminal. Information processing device.
2. The processing unit storing the acquired resource file in the storage unit; creating an index file including location information indicating the location of the resource file in the storage unit in association with identification information of the resource file, the location information being created based on the location information indicating the location of the resource file in the external server; When the first terminal requests the index file based on the identification information, the index file associated with the identification information is transmitted to the first terminal. The information processing device according to claim 1 .
3. 3. A screen sharing system comprising: the information processing device according to claim 2; and the first terminal and the second terminal connected to the information processing device via a communication network, The second terminal a second terminal processing unit that transmits data of the web page displayed on the browser of the second terminal to the first terminal via the information processing device; The first terminal a first terminal processing unit that receives data of the web page transmitted from the second terminal and reconstructs and displays the web page based on the received data; The first terminal processing unit If an element constituting the web page of the received data includes the location information indicating the location of the resource file as a property, the identification information is created based on the location information; requesting the index file from the information processing device based on the created identification information; receiving the index file transmitted from the information processing device in response to a request; The resource file stored in the storage unit is acquired based on the location information included in the received index file. Screen sharing system.
4. The first terminal processing unit If the information processing device does not have the index file and is unable to receive the index file, the information processing device transmits the request data to request the external server to acquire the resource file; The information processing device includes: If the resource file is successfully acquired and saved in response to a request based on the request data, the index file is transmitted to the first terminal. The screen sharing system according to claim 3 .
5. The first terminal processing unit If a predetermined update deadline has passed since the creation or update of the received index file, the request data is sent to the information processing device to request the external server to acquire the resource file; The information processing device includes: If the resource file is successfully acquired and stored in response to a request based on the request data, the updated index file is transmitted to the first terminal. The screen sharing system according to claim 3 .
6. The information processing device includes: If the resource file cannot be acquired in response to the request based on the request data, an error response is sent to the first terminal; The first terminal processing unit When the error response is received, the second terminal requests the second terminal to acquire the resource file, thereby acquiring the resource file from the external server via the second terminal; transmitting the acquired resource file to the information processing device; The information processing device includes: receiving the resource file transmitted from the first terminal; The received resource file is stored in the storage unit.
6. The screen sharing system according to claim 4 or claim 5.
7. The information processing device includes: When a predetermined resource file storage period has elapsed since the resource file was stored in the storage unit, the resource file is deleted. The screen sharing system according to claim 3 .
8. The information processing device includes: When a predetermined index file storage period has elapsed since the index file was created, the index file is deleted. The screen sharing system according to claim 3 .
9. The second terminal transmitting the request header information used when a browser displaying the web page of the second terminal communicates with an external device to the information processing device or the first terminal; The information processing device includes: receiving the request header information transmitted from the second terminal or the request header information transmitted via the first terminal, and storing the received request header information and the header information ID in the storage unit in association with each other; The screen sharing system according to claim 3 .
10. A screen sharing method for displaying a web page displayed on a browser of a second terminal on a browser of a first terminal, comprising: request header information used when the browser of the second terminal displaying the web page communicates with an external device and a header information ID are stored in a storage unit in association with each other; When request data including location information indicating the location of a resource file that constitutes the web page and the header information ID transmitted from the browser of the first terminal is received, the request header information corresponding to the header information ID included in the request data is acquired from the storage unit; generating resource file request data including the location information included in the received request data and the request header information acquired from the storage unit; Using the generated resource file request data, the resource file is directly requested from an external server, thereby obtaining the resource file; If the acquisition of the resource file fails, the resource file is acquired by indirectly requesting the resource file from the external server via the second terminal or via the first terminal and the second terminal; The acquired resource file is transmitted to the first terminal. How to share your screen.
11. A computer program for causing a computer to execute a process related to screen sharing in which a web page displayed on a browser of a second terminal is displayed on a browser of a first terminal, the computer program comprising: request header information used when the browser of the second terminal displaying the web page communicates with an external device and a header information ID are stored in a storage unit in association with each other; When request data including location information indicating the location of a resource file that constitutes the web page and the header information ID transmitted from the browser of the first terminal is received, the request header information corresponding to the header information ID included in the request data is acquired from the storage unit; generating resource file request data including the location information included in the received request data and the request header information acquired from the storage unit; Using the generated resource file request data, the resource file is directly requested from an external server, thereby obtaining the resource file; If the acquisition of the resource file fails, the resource file is acquired by indirectly requesting the resource file from the external server via the second terminal or via the first terminal and the second terminal; The acquired resource file is transmitted to the first terminal. A computer program for causing the computer to execute a process.
Citation Information
Patent Citations
Screen sharing and remote operation system
JP2020177403A