WO2016002118A1 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
WO2016002118A1
WO2016002118A1 PCT/JP2015/002226 JP2015002226W WO2016002118A1 WO 2016002118 A1 WO2016002118 A1 WO 2016002118A1 JP 2015002226 W JP2015002226 W JP 2015002226W WO 2016002118 A1 WO2016002118 A1 WO 2016002118A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication protocol
communication
error
session
sessions
Prior art date
Application number
PCT/JP2015/002226
Other languages
English (en)
French (fr)
Inventor
睦 池田
Original Assignee
キヤノン株式会社
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 キヤノン株式会社 filed Critical キヤノン株式会社
Publication of WO2016002118A1 publication Critical patent/WO2016002118A1/ja
Priority to US15/367,268 priority Critical patent/US10735245B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • 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]
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/0645Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis by additionally acting on or stimulating the network after receiving notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0253Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using browsers or web-pages for accessing management information

Definitions

  • the present invention relates to information processing for browsing website information.
  • HTTP hypertext transfer protocol
  • IETF The Internet Engineering Task Force
  • HTTP / 1.1 is a widely used communication protocol.
  • HTTP / 2 is the next version of HTTP (see Non-Patent Document 1).
  • HTTP / 2 includes a function of compressing a header when a header is transmitted and received between a client device and a server device (see Non-Patent Document 2) and a function of giving priority to data and communicating. Therefore, an improvement in communication speed is expected.
  • the client device When using HTTP / 2, the client device first asks the server device whether HTTP / 2 is available. As a result of the inquiry, if it is found that HTTP / 2 can be used, communication is started by HTTP / 2. On the other hand, if it turns out that HTTP / 2 cannot be used, communication is started by HTTP / 1.1. Note that communication using HTTP / 2 is not essential, and the client apparatus may start communication using HTTP / 1.1 without making an inquiry.
  • PC personal computer
  • mobile environment users can browse multiple websites at the same time.
  • the client device establishes a plurality of sessions and accesses different Web sites for each session.
  • the HTTP / 2 implementation of the server device is not correct, the website cannot be browsed correctly.
  • the same protocol implementation is used in the same domain. For this reason, if the HTTP / 2 implementation of the server device in a certain domain is not correct, all sessions accessing the Web site in that domain cannot acquire the correct data of the Web site. Further, even if correct data is acquired at a certain point in time, it is expected that correct data will not be acquired.
  • the client device is desired to have a mechanism for sharing error information in HTTP / 2 among a plurality of sessions and a mechanism for storing the error information.
  • An object of the present invention is to provide a mechanism for sharing error information among a plurality of sessions.
  • the present invention has the following configuration as one means for achieving the above object.
  • an information processing apparatus includes: a communication unit configured to perform data communication with one or more servers based on a plurality of sessions using a first communication protocol; and at least one of the plurality of sessions.
  • Detecting means for detecting an error in the session, and when the detecting means detects an error in the first session of the plurality of sessions, a second of the plurality of sessions using the first communication protocol
  • Protocol control means for changing a communication protocol used for data communication in the session from the first communication protocol to the second communication protocol.
  • the information processing apparatus is configured to acquire content data to be displayed on a web browser having a plurality of tabs from one or more servers using a first communication protocol; Detection means for performing error detection in communication corresponding to at least one tab among the plurality of tabs, and when the detection means detects an error in communication corresponding to the first tab among the plurality of tabs, Protocol control means for changing a communication protocol used for communication corresponding to the second tab among the plurality of tabs for acquiring content data using the first communication protocol from the first communication protocol to the second communication protocol. And have.
  • an information processing method includes a communication step of performing data communication with one or more servers based on a plurality of sessions using a first communication protocol, and at least one of the plurality of sessions.
  • a detection step of performing error detection in a session and in the detection step, when an error in the first session is detected among the plurality of sessions, a second of the plurality of sessions using the first communication protocol is detected.
  • an information processing method includes: a communication step of acquiring content data to be displayed on a web browser having a plurality of tabs from one or more servers using a first communication protocol; A detection step of performing error detection in communication corresponding to at least one tab among the plurality of tabs, and an error in communication corresponding to the first tab among the plurality of tabs is detected in the detection step. A protocol for changing a communication protocol used for communication corresponding to a second tab among the plurality of tabs for acquiring content data using the first communication protocol from the first communication protocol to the second communication protocol. And a control process.
  • FIG. 6 is a block diagram for explaining a processing configuration of a browser in the second embodiment.
  • 9 is a flowchart for explaining browser processing according to the second embodiment.
  • FIG. 9 is a flowchart for explaining browser processing according to the second embodiment.
  • 10 is a flowchart for explaining browser processing according to the third embodiment.
  • 10 is a flowchart for explaining browser processing according to the third embodiment.
  • Example 1 error processing when simultaneously browsing a plurality of web pages (hereinafter “Web pages”) using a web browser (hereinafter “browser”) of a client device will be described.
  • Web pages web pages
  • HTTP / 2 error information is shared by all sessions, and when an error occurs, the session is terminated and the session is restarted by HTTP / 1.1.
  • the present invention is an improvement of the mechanism of the client device in communication between the server device and the client device. In the first embodiment, a process for downloading data from the server device will be described.
  • the configuration of the information processing apparatus 100 that is the client apparatus of the embodiment will be described with reference to the block diagram of FIG.
  • the microprocessor (CPU) 101 executes an operating system (OS) and various programs stored in the read-only memory (ROM1) 02 and the storage unit 107 using the random access memory (RAM) 103 as a work memory, and uses the system bus 105.
  • the information processing apparatus 100 as a whole.
  • ROM 102 is a non-volatile memory that stores programs and parameters that do not need to be changed.
  • the RAM 103 is a volatile memory that temporarily stores programs and data supplied from the outside, data generated during the processing of the CPU 101, and the like.
  • the storage unit 107 is a storage medium such as a hard disk drive (HDD) or a solid state drive (SSD), and stores an OS, various driver software, application programs such as a browser, and various data.
  • HDD hard disk drive
  • SSD solid state drive
  • the display interface 104 displays various information on the monitor 108 according to the control of the CPU 101.
  • the network interface 106 performs communication via a wired or wireless network 109 according to the control of the CPU 101.
  • the general-purpose interface 110 is, for example, an interface such as USB (Universal Serial Bus), and is connected to various input / output devices 111 including input devices such as a mouse and keyboard for inputting user instructions and a memory card reader / writer. Is possible.
  • the information processing apparatus 100 is a personal computer (PC) or a mobile device such as a mobile phone, a smartphone, or a tablet device.
  • a monitor 108 having a touch panel function may be integrated into the information processing apparatus 100.
  • Browser processing The processing configuration of the browser 200 when browsing a plurality of Web pages will be described with reference to the block diagram of FIG. Note that the CPU 101 activates the browser 200 in accordance with a user instruction.
  • the browser 200 accesses the three websites in accordance with the user instruction, acquires the contents data of the web page from the server device that provides each website, and displays the web page in each tab window. To do.
  • the browser 200 accesses the Web sites 201-203, starts a session 204-206 with each Web site, and displays a Web page in the tab window 207-209.
  • the browser 200 has the following configuration corresponding to each tab window. Since the configuration corresponding to each tab window is the same, only the configuration corresponding to the tab window 207 will be described.
  • Each session is managed by a session ID issued from the server device in response to access from the browser 200 to the server device that provides the Web site.
  • the data communication unit 210 communicates data composed of a header and a payload with the server device of the Web site 201 through the session 204 using the HTTP protocol.
  • the HTTP response / request processing unit 211 processes the data input from the data communication unit 210 as response data, generates request data according to the processing result, and outputs the generated request data to the data communication unit 210 A data processing unit.
  • the error information receiving unit 212 receives error information described later.
  • the browser 200 has the following configuration independent of the tab window.
  • the error detection unit 213 detects an error that has occurred in the data communication unit 210 or the HTTP response / request processing unit 211, and stores error information indicating the detected error in the RAM 103 or the error storage unit 214 assigned to the storage unit 107.
  • the error notification unit 215 outputs error information indicating the error to the error information reception unit 212 corresponding to each tab window.
  • the error detection unit 213 and the error notification unit 215 may be created as a so-called add-on that can be incorporated later into the browser 200 instead of the initial configuration of the browser 200 and may be incorporated into the browser 200 via a recording medium or a network.
  • the processing of the browser 200 will be described with reference to the flowcharts of FIGS. 3A and 3B. Note that description will be made assuming that the browser 200 starts processing corresponding to the tab window 207, for example.
  • the browser 200 determines whether or not error information is stored in the error storage unit 214 (S301) . If the error information is stored, the communication protocol of the data communication unit 210 is changed from HTTP / 2 to HTTP / 1.1. The protocol control to be changed is performed (S302).
  • the browser 200 starts a session 204 by the data communication unit 210 and transmits request data to the server device of the Web site 201 (S303). At that time, the browser 200 starts a new process on the client device, constructs a new session on the process, and starts the session. Similarly, when a new session corresponding to the tab windows 208 and 209 is constructed and started, a new process is started.
  • the browser 200 determines whether or not to end the session 204 (S304).
  • the session 204 is ended by the data communication unit 210 (S315), and the process corresponding to the tab window 207 is ended (the corresponding process is ended).
  • the session 204 is not terminated, it is determined whether or not the error information receiving unit 212 has received error information (S305).
  • the browser 200 transmits / receives data to / from the server device of the website 201 through the data communication unit 210 (S306). Then, the HTTP response / request processing unit 211 processes the received data as HTTP response data, and generates HTTP request data according to the processing result (S307).
  • the error detection unit 213 monitors the occurrence of an error (S308). If no error has occurred, the browser 200 returns the process to step S304 and continues the process. On the other hand, when an error occurs, the error notification unit 215 notifies the error information reception unit 212 corresponding to all sessions of the error information (S309), and the error detection unit 213 stores the error information in the error storage unit 214. (S310).
  • the error notification unit 215 notifies the error information reception unit 212 corresponding to all the tab windows of the error information.
  • the error information notification method for example, an inter-process communication mechanism depending on the implementation of the client device is used.
  • inter-process communication can be realized using the pipe () function and socket () function.
  • step S305 If it is determined in step S305 that error information has been received, or after error information is stored in step S310, the browser 200 determines whether the communication protocol has been changed to HTTP / 1.1 (S311). When the communication protocol has been changed, the browser 200 ends the session 204 by the data communication unit 210 (S315), and ends the processing corresponding to the tab window 207. On the other hand, if the communication protocol has not been changed, the browser 200 ends the session 204 by the data communication unit 210 (S312). Then, protocol control for changing the communication protocol of the data communication unit 210 from HTTP / 2 to HTTP / 1.1 is performed (S313), the session 204 is resumed by the data communication unit 210 (S314), and the process returns to step S304.
  • FIGS. 3A and 3B are executed in all tab windows opened on the client device, so that error information is asynchronously shared among a plurality of sessions, and the data communication unit 210 is set according to the error information. Can be controlled.
  • Sharing only error information in the same domain In the above, an example of sharing error information has been described. However, only error information in the same domain may be shared. Further, the domain information of the connection destination when an error occurs can be added to the error information stored in the error storage unit 214. A process when only error information of the same domain is shared will be described with reference to the flowcharts of FIGS. 4A and 4B. 4A and 4B, the same processes as those in FIGS. 3A and 3B are denoted by the same reference numerals, and detailed description thereof may be omitted.
  • the first difference from the processing shown in FIGS. 3A and 3B is as follows.
  • the browser 200 determines whether the domain to be connected from now matches the domain information added to the error information (whether they are the same domain) (S321). .
  • protocol control for changing the communication protocol of the data communication unit 210 from HTTP / 2 to HTTP / 1.1 is performed (S302), and when the domains are different, the communication protocol is not changed.
  • the second difference is that the domain information is added to the error information notified to the error information receiving unit 212 corresponding to all sessions (S323), and the error information with the domain information added is stored in the error storage unit 214 (S324). )
  • the third difference is as follows. After determining that the error information receiving unit 212 has received the error notification in step S305, the browser 200 determines whether the domain information added to the error information matches the connection destination domain (S322). If the domains are the same, the process proceeds to step S311 (determining whether the communication protocol has been changed). If the domains are different, the process proceeds to step S306 (data reception).
  • error information of the same domain is asynchronously shared among a plurality of sessions, and the data communication unit 210 according to the error information. Can be controlled.
  • Example 2 an example in which a window size (reception buffer size) that can be specified in HTTP / 2 is shared in all sessions will be described.
  • a window size reception buffer size
  • an example will be described in which when an error relating to the window size occurs, the session is terminated, an attempt is made to change to an appropriate window size, and the session is resumed.
  • a process for downloading data from the server device will be described.
  • the processing configuration of the browser 200 in the second embodiment will be described with reference to the block diagram of FIG. 5 differs from the processing configuration shown in FIG. 2 in that the error notification unit 215 is replaced with a window size control unit 231 that notifies error information including the window size. Further, a window size storage unit 230 in which the window size is stored by the window size control unit 231 is added.
  • the processing of the browser 200 in the second embodiment will be described with reference to the flowcharts of FIGS. 6A and 6B. Note that description will be made assuming that the browser 200 starts processing corresponding to the tab window 207, for example.
  • the browser 200 determines whether or not the window size is stored in the window size storage unit 230 (S401). If the window size is stored, the window size is set in the data communication unit 210 (S402).
  • the browser 200 starts a session 204 by the data communication unit 210 and transmits request data to the server device of the Web site 201 (S403). Subsequently, it is determined whether to end the session 204 (S404). When the session 204 is ended, the session 204 is ended by the data communication unit 210 (S413), and the process corresponding to the tab window 207 is ended. .
  • the browser 200 determines whether or not the error information receiving unit 212 corresponding to the tab window 207 has received error information (S405). When determining that the error information has been received, the browser 200 sets the window size included in the received error information in the data communication unit 210 (S412), returns the process to step S404, and continues the process.
  • the browser 200 transmits / receives data to / from the server device of the website 201 through the data communication unit 210 (S406). Then, the HTTP response / request processing unit 211 processes the received data as HTTP response data, and generates HTTP request data according to the processing result (S407).
  • the error detection unit 213 determines whether a window size error has occurred (S408).
  • the window size error is an error that occurs when the browser 200 uses more memory than a predetermined amount of memory.
  • a window size error it is necessary to reduce the window size in order to reduce the memory usage.
  • a method of gradually reducing the window size is desirable.
  • the browser 200 returns the process to step S404 and continues the process.
  • the window size control unit 231 calculates an appropriate window size (S409). Then, the error information including the calculated window size is notified to the error information receiving unit 212 corresponding to all sessions (S410), the calculated window size is stored in the window size storage unit 230 (S411), and the process goes to step S412. Proceed.
  • an appropriate window size can be shared and the data communication unit 210 can be controlled according to the window size.
  • FIG. 7 With reference to FIG. 7, the relationship between an error defined by HTTP / 2 and processing when error information is received will be described.
  • the three columns on the left side of FIG. 7 show the names, values, and contents of errors currently specified in HTTP / 2.
  • a communication program operating on the client device or the server device can branch to processing according to the type of error that has occurred, depending on the error value.
  • FIG. 7 an example in which the following four types of processing are selectively executed according to the 14 types of errors shown in FIG. 7 will be described.
  • Process 1 Continue communication with the server device (hereinafter “Process 1”) (2) Restart the session after ending the session (hereinafter “Process 2”), (3) After finishing the session, change the communication protocol (HTTP / 2 ⁇ HTTP / 1.1) and restart the session (hereinafter “Process 3”). (4) Terminate communication with the server device (hereinafter “Process 4”).
  • the fourth column in Fig. 7 shows the correspondence between the received error information and the processing after receiving the error information. If NO_ERROR is received, it is determined that there is no error and processing 1 is performed. Further, when PROTOCOL_ERROR is received, processing 3 is performed because the cause cannot be specified. Note that the browser 200 may be provided with an error counter, and the number of times PROTOCOL_ERROR is received may be counted, and the process 4 may be performed when the count value exceeds a predetermined number.
  • the processing of the browser 200 in the third embodiment will be described with reference to the flowcharts of FIGS. 8A and 8B. Note that description will be made assuming that the browser 200 starts processing corresponding to the tab window 207, for example.
  • the browser 200 sets HTTP / 2 as the communication protocol in the data communication unit 210 (S601), starts a session 402 by the data communication unit 210, and transmits request data to the server device of the Web site 201 (S602). .
  • the browser 200 determines whether or not to end the session 402 (S603).
  • the data communication unit 210 ends the session 204 (S611), and the process corresponding to the tab window 207 is ended.
  • the browser 200 determines whether or not the error information receiving unit 212 has received error information (S604). When determining that the error information has not been received, the browser 200 transmits / receives data to / from the server device of the Web site 201 by the data communication unit 210 (S605). Then, the HTTP response / request processing unit 211 processes the received data as HTTP response data, and generates HTTP request data according to the processing result (S606).
  • the error detection unit 213 monitors the occurrence of an error (S607). If no error occurred. The browser 200 returns the process to step S603 and continues the process. On the other hand, when an error occurs, the error notification unit 215 notifies the error information receiving unit 212 corresponding to all sessions of the error information (S608), and the process proceeds to step S609.
  • the error detection unit 213 determines which of the errors shown in FIG. 7 corresponds to the detected error, and includes a value corresponding to the determined error in the error information. Although omitted in FIGS. 8A and 8B, the error detection unit 213 stores the error information in the error storage unit 214 as in the first embodiment.
  • step S604 When it is determined in step S604 that error information has been received, or when error information is notified in step S608, the browser 200 determines whether or not the value of error information (hereinafter “error value”) is 0 ( S609). If the error value is 0, “processing 1” is executed by returning the processing to step S603. On the other hand, if the error value is other than 0, it is determined whether the error value is 10, 11 or 12 (S610), and if the error value is 10, 11 or 12, the data communication unit 210 ends the session 204 ( S611). That is, “Process 4” is executed, and the process corresponding to the tab window 207 is terminated.
  • error value the value of error information
  • the browser 200 ends the session 204 by the data communication unit 210 (S612), and determines whether the error value is 1, 3, 4, 9, or 13 (S613). ). If the error value is not 1, 3, 4, 9, or 13, the browser 200 performs protocol control to change the communication protocol of the data communication unit 210 from HTTP / 2 to HTTP / 1.1 (S614), and data communication The session is resumed by the unit 210 (S615). That is, “Process 3” is executed. If the error value is any one of 1, 3, 4, 9, and 13, the browser 200 resumes the session with the data communication unit 210 without changing the communication protocol (S615). That is, “Process 2” is executed. Thereafter, the browser 200 returns the process to step S603.
  • the communication protocol can be selectively changed in accordance with the type of error in the third embodiment. it can. As a result, it is possible to increase opportunities to use HTTP / 2 for communication with the server device.
  • the present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program It can also be realized by processing. It can also be realized by a circuit that realizes one or more functions (for example, application specific integrated circuit (ASIC)).
  • ASIC application specific integrated circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 第一の通信プロトコルを用いた複数のセッションに基づいて、一つ以上のサーバとの間でデータ通信が行われる。複数のセッションのうち、少なくとも一つのセッションにおけるエラー検出が行われる。複数のセッションのうち第一のセッションにおけるエラーが検出された場合、第一の通信プロトコルを用いた複数のセッションのうち第二のセッションにおいてデータ通信のために用いる通信プロトコルが第一の通信プロトコルから第二の通信プロトコルに変更される。

