WO2013179419A1 - アクセス管理装置 - Google Patents

アクセス管理装置 Download PDF

Info

Publication number
WO2013179419A1
WO2013179419A1 PCT/JP2012/063955 JP2012063955W WO2013179419A1 WO 2013179419 A1 WO2013179419 A1 WO 2013179419A1 JP 2012063955 W JP2012063955 W JP 2012063955W WO 2013179419 A1 WO2013179419 A1 WO 2013179419A1
Authority
WO
WIPO (PCT)
Prior art keywords
response
user terminal
content
access
access management
Prior art date
Application number
PCT/JP2012/063955
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 株式会社ゼロストラクト
Priority to PCT/JP2012/063955 priority Critical patent/WO2013179419A1/ja
Publication of WO2013179419A1 publication Critical patent/WO2013179419A1/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Definitions

  • the present invention relates to a technique for managing access between a server that provides content and a user terminal.
  • a device such as a content server or a reverse proxy server (hereinafter simply referred to as content) (Referred to as a server or the like) provides a user page with a web page (hereinafter referred to as a first response page) in which a message such as “Please wait for a while” is displayed instead of the desired web page.
  • the user terminal accesses again by pressing the reload button by the user or polling using JavaScript (registered trademark), etc., reloads the first response page, and requests the desired web page. It will be sent repeatedly. For this reason, when the access cannot be permitted, the load may increase due to the content server or the like repeating the transmission of the first response page. Furthermore, there is a problem in that network bandwidth is wasted due to repeated requests.
  • the problem of the disclosed technology is that, after transmitting a first response to wait for access from the user terminal to the user terminal according to the load of the content server, the access management apparatus sends the first response to the user terminal when permitting access.
  • the second response By configuring the second response to be transmitted, it is an object of the present invention to provide a technique for suppressing the load on the access management device and the content server and transmitting the content promptly.
  • One aspect of the disclosed technology is exemplified by the following configuration of the access management apparatus.
  • this access management device A load detection unit that detects a load state of the content server, a determination unit that determines whether access is possible according to the load state of the content server, A request receiver for receiving a content request from a user terminal; As a result of the determination, when access is denied, as a first response to the request from the user terminal, display data for displaying on the user terminal that the access is in a standby state, and a communication path to the user terminal A first response unit that transmits a setting program for setting A second response unit that transmits a second response to the user terminal via the communication path when the access is permitted after the transmission of the first response; Is provided.
  • One aspect of the disclosed technology is exemplified by the configuration of the following access management method.
  • this access management method An access management device that manages access from the user terminal to the content server A step of detecting a load state of the content server; a step of determining whether access is possible according to the load state of the content server; Receiving a request for content from a user terminal; As a result of the determination, when access is denied, as a first response to the request from the user terminal, display data for displaying on the user terminal that the access is in a standby state, and a communication path to the user terminal Sending a setting program for setting A step of transmitting a second response to the user terminal via the communication path when the access is permitted after the transmission of the first response; Execute.
  • one aspect of the disclosed technique is exemplified by an access management program for causing a computer to execute the access management method. Furthermore, one aspect of the disclosed technique is exemplified by the access management program recorded on a computer-readable recording medium. The function can be provided by causing the computer to read and execute the program of the recording medium.
  • a computer-readable recording medium is a recording medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like.
  • Examples of such recording media that can be removed from a computer or the like include flexible disks, magneto-optical disks, CDs (Compact Discs), CD-R / Ws, DVDs (Digital Versatile Discs), Blu-ray Discs (Blu-rays). Disc), DAT, 8 mm tape, flash memory, and other memory cards.
  • a recording medium fixed to a computer or the like there are a hard disk, a ROM (read only memory), and the like.
  • the access management device after transmitting a first response to wait for access from the user terminal to the user terminal according to the load on the content server, the access management device sends the first response to the user terminal when permitting access.
  • the second response is transmitted, it is possible to provide a technique for suppressing the load on the access management device and the content server and transmitting the content quickly.
  • FIG. 1 is a diagram illustrating an example of an access management system according to the first embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of the access management apparatus according to the first embodiment.
  • FIG. 3 is a functional block diagram of the access management apparatus.
  • FIG. 4 is an explanatory diagram of an access management method executed by the access management apparatus according to the first embodiment.
  • FIG. 5 is a diagram illustrating an example of the first response.
  • FIG. 6 is an explanatory diagram of a setting script and a display script included in the first response.
  • FIG. 7 is an explanatory diagram of processing for establishing a communication path from the access management apparatus to the user terminal and transmitting a second response.
  • FIG. 8 is a diagram illustrating a data table of data used by the access management apparatus for communication.
  • FIG. 9 is an explanatory diagram of processing for establishing a communication path from the access management apparatus to the user terminal and transmitting a second response.
  • FIG. 10 is an explanatory diagram of a display script executed by the user terminal when the second response is received.
  • FIG. 11 is a diagram illustrating an example of content included in the second response.
  • FIG. 12 is a diagram illustrating the source of the first response page after the processing of FIG. 10 is performed.
  • FIG. 13 is a diagram illustrating a display state of the first response page before receiving the second response.
  • FIG. 14 is a diagram illustrating a state in which the first response page is changed by the display script and the content is displayed.
  • FIG. 15 is an explanatory diagram of an access management method executed by the access management apparatus according to the modified example 1-2.
  • FIG. 16 is an explanatory diagram of a request script executed by the user terminal when the second response is received.
  • FIG. 17 is an explanatory diagram of an access management method executed by the access management apparatus according to Modification 1-3.
  • FIG. 18 is a diagram illustrating an example of an access management system according to the second embodiment.
  • FIG. 19 is an explanatory diagram of an access management method executed by the access management apparatus of the modification 2-3.
  • FIG. 20 is a diagram illustrating an example of an access management system according to the third embodiment.
  • FIG. 21 is an explanatory diagram of an access management method executed by the access management apparatus of the third embodiment.
  • FIG. 22 is an explanatory diagram of an access management method executed by the access management apparatus according to the third embodiment.
  • FIG. 23 is an explanatory diagram of an access management method executed by the access management apparatus of the modified example 3-2 according to the third embodiment.
  • FIG. 24 is a diagram illustrating an example of an access management system according to the fourth embodiment.
  • FIG. 25 is an explanatory diagram of an access management method executed by the access management apparatus of the fourth embodiment.
  • FIG. 26 is an explanatory diagram of an access management method executed by the access management apparatus of the fourth embodiment.
  • FIG. 1 is a diagram illustrating an example of an access management system 10 according to the first embodiment.
  • the access management system 10 according to the first embodiment includes an access management device 1 connected to a user terminal (client) 3 via a network, and a content server 2 connected to the access management device 1 via the network.
  • the access management device 1 relays access from the user terminal 3 to the content server 2 and manages the access.
  • the access management apparatus 1 when the user terminal 3 transmits a content request to the content server 2, the access management apparatus 1 immediately returns a web page (hereinafter also referred to as a first response page) to the request as a first response to the user terminal 3. . Then, when the content is acquired from the content server 2, a second response is transmitted to the user terminal 3.
  • a web page hereinafter also referred to as a first response page
  • the access management apparatus 1 of the present embodiment displays predetermined display data such as advertisements, a list of stores, event information, a store map, and a spinner by the first response before displaying the content by the second response. It can be displayed on the user terminal 3. Therefore, even when access to the content server 2 is concentrated and it takes time to acquire content from the content server 2, the first response is immediately transmitted from the access management device 1 to the user terminal 3. A decrease in user satisfaction can be suppressed. For example, by immediately displaying display data such as a spinner, it is possible to give the user a sense of security that the process is proceeding normally.
  • the access management apparatus 1 since the access management apparatus 1 has a configuration for managing access separately from the content server 2, it is not necessary to change the content server 2 and it is easy to introduce as an operator of the content server 2. .
  • a single access management device is configured to manage access to a plurality of content servers 2
  • a change is made to the plurality of content servers 2 by introducing a configuration for managing access to a single access management device. This eliminates the need and simplifies the configuration of the entire system. For example, even if the number of content servers increases, it is not necessary to add an access management device, and the IP address of the content server and the content of the first response need only be registered in the access management device.
  • FIG. 2 is a diagram illustrating a hardware configuration of the access management apparatus 1 according to the first embodiment
  • FIG. 3 is a functional block diagram of the access management apparatus 1.
  • the access management apparatus 1 includes an arithmetic processing unit 11 including a CPU (central processing unit) and a main memory in the main body, a storage unit 12 storing data and software for arithmetic processing, and input / output
  • the computer 19 includes a unit 13, a communication control unit (CCU) 14, and the like.
  • the access management device 1 may be a single computer or a configuration having a plurality of computers 19.
  • the input / output unit 13 is appropriately connected with input / output means such as a so-called console.
  • input / output means such as a so-called console.
  • the CCU 14 communicates with other computers via the network.
  • the CCU 14 may be a single device or a configuration having a plurality of communication control units.
  • the CCU 14 according to the first embodiment includes a plurality of communication control units 141, 142, 143..., And a unique IP address is assigned to each.
  • the address of each content server 2 to be managed for access is assigned to each of the plurality of communication control units 141, 142, 143.
  • the storage unit 12 is an auxiliary storage device such as a hard disk or an SSD, and stores an operating system (OS) and application software (such as an access management program).
  • the storage unit 12 stores data related to the accessed user terminal and data for generating the first response and the second response.
  • the storage unit 12 stores a data table in which the access management device 1 stores data used for communication in association with each other.
  • the arithmetic processing unit 11 appropriately reads out and executes the OS and application software from the storage unit 12 and performs processing on the information input from the input / output unit 13 and the CCU 14 and the information read from the storage unit 12, thereby browsing It also functions as the request reception unit 111, the first response generation unit 112, the content acquisition unit 113, the second response generation unit 114, and the response transmission unit 115.
  • FIG. 3 is a functional block diagram of the access management apparatus 1 according to the first embodiment.
  • the browsing request receiving unit 111 receives a browsing request (request) of content transmitted from the user terminal 3 via the network and the CCU 14.
  • the content acquisition unit 113 transmits the browsing request received from the user terminal 3 to the content server 2 and acquires the content corresponding to the browsing request from the content server.
  • the first response generation unit 112 sets predetermined display data and identification information used for communication via the communication path by establishing a communication path in the user terminal 3 as a first response to the request from the user terminal 3.
  • a setting program hereinafter also referred to as a setting script
  • a display program hereinafter also referred to as a display script
  • the predetermined display data is, for example, an HTML file or an image file specified by the requested URL, and more specifically, a web page that displays advertisements, a list of related stores, event information, a map, a spinner, and the like. Is mentioned.
  • the access management apparatus 1 includes a data table storing the correspondence between the URL of the content or a character string such as a domain name or a parameter included in the URL and display data, and receiving a request from the user terminal 3,
  • the first response generation unit 112 may transmit display data corresponding to the requested URL with reference to the data table to the user terminal 3 as at least a part of the first response. Further, when the access management device 1 is provided with one or more display data in advance and receives a request from the user terminal 3, the first response generation unit 112 selects the display data regardless of the requested URL, You may transmit to the user terminal 3 as at least one part of a 1st response.
  • the second response generation unit 114 By displaying a message such as “Please wait” and an image such as a spinner indicating that the data is being read as display data for the first response, the user can be assured that the process is proceeding normally. Can be given. Further, by displaying a common part such as a site logo mark, a side bar, and a menu bar as the first response as the display data, the user can recognize that the content has started to be displayed. In addition, as the display data of the first response, it is highly possible that the user wants to obtain, or by giving the user the information that the user wants to show at a minimum, the user's expectation is increased, and the user can It is possible to prevent giving up browsing and moving to another site.
  • the second response generation unit 114 generates a second response to be transmitted to the user terminal 3 after transmitting the first response.
  • the response transmission unit 115 transmits the content acquired by the content acquisition unit 113, the first response generated by the first response generation unit 112, and the second response generated by the second response generation unit 114 to the user terminal 3. .
  • the first response generation unit 112 that generates the first response and the response transmission unit 115 that transmits the first response function as the first response unit and generate the second response.
  • the response transmission unit 115 that transmits the unit 114 and the second response functions as a second response unit.
  • the response transmission unit 115 transmits the second response via a communication path set by the setting script different from the communication path for transmitting the first response. For example, when a request is received via an HTTP connection between the user terminal 3 and the access management device 1, a first response is transmitted as a response to the request via the HTTP connection, and a second response is set. Send via web socket set in script.
  • the content server 2 includes an arithmetic processing unit 21 including a CPU (central processing unit) and a main memory, a storage unit 22 storing data and software for arithmetic processing, and an input / output unit. 23, a computer including a communication control unit (CCU) 24 and the like.
  • arithmetic processing unit 21 including a CPU (central processing unit) and a main memory
  • storage unit 22 storing data and software for arithmetic processing
  • an input / output unit. 23 a computer including a communication control unit (CCU) 24 and the like.
  • CCU communication control unit
  • the input / output unit 23 is appropriately connected with input / output means such as a so-called console.
  • input / output means such as a so-called console.
  • the CCU 24 communicates with other computers via the network, for example, receives a request from the user terminal 3 and transmits content to the user terminal 3.
  • the storage unit 22 is an auxiliary storage device such as a hard disk or an SSD, and stores an operating system (OS) and application software (such as web server software).
  • the storage unit 12 stores data to be provided to the user terminal 3 and data such as authentication information (ID, password) of each user.
  • the arithmetic processing unit 21 appropriately reads out and executes the OS and application software from the storage unit 12, and performs arithmetic processing on information input from the input / output unit 23 and the CCU 24 and information read from the storage unit 12. In response to a request from the terminal 3, a function as a web server that provides content is executed.
  • the arithmetic processing unit 21 transmits, for example, an HTML file or an image file specified by the URL requested from the user terminal 3 to the user terminal 3 via an HTTP connection.
  • the user terminal 3 includes an arithmetic processing unit 31 comprising a CPU (central processing unit) and a main memory, a storage unit 32 storing data and software for arithmetic processing, and an input.
  • the computer includes an output unit 33, a communication control unit (CCU: Communication Control Unit) 34, and the like.
  • CCU Communication Control Unit
  • FIG. 1 the configuration of the arithmetic processing unit 31, the storage unit 32, the input / output unit 33, and the CCU 34 is shown for one user terminal 3 for convenience, but the basic configuration is the same for the other user terminals 3. It is.
  • the user terminal 3 may be any device that can access the content server 2 and acquire content, such as a personal computer (PC), a mobile phone, a smartphone, a portable game machine, and a tablet terminal.
  • PC personal computer
  • the CCU 34 communicates with other computers via the network, for example, transmits a request to the content server 2 and receives content from the content server 2.
  • the storage unit 32 is an auxiliary storage device such as a hard disk or an SSD, and stores an operating system (OS) and application software (such as web client software).
  • OS operating system
  • application software such as web client software
  • FIG. 4 is an explanatory diagram of an access management method executed by the access management apparatus 1 according to the first embodiment based on an access management program.
  • an address when the user terminal 3 accesses the content server 2 is set in the CCU 14 of the access management apparatus 1. For example, if the domain name of the content server 2 is “XX ⁇ .com”, the global IP address for this domain name is registered in DNS (Domain Name System), and this global IP address is assigned to the CCU 14. Then, the access management apparatus 1 stores the domain name or IP address in association with the actual IP address of the content server 2 in the host name correspondence table 54 (FIG. 8) of the storage unit 12. As a result, when the user operates the user terminal 3 to instruct access to the domain name “XXXXX.com”, the user terminal 3 sends a request to the address assigned to the CCU 14 by DNS name resolution.
  • DNS Domain Name System
  • the access management apparatus 1 that has received the request refers to the storage unit 12 and transfers the request to the content server 2 corresponding to the domain name or IP address.
  • the access management apparatus 1 that has acquired the content corresponding to the request from the content server 2 transmits the acquired content to the user terminal 3 that made the request.
  • the access management apparatus 1 is configured to relay access from the user terminal 3 to the content server 2.
  • the access management apparatus 1 receives a response from the user terminal 3, the access management apparatus 1 immediately sends the first response to the user terminal. Then, the content is acquired and a second response is sent.
  • step S1 When the user terminal 3 transmits a content request (browsing request) (step S1), the access management apparatus 1 receives this browsing request, reads out and executes the access management program from the storage unit 12, and performs the processing of FIG. Start (step S2). First, the access management device 1 generates a first response and transmits it to the user terminal 3 (step S3).
  • the first response includes a setting script for setting a communication path that can be push-transmitted from the access management device side, as will be described later.
  • the user terminal 3 that has received the first response To establish a communication path with the access management apparatus 1 separately from the HTTP connection that requested the content.
  • a web socket (WebSocket) is adopted, a socket for communicating with the access management apparatus 1 is set, and data sent from the access management apparatus to the socket can be received (step S4). ).
  • the access management device 1 requests content from the content server 2 based on the request from the user terminal 3 (step S5).
  • the content server 2 reads the content specified by the URL of the request and transmits it to the access management apparatus 1 (step S7).
  • the access management device 1 When receiving content from the content server 2 (step S8), the access management device 1 pushes a second response to the socket set in the user terminal 3 (step S9) and displays the content on the user terminal 3. (Step S10), and the process ends.
  • FIG. 5 is a diagram illustrating an example of a first response page as a first response
  • FIG. 6 is an explanatory diagram of a setting script and a display script included in the first response
  • FIG. 8 is a diagram illustrating a data table of data used for communication by the access management apparatus 1.
  • FIG. 8 is an explanatory diagram of processing for establishing a communication path to a terminal and transmitting a second response.
  • the first response page (display data) of the first response includes a header portion 61 from the ⁇ head> tag to the ⁇ / head> tag and from the ⁇ body> tag to the ⁇ / body> tag.
  • the header section 61 has an instruction 63 for acquiring and executing a setting script and a display script (hereinafter also referred to as a first response script).
  • a first response script a display script
  • the description used for the description of the present embodiment is extracted and shown, and is not limited to the description of FIG.
  • the first response script includes a command for establishing a communication path that enables push transmission from the access management device side, for example, a socket for communicating with the access management device 1 via a web socket.
  • An instruction 41 to be set is included.
  • the first response script receives a command 42 for returning the transaction ID notified by the first response to the access management device 1 when the communication path is established, and a process for displaying the content. And an instruction 44 for executing communication and an instruction 44 for starting communication with the access management apparatus 1.
  • the instructions 41, 42, and 44 correspond to the setting script
  • the instruction 43 and the program executed by the instruction 43 correspond to the display script.
  • the access management apparatus 1 identifies a series of processes (hereinafter also referred to as transactions) that acquire and provide content based on the request.
  • a transaction ID for the transaction table 51 is generated and stored as one record in the transaction table 51.
  • the transaction table 51 is a data table that is stored in the storage unit 12 and stores the transaction ID, a request host name, a request path, a request parameter, and an HTTP method in association with each other.
  • the request host name, request path, and request parameter are information extracted from the URL included in the request, and the HTTP method transmits information using HTTP such as GET, POST, PUT, and HEAD specified in the request. Or it shows the technique at the time of acquisition.
  • the access management device 1 transmits a first response to the requesting user terminal 3 (step S3).
  • the access management apparatus 1 transmits the first response including the transaction ID.
  • the user terminal 3 that has received the first response acquires and executes the setting script shown in FIG. 6 according to the instruction 33 of the web page shown in FIG. 5, and sends a communication path to the access management apparatus 1 based on the instruction 41.
  • Request settings In this embodiment, a web socket is adopted as a communication standard that can be push-transmitted from the access management apparatus 1 side, and the user terminal 3 sets a socket for performing communication using the web socket and establishes a connection by performing the following handshake. The request is transmitted to the access management device 1.
  • the access management device 1 generates identification information (socket ID) for identifying the socket of the established connection, and stores it as one record of the user table 52.
  • the user table 52 is a data table that is stored in the storage unit 12 and stores the transaction ID of the transaction, the socket ID, and the user ID for identifying the user terminal 3 or the user of the user terminal 3 in association with each other.
  • the access management apparatus 1 stores the socket ID and the socket object in association with each other as one record of the socket table 53.
  • the socket table 53 is a data table that is stored in the storage unit 12 and stores a socket ID and a socket object in association with each other.
  • the access management apparatus 1 searches the transaction table using the transaction ID as a key to obtain a request host name, searches the host name correspondence table 54 using the request host name as a key to obtain a corresponding real host name, and The request path and request parameters are added to the host name, and a URL addressed to the content server 2 is generated to request the content.
  • the access management apparatus 1 searches the user table 52 using the transaction ID as a key to obtain a corresponding socket ID, and uses the socket table 53 as a key for the socket table 53.
  • the corresponding socket object is obtained by searching, and the second response is pushed to the user terminal 3 using the socket object.
  • the present invention is not limited to this, and the access management device 1 is connected from the user terminal 3 as illustrated in FIG. 9. It is also possible to establish a communication path with the user terminal 3 by transmitting the setting program as a response to the request, and push-transmit the first response to the user terminal 3 via the established communication path.
  • FIG. 10 is an explanatory diagram of a display script executed by the user terminal 3 when the second response is received
  • FIG. 11 is a diagram illustrating an example of content included in the second response
  • FIG. It is a figure which shows the source
  • the user terminal 3 executes the description 43A of startSecondResponseRoutin () according to the instruction 43 shown in FIG. 6, and starts the process shown in FIG.
  • the user terminal 3 determines whether or not the content received in the second response has an instruction to read data in a predetermined format. In the example of FIG. 10, it is determined whether there is a CSS read command (step S120). If it is determined that there is a CSS read command (step S120, Yes), the CSS read command is extracted from the content, and the CSS is read (step S130).
  • an instruction 45 is a CSS reading instruction.
  • the extension of the user terminal 3 is [.
  • the Link tag including the description “CSS” is extracted as a CSS read command, and the linked CSS file is read into a predetermined storage area.
  • step S120 After reading the CSS file or when it is determined in step S120 that a CSS read command is not included (step S120, No), it is further determined whether there is a command for reading data in a predetermined format. In the example of FIG. 10, it is determined whether or not there is a JavaScript read command (step S140). If it is determined that there is a JavaScript read instruction (Yes in step S140), the JavaScript read instruction is extracted from the content, and the JavaScript is read (step S150).
  • an instruction 46 is a JavaScript reading instruction.
  • the extension of the user terminal 3 is [. JS] is extracted as a JavaScript read command, and the linked JavaScript file is read into a predetermined storage area and executed.
  • the user terminal 3 reads the description of the header portion 71 sandwiched between the ⁇ head> tag and the ⁇ / head> tag of the content included in the second response, and displays ⁇ It adds to the header part 61 between a head> tag and a ⁇ / head> tag, and changes like FIG. 12 (step S160).
  • the user terminal 3 uses the description 43B of getElementByID ('main'). Add (contents) of the instruction 43 shown in FIG. 6 to determine the ⁇ body> tag and ⁇ / body> tag of the content included in the second response.
  • the content for one viewer is hidden (step S160), the content is changed as shown in FIG. 12, and the processing of FIG. 10 is terminated.
  • the user terminal 3 displays the content by the function of the web browser by inserting the content in the first response page and changing it as shown in FIG. 12 by the processing of FIG.
  • FIG. 13 is a diagram showing a display state of the first response page before receiving the second response.
  • an advertisement a list of related stores, event information, a map, a spinner, and the like may be displayed.
  • information that is highly likely to be obtained by the user such as a summary of the new product and a release date, or information that the user wants to show at a minimum may be displayed.
  • the access management apparatus 1 of this embodiment is a structure which push-transmits a 2nd response, it can transmit a 2nd response asynchronously with the request from the user terminal 3.
  • the first response is transmitted in response to the request from the user terminal 3, and then the second response is pushed and transmitted to display the content.
  • the load on the device 1 and the content server 2 can be suppressed and the content can be transmitted promptly.
  • the access management device 1 is configured to transmit a first response as a response to a request from the user terminal 3 via an HTTP connection and push a second response via a web socket. Even when acquisition takes time, it is not necessary to maintain an HTTP connection after the first response is transmitted, and waste of resources can be prevented.
  • the predetermined response data such as advertisement, store list, event information, and store map can be displayed on the user terminal 3 by the first response.
  • the first response is immediately transmitted from the access management apparatus 1 to the user terminal 3, so that a decrease in user satisfaction is suppressed.
  • information that is highly likely to be obtained by the user such as the outline of the new product and the release date, or information that the user wants to show to the user at the minimum is displayed in the first response. It can also increase expectation and prevent withdrawal (giving up viewing).
  • the access management apparatus 1 of this embodiment can reflect CSS and JavaScript in a content by performing an explicit reading by step S130, S150 shown in FIG.
  • the access management apparatus 1 since the access management apparatus 1 is configured to manage access separately from the content server 2, it is not necessary to change the content server 2 and it is easy to introduce as an operator of the content server 2. It is. In particular, even when access to a plurality of content servers 2 is managed, it can be managed by a single access management device, and it is not necessary to change each content server 2, and the configuration of the entire system can be simplified.
  • the user terminal displays the content by inserting the content received as the second response into the first response page.
  • the present invention is not limited to this, and the user terminal reloads the first response page. By doing so, it may be configured to display the content. Other configurations are the same.
  • the second response is pushed to the user terminal 3 without including the content in step S9, and the content can be acquired. (Access permission).
  • the user terminal 3 then reloads the first response page when the second response is received based on the command 43 in FIG.
  • the user terminal 3 makes a content request to the access management apparatus 1 by this reload, and the access management apparatus 1 provides the content acquired in step S8 (FIG. 4) in response to this request.
  • FIG. 15 is an explanatory diagram of an access management method executed by the access management apparatus 1 according to Modification 1-2.
  • the access management apparatus 1 when the access management apparatus 1 receives the request and starts the processing of FIG. 15 (step S2), it determines whether or not the request is data collection of a search engine (step S2A). For example, the determination is made based on whether or not the user agent header in the request includes a specific character string indicating search engine data collection such as a search engine name and URL.
  • step S2A If the request is not search engine data collection (step S2A, No), the first response is transmitted to the user terminal 3 as in the first embodiment or the modified example 1-1 (step S3). ) Establish a communication path with the user terminal 3 (step 4), and acquire content (steps S5 to S8).
  • step S2 determines whether the request is data collection of a search engine by a program called a bot, crawler, spider or the like.
  • step S8A After the content is acquired, when the response is the data collection of the search engine (step S8A, Yes), the access management apparatus 1 uses the acquired content as a response to the request to the user terminal 3 (search bot) via the HTTP connection. Transmit (step S8B).
  • step S8A, No If the request is not data collection by the search engine (step S8A, No), the content is provided by transmitting the second response to the user terminal 3 as in the first embodiment or the modified example 1-1. (Steps S9 to S10).
  • the access management device 1 provides the content as quickly as possible for the data collection of the search engine.
  • the access management device 1 If the first response page is returned when data is collected by the search engine, the contents of the collected page become predetermined display data such as “I will display it soon”, which is not appropriate. For this reason, the access management device 1 according to the modified example 1-2 provides the content without making a first response when it is determined that the data is collected by the search engine. Therefore, according to the modified example 1-2, it is possible to appropriately provide content for the data collection of the search engine.
  • the access management system 10 according to the second embodiment will be described. Compared with the access management system 10 of the first embodiment described above, the access management system 10 of the present second embodiment is connected to the content server 2 when the load is high based on the load state of the content server 2. The configuration that restricts access is different.
  • the same reference numerals are given to the same elements, and a part of the description is omitted.
  • the basic configuration of the access management system 10 according to the second embodiment is the same as that shown in FIG.
  • the content acquisition unit 113 loads the content server 2 when the time (response time) from the transmission of the browsing request to the content server 2 until the reception of the content becomes a predetermined time or more. It also functions as a determination unit that determines that access is high (no). Further, the content acquisition unit 113 determines that the load on the content server 2 is normal and accessible when the content is obtained within a predetermined time.
  • the first response generation unit 112 displays, on the user terminal, that the access is in a standby state as a first response to the request from the user terminal 3 when the access is impossible as a result of the determination.
  • a web page described in HTML or a setting program for setting identification information used for communication via the communication path by establishing a communication path in the user terminal 3 (hereinafter also referred to as a setting script), And a display program (hereinafter also referred to as a display script) for displaying the content.
  • the second response generation unit 114 generates a second response to be transmitted to the user terminal 3 when access becomes possible after the transmission of the first response.
  • the response transmission unit 115 transmits the content acquired by the content acquisition unit 113, the first response generated by the first response generation unit 112, and the second response generated by the second response generation unit 114 to the user terminal 3. .
  • the first response generation unit 112 that generates the first response and the response transmission unit 115 that transmits the first response function as the first response unit and generate the second response.
  • the response transmission unit 115 that transmits the unit 114 and the second response functions as a second response unit.
  • FIG. 16 is an explanatory diagram of an access management method executed by the access management apparatus 1 according to the first embodiment based on an access management program.
  • a content browsing request is transmitted from the user terminal 3 (step S12), and when this browsing request is received, the access management apparatus 1 reads out and executes the access management program from the storage unit 12, and starts the processing of FIG. Step S14).
  • the access management apparatus 1 obtains the address of the content server 2 corresponding to the domain name or IP address of the received browsing request from the host name correspondence table, and transmits the browsing request (request) to the content server 2 (step S16). To do.
  • the content server 2 reads the content specified by the URL of the received request from the storage unit 22, and transmits it as a response to the request (step S18). Normally, a response to a request is made immediately, but may be delayed if the load on the content server 2 is high due to concentration of access or the like. Therefore, the access management server 1 determines whether or not the content server 2 is busy depending on whether or not there is a response within a predetermined time (step S20).
  • the load status of the content server 2 is not limited to the response time to the request, but a value indicating the status of the resource such as the CPU usage rate, the memory usage rate, and the number of threads is acquired from the content server 2 and this load If the value indicating is higher than a predetermined value, it may be determined to be busy. Further, when the processing of FIG. 16 is executed in parallel in another thread or another computer 19, if the number requested in parallel to the same content server 2 is higher than the predetermined value, it is determined as busy, You may determine with not being busy if it is below a predetermined value.
  • step S30 If there is a response to the browsing request in step S16 within a predetermined time and provision of the requested content is started, it is determined that the load on the content server 2 is light, that is, not busy (No in step S20). ), The content responded from the content server 2 is transmitted as a response to the request via the HTTP connection with the user terminal 3, and the process is terminated (step S30).
  • step S40 if there is no response within a predetermined time, it is determined that the load on the content server 2 is high and busy (Yes in step S20), and a web page (first display) with a message “I will display it soon” is displayed. Response page) is transmitted to the user terminal 3 as a first response (step S40).
  • the first response includes a setting script for setting a communication path capable of push transmission from the access management apparatus side as described above, and the user terminal 3 that has received the first response receives the script. Is executed to establish a communication path with the access management apparatus 1 separately from the HTTP connection requesting the content (step S45).
  • a web socket (WebSocket) is adopted, a socket for communicating with the access management apparatus 1 is set, and data sent from the access management apparatus to the socket can be received.
  • the access management device 1 determines whether or not there is a response from the content server 2, that is, whether or not content provision has started (step S50), and if there is no response (No in step S50). Wait for a response.
  • the access management apparatus 1 receives the content sent from the content server 2 (step S70).
  • the access management apparatus 1 that has received the content pushes the second response to the socket set in the user terminal 3 (step S80), causes the user terminal 3 to display the content (step S83), and ends the processing. .
  • the configuration in which the second response is sent to the user terminal 3 via the web socket and displayed on the user terminal 3 is the same as that in the first embodiment.
  • the first response indicating that the access from the user terminal 3 is waited for is sent to the user terminal 3 according to the load of the content server 2, and then the access is permitted when the access is permitted.
  • the second response is pushed and transmitted from the management device 1 to the user terminal
  • the load on the access management device 1 and the content server 2 can be suppressed and the content can be transmitted quickly.
  • the access management device 1 is configured to transmit a first response as a response to a request from the user terminal 3 via an HTTP connection and push a second response via a web socket. Even when acquisition takes time, it is not necessary to maintain an HTTP connection after the first response is transmitted, and waste of resources can be prevented.
  • the access management apparatus 1 when the load on the content server 2 is high, the access management apparatus 1 according to the second embodiment can immediately return the first response page such as “I will display it soon”, so that content can be acquired from the content server 2. Even if it takes a long time, a decrease in user satisfaction can be suppressed. Further, by displaying an image such as a spinner indicating that reading is in progress, it is possible to give the user a sense of security that “the process is proceeding normally”. Furthermore, by displaying a common part such as a site logo mark, side bar, and menu bar as the first response, the user can recognize that the content has started to be displayed.
  • the access management apparatus 1 of this embodiment can reflect CSS and JavaScript in a content by performing an explicit reading by step S130, S150 shown in FIG.
  • the access management apparatus 1 since the access management apparatus 1 has a configuration for managing access separately from the content server 2, it is not necessary to change the content server 2 and it is easy to introduce as an operator of the content server 2. .
  • a single access management device is configured to manage access to a plurality of content servers 2
  • a change is made to the plurality of content servers 2 by introducing a configuration for managing access to a single access management device. This eliminates the need and simplifies the configuration of the entire system.
  • the user terminal displays the content by inserting the content received as the second response into the first response page.
  • the present invention is not limited to this, and the user terminal reloads the first response page. By doing so, it may be configured to display the content. Other configurations are the same.
  • the second response is pushed to the user terminal 3 without including the content in step S80, and the content can be acquired. (Access permission).
  • the user terminal 3 then reloads the first response page when the second response is received based on the command 43 in FIG.
  • the user terminal 3 makes a content request to the access management apparatus 1 by this reload, and the access management apparatus 1 provides the content acquired in step S70 (FIG. 16) in response to this request.
  • the present modification 1-1 when the content server 2 has a high load and the first response to wait for access from the user terminal 3 is transmitted to the user terminal 3, the access is permitted. By pushing the second response from the access management device 1 to the user terminal, it is not necessary for the user terminal 3 to repeat reloading, the load on the access management device 1 and the content server 2 can be suppressed, and the content can be transmitted quickly. .
  • ⁇ Modification 2-2> In the above-described modification 2-1, the user terminal 3 receives the second response and then makes a request to the access management apparatus 1 again. However, the present modification 2-2 does not limit the user to the user.
  • the terminal 3 is configured to make a request to the content server 2 after receiving the second response. Other configurations are the same.
  • FIG. 17 is an explanatory diagram of an access management method executed by the access management apparatus 1 according to the modification 2-2.
  • the access management apparatus 1 receives a request from the user terminal 3, acquires the content if the load on the content server 2 is low and returns it to the user terminal 3, and the first if the load on the content server 2 is high.
  • the process of transmitting the response to the user terminal 3 and waiting (steps S10 to S45) is the same as that in FIG.
  • the access management apparatus 1 of the modification 2-2 does not transmit the content to the user terminal 3 even when the access of the user terminal 3 is permitted after the first response, the load status is not re-requested. (Step S47), and the content server 2 returns the load status in response to the inquiry (Step S48), thereby confirming the load status of the content server 2. If this load is high, it is determined that access is impossible, and if the load is low, access is permitted. For example, if the response time when requesting a content header or other information is longer than a predetermined value, it is determined that access is impossible, and if it is equal to or less than a predetermined value, access is determined.
  • a value indicating the state of the resource such as a CPU usage rate, a memory usage rate, and the number of threads, is acquired from the content server 2, and if the value indicating this load is higher than a predetermined value, it is determined that access is impossible. If so, it may be determined that access is possible.
  • Step S55 If it is determined that access is not possible (No at Step S55), this process (Steps S47 and 55) is repeated until access becomes possible.
  • the access management apparatus 1 when it determines with access being possible (step S55, Yes), the access management apparatus 1 produces
  • the access management device 1 generates an authentication token and includes it in the second response.
  • This authentication token is included in the second response and transmitted to the user terminal 3, the user terminal 3 sends it to the content server 2 together with the request, and verifies whether the user terminal 3 is a terminal permitted to access.
  • the algorithm for generating the authentication token is not particularly limited, and may be created using a known algorithm.
  • the authentication token randomly generated by the access management device 1 is sent to the user terminal 3 and the content server 2, and the authentication token received by the content server 2 from the user terminal 3 and the authentication token received from the access management device 1 If they match, the authentication may be successful. If they do not match, it may be determined that the authentication has failed.
  • the access management device 1 may generate an authentication token based on the time, and the content server 2 may verify the validity of the authentication token received from the user terminal 3 based on the time.
  • the access management device 1 searches the transaction table 51 using the transaction ID as a key, and searches for the corresponding HTTP method, request host name, request path, and request parameter. Further, the access management apparatus 1 searches the host name correspondence table 54 using the requested host name as a key, and obtains the corresponding IP address (real host name).
  • the access management device 1 generates information including the authentication token, HTTP method, IP address (real host name), request path, and request parameter as a second response, and transmits the second response to the user terminal 3 (step S85).
  • the user terminal 3 that has received the second response makes a content request in accordance with the display script (step S90), and the content server 2 transmits the content (response) for the request via the HTTP connection, to the user terminal 3. It is displayed (step S94).
  • FIG. 18 is an explanatory diagram of a request script executed by the user terminal 3 when the second response is received.
  • the user terminal 3 executes the description 43A of startSecondResponseRoutin () by the instruction 43 shown in FIG. 6 and starts the process shown in FIG. In the modification 2-2, the description 43B of getElementByID ('main'). Add (contents) of the instruction 43 shown in FIG. 6 may be omitted.
  • the user terminal 3 acquires the HTTP method included in the second response (step S210). Further, the user terminal 3 reads the IP address (real host name), request path, request parameter, and authentication token of the content server 2 from the second response, and connects them in a predetermined order to create a URL (step S). 220. Note that the authentication token may be inserted into the request parameter when the access management apparatus 1 generates the second response.
  • the user terminal 3 makes a request to the URL generated in step S220 using the method acquired in step S210 (step S230).
  • the content server 2 Upon receipt of the request, the content server 2 verifies the authentication token, and provides the content according to the request if it is a valid authentication token.
  • FIG. 19 is an explanatory diagram of an access management method executed by the access management apparatus 1 according to Modification 2-3.
  • the access management apparatus 1 when the access management apparatus 1 receives a request and makes a content request to the content server 2 (step S10), it determines whether the request is data collection of a search engine (step S10). Step S15). If it is determined that the request is a search engine data collection by a program called bot, crawler, spider or the like (step S15, Yes), the content is acquired and transmitted regardless of the load on the content server 2 (step S30). ).
  • the access management apparatus 1 provides the content as quickly as possible for the data collection of the search engine.
  • FIG. 20 is a diagram illustrating an example of the access management system 10 according to the third embodiment.
  • the access management system 10 according to the third embodiment includes an access management apparatus 1 connected to a user terminal (client) 3 via a network, and a content server 2 connected to the access management apparatus 1 via the network.
  • the access management device 1 relays access from the user terminal 3 to the content server 2 and manages whether the access is possible according to the load state of the content server 2.
  • the access management apparatus 1 displays a web page (hereinafter also referred to as a first response page) indicating that the access is in a standby state. It returns to the user terminal 3 as a first response, and registers information (client information) specifying the request of the user terminal 3 in the standby state in the client queue 120.
  • a web page hereinafter also referred to as a first response page
  • client information specifying the request of the user terminal 3 in the standby state in the client queue 120.
  • the second response is sequentially transmitted to the user terminal 3 registered in the client queue 120 to provide the content.
  • the access management apparatus 1 pushes the second response to the user terminal 3 so that the user terminal 3 frequently accesses the access management apparatus 1 by repeatedly reloading the first response page.
  • the problem of occupying resources by long polling can be solved, and the content can be provided to the user terminal 3 in the standby state without increasing the load on the access management device 1 or the content server 2.
  • the access management apparatus 1 according to the third embodiment has the same hardware configuration as that shown in FIG.
  • the access management apparatus 1 according to the third embodiment differs from the access management apparatus according to the first embodiment in the function executed according to the access management program.
  • the same elements as those in the first embodiment are denoted by the same reference numerals, and a part of the description thereof is omitted.
  • the client queue 120 is a queue that sequentially stores information for specifying the requests of the user terminal 3 in the standby state, and is stored in the storage unit 12 or the main memory.
  • the browsing request receiving unit 111 receives a browsing request (request) of content transmitted from the user terminal 3 via the network and the CCU 14.
  • the content acquisition unit 113A transmits the browsing request received from the user terminal 3 to the content server 2, and acquires the content corresponding to the browsing request from the content server 2.
  • the content acquisition unit 113A according to the third embodiment also functions as a determination unit that determines whether access is possible based on the load state of the content server 2.
  • the content acquisition unit 113B transmits a request based on the information acquired from the client queue 120 to the content server 2, and acquires the content corresponding to the request from the content server 2.
  • the first response generation unit 112 indicates that access is in a standby state as a first response to the request from the user terminal 3 when access is not possible.
  • Is displayed on the user terminal for example, a web page (first response page) described in HTML, or the user terminal 3 establishes a communication path and sets identification information used for communication through the communication path.
  • a setting program hereinafter also referred to as a setting script
  • a display program hereinafter also referred to as a display script
  • the second response generation unit 114 generates a second response to be transmitted to the user terminal 3 when access becomes possible after the transmission of the first response.
  • the response transmission unit 115A transmits the content acquired by the content acquisition unit 113A and the first response generated by the first response generation unit 112 to the user terminal 3.
  • a first response generation unit 112 that generates a first response
  • a response transmission unit 115A that transmits the first response function as a first response unit.
  • the response transmission unit 115B transmits the content acquired by the content acquisition unit 113B and the second response generated by the second response generation unit 114 to the user terminal 3.
  • the second response generation unit 114 that generates the second response and the response transmission unit 115 that transmits the second response function as the second response unit.
  • the client information storage unit 116 stores information (hereinafter also referred to as waiting client information) that specifies a request from the user terminal 3 in a standby state in the client queue 120.
  • information stored in the client queue 120 is, for example, a transaction ID or a socket object.
  • the client information acquisition unit 117 sequentially acquires waiting client information from the client queue 120.
  • the waiting client information stored in the client queue 120 is first acquired from the waiting client information that has been put first (FIFO).
  • the client information acquisition order is not limited to FIFO, and may be acquired in a predetermined order.
  • information indicating the priority for each user such as a paying member or a good customer, may be stored in association with the user ID, and acquired in order from the client information of the user with the highest priority.
  • the browsing request reception unit 111, the first response generation unit 112, the content acquisition unit 113A, the response transmission unit 115A, and the client information storage unit 116 constitute the user request controller 1A, the content acquisition unit 113B,
  • the two response generation unit 114, the content acquisition unit 113B, and the client information acquisition unit 117 constitute a waiting queue controller 1B.
  • ⁇ Access management method ⁇ 21 and 22 are explanatory diagrams of an access management method executed by the access management apparatus 1 according to the third embodiment based on an access management program.
  • the access management apparatus 1 When a content browsing request is transmitted from the user terminal 3 and this browsing request is received, the access management apparatus 1 reads and executes the access management program from the storage unit 12 and starts the process of FIG. 21 (step S310).
  • the access management apparatus 1 obtains the address of the content server 2 corresponding to the domain name or IP address of the received browsing request from the host name correspondence table 54, confirms the load state of the content server 2, and determines whether it is busy. Is determined (step S320).
  • the load status of the content server 2 is confirmed, for example, if the response time when requesting a content header or other information is longer than a predetermined value, and is not busy if the response time is less than the predetermined value. Is determined.
  • a value indicating the state of the resource such as the CPU usage rate, the memory usage rate, the number of threads, etc. is acquired from the content server 2, and if the value indicating this load is higher than a predetermined value, it is determined to be busy.
  • step S320 If it is determined in step S320 that the load on the content server 2 is light, i.e., not busy (No in step S320), the access management device 1 transmits a request to the content server 2 (step S330). The content responded from 2 is received (step S340), transmitted to the user terminal 3, and the process is terminated (step S350).
  • step S320 if it is determined in step S320 that the load on the content server 2 is high and busy (Yes in step S320), the access management device 1 displays a web page describing a message such as “I will display it soon”. One response is transmitted to the user terminal 3 (step S360), and access by the user terminal 3 is set in a standby state.
  • the first response includes a setting script for setting a communication path capable of push transmission from the access management apparatus 1 side as described above, and the user terminal 3 that has received the first response A script is executed to establish a communication path with the access management apparatus 1.
  • a web socket (WebSocket) is adopted, a socket for communicating with the access management apparatus 1 is set, and data sent from the access management apparatus side to the socket can be received.
  • the access management device 1 that has made the access from the user terminal 3 in a standby state stores the transaction ID related to the access and the socket object in the client queue 120 as waiting client information (step S370).
  • step S380 When waiting client information is stored in the client queue 120, it is determined whether or not the waiting queue controller 1B is stopped (step S380), and if not stopped (step S380, No), the processing of FIG. If it is stopped (step S380, Yes), the waiting queue controller 1B is activated to start the process of FIG. 22 (step S390), and the process of FIG.
  • the access management apparatus 1 When the access management apparatus 1 starts the processing of FIG. 22, it acquires the waiting client information from the client queue 120 (step S410), and the access management apparatus 1 stores the transaction table 51 using the transaction ID of the acquired waiting client information as a key. Search to find the corresponding HTTP method, request host name, request path, and request parameters. Further, the access management apparatus 1 searches the host name correspondence table 54 using the request host name as a key, obtains the corresponding IP address (real host name), and determines whether or not the content server 2 of the IP address is busy. (Step S415).
  • step S415 If the content server 2 is busy (step S415, Yes), the process returns to step S410 to acquire the next waiting client information, repeats step S415, and determines that the content server 2 is not busy in step S415 (step S415). , No), the access management device 1 creates a URL by connecting the IP address (real host name), request path, and request parameters of the content server 2 in a predetermined order, and the content of the content is transmitted to the URL by the HTTP method. A request is made (step S420).
  • the access management device 1 receives the content corresponding to the request from the content server 2 (step S430), generates a second response including the content, and uses the socket object acquired in step S410 to generate the second response. Push transmission is performed to the user terminal 3 (step S440).
  • the operation of the user terminal 3 that has received the second response is the same as that of the first embodiment described above, and the content is displayed by performing the processing of FIG. 10 using the display script sent in the first response.
  • the access management apparatus 1 determines whether or not the client queue 120 is empty (step S450). If it is not empty (step S450, No), the above-described processing (steps S410 to S440) is performed. ) Is repeated and if it becomes empty (step S450, Yes), the processing of FIG.
  • the load on the access management device 1 and the content server 2 can be suppressed, and the content can be transmitted promptly. Further, according to the third embodiment, when the load on the content server is high and the access from the user terminal 3 is waited, the waiting client information is held in the client queue, and the content is sequentially transmitted from the content server that is not busy. Since it is acquired, access can be managed accurately.
  • the access management apparatus 1 since the access management apparatus 1 is configured to manage access separately from the content server 2, it is not necessary to change the content server 2 and the introduction is easy.
  • a single access management device is configured to manage access to a plurality of content servers 2
  • a change is made to the plurality of content servers 2 by introducing a configuration for managing access to a single access management device. This eliminates the need and simplifies the configuration of the entire system.
  • the operation of the user terminal 3 that has received the second response is the same as that in FIG. 10.
  • the present invention is not limited to this.
  • the first response page may be reloaded with this response as a trigger.
  • FIG. 23 is an explanatory diagram of an access management method executed by the access management apparatus 1 of the modification 3-2 according to the third embodiment.
  • the access management apparatus 1 receives the request and starts the processing of FIG. 23 (step S310), it determines whether the request is data collection of a search engine (step S315). ). When it is determined that the request is data collection of a search engine by a so-called bot, crawler, spider or the like (step S315, Yes), the content is acquired and transmitted regardless of the load of the content server 2 (step S330).
  • the access management device 1 provides the content as quickly as possible for the data collection of the search engine.
  • the access management device 1 In the first to third embodiments described above, an example in which the access management device and the content server 2 are configured separately has been described. However, the present invention is not limited to this, and the access management device and the content server 2 are the same device. May be.
  • FIG. 24 is a functional block diagram of the access management apparatus 1 according to the fourth embodiment.
  • the access management apparatus 1 according to the fourth embodiment has a function of a content providing unit 20 (corresponding to the content server 2) that provides content in response to a request. That is, the content acquisition units 113 ⁇ / b> A and 113 ⁇ / b> B request content from the content providing unit 20 and acquire content from the content providing unit 20.
  • the content providing unit 20 is realized by the arithmetic processing unit 11 according to an application program (web server software).
  • the access management apparatus 1 according to the fourth embodiment is the same as the access management apparatus 1 according to the second embodiment except for the configuration related to the content providing unit 20.
  • the hardware configuration is the same as in FIG. ⁇ Access management method ⁇ 25 and 26 are explanatory diagrams of an access management method executed by the access management apparatus 1 according to the fourth embodiment based on an access management program.
  • the access management apparatus 1 When a content browsing request is transmitted from the user terminal 3 and this browsing request is received, the access management apparatus 1 reads out and executes the access management program from the storage unit 12, and starts the process of FIG. 25 (step S310).
  • the access management device 1 checks the load state of the content providing unit (content server) 20 and determines whether it is busy (step S320).
  • the load status of the content providing unit 20 can be confirmed by, for example, the content regularizing unit 20 such as the number of threads assigned to the content providing unit 20, that is, the process of providing content, the CPU usage rate, the memory usage rate, and the like.
  • a value indicating the state of the resource assigned to is acquired, and if the value indicating the load is higher than a predetermined value, it is determined to be busy, and if it is equal to or lower than the predetermined value, it is determined not to be busy.
  • FIG. 25 when the processing of FIG. 25 is executed in parallel by another thread or another computer 19, if the number of requests to the same content providing unit 20 in parallel is higher than a predetermined value, it is determined to be busy, You may determine with not being busy if it is below a predetermined value.
  • step S320 when it is determined that the load on the content providing unit 20 is light, that is, not busy (No in step S320), the access management device 1 makes a request to the content providing unit 20 (step S330), and provides the content.
  • the content that has been responded to from the unit 20 is received (step S340), the content is transmitted to the user terminal 3, and the process is terminated (step S350).
  • step S320 if it is determined in step S320 that the load on the content providing unit 20 is high and busy (Yes in step S320), the access management device 1 displays a web page describing a message such as “I will display it soon”. It transmits to the user terminal 3 as a 1st response (step S360), and makes the access by the user terminal 3 a standby state.
  • the first response includes a setting script for setting a communication path capable of push transmission from the access management apparatus 1 side as described above, and the user terminal 3 that has received the first response A script is executed to establish a communication path with the access management apparatus 1.
  • a web socket (WebSocket) is adopted, a socket for communicating with the access management apparatus 1 is set, and data sent from the access management apparatus to the socket can be received.
  • the access management device 1 that has made the access from the user terminal 3 in a standby state stores the transaction ID related to the access and the socket object in the client queue 120 as waiting client information (step S370).
  • step S380 When waiting client information is stored in the client queue 120, it is determined whether or not the waiting queue controller 1B is stopped (step S380). If not stopped (step S380, No), the processing of FIG. 25 is terminated. If it is stopped (step S380, Yes), the waiting queue controller 1B is activated to start the process of FIG. 26 (step S390), and the process of FIG. 25 is terminated.
  • the access management apparatus 1 When the access management apparatus 1 starts the processing of FIG. 26, it acquires waiting client information from the client queue 120 (step S410), and the access management apparatus 1 stores the transaction table 51 using the transaction ID of the acquired waiting client information as a key. Search and find the corresponding request host name, request path, and request parameters. Furthermore, the access management apparatus 1 determines whether or not the content providing unit 20 corresponding to the request host name is busy (step S415). When the content providing unit 20 is busy (step S415, Yes), the process returns to step S410 to acquire the next waiting client information, repeats step S415, and determines that it is not busy at step S415 (step S415). (S415, No), the access management apparatus 1 requests the content providing unit 20 for content specified by the IP address (real host name), the request path, and the request parameter (step S420).
  • the access management apparatus 1 acquires content for the request from the content providing unit 20 (step S430), generates a second response including the content, and uses the socket object acquired in step S410 to generate the second response. Is pushed to the user terminal 3 (step S440).
  • the operation of the user terminal 3 that has received the second response is the same as that of the first embodiment described above, and the content is displayed by performing the processing of FIG. 10 using the display script sent in the first response.
  • the access management apparatus 1 determines whether or not the client queue 120 is empty (step S450). If it is not empty (step S450, No), the above-described processing (steps S410 to S440) is performed. ) Is repeated and if it becomes empty (step S450, Yes), the processing of FIG.
  • the load on the access management device 1 and the content server 2 can be suppressed, and the content can be transmitted promptly.
  • the load on the content server (content providing unit) is high, and waiting for access from the user terminal 3, the waiting client information is held in the client queue, and the content is sequentially acquired from the content server that is not busy. , Can manage access accurately.
  • the access management device 1 is configured to manage access separately from the content server 2, it is not necessary to change the content server 2 and it is introduced as an operator of the content server 2. Easy. For example, even if the number of content servers increases, it is not necessary to add an access management device, and it is only necessary to register the IP address of the content server and the content of the first response in the access management device. ⁇ Others> The present invention is not limited to the illustrated examples described above, and various modifications can be made without departing from the scope of the present invention.
  • Access management apparatus 1A User request controller 1B Waiting queue controller 2 Content server 3 User terminal 10 Access management system 11 Arithmetic processing part 12 Storage part 13 Input / output part 19 Computer 51 Transaction table 52 User table 53 Socket table 54 Host name correspondence table 111 Browsing request reception unit 112 First response generation unit 113 Content acquisition unit 113A Content acquisition unit 113B Content acquisition unit 114 Second response generation unit 115 Response transmission unit 115A Response transmission unit 115B Response transmission unit 116 Client information storage unit 117 Client information acquisition unit 120 Client queues 141, 142, 143... Communication control unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 クライアントからコンテンツサーバへのアクセスを管理するアクセス管理装置が、コンテンツサーバの負荷状態を検出し、コンテンツサーバの負荷状態に応じてアクセスの可否を判定し、クライアントからコンテンツのリクエストを受信し、前記判定の結果、アクセスが否であった場合に、前記クライアントからのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記クライアントに表示させる表示データ及び前記クライアントに通信経路を設定させるための設定用プログラムを送信し、前記第一のレスポンスの送信後、前記アクセスが可となった場合に、前記通信経路を介して前記クライアントへ第二のレスポンスを送信する。

