WO2021049120A1 - コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム - Google Patents

コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム Download PDF

Info

Publication number
WO2021049120A1
WO2021049120A1 PCT/JP2020/023896 JP2020023896W WO2021049120A1 WO 2021049120 A1 WO2021049120 A1 WO 2021049120A1 JP 2020023896 W JP2020023896 W JP 2020023896W WO 2021049120 A1 WO2021049120 A1 WO 2021049120A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
browser
instruction
connection
information processing
Prior art date
Application number
PCT/JP2020/023896
Other languages
English (en)
French (fr)
Inventor
将則 村井
豊 三林
Original Assignee
株式会社C-Rise
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社C-Rise filed Critical 株式会社C-Rise
Priority to EP20792911.8A priority Critical patent/EP4030303A4/en
Priority to US17/049,850 priority patent/US11695836B2/en
Publication of WO2021049120A1 publication Critical patent/WO2021049120A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • This technology relates to computer programs, information processing methods, information processing devices and information processing systems.
  • Patent Document 1 discloses a method for automating a business process involving an operation on a server on an in-house network.
  • the purpose of the present disclosure is to provide an information processing device connected to a private network with a computer program or the like capable of automatically executing a browser operation.
  • the computer program in one aspect of the present disclosure causes an information processing device connected to a private network to operate a browser that accesses a web server on the private network based on an instruction from a server connected to the global network.
  • a computer program for automatic execution which requests the information processing apparatus to establish a connection to the server, and uses the connection to acquire an operation instruction related to the operation process pushed and transmitted from the server. Based on the acquired operation instruction, the operation process of the browser is executed, the execution result of the operation process is acquired, and the process of outputting the acquired execution result to the server is executed.
  • the information processing method in one aspect of the present disclosure is an operation process of a browser that accesses an information processing device connected to a private network to a web server on the private network based on an instruction from a server connected to the global network.
  • This is an information processing method for automatically executing the above-mentioned operation, which requests the server to establish a connection, acquires an operation instruction related to the operation process pushed and transmitted from the server using the connection, and acquires the operation.
  • the operation process of the browser is executed, the execution result of the operation process is acquired, and the acquired execution result is output to the server.
  • the information processing device in one aspect of the present disclosure is connected to a private network, and is for automatically executing an operation process of a browser that accesses a web server on the private network based on an instruction from a server connected to the global network.
  • the information processing device of the above a request unit that requests the establishment of a connection to the server, an operation instruction acquisition unit that acquires an operation instruction related to the operation process that is pushed and transmitted from the server using the connection, and an acquisition unit.
  • the information processing system in one aspect of the present disclosure connects an information processing device and a web server connected to a private network and a connection established by responding to a request from the information processing device, which is connected to a global network.
  • the information processing device includes a server that outputs an operation instruction regarding an operation process of a browser that accesses the web server to the information processing device, and the information processing device includes a request unit that requests the server to establish the connection and the request unit.
  • An operation instruction acquisition unit that acquires the operation instruction pushed and transmitted from the server using a connection, an execution unit that executes the operation process of the browser based on the acquired operation instruction, and an operation unit of the operation process. It includes an execution result acquisition unit that acquires an execution result, and an output unit that outputs the acquired execution result to the server.
  • FIG. It is a block diagram which shows the internal structure of a browser control device. It is a sequence diagram which shows an example of the procedure of the operation processing executed in an information processing system. It is a sequence diagram which shows an example of the procedure of the operation processing executed in an information processing system. It is a sequence diagram which shows an example of the procedure of the operation processing executed in an information processing system. It is a flowchart which shows an example of the procedure of processing executed in an information processing system. It is a figure which shows the outline of the information processing system in Embodiment 2. It is a sequence diagram which shows an example of the procedure of the operation processing executed in an information processing system.
  • FIG. 1 is a diagram showing an outline of the information processing system 100 according to the first embodiment.
  • the information processing system 100 includes a server 1, a browser control device 2, a user terminal device 3, and a web server 4.
  • the browser control device 2, the user terminal device 3, and the web server 4 are connected to the private network N1.
  • the server 1 is connected to a global network N2 such as the Internet, and communicates with the browser control device 2 and the user terminal device 3 on the private network N1 via the relay device 5 to transmit and receive information.
  • the browser control device 2 automatically executes various operation processes for the web server 4 via the server 1 in response to a request from the user terminal device 3, and provides the execution result to the user terminal device 3. Realize an automatic execution service.
  • the server 1 is, for example, a server computer.
  • the server 1 will be described as one server computer, but the functions or processes may be distributed among a plurality of server computers, or a plurality of virtually generated servers may be generated in one large computer. It may be one of the server computers (instances) of.
  • the server 1 includes a scenario database (not shown) that stores scenarios for operation processing executed by the automatic execution service.
  • the scenario is, for example, JSON (Javascript (registered trademark) Object Notation) format data, and includes data related to the procedure of browser operation processing.
  • Operation processes that are automatically executed based on the scenario are, for example, access to the web server 4, data input on the web server 4, element selection, browser resizing, browser scrolling, tab switching, and the like.
  • the server 1 refers to the scenario database and transmits the operation instructions of these operation processes to the browser control device 2.
  • the browser control device 2 is a device that automatically executes an operation process by an automatic execution service, and is, for example, a personal computer, a server computer, or the like.
  • the browser control device 2 includes a browser 2a.
  • the browser 2a communicates with the web server 4, analyzes the information acquired from the web server 4, and displays the analysis result on the browser screen.
  • the user terminal device 3 is, for example, a personal computer, a smartphone, a tablet, or the like.
  • the user terminal device 3 is used by the user of the automatic execution service, and acquires an execution result obtained according to the operation process automatically executed by the browser control device 2.
  • the web server 4 is a web server connected to the private network N1, and is, for example, a sales management system, a sales management system, an employment management system, etc. of a user company.
  • the web server 4 uses the HTTP protocol to provide a web service to each device connected to the private network N1.
  • Data such as HTML (HyperText Markup Language) format and XML (Extensible Markup Language) format are transmitted from the web server 4 to the browser control device 2.
  • the relay device 5 is a relay device that relays communication between the private network N1 and the global network N2, and is, for example, a router, a gateway, or the like.
  • the relay device 5 may include functions such as a proxy server and a firewall.
  • the relay device 5 is a NAT (Network Address Translation) or NAPT (Network Address Port Translation) that mutually translates a private IP (Internet Protocol) address that is valid only in the private network N1 and a global IP address that is used in the global network N2. ) It has a function.
  • the relay device 5 relays the communication between the private network N1 and the global network N2.
  • the relay device 5 protects the private network N1 from unauthorized access from the global network N2.
  • FIG. 2 is a block diagram showing the internal configuration of the browser control device 2.
  • the browser control device 2 includes a control unit 20, a storage unit 21, and a communication unit 22.
  • the communication unit 22 is a wired or wireless communication module for realizing transmission / reception of information to / from the server 1 via the global network N2.
  • the communication unit 22 is a wired or wireless communication module for realizing transmission / reception of information to / from the web server 4 via the private network N1.
  • the communication unit 22 receives the scenario operation instruction from the server 1 and accesses the web server 4 according to the instruction of the control unit 20.
  • the communication unit 22 transmits the browser image data to the server 1 according to the instruction of the control unit 20.
  • the storage unit 21 is a non-volatile memory.
  • the browser control program 210 is stored in the storage unit 21.
  • the browser control program 210 is an application program for automatically executing a scenario operation.
  • the browser control program 210 may be provided to the browser control device 2 by using a non-temporary storage medium A1 in which the browser control program 210 is readablely recorded.
  • the storage medium A1 is, for example, a portable memory. Examples of the portable memory include a CD-ROM, a USB (Universal Serial Bus) memory, an SD card, a micro SD card, a compact flash (registered trademark), and the like.
  • the processing element of the control unit 20 may read the browser control program 210 from the storage medium A1 using a reading device (not shown) and store it in the storage unit 21.
  • the browser control program 210 may be provided to the browser control device 2 by communication via the communication unit 22.
  • the processing element of the control unit 20 may acquire the browser control program 210 through the communication unit 22 and store it in the storage unit 21.
  • the control unit 20 has a processing element (computer) such as a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), or a GPU (Graphics Processing Unit).
  • the processing element of the control unit 20 executes the browser control program 210.
  • the number of processing elements included in the control unit 20 may be 2 or more. In this case, a plurality of processing elements collaborate to execute various processes.
  • 3 to 5 are sequence diagrams showing an example of a procedure of operation processing executed in the information processing system 100.
  • the browser control device 2 When the browser control device 2 is activated, the browser control device 2 transmits a connection 61 establishment request to the server 1 via the global network N2 (step S111).
  • the establishment request is made by the HTTP protocol, and it is indicated that the protocol is upgraded to Websocket, the request is from the browser control device 2, and the like.
  • the server 1 transmits a response to the received connection establishment request (step S112).
  • a connection 61 by the Websocket protocol is established between the server 1 and the browser control device 2, and bidirectional communication, that is, push-type mutual communication becomes possible.
  • Subsequent communication between the server 1 and the browser control device 2 is performed using a telegram conforming to the Websocket protocol using the connection 61.
  • connection 61 is established with the startup of the browser control device 2 as a trigger to enable transmission / reception of information with the server 1 at all times, and the system of the browser control device 2 is terminated. Until then, the connection will continue.
  • NAT traversal is required when communicating from the server 1 to the browser control device 2.
  • NAT traversal is realized by establishing a connection 61 in the application layer of the OSI reference model by Websocket.
  • wss Websocket secure
  • SSL Secure SocketsLayer
  • TLS TransportLayerSecurity
  • the user terminal device 3 requests the automatic execution of the scenario.
  • the user terminal device 3 first transmits a browser start request to the server 1 (step S113). From the user terminal device 3, for example, the identification information of the user terminal device 3 is transmitted together with the activation request.
  • the server 1 receives the browser start request.
  • the server 1 stores in advance a table in which a user terminal device 3 that requests automatic execution of a scenario and a browser control device 2 that should execute an operation process in response to a request from the user terminal device 3 are associated with each other. ..
  • the server 1 reads the browser control device 2 for transmitting the start instruction from the table, and push-transmits the browser start instruction to the read browser control device 2 via the connection 61 (step S114).
  • the activation instruction is transmitted in a telegram format defined in the Websocket protocol. Since the connection 61 is established between the server 1 and the browser control device 2, information can be pushed and transmitted from the server 1 beyond NAT to the browser control device 2.
  • the browser control device 2 receives the activation instruction and activates the browser 2a (step S115). Since the series of scenario processing operations is automatically executed by the browser control device 2, the browser 2a to be started may be a headless browser. A web driver or the like may be used to control the browser 2a.
  • the user terminal device 3 transmits a scenario execution request to the server 1 (step S116).
  • the server 1 receives the execution request of the scenario.
  • the server 1 push-transmits a scenario execution instruction to the browser control device 2 via the already established connection 61 (step S117).
  • the execution instruction is transmitted in a telegram format defined in the Websocket protocol.
  • the browser control device 2 receives the execution instruction.
  • the browser control device 2 executes the operation processing of the browser 2a based on the received execution instruction. Specifically, the browser control device 2 executes the operation process of the browser 2a based on the execution instruction (step S118).
  • the browser 2a transmits an HTTP request to the web server 4 (step S119) and acquires an HTTP response (step S120).
  • the response acquired from the web server 4 is, for example, HTML format data.
  • the browser control device 2 acquires the response of the browser 2a to the operation process (step S121), and transmits the acquired response to the server 1 (step S122).
  • the response to the execution instruction includes, for example, error information when the operation process ends abnormally, in addition to the result when the operation is completed normally.
  • the browser control device 2 requests image data of a browser screen including a web page corresponding to an operation process to the web server 4 (step S123).
  • the browser control device 2 acquires image data of the browser screen (step S124).
  • the image data is image data obtained by taking a snapshot of the browser screen. As a result, the execution result of the operation process is acquired as image data.
  • the operation process included in the scenario may use an original selector that extends the specification form of a general selector.
  • the web service provided by the web server 4 that is the target of the operation processing to be automatically executed, when the main browser screen by the web service includes an iframe tag, the input item in the inline browser screen defined by the iframe tag. It is also necessary to automate the operation processing for such elements.
  • the inline browser screen defined by the iframe tag that is, the inline frame You can directly specify the element of and perform the operation process.
  • the browser control device 2 periodically acquires the browser screen and detects a change in the browser screen.
  • the browser control device 2 requests the image data of the browser screen including the web page at a predetermined timing such as every 3 seconds (step S125) and acquires the image data (step S126).
  • the browser control device 2 detects a screen change based on the difference from the previous screen. (Step S127).
  • the browser control device 2 acquires a screen transition that changes due to processing from the web server 4, such as timeout information due to the operation not being performed for a predetermined time. As a result, the execution result for the detection of the automatic change is acquired as image data.
  • the browser control device 2 transmits the acquired image data of the execution result, the HTML source, and the like to the server 1 (step S128).
  • the user terminal device 3 wishes to acquire the execution result
  • the user terminal device 3 transmits a request for the execution result to the server 1 (step S129).
  • the server 1 transmits the received image data of the execution result to the user terminal device 3 as a response to the transmission request (step S131).
  • the image data of the execution result transmitted to the user terminal device 3 is transmitted as a part of the HTML format data.
  • the user terminal device 3 can acquire an execution result screen according to the selected scenario as image data without operating a browser on its own terminal device. If the user terminal device 3 does not request the execution result, the server 1 may be configured not to transmit the image data of the execution result screen.
  • the server 1 may be configured to store the execution result in the database, read the execution result from the database at the timing when the user's request is acquired, and transmit the execution result.
  • each device of the information processing system 100 ends the series of processing.
  • the browser control device 2 may start the browser 2a without receiving the start instruction of the browser 2a.
  • the browser 2a may be automatically started when the browser control device 2 is started.
  • the browser 2a may be automatically started at the same time as the browser control program 210 is started.
  • the operation instruction for automatic scenario execution is not limited to the one given in response to the request from the user terminal device 3.
  • the server 1 may automatically transmit a start instruction or an operation instruction to the browser control device 2 at a preset timing without receiving a request from the user terminal device 3.
  • FIG. 6 is a flowchart showing an example of a processing procedure executed in the information processing system 100.
  • the process of FIG. 6 is executed by the control unit 20 of the browser control device 2.
  • the browser control device 2 automatically executes the browser operation process by executing the browser control program 210.
  • the execution timing of the process is, for example, the timing at which the browser control device 2 is activated.
  • the control unit 20 transmits a connection 61 establishment request to the server 1 via the communication unit 22 (step S11).
  • the control unit 20 transmits a connection 61 establishment request including information indicating that the request is from the browser control device 2.
  • the control unit 20 receives a response to the establishment request from the server 1 (step S13). As a result, the connection 61 is established between the server 1 and the browser control device 2.
  • the control unit 20 acquires a start instruction from the server 1 via the communication unit 22 (step S15).
  • the start instruction is push-transmitted from the server 1 at an arbitrary timing via the connection 61 using the telegram format defined in the Websocket protocol.
  • the control unit 20 starts the browser 2a based on the acquired start instruction (step S17).
  • the browser 2a may be a headless browser launched in the background.
  • the control unit 20 may be configured to start the browser 2a without acquiring the start instruction.
  • the control unit 20 may start the browser 2a triggered by the start of the browser control program 210 or the like.
  • the control unit 20 acquires an execution instruction from the server 1 via the communication unit 22 (step S19).
  • the execution instruction is push-transmitted from the server 1 at an arbitrary timing via the connection 61 using the telegram format defined in the Websocket protocol.
  • the control unit 20 accesses the web server 4 via the communication unit 22 and executes the operation process of the scenario (step S21).
  • the control unit 20 acquires the response of the browser 2a to the operation process (step S23).
  • the response includes normal completion of operation processing, abnormal termination, and the like.
  • the control unit 20 generates a sub-process and performs the process of step S25 in parallel with the process of step S19.
  • the control unit 20 acquires the browser screen data of the web page displayed on the browser 2a at a predetermined timing via, for example, a web driver, and compares the acquired current screen data with the previous screen data.
  • the control unit 20 derives the difference between the current screen data and the previous screen data, and determines whether or not the browser screen has changed based on the derived difference (step S25). If the difference indicating that the browser screen has changed is not acquired and it is not determined that the browser screen has changed, the control unit 20 returns the process to step S25 and continues to acquire the browser screen data.
  • the control unit 20 advances the process to step S27.
  • the control unit 20 acquires the execution result of the operation process to the web server 4 (step S27). Specifically, the control unit 20 acquires image data of the browser screen. The image data includes at least one of the image data of the browser screen for the execution instruction and the image data of the browser screen for the detection of the automatic change of the screen. The control unit 20 outputs the image data of the execution result acquired via the communication unit 22 to the server 1 (step S29).
  • the control unit 20 determines whether or not the operation processing of the series of scenarios is completed (step S31). If all the acquired operation processes have not been executed and it is not determined that the operation processes have been completed (S31: NO), the control unit 20 returns the processes to step S19, performs loop processing, and performs operation processing of a series of scenarios. Continue to acquire execution instructions related to. On the other hand, when all the acquired operation processes are executed and it is determined that the operation processes are completed (S31: YES), the control unit 20 ends a series of processes.
  • the execution result is not limited to the image data only.
  • the path may be output in addition to the image data, or HTML format data may be output.
  • the control unit 20 may acquire an operation log and output the acquired operation log to the server 1. Further, the acquisition of the execution instruction and the output of the image data do not have to be performed for each operation process, and a predetermined number of operation processes may be transmitted and received collectively.
  • the control unit 20 outputs metadata such as an image ID for identifying the image data and operation instruction information associated with the image ID together with the image data. It's okay.
  • the control unit 20 may output the information related to the error information together with the image information in step S29.
  • the control unit 20 acquires an error location or error content from the browser 2a and outputs it to the server 1 together with the image information.
  • the control unit 20 acquires, for example, the cause of the error from the browser 2a, and identifies whether the error is caused by the web server 4, the scenario, the browser control program 210, the browser control device 2, or the like. Is output to the server 1 together with the image information. Further, the control unit 20 may output notification information indicating the occurrence of an error to the server 1 or the user terminal device 3.
  • each browser control device 2 and each user terminal device 3 may be connected to different private networks.
  • the server 1 specifies the browser control device 2 that outputs the operation instruction, and outputs the operation instruction to the specified browser control device 2.
  • the server 1 outputs an operation instruction to the specified browser control device 2.
  • the server 1 may specify the browser control device 2 to execute the scenario based on the load status of each browser control device 2.
  • the server 1 causes the browser control device 2 to execute a new operation process based on the information for identifying each browser control device 2 acquired at the time of establishing the connection and the execution instruction status of the scenario to each browser control device 2. Select and output the operation instruction.
  • the server 1 selects an alternative browser control device 2 and outputs the operation instruction.
  • the server 1 functions as a load balancer that allocates scenario operation processing and distributes the load of each browser control device 2.
  • bidirectional communication is possible by establishing a connection 61 between the server 1 on the global network N2 and the browser control device 2 in the private network N1. Therefore, various information related to the operation processing of the scenario can be push-transmitted from the server 1 to the browser control device 2 at an arbitrary timing.
  • the connection 61 is established in the application layer. Since the connection is established in the upper layer of the OSI reference model, it is possible to improve the security at the time of communication. Only a telegram compliant with the Websocket protocol can be transmitted as an operation instruction regarding the operation process from the server 1 using the connection 61. Therefore, since the range of information transmitted is limited with respect to access from the global network N2, the risk of occurrence of a vulnerability can be reduced. Further, depending on the security setting conditions of the network environment on the user side to receive the service, a protocol other than the HTTP protocol may be blocked as an unauthorized access in the access from the device on the global network N2 to the private network N1. In this embodiment, since the Websocket protocol defined as an extended standard of the HTTP protocol is used, the establishment of the connection 61 is easily realized.
  • the scenario operation process is executed to the web server 4 by using the browser 2a on the browser control device 2, and the image data of the execution result is transmitted to the server 1 and the user terminal device 3. Since the browser control device 2 and the web server 4 are connected by the private network N1, it is possible to send and receive secure information. Further, by using the browser function with the resources of the browser control device 2, the load on the server 1 can be reduced.
  • FIG. 7 is a diagram showing an outline of the information processing system 200 according to the second embodiment.
  • the information processing system 200 in the second embodiment is the first embodiment except that the first server 11 and the second server 12 are included in place of the server 1 and the details of the processing executed by the information processing system 200 are different. Since it is the same as the configuration, the same reference numerals are given to the common configurations, and detailed description thereof will be omitted.
  • the first server 11 and the second server 12 are each connected to a global network N2 such as the Internet, and can communicate with and receive information from the private network N1 via the relay device 5. Further, the first server 11 and the second server 12 can communicate and connect with each other via the global network N2 to transmit and receive information.
  • the first server 11 and the second server 12 are, for example, server computers, respectively.
  • the start instruction of the browser 2a is output from the first server 11, and the execution instruction of the operation process is output from the second server 12.
  • 8 to 10 are sequence diagrams showing an example of a procedure of operation processing executed in the information processing system 200.
  • the browser control device 2 transmits a connection 61 establishment request to the first server 11 via the global network N2 (step S211).
  • the establishment request is made by the HTTP protocol, and it is indicated that the protocol is upgraded to Websocket, the request is from the browser control device 2, and the like.
  • the first server 11 transmits a response to the connection establishment request (step S212).
  • the first connection 62 by the Websocket protocol is established between the first server 11 and the browser control device 2, and bidirectional communication becomes possible.
  • the first connection 62 is established with the activation of the browser control device 2 as a trigger.
  • the user terminal device 3 requests automatic execution of the scenario.
  • the user terminal device 3 first transmits a start request for the browser 2a to the second server 12 (step S213). From the user terminal device 3, for example, the identification information of the user terminal device 3 is transmitted together with the activation request.
  • the second server 12 receives the start request of the browser 2a, the second server 12 transmits the start instruction to the first server 11 (step S214).
  • the first server 11 stores in advance a table in which a user terminal device 3 that requests automatic execution of a scenario and a browser control device 2 that should execute an operation process in response to a request from the user terminal device 3 are associated with each other. ing.
  • the first server 11 reads the browser control device 2 for transmitting the start instruction from the table, and push-transmits the start instruction of the browser 2a to the read browser control device 2 via the first connection 62 (step S215). Since the first connection 62 is established between the first server 11 and the browser control device 2, information can be pushed and transmitted from the first server 11 beyond NAT to the browser 2a control device.
  • the browser control device 2 receives the activation instruction and activates the browser 2a (step S216). Since a series of scenario processing operations are automatically executed without receiving a direct operation by the browser control device 2, the browser 2a to be started may be a headless browser 2a.
  • the browser control device 2 when it receives the start instruction, it transmits a request for establishing the second connection 63 to the second server 12 via the global network N2 (step S217).
  • the establishment request is made by the HTTP protocol, and it is indicated that the protocol is upgraded to Websocket, the request is from the browser control device 2, and the like.
  • the second server 12 transmits a response to the received request for establishing the second connection 63 (step S218).
  • the second connection 63 by the Websocket protocol is established between the second server 12 and the browser control device 2, and bidirectional communication becomes possible.
  • the second connection 63 is established with the acquisition of the activation instruction in the browser control device 2 as a trigger.
  • the user terminal device 3 transmits a scenario execution request to the second server 12 (step S219).
  • the second server 12 receives the execution request of the scenario.
  • the second server 12 push-transmits a scenario execution instruction to the browser control device 2 via the already established second connection 63 (step S221).
  • the browser control device 2 receives the execution instruction.
  • the browser control device 2 executes the operation process of the browser 2a based on the message of the execution instruction (step S222).
  • the browser 2a transmits an HTTP request to the web server 4 (step S223) and acquires an HTTP response (step S224).
  • the browser control device 2 acquires the response of the browser 2a to the operation process (step S225), and transmits the acquired response to the second server 12 (step S226).
  • the browser control device 2 requests image data of the browser screen including the web page corresponding to the operation process to the web server 4 (step S227).
  • the browser control device 2 acquires an execution result which is image data of the browser screen (step S228).
  • the browser control device 2 detects a change in the browser screen.
  • the browser control device 2 requests the image data of the browser screen including the web page at a predetermined timing (step S229), and acquires the image data (step S230).
  • the browser control device 2 detects a screen change based on the difference from the previous screen (step S231).
  • the browser control device 2 transmits the acquired image data of the execution result, the HTML source, and the like to the second server 12 (step S232).
  • the user terminal device 3 wishes to acquire the execution result
  • the user terminal device 3 transmits a request for the execution result to the second server 12 (step S233).
  • the second server 12 transmits the received screen image data of the execution result to the user terminal device 3 as a response to the transmission request (step S234).
  • the user terminal device 3 can acquire the execution result according to the selected scenario as image data.
  • steps S221 to S234 The loop processing of steps S221 to S234 is performed, and the processing operations of a series of scenarios are executed.
  • the browser control device 2 disconnects the communication with the second server 12 (step S235). As a result, the second connection 63 is disconnected.
  • FIG. 11 is a flowchart showing an example of a processing procedure executed in the information processing system 200.
  • the process of FIG. 11 is executed by the control unit 20 of the browser control device 2.
  • the browser control device 2 automatically executes the browser 2a operation process by executing the browser control program 210.
  • the execution timing of the process is, for example, the timing at which the browser control device 2 is activated.
  • the control unit 20 transmits a request for establishing the first connection 62 to the first server 11 via the communication unit 22 (step S41).
  • the control unit 20 transmits a request for establishing the first connection 62 including information indicating that the request is from the browser control device 2.
  • the control unit 20 receives a response to the establishment request from the first server 11 (step S43). As a result, the first connection 62 is established between the first server 11 and the browser control device 2.
  • the control unit 20 acquires a start instruction from the first server 11 via the communication unit 22 (step S45).
  • the start instruction is push-transmitted from the first server 11 at an arbitrary timing via the first connection 62 using the telegram format defined in the Websocket protocol.
  • the control unit 20 starts the browser 2a based on the acquired start instruction (step S47).
  • the browser 2a may be a headless browser 2a launched in the background.
  • the control unit 20 transmits a request for establishing the second connection 63 to the second server 12 via the communication unit 22 with the acquisition of the start instruction as a trigger (step S49).
  • the control unit 20 receives a response to the establishment request from the second server 12 (step S51).
  • the second connection 63 is established between the second server 12 and the browser control device 2.
  • the control unit 20 acquires an execution instruction from the second server 12 via the communication unit 22 (step S53).
  • the execution instruction is push-transmitted from the second server 12 at an arbitrary timing via the second connection 63 using the telegram format defined in the Websocket protocol.
  • the control unit 20 accesses the web server 4 via the communication unit 22, executes the operation process of the scenario (step S55), and acquires the response (step S57).
  • the control unit 20 generates a sub-process and performs the process of step S59 in parallel with the process of step S53.
  • the control unit 20 acquires the browser screen data of the web page displayed on the browser 2a at a predetermined timing, and compares the acquired current screen data with the previous screen data.
  • the control unit 20 derives the difference between the current screen data and the previous screen data, and determines whether or not the browser screen has changed based on the derived difference (step S59). If the difference indicating that the browser screen has changed is not acquired and it is not determined that the browser screen has changed (step S59: NO), the control unit 20 returns the process to step S59 and continues to acquire the browser screen data. To do.
  • the control unit 20 advances the process to step S61.
  • the control unit 20 acquires the execution result of the operation process to the web server 4 (step S61). Specifically, the control unit 20 acquires image data of the browser screen. The control unit 20 outputs the image data of the execution result acquired via the communication unit 22 to the second server 12 (step S63).
  • the control unit 20 determines whether or not the operation processing of the series of scenarios is completed (step S65). If all the acquired operation processes have not been executed and it is not determined that the operation processes have been completed (S65: NO), the control unit 20 returns the processes to step 53, performs loop processing, and performs operation processing of a series of scenarios. Continue to acquire execution instructions related to. On the other hand, when all the acquired operation processes are executed and it is determined that the operation processes are completed (S65: YES), the control unit 20 disconnects the communication with the second server 12 (step S67), and a series of operations are performed. End the process.
  • the burden on each server can be further reduced.
  • FIG. 12 is a diagram showing an outline of the information processing system 300 according to the third embodiment.
  • the same reference numerals are given to the configurations common to those of the first embodiment and the second embodiment, and detailed description thereof will be omitted.
  • the information processing system 300 includes a first server 13, a second server 14, a third server 15, a fourth server 16, a scenario database 17, a browser control device 2, a user terminal device 3, a web server 4, and a relay device 5.
  • the relay device 5 and the global network N2 are not shown.
  • the first server 13, the second server 14, the third server 15, and the fourth server 16 are each connected to the global network N2, communicated with the private network N1 via the relay device 5, and transmit and receive information. It is possible.
  • the first server 13, the second server 14, the third server 15, and the fourth server 16 are, for example, server computers, respectively.
  • the processing of the second server 12 in the second embodiment is performed by the second server 14, the third server 15, and the fourth server 16.
  • the browser control device 2 transmits a request for establishing the first connection 62 to the first server 13, and establishes the first connection 62 between the browser control device 2 and the first server 13.
  • the user terminal device 3 transmits a start request of the browser 2a to the second server 14.
  • the second server 14 transmits a start request for the browser 2a to the first server 13.
  • the first server 13 push-transmits the activation instruction of the browser 2a to the browser control device 2 using the first connection 62.
  • the browser control device 2 transmits a request for establishing the second connection 63 to the second server 14 triggered by the acquisition of the start instruction, and establishes the second connection 63 between the browser control device 2 and the second server 14. ..
  • the user terminal device 3 transmits a scenario execution request to the second server 14.
  • the second server 14 push-transmits a scenario execution instruction to the browser control device 2 using the second connection 63 based on the received execution request.
  • the browser control device 2 executes the operation of the browser 2a. Specifically, the browser control device 2 accesses the web server 4 and acquires the access result. The browser control device 2 acquires the image data of the execution result of the operation process, and transmits the acquired image data to the second server 14. The second server 14 transmits the acquired image data to the user terminal device 3.
  • the user terminal device 3 acquires the image data of the execution result screen. Further, the user terminal device 3 accumulates scenarios that are procedure data of executed operation processing. The user terminal device 3 transmits a storage request for a series of accumulated scenarios to the fourth server 16. The fourth server 16 stores the received scenario in the scenario database 17. This records the scenario.
  • the third server 15 Based on the recorded scenario, when the operation process is executed at a predetermined timing regardless of the request from the user terminal device 3, the third server 15 refers to the scenario database 17 and acquires the scenario.
  • the third server 15 transmits the read scenario execution request to the second server 14.
  • the second server 14 transmits a scenario execution instruction to the browser control device 2, and the above operation process is executed.
  • the communication method in each of the above-described embodiments is not limited to the one using Websocket.
  • the connection 61, the first connection 62, and the second connection 63 may use other communication methods such as polling and long polling instead of using Websocket.
  • polling the browser control device 2 periodically or periodically makes inquiries to the server 1 (first server 11 and second server 12) at predetermined intervals, and pushes the inquiries from the server 1. It may be the one that obtains the reply to be sent.
  • the browser control device 2 can acquire the information regarding the update of the operation instruction based on the response from the server 1.