Description

情報処理装置および情報処理方法
 本発明は、ウェブサイトの情報を閲覧するための情報処理に関する。
 一般に、クライアント装置の画面にウェブサイト(以下「Webサイト」)のページを表示するには、クライアント装置がWebサイトのデータが保存されたサーバ装置との間でデータ通信を行う必要がある。当該データ通信には、IETF(R) (The Internet Engineering Task Force)によって策定されたHTTP (hypertext transfer protocol)と呼ばれる通信プロトコルが使用される。一般に使われているHTTPのバージョンは1.1であり、HTTP/1.1と表記される。HTTP/1.1は広く普及した通信プロトコルである。
 近年、Webサイトに含まれるコンテンツのデータ量が劇的に増加し、多くのWebサイトでアニメーションやインタラクションが含まれるようになった。そのため、高速にデータを通信する仕組みがHTTPに求められている。そこで、IETF(R)は、HTTPの次期バージョンであるHTTP/2の策定を開始した(非特許文献1参照)。HTTP/2には、クライアント装置とサーバ装置の間でヘッダを送受信する際のヘッダを圧縮する機能(非特許文献2参照)や、データに優先度を与えて通信する機能が盛り込まれている。このため通信速度の改善が期待される。
 HTTP/2を利用する場合、クライアント装置は、まず、サーバ装置にHTTP/2の利用が可能か否かを問い合わせる。問い合わせの結果、HTTP/2が利用可能であることが判明すると、HTTP/2によって通信を開始する。一方、HTTP/2が利用不可であることが判明すると、HTTP/1.1によって通信を開始する。なお、HTTP/2による通信は必須ではなく、クライアント装置は、問い合わせを行わずに、HTTP/1.1によって通信を開始してもよい。