Description

アクセス管理装置
 本発明は、コンテンツを提供するサーバとユーザ端末との間のアクセスを管理する技術に関する。
 近年、インターネットの普及により、WWW(World Wide Web;以下ウエブとも称する)を利用した様々なコンテンツの提供が行われている。
 例えば、ニュースや音楽、動画等の配信、商品の販売、証券取引、バンキングサービス、コンサートや飛行機のチケットの予約と販売などが行われている。
 インターネット等のネットワークを介してコンテンツを提供する場合、ネットワークと接続している世界中のユーザに対してコンテンツを提供できる可能性を秘める反面、コンテンツを要求するアクセスが集中してコンテンツを提供するサーバ(以下コンテンツサーバとも称す)の処理能力を超えてコンテンツを提供できなくなる虞もあった。
 このため、ユーザ端末からコンテンツサーバへのアクセスが増加してコンテンツサーバの負荷が高くなった場合には、ユーザ端末からのアクセスを待機させ、コンテンツサーバの負荷状況に応じて、ユーザ端末のアクセスを個別に許可することでコンテンツサーバへのアクセス数を制御する装置が提案されている。
 本願発明に関連する先行技術として、例えば、下記の特許文献に開示される技術がある。
特開2002-82906号公報
 例えば、ユーザ端末からコンテンツサーバへ所望のウェブページをリクエストするアクセスを受けた際、アクセスの集中により上述のようにアクセスを待機させた場合、コンテンツサーバ或いはリバースプロキシサーバ等の装置(以下、単にコンテンツサーバ等と称す)は、所望のウェブページに代えて「しばらくお待ちください」といったメッセージを記載したウェブページ(以下、第一応答ページと称す)をユーザ端末に提供して表示させる。
 第一応答ページを受信した場合、ユーザによるリロードボタンの押下、或いはJavaScript(登録商標)等によるポーリングによってユーザ端末が再度アクセスし、第一応答ページのリロードを行って、所望のウェブページのリクエストを繰り返し送信することになる。このため、当該アクセスを許可できない場合にはコンテンツサーバ等が前記第一応答ページの送信を繰り返すことによって、負荷が増加する可能性がある。更に、リクエストの繰り返しによってネットワークの帯域も浪費されてしまうという問題点があった。
 また、ユーザ端末からコンテンツサーバへのリクエストに対して、直ぐにレスポンスを返さずにHTTP接続を保持しておき、コンテンツサーバへのアクセスが可能となった場合に所望のウェブページを送信するロングポーリングといった技術もある。
 しかし、リクエスト後、所望のウェブページを送信できるようになるまでロングポーリングによってHTTP接続を保持しておくと、このHTTP接続の保持の為にメモリ等のリソースを占有することになり、コンテンツサーバ等の処理能力を低下させるという問題点があった。
 開示の技術の課題は、コンテンツサーバの負荷に応じて、ユーザ端末からのアクセスを待機させる旨の第一のレスポンスをユーザ端末に送信した後、アクセスを許可する際にアクセス管理装置からユーザ端末へ第二のレスポンスを送信する構成としたことにより、アクセス管理装置及びコンテンツサーバの負荷を抑え、コンテンツを速やかに送信する技術を提供することにある。
 開示の技術の一側面は、次のアクセス管理装置の構成によって例示される。すなわち、本アクセス管理装置は、
 コンテンツサーバの負荷状態を検出する負荷検出部と
 コンテンツサーバの負荷状態に応じてアクセスの可否を判定する判定部と、
 ユーザ端末からコンテンツのリクエストを受信する要求受信部と、
 前記判定の結果、アクセスが否であった場合に、前記ユーザ端末からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信する第一応答部と、
 前記第一のレスポンスの送信後、前記アクセスが可となった場合に、前記通信経路を介して前記ユーザ端末へ第二のレスポンスを送信する第二応答部と、