Abstract

プライベートネットワークに接続される情報処理装置にブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供する。 コンピュータプログラムは、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、前記情報処理装置に、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する処理を実行させる。

Description

コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム
 本技術は、コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システムに関する。
 オフィス又は工場等における作業の効率化を目的としたクラウドサービスとして、特許文献1には、社内ネットワーク上のサーバに対する操作を伴う業務プロセスを自動化するための方法が開示されている。
特許第6532626号公報
 プライベートネットワークに接続される情報処理装置と、グローバルネットワークに接続されるサーバとが通信することにより提供されるクラウドサービスにおいては、セキュリティを担保しつつ可用性の更なる向上が期待される。
 本開示の目的は、プライベートネットワークに接続される情報処理装置に、ブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供することである。
 本開示の一態様におけるコンピュータプログラムは、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、前記情報処理装置に、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する処理を実行させる。
 本開示の一態様における情報処理方法は、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理方法であって、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する。
 本開示の一態様における情報処理装置は、プライベートネットワークに接続され、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理装置であって、前記サーバへコネクションの確立を要求する要求部と、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得する操作指示取得部と、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、前記操作処理の実行結果を取得する実行結果取得部と、取得した前記実行結果を前記サーバに出力する出力部とを備える。
 本開示の一態様における情報処理システムは、プライベートネットワークに接続される情報処理装置及びウェブサーバと、グローバルネットワークに接続されており、前記情報処理装置からの要求に応答することにより確立されたコネクションを用いて、前記情報処理装置に前記ウェブサーバにアクセスするブラウザの操作処理に関する操作指示を出力するサーバとを備え、前記情報処理装置は、前記サーバへ前記コネクションの確立を要求する要求部と、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作指示を取得する操作指示取得部と、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、前記操作処理の実行結果を取得する実行結果取得部と、取得した前記実行結果を前記サーバに出力する出力部とを備える。
 本開示によれば、プライベートネットワークに接続される情報処理装置にブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供することができる。