http://www.ietf.org/id/draft-ietf-httpbis-http2-07.txt http://www.ietf.org/id/draft-ietf-httpbis-header-compression-03.txt
 現在、パーソナルコンピュータ(PC)環境、モバイル環境に関わらず、ユーザは、同時に複数のWebサイトの閲覧が可能である。その際、クライアント装置は、複数のセッションを確立し、セッションごとに異なるWebサイトにアクセスしている。
 しかし、サーバ装置のHTTP/2の実装が正しくない場合、Webサイトの正しい閲覧を行うことができない。一般に、同じドメインでは同じプロトコル実装が利用される。そのため、あるドメインのサーバ装置のHTTP/2の実装が正しくないと、そのドメインのWebサイトにアクセスするすべてのセッションが、Webサイトの正しいデータを取得することができない。また、ある時点で正しいデータを取得していたとしても、何れ正しいデータが取得できなくなることが予想される。
 また、正しいデータを取得することができなかったWebサイトに再度アクセスする場合、プロトコル実装が正しくないにもかかわらず、サーバ装置からHTTP/2が利用可能と通知されたクライアント装置はHTTP/2による通信を開始する。そのため、再び、HTTP/2を正しく処理することができず、Webサイトの正しい閲覧を行うことができない。
 従って、クライアント装置には、複数のセッションの間でHTTP/2におけるエラー情報を共有する仕組みや、当該エラー情報を保存する仕組みが望まれる。
 本発明は、複数のセッションの間でエラー情報を共有する仕組みを提供することを目的とする。
 本発明は、前記の目的を達成する一手段として、以下の構成を備える。
 本発明の一面において、情報処理装置は、第一の通信プロトコルを用いた複数のセッションに基づいて、一つ以上のサーバとデータ通信を行う通信手段と、前記複数のセッションのうち、少なくとも一つのセッションにおけるエラー検出を行う検出手段と、前記検出手段が、前記複数のセッションのうち第一のセッションにおいてエラーを検出した場合、前記第一の通信プロトコルを用いた前記複数のセッションのうち第二のセッションにおいてデータ通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御手段とを有する。
 本発明の他の面において、情報処理装置は、複数のタブを有するウェブブラウザに表示させるためのコンテンツデータを、第一の通信プロトコルを用いて一つ以上のサーバから取得する通信手段と、前記複数のタブのうち、少なくとも一つのタブに対応する通信におけるエラー検出を行う検出手段と、前記検出手段が、前記複数のタブのうち第一のタブに対応する通信におけるエラーを検出した場合、前記第一の通信プロトコルを用いてコンテンツデータを取得する前記複数のタブのうち第二のタブに対応する通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御手段とを有する。
 本発明の一面において、情報処理方法は、第一の通信プロトコルを用いた複数のセッションに基づいて、一つ以上のサーバとデータ通信を行う通信工程と、前記複数のセッションのうち、少なくとも一つのセッションにおけるエラー検出を行う検出工程と、前記検出工程において、前記複数のセッションのうち第一のセッションにおけるエラーが検出された場合、前記第一の通信プロトコルを用いた前記複数のセッションのうち第二のセッションにおいてデータ通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御工程とを有する。
 本発明の他の面において、情報処理方法は、複数のタブを有するウェブブラウザに表示させるためのコンテンツデータを、第一の通信プロトコルを用いて一つ以上のサーバから取得する通信工程と、前記複数のタブのうち、少なくとも一つのタブに対応する通信におけるエラー検出を行う検出工程と、前記検出工程において、前記複数のタブのうち第一のタブに対応する通信におけるエラーが検出された場合、前記第一の通信プロトコルを用いてコンテンツデータを取得する前記複数のタブのうち第二のタブに対応する通信に用いる通信プロトコルを前記第一の通信プロトコルから前記第二の通信プロトコルに変更するプロトコル制御工程とを有する。
 本発明によれば、複数のセッションの間でエラー情報を共有する仕組みを提供することができる。
 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
 添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