を備える。
 開示の技術の一側面は、次のアクセス管理方法の構成によって例示される。すなわち、本アクセス管理方法は、
 ユーザ端末からコンテンツサーバへのアクセスを管理するアクセス管理装置が、
 コンテンツサーバの負荷状態を検出するステップと
 コンテンツサーバの負荷状態に応じてアクセスの可否を判定するステップと、
 ユーザ端末からコンテンツのリクエストを受信するステップと、
 前記判定の結果、アクセスが否であった場合に、前記ユーザ端末からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信するステップと、
 前記第一のレスポンスの送信後、前記アクセスが可となった場合に、前記通信経路を介して前記ユーザ端末へ第二のレスポンスを送信するステップと、
を実行する。
 また、開示の技術の一側面は、上記アクセス管理方法をコンピュータに実行させるためのアクセス管理プログラムによって例示される。更に、開示の技術の一側面は、このアクセス管理プログラムをコンピュータが読み取り可能な記録媒体に記録したものによって例示される。コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
 ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD(Compact Disc)、CD-R/W、DVD(Digital Versatile Disk)、ブルーレイディスク(Blu-ray Disc)、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
 本発明によれば、コンテンツサーバの負荷に応じて、ユーザ端末からのアクセスを待機させる旨の第一のレスポンスをユーザ端末に送信した後、アクセスを許可する際にアクセス管理装置からユーザ端末へ第二のレスポンスを送信する構成としたことにより、アクセス管理装置及びコンテンツサーバの負荷を抑え、コンテンツを速やかに送信する技術を提供できる。