実施形態1における情報処理システムの概要を示す図である。 ブラウザ制御装置の内部構成を示すブロック図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される処理の手順の一例を示すフローチャートである。 実施形態2における情報処理システムの概要を示す図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。 情報処理システムにおいて実行される処理の手順の一例を示すフローチャートである。 実施形態3における情報処理システムの概要を示す図である。
 本発明をその実施の形態を示す図面を参照して具体的に説明する。
(実施形態1)
 図1は、実施形態1における情報処理システム100の概要を示す図である。情報処理システム100は、サーバ1、ブラウザ制御装置2、ユーザ端末装置3及びウェブサーバ4を含む。ブラウザ制御装置2、ユーザ端末装置3及びウェブサーバ4はプライベートネットワークN1に接続される。サーバ1は、インターネット等のグローバルネットワークN2に接続され、中継装置5を介してプライベートネットワークN1上のブラウザ制御装置2及びユーザ端末装置3との間で通信接続し、情報を送受信する。
 情報処理システム100では、ユーザ端末装置3からの要求に応じて、サーバ1を介してブラウザ制御装置2がウェブサーバ4に対する各種の操作処理を自動で実行し、実行結果をユーザ端末装置3へ提供する自動実行サービスを実現する。
 サーバ1は、例えば、サーバコンピュータである。実施形態1において、以下では、サーバ1は1台のサーバコンピュータとして説明するが、複数のサーバコンピュータで機能又は処理を分散させてもよいし、1台の大型コンピュータに仮想的に生成される複数のサーバコンピュータ(インスタンス)の内の1つであってもよい。サーバ1は、自動実行サービスにより実行される操作処理のためのシナリオを記憶するシナリオデータベース(図示せず)を備える。シナリオは、例えばJSON(Javascript(登録商標) Object Notation)形式のデータであり、ブラウザの操作処理の手順に関するデータが含まれる。
 シナリオに基づき、自動実行される操作処理は、例えば、ウェブサーバ4へのアクセス、ウェブサーバ4上におけるデータの入力、エレメントの選択、ブラウザのリサイズ、ブラウザのスクロール、タブの切替等である。サーバ1は、シナリオデータベースを参照して、これらの操作処理の操作指示をブラウザ制御装置2へ送信する。
 ブラウザ制御装置2は、自動実行サービスによる操作処理の自動実行を行う装置であり、例えばパーソナルコンピュータ、サーバコンピュータ等である。ブラウザ制御装置2は、ブラウザ2aを備える。ブラウザ2aは、ウェブサーバ4と通信を行い、ウェブサーバ4から取得した情報を解析し、解析結果をブラウザ画面に表示する。
 ユーザ端末装置3は、例えばパーソナルコンピュータ、スマートフォン又はタブレット等である。ユーザ端末装置3は、自動実行サービスのユーザにより使用され、ブラウザ制御装置2により自動実行された操作処理に応じて得られる実行結果を取得する。
 ウェブサーバ4は、プライベートネットワークN1に接続されるウェブサーバであり、例えばユーザ企業の販売管理システム、売上管理システム、就業管理システム等である。ウェブサーバ4は、HTTPプロトコルを用いて、プライベートネットワークN1に接続されている各装置にウェブサービスを提供する。ウェブサーバ4からブラウザ制御装置2には、例えばHTML(Hyper Text Markup Language)形式、XML(Extensible Markup Language)形式等のデータが送信される。
 中継装置5は、プライベートネットワークN1とグローバルネットワークN2との間の通信を中継する中継装置であり、例えばルータ、ゲートウェイ等である。中継装置5は、プロキシサーバ、ファイアウォール等の機能を含んでいてもよい。中継装置5は、プライベートネットワークN1でのみ通用するプライベートIP(Internet Protocol )アドレスと、グローバルネットワークN2で使用されるグローバルIPアドレスとを相互に変換するNAT(Network Address Translation )又はNAPT(Network Address Port Translation)機能を備える。中継装置5は、プライベートネットワークN1とグローバルネットワークN2との通信を中継する。中継装置5は、グローバルネットワークN2からの不正なアクセスから、プライベートネットワークN1を防御する。
 図2は、ブラウザ制御装置2の内部構成を示すブロック図である。ブラウザ制御装置2は、制御部20、記憶部21及び通信部22を備える。
 通信部22は、グローバルネットワークN2を介してサーバ1との間で、情報の送受信を実現するための有線又は無線の通信モジュールである。通信部22は、プライベートネットワークN1を介してウェブサーバ4との間で、情報の送受信を実現するための有線又は無線の通信モジュールである。通信部22は、制御部20の指示に従って、サーバ1から、シナリオの操作指示を受信し、ウェブサーバ4にアクセスする。通信部22は、制御部20の指示に従って、ブラウザ画像データをサーバ1に送信する。
 記憶部21は、不揮発性メモリである。記憶部21には、ブラウザ制御プログラム210が記憶されている。ブラウザ制御プログラム210は、シナリオ操作を自動で実行するためのアプリケーションプログラムである。
 ブラウザ制御プログラム210は、ブラウザ制御プログラム210を読み取り可能に記録した非一時的な記憶媒体A1を用いて、ブラウザ制御装置2に提供されてもよい。記憶媒体A1は、例えば可搬型メモリである。可搬型メモリの例として、CD-ROM、USB(Universal Serial Bus)メモリ、SDカード、マイクロSDカード又はコンパクトフラッシュ(登録商標)等が挙げられる。記憶媒体A1が可搬型メモリである場合、制御部20の処理素子は、図示しない読み取り装置を用いて記憶媒体A1からブラウザ制御プログラム210を読み取り、記憶部21に記憶してもよい。
 ブラウザ制御プログラム210は、通信部22を介した通信によって、ブラウザ制御装置2に提供されてもよい。この場合、制御部20の処理素子は、通信部22を通じてブラウザ制御プログラム210を取得し、記憶部21に記憶してもよい。
 制御部20は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)又はGPU(Graphics Processing Unit)等の処理素子(コンピュータ)を有する。制御部20の処理素子は、ブラウザ制御プログラム210を実行する。なお、制御部20が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
 上記のように構成される情報処理システム100において、シナリオに基づく操作処理の自動実行が行われる。図3から図5は、情報処理システム100において実行される操作処理の手順の一例を示すシーケンス図である。
 ブラウザ制御装置2は、ブラウザ制御装置2が起動された場合、グローバルネットワークN2を介してサーバ1にコネクション61の確立要求を送信する(ステップS111)。確立要求は、HTTPプロトコルにより行われ、Websocketへのプロトコルのアップグレード、及びブラウザ制御装置2からの要求であること等が示される。サーバ1は、受信したコネクションの確立要求への応答を送信する(ステップS112)。これにより、サーバ1とブラウザ制御装置2との間でWebsocketプロトコルによるコネクション61が確立され、双方向通信、すなわちプッシュ型の相互通信が可能となる。以降のサーバ1とブラウザ制御装置2との通信は、コネクション61を用いてWebsocketプロトコルに準拠する電文を用いて行われる。ブラウザ制御装置2が起動している場合は常時サーバ1との情報の送受信を可能にするため、コネクション61は、ブラウザ制御装置2の起動をトリガとして確立され、ブラウザ制御装置2のシステムが終了されるまではコネクションが継続される。
 通常、グローバルネットワーク上の装置がプライベートネットワーク内の装置に接続する場合においては、いわゆるNAT(Network Address Translation )越えを行う必要がある。本実施形態においても、サーバ1からブラウザ制御装置2へと通信を行う場合はNAT越えが必要とされる。本実施形態においては、Websocketにより、OSI参照モデルのアプリケーション層にてコネクション61を確立することで、NAT越えを実現する。なお、Websocketプロトコルを用いる場合においては、SSL(Secure Sockets Layer)/TLS(Transport Layer Security)を使用して暗号化して通信するwss(Websocket secure)のようなセキュアな通信プロトコルが好ましい。
 コネクション61の確立後、ユーザ端末装置3は、シナリオの自動実行を要求する。ユーザ端末装置3は、初めにサーバ1へブラウザの起動要求を送信する(ステップS113)。ユーザ端末装置3からは、例えば、起動要求と共にユーザ端末装置3の識別情報が送信される。サーバ1は、ブラウザの起動要求を受信する。サーバ1は、シナリオの自動実行を要求するユーザ端末装置3と、当該ユーザ端末装置3からの要求に応じて操作処理を実行させるべきブラウザ制御装置2とを対応付けたテーブルを予め記憶している。サーバ1は、起動指示を送信するブラウザ制御装置2をテーブルから読み出し、コネクション61を介して、読み出したブラウザ制御装置2へとブラウザの起動指示をプッシュ送信する(ステップS114)。起動指示は、Websocketプロトコル内で定められた電文形式にて送信される。サーバ1とブラウザ制御装置2との間では、コネクション61が確立されているため、NATを超えたサーバ1からのブラウザ制御装置2への情報のプッシュ送信が可能である。
 ブラウザ制御装置2は、起動指示を受信し、ブラウザ2aを起動する(ステップS115)。一連のシナリオ処理操作は、ブラウザ制御装置2にて自動実行されるため、起動されるブラウザ2aはヘッドレスブラウザであってよい。ブラウザ2aの制御は、ウェブドライバ等を用いてよい。
 次に、ユーザ端末装置3は、サーバ1へシナリオの実行要求を送信する(ステップS116)。サーバ1は、シナリオの実行要求を受信する。サーバ1は、既に確立されているコネクション61を介してシナリオの実行指示をブラウザ制御装置2へプッシュ送信する(ステップS117)。実行指示は、Websocketプロトコル内で定められた電文形式にて送信される。
 ブラウザ制御装置2は、実行指示を受信する。ブラウザ制御装置2は、受信した実行指示に基づき、ブラウザ2aの操作処理を実行する。具体的には、ブラウザ制御装置2は、実行指示に基づき、ブラウザ2aの操作処理を実行する(ステップS118)。ブラウザ2aは、ウェブサーバ4へHTTPリクエストを送信し(ステップS119)、HTTPレスポンスを取得する(ステップS120)。ウェブサーバ4から取得するレスポンスは、例えばHTML形式のデータである。ブラウザ制御装置2は、操作処理に対するブラウザ2aのレスポンスを取得し(ステップS121)、取得したレスポンスをサーバ1へ送信する(ステップS122)。実行指示へのレスポンスには、例えば操作が正常に完了した場合の結果以外に、操作処理に対して異常終了した場合のエラー情報等が含まれる。ブラウザ制御装置2は、ウェブサーバ4への操作処理に応じたウェブページを含むブラウザ画面の画像データを要求する(ステップS123)。ブラウザ制御装置2は、ブラウザ画面の画像データを取得する(ステップS124)。画像データは、ブラウザ画面のスナップショットによるイメージデータである。これにより、操作処理の実行結果が、画像データで取得される。
 シナリオに含まれる操作処理は、一般的なセレクタの仕様形態を拡張した独自セレクタを用いるものであってもよい。自動実行する操作処理の対象であるウェブサーバ4が提供するウェブサービスにおいて、当該ウェブサービスによる主たるブラウザ画面が、iframeタグを含むものである場合、当該iframeタグによって定義されるインラインのブラウザ画面内の入力項目等のエレメントへの操作処理も自動化する必要がある。この場合、主たるブラウザ画面及びインラインのブラウザ画面の双方の画面におけるセレクタを取得し、取得したセレクタ夫々を結合した独自セレクタを用いることにより、iframeタグによって定義されるインラインのブラウザ画面内、すなわちインラインフレームのエレメントを直接指定し、操作処理を行うことができる。
 さらに、ブラウザ制御装置2は、ブラウザ画面を定期的に取得し、ブラウザ画面の変化を検知する。ブラウザ制御装置2は、例えば3秒毎等の所定のタイミングで、ウェブページを含むブラウザ画面の画像データを要求し(ステップS125)、画像データを取得する(ステップS126)。ブラウザ制御装置2は、前回画面との差分に基づき、画面変化を検知する。(ステップS127)。ブラウザ制御装置2は、所定時間操作が行われないことによるタイムアウト情報等の、ウェブサーバ4からの処理により変化する画面遷移を取得する。これにより、自動変化の検知に対する実行結果が、画像データで取得される。
 ブラウザ制御装置2は、取得した実行結果の画像データ、HTMLソース等をサーバ1へ送信する(ステップS128)。ユーザ端末装置3は、実行結果の取得を希望する場合には、サーバ1へ実行結果の要求を送信する(ステップS129)。サーバ1は、送信要求への応答として、受信した実行結果の画像データをユーザ端末装置3へ送信する(ステップS131)。ユーザ端末装置3に送信される実行結果の画像データは、HTML形式のデータの一部として送信される。ユーザ端末装置3は、自身の端末装置上でブラウザ操作を行うことなく、選択したシナリオに応じた実行結果の画面を画像データで取得することができる。なお、ユーザ端末装置3から実行結果の要求がされない場合においては、サーバ1は実行結果画面の画像データを送信しない構成であってよい。サーバ1は、実行結果をデータベースに記憶しておき、ユーザの要求を取得したタイミングで、データベースから実行結果を読み出し送信する構成であってよい。
 ステップS117からステップS131のループ処理が行われ一連のシナリオの操作処理が終了した場合、情報処理システム100の各装置は、一連の処理を終了する。
 上記の処理において、ブラウザ制御装置2は、ブラウザ2aの起動指示を受信することなくブラウザ2aの起動を行ってもよい。例えば、ブラウザ制御装置2の起動時にブラウザ2aが自動起動されてもよい。ブラウザ制御プログラム210とブラウザ2aが一体化されることにより、ブラウザ制御プログラム210の起動と同時にブラウザ2aが自動起動されてもよい。
 また、シナリオ自動実行の操作指示は、ユーザ端末装置3からの要求を受けて行われるものに限定されない。サーバ1は、ユーザ端末装置3からの要求を受信することなく、予め設定されるタイミングにて、起動指示又は操作指示を自動でブラウザ制御装置2へと送信してよい。
 図6は、情報処理システム100において実行される処理の手順の一例を示すフローチャートである。図6の処理はブラウザ制御装置2の制御部20により実行される。ブラウザ制御装置2は、ブラウザ制御プログラム210を実行することによって、ブラウザ操作処理を自動実行する。処理の実行タイミングは、例えばブラウザ制御装置2が起動されたタイミングである。
 制御部20は、通信部22を介してサーバ1にコネクション61の確立要求を送信する(ステップS11)。制御部20は、ブラウザ制御装置2からの要求であることを示す情報を含むコネクション61の確立要求を送信する。制御部20は、サーバ1から確立要求に対する応答を受信する(ステップS13)。これにより、サーバ1とブラウザ制御装置2との間でコネクション61が確立される。
 制御部20は、通信部22を介してサーバ1から起動指示を取得する(ステップS15)。起動指示は、Websocketプロトコル内で定められた電文形式を用いて、コネクション61を介して任意のタイミングでサーバ1からプッシュ送信される。制御部20は、取得した起動指示に基づき、ブラウザ2aを起動する(ステップS17)。ブラウザ2aは、バックグラウンドにて起動されるヘッドレスブラウザであってよい。なお、制御部20は、起動指示を取得することなくブラウザ2aを起動する構成であってよい。例えば制御部20は、ブラウザ制御プログラム210の起動等をトリガとして、ブラウザ2aを起動してよい。
 制御部20は、通信部22を介してサーバ1から実行指示を取得する(ステップS19)。実行指示は、Websocketプロトコル内で定められた電文形式を用いて、コネクション61を介して任意のタイミングでサーバ1からプッシュ送信される。制御部20は、実行指示に基づき、通信部22を介してウェブサーバ4へアクセスし、シナリオの操作処理を実行する(ステップS21)。制御部20は、操作処理に対するブラウザ2aのレスポンスを取得する(ステップS23)。レスポンスには、操作処理の正常完了、異常終了等が含まれる。
 制御部20は、サブプロセスを発生させ、ステップS19の処理に並行してステップS25の処理を行う。制御部20は、例えばウェブドライバ等を介して、所定のタイミングで、ブラウザ2aに表示されるウェブページのブラウザ画面データを取得し、取得した今回の画面データと前回の画面データとを比較する。制御部20は、今回の画面データと前回の画面データとの差分を導出し、導出した差分に基づきブラウザ画面が変化したか否かを判定する(ステップS25)。ブラウザ画面が変化したことを示す差分が取得されず、ブラウザ画面が変化したと判定されない場合には、制御部20は、処理をステップS25に戻しブラウザ画面データの取得を継続する。ブラウザ画面が変化したことを示す差分が取得され、ブラウザ画面が変化したと判定された場合には、制御部20は、処理をステップS27へ進める。
 制御部20は、ウェブサーバ4への操作処理の実行結果を取得する(ステップS27)。具体的には、制御部20はブラウザ画面の画像データを取得する。画像データには、実行指示に対するブラウザ画面の画像データ及び画面の自動変化の検知に対するブラウザ画面の画像データの少なくとも一方が含まれる。制御部20は、通信部22を介して取得した実行結果の画像データをサーバ1へ出力する(ステップS29)。
 制御部20は、一連のシナリオの操作処理が終了したか否かを判断する(ステップS31)。取得した全ての操作処理を実行しておらず、操作処理が終了したと判断されない場合(S31:NO)、制御部20は、処理をステップS19に戻しループ処理を行い、一連のシナリオの操作処理に係る実行指示の取得を継続する。一方、取得した全ての操作処理を実行し、操作処理が終了したと判断される場合(S31:YES)、制御部20は一連の処理を終了する。
 本実施形態では、実行結果は画像データで出力される例を説明するが、実行結果は画像データのみに限定されるものではない。実行結果は、画像データ以外にパスが出力されてもよく、HTML形式のデータが出力されてもよい。制御部20は、操作ログを取得し、取得した操作ログをサーバ1へ出力してもよい。また、実行指示の取得及び画像データの出力は、操作処理毎に行われる必要はなく、所定数の操作処理がまとめて送受信されてよい。複数の画像データがまとめて送信される場合においては、制御部20は、画像データを識別するための画像ID、当該画像IDに対応付けられる操作指示の情報等のメタデータを画像データと共に出力してよい。
 シナリオの操作処理に対するエラー情報を取得した場合、制御部20は、ステップS29において、画像情報と共にエラー情報に関する情報を出力してもよい。制御部20は、例えば、ブラウザ2aからエラー箇所又はエラー内容を取得して画像情報と共にサーバ1へ出力する。制御部20は、例えば、ブラウザ2aからエラーの発生原因を取得し、エラーがウェブサーバ4、シナリオ、本ブラウザ制御プログラム210及びブラウザ制御装置2等のいずれを原因として発生しているかを識別する情報を画像情報と共にサーバ1へ出力する。さらに制御部20は、サーバ1又はユーザ端末装置3へ、エラーの発生を示す通知情報を出力してもよい。
 本実施形態において、ブラウザ制御装置2、ユーザ端末装置3及びウェブサーバ4はそれぞれ、複数台設けられてよい。この場合において、各ブラウザ制御装置2と各ユーザ端末装置3とは、異なるプライベートネットワークに接続されていてもよい。
 ブラウザ制御装置2が複数台設けられる場合においては、サーバ1は、操作指示を出力するブラウザ制御装置2を特定し、特定したブラウザ制御装置2へと操作指示を出力する。操作処理の処理対象として、特定のブラウザ制御装置2が指定されている場合には、サーバ1は、特定されるブラウザ制御装置2へ操作指示を出力する。操作処理の処理対象が指定されていない場合には、サーバ1は、各ブラウザ制御装置2の負荷状況に基づき、シナリオを実行させるブラウザ制御装置2を特定するとよい。サーバ1は、コネクション確立時に取得した各ブラウザ制御装置2を識別するための情報と、各ブラウザ制御装置2へのシナリオの実行指示状況とに基づき、新たな操作処理を実行させるブラウザ制御装置2を選択し、操作指示を出力する。所定のブラウザ制御装置2へ操作指示を出力した場合に、エラー等により正常に受信されなかった場合には、サーバ1は、代替するブラウザ制御装置2を選択して操作指示を出力する。サーバ1は、シナリオの操作処理を割り振り、各ブラウザ制御装置2の負荷を分散させるロードバランサーとして機能する。
 本実施形態によれば、グローバルネットワークN2上のサーバ1とプライベートネットワークN1内のブラウザ制御装置2との間にコネクション61が確立されることにより、双方向通信が可能となる。従って、任意のタイミングでサーバ1からブラウザ制御装置2へと、シナリオの操作処理に関する各種の情報をプッシュ送信することができる。
 コネクション61は、アプリケーション層にて確立される。OSI参照モデルの上位層でのコネクションが確立されるため、通信時のセキュリティの向上を図ることが可能となる。コネクション61を用いたサーバ1からの操作処理に関する操作指示は、Websocketプロトコルに準拠した電文のみが送信可能である。従って、グローバルネットワークN2からのアクセスに関して、送信される情報の範囲が限定されるため、脆弱性の発生リスクを減少させることができる。また、サービスの提供を受けるユーザ側のネットワーク環境のセキュリティ設定条件により、グローバルネットワークN2上の装置からプライベートネットワークN1へのアクセスにおいて、HTTPプロトコル以外のプロトコルは不正アクセスとして遮断される場合がある。本実施形態では、HTTPプロトコルの拡張規格として規定されるWebsocketプロトコルを用いるため、コネクション61の確立が容易に実現される。
 本実施形態によれば、ブラウザ制御装置2上のブラウザ2aを用いてウェブサーバ4へのシナリオ操作処理が実行され、サーバ1及びユーザ端末装置3へは、実行結果の画像データが送信される。ブラウザ制御装置2及びウェブサーバ4は、プライベートネットワークN1により接続されるため、セキュリティを確保した情報の送受信が可能である。また、ブラウザ制御装置2のリソースにてブラウザ機能を使用することで、サーバ1の負荷を軽減することが可能となる。
 上記では、ブラウザ制御装置2上のブラウザ機能を使用して一連の操作処理が実行される例を説明したが、本実施形態はこれに限定されるものではない。例えば、ブラウザ制御装置2とプライベートネットワークN1により通信接続された他の情報処理装置との間で情報の送受信を行い、他の情報処理装置のブラウザからウェブサーバ4へアクセスが実行されてもよい。本実施形態は、シナリオを自動実行する場合のみならず、シナリオデータを記録する場合においても適用が可能である。