実施例のクライアント装置である情報処理装置の構成例を説明するブロック図。 複数のWebページを閲覧する際のブラウザの処理構成を説明するブロック図。 ブラウザの処理を説明するフローチャート。 ブラウザの処理を説明するフローチャート。 同一ドメインのエラー情報のみを共有する場合の処理を説明するフローチャート。 同一ドメインのエラー情報のみを共有する場合の処理を説明するフローチャート。 実施例2におけるブラウザの処理構成を説明するブロック図。 実施例2におけるブラウザの処理を説明するフローチャート。 実施例2におけるブラウザの処理を説明するフローチャート。 HTTP/2が規定するエラーとエラー情報を受信した場合の処理の関係を説明する図。 実施例3におけるブラウザの処理を説明するフローチャート。 実施例3におけるブラウザの処理を説明するフローチャート。
 以下、本発明にかかる実施例の情報処理装置および情報処理方法を図面を参照して詳細に説明する。なお、実施例は特許請求の範囲にかかる本発明を限定するものではなく、また、実施例において説明する構成の組み合わせのすべてが本発明の解決手段に必須とは限らない。
 実施例1として、クライアント装置のウェブブラウザ(以下「ブラウザ」)により複数のウェブページ(以下「Webページ」)を同時に閲覧する際のエラー処理を説明する。つまり、全セッションでHTTP/2のエラー情報を共有し、エラーが発生した場合はセッションを終了し、HTTP/1.1によりセッションの再開を試みる例を説明する。また、本発明は、サーバ装置とクライアント装置の間の通信におけるクライアント装置の仕組みの改良であり、実施例1ではサーバ装置からデータをダウンロードする処理を説明する。
[装置の構成]
 図1のブロック図により実施例のクライアント装置である情報処理装置100の構成を説明する。マイクロプロセッサ(CPU)101は、ランダムアクセスメモリ(RAM)103をワークメモリとしてリードオンリメモリ(ROM1)02や記憶部107に格納されたオペレーティングシステム(OS)や各種プログラムを実行し、システムバス105を介して情報処理装置100全体を制御する。
 ROM102は、変更を必要としないプログラムやパラメータを格納する不揮発性のメモリである。RAM103は、外部から供給されるプログラムやデータ、CPU101の処理の途中で生成されたデータなどを一時的に記憶する揮発性のメモリである。また、記憶部107は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの記憶媒体であり、OS、各種ドライバのソフトウェア、ブラウザなどのアプリケーションプログラム、各種データが格納される。
 ディスプレイインタフェイス104は、CPU101の制御に従い、各種情報をモニタ108に表示する。ネットワークインタフェイス106は、CPU101の制御に従い、有線または無線ネットワーク109を介した通信を行う。汎用インタフェイス110は、例えばUSB (Universal Serial Bus)などのインタフェイスであり、ユーザ指示を入力するためのマウスやキーボードなどの入力デバイス、メモリカードリーダライタなどを含む各種の入出力デバイス111が接続可能である。
 情報処理装置100は、パーソナルコンピュータ(PC)、あるいは、携帯電話、スマートフォン、タブレットデバイスなどの携帯デバイスである。携帯デバイスの場合、タッチパネル機能を有するモニタ108が情報処理装置100に一体に組み込まれる場合がある。