図1は、実施形態1に係るアクセス管理システムの一例を示す図である。 図2は、実施形態1に係るアクセス管理装置のハードウェア構成を示す図である。 図3は、アクセス管理装置の機能ブロック図である。 図4は、実施形態1のアクセス管理装置が実行するアクセス管理方法の説明図である。 図5は、第一のレスポンスの一例を示す図である。 図6は、第一のレスポンスが有する設定用スクリプト及び表示用スクリプトの説明図である。 図7は、アクセス管理装置からユーザ端末への通信経路を確立して第二のレスポンスを送信する処理の説明図である。 図8は、アクセス管理装置が通信に用いるデータのデータテーブルを例示する図である。 図9は、アクセス管理装置からユーザ端末への通信経路を確立して第二のレスポンスを送信する処理の説明図である。 図10は、第二のレスポンスを受信した際にユーザ端末が実行する表示用スクリプトの説明図である。 図11は、第二のレスポンスに含まれるコンテンツの例を示す図である。 図12は、図10の処理を行った後の第一応答ページのソースを示す図である。 図13は、第二のレスポンスを受信する前の第一応答ページの表示状態を示す図である。 図14は、第一応答ページを表示用スクリプトによって変更してコンテンツを表示させた状態を示す図である。 図15は、変形例1-2のアクセス管理装置が実行するアクセス管理方法の説明図である。 図16は、第二のレスポンスを受信した際にユーザ端末が実行するリクエスト用スクリプトの説明図である。 図17は、変形例1-3のアクセス管理装置が実行するアクセス管理方法の説明図である。 図18は、実施形態2に係るアクセス管理システムの一例を示す図である。 図19は、変形例2-3のアクセス管理装置が実行するアクセス管理方法の説明図である。 図20は、実施形態3に係るアクセス管理システムの一例を示す図である。 図21は、実施形態3のアクセス管理装置が実行するアクセス管理方法の説明図である。 図22は、実施形態3のアクセス管理装置が実行するアクセス管理方法の説明図である。 図23は、前記実施形態3に係る変形例3-2のアクセス管理装置が実行するアクセス管理方法の説明図である。 図24は、実施形態4に係るアクセス管理システムの一例を示す図である。 図25は、実施形態4のアクセス管理装置が実行するアクセス管理方法の説明図である。 図26は、実施形態4のアクセス管理装置が実行するアクセス管理方法の説明図である。
 以下、図面を参照して本発明を実施するための形態について説明する。以下の実施の形態の構成は例示であり、本発明は実施の形態の構成に限定されない。