(実施形態2)
 実施形態2では、実施形態1のサーバ1が行う処理を、第1サーバ及び第2サーバが分担して行う点で実施形態1と異なる。図7は、実施形態2における情報処理システム200の概要を示す図である。実施形態2における情報処理システム200は、サーバ1に代替して第1サーバ11及び第2サーバ12が含まれる点、情報処理システム200で実行される処理の詳細が異なる点以外は実施形態1における構成と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
 第1サーバ11及び第2サーバ12は夫々、インターネット等のグローバルネットワークN2に接続され、中継装置5を介してプライベートネットワークN1との間で通信接続し、情報を送受信することが可能である。また、第1サーバ11及び第2サーバ12は、グローバルネットワークN2を介して通信接続し、情報を送受信することが可能である。第1サーバ11及び第2サーバ12は夫々、例えばサーバコンピュータである。
 実施形態2では、第1サーバ11からブラウザ2aの起動指示が出力され、第2サーバ12から操作処理の実行指示が出力される。図8から図10は、情報処理システム200において実行される操作処理の手順の一例を示すシーケンス図である。
 ブラウザ制御装置2は、ブラウザ制御装置2が起動された場合、グローバルネットワークN2を介して第1サーバ11にコネクション61の確立要求を送信する(ステップS211)。確立要求は、HTTPプロトコルにより行われ、Websocketへのプロトコルのアップグレード、及びブラウザ制御装置2からの要求であること等が示される。第1サーバ11は、コネクションの確立要求への応答を送信する(ステップS212)。これにより、第1サーバ11とブラウザ制御装置2との間でWebsocketプロトコルによる第1コネクション62が確立され、双方向通信が可能となる。第1コネクション62は、ブラウザ制御装置2の起動をトリガとして確立される。
 ユーザ端末装置3は、シナリオの自動実行を要求する。ユーザ端末装置3は、初めに第2サーバ12へブラウザ2aの起動要求を送信する(ステップS213)。ユーザ端末装置3からは、例えば起動要求と共にユーザ端末装置3の識別情報が送信される。第2サーバ12は、ブラウザ2aの起動要求を受信した場合、起動指示を第1サーバ11へ送信する(ステップS214)。第1サーバ11は、シナリオの自動実行を要求するユーザ端末装置3と、当該ユーザ端末装置3からの要求に応じて操作処理を実行させるべきブラウザ制御装置2とを対応付けたテーブルを予め記憶している。第1サーバ11は、起動指示を送信するブラウザ制御装置2をテーブルから読み出し、第1コネクション62を介して、読み出したブラウザ制御装置2へとブラウザ2aの起動指示をプッシュ送信する(ステップS215)。第1サーバ11とブラウザ制御装置2との間では、第1コネクション62が確立されているため、NATを超えた第1サーバ11からのブラウザ2a制御装置への情報のプッシュ送信が可能である。
 ブラウザ制御装置2は、起動指示を受信し、ブラウザ2aを起動する(ステップS216)。一連のシナリオ処理操作は、ブラウザ制御装置2にて直接操作を受け付けることなく自動で実行されるため、起動されるブラウザ2aはヘッドレスブラウザ2aであってよい。
 さらにブラウザ制御装置2は、起動指示を受信した場合に、グローバルネットワークN2を介して第2サーバ12に第2コネクション63の確立要求を送信する(ステップS217)。確立要求は、HTTPプロトコルにより行われ、Websocketへのプロトコルのアップグレード、及びブラウザ制御装置2からの要求であること等が示される。第2サーバ12は、受信した第2コネクション63の確立要求への応答を送信する(ステップS218)。これにより、第2サーバ12とブラウザ制御装置2との間でWebsocketプロトコルによる第2コネクション63が確立され、双方向通信が可能となる。第2コネクション63は、ブラウザ制御装置2における起動指示の取得をトリガとして確立される。
 ユーザ端末装置3は、第2サーバ12へシナリオの実行要求を送信する(ステップS219)。第2サーバ12は、シナリオの実行要求を受信する。第2サーバ12は、既に確立されている第2コネクション63を介して、シナリオの実行指示をブラウザ制御装置2へプッシュ送信する(ステップS221)。
 ブラウザ制御装置2は、実行指示を受信する。ブラウザ制御装置2は、実行指示のメッセージに基づき、ブラウザ2aの操作処理を実行する(ステップS222)。ブラウザ2aは、ウェブサーバ4へHTTPリクエストを送信し(ステップS223)、HTTPレスポンスを取得する(ステップS224)。ブラウザ制御装置2は、操作処理に対するブラウザ2aのレスポンスを取得し(ステップS225)、取得したレスポンスを第2サーバ12へ送信する(ステップS226)。ブラウザ制御装置2は、ウェブサーバ4への操作処理に応じたウェブページを含むブラウザ画面の画像データを要求する(ステップS227)。ブラウザ制御装置2は、ブラウザ画面の画像データである実行結果を取得する(ステップS228)。
 さらに、ブラウザ制御装置2は、ブラウザ画面の変化を検知する。ブラウザ制御装置2は、所定のタイミングで、ウェブページを含むブラウザ画面の画像データを要求し(ステップS229)、画像データを取得する(ステップS230)。ブラウザ制御装置2は、前回画面との差分に基づき、画面変化を検知する(ステップS231)。
 ブラウザ制御装置2は、取得した実行結果の画像データ、HTMLソース等を第2サーバ12へ送信する(ステップS232)。ユーザ端末装置3は、実行結果の取得を希望する場合には、第2サーバ12へ実行結果の要求を送信する(ステップS233)。第2サーバ12は、送信要求への応答として、受信した実行結果の画面の画像データをユーザ端末装置3へ送信する(ステップS234)。ユーザ端末装置3は、選択したシナリオに応じた実行結果を画像データで取得することができる。
 ステップS221からステップS234のループ処理が行われ、一連のシナリオの処理操作が実行される。一連のシナリオの操作処理が終了した場合、ブラウザ制御装置2は第2サーバ12との通信を切断する(ステップS235)。これにより第2コネクション63が切断される。
 図11は、情報処理システム200において実行される処理の手順の一例を示すフローチャートである。図11の処理はブラウザ制御装置2の制御部20により実行される。ブラウザ制御装置2は、ブラウザ制御プログラム210を実行することによって、ブラウザ2a操作処理を自動実行する。処理の実行タイミングは、例えばブラウザ制御装置2が起動されたタイミングである。
 制御部20は、通信部22を介して第1サーバ11に第1コネクション62の確立要求を送信する(ステップS41)。制御部20は、ブラウザ制御装置2からの要求であることを示す情報を含む第1コネクション62の確立要求を送信する。制御部20は、第1サーバ11から確立要求に対する応答を受信する(ステップS43)。これにより、第1サーバ11とブラウザ制御装置2との間で第1コネクション62が確立される。
 制御部20は、通信部22を介して第1サーバ11から起動指示を取得する(ステップS45)。起動指示は、Websocketプロトコル内で定められた電文形式を用いて、第1コネクション62を介して任意のタイミングで第1サーバ11からプッシュ送信される。制御部20は、取得した起動指示に基づき、ブラウザ2aを起動する(ステップS47)。ブラウザ2aは、バックグラウンドにて起動されるヘッドレスブラウザ2aであってよい。
 制御部20は、起動指示の取得をトリガとして、通信部22を介して第2サーバ12に第2コネクション63の確立要求を送信する(ステップS49)。制御部20は、第2サーバ12から確立要求に対する応答を受信する(ステップS51)。これにより、第2サーバ12とブラウザ制御装置2との間で第2コネクション63が確立される。
 制御部20は、通信部22を介して第2サーバ12から実行指示を取得する(ステップS53)。実行指示は、Websocketプロトコル内で定められた電文形式を用いて、第2コネクション63を介して任意のタイミングで第2サーバ12からプッシュ送信される。制御部20は、実行指示に基づき、通信部22を介してウェブサーバ4へアクセスし、シナリオの操作処理を実行し(ステップS55)、レスポンスを取得する(ステップS57)。
 制御部20は、サブプロセスを発生させ、ステップS53の処理に並行してステップS59の処理を行う。制御部20は、所定のタイミングで、ブラウザ2aに表示されるウェブページのブラウザ画面データを取得し、取得した今回の画面データと前回の画面データとを比較する。制御部20は、今回の画面データと前回の画面データとの差分を導出し、導出した差分に基づきブラウザ画面が変化したか否かを判定する(ステップS59)。ブラウザ画面が変化したことを示す差分が取得されず、ブラウザ画面が変化したと判定されない場合には(ステップS59:NO)、制御部20は、処理をステップS59に戻しブラウザ画面データの取得を継続する。ブラウザ画面が変化したことを示す差分が取得され、ブラウザ画面が変化したと判定された場合には(ステップS59:YES)、制御部20は、処理をステップS61へ進める。
 制御部20は、ウェブサーバ4への操作処理の実行結果を取得する(ステップS61)。具体的には、制御部20はブラウザ画面の画像データを取得する。制御部20は、通信部22を介して取得した実行結果の画像データを第2サーバ12へ出力する(ステップS63)。
 制御部20は、一連のシナリオの操作処理が終了したか否かを判断する(ステップS65)。取得した全ての操作処理を実行しておらず、操作処理が終了したと判断されない場合(S65:NO)、制御部20は、処理をステップ53に戻しループ処理を行い、一連のシナリオの操作処理に係る実行指示の取得を継続する。一方、取得した全ての操作処理を実行し、操作処理が終了したと判断される場合(S65:YES)、制御部20は、第2サーバ12との通信を切断し(ステップS67)、一連の処理を終了する。
 本実施形態では、第1サーバ11及び第2サーバ12を用いてシナリオの操作処理に関する指示を分担して行うため、各サーバの負担をさらに軽減することが可能となる。