[ブラウザの処理]
 図2のブロック図により複数のWebページを閲覧する際のブラウザ200の処理構成を説明する。なお、CPU101は、ユーザ指示に従い、ブラウザ200を起動する。ブラウザ200は、ユーザ指示に従い、図2に示す例においては三つのWebサイトにアクセスし、各Webサイトを提供するサーバ装置からWebページのコンテンツデータを取得して、Webページを各タブウィンドウに表示する。
 図2において、ブラウザ200は、Webサイト201-203にアクセスし、各Webサイトとの間でセッション204-206を開始し、タブウィンドウ207-209にWebページを表示する。ブラウザ200は、各タブウィンドウに対応して次の構成を有する。なお、各タブウィンドウに対応する構成は同様であるから、タブウィンドウ207に対応する構成だけを説明する。
 なお、各セッションは、ブラウザ200からWebサイトを提供するサーバ装置へのアクセスに応じて、サーバ装置から発行されるセッションIDによって管理される。
 データ通信部210は、HTTPプロトコルを使用して、セッション204を介してWebサイト201のサーバ装置との間でヘッダとペイロードから構成されるデータの通信を行う。HTTPレスポンス・リクエスト処理部211は、データ通信部210から入力されるデータをレスポンスデータとして処理し、処理の結果に応じてリクエストデータを生成して、生成したリクエストデータをデータ通信部210に出力するデータ処理部である。エラー情報受信部212は、後述するエラー情報を受信する。
 また、ブラウザ200は、タブウィンドウから独立した次の構成を有する。エラー検出部213は、データ通信部210やHTTPレスポンス・リクエスト処理部211で発生したエラーを検出し、検出したエラーを示すエラー情報をRAM103または記憶部107に割り当てられたエラー保存部214に格納する。エラー通知部215は、エラー検出部213がエラーを検出すると、当該エラーを示すエラー情報を各タブウィンドウに対応するエラー情報受信部212に出力する。
 エラー検出部213とエラー通知部215は、ブラウザ200の初期の構成ではなく、ブラウザ200に後から組み込み可能な所謂アドオンとして作成し、記録媒体やネットワークを介してブラウザ200に組み込んでもよい。
 図3A、3Bのフローチャートによりブラウザ200の処理を説明する。なお、ブラウザ200が、例えばタブウィンドウ207に対応する処理を開始するとして説明を行う。ブラウザ200は、エラー保存部214にエラー情報が格納されている否かを判定し(S301)、エラー情報が格納されている場合、データ通信部210の通信プロトコルをHTTP/2からHTTP/1.1に変更するプロトコル制御を行う(S302)。
 次に、ブラウザ200は、データ通信部210によってセッション204を開始し、Webサイト201のサーバ装置にリクエストデータを送信する(S303)。その際、ブラウザ200は、クライアント装置上で新しく一つのプロセスを立ち上げ、そのプロセス上で新規のセッションを構築し当該セッションを開始する。同様に、タブウィンドウ208、209に対応する新規のセッションを構築し開始する場合も、新たなプロセスを立ち上げる。
 次に、ブラウザ200は、セッション204を終了するか否かを判定する(S304)。セッション204を終了する場合は、データ通信部210によってセッション204を終了し(S315)、タブウィンドウ207に対応する処理を終了する(対応するプロセスを終了する)。一方、セッション204を終了しない場合は、エラー情報受信部212がエラー情報を受信したか否かを判定する(S305)。
 エラー情報を受信していないと判定した場合、ブラウザ200は、データ通信部210によってWebサイト201のサーバ装置との間でデータの送受信を行う(S306)。そして、HTTPレスポンス・リクエスト処理部211によって、受信したデータをHTTPのレスポンスデータとして処理を行い、処理の結果に応じてHTTPのリクエストデータを生成する(S307)。
 データの送受信およびレスポンスデータの処理中、エラー検出部213は、エラーの発生を監視する(S308)。エラーが発生しなかった場合、ブラウザ200は、処理をステップS304に戻して処理を継続する。一方、エラーが発生した場合、エラー通知部215は、全セッションに対応するエラー情報受信部212にエラー情報を通知し(S309)、エラー検出部213は、エラー情報をエラー保存部214に格納する(S310)。
 例えば、タブウィンドウ207-209が開いていて、タブウィンドウ207のHTTPレスポンス処理中にエラーが発生した場合、エラー通知部215は、全タブウィンドウに対応するエラー情報受信部212にエラー情報を通知する。エラー情報の通知方法には、例えば、クライアント装置の実装に依存するプロセス間通信の仕組みを利用する。例えばC言語による実装の場合、pipe()関数やsocket()関数を使ってプロセス間通信を実現することができる。
 ステップS305でエラー情報を受信したと判定した場合、または、ステップS310でエラー情報を格納した後、ブラウザ200は、通信プロトコルがHTTP/1.1に変更済みか否かを判定する(S311)。通信プロトコルが変更済みの場合、ブラウザ200は、データ通信部210によってセッション204を終了し(S315)、タブウィンドウ207に対応する処理を終了する。一方、通信プロトコルが未変更の場合、ブラウザ200は、データ通信部210によってセッション204を終了する(S312)。そして、データ通信部210の通信プロトコルをHTTP/2からHTTP/1.1に変更するプロトコル制御を行い(S313)、データ通信部210によってセッション204を再開して(S314)、処理をステップS304に戻す。
 図3A、3Bに示す処理をクライアント装置上で開いているタブウィンドウすべてにおいて実行し、すれば、複数のセッションの間で非同期的にエラー情報を共有し、エラー情報に応じてデータ通信部210を制御することができる。