〈実施形態1〉
 《システム構成》
 図1は、本実施形態1に係るアクセス管理システム10の一例を示す図である。本実施形態1のアクセス管理システム10は、ネットワークを介してユーザ端末(クライアント)3と接続するアクセス管理装置1、及び当該アクセス管理装置1とネットワークを介して接続するコンテンツサーバ2を有する。アクセス管理装置1は、ユーザ端末3からコンテンツサーバ2へのアクセスを中継し、当該アクセスを管理する。
 例えば、ユーザ端末3がコンテンツサーバ2へコンテンツのリクエストを送信すると、アクセス管理装置1は、このリクエストに対するウェブページ(以下、第一応答ページとも称す)を第一のレスポンスとしてユーザ端末3へ直ちに返す。そして、コンテンツサーバ2からコンテンツを取得した際に、当該ユーザ端末3へ第二のレスポンスを送信する。
 このアクセス管理により本実施形態のアクセス管理装置1は、第二のレスポンスによってコンテンツを表示させる前に、第一のレスポンスにより、広告や店舗一覧、イベント情報、店舗地図、スピナーなど所定の表示データをユーザ端末3に表示させることができる。従って、コンテンツサーバ2へのアクセスが集中し、コンテンツサーバ2からコンテンツを取得するまでに時間がかかるような場合でも、第一のレスポンスがアクセス管理装置1から直ちにユーザ端末3へ送信されるので、ユーザの満足度の低下が抑えられる。例えば、スピナー等の表示データを直ちに表示させることで、処理が正常に進行しているという安心感をユーザに与えることができる。また、新製品のキャンペーンサイトであれば、新製品の概要と発売日を第1応答に表示することで、ユーザーに最低限見せたい情報を与えられるとともに、ユーザーの期待感を高めて離脱(閲覧を諦めてしまうこと)を防ぐこともできる。
 また、従来、コンテンツサーバ2の負荷が高い場合にリクエストを待機させるようにアクセスを管理するには、コンテンツサーバに変更を加えて、リクエストを待機させる構成を設けなければならず導入が困難であった。本実施形態1では、コンテンツサーバ2と別に、アクセス管理装置1がアクセスを管理する構成を備えたので、コンテンツサーバ2に変更を加える必要がなくコンテンツサーバ2の運営者としては導入が容易である。特に、一つのアクセス管理装置で複数のコンテンツサーバ2へのアクセスを管理する構成とした場合、一つのアクセス管理装置にアクセスを管理する構成を導入することで、複数のコンテンツサーバ2に変更を加える必要が無くなり、システム全体としての構成を簡素化できる。例えば、コンテンツサーバが増えても、アクセス管理装置を追加する必要がなく、コンテンツサーバのIPアドレスと第1応答のコンテンツをアクセス管理装置に登録するだけでよい。
 図2は、本実施形態1に係るアクセス管理装置1のハードウェア構成を示す図、図3は、アクセス管理装置1の機能ブロック図である。
 図2に示すように、アクセス管理装置1は、本体内にCPU(central processing unit)やメインメモリ等よりなる演算処理部11、演算処理の為のデータやソフトウェアを記憶した記憶部12、入出力部13、通信制御ユニット(CCU:Communication Control Unit)14等を備えたコンピュータ19である。なお、アクセス管理装置1は、単一のコンピュータであっても良いし、複数のコンピュータ19を有する構成であっても良い。
 該入出力部13には、所謂コンソールといった入出力手段が適宜接続される。入出力手段としては、キーボードやポインティングデバイス、記憶媒体(メモリカード等)の読み取り装置、位置取得部等の入力デバイス、そして表示装置や記憶媒体の書き込み装置、スピーカ等の出力デバイスが適宜接続される。
 CCU14は、ネットワークを介して他のコンピュータとの通信を行う。CCU14は、単一の装置であっても良いし、複数の通信制御部を有する構成であっても良い。本実施形態1のCCU14は、複数の通信制御部141,142,143・・・を有し、それぞれに固有のIPアドレスが割り当てられている。本実施形態1では、アクセスを管理する対象の各コンテンツサーバ2のアドレスを複数の通信制御部141,142,143・・・のそれぞれに割り当てている。
 記憶部12は、ハードディスクやSSDといった補助記憶装置であり、オペレーティングシステム(OS)やアプリケーションソフトウェア(アクセス管理プログラム等)を記憶する。また、記憶部12は、アクセスしたユーザ端末に係るデータや、第一のレスポンス及び第二のレスポンスを生成するためのデータを記憶している。また、記憶部12は、アクセス管理装置1が通信に用いるデータを対応付けて記憶したデータテーブルを格納している。
 演算処理部11は、前記OSやアプリケーションソフトウェアを記憶部12から適宜読み出して実行し、入出力部13やCCU14から入力された情報、及び記憶部12から読み出した情報を演算処理することにより、閲覧要求受信部111や、第一応答生成部112、コンテンツ取得部113、第二応答生成部114、応答送信部115としても機能する。
 図3は、本実施形態1におけるアクセス管理装置1の機能ブロック図である。
 閲覧要求受信部111は、ユーザ端末3から送信されたコンテンツの閲覧要求(リクエスト)をネットワーク及びCCU14を介して受信する。
 コンテンツ取得部113は、ユーザ端末3から受信した閲覧要求をコンテンツサーバ2へ送信し、当該閲覧要求に対応するコンテンツを前記コンテンツサーバから取得する。
 第一応答生成部112は、ユーザ端末3からのリクエストに対する第一のレスポンスとして、所定の表示データや、ユーザ端末3に通信経路を確立させて当該通信経路を介した通信に用いる識別情報を設定させるための設定用プログラム(以下、設定用スクリプトとも称す)、及びコンテンツを表示させるための表示用プログラム(以下、表示用スクリプトとも称す)を生成する。所定の表示データは、例えばリクエストされたURLにて特定されるHTMLファイルや画像ファイル等であり、具体的には広告や、関連店舗の一覧、イベントの情報、地図、スピナーなどを表示するウェブページが挙げられる。なお、アクセス管理装置1が、コンテンツのURL或いはURLに含まれるドメイン名やパラメータ等の文字列と表示データとの対応関係を記憶したデータテーブルを備え、ユーザ端末3からリクエストを受信した際に、第一応答生成部112が当該データテーブルを参照してリクエストされたURLと対応する表示データを第一のレスポンスの少なくとも一部としてユーザ端末3へ送信しても良い。また、アクセス管理装置1が、一つ以上の表示データを予め備え、ユーザ端末3からリクエストを受信した際に、第一応答生成部112が当該リクエストされたURLに関わりなく表示データを選択し、第一のレスポンスの少なくとも一部としてユーザ端末3へ送信しても良い。第一のレスポンスの表示データとして、「お待ち下さい」といった文言や、読込中であることを示すスピナー等の画像を表示させることで、「処理が正常に進行している」という安心感をユーザに与えることができる。また、表示データとして、サイトのロゴマークやサイドバー、メニューバーといった、共通部分を第1応答として表示させることで、ユーザにコンテンツが表示され始めたと認識させることができる。また、第一のレスポンスの表示データとして、ユーザが得たい可能性が高い、または、ユーザに最低限見せたい情報を与えることで、ユーザの期待感を高め、コンテンツが表示されるまでにユーザが閲覧を諦めて他のサイトへ移ってしまうことを防止することができる。
 第二応答生成部114は、第一のレスポンスの送信後、ユーザ端末3へ送信する第二のレスポンスを生成する。
 応答送信部115は、コンテンツ取得部113で取得したコンテンツや、第一応答生成部112で生成した第一のレスポンス、第二応答生成部114で生成した第二のレスポンスをユーザ端末3へ送信する。本実施形態では、第一のレスポンスを生成する第一応答生成部112と第一のレスポンスを送信する応答送信部115が第一応答部として機能し、第二のレスポンスを生成する第二応答生成部114と第二のレスポンスを送信する応答送信部115が第二応答部として機能する。なお、応答送信部115は、第二のレスポンスを送信する場合、第一のレスポンスを送信する通信経路とは異なる前記設定用スクリプトによって設定した通信経路を介して送信する。例えば、ユーザ端末3とアクセス管理装置1とのHTTPコネクションを介してリクエストを受信した場合に、このリクエストに対する応答として第一のレスポンスを当該HTTPコネクションを介して送信し、第二のレスポンスを設定用スクリプトで設定したウェブソケットを介して送信する。
 コンテンツサーバ2は、図1に示すように、本体内にCPU(central processing unit)やメインメモリ等よりなる演算処理部21、演算処理の為のデータやソフトウェアを記憶した記憶部22、入出力部23、通信制御ユニット(CCU:Communication Control Unit)24等を備えたコンピュータである。なお、図1においては、便宜上一つのコンテンツサーバ2について演算処理部21、記憶部22、入出力部23、及びCCU24の構成を示したが、他のコンテンツサーバ2についても基本的な構成は同じである。
 該入出力部23には、所謂コンソールといった入出力手段が適宜接続される。入出力手段としては、キーボードやポインティングデバイス、記憶媒体(メモリカード等)の読み取り装置、位置取得部等の入力デバイス、そして表示装置や記憶媒体の書き込み装置、スピーカ等の出力デバイスが適宜接続される。
 CCU24は、ネットワークを介して他のコンピュータとの通信、例えばユーザ端末3からのリクエストの受信やユーザ端末3へのコンテンツの送信を行う。記憶部22は、ハードディスクやSSDといった補助記憶装置であり、オペレーティングシステム(OS)やアプリケーションソフトウェア(ウェブサーバソフトウェア等)を記憶する。また、記憶部12は、ユーザ端末3へ提供するコンテンツや、各ユーザの認証情報(ID,パスワード)等のデータを記憶している。
 演算処理部21は、前記OSやアプリケーションソフトウェアを記憶部12から適宜読み出して実行し、入出力部23やCCU24から入力された情報、及び記憶部12から読み出した情報を演算処理することにより、ユーザ端末3からのリクエストに応じてコンテンツを提供するウェブサーバとしての機能を実行する。演算処理部21は、例えば、ユーザ端末3からリクエストされたURLにて特定されるHTMLファイルや画像ファイル等をHTTPコネクションを介してユーザ端末3に送信する。
 また、ユーザ端末3は、図1に示すように、本体内にCPU(central processing unit)やメインメモリ等よりなる演算処理部31、演算処理の為のデータやソフトウェアを記憶した記憶部32、入出力部33、通信制御ユニット(CCU:Communication Control Unit)34等を備えたコンピュータである。なお、図1においては、便宜上一つのユーザ端末3について演算処理部31、記憶部32、入出力部33、及びCCU34の構成を示したが、他のユーザ端末3についても基本的な構成は同じである。ユーザ端末3は、例えば、パーソナルコンピュータ(PC)、携帯電話、スマートフォン、携帯ゲーム機、タブレット端末など、コンテンツサーバ2にアクセスしてコンテンツを取得可能な装置であれば良い。
 CCU34は、ネットワークを介して他のコンピュータとの通信、例えばコンテンツサーバ2へのリクエストの送信やコンテンツサーバ2からのコンテンツの受信を行う。記憶部32は、ハードディスクやSSDといった補助記憶装置であり、オペレーティングシステム(OS)やアプリケーションソフトウェア(ウェブクライアントソフトウェア等)を記憶する。
 演算処理部31は、前記OSやウェブクライアントソフトウェア(ウェブブラウザ)等のアプリケーションソフトウェアを記憶部32から適宜読み出して実行し、入出力部33やCCU34から入力された情報、及び記憶部32から読み出した情報を演算処理することにより、コンテンツサーバ2にアクセスしてコンテンツを取得する。
 《アクセス管理方法》
 図4は、本実施形態1のアクセス管理装置1がアクセス管理プログラムに基づいて実行するアクセス管理方法の説明図である。
 まず、事前の準備として、ユーザ端末3がコンテンツサーバ2にアクセスする際のアドレスをアクセス管理装置1のCCU14に設定する。例えば、コンテンツサーバ2のドメイン名が、「○×○×.com」である場合、このドメイン名に対するグローバルIPアドレスをDNS(Domain Name System)に登録し、このグローバルIPアドレスをCCU14に割り当てる。そして、このドメイン名又はIPアドレスとコンテンツサーバ2の実際のIPアドレスとを対応つけてアクセス管理装置1が、記憶部12のホスト名対応テーブル54(図8)に記憶する。これにより、ユーザがユーザ端末3を操作してドメイン名「○×○×.com」へのアクセスを指示した場合、DNSの名前解決によりユーザ端末3がCCU14に割り当てられたアドレス宛てにリクエストを送信し、当該リクエストを受信したアクセス管理装置1は、記憶部12を参照して、このドメイン名又はIPアドレスと対応するコンテンツサーバ2へリクエストを転送する。当該リクエストに対するコンテンツをコンテンツサーバ2から取得したアクセス管理装置1は、取得したコンテンツを要求元のユーザ端末3に送信する。
 上述のようにアクセス管理装置1が、ユーザ端末3からコンテンツサーバ2へのアクセスを中継する構成とし、アクセス管理装置1は、ユーザ端末3からレスポンスを受信した際、直ちに第一のレスポンスをユーザ端末3に返し、その後、コンテンツを取得して第二のレスポンスを送る。このアクセス管理方法を図4に基づいて以下に説明する。
 ユーザ端末3がコンテンツのリクエスト(閲覧要求)を送信すると(ステップS1)、アクセス管理装置1が、この閲覧要求を受信し、記憶部12からアクセス管理プログラムを読み出して実行し、図4の処理を開始する(ステップS2)。
 まず、アクセス管理装置1は、第一のレスポンスを生成し、ユーザ端末3へ送信する(ステップS3)。
 第一のレスポンスには、後述のようにアクセス管理装置側からのプッシュ送信が可能な通信経路を設定する設定用スクリプトが含まれており、第一のレスポンスを受信したユーザ端末3は、このスクリプトを実行して、コンテンツをリクエストしたHTTP接続とは別にアクセス管理装置1との通信経路を確立する。本実施形態では、ウェブソケット(WebSocket)を採用し、アクセス管理装置1と通信するためのソケットを設定して、アクセス管理装置側から当該ソケット宛てに送られたデータを受信可能とする(ステップS4)。
 アクセス管理装置1は、ユーザ端末3からのリクエストに基づいてコンテンツサーバ2へコンテンツを要求する(ステップS5)。
 コンテンツサーバ2は、リクエストを受信すると(ステップS6)、当該リクエストのURLによって特定されるコンテンツを読み出してアクセス管理装置1へ送信する(ステップS7)。
 アクセス管理装置1は、コンテンツサーバ2からコンテンツを受信した場合(ステップS8)、ユーザ端末3に設定したソケットに対し、第二のレスポンスをプッシュ送信し(ステップS9)、ユーザ端末3にコンテンツを表示させて(ステップS10)、処理を終了する。
 次に、アクセス管理装置1側からユーザ端末3へのプッシュ送信が可能な通信経路を設定し、第二のレスポンスをプッシュ送信する手順について説明する。
 図5は、第一のレスポンスとしての第一応答ページの一例を示す図、図6は、第一のレスポンスが有する設定用スクリプト及び表示用スクリプトの説明図、図7は、アクセス管理装置からユーザ端末への通信経路を確立して第二のレスポンスを送信する処理の説明図、図8は、アクセス管理装置1が通信に用いるデータのデータテーブルを例示する図である。
 図5に示すように、第一のレスポンスの第一応答ページ(表示データ)は、<head>タグから</head>タグまでのヘッダ部61や、<body>タグから</body>タグまでのボディ部62を有し、ヘッダ部61は設定用スクリプト及び表示用スクリプト(以下、第一応答スクリプトとも称す)を取得して実行する命令63を有している。なお、図5の例では、便宜上、本実施形態の説明に用いる記述を抜粋して示しており、図5の記述に限定するものではない。第一のレスポンスをユーザ端末3に送信すると、ユーザ端末3は、命令63に基づき第一応答スクリプトをアクセス管理装置1から取得して実行する。
 第一応答スクリプトは、図6に示すように、アクセス管理装置側からのプッシュ送信を可能とする通信経路を確立する命令、例えばアクセス管理装置1との間でウェブソケットによって通信するためのソケットを設定する命令41を有している。
 また、第一応答スクリプトは、通信経路が確立された時に、第一のレスポンスで通知されたトランザクションIDをアクセス管理装置1へ返信する命令42や、コンテンツを表示させる処理を第二のレスポンスの受信を待って実行させる命令43、アクセス管理装置1との通信を開始させる命令44を有している。なお、図6の例では、命令41,42,44が設定用スクリプトに相当し、命令43及び命令43によって実行されるプログラムが表示用スクリプトに相当する。
 図7に示すように、ユーザ端末3から要求(リクエスト)を受信すると、アクセス管理装置1は、当該リクエストに基づいてコンテンツを取得して提供する一連の処理(以下、トランザクションとも称する)を識別するためのトランザクションIDを生成し、トランザクションテーブル51の一レコードとして記憶する。トランザクションテーブル51は、記憶部12に格納され、当該トランザクションIDと、要求ホスト名、要求パス、要求パラメータ、HTTPメソッドを対応付けて記憶するデータテーブルである。ここで要求ホスト名、要求パス、要求パラメータは、リクエストに含まれるURLから抽出した情報であり、HTTPメソッドは、リクエストで指定されたGET、POST、PUT、HEADなど、HTTPを用いて情報の送信又は取得を行う際の手法を示すものである。
 また、アクセス管理装置1は、ユーザ端末3から要求(リクエスト)を受信すると、要求元のユーザ端末3に第一のレスポンスを送信する(ステップS3)。なお、アクセス管理装置1は、この第一のレスポンスにトランザクションIDを含めて送信する。
 第一のレスポンスを受信したユーザ端末3は、図5に示すウェブページの命令33に従い、図6に示す設定用スクリプトを取得して実行し、命令41に基づいてアクセス管理装置1へ通信経路の設定を要求する。本実施形態では、アクセス管理装置1側からプッシュ送信可能な通信規格としてウェブソケットを採用し、ユーザ端末3は、ウェブソケットによる通信を行うソケットを設定し、接続を確立するために下記のハンドシェイク要求をアクセス管理装置1へ送信する。
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
 これに対し、アクセス管理装置1は、ユーザ端末3へ下記のハンドシェイク応答を返して接続を確立する(ステップS4)。
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: chat
 接続が確立した場合、ユーザ端末3は、図6に示す命令42に従い第一のレスポンスから取得したトランザクションIDをアクセス管理装置1へ送信する。これによりユーザ端末3は、コンテンツを取得するHTTP接続とは別に、TCPによる接続(通信経路)を設定し、この接続のソケット(ポート)を介して、コンテンツのリクエストやレスポンスと関係なくアクセス管理装置1からの情報を受信できる。このソケットを介した通信は、HTTP接続ではないので、ユーザ端末3からリクエストすることなく、アクセス管理装置1側から情報をプッシュ送信できる。即ちユーザ端末3は、リクエストせずに第二のレスポンスを受信可能にする。
 アクセス管理装置1は、確立した接続のソケットを識別するための識別情報(ソケットID)を生成し、ユーザテーブル52の一レコードとして記憶する。ユーザテーブル52は、記憶部12に格納され、当該トランザクションのトランザクションIDと、ソケットID、ユーザ端末3或いはユーザ端末3のユーザを識別するためのユーザIDとを対応つけて記憶するデータテーブルである。更に、アクセス管理装置1は、ソケットIDとソケットオブジェクトとを対応付けて、ソケットテーブル53の一レコードとして記憶する。ソケットテーブル53は、記憶部12に格納され、ソケットIDとソケットオブジェクトとを対応付けて記憶したデータテーブルである。
 また、アクセス管理装置1は、トランザクションIDをキーにトランザクションテーブルを検索して要求ホスト名を求め、要求ホスト名をキーにホスト名対応テーブル54を検索して対応する実ホスト名を求め、当該実ホスト名に要求パス、要求パラメータを加えて、コンテンツサーバ2宛てのURLを生成してコンテンツの要求を行う。
 そして、アクセス管理装置1は、図4に示すステップS70でコンテンツを取得した場合、トランザクションIDをキーにユーザテーブル52を検索して対応するソケットIDを求め、当該ソケットIDをキーにソケットテーブル53を検索して対応するソケットオブジェクトを求め、当該ソケットオブジェクトを用いて第二のレスポンスをユーザ端末3へプッシュ送信する。
 なお、図7の例では、第一のレスポンスを送信した後に、通信経路を確立する例を示したが、これに限らず、図9に示すように、アクセス管理装置1は、ユーザ端末3からのリクエストに対するレスポンスで設定用プログラムを送信してユーザ端末3との通信経路を確立し、この確立した通信経路を介して第一のレスポンスをユーザ端末3へプッシュ送信しても良い。
 図10は、第二のレスポンスを受信した際にユーザ端末3が実行する表示用スクリプトの説明図、図11は、第二のレスポンスに含まれるコンテンツの例を示す図、図12は、図10の処理を行った後の第一応答ページのソースを示す図である。
 ユーザ端末3は、第二のレスポンスを受信した場合に、図6に示す命令43により、startSecondResponseRoutin()の記述43Aを実行し、図10に示す処理を開始する。
 先ずユーザ端末3は、第二のレスポンスで受信したコンテンツに、所定形式のデータを読み込む命令があるか否かを判定する。図10の例では、CSSの読み込み命令があるか否かを判定する(ステップS120)。CSSの読み込み命令があると判定した場合(ステップS120,Yes)、このCSSの読み込み命令をコンテンツから抽出し、CSSの読み込みを実行する(ステップS130)。
 図11中、命令45がCSSの読み込み命令である。例えば、ユーザ端末3は、コンテンツから拡張子が[.CSS]である記述を含むLinkタグをCSSの読み込み命令として抽出し、リンク先のCSSファイルを所定の記憶領域に読み込む。
 CSSファイルの読み込み後、或いはステップS120でCSSの読み込み命令が含まれていないと判定した場合(ステップS120,No)、更に所定形式のデータを読み込む命令があるか否かを判定する。図10の例では、JavaScriptの読み込み命令があるか否かを判定する(ステップS140)。JavaScriptの読み込み命令があると判定した場合(ステップS140,Yes)、このJavaScriptの読み込み命令をコンテンツから抽出し、JavaScriptの読み込みを実行する(ステップS150)。
 図11中、命令46がJavaScriptの読み込み命令である。例えば、ユーザ端末3は、コンテンツから拡張子が[.JS]である記述を含むLinkタグをJavaScriptの読み込み命令として抽出し、リンク先のJavaScriptファイルを所定の記憶領域に読み込んで実行する。
 次に、ユーザ端末3は、第二のレスポンスに含まれるコンテンツの<head>タグと</head>タグとに挟まれたヘッダ部71の記述を読み出し、図5に示す第一応答ページの<head>タグと</head>タグとの間のヘッダ部61に追加し、図12のように変更する(ステップS160)。
 また、ユーザ端末3は、図6に示す命令43のgetElementByID('main').add(contents)の記述43Bにより、第二のレスポンスに含まれるコンテンツの<body>タグと</body>タグとに挟まれたボディ部72の記述を読み出し、図5に示す第一応答ページの<div id="main">タグと</div>タグとの間の第二応答格納部64に追加する。また、<div id="wait">タグに非表示とする記述66を追加して<div id="wait" style="display: none; ">タグと</div>タグとの間の第一閲覧者用コンテンツを非表示とし(ステップS160)、図12のように変更して図10の処理を終了する。
 図10の処理により、第一応答ページにコンテンツを挿入し図12のように変更することでユーザ端末3は、ウェブブラウザの機能によりコンテンツを表示させる。
 図13は、第二のレスポンスを受信する前の第一応答ページの表示状態を示す図である。図13の第一応答ページでは、図5の<div id="wait">タグと</div>タグとの間に記述された第一応答閲覧者用コンテンツ、例えば「まもなく表示します」といったメッセージを表示する。なお、このメッセージに代えて広告や、関連店舗の一覧、イベントの情報、地図、スピナーなどを表示しても良い。また、サイトのロゴマークやサイドバー、メニューバーといった共通部分を表示させても良い。また、新製品のキャンペーンサイトであれば、新製品の概要と発売日といったユーザが得たい可能性が高い情報、或いは、ユーザーに最低限見せたい情報を表示させても良い。
 そして、図14は、第一応答ページを表示用スクリプトによって変更してコンテンツを表示させた状態を示す図である。図14に示すように、変更後の第一応答ページは、第一応答閲覧者用コンテンツを非表示とし、<div id="main">タグと</div>タグとの間の第二応答格納部64に挿入されたコンテンツを表示する。
 なお、本実施形態のアクセス管理装置1は、第二のレスポンスをプッシュ送信する構成であるので、ユーザ端末3からのリクエストと非同期に第二のレスポンスを送信できる。即ち、アクセス管理装置1は、第二のレスポンスを一度に限らず、複数回送信しても良い。例えば、リクエストされたコンテンツの一部を第二のレスポンスとして送信した後、コンテンツの残りの部分を次の第二のレスポンスで送信する構成としても良い。また、アクセス管理装置1は、随時更新されるコンテンツの場合、更新される毎に第二のレスポンスとして更新部分のデータを送信しても良い。
 以上のように、本実施形態では、ユーザ端末3からのリクエストに対して第一のレスポンスを送信し、その後、第二のレスポンスをプッシュ送信してコンテンツを表示させる構成としたことにより、アクセス管理装置1及びコンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。例えばアクセス管理装置1は、ユーザ端末3からのリクエストに対するレスポンスとして第一のレスポンスをHTTPコネクションを介して送信し、第二のレスポンスをウェブソケットを介してプッシュ送信する構成としたことにより、コンテンツの取得に時間がかかる場合でも、第一のレスポンス送信後はHTTPコネクションを維持する必要がなく、リソースの浪費を防ぐことができる。また、第二のレスポンスによってコンテンツを表示させる前に、第一のレスポンスにより、広告や店舗一覧、イベント情報、店舗地図など所定の表示データをユーザ端末3に表示させることができるので、コンテンツを取得するまでに時間がかかるような場合でも、第一のレスポンスがアクセス管理装置1から直ちにユーザ端末3へ送信されるので、ユーザの満足度の低下が抑えられる。また、新製品のキャンペーンサイトであれば、新製品の概要と発売日といったユーザが得たい可能性が高い情報、或いは、ユーザーに最低限見せたい情報を第1応答に表示することで、ユーザーの期待感を高めて離脱(閲覧を諦めてしまうこと)を防ぐこともできる。
 なお、本実施形態では、ユーザ端末3からリクエストを受けたコンテンツを当該リクエストに対するレスポンスとは別の通信経路を介して送信しているため、コンテンツにCSSやJavaScriptの読み込み命令が含まれていても、この読み込みが実行されない。このため、本実施形態のアクセス管理装置1は、図10に示すステップS130,S150で明示的に読み込みを実行することで、CSSやJavaScriptをコンテンツに反映させることができる。
 更に、従来、コンテンツを取得するまでに時間がかかる場合にリクエストを待機させるようにアクセスを管理するためには、コンテンツサーバに変更を加えて、リクエストを待機させる構成を導入しなければなかなかったが、本実施形態1では、コンテンツサーバ2と別に、アクセス管理装置1にアクセスを管理する構成を備えたので、コンテンツサーバ2に変更を加える必要がなくコンテンツサーバ2の運営者としては導入が容易である。特に、複数のコンテンツサーバ2へのアクセスを管理する場合でも、一つのアクセス管理装置で管理することができ、各コンテンツサーバ2に変更を加える必要が無く、システム全体としての構成を簡素化できる。例えば、コンテンツサーバが増えても、アクセス管理装置を追加する必要がなく、コンテンツサーバのIPアドレスと第1応答のコンテンツをアクセス管理装置に登録するだけでよい。
 〈変形例1-1〉
 上述の実施形態1では、ユーザ端末が、第二のレスポンスとして受信したコンテンツを第一応答ページに挿入することで当該コンテンツを表示したが、これに限らず、ユーザ端末が第一応答ページをリロードすることで、コンテンツを表示する構成としても良い。なお、その他の構成は、同じである。
 例えば、アクセス管理装置1が、図4に示すステップS8でコンテンツを取得した後、ステップS9で当該コンテンツを含めずに第二のレスポンスをユーザ端末3にプッシュ送信し、コンテンツの取得が可能になったこと(アクセスの許可)を通知する。
 そして、ユーザ端末3は、図6の命令43に基づき、第二のレスポンスの受信を契機に第一応答ページのリロードを実行する。
 このリロードによりユーザ端末3がアクセス管理装置1へコンテンツのリクエストを行い、アクセス管理装置1は、このリクエストに対してステップS8(図4)で取得したコンテンツを提供する。
 このように本変形例1-1によれば、第一のレスポンスをユーザ端末3に送信した後、アクセスを許可する際にアクセス管理装置1からユーザ端末へ第二のレスポンスをプッシュ送信することにより、ユーザ端末3がリロードを繰り返す必要が無く、アクセス管理装置1及びコンテンツサーバ2の負荷が抑えられる。また、コンテンツサーバ2からコンテンツが提供された際、アクセス可能になったことをアクセス管理装置1側からプッシュ送信することにより、従来のポーリングと比べてコンテンツが提供可能となってからユーザ端末3が取得するまでの遅延が無く、コンテンツを速やかに閲覧できる。
 〈変形例1-2〉
 図15は、変形例1-2のアクセス管理装置1が実行するアクセス管理方法の説明図である。本変形例1-2では、アクセス管理装置1が、リクエストを受信し、図15の処理を開始した場合に(ステップS2)、当該リクエストが検索エンジンのデータ収集か否かを判定する(ステップS2A)。例えば、リクエスト中のユーザエージェントヘッダに検索エンジンの名称やURL等の検索エンジンのデータ収集を示す特定の文字列が含まれているか否かによって判定する。
 当該リクエストが検索エンジンのデータ収集でなかった場合には(ステップS2A,No)、前述の実施形態1又は変形例1-1と同様に、第一のレスポンスをユーザ端末3へ送信し(ステップS3)、ユーザ端末3との通信経路を確立し(ステップ4)、コンテンツを取得する(ステップS5~S8)。
 一方、ステップS2で当該リクエストがボットやクローラー、スパイダー等と呼ばれるプログラムによる検索エンジンのデータ収集と判定した場合には(ステップS2A,Yes)、第一応答は行わずに、コンテンツを取得する(ステップS5~S8)。
 コンテンツの取得後、アクセス管理装置1は、前記レスポンスが検索エンジンのデータ収集の場合(ステップS8A,Yes)、取得したコンテンツを当該リクエストのレスポンスとしてHTTPコネクションを介してユーザ端末3(検索ボット)へ送信する(ステップS8B)。
 ここで当該リクエストが検索エンジンのデータ収集で無い場合(ステップS8A,No)、前述の実施形態1又は変形例1-1と同様に、第二のレスポンスをユーザ端末3へ送信してコンテンツを提供する(ステップS9~S10)。
 このように本変形例1-2のアクセス管理装置1は、検索エンジンのデータ収集に対して、可及的速やかにコンテンツを提供する。
 検索エンジンのデータ収集が行われた際に、第一応答ページを返したとすると、収集したページの内容が「まもなく表示します」といった所定の表示データとなってしまい適切ではない。このため、本変形例1-2のアクセス管理装置1は、検索エンジンのデータ収集と判定した場合には、第一応答せずにコンテンツを提供する。
 従って、本変形例1-2によれば、検索エンジンのデータ収集に対して適切にコンテンツを提供できる。