(実施形態3)
 実施形態3では、複数台のサーバにて、操作処理の自動実行からシナリオの記録までの一連の自動実行サービスを提供する例を説明する。図12は、実施形態3における情報処理システム300の概要を示す図である。実施形態1及び実施形態2と共通する構成については同一の符号を付してその詳細な説明を省略する。
 情報処理システム300は、第1サーバ13、第2サーバ14、第3サーバ15、第4サーバ16、シナリオデータベース17、ブラウザ制御装置2、ユーザ端末装置3、ウェブサーバ4及び中継装置5を含む。なお、図12では、中継装置5及びグローバルネットワークN2は図示しない。第1サーバ13、第2サーバ14、第3サーバ15及び第4サーバ16は夫々、グローバルネットワークN2と接続され、中継装置5を介してプライベートネットワークN1との間で通信接続し、情報を送受信することが可能である。第1サーバ13、第2サーバ14、第3サーバ15及び第4サーバ16は夫々、例えばサーバコンピュータである。実施形態3においては、実施形態2における第2サーバ12の処理を第2サーバ14、第3サーバ15及び第4サーバ16で行う。
 初めにブラウザ制御装置2は、第1サーバ13へ第1コネクション62の確立要求を送信し、ブラウザ制御装置2と第1サーバ13との間で第1コネクション62を確立する。
 ユーザ端末装置3は、第2サーバ14へブラウザ2aの起動要求を送信する。第2サーバ14は、第1サーバ13へブラウザ2aの起動要求を送信する。第1サーバ13は、受信した起動要求に基づき、第1コネクション62を用いてブラウザ制御装置2へブラウザ2aの起動指示をプッシュ送信する。
 ブラウザ制御装置2は、起動指示の取得をトリガとして、第2サーバ14へ第2コネクション63の確立要求を送信し、ブラウザ制御装置2と第2サーバ14との間で第2コネクション63を確立する。
 ユーザ端末装置3は、第2サーバ14へシナリオの実行要求を送信する。第2サーバ14は、受信した実行要求に基づき、第2コネクション63を用いてブラウザ制御装置2へシナリオの実行指示をプッシュ送信する。
 ブラウザ制御装置2は、ブラウザ2aの操作を実行する。具体的にはブラウザ制御装置2は、ウェブサーバ4へアクセスし、アクセス結果を取得する。ブラウザ制御装置2は、操作処理の実行結果の画像データを取得し、取得した画像データを第2サーバ14へ送信する。第2サーバ14は、取得した画像データをユーザ端末装置3へ送信する。
 ユーザ端末装置3は、実行結果画面の画像データを取得する。さらにユーザ端末装置3は、実行した操作処理の手順データであるシナリオを蓄積する。ユーザ端末装置3は、蓄積した一連のシナリオの保存要求を第4サーバ16へ送信する。第4サーバ16は、受信したシナリオをシナリオデータベース17に記憶する。これによりシナリオが記録される。
 記録したシナリオに基づき、ユーザ端末装置3からの要求によらず所定のタイミングで操作処理を実行する場合には、第3サーバ15は、シナリオデータベース17を参照しシナリオを取得する。第3サーバ15は、読み出したシナリオの実行要求を第2サーバ14へ送信する。第2サーバ14は、ブラウザ制御装置2へシナリオの実行指示を送信し、上記の操作処理が実行される。