●同一ドメインにおけるエラー情報のみの共有
 上記では、エラー情報を共有する例を説明したが、同一ドメインにおけるエラー情報のみを共有してもよい。また、エラー保存部214に格納されるエラー情報には、エラーが発生した際の接続先のドメイン情報を付加することができる。図4A、4Bのフローチャートにより同一ドメインのエラー情報のみを共有する場合の処理を説明する。なお、図4A、4Bにおいて、図3A、3Bの処理と同一の処理には同一符号を付し、詳細説明を省略する場合がある。
 図3A、3Bに示す処理との第一の違いは次のとおりである。ブラウザ200は、エラー保存部214にエラー情報が格納されていた場合、これから接続するドメインがエラー情報に付加されたドメイン情報に一致するか否か(同一ドメインか否か)を判定する(S321)。そして、同一ドメインの場合はデータ通信部210の通信プロトコルをHTTP/2からHTTP/1.1に変更するプロトコル制御を行い(S302)、ドメインが異なる場合は通信プロトコルの変更を行わない。
 第二の違いは、全セッションに対応するエラー情報受信部212に通知するエラー情報にドメイン情報を付加する(S323)ことと、エラー保存部214にドメイン情報を付加したエラー情報を格納する(S324)ことである。
 第三の違いは次のとおりである。ブラウザ200は、ステップS305でエラー情報受信部212がエラー通知を受信したと判定した後、当該エラー情報に付加されたドメイン情報と接続先のドメインが一致するか否かを判定する(S322)。そして、同一ドメインの場合は処理をステップS311(通信プロトコルが変更済みか否かの判定)に進め、ドメインが異なる場合は処理をステップS306(データ受信)に進める。
 図4A、4Bに示す処理をクライアント装置上で開いているタブウィンドウすべてにおいて実行すれば、複数のセッションの間で非同期的に同一ドメインのエラー情報を共有し、エラー情報に応じてデータ通信部210を制御することができる。
 以下、本発明にかかる実施例2の情報処理装置および情報処理方法を説明する。なお、実施例2において、実施例1と同様の構成については、同一の符号を付して、その詳細な説明を省略する。
 実施例2として、HTTP/2において指定可能なウィンドウサイズ(受信バッファサイズ)を全セッションにおいて共有する例を説明する。組込機器などメモリ量が少ない機器においては、適切なウィンドウサイズへの動的な切り替えが求められる。実施例2では、ウィンドウサイズに関するエラーが発生した場合、セッションを終了し、適切なウィンドウサイズへの変更を試み、セッションを再開する例を説明する。また、実施例1と同様に、サーバ装置からデータをダウンロードする処理を説明する。
 図5のブロック図により実施例2におけるブラウザ200の処理構成を説明する。図5において図2に示す処理構成と異なるのは、エラー通知部215がウィンドウサイズを含むエラー情報を通知するウィンドウサイズ制御部231に置き換わることである。また、ウィンドウサイズ制御部231によってウィンドウサイズが格納されるウィンドウサイズ保存部230が追加されている。
 図6A、6Bのフローチャートにより実施例2におけるブラウザ200の処理を説明する。なお、ブラウザ200が、例えばタブウィンドウ207に対応する処理を開始するとして説明を行う。ブラウザ200は、ウィンドウサイズ保存部230にウィンドウサイズが格納されている否かを判定する(S401)。そして、ウィンドウサイズが格納されている場合は、当該ウィンドウサイズをデータ通信部210に設定する(S402)。
 次に、ブラウザ200は、データ通信部210によってセッション204を開始し、Webサイト201のサーバ装置にリクエストデータを送信する(S403)。続いて、セッション204を終了するか否かを判定し(S404)、セッション204を終了する場合は、データ通信部210によってセッション204を終了し(S413)、タブウィンドウ207に対応する処理を終了する。
 また、セッション204を終了しない場合、ブラウザ200は、タブウィンドウ207に対応するエラー情報受信部212がエラー情報を受信したか否かを判定する(S405)。エラー情報を受信したと判定した場合、ブラウザ200は、受信したエラー情報に含まれるウィンドウサイズをデータ通信部210に設定し(S412)、処理をステップS404に戻して処理を継続する。
 また、ウィンドウサイズを受信していないと判定した場合、ブラウザ200は、データ通信部210によってWebサイト201のサーバ装置との間でデータの送受信を行う(S406)。そして、HTTPレスポンス・リクエスト処理部211によって、受信したデータをHTTPのレスポンスデータとして処理を行い、処理の結果に応じてHTTPのリクエストデータを生成する(S407)。
 データの送受信およびレスポンスデータの処理中、エラー検出部213は、ウィンドウサイズエラーが発生したか否かを判定する(S408)。ウィンドウサイズエラーは、ブラウザ200が所定のメモリ量よりも多くのメモリを使った場合に発生するエラーである。ウィンドウサイズエラーが発生した場合、メモリ使用量を低減するために、ウィンドウサイズを小さくする必要がある。ただし、小さくするとデータ通信速度が低下するため、ウィンドウサイズを少しずつ小さくする手法が望ましい。
 ウィンドウサイズエラーが未発生の場合、ブラウザ200は、処理をステップS404に戻して処理を継続する。一方、ウィンドウサイズエラーが発生した場合、ウィンドウサイズ制御部231は、適切なウィンドウサイズを計算する(S409)。そして、計算したウィンドウサイズを含むエラー情報を全セッションに対応するエラー情報受信部212に通知し(S410)、計算したウィンドウサイズをウィンドウサイズ保存部230に格納し(S411)、処理をステップS412に進める。
 図6A、6Bに示す処理をクライアント装置上で開いているタブウィンドウすべてにおいて実行すれば、適切なウィンドウサイズを共有し、ウィンドウサイズに応じてデータ通信部210を制御することができる。
 以下、本発明にかかる実施例3の情報処理装置および情報処理方法を説明する。なお、実施例3において、実施例1、2と同様の構成については、同一の符号を付して、その詳細な説明を省略する。
 実施例3では、HTTP/2に規定されたエラーの種類に応じてブラウザ200の処理を分岐する例を説明する。また、実施例1と同様に、サーバ装置からデータをダウンロードする処理を説明する。なお、ブラウザ200の処理構成は図2と同様である。
 図7によりHTTP/2が規定するエラーとエラー情報を受信した場合の処理の関係を説明する。図7の左側の三つのカラムは、現在、HTTP/2に規定されたエラーの名称、値、内容を示す。クライアント装置やサーバ装置上で動作する通信プログラムは、エラーの値によって、発生したエラーの種類に応じた処理に分岐することができる。実施例3においては、図7に示す14種類のエラーに応じて、次の四種類の処理を選択的に実行する例を説明する。
 (1)サーバ装置との通信を継続する(以下「処理1」)、
 (2)セッションを終了した後にセッションを再開する(以下「処理2」)、
 (3)セッションを終了した後に通信プロトコルを変更(HTTP/2→HTTP/1.1)してセッションを再開する(以下「処理3」)、
 (4)サーバ装置との通信を終了する(以下「処理4」)。
 ただし、これは一例であって、エラー処理の種類および名称は、ここに示すものに限定されない。
 図7の四つ目のカラムは、受信したエラー情報と、エラー情報受信後の処理の対応を示す。NO_ERRORを受信した場合はエラーなしと判定され、処理1が行われる。また、PROTOCOL_ERRORを受信した場合は原因を特定することができないため処理3が行われる。なお、ブラウザ200にエラーカウンタをもたせ、PROTOCOL_ERRORを受信した回数をカウントして、カウント値が所定数以上となった場合は処理4を行ってもよい。
 INTERNAL_ERROR、STREAM_CLOSED、FRAME_SIZE_ERROR、REFUSED_STREAM、CANCELを受信した場合は、セッション終了後、セッションを再開すればエラーが発生しない可能性がある。そこで、これらのエラー情報を受信した場合は処理2が行われる。
 FLOW_CONTROL_ERROR、SETTINGS_TIMEOUT、COMPRESSION_ERRORを受信した場合、HTTP/2のフロー制御処理、SETTINGSフレーム処理、ヘッダ圧縮でエラーが発生したと考えられる。この場合、再びHTTP/2によって接続しても同様のエラーが発生する可能性がある。また、HTTP_1_1_REQUIREDを受信した場合、HTTP/2ではなくHTTP/1.1によって接続することが求められている。そのため、処理3が行われる。
 CONNECT_ERROR、ENHANCE_YOUR_CALM、INADEQUATE_SECURITYを受信した場合、通信プロトコルに関わらずセッションを再開してもエラーが発生する可能性がある。そのため、処理4が行われる。
 図8A、8Bのフローチャートにより実施例3におけるブラウザ200の処理を説明する。なお、ブラウザ200が、例えばタブウィンドウ207に対応する処理を開始するとして説明を行う。ブラウザ200は、まず、データ通信部210に通信プロトコルにHTTP/2を設定し(S601)、データ通信部210によってセッション402を開始し、Webサイト201のサーバ装置にリクエストデータを送信する(S602)。
 次に、ブラウザ200は、セッション402を終了するか否かを判定する(S603)。セッションを終了する場合は、データ通信部210によってセッション204を終了し(S611)、タブウィンドウ207に対応する処理を終了する。
 また、セッション204を終了しない場合、ブラウザ200は、エラー情報受信部212がエラー情報を受信したか否かを判定する(S604)。エラー情報を受信していないと判定した場合、ブラウザ200は、データ通信部210によってWebサイト201のサーバ装置との間でデータの送受信を行う(S605)。そして、HTTPレスポンス・リクエスト処理部211によって、受信したデータをHTTPのレスポンスデータとして処理を行い、処理の結果に応じてHTTPのリクエストデータを生成する(S606)。
 データの送受信およびレスポンスデータの処理中、エラー検出部213は、エラーの発生を監視する(S607)。エラーが発生しなかった場合。ブラウザ200は、処理をステップS603に戻して処理を継続する。一方、エラーが発生した場合、エラー通知部215は、全セッションに対応するエラー情報受信部212にエラー情報を通知し(S608)、処理をステップS609に進める。エラー検出部213は、検出したエラーが図7に示すエラーの何れに相当するかを判定し、判定したエラーに対応する値をエラー情報に含める。また、図8A、8Bにおいては省略するが、実施例1と同様に、エラー検出部213はエラー情報をエラー保存部214に格納する。
 ステップS604でエラー情報を受信したと判定した場合、または、ステップS608でエラー情報が通知された場合、ブラウザ200は、エラー情報の値(以下「エラー値」)が0か否かを判定する(S609)。エラー値が0の場合は処理をステップS603に戻すことで「処理1」を実行する。一方、エラー値が0以外の場合は、エラー値が10、11または12かを判定し(S610)、エラー値が10、11または12の場合は、データ通信部210によってセッション204を終了する(S611)。つまり「処理4」を実行してタブウィンドウ207に対応する処理を終了する。
 エラー値が10、11、12の何れでもない場合、ブラウザ200は、データ通信部210によってセッション204を終了し(S612)、エラー値が1、3、4、9または13かを判定する(S613)。エラー値が1、3、4、9、13の何れでもない場合、ブラウザ200は、データ通信部210の通信プロトコルをHTTP/2からHTTP/1.1に変更するプロトコル制御を行い(S614)、データ通信部210によってセッションを再開する(S615)。つまり「処理3」を実行する。また、エラー値が1、3、4、9、13の何れかの場合、ブラウザ200は、通信プロトコルを変更せずに、データ通信部210によってセッションを再開する(S615)。つまり「処理2」を実行する。その後、ブラウザ200は、処理をステップS603に戻す。
 実施例1においてはセッションにおいて発生したエラーの種類に関わらず、通信プロトコルを変更する例を説明したが、実施例3においては、エラーの種類に応じて通信プロトコルの選択的な変更を行うことができる。その結果、サーバ装置との通信にHTTP/2を使う機会を増やすことが可能になる。