〈実施形態2〉
 次に実施形態2に係るアクセス管理システム10について説明する。本実施形態2のアクセス管理システム10は、前述の実施形態1のアクセス管理システム10と比べて、アクセス管理装置1がコンテンツサーバ2の負荷状態に基づいて負荷が高い場合にはコンテンツサーバ2へのアクセスを制限する構成が異なる。その他の構成は、実施形態1とほぼ同じであるため、同一の要素に同符号を付すなどして、一部の説明を省略する。例えば、本実施形態2におけるアクセス管理システム10の基本的な構成は、前述の図1と同じである。
 本実施形態2のコンテンツ取得部113は、コンテンツサーバ2へ閲覧要求を送信してからコンテンツを受信するまでの時間(応答時間)が、所定時間以上となった場合に、コンテンツサーバ2の負荷が高く、アクセス不可(否)と判定する判定部としても機能する。また、コンテンツ取得部113は、所定時間以内にコンテンツが得られた場合にコンテンツサーバ2の負荷が正常でアクセス可と判定する。
 第一応答生成部112は、判定の結果、アクセス不可であった場合に、前記ユーザ端末3からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ、例えばHTMLで記述されたウェブページや、ユーザ端末3に通信経路を確立させて当該通信経路を介した通信に用いる識別情報を設定させるための設定用プログラム(以下、設定用スクリプトとも称す)、及びコンテンツを表示させるための表示用プログラム(以下、表示用スクリプトとも称す)を生成する。
 第二応答生成部114は、第一のレスポンスの送信後、アクセス可となった場合に、ユーザ端末3へ送信する第二のレスポンスを生成する。
 応答送信部115は、コンテンツ取得部113で取得したコンテンツや、第一応答生成部112で生成した第一のレスポンス、第二応答生成部114で生成した第二のレスポンスをユーザ端末3へ送信する。本実施形態では、第一のレスポンスを生成する第一応答生成部112と第一のレスポンスを送信する応答送信部115が第一応答部として機能し、第二のレスポンスを生成する第二応答生成部114と第二のレスポンスを送信する応答送信部115が第二応答部として機能する。
 《アクセス管理方法》
 図16は、本実施形態1のアクセス管理装置1がアクセス管理プログラムに基づいて実行するアクセス管理方法の説明図である。
 ユーザ端末3からコンテンツの閲覧要求が送信され(ステップS12)、この閲覧要求を受信すると、アクセス管理装置1は、記憶部12からアクセス管理プログラムを読み出して実行し、図16の処理を開始する(ステップS14)。
 まず、アクセス管理装置1は、受信した閲覧要求のドメイン名又はIPアドレスと対応するコンテンツサーバ2のアドレスをホスト名対応テーブルから求め、当該コンテンツサーバ2へ閲覧要求(リクエスト)を送信(ステップS16)する。コンテンツサーバ2は、受信したリクエストのURLによって特定されるコンテンツを記憶部22から読み出し、前記リクエストに対するレスポンスとして送信する(ステップS18)。通常、リクエストに対するレスポンスは、直ちに行われるが、アクセスの集中などによりコンテンツサーバ2の負荷が高くなっている場合、遅延することもある。このため、アクセス管理サーバ1は、所定時間以内にレスポンスがあったか否かによってコンテンツサーバ2がビジーであるか否かを判定する(ステップS20)。なお、コンテンツサーバ2の負荷状態の確認は、リクエストに対する応答時間に限らず、コンテンツサーバ2からCPUの使用率やメモリの使用率、スレッド数など、リソースの状態を示す値を取得し、この負荷を示す値が所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定しても良い。また、他のスレッドや他のコンピュータ19で図16の処理を並列に実行する場合には、並列して同一のコンテンツサーバ2に対して要求する数が前記所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定しても良い。
 ステップS16の閲覧要求に対して、所定時間以内にレスポンスがあり、要求したコンテンツの提供が開始された場合には、コンテンツサーバ2の負荷は軽い、即ちビジーで無いと判断し(ステップS20,No)、コンテンツサーバ2から応答のあったコンテンツを前記リクエストに対するレスポンスとしてユーザ端末3とのHTTPコネクションを介して送信して処理を終了する(ステップS30)。
 一方、所定時間以内にレスポンスが無い場合には、コンテンツサーバ2の負荷が高く、ビジーであると判断し(ステップS20,Yes)、「まもなく表示します」といったメッセージを記載したウェブページ(第一応答ページ)を第一のレスポンスとしてユーザ端末3へ送信する(ステップS40)。
 第一のレスポンスには、前述のようにアクセス管理装置側からのプッシュ送信が可能な通信経路を設定する設定用スクリプトが含まれており、第一のレスポンスを受信したユーザ端末3は、このスクリプトを実行して、コンテンツをリクエストしたHTTP接続とは別にアクセス管理装置1との通信経路を確立する(ステップS45)。本実施形態では、ウェブソケット(WebSocket)を採用し、アクセス管理装置1と通信するためのソケットを設定して、アクセス管理装置側から当該ソケット宛てに送られたデータを受信可能とする。
 第一のレスポンス送信後、アクセス管理装置1は、コンテンツサーバ2からの応答の有無、即ちコンテンツの提供が開始されたか否かを判定し(ステップS50)、応答がなければ(ステップS50,No)応答があるまで待機する。
 コンテンツサーバ2から応答があった場合(ステップS50,Yes)、アクセス管理装置1は、コンテンツサーバ2から送られたコンテンツを受信する(ステップS70)。
 コンテンツを受信したアクセス管理装置1は、ユーザ端末3に設定したソケットに対し、第二のレスポンスをプッシュ送信して(ステップS80)ユーザ端末3にコンテンツを表示させ(ステップS83)、処理を終了する。
 なお、第二のレスポンスがウェブソケットを介してユーザ端末3に送られ、ユーザ端末3で表示される構成は、前述の実施形態1と同じである。
 以上のように、本実施形態では、コンテンツサーバ2の負荷に応じて、ユーザ端末3からのアクセスを待機させる旨の第一のレスポンスをユーザ端末3に送信した後、アクセスを許可する際にアクセス管理装置1からユーザ端末へ第二のレスポンスをプッシュ送信する構成としたことにより、アクセス管理装置1及びコンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。例えばアクセス管理装置1は、ユーザ端末3からのリクエストに対するレスポンスとして第一のレスポンスをHTTPコネクションを介して送信し、第二のレスポンスをウェブソケットを介してプッシュ送信する構成としたことにより、コンテンツの取得に時間がかかる場合でも、第一のレスポンス送信後はHTTPコネクションを維持する必要がなく、リソースの浪費を防ぐことができる。また、本実施形態2のアクセス管理装置1は、コンテンツサーバ2の負荷が高い場合、「まもなく表示します」といった第一応答ページを直ちに返すことができるので、コンテンツサーバ2からコンテンツを取得するまでに時間がかかるような場合でも、ユーザの満足度の低下が抑えられる。また、読込中であることを示すスピナー等の画像を表示させることで、「処理が正常に進行している」という安心感をユーザに与えることができる。更に、サイトのロゴマークやサイドバー、メニューバーといった、共通部分を第1応答として表示させることで、ユーザにコンテンツが表示され始めたと認識させることができる。
 なお、本実施形態では、ユーザ端末3からリクエストを受けたコンテンツを当該リクエストに対するレスポンスとは別の通信経路を介して送信しているため、コンテンツにCSSやJavaScriptの読み込み命令が含まれていても、この読み込みが実行されない。このため、本実施形態のアクセス管理装置1は、図10に示すステップS130,S150で明示的に読み込みを実行することで、CSSやJavaScriptをコンテンツに反映させることができる。
 更に、従来、コンテンツサーバ2の負荷が高い場合にリクエストを待機させるようにアクセスを管理するためには、コンテンツサーバに変更を加えて、リクエストを待機させる構成を設けなければならず導入が困難であった。本実施形態2では、コンテンツサーバ2と別に、アクセス管理装置1がアクセスを管理する構成を備えたので、コンテンツサーバ2に変更を加える必要がなくコンテンツサーバ2の運営者としては導入が容易である。特に、一つのアクセス管理装置で複数のコンテンツサーバ2へのアクセスを管理する構成とした場合、一つのアクセス管理装置にアクセスを管理する構成を導入することで、複数のコンテンツサーバ2に変更を加える必要が無くなり、システム全体としての構成を簡素化できる。例えば、コンテンツサーバが増えても、アクセス管理装置を追加する必要がなく、コンテンツサーバのIPアドレスと第1応答のコンテンツをアクセス管理装置に登録するだけでよい。
 〈変形例2-1〉
 上述の実施形態1では、ユーザ端末が、第二のレスポンスとして受信したコンテンツを第一応答ページに挿入することで当該コンテンツを表示したが、これに限らず、ユーザ端末が第一応答ページをリロードすることで、コンテンツを表示する構成としても良い。なお、その他の構成は、同じである。
 例えば、アクセス管理装置1が、図16に示すステップS70でコンテンツを取得した後、ステップS80で当該コンテンツを含めずに第二のレスポンスをユーザ端末3にプッシュ送信し、コンテンツの取得が可能になったこと(アクセスの許可)を通知する。
 そして、ユーザ端末3は、図6の命令43に基づき、第二のレスポンスの受信を契機に第一応答ページのリロードを実行する。
 このリロードによりユーザ端末3がアクセス管理装置1へコンテンツのリクエストを行い、アクセス管理装置1は、このリクエストに対してステップS70(図16)で取得したコンテンツを提供する。
 このように本変形例1-1によれば、コンテンツサーバ2の負荷が高く、ユーザ端末3からのアクセスを待機させる旨の第一のレスポンスをユーザ端末3に送信した後、アクセスを許可する際にアクセス管理装置1からユーザ端末へ第二のレスポンスをプッシュ送信することにより、ユーザ端末3がリロードを繰り返す必要が無く、アクセス管理装置1及びコンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。
 〈変形例2-2〉
 上述の変形例2-1では、ユーザ端末3が第二のレスポンスを受信したのち、アクセス管理装置1に再度リクエストを行う構成としたが、これに限らず、本変形例2-2では、ユーザ端末3が第二のレスポンスを受信したのち、コンテンツサーバ2にリクエストを行う構成とした。なお、その他の構成は同じである。
 図17は、本変形例2-2のアクセス管理装置1が実行するアクセス管理方法の説明図である。図17に示すように、アクセス管理装置1がユーザ端末3からリクエストを受けて、コンテンツサーバ2の負荷が低ければコンテンツを取得してユーザ端末3に返し、コンテンツサーバ2の負荷が高ければ第一のレスポンスをユーザ端末3に送信して待機させる処理(ステップS10-S45)は、前述の図16と同じである。
 本変形例2-2のアクセス管理装置1は、第一のレスポンスの後、ユーザ端末3のアクセスを許可した場合でもコンテンツをユーザ端末3へ送信しないので、コンテンツの再要求をせずに負荷状態を問い合わせ(ステップS47)、コンテンツサーバ2が、この問い合わせに対して負荷状態を返信することで(ステップS48)、コンテンツサーバ2の負荷状態を確認する。この負荷が高ければアクセス不可と判定し、負荷が低ければアクセスを許可する。例えば、コンテンツのヘッダや、その他の情報を要求した際の応答時間が所定値よりも長ければアクセス不可と判定し、所定値以下であればアクセス可と判定する。また、コンテンツサーバ2からCPUの使用率やメモリの使用率、スレッド数など、リソースの状態を示す値を取得し、この負荷を示す値が所定値より高ければアクセス不可と判定し、所定値以下であればアクセス可と判定しても良い。
 アクセス不可と判定した場合(ステップS55,No)、アクセス可となるまで、この処理(ステップS47,55)を繰り返す。
 そして、アクセス可と判定した場合に(ステップS55,Yes)、アクセス管理装置1は、第二のレスポンスを生成してユーザ端末3へ送信し(ステップS85)、処理を終了する。ここでアクセス管理装置1は、認証用トークンを生成し、第二のレスポンスに含める。この認証用トークンは、第二のレスポンスに含めてユーザ端末3に送信され、ユーザ端末3がコンテンツサーバ2へリクエストと共に送り、当該ユーザ端末3がアクセスを許可された端末か否かを検証するための情報である。従って、認証用トークンは、コンテンツサーバ2で検証可能な情報であれば良いが、セッションが継続している間や一度のアクセスのみなど、所定期間のみ有効なワンタイムパスワードであることが望ましい。なお、認証用トークンを生成するアルゴリズムは、特に限定されるものではなく、公知のアルゴリズムを用いて作成したもので良い。例えば、アクセス管理装置1がランダムに生成した認証用トークンをユーザ端末3とコンテンツサーバ2とに送り、コンテンツサーバ2がユーザ端末3から受信した認証用トークンとアクセス管理装置1から受信した認証用トークンとを比較し、一致したばあいに認証成功とし、一致しなければ認証失敗と判定しても良い。また、アクセス管理装置1が、時刻に基づいて認証用トークンを生成し、コンテンツサーバ2が、ユーザ端末3から受信した認証用トークンの正当性を時刻に基づいて検証する構成でも良い。
 また、アクセス管理装置1は、第二のレスポンスを生成する際、トランザクションIDをキーとしてトランザクションテーブル51を検索し、対応するHTTPメソッド、要求ホスト名、要求パス、要求パラメータを索出する。更に、アクセス管理装置1は、要求ホスト名をキーとしてホスト名対応テーブル54を検索し、対応するIPアドレス(実ホスト名)を求める。
 アクセス管理装置1は、これら認証用トークン、HTTPメソッド、IPアドレス(実ホスト名)、要求パス、要求パラメータを含む情報を第二のレスポンスとして生成し、ユーザ端末3へ送信する(ステップS85)。第二のレスポンスを受信したユーザ端末3は、表示用スクリプトに従ってコンテンツのリクエストを行い(ステップS90)、コンテンツサーバ2が当該リクエストに対するコンテンツ(レスポンス)をHTTPコネクションを介して送信し、ユーザ端末3に表示させる(ステップS94)。
 図18は、第二のレスポンスを受信した際にユーザ端末3が実行するリクエスト用スクリプトの説明図である。
 ユーザ端末3は、第二のレスポンスを受信した場合に、図6に示す命令43により、startSecondResponseRoutin()の記述43Aを実行し、図18に示す処理を開始する。なお、本変形例2-2では、図6に示す命令43のgetElementByID('main').add(contents)の記述43Bは省略して良い。
 図18の処理が開始されると、ユーザ端末3は、第二のレスポンスに含まれるHTTPメソッドを取得する(ステップS210)。また、ユーザ端末3は、第二のレスポンスから、コンテンツサーバ2のIPアドレス(実ホスト名)、要求パス、要求パラメータ、認証用トークンを読み出して所定の順に繋げ、URLを作成する(ステップS)220。なお、認証用トークンは、アクセス管理装置1が、第二のレスポンスを生成する際に要求パラメータに挿入しても良い。
 そして、ユーザ端末3は、ステップS220で生成したURLに対し、ステップS210で取得したメソッドにより要求を行う(ステップS230)。
 当該要求を受けたコンテンツサーバ2は、認証用トークンを検証し、正当な認証用トークンであれば要求に応じたコンテンツを提供する。
 以上のように、本変形例2-2によれば、コンテンツサーバ2の負荷が高く、ユーザ端末3からのアクセスを待機させる旨の第一のレスポンスをユーザ端末3に送信した後、アクセスを許可する際にアクセス管理装置1からユーザ端末へ第二のレスポンスをプッシュ送信することにより、ユーザ端末3がリロードを繰り返す必要が無く、コンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。また、本変形例2-2によれば、アクセスを許可した後、アクセス管理装置1がコンテンツを中継する必要が無いのでアクセス管理装置1の負荷が軽減できる。
 〈変形例2-3〉
 図19は、変形例2-3のアクセス管理装置1が実行するアクセス管理方法の説明図である。本変形例2-3では、アクセス管理装置1が、リクエストを受信し、コンテンツサーバ2へコンテンツ要求を行った場合に(ステップS10)、当該リクエストが検索エンジンのデータ収集か否かを判定する(ステップS15)。当該リクエストがボットやクローラー、スパイダー等と呼ばれるプログラムによる検索エンジンのデータ収集と判定した場合には(ステップS15,Yes)、コンテンツサーバ2の負荷に関わらず、コンテンツを取得して送信する(ステップS30)。
 このように本変形例2-3のアクセス管理装置1は、検索エンジンのデータ収集に対して、可及的速やかにコンテンツを提供する。
 検索エンジンのデータ収集が行われた際に、コンテンツサーバ2の負荷が高く第一応答ページを返したとすると、収集したページの内容が「まもなく表示します」といったメッセージとなってしまい適切ではない。このため、本変形例2-3のアクセス管理装置1は、検索エンジンのデータ収集と判定した場合には、コンテンツサーバ2の負荷状態に関わらず必ずコンテンツを提供する。
 従って、本変形例2-3によれば、検索エンジンのデータ収集に対して適切にコンテンツを提供できる。