(実施形態4)
 上述の各実施形態における通信方法は、Websocketによるものに限定されない。コネクション61、第1コネクション62及び第2コネクション63は、Websocketによるものに代替して、例えばポーリング、ロングポーリング等の、他の通信方法を用いてもよい。例えば、ポーリングを用いることにより、ブラウザ制御装置2は、所定間隔にて定期的又は定常的にサーバ1(第1サーバ11及び第2サーバ12)に問合せを行い、当該問合せに対しサーバ1からプッシュ送信される返答を取得するものであってもよい。当該所定間隔の間に、サーバ1における操作指示の更新があった場合、ブラウザ制御装置2は、サーバ1からの返答に基づき操作指示の更新に関する情報を取得することができる。ポーリングを用いることにより、中継装置5に対するフォワード設定等を不要とし、セキュリティを担保しつつサーバ1とブラウザ制御装置2との通信を行うことができる。なおロングポーリングにより通信を行う場合においては、定期的にコネクションが切断されるため、ブラウザ制御装置2を一位に識別できるようにセッション管理等を行うことが好ましい。
 なお、上述のように開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。各実施例にて記載されている技術的特徴は互いに組み合わせることができ、本発明の範囲は、請求の範囲内での全ての変更及び請求の範囲と均等の範囲が含まれることが意図される。
 1 サーバ
 11,13 第1サーバ
 12,14 第2サーバ
 15 第3サーバ
 16 第4サーバ
 2 ブラウザ制御装置
 3 ユーザ端末装置
 4 ウェブサーバ
 5 中継装置
 61 コネクション
 62 第1コネクション
 63 第2コネクション
 20 制御部
 21 記憶部
 22 通信部
 2a ブラウザ
 210 ブラウザ制御プログラム
 