[その他の実施例]
 本発明は、上述の実施形態の一以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、一以上の機能を実現する回路(例えば、application specific integrated circuit (ASIC))によっても実現可能である。
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
 本願は、2014年7月4日提出の日本国特許出願特願2014-139160を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。

Claims (13)

  1.  第一の通信プロトコルを用いた複数のセッションに基づいて、一つ以上のサーバとデータ通信を行う通信手段と、
     前記複数のセッションのうち、少なくとも一つのセッションにおけるエラー検出を行う検出手段と、
     前記検出手段が、前記複数のセッションのうち第一のセッションにおいてエラーを検出した場合、前記第一の通信プロトコルを用いた前記複数のセッションのうち第二のセッションにおいてデータ通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御手段とを有する情報処理装置。
  2.  前記検出手段が前記第一のセッションにおけるエラーを検出した場合、前記プロトコル制御手段は、新規に構築するセッションに用いる通信プロトコルを前記第二の通信プロトコルとし、
     前記検出手段が前記複数のセッションにおけるエラーを検出しない場合、前記プロトコル制御手段は、新規に構築するセッションに用いる通信プロトコルを前記第一の通信プロトコルとする請求項1に記載された情報処理装置。
  3.  前記通信手段は、前記複数のセッションに基づいて、前記一つ以上のサーバからコンテンツデータを取得し、
     前記検出手段が、第一のドメインに対応するサーバからコンテンツデータを取得するための前記第一のセッションにおけるエラーを検出した場合、前記プロトコル制御手段は、前記複数のセッションのうち、前記第一のドメインに対応するサーバからコンテンツデータを取得するための前記第二のセッションに対応する通信プロトコルを前記第一の通信プロトコルから前記第二の通信プロトコルに変更し、前記複数のセッションのうち、第二のドメインに対応するサーバからコンテンツデータを取得するための第三のセッションに対応する通信プロトコルを変更しない請求項1に記載された情報処理装置。
  4.  前記検出手段が、前記複数のセッションのうち前記第一のセッションにおけるウィンドウサイズに関するエラーを検出した場合、前記複数のセッションのうち前記第二のセッションにおいてデータ通信に用いるウィンドウサイズを変更するウィンドウサイズ制御手段をさらに有する請求項1に記載された情報処理装置。
  5.  前記セッションは、ウェブブラウザから前記一つ以上のサーバへのアクセスに応じて、前記サーバから発行されるセッションIDによって管理される請求項1に記載された情報処理装置。
  6.  複数のタブを有するウェブブラウザに表示させるためのコンテンツデータを、第一の通信プロトコルを用いて一つ以上のサーバから取得する通信手段と、
     前記複数のタブのうち、少なくとも一つのタブに対応する通信におけるエラー検出を行う検出手段と、
     前記検出手段が、前記複数のタブのうち第一のタブに対応する通信におけるエラーを検出した場合、前記第一の通信プロトコルを用いてコンテンツデータを取得する前記複数のタブのうち第二のタブに対応する通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御手段とを有する情報処理装置。
  7.  前記第一の通信プロトコルはHTTP/2であり、前記第二の通信プロトコルはHTTP/1.1である請求項1または請求項6に記載された情報処理装置。
  8.  第一の通信プロトコルを用いた複数のセッションに基づいて、一つ以上のサーバとデータ通信を行う通信工程と、
     前記複数のセッションのうち、少なくとも一つのセッションにおけるエラー検出を行う検出工程と、
     前記検出工程において、前記複数のセッションのうち第一のセッションにおけるエラーが検出された場合、前記第一の通信プロトコルを用いた前記複数のセッションのうち第二のセッションにおいてデータ通信に用いる通信プロトコルを前記第一の通信プロトコルから第二の通信プロトコルに変更するプロトコル制御工程とを有する情報処理方法。
  9.  前記検出工程において前記第一のセッションにおけるエラーが検出された場合、前記プロトコル制御工程において、新規に構築するセッションに用いる通信プロトコルが前記第二の通信プロトコルとされ、
     前記検出工程において前記複数のセッションにおけるエラーが検出されない場合、前記プロトコル制御工程において、新規に構築するセッションで用いる通信プロトコルが前記第一の通信プロトコルとされる請求項8に記載された情報処理方法。
  10.  前記通信工程において、前記複数のセッションに基づいて、前記一つ以上のサーバからコンテンツデータが取得され、
     前記検出工程において、第一のドメインに対応するサーバからコンテンツデータを取得するための前記第一のセッションにおけるエラーが検出された場合、前記プロトコル制御工程において、前記複数のセッションのうち、前記第一のドメインに対応するサーバからコンテンツデータを取得するための前記第二のセッションに対応する通信プロトコルが前記第一の通信プロトコルから前記第二の通信プロトコルに変更され、前記複数のセッションのうち、第二のドメインに対応するサーバからコンテンツデータを取得するための第三のセッションに対応する通信プロトコルが変更されない請求項8に記載された情報処理方法。
  11.  複数のタブを有するウェブブラウザに表示させるためのコンテンツデータを、第一の通信プロトコルを用いて一つ以上のサーバから取得する通信工程と、
     前記複数のタブのうち、少なくとも一つのタブに対応する通信におけるエラー検出を行う検出工程と、
     前記検出工程において、前記複数のタブのうち第一のタブに対応する通信におけるエラーが検出された場合、前記第一の通信プロトコルを用いてコンテンツデータを取得する前記複数のタブのうち第二のタブに対応する通信に用いる通信プロトコルを前記第一の通信プロトコルから前記第二の通信プロトコルに変更するプロトコル制御工程とを有する情報処理方法。
  12.  前記第一の通信プロトコルはHTTP/2であり、前記第二の通信プロトコルはHTTP/1.1である請求項8または請求項11に記載された情報処理方法。
  13.  コンピュータを請求項1から請求項7の何れか一項に記載された情報処理装置として動作させるためのプログラム。