〈実施形態3〉
 図20は、本実施形態3に係るアクセス管理システム10の一例を示す図である。本実施形態3のアクセス管理システム10は、ネットワークを介してユーザ端末(クライアント)3と接続するアクセス管理装置1、及び当該アクセス管理装置1とネットワークを介して接続するコンテンツサーバ2を有する。アクセス管理装置1は、ユーザ端末3からコンテンツサーバ2へのアクセスを中継し、コンテンツサーバ2の負荷状態に応じて当該アクセスの可否を管理する。
 例えば、コンテンツサーバ2の負荷が高く、ユーザ端末3からのアクセスを否とした場合、アクセス管理装置1は、アクセスが待機状態である旨を示すウェブページ(以下、第一応答ページとも称す)を第一のレスポンスとしてユーザ端末3に返し、この待機状態にあるユーザ端末3のリクエストを特定する情報(クライアント情報)をクライアントキュー120に登録する。
 このようにコンテンツサーバ2へのアクセスを制限しつつ、クライアントキュー120に登録したユーザ端末3へ順次第二のレスポンスを送信してコンテンツを提供する。
 このとき本実施形態3のアクセス管理装置1は、第二のレスポンスをユーザ端末3へプッシュ配信することにより、ユーザ端末3が第一応答ページのリロードを繰り返してアクセス管理装置1に頻繁にアクセスするといった問題や、ロングポーリングによってリソースを占有するといった問題を解消し、アクセス管理装置1やコンテンツサーバ2の負荷を増大させることなく、待機状態のユーザ端末3にコンテンツを提供できる。
 本実施形態3に係るアクセス管理装置1は、ハードウェア構成が、実施形態1の図2に示した構成と同じである。本実施形態3に係るアクセス管理装置1は、実施形態1のアクセス管理装置と比べ、アクセス管理プログラムに従って実行する機能が異なっている。なお、前述の実施形態1と同一の要素には、同符号を付すなどして、再度の説明を一部省略する。
 クライアントキュー120は、待機状態としたユーザ端末3のリクエストを特定する情報を順番に格納するキューであり、記憶部12或いはメインメモリに格納される。
 閲覧要求受信部111は、ユーザ端末3から送信されたコンテンツの閲覧要求(リクエスト)をネットワーク及びCCU14を介して受信する。
 コンテンツ取得部113Aは、ユーザ端末3から受信した閲覧要求をコンテンツサーバ2へ送信し、当該閲覧要求に対応するコンテンツを前記コンテンツサーバ2から取得する。本実施形態3のコンテンツ取得部113Aは、コンテンツサーバ2の負荷状態に基づいてアクセスの可否を判定する判定部としても機能する。
 コンテンツ取得部113Bは、クライアントキュー120から取得した情報に基づくリクエストをコンテンツサーバ2へ送信し、当該リクエストと対応するコンテンツを前記コンテンツサーバ2から取得する。
 第一応答生成部112は、コンテンツ取得部(判定部)113Aによる判定の結果、アクセス不可であった場合に、前記ユーザ端末3からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ、例えばHTMLで記述されたウェブページ(第一応答ページ)や、ユーザ端末3に通信経路を確立させて当該通信経路を介した通信に用いる識別情報を設定させるための設定用プログラム(以下、設定用スクリプトとも称す)、及びコンテンツを表示させるための表示用プログラム(以下、表示用スクリプトとも称す)を生成する。
 第二応答生成部114は、第一のレスポンスの送信後、アクセス可となった場合に、ユーザ端末3へ送信する第二のレスポンスを生成する。
 応答送信部115Aは、コンテンツ取得部113Aで取得したコンテンツや、第一応答生成部112で生成した第一のレスポンスをユーザ端末3へ送信する。本実施形態3では、第一のレスポンスを生成する第一応答生成部112と第一のレスポンスを送信する応答送信部115Aが第一応答部として機能する。
 応答送信部115Bは、コンテンツ取得部113Bで取得したコンテンツや、第二応答生成部114で生成した第二のレスポンスをユーザ端末3へ送信する。本実施形態3では、第二のレスポンスを生成する第二応答生成部114と第二のレスポンスを送信する応答送信部115が第二応答部として機能する。
 クライアント情報保存部116は、待機状態としたユーザ端末3からのリクエストを特定する情報(以下待ちクライアント情報とも称す)をクライアントキュー120に保存する。本実施形態3において、クライアントキュー120に保存する情報は、例えばトランザクションIDやソケットオブジェクトである。
 クライアント情報取得部117は、クライアントキュー120から、待ちクライアント情報を順次取得する。例えば、クライアントキュー120に保存されている待ちクライアント情報の中で、最も早く入れられた待ちクライアント情報から先に取得する(FIFO)。なお、クライアント情報の取得順は、FIFOに限らず、所定の順序で取得する構成としても良い。例えば、有料会員や優良顧客といったユーザ毎の優先度を示す情報をユーザIDと対応付けて記憶しておき、優先度の高いユーザのクライアント情報から順に取得する構成としても良い。
 本実施形態3において、閲覧要求受信部111、第一応答生成部112、コンテンツ取得部113A、応答送信部115A、クライアント情報保存部116は、ユーザリクエストコントローラ1Aを構成し、コンテンツ取得部113B、第二応答生成部114、コンテンツ取得部113B、クライアント情報取得部117は、ウェイティングキューコントローラ1Bを構成する。
 《アクセス管理方法》
 図21,図22は、本実施形態3のアクセス管理装置1がアクセス管理プログラムに基づいて実行するアクセス管理方法の説明図である。
 ユーザ端末3からコンテンツの閲覧要求が送信され、この閲覧要求を受信すると、アクセス管理装置1は、記憶部12からアクセス管理プログラムを読み出して実行し、図21の処理を開始する(ステップS310)。
 まず、アクセス管理装置1は、受信した閲覧要求のドメイン名又はIPアドレスと対応するコンテンツサーバ2のアドレスをホスト名対応テーブル54から求め、当該コンテンツサーバ2の負荷状態を確認し、ビジーか否かを判定する(ステップS320)。なお、コンテンツサーバ2の負荷状態の確認は、例えば、コンテンツのヘッダや、その他の情報を要求した際の応答時間が所定値よりも長ければビジーと判定し、所定値以下であればビジーで無いと判定する。また、コンテンツサーバ2からCPUの使用率やメモリの使用率、スレッド数など、リソースの状態を示す値を取得し、この負荷を示す値が所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定しても良い。また、他のスレッドや他のコンピュータ19で図21の処理を並列に実行する場合には、並列して同一のコンテンツサーバ2に対してリクエストする数が所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定しても良い。
 ステップS320にて、コンテンツサーバ2の負荷は軽い、即ちビジーで無いと判断した場合(ステップS320,No)、アクセス管理装置1は、当該コンテンツサーバ2へリクエストを送信し(ステップS330)、コンテンツサーバ2から応答のあったコンテンツを受信して(ステップS340)、ユーザ端末3へ送信して処理を終了する(ステップS350)。
 一方、ステップS320にて、コンテンツサーバ2の負荷が高く、ビジーであると判断した場合(ステップS320,Yes)、アクセス管理装置1は、「まもなく表示します」といったメッセージを記載したウェブページを第一のレスポンスとしてユーザ端末3へ送信し(ステップS360)、ユーザ端末3によるアクセスを待機状態とする。
 第一のレスポンスには、前述のようにアクセス管理装置1側からのプッシュ送信が可能な通信経路を設定する設定用スクリプトが含まれており、第一のレスポンスを受信したユーザ端末3は、このスクリプトを実行してアクセス管理装置1との通信経路を確立する。本実施形態3では、ウェブソケット(WebSocket)を採用し、アクセス管理装置1と通信するためのソケットを設定して、アクセス管理装置側から当該ソケット宛てに送られたデータを受信可能とする。
 ユーザ端末3からのアクセスを待機状態としたアクセス管理装置1は、当該アクセスに係るトランザクションIDと、ソケットオブジェクトを待ちクライアント情報としてクライアントキュー120に格納する(ステップS370)。
 クライアントキュー120に待ちクライアント情報を格納した場合、ウェイティングキューコントローラ1Bが停止しているか否かを判定し(ステップS380)、停止していなければ(ステップS380,No)、図21の処理を終了し、停止していれば(ステップS380,Yes)、ウェイティングキューコントローラ1Bを起動させて図22の処理を開始させ(ステップS390)、図21の処理を終了する。
 アクセス管理装置1は、図22の処理を開始すると、クライアントキュー120から待ちクライアント情報を取得し(ステップS410)、アクセス管理装置1は、取得した待ちクライアント情報のトランザクションIDをキーとしてトランザクションテーブル51を検索し、対応するHTTPメソッド、要求ホスト名、要求パス、要求パラメータを索出する。更に、アクセス管理装置1は、要求ホスト名をキーとしてホスト名対応テーブル54を検索し、対応するIPアドレス(実ホスト名)を求め、当該IPアドレスのコンテンツサーバ2がビジーか否かを判定する(ステップS415)。当該コンテンツサーバ2がビジーであった場合(ステップS415,Yes)、ステップS410に戻って次の待ちクライアント情報を取得し、ステップS415を繰り返し、ステップS415にてビジーで無いと判定した場合(ステップS415,No)、アクセス管理装置1は、当該コンテンツサーバ2のIPアドレス(実ホスト名)、要求パス、要求パラメータを所定の順に繋げてURLを作成し、当該URLに対し、前記HTTPメソッドによりコンテンツのリクエストを行う(ステップS420)。
 アクセス管理装置1は、前記リクエストに対するコンテンツをコンテンツサーバ2から受信し(ステップS430)、当該コンテンツを含めた第二のレスポンスを生成し、ステップS410で取得したソケットオブジェクトを用いて第二のレスポンスをユーザ端末3へプッシュ送信する(ステップS440)。
 第二のレスポンスを受信したユーザ端末3の動作は、前述の実施形態1と同じであり、第一のレスポンスで送られた表示用スクリプトにより、図10の処理を行ってコンテンツを表示する。
 第二のレスポンスを送信したアクセス管理装置1は、クライアントキュー120が空になったか否かを判定し(ステップS450)、空で無ければ(ステップS450,No)、前述の処理(ステップS410-S440)を繰り返し、空となった場合(ステップS450,Yes)、図22の処理を終了する。
 以上のように、本実施形態3によれば、前述の実施形態1,2と同様に、アクセス管理装置1及びコンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。また、本実施形態3によれば、コンテンツサーバの負荷が高く、ユーザ端末3からのアクセスを待機させた場合に、待ちクライアント情報をクライアントキューで保持し、ビジーで無くなったコンテンツサーバから順次コンテンツを取得するので、的確にアクセスを管理することができる。
 更に、従来、コンテンツサーバ2の負荷が高い場合にリクエストを待機させるようにアクセスを管理するには、コンテンツサーバに変更を加えて、リクエストを待機させる構成を設けなければならず導入が困難であった。これに対し本実施形態3によれば、コンテンツサーバ2と別に、アクセス管理装置1がアクセスを管理する構成を備えたので、コンテンツサーバ2に変更を加える必要がなく導入が容易である。特に、一つのアクセス管理装置で複数のコンテンツサーバ2へのアクセスを管理する構成とした場合、一つのアクセス管理装置にアクセスを管理する構成を導入することで、複数のコンテンツサーバ2に変更を加える必要が無くなり、システム全体としての構成を簡素化できる。例えば、コンテンツサーバが増えても、アクセス管理装置を追加する必要がなく、コンテンツサーバのIPアドレスと第1応答のコンテンツをアクセス管理装置に登録するだけでよい。
 〈変形例3-1〉
 前述の実施形態3では、第二のレスポンスを受信したユーザ端末3の動作を図10と同じとしたが、これに限らず、前述の変形例2-1と同様にユーザ端末3が、第二のレスポンスを契機に第一応答ページをリロードする構成としても良い。
 また、変形例2-2と同様に第二のレスポンスを受信したユーザ端末が図18に示す処理を実行し、コンテンツサーバ2へコンテンツのリクエストを行う構成としても良い。この場合、図22のステップS330,S340を省略してアクセス管理装置1がコンテンツを再要求しない構成としても良い。
 〈変形例3-2〉
 図23は、前記実施形態3に係る変形例3-2のアクセス管理装置1が実行するアクセス管理方法の説明図である。本変形例3-2では、アクセス管理装置1が、リクエストを受信し、図23の処理を開始した場合に(ステップS310)、当該リクエストが検索エンジンのデータ収集か否かを判定する(ステップS315)。当該リクエストが所謂ボットやクローラー、スパイダー等による検索エンジンのデータ収集と判定した場合には(ステップS315,Yes)、コンテンツサーバ2の負荷に関わらず、コンテンツを取得して送信する(ステップS330)。
 このように本変形例2-2のアクセス管理装置1は、検索エンジンのデータ収集に対して、可及的速やかにコンテンツを提供する。
 検索エンジンのデータ収集が行われた際に、コンテンツサーバ2の負荷が高く第一応答ページを返したとすると、収集したページの内容が「まもなく表示します」といったメッセージとなってしまい適切ではない。このため、本変形例3-2のアクセス管理装置1は、検索エンジンのデータ収集と判定した場合には、コンテンツサーバ2の負荷状態に関わらず必ずコンテンツを提供する。
 従って、本変形例3-1によれば、検索エンジンのデータ収集に対して適切にコンテンツを提供できる。