Claims (13)

  1.  プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、
     前記情報処理装置に、
     前記サーバへコネクションの確立を要求し、
     前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、
     取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、
     前記操作処理の実行結果を取得し、
     取得した前記実行結果を前記サーバに出力する
     処理を実行させるためのコンピュータプログラム。
  2.  前記コネクションは、アプリケーション層にて確立される
     請求項1に記載のコンピュータプログラム。
  3.  前記コネクションは、Websocketによるものである
     請求項1又は請求項2に記載のコンピュータプログラム。
  4.  前記操作指示は、前記ブラウザの起動指示及び前記操作処理の実行指示を含む
     請求項1から請求項3のいずれか1項に記載のコンピュータプログラム。
  5.  前記サーバは、前記ブラウザの起動指示を送信する第1サーバと、前記操作処理の実行指示を送信する第2サーバとを含み、
     前記コネクションは、第1コネクション及び第2コネクションを含み、
     前記情報処理装置に、
     前記第1サーバへ前記第1コネクションの確立を要求し、
     前記第1コネクションを用いて、前記第1サーバからプッシュ送信される前記起動指示を取得し、
     取得した前記起動指示に基づいて、前記ブラウザを起動し、
     前記第2サーバへ前記第2コネクションの確立を要求し、
     前記第2コネクションを用いて、前記第2サーバからプッシュ送信される前記実行指示を取得し、
     取得した前記実行指示に基づいて、前記ブラウザの前記操作処理を実行する
     処理を実行させるための請求項1から請求項4のいずれか1項に記載のコンピュータプログラム。
  6.  前記情報処理装置に、
     前記起動指示を取得した場合に、前記第2コネクションの確立を要求し、
     前記実行指示に基づいて実行した前記操作処理が終了した場合に、前記第2コネクションを切断する
     処理を実行させるための請求項5に記載のコンピュータプログラム。
  7.  前記実行結果は、前記操作処理に応じて前記ブラウザ上で表示されるべき画面の画像データを含む
     請求項1から請求項6のいずれか1項に記載のコンピュータプログラム。
  8.  前記実行結果は、前記ブラウザ上で表示されるべき画面の変化に応じた画像データを含む
     請求項1から請求項7のいずれか1項に記載のコンピュータプログラム。
  9.  前記実行結果は、前記操作処理に係るエラー情報又はタイムアウト情報を含む
     請求項1から請求項8のいずれか1項に記載のコンピュータプログラム。
  10.  プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理方法であって、
     前記サーバへコネクションの確立を要求し、
     前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、
     取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、
     前記操作処理の実行結果を取得し、
     取得した前記実行結果を前記サーバに出力する
     情報処理方法。
  11.  プライベートネットワークに接続され、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理装置であって、
     前記サーバへコネクションの確立を要求する要求部と、
     前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得する操作指示取得部と、
     取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、
     前記操作処理の実行結果を取得する実行結果取得部と、
     取得した前記実行結果を前記サーバに出力する出力部と
     を備える情報処理装置。
  12.  プライベートネットワークに接続されるウェブサーバにアクセス可能に接続される情報処理装置と、
     グローバルネットワークに接続されており、前記情報処理装置からの要求に応答することにより確立されたコネクションを用いて、前記情報処理装置に前記ウェブサーバにアクセスするブラウザの操作処理に関する操作指示を出力するサーバとを備え、
     前記情報処理装置は、
     前記サーバへ前記コネクションの確立を要求する要求部と、
     前記コネクションを用いて、前記サーバからプッシュ送信される前記操作指示を取得する操作指示取得部と、
     取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、
     前記操作処理の実行結果を取得する実行結果取得部と、
     取得した前記実行結果を前記サーバに出力する出力部とを備える
     情報処理システム。
  13.  前記プライベートネットワークに接続されるユーザ端末装置をさらに含み、
     前記サーバは、前記ユーザ端末装置の要求を受け付けた場合に、前記情報処理装置に前記操作指示を送信する
     請求項12に記載の情報処理システム。
     