PCT/JP2015/002226 2014-07-04 2015-04-24 情報処理装置および情報処理方法 WO2016002118A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/367,268 US10735245B2 (en) 2014-07-04 2016-12-02 Information processing apparatus and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014139160A JP6389661B2 (ja) 2014-07-04 2014-07-04 情報処理装置および情報処理方法
JP2014-139160 2014-07-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/367,268 Continuation US10735245B2 (en) 2014-07-04 2016-12-02 Information processing apparatus and information processing method

Publications (1)

Publication Number Publication Date
WO2016002118A1 true WO2016002118A1 (ja) 2016-01-07

Family

ID=55018702

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/002226 WO2016002118A1 (ja) 2014-07-04 2015-04-24 情報処理装置および情報処理方法

Country Status (3)

Country Link
US (1) US10735245B2 (ja)
JP (1) JP6389661B2 (ja)
WO (1) WO2016002118A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259300A (zh) * 2020-01-17 2020-06-09 苏宁云计算有限公司 一种页面加载方法、装置、系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265356A (ja) * 2006-03-30 2007-10-11 Nec Access Technica Ltd 通信プロトコルを用いた相互接続方法および装置
JP2009075850A (ja) * 2007-09-20 2009-04-09 Canon Inc 情報処理装置、情報処理方法、ならびにそのプログラムおよび記憶媒体
JP2012073744A (ja) * 2010-09-28 2012-04-12 Nec Corp 通信端末、通信システム、セッション管理方法、及びプログラム
WO2014002337A1 (ja) * 2012-06-25 2014-01-03 日本電気株式会社 通信制御装置及び通信制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07288630A (ja) 1994-04-20 1995-10-31 Canon Inc 画像処理装置
US5905582A (en) 1994-11-14 1999-05-18 Canon Kabushiki Kaisha Image processing apparatus for processing image data in response to signals from an external apparatus
JPH08139900A (ja) 1994-11-14 1996-05-31 Canon Inc 画像通信装置
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6049597A (en) 1996-10-29 2000-04-11 Canon Kabushiki Kaisha Data communication system between a personal computer and facsimile machine through an interface
US6442252B1 (en) 1997-09-05 2002-08-27 Canon Kabushiki Kaisha Communication apparatus
GB2330430B (en) * 1997-10-16 2002-07-17 Ibm Error handler for a proxy server computer system
JP2001078044A (ja) 1999-09-07 2001-03-23 Canon Inc 画像通信装置及び方法
US7047309B2 (en) * 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
US20040019636A1 (en) * 2002-07-24 2004-01-29 Sun Microsystems, Inc. System and method for dynamically routing web procedure calls
JP4557028B2 (ja) * 2008-03-19 2010-10-06 ソニー株式会社 情報処理装置、情報処理方法、クライアント機器、情報処理システム
US20130061159A1 (en) * 2011-09-01 2013-03-07 Erick Tseng Overlaid User Interface for Browser Tab Switching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265356A (ja) * 2006-03-30 2007-10-11 Nec Access Technica Ltd 通信プロトコルを用いた相互接続方法および装置
JP2009075850A (ja) * 2007-09-20 2009-04-09 Canon Inc 情報処理装置、情報処理方法、ならびにそのプログラムおよび記憶媒体
JP2012073744A (ja) * 2010-09-28 2012-04-12 Nec Corp 通信端末、通信システム、セッション管理方法、及びプログラム
WO2014002337A1 (ja) * 2012-06-25 2014-01-03 日本電気株式会社 通信制御装置及び通信制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259300A (zh) * 2020-01-17 2020-06-09 苏宁云计算有限公司 一种页面加载方法、装置、系统
CN111259300B (zh) * 2020-01-17 2023-05-19 苏宁云计算有限公司 一种页面加载方法、装置、系统

Also Published As

Publication number Publication date
JP2016018281A (ja) 2016-02-01
JP6389661B2 (ja) 2018-09-12
US10735245B2 (en) 2020-08-04
US20170085416A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
US10733259B2 (en) Web page access method and apparatus
US8745164B2 (en) Method and system to detect a cached web page
US9071570B2 (en) Method and apparatus to select and deliver portable portlets
US8726395B2 (en) Methods and computer systems for document encryption
US8387140B2 (en) Method and apparatus for controlling access to encrypted network communication channels
CN102763095A (zh) 便携式存储接口
US8677449B1 (en) Exposing data to virtual machines
JP2006185160A (ja) 複数のウェブサイトにパーソナライズされた価値を追加するためのシステム、ウェブサーバ、方法およびプログラム
US20170185753A1 (en) View-based expiration of shared content
US20150058713A1 (en) Method and apparatus for sharing media content and method and apparatus for displaying media content
JP5962702B2 (ja) 画像形成装置、ウエブアプリケーションシステムおよびプログラム
WO2011028985A2 (en) Parent playback
US8205214B2 (en) Browser elements for communicating with other browser elements and with external applications
JP2009157648A (ja) 通信端末、通信方法および通信プログラム
JPWO2014034001A1 (ja) Webコンテンツ先読み制御装置、Webコンテンツ先読み制御プログラム、及びWebコンテンツ先読み制御方法
WO2016002118A1 (ja) 情報処理装置および情報処理方法
AU2019201785B2 (en) Transfer http post launch data to a static web site through a dynamic stateless-sessionless http service
JP6143574B2 (ja) ドメインに特化されたツールバーボタンを管理する方法及びサーバ
US9531674B2 (en) Virtual host security profiles
JP6285974B2 (ja) サーバシステム、クライアント装置及びプログラム
CN106533983B (zh) 用于数据带宽优化的设备、方法及程序产品
US20170180591A1 (en) Information processing apparatus, recording medium, and control method
JP5327906B2 (ja) アクセス制御方法及びルータ装置
JP4861209B2 (ja) 情報処理装置、識別情報登録方法、および識別情報登録プログラム
US20240073211A1 (en) Systems and methods for retrieving data using a browser instance

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: 15814882

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15814882

Country of ref document: EP

Kind code of ref document: A1