〈実施形態4〉
 前述の実施形態1~実施形態3では、アクセス管理装置とコンテンツサーバ2とが別体に構成された例を示したが、これに限らず、アクセス管理装置とコンテンツサーバ2が同一の装置であっても良い。
 図24は、本実施形態4に係るアクセス管理装置1の機能ブロック図である。本実施形態4のアクセス管理装置1は、リクエストに応じてコンテンツを提供するコンテンツ提供部20(コンテンツサーバ2に相当)の機能を有している。即ち、コンテンツ取得部113A,113Bは、コンテンツ提供部20にコンテンツを要求し、コンテンツ提供部20からコンテンツを取得する。本実施形態4のアクセス管理装置1において、コンテンツ提供部20は、演算処理部11がアプリケーションプログラム(ウェブサーバソフトウェア)に従って実現される。本実施形態4のアクセス管理装置1は、前述の実施形態2のアクセス管理装置1と比べ、上記コンテンツ提供部20に係る構成以外は、同じである。例えば、ハードウェア構成は、前述の図2と同じである。
 《アクセス管理方法》
 図25,図26は、本実施形態4のアクセス管理装置1がアクセス管理プログラムに基づいて実行するアクセス管理方法の説明図である。
 ユーザ端末3からコンテンツの閲覧要求が送信され、この閲覧要求を受信すると、アクセス管理装置1は、記憶部12からアクセス管理プログラムを読み出して実行し、図25の処理を開始する(ステップS310)。
 まず、アクセス管理装置1は、コンテンツ提供部(コンテンツサーバ)20の負荷状態を確認し、ビジーか否かを判定する(ステップS320)。なお、コンテンツ提供部20の負荷状態の確認は、例えば、コンテンツ提供部20即ちコンテンツを提供するプロセスに割り当てられたスレッドの数や、CPUの使用率、メモリの使用率など、コンテンツ定期用部20に割り当てられたリソースの状態を示す値を取得し、この負荷を示す値が所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定する。また、他のスレッドや他のコンピュータ19で図25の処理を並列に実行する場合には、並列して同一のコンテンツ提供部20に対してリクエストする数が所定値より高ければビジーと判定し、所定値以下であればビジーで無いと判定しても良い。
 ステップS320にて、コンテンツ提供部20の負荷は軽い、即ちビジーで無いと判断した場合(ステップS320,No)、アクセス管理装置1は、当該コンテンツ提供部20へリクエストし(ステップS330)、コンテンツ提供部20から応答のあったコンテンツを受けて(ステップS340)、ユーザ端末3へ送信して処理を終了する(ステップS350)。
 一方、ステップS320にて、コンテンツ提供部20の負荷が高く、ビジーであると判断した場合(ステップS320,Yes)、アクセス管理装置1は、「まもなく表示します」といったメッセージを記載したウェブページを第一のレスポンスとしてユーザ端末3へ送信し(ステップS360)、ユーザ端末3によるアクセスを待機状態とする。
 第一のレスポンスには、前述のようにアクセス管理装置1側からのプッシュ送信が可能な通信経路を設定する設定用スクリプトが含まれており、第一のレスポンスを受信したユーザ端末3は、このスクリプトを実行してアクセス管理装置1との通信経路を確立する。本実施形態では、ウェブソケット(WebSocket)を採用し、アクセス管理装置1と通信するためのソケットを設定して、アクセス管理装置側から当該ソケット宛てに送られたデータを受信可能とする。
 ユーザ端末3からのアクセスを待機状態としたアクセス管理装置1は、当該アクセスに係るトランザクションIDと、ソケットオブジェクトを待ちクライアント情報としてクライアントキュー120に格納する(ステップS370)。
 クライアントキュー120に待ちクライアント情報を格納した場合、ウェイティングキューコントローラ1Bが停止しているか否かを判定し(ステップS380)、停止していなければ(ステップS380,No)、図25の処理を終了し、停止していれば(ステップS380,Yes)、ウェイティングキューコントローラ1Bを起動させて図26の処理を開始させ(ステップS390)、図25の処理を終了する。
 アクセス管理装置1は、図26の処理を開始すると、クライアントキュー120から待ちクライアント情報を取得し(ステップS410)、アクセス管理装置1は、取得した待ちクライアント情報のトランザクションIDをキーとしてトランザクションテーブル51を検索し、対応する要求ホスト名、要求パス、要求パラメータを索出する。更に、アクセス管理装置1は、要求ホスト名と対応するコンテンツ提供部20がビジーか否かを判定する(ステップS415)。当該コンテンツ提供部20がビジーであった場合(ステップS415,Yes)、ステップS410に戻って次の待ちクライアント情報を取得し、ステップS415を繰り返し、ステップS415にてビジーで無いと判定した場合(ステップS415,No)、アクセス管理装置1は、当該IPアドレス(実ホスト名)、要求パス、要求パラメータによって特定されるコンテンツをコンテンツ提供部20にリクエストする(ステップS420)。
 アクセス管理装置1は、前記リクエストに対するコンテンツをコンテンツ提供部20から取得し(ステップS430)、当該コンテンツを含めた第二のレスポンスを生成し、ステップS410で取得したソケットオブジェクトを用いて第二のレスポンスをユーザ端末3へプッシュ送信する(ステップS440)。
 第二のレスポンスを受信したユーザ端末3の動作は、前述の実施形態1と同じであり、第一のレスポンスで送られた表示用スクリプトにより、図10の処理を行ってコンテンツを表示する。
 第二のレスポンスを送信したアクセス管理装置1は、クライアントキュー120が空になったか否かを判定し(ステップS450)、空で無ければ(ステップS450,No)、前述の処理(ステップS410-S440)を繰り返し、空となった場合(ステップS450,Yes)、図26の処理を終了する。
 以上のように、本実施形態4によれば、前述の実施形態1~3と同様に、アクセス管理装置1及びコンテンツサーバ2の負荷を抑え、コンテンツを速やかに送信できる。また、コンテンツサーバ(コンテンツ提供部)の負荷が高く、ユーザ端末3からのアクセスを待機させた場合に、待ちクライアント情報をクライアントキューで保持し、ビジーで無くなったコンテンツサーバから順次コンテンツを取得するので、的確にアクセスを管理することができる。
 また、従来、コンテンツサーバ2の負荷が高い場合にリクエストを待機させるようにアクセスを管理するには、コンテンツサーバに変更を加えて、リクエストを待機させる構成を設けなければならず導入が困難であった。これに対し本実施形態4では、コンテンツサーバ2と別に、アクセス管理装置1がアクセスを管理する構成を備えたので、コンテンツサーバ2に変更を加える必要がなくコンテンツサーバ2の運営者としては導入が容易である。例えば、コンテンツサーバが増えても、アクセス管理装置を追加する必要がなく、コンテンツサーバのIPアドレスと第1応答のコンテンツをアクセス管理装置に登録するだけでよい。
 《その他》
 本発明は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
1    アクセス管理装置
1A  ユーザリクエストコントローラ
1B  ウェイティングキューコントローラ
2    コンテンツサーバ
3    ユーザ端末
10  アクセス管理システム
11  演算処理部
12  記憶部
13  入出力部
19  コンピュータ
51  トランザクションテーブル
52  ユーザテーブル
53  ソケットテーブル
54  ホスト名対応テーブル
111      閲覧要求受信部
112      第一応答生成部
113      コンテンツ取得部
113A    コンテンツ取得部
113B    コンテンツ取得部
114      第二応答生成部
115      応答送信部
115A    応答送信部
115B    応答送信部
116      クライアント情報保存部
117      クライアント情報取得部
120      クライアントキュー
141,142,143・・・  通信制御部

Claims (11)

  1.  ユーザ端末からコンテンツサーバへのアクセスを管理するアクセス管理装置であって、
     ユーザ端末からコンテンツのリクエストを受信する要求受信部と、
     前記ユーザ端末からのリクエストに対する第一のレスポンスとして、所定の表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信する第一応答部と、
     前記第一のレスポンスの送信後、前記通信経路を介して前記ユーザ端末へ第二のレスポンスを送信する第二応答部と、
    を備えたアクセス管理装置。
  2.  コンテンツサーバの負荷状態を検出する負荷検出部と
     コンテンツサーバの負荷状態に応じてアクセスの可否を判定する判定部とを更に備え、
     前記判定の結果、アクセスが否であった場合に、前記第一応答部が、前記第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信し、
     前記第一のレスポンスの送信後、前記アクセスが可となった場合に、第二応答部が、前記ユーザ端末へ前記第二のレスポンスを送信する請求項1に記載のアクセス管理装置。
  3.  前記リクエストに応じたコンテンツを前記コンテンツサーバから取得するコンテンツ取得部を更に備え、
     前記第一応答部が、前記コンテンツを表示させる表示用プログラムを前記第一のレスポンスに含め、
     前記アクセスが可となった場合に、前記第二応答部が、前記コンテンツを含む前記第二のレスポンスを前記ユーザ端末へ送信する請求項1又は2に記載のアクセス管理装置。
  4.  前記第一応答としての表示データが、マークアップ言語で記述されたウェブページであり、ボディ部に前記アクセスが待機状態である旨のメッセージの記述を有し、
     前記第一応答部が、
     前記ウェブページのボディ部に前記コンテンツを示す記述を挿入するステップと、
     前記ウェブページのヘッダ部の記述を変更し、前記アクセスが待機状態である旨のメッセージを非表示とし、前記コンテンツを表示させるステップと、
    を有する表示用プログラムを生成する請求項3に記載のアクセス管理装置。
  5.  前記コンテンツサーバから取得した前記コンテンツに所定形式のデータを読み込む命令が含まれていた場合、前記第一応答部が、前記ユーザ端末に当該データを読み込むステップを更に有する前記表示プログラムを生成する請求項4に記載のアクセス管理装置。
  6.  前記第一応答部が、前記コンテンツをリクエストするステップを含むリクエスト用プログラムを生成して前記第一のレスポンスに含め、
     前記第二応答部が、前記第二のレスポンスとして、少なくとも認証用の情報を送信し、前記第一のレスポンスで送信したリクエスト用プログラムにより、前記ユーザ端末に前記認証用の情報の送信と共に前記コンテンツのリクエストを行なわせる請求項1又は2に記載のアクセス管理装置。
  7.  前記設定用プログラムは、前記ユーザ端末に、前記コンテンツをリクエストしたHTTP接続と別にソケットを設定させて、当該ソケットを介して前記アクセス管理装置からの第二のレスポンスを受信するための前記通信経路を設定させる請求項1から6の何れか1項に記載のアクセス管理装置。
  8.  前記第二応答部は、前記第二のレスポンスを受信するための通信経路の確立後、前記ユーザ端末からのリクエストを受けずに前記第二のレスポンスを前記ユーザ端末へ送信する請求項7に記載のアクセス管理装置。
  9.  前記ユーザ端末からのリクエストが、検索エンジンのためのデータ収集であった場合、前記コンテンツサーバの負荷状態に係わらず、当該リクエストと対応するコンテンツを前記コンテンツサーバから取得して前記ユーザ端末へ送信する請求項1から8の何れか1項に記載のアクセス管理装置。
  10.  ユーザ端末からコンテンツサーバへのアクセスを管理するアクセス管理装置が、
     コンテンツサーバの負荷状態を検出するステップと
     コンテンツサーバの負荷状態に応じてアクセスの可否を判定するステップと、
     ユーザ端末からコンテンツのリクエストを受信するステップと、
     前記判定の結果、アクセスが否であった場合に、前記ユーザ端末からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信するステップと、
     前記第一のレスポンスの送信後、前記アクセスが可となった場合に、前記通信経路を介して前記ユーザ端末へ第二のレスポンスを送信するステップと、
    を実行するアクセス管理方法。
  11.  ユーザ端末からコンテンツサーバへのアクセスを管理するアクセス管理装置に、
     コンテンツサーバの負荷状態を検出するステップと
     コンテンツサーバの負荷状態に応じてアクセスの可否を判定するステップと、
     ユーザ端末からコンテンツのリクエストを受信するステップと、
     前記判定の結果、アクセスが否であった場合に、前記ユーザ端末からのリクエストに対する第一のレスポンスとして、アクセスが待機状態である旨を前記ユーザ端末に表示させる表示データ及び前記ユーザ端末に通信経路を設定させるための設定用プログラムを送信するステップと、
     前記第一のレスポンスの送信後、前記アクセスが可となった場合に、前記通信経路を介して前記ユーザ端末へ第二のレスポンスを送信するステップと、
    を実行させるためのアクセス管理プログラム。
PCT/JP2012/063955 2012-05-30 2012-05-30 アクセス管理装置 WO2013179419A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063955 WO2013179419A1 (ja) 2012-05-30 2012-05-30 アクセス管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063955 WO2013179419A1 (ja) 2012-05-30 2012-05-30 アクセス管理装置

Publications (1)

Publication Number Publication Date
WO2013179419A1 true WO2013179419A1 (ja) 2013-12-05

Family

ID=49672673

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/063955 WO2013179419A1 (ja) 2012-05-30 2012-05-30 アクセス管理装置

Country Status (1)

Country Link
WO (1) WO2013179419A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170296A (ja) * 2014-03-10 2015-09-28 株式会社リコー 情報処理システム及び情報処理方法
JP2017134827A (ja) * 2016-01-25 2017-08-03 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation ロングポーリング処理方法およびシステム、並びに記録媒体

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072760A (ja) * 2004-09-02 2006-03-16 Fujitsu Ltd 待ち行列管理装置
JP2012098839A (ja) * 2010-10-29 2012-05-24 Toshiba Corp アクセス認可装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072760A (ja) * 2004-09-02 2006-03-16 Fujitsu Ltd 待ち行列管理装置
JP2012098839A (ja) * 2010-10-29 2012-05-24 Toshiba Corp アクセス認可装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170296A (ja) * 2014-03-10 2015-09-28 株式会社リコー 情報処理システム及び情報処理方法
JP2017134827A (ja) * 2016-01-25 2017-08-03 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation ロングポーリング処理方法およびシステム、並びに記録媒体

Similar Documents

Publication Publication Date Title
KR102169917B1 (ko) 메시지 처리 방법, 메시지 처리 장치와 시스템, 및 컴퓨터 저장 매체
CN108174248B (zh) 视频播放方法、视频播放控制方法、装置、及存储介质
US9459888B2 (en) Implementing browser based hypertext transfer protocol session storage
US9774582B2 (en) Private cloud connected device cluster architecture
JP4151978B2 (ja) サーバ装置、管理方法およびプログラム
US8886819B1 (en) Cross-domain communication in domain-restricted communication environments
JP2009116630A (ja) ウェブ画面の共有システム、その共有用端末機およびその共有プログラム
JP2011108102A (ja) ウェブサーバ、ウェブブラウザおよびウェブシステム
JP2011134252A (ja) 不正利用判定サーバ及び方法
CN107391277B (zh) 信息处理方法和装置
JP5711518B2 (ja) 情報処理装置、その制御方法、及びプログラム
US20140101289A1 (en) Methods and systems for selecting device applications
JP2007310596A (ja) サービス提供装置、コンピュータプログラム及び記録媒体
CN102638721B (zh) 用于通过多个设备浏览和播放内容的界面
KR101265164B1 (ko) 브랜딩을 위한 단축 url 브라우징 제공시스템, 그 제공방법, 및 웹 클라이언트
WO2013179419A1 (ja) アクセス管理装置
KR20140093219A (ko) 모바일 장치로부터의 원격 액세스 기법
JP2015156209A (ja) 情報処理システム
CN105743890B (zh) 权限信息生成方法和装置
JP5703352B2 (ja) アプリケーションシステム、携帯端末、サーバコンピュータおよびコンピュータプログラム
KR101170322B1 (ko) 웹을 기반으로 하는 개인 컴퓨터를 이용한 클라우드 컴퓨팅 서비스 제공 방법 및 장치
JP2008176483A (ja) 情報提供システム
JP5727919B2 (ja) 設定方法、設定プログラム及び電化製品
US12032647B2 (en) Tenant network for rewriting of code included in a web page
JP2010277478A (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: 12877819

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 28-04-2015)

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 12877819

Country of ref document: EP

Kind code of ref document: A1