PCT/JP2020/023896 2019-09-11 2020-06-18 コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム WO2021049120A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20792911.8A EP4030303A4 (en) 2019-09-11 2020-06-18 COMPUTER PROGRAM, INFORMATION PROCESSING METHOD, INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING SYSTEM
US17/049,850 US11695836B2 (en) 2019-09-11 2020-06-18 Recording medium, information processing method, information processing device, and information processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019165565A JP6651178B1 (ja) 2019-09-11 2019-09-11 コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム
JP2019-165565 2019-09-11

Publications (1)

Publication Number Publication Date
WO2021049120A1 true WO2021049120A1 (ja) 2021-03-18

Family

ID=69568433

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/023896 WO2021049120A1 (ja) 2019-09-11 2020-06-18 コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム

Country Status (4)

Country Link
US (1) US11695836B2 (ja)
EP (1) EP4030303A4 (ja)
JP (1) JP6651178B1 (ja)
WO (1) WO2021049120A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0232626B2 (ja) 1979-08-10 1990-07-23 Canon Kk
JP2002342152A (ja) * 2001-05-15 2002-11-29 Nec Software Chubu Ltd 自動アクセスによるWebページ利用方法
JP2019074889A (ja) * 2017-10-13 2019-05-16 BizteX株式会社 ウェブブラウザの操作を伴う業務プロセスを自動化するためのシステム、方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801604B2 (en) * 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US9154557B2 (en) * 2006-10-12 2015-10-06 Cisco Technology, Inc. Automatic proxy registration and discovery in a multi-proxy communication system
KR20120134732A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 원격제어기를 이용하여 웹 브라우징을 수행하는 장치 및 방법
CN102833323B (zh) * 2012-08-14 2017-04-12 新浪网技术(中国)有限公司 服务器远程控制受控终端的方法和系统
US11245706B2 (en) * 2017-03-27 2022-02-08 Oracle Systems Corporation Protection configuration for application programming interfaces
JP6532626B1 (ja) 2019-04-02 2019-06-19 BizteX株式会社 社内ネットワーク上の社内サーバに対する操作を伴う業務プロセスを自動化するための装置、方法及びそのためのプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0232626B2 (ja) 1979-08-10 1990-07-23 Canon Kk
JP2002342152A (ja) * 2001-05-15 2002-11-29 Nec Software Chubu Ltd 自動アクセスによるWebページ利用方法
JP2019074889A (ja) * 2017-10-13 2019-05-16 BizteX株式会社 ウェブブラウザの操作を伴う業務プロセスを自動化するためのシステム、方法及びプログラム

Also Published As

Publication number Publication date
JP6651178B1 (ja) 2020-02-19
EP4030303A1 (en) 2022-07-20
JP2021043718A (ja) 2021-03-18
EP4030303A4 (en) 2023-08-16
US20210281647A1 (en) 2021-09-09
US11695836B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
JP3980596B2 (ja) サーバを遠隔かつ動的に構成する方法およびシステム
US9146731B2 (en) Information processing apparatus, relay server, information relay method, non-transitory computer-readable medium storing information relay program, and communication system
US8316133B2 (en) Thin client system using session managing server and session managing method
US8086669B2 (en) Multi-protocol print client-server communication
US10915383B2 (en) Remote session information based on process identifier
JPWO2007039942A1 (ja) 端末装置及びサーバ装置及び指令装置
CN111447170A (zh) 数据处理方法及其系统、计算机系统及计算机可读介质
US20200204461A1 (en) Automation system for testing and publishing of web service
CN110442506B (zh) 一种日志获取方法、装置、业务服务器、系统及存储介质
KR101395830B1 (ko) 프록시를 경유한 접속 세션정보 확인시스템과 이를 기반으로 한 세션정보 확인방법
CN111245831A (zh) Ftp数据传输方法及装置、服务端和客户端的信息交互系统
CN113765774B (zh) 消息实时同步方法、装置、电子设备及介质
US20130226984A1 (en) Method and apparatus of providing optimized web browser communications
WO2021049120A1 (ja) コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システム
US8521911B2 (en) Apparatus, system and method for executing discovery in network
CN114915565B (zh) 网络调试的方法和系统
US10491654B2 (en) Communicating with a remote service through a hypertext transfer protocol (HTTP) session
CN111049949B (zh) 域名识别方法、装置、电子设备和介质
US7549010B2 (en) Communication apparatus and method
CN111427703A (zh) 工业数据实时展示方法及系统
JP4633034B2 (ja) 情報処理システム及び情報処理方法、並びに情報処理プログラム
JP2015184889A (ja) システム操作装置およびシステム操作方法
US11429446B2 (en) Device data collector agent component on cloud computing network
CN103973485A (zh) 基于固定端口的运维管理系统及方法
JP6288206B2 (ja) プログラム及び装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20792911

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020792911

Country of ref document: EP

Effective date: 20220411