WO2015052968A1 - サーバ装置、クライアント装置、情報処理方法および記録媒体 - Google Patents

サーバ装置、クライアント装置、情報処理方法および記録媒体 Download PDF

Info

Publication number
WO2015052968A1
WO2015052968A1 PCT/JP2014/067696 JP2014067696W WO2015052968A1 WO 2015052968 A1 WO2015052968 A1 WO 2015052968A1 JP 2014067696 W JP2014067696 W JP 2014067696W WO 2015052968 A1 WO2015052968 A1 WO 2015052968A1
Authority
WO
WIPO (PCT)
Prior art keywords
resource
document
identifier
client
unit
Prior art date
Application number
PCT/JP2014/067696
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 JP2015541456A priority Critical patent/JP6323461B2/ja
Priority to CN201480054817.5A priority patent/CN105593853B/zh
Priority to US15/026,919 priority patent/US10509826B2/en
Priority to EP14852303.8A priority patent/EP3056996A4/en
Priority to BR112016007311A priority patent/BR112016007311A2/pt
Publication of WO2015052968A1 publication Critical patent/WO2015052968A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • 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
    • H04L67/1014Server selection for load balancing based on the content of a request

Definitions

  • the present disclosure relates to a server device, a client device, an information processing method, and a recording medium.
  • Patent Document 1 describes a technique for caching content in a web server in order to efficiently use a cache even when access to memory resources and web services is restricted.
  • a document acquisition unit that acquires a document including a reference to a resource
  • an identifier generation unit that generates a unique identifier for each content of the resource
  • the document A server device includes an identifier description unit that associates an identifier with a reference to the resource, the document, and a document transmission unit that transmits an identifier associated with the reference to the resource to the client.
  • a request transmission unit that transmits a request to a server, a document including a reference to a resource transmitted from the server in response to the request, and the reference associated with the reference to the resource
  • a client device including a document reception unit that receives a unique identifier for each resource content from the server, and a cache determination unit that determines whether the resource is stored in the cache based on the identifier Is done.
  • An information processing method in response to a request from a client, obtaining a document including a reference to a resource, generating a unique identifier for each content of the resource, and a processor
  • An information processing method includes associating the identifier with a reference to the resource, and transmitting the document and an identifier associated with the reference to the resource to the client.
  • the function of transmitting a request to the server, the document including the reference to the resource transmitted in response to the request, and the content of the resource associated with the reference to the resource are unique.
  • a recording medium is provided.
  • FIG. 1 is a diagram illustrating a schematic configuration of a system to which some embodiments of the present disclosure are applied.
  • FIG. FIG. 3 is a block diagram illustrating a schematic functional configuration of an intermediate server and a client according to the first embodiment of the present disclosure.
  • 5 is a flowchart illustrating processing of an intermediate server according to the first embodiment of the present disclosure.
  • 6 is a flowchart illustrating processing of a client according to the first embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of an intermediate server according to a modification example of the first embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of a client according to a modification example of the first embodiment of the present disclosure.
  • FIG. 9 is a block diagram illustrating a schematic functional configuration of an intermediate server and a client according to a second embodiment of the present disclosure.
  • 14 is a flowchart illustrating a process before an intermediate server according to a second embodiment of the present disclosure receives a request.
  • 14 is a flowchart illustrating a process before a client transmits a request according to the second embodiment of the present disclosure.
  • It is a block diagram showing a schematic functional composition of an intermediate server concerning a 3rd embodiment of this indication.
  • It is a block diagram showing a schematic functional composition of a client concerning a 3rd embodiment of this indication.
  • 14 is a flowchart illustrating processing of an intermediate server according to the third embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of a client according to the third embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of an intermediate server according to a modification of the third embodiment of the present disclosure. It is a block diagram showing a schematic functional composition of an intermediate server concerning a 4th embodiment of this indication. It is a block diagram showing a schematic functional composition of a client concerning a 4th embodiment of this indication.
  • 14 is a flowchart illustrating processing of an intermediate server according to the fourth embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of an intermediate server according to the fourth embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of a client according to the fourth embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of a client according to the fourth embodiment of the present disclosure.
  • 16 is a flowchart illustrating processing of an intermediate server according to the fifth embodiment of the present disclosure.
  • 16 is a flowchart illustrating processing of a client according to the fifth embodiment of the present disclosure.
  • 14 is a flowchart illustrating processing of an intermediate server according to a sixth embodiment of the present disclosure. It is a block diagram showing a schematic functional composition of an intermediate server and a client concerning a 7th embodiment of this indication.
  • 18 is a flowchart illustrating processing of an intermediate server according to the seventh embodiment of the present disclosure. It is a figure for demonstrating the production
  • FIG. 3 is a block diagram for explaining an exemplary hardware configuration of an information processing apparatus according to an embodiment of the present disclosure.
  • FIG. 1 is a diagram illustrating a schematic configuration of a system to which some embodiments of the present disclosure are applied.
  • the system 10 includes a distribution source server 100, an intermediate server 200, and a client 300.
  • the distribution source server 100, the intermediate server 200, and the client 300 are connected to each other through a network such as the Internet.
  • the distribution source server 100 and the intermediate server 200 are both servers realized by one or a plurality of server devices.
  • the distribution source server 100 holds a document provided to the user and a resource referred to by the document.
  • Documents and resources are distributed to the client 300 from the distribution source server 100 via one or a plurality of intermediate servers 200 in response to a request from the client 300.
  • the intermediate server 200 holds documents and resources as a cache, and distributes the cached documents and resources to the client 300 on behalf of the distribution source server 100, so that the document can be quickly provided to the client 300. .
  • the intermediate server 200 can execute various processes for speeding up, as well as the cache holding, as in an embodiment described later.
  • one or a plurality of server devices that realize the distribution source server 100 and the intermediate server 200 may be information processing devices including a processor such as a CPU (Central Processing unit).
  • the client 300 can also be realized by an information processing apparatus including a processor.
  • the client 300 may further include an output device such as a display and a speaker, an input device such as a touch panel, and an imaging device. More specifically, for example, the client 300 may be a device such as a smartphone, a personal computer, a tablet, a media player, a television, a game machine, or the like.
  • a specific hardware configuration of the information processing apparatus that can realize each of the above apparatuses will be described in more detail later.
  • the system 10 can be used for distributing a document described in a markup language such as HTML.
  • the resource may be, for example, a script such as JavaScript, style definition information such as CSS (Cascading Style Sheets), an image, and a moving image.
  • the system 10 is not limited to the one described in the markup language, and can be used to distribute various types of documents or data other than documents (including images or moving images).
  • FIG. 2 is a block diagram illustrating a schematic functional configuration of the intermediate server and the client according to the first embodiment of the present disclosure.
  • the intermediate server 200 includes a request receiving unit 202, a document acquisition unit 204, a document analysis unit 206, a resource acquisition unit 208, an identifier generation unit 210, and an identifier description unit 212 as functional configurations.
  • the client 300 includes a request transmission unit 302, a document reception unit 304, a cache determination unit 306, a resource reception unit 308, and a display control unit 310 as functional configurations.
  • These functional configurations can be realized, for example, when a processor included in an information processing device that realizes the intermediate server 200 and the client 300 operates according to a program stored in a memory or a recording medium. Further, the cache 280 in the intermediate server 200 and the cache 380 in the client 300 can be realized by, for example, storage or memory of each information processing apparatus.
  • the request reception unit 202 receives a request from the client 300.
  • the document acquisition unit 204 acquires the document specified in the request in response to the request.
  • the document acquisition unit 204 may internally acquire the document stored in the cache 280. If the designated document is not stored in the cache 280, the document acquisition unit 204 transmits a request to the distribution source server 100, and acquires the document transmitted from the distribution source server 100 in response to the request.
  • the document analysis unit 206 analyzes the document acquired by the document acquisition unit 204. More specifically, the document analysis unit 206 detects a reference to a resource included in the document. When the document analysis unit 206 detects a reference to a resource, the resource acquisition unit 208 acquires the referenced resource. At this time, the resource acquisition unit 208 may internally acquire the resources stored in the cache 280. When the referenced resource is not stored in the cache 280, the resource acquisition unit 208 transmits a request to the distribution source server 100, and acquires the resource transmitted from the distribution source server 100 in response to the request. The resource newly acquired from the distribution source server 100 is stored in the cache 280.
  • the identifier generation unit 210 generates a unique identifier for each resource content for the resource acquired by the resource acquisition unit 208.
  • the identifier generation unit 210 may calculate a hash with a predetermined algorithm based on the contents of the resource. In this case, the calculated hash can be a unique identifier for each resource content.
  • the identifier generation unit 210 does not necessarily use the hash as an identifier as it is, and may identify a resource based on the hash and then generate a separate identifier and assign it to the resource.
  • the identifier generation unit 210 may associate the generated identifier with the resource stored in the cache 280.
  • the identifier generation unit 210 regards the resource as binary data regardless of the type, and generates a unique identifier using a hash function.
  • a hash function for example, MD5, SHA-1, or SHA-256 may be used.
  • the identifier generation unit 210 may generate a plurality of identifiers for one resource using a plurality of hash functions. By determining that the resources are the same when all of these identifiers match, the uniqueness of the identifier can be further increased.
  • the processing capability of the intermediate server 200 is higher than that of the client 300 and will be described later.
  • the identifier description unit 212 associates the identifier generated by the identifier generation unit 210 with a reference to a resource in the document. More specifically, for example, the identifier description unit 212 adds the identifier generated by the identifier generation unit 210 to the original identifier and associates the identifier with the reference to the resource.
  • an HTML document includes a reference to a resource whose original identifier is a URL (Uniform Resource Locator).
  • the identifier description unit 212 may additionally describe the identifier generated by the identifier generation unit 210, such as a hash, in the document while leaving the URL that is the original identifier.
  • the identifier description unit 212 uses the identifier generation unit 210 as shown in (b).
  • a hash (new_id) that is the generated identifier may be additionally described in the document.
  • (A) ⁇ img src “resource / image001.jpg” />
  • the client 300 determines whether or not the resource is cached based on the identifier additionally described by the identifier description unit 212. If there is no cache, the client 300 allocates the resource to the intermediate server 200. Is configured to request. However, a client other than the client 300, that is, a client that does not refer to an additionally described identifier may exist on the network. By leaving the original identifier in the identifier description unit 212, it is possible to ensure backward compatibility with such a client.
  • the identifier description unit 212 may overwrite the original identifier included in the reference to the resource in the document with the identifier generated by the identifier generation unit 210.
  • a reference to a resource as shown in (a) above can be rewritten as shown in (c) below.
  • (C) ⁇ img src “http: //www.xxx.yyy/zzz/736f6e7920706174656e74” />
  • the identifier description unit 212 rewrites the URL to an absolute path indicating the intermediate server 200, and describes the identifier generated by the identifier generation unit 210 following the absolute path.
  • the absolute path indicating the intermediate server 200 is added in common to all resources. Therefore, the determination of the presence or absence of the cache based on the original identifier rewritten as in the above example by the client 300 is substantially the same as the determination based on the identifier generated by the identifier generation unit 210. It will be. In this case, the client may not be configured to refer to the additionally described identifier.
  • the document transmission unit 214 transmits a document including the identifier generated by the identifier generation unit 210 to the client 300.
  • the client 300 displays a document while referring to the resource based on the identifier generated by the identifier generation unit 210.
  • the resource transmission unit 216 transmits the resource stored in the cache 280 to the client 300 in response to a resource request transmitted from the client 300 when the resource referred to in the document is not cached in the client 300.
  • the request transmission unit 302 transmits a request to the intermediate server 200 based on, for example, a user operation.
  • the document receiving unit 304 receives a document transmitted by the intermediate server 200 in response to a request.
  • the received document includes a reference to the resource, and the resource reference is associated with a unique identifier for each content of the resource generated by the identifier generation unit 210 of the intermediate server 200.
  • a unique identifier may be associated with a reference to a resource in addition to the original identifier.
  • the cache determination unit 306 determines whether or not the resource referred to in the document received by the document reception unit 304 is stored in the cache 380. At this time, the cache determination unit 306 determines whether the resource is stored in the cache 380 based on a unique identifier for each resource content. When the resource is stored in the cache 380, the cache determination unit 306 reads out the stored resource and provides it to the display control unit 310. On the other hand, when the resource is not stored in the cache 380, the cache determination unit 306 requests the resource reception unit 308 to transmit a request for the resource to the intermediate server 200.
  • the identifier used for determination by the cache determination unit is a URL
  • the identifier is not necessarily unique for each resource content. Therefore, it may be determined that different resources are referenced even if the contents of the resources are the same.
  • the URL indicating the first distribution source server 100a is different from the URL indicating the second distribution source server 100b.
  • Different identifiers (URLs) are used for references to one resource and second resource.
  • the cache determination unit does not change the second resource itself even if the first resource having the same content is already stored in the cache. Is not stored in the cache, it can be determined that the referenced resource is not stored in the cache.
  • the cache determination unit 306 of the client 300 determines whether or not the resource is stored in the cache 380 based on a unique identifier for each content of the resource.
  • the identifier generation unit 210 of the intermediate server 200 generates a common identifier for the first resource and the second resource, and the cache determination unit 306 is based on the common identifier.
  • Whether or not the resource is stored in the cache 380 is determined. Accordingly, when the second resource is referenced in the received second document, if the first resource having the same content is already stored in the cache 380, the cache determination unit 306 determines the resource being referenced. Can be provided to the display control unit 310 by reusing resources stored in the cache 380 without transmitting a request to the intermediate server 200.
  • the resource receiving unit 308 transmits a resource request to the intermediate server 200 and receives the resource transmitted from the intermediate server 200 in response to the request.
  • the resource reception unit 308 provides the received resource to the display control unit 310. Further, the resource receiving unit 308 stores the newly received resource in the cache 380.
  • the display control unit 310 displays the document on the display of the client 300 based on the document received by the document reception unit 304 and the resource referenced in the document.
  • the resource is read from the cache 380 and reused or newly received from the intermediate server 200 according to the determination of the cache determination unit 306. Since reception from the intermediate server 200 takes time for communication, the higher the ratio of resources to be reused, the faster the document display.
  • the cache determination unit 306 determines whether or not the resource is stored in the cache 380 based on a unique identifier for each content of the resource. Therefore, for example, not only resources that are referred to by documents distributed from the same distribution source server 100 but also resources that are respectively referred to by a plurality of documents distributed from different distribution source servers 100 have the same content. Can be reused. Accordingly, the ratio of resources that are reused when displaying a document increases, and the display of the document can be accelerated.
  • FIG. 3 is a flowchart illustrating processing of the intermediate server according to the first embodiment of the present disclosure.
  • the request receiving unit 202 receives a request from the client 300 (S101).
  • the document acquisition unit 204 acquires the document specified in the request (S103).
  • the document analysis unit 206 analyzes the acquired document (S105).
  • the resource acquisition unit 208 acquires the referenced resource (S109). Further, the identifier generation unit 210 generates a unique identifier based on the acquired content of the resource (S111). Next, the identifier description unit 212 associates the generated unique identifier with a reference to a resource in the document (S113). S109 to S113 can be repeatedly executed until all references to resources in the document are detected.
  • the document transmission unit 214 transmits the document to the client 300 (S115). Thereafter, when a resource request is received from the client 300 (YES in S117), the resource transmission unit 216 transmits the resource to the client 300 (S119). When the resource request is not received or not received (NO in S117), the processing in the intermediate server 200 ends.
  • FIG. 4 is a flowchart illustrating processing of the client according to the first embodiment of the present disclosure.
  • the request transmission unit 302 transmits a request to the intermediate server 200 (S131).
  • the document receiving unit 304 receives the document transmitted by the intermediate server 200 in response to the request (S133).
  • the display control unit 310 starts displaying the received document (S135).
  • the cache determination unit 306 determines whether the referenced resource is stored in the cache 380 (cached) (S139). . As described above, the cache determination unit 306 determines whether or not a resource is stored in the cache 380 based on a unique identifier for each resource content associated with a reference to the resource in the document.
  • the cache determination unit 306 reads the resource from the cache 380 and provides it to the display control unit 310. That is, the cache determination unit 306 and the display control unit 310 reuse the cached resource (S141).
  • the resource receiving unit 308 transmits a resource request to the intermediate server 200 (S143). The resource receiving unit 308 receives the resource transmitted by the intermediate server 200 in response to the request (S145).
  • the display control unit 310 refers to the reused resource or the resource received from the intermediate server 200 and continues to display the document (S147). S139-S147 can be repeated until all references to resources in the document are found. If the display control unit 310 displays the entire document and no reference to the resource is found or no reference to the resource is found (NO in S137), the client 300 completes the display of the document ( S149).
  • FIG. 5 is a flowchart illustrating processing of the intermediate server according to the modification of the first embodiment of the present disclosure. Referring to FIG. 5, first, S101 to S105 are executed similarly to the example described above with reference to FIG.
  • the identifier description unit 212 associates a dummy identifier with a reference to a resource detected by document analysis (S161).
  • the dummy identifier is a series of identifiers generated mechanically, for example, and is not necessarily unique for each resource content.
  • the identifier description unit 212 associates an incremental or random dummy identifier with the detected reference sequentially from the top of the document.
  • the original identifiers for example, URLs
  • the identifier description unit 212 may associate the same dummy identifiers with these references.
  • the document transmission unit 214 transmits the document to the client 300 (S115).
  • the resource acquisition unit 208 acquires the referenced resource
  • the identifier generation unit 210 acquires the content of the resource A unique identifier is generated based on (S107 to S111).
  • the identifier description unit 212 associates the dummy identifier associated with the reference in S161 with the unique identifier generated in S111 (identifier association information). ) Is generated (S163).
  • the document transmission unit 214 transmits the identifier association information to the client 300 (S165). Thereafter, when a resource request is received from the client 300, the resource transmission unit 216 transmits the resource to the client 300 (S117, S119).
  • FIG. 6 is a flowchart illustrating processing of a client according to a modification example of the first embodiment of the present disclosure. Referring to FIG. 6, first, S131 to S135 are executed as in the example described above with reference to FIG.
  • the cache determination unit 306 When a reference to a resource is found in the document (YES in S137), the cache determination unit 306 is referred to after replacing the dummy identifier associated with the found reference with a unique identifier (S181). It is determined whether or not the resource is stored in the cache 380 (S139).
  • S181 the identifier association information described above is not received by the document reception unit 304 at the time of S181, that is, when the cache determination unit 306 is associated with the resource reference in the state where the dummy identifier is associated with the resource.
  • the cache determination unit 306 transmits an identifier or a request for identifier association information to the intermediate server 200.
  • the identifier generation unit 210 of the intermediate server 200 may preferentially generate a unique identifier based on the content of the referenced resource for the reference from which the request is received.
  • the processing capability of the intermediate server 200 is higher than that of the client 300, it takes a certain amount of time for the identifier generation unit 210 to generate a unique identifier. Therefore, as in this modification, a document in which a dummy identifier that can be easily generated is associated with a reference is transmitted to the client 300 in advance, and display is started based on the document received by the client 300. By executing the generation of the unique identifier in the intermediate server 200, the time until the document display is completed in the client 300 can be further shortened.
  • FIG. 7 is a block diagram illustrating a schematic functional configuration of the intermediate server and the client according to the second embodiment of the present disclosure.
  • intermediate server 200 further includes a resource advance delivery unit 218 as a functional configuration.
  • the client 300 further includes a resource advance receiving unit 312 as a functional configuration.
  • the resource advance delivery unit 218 of the intermediate server 200 transmits a predetermined resource to the client 300 in advance before the request reception unit 202 receives a request from the client 300. At this time, the resource advance distribution unit 218 transmits the resource to the client 300 in association with a unique identifier for each content of the resource generated by the identifier generation unit 210.
  • the resource advance delivery unit 218 counts the number of times that the identifier generated by the identifier generation unit 210 is associated with the reference to the resource in the document, and based on this number of resources, the resource that is estimated to be used frequently is counted. You may transmit to the client 300.
  • the resource advance delivery unit 218 may send the resource specified by the service provider to the client 300 in advance.
  • the resource advance delivery unit 218 sends the client 300 in advance according to the setting by the service provider.
  • the resource advance distribution unit 218 may pre-compile the program and then transmit it to the client 300. For example, when the client 300 compiles and executes a program referenced in a document, the time required for compiling is limited even if the program is stored in the cache 380. On the other hand, when the resource pre-distribution unit 218 precompiles the program before sending it to the client 300 in the intermediate server 200, it can be sufficiently timed for compilation. can do.
  • the resource advance reception unit 312 of the client 300 receives the resource transmitted by the resource advance delivery unit 218 of the intermediate server 200 before the request transmission unit 302 transmits a request to the intermediate server 200.
  • the resource received here may be, for example, a resource that is presumed to be frequently used based on the number of times associated with a reference to the resource, or specified by the service provider. It may be a resource.
  • the resource advance receiving unit 312 receives the resource distributed in advance from the intermediate server 200 and stores the received resource in the cache 380.
  • the received resource is associated with a unique identifier for each resource content generated by the identifier generation unit 210 in the intermediate server 200.
  • the resource preceding reception unit 312 stores the received resource in the cache 380 in association with this identifier.
  • a resource having the same content as the previously distributed resource is referred to in the document regardless of the original identifier (for example, URL) of the previously distributed resource, it is stored in the cache 380 in advance. It is possible to speed up the display of the document by using the resource that has been set.
  • the resource advance receiving unit 312 may receive the program precompiled by the resource advance distributing unit 218 of the intermediate server 200.
  • the resource advance receiving unit 312 may store the precompiled program in the cache 380 in a storage area different from resources other than the program such as images and CSS.
  • the precompiled program can be stored in a common storage area with a library such as WebCore. Accordingly, when a document is displayed on the client 300, it may be possible to access the precompiled program corresponding to the referenced resource at high speed.
  • a script such as JavaScript occupies the largest ratio next to the image.
  • most of the cases are that some specific standard libraries are referred to. Therefore, for example, by distributing the script standard library from the intermediate server 200 to the client 300 in advance, transmission and reception of requests and resources for the script standard library that occur with a high probability in displaying the document can be omitted. Display can be speeded up.
  • a script when a script is updated, if the updated script is distributed from the intermediate server 200 to the client 300 prior to the request, the script is referred to from the document for the first time after the update. Even so, the document can be quickly displayed using the script stored in the cache of the client 300.
  • the speed can be further increased.
  • a resource that is estimated to be highly likely to be referred to when displaying a document such as a logo image or a topic item image, is distributed from the intermediate server 200 to the client 300 in advance. This can contribute to speeding up.
  • FIG. 8 is a flowchart illustrating a process before the intermediate server according to the second embodiment of the present disclosure receives a request.
  • the resource advance delivery unit 218 determines a resource to be delivered in advance (S201).
  • the resource to be distributed in advance may be determined based on the number of times that the identifier is associated with the reference to the resource in the document as described above, or may be specified by the service provider.
  • the resource advance delivery unit 218 periodically requests the resource source server 100 for a resource that is estimated to be frequently used and that may be updated, such as the standard library of scripts described above. Thus, the presence or absence of an update may be confirmed, and if there is an update, it may be determined to distribute the updated resource in advance.
  • the resource advance delivery unit 218 may use an identifier generation process by the identifier generation unit 210 in order to check whether there is an update. That is, when the identifier generation unit 210 generates a unique identifier for each resource content, if the generated identifier is different from the previously generated identifier, it can be determined that the resource has been updated.
  • the resource advance delivery unit 218 performs pre-compilation as necessary (S203).
  • the resource advance delivery unit 218 transmits the resource to the client 300 (S205).
  • FIG. 9 is a flowchart showing a process before a client transmits a request according to the second embodiment of the present disclosure.
  • the resource advance receiving unit 312 receives a resource distributed from the intermediate server 200 (S211).
  • the resource advance receiving unit 312 determines that the distributed resource is different from the other resources for the program.
  • the resource is stored in the storage area (S215). Otherwise, the resource advance receiving unit 312 stores the resource in the storage area of the normal cache 380 (S217).
  • FIG. 10 is a block diagram illustrating a schematic functional configuration of an intermediate server and a client according to the third embodiment of the present disclosure.
  • the intermediate server 200 includes a request receiving unit 202, a document acquisition unit 204, a document analysis unit 206, a resource acquisition unit 208, a resource analysis unit 220, and a shortened character string generation unit as functional configurations. 222, an abbreviated character string description unit 224, a document transmission unit 214, an association information transmission unit 226, and a resource transmission unit 216.
  • the client 300 includes a request transmission unit 302, a document reception unit 304, a resource reception unit 308, an association information reception unit 314, a character string interpretation unit 316, and a display control unit 310. Including.
  • These functional configurations can be realized, for example, when a processor included in an information processing device that realizes the intermediate server 200 and the client 300 operates according to a program stored in a memory or a recording medium.
  • the database 282 in the intermediate server 200 and the database 382 in the client 300 can be realized by, for example, storage or memory of each information processing apparatus.
  • the request reception unit 202 and the document acquisition unit 204 acquire a document in response to a request from the client 300, as in the first embodiment.
  • the document analysis unit 206 analyzes the document acquired by the document acquisition unit 204 and detects a reference to a resource included in the document.
  • the resource acquisition unit 208 acquires the referenced resource when the document analysis unit 206 detects a reference to the resource.
  • the document analysis unit 206 detects a shortenable character string included in the document acquired by the document acquisition unit 204.
  • the resource analysis unit 220 detects a shortenable character string included in the resource acquired by the resource acquisition unit 208.
  • the shortenable character string includes, for example, an arbitrary identifier given to an element in a document, a class defined by a style, a function defined by a program, or the like.
  • the shortenable character string may include a reserved word in a document or resource format.
  • the shortenable character string may include an identifier of a resource referred to in the document or a character string described in the document as a so-called local sentence.
  • the shortened character string generation unit 222 When a character string that can be shortened is detected by the document analysis unit 206 and the resource analysis unit 220, the shortened character string generation unit 222 generates a character string (hereinafter also referred to as a shortened character string) obtained by shortening the detected character string. To do.
  • the shortened character string generation unit 222 may generate the shortened character string by performing an operation according to a predetermined algorithm based on the original character string. As will be described later, in the illustrated example, since the relationship between the original character string and the shortened character string is recorded in the database 282, the algorithm may be irreversible.
  • the shortened character string generation unit 222 may generate an incremental or random shortened character string regardless of the original character string.
  • the shortened character string when the shortened character string is generated using the algorithm, the shortened character string becomes slightly longer, but if the original character string is the same, the same shortened character string is automatically generated. Therefore, the search performance can be improved by minimizing the records in the database 282. Further, depending on the algorithm used, a shortened character string unique to the original character string can be generated.
  • the shortened string when generating an incremental or random shortened string, can be shortened to the limit (for example, to the shortest length that can represent the number of shortenable strings contained in a document or resource).
  • the abbreviated character string generation unit 222 refers to the database 282 and a new abbreviated character string is generated when no abbreviated character string has been generated for the same original character string, the number of records in the database 282 is reduced. can do.
  • the abbreviated character string generation unit 222 adds a record (abbreviated character string record) that associates the original character string and the abbreviated character string to the database 282.
  • the database 282 may be generated in units of documents.
  • the correspondence between the original character string and the abbreviated character string indicated by the database 282 may be based on a document transmitted in response to a single request and a resource referenced from this document.
  • the database 282 may be generated with a plurality of documents and resources referenced from these documents as scopes.
  • the short character string generation unit 222 stores the short character string in the database 282. It is not necessary to add a column record. For example, when a reserved word in a document or resource format is handled as a character string that can be shortened, the reserved word is finite, so a short character string is assigned in advance, and the correspondence between the reserved word and the short character string is assigned to the database 282 and It can be recorded in the database 382 in advance.
  • the abbreviated character string generation unit 222 generates an abbreviated character string assigned in advance with reference to the database 282 for the reserved word detected in the document or resource, and then adds a new record to the database 282. Is omitted.
  • the abbreviated character string description unit 224 replaces the original character string included in the document and the resource with the abbreviated character string generated by the abbreviated character string generation unit 222. In order to reduce the amount of data to be transmitted and to reduce the processing amount of character string reading in the client 300, the abbreviated character string description unit 224 uses the abbreviated character string without leaving the original character string in the document and resource. It is desirable to substitute.
  • the document transmission unit 214 transmits to the client 300 a document that includes the shortened character string generated by the shortened character string generation unit 222 (that is, the original character string is replaced with the shortened character string).
  • the resource transmission unit 216 transmits to the client 300 a resource in which the original character string is replaced with a shortened character string.
  • the association information transmission unit 226 generates information (hereinafter also referred to as association information) for associating the original character string with the abbreviated character string based on the abbreviated character string record in the database 282, and transmits this to the client 300.
  • the association information transmitting unit 226 may transmit the association information to the client 300 only when the client 300 needs to restore the original character string from the shortened character string. That is, the association information may not include at least a part of the shortened character string record.
  • the abbreviated character string generation unit 222 when the abbreviated character string generation unit 222 generates an abbreviated character string for an arbitrary identifier given to an element in a document, a class defined by a style, a function defined by a program, or the like, A shortened character string is generated so that the original character string and the shortened character string have a one-to-one correspondence (for example, a shortened character string is generated from the original character string based on a predetermined algorithm, or the database 282). If the abbreviated character string has already been generated with respect to the original character string, the abbreviated character string is reused), and the client 300 does not restore the original character string. However, an element, class, or function is uniquely identified. In such a case, the association information transmission unit 226 may not transmit the association information about the shortened character string to the client 300.
  • the database 282 when a shortened character string is generated for a reserved word in a document or resource, the database 282 includes a shortened character string record corresponding to a shortened character string corresponding to the reserved word in advance.
  • the association information to be transmitted may not include information on reserved words (when information on reserved words is stored in advance in the database 382 of the client 300).
  • the association information transmission unit 226 transmits the association information generated based on the record in the database 282 to the client 300.
  • the request transmission unit 302 and the document reception unit 304 transmit a request to the intermediate server 200 as in the first embodiment, and receive the document transmitted by the intermediate server 200 in response to the request.
  • the resource receiving unit 308 receives a resource transmitted from the intermediate server 200.
  • the received document and resource are provided to the character string interpreter 316.
  • the association information receiving unit 314 receives the association information transmitted from the association information transmitting unit 226 of the intermediate server 200.
  • the association information receiving unit 314 generates a shortened character string record in the database 382 based on the received association information.
  • the character string interpretation unit 316 refers to the database 382 and interprets the shortened character string included in the document and the resource. Here, the character string interpretation unit 316 does not need to rewrite the shortened character string to the original character string. In the present embodiment, the character string interpretation unit 316 can interpret the shortened character string included in the document and the resource as it is by referring to the database 382, and the display control unit 310 can display the document based on the interpretation. It is.
  • the documents and resources received by the client 300 include a shortened character string that is not included in the association information received by the association information receiving unit 314.
  • a shortened character string that is not included in the association information received by the association information receiving unit 314.
  • the association information received by the association information receiving unit 314 corresponds to the reserved word.
  • the abbreviated character string is not included.
  • the original character string and a shortened character string have a one-to-one correspondence through the document and resources. If the abbreviated character string is generated so as to correspond, the information corresponding to the abbreviated character string is not included in the association information and may not be included in the database 382. In this case, the abbreviated character string is handled in the same manner as an ordinary character string in the client 300, and the display control unit 310 directly interprets the character string and causes the document to be displayed.
  • FIG. 11 is a flowchart illustrating processing of the intermediate server according to the third embodiment of the present disclosure.
  • the request receiving unit 202 receives a request from the client 300 (S301).
  • the document acquisition unit 204 acquires the document specified in the request (S303).
  • the document analysis unit 206 analyzes the acquired document (S305).
  • the resource acquisition unit 208 acquires the referenced resource (S309), and the resource analysis unit 220 acquires the acquired resource. Analysis is performed (S311). Thereafter, the shortened character string generation unit 222 generates a shortened character string for the shortenable character string detected in the document and the resource (S313). At this time, the shortened character string generation unit 222 adds a shortened character string record that associates the original character string and the shortened character string to the database 282 (S315).
  • the abbreviated character string description unit 224 replaces the original character string included in the document and the resource with the abbreviated character string generated by the abbreviated character string generation unit 222 (S317).
  • the document transmission unit 214 transmits the document including the shortened character string to the client 300 (S319).
  • the association information transmitting unit 226 transmits the association information generated based on the record of the database 382 to the client 300 (S321).
  • the resource transmission unit 216 transmits a resource including the shortened character string to the client 300 (S323).
  • FIG. 12 is a flowchart illustrating processing of a client according to the third embodiment of the present disclosure.
  • the request transmission unit 302 transmits a request to the intermediate server 200 (S331).
  • the document receiving unit 304 receives a document including a shortened character string transmitted by the intermediate server 200 in response to the request (S333).
  • the association information receiving unit 314 receives the association information transmitted from the intermediate server 200 (S335).
  • the association information receiving unit 314 generates a record in the database 382 based on the received association information (S337).
  • the resource receiving unit 308 receives the resource including the shortened character string transmitted by the intermediate server 200 (S339).
  • the character string interpretation unit 316 refers to the database 382 and interprets the shortened character string included in the document (S341). Note that the process of S341 may be executed in parallel with the process of S339, for example.
  • the character string interpretation unit 316 also interprets the shortened character string with reference to the database 382 for the resource referred to in the document received in S339 (S343).
  • the display control unit 310 causes the character string interpretation unit 316 to display the document using the result of interpreting the shortened character string included in the document and the resource (S345).
  • the shortened character string generation unit 222 adds a record that associates the original character string and the shortened character string to the database 282.
  • the database 382 can be referred to when generating a shortened character string, and the relationship between the original character string and the shortened character string can be made a one-to-one relationship through documents and resources.
  • the client 300 can interpret the abbreviated character string described in each of the document and the resource and display the document referring to the resource.
  • the association information transmission unit 226 generates association information that associates the shortened character string generated in the document and the resource with the original character string, based on the record in the database 282, and generates the association information. May be sent to.
  • the client 300 uses the abbreviated character string described in each of the document and the resource. It is possible to interpret and display a document that references the resource.
  • FIG. 13 is a flowchart illustrating processing of an intermediate server according to a modification example of the third embodiment of the present disclosure. Referring to FIG. 13, first, S301 to S305 are executed as in the example described above with reference to FIG.
  • the shortened character string generation unit 222 generates a shortened character string in advance for the shortenable character string detected in the document (S361). At this time, the abbreviated character string generation unit 222 adds a record that associates the original character string and the abbreviated character string to the database 282 (S315). Further, the abbreviated character string description unit 224 replaces the character string included in the document with the abbreviated character string in accordance with the record in the database 282 (S363). When the replacement is completed, the document transmission unit 214 transmits a document including the shortened character string to the client 300 (S319). Before or after the document transmission, or in parallel with this, the association information transmission unit 226 transmits the association information generated based on the records in the database 282 to the client 300 (S321).
  • the resource acquisition unit 208 acquires the referenced resource (S309).
  • the resource analysis unit 220 analyzes the acquired resource (S311).
  • the abbreviated character string description unit 224 replaces the character string included in the resource with the abbreviated character string based on the abbreviated character string record of the database 382 generated by the process of S315 (S365).
  • the resource transmission unit 216 transmits a resource including the shortened character string to the client 300 (S323).
  • the resource character string is replaced with the shortened character string based on the generation result of the shortened character string in the document.
  • the resource can be replaced with the shortened character string so as to be consistent with the document. Accordingly, the display of the document can be started by the client 300 without waiting for completion of the replacement of the shortened character string for the resource.
  • the processing flow of the client in this modification can be the same as that shown in FIG. 12 except that the resource reception unit 308 receives the resource after the document and the association information are received.
  • the detailed explanation is omitted.
  • the example in which the information that associates the original character string with the abbreviated character string is stored in the database is described. However, the information does not necessarily have to be stored in the database. Then, a file or the like may be used.
  • FIG. 14 is a block diagram illustrating a schematic functional configuration of an intermediate server and a client according to the fourth embodiment of the present disclosure.
  • the intermediate server 200 includes a request receiving unit 202, a document acquisition unit 204, a document analysis unit 206, a resource acquisition unit 208, an identifier generation unit 210, and an identifier description unit 212 as functional configurations.
  • FIG. 14 is a block diagram illustrating a schematic functional configuration of an intermediate server and a client according to the fourth embodiment of the present disclosure.
  • the intermediate server 200 includes a request receiving unit 202, a document acquisition unit 204, a document analysis unit 206, a resource acquisition unit 208, an identifier generation unit 210, and an identifier description unit 212 as functional configurations.
  • the client 300 includes a request transmission unit 302, a document reception unit 304, an association information reception unit 314, a character string interpretation unit 316, a cache determination unit 306, and a resource reception unit 308 as functional configurations. And a display control unit 310.
  • These functional configurations can be realized, for example, when a processor included in an information processing device that realizes the intermediate server 200 and the client 300 operates according to a program stored in a memory or a recording medium. Further, the cache 280 and the database 282 in the intermediate server 200 and the cache 380 and the database 382 in the client 300 can be realized by, for example, storage or memory of each information processing apparatus.
  • this embodiment is a combination of the first embodiment and the third embodiment. Since the functional configurations of the intermediate server 200 and the client 300 have already been described in the first and third embodiments, detailed descriptions thereof will be omitted.
  • FIG. 15 (Processing flow of intermediate server)
  • FIG. 15 is a flowchart illustrating processing of the intermediate server according to the fourth embodiment of the present disclosure.
  • the request receiving unit 202 receives a request from the client 300 (S401).
  • the document acquisition unit 204 acquires the document specified in the request (S403).
  • the document analysis unit 206 analyzes the acquired document (S405).
  • the resource acquisition unit 208 acquires the referenced resource for the reference to the resource detected in the document (S407).
  • the identifier generation unit 210 generates a unique identifier based on the acquired content of the resource (S409).
  • the identifier description unit 212 associates the generated unique identifier with a reference to a resource in the document (S411). Note that the above processing may be executed sequentially each time a reference to one or a plurality of resources is detected, or may be executed collectively after all references to resources are detected.
  • the shortened character string generation unit 222 generates a shortened character string for the shortenable character string detected in the document before or after the above S407 to S411 or in parallel (S413). At this time, the shortened character string generation unit 222 adds a shortened character string record that associates the original character string with the shortened character string to the database 282 (S415). Further, the abbreviated character string description unit 224 replaces the character string included in the document with the abbreviated character string in accordance with the abbreviated character string record in the database 282 (S417). Note that when S407 to S411 and S413 to S417 are executed in parallel as in the illustrated example, references to resources in the document do not have to be a target for generating a shortened character string.
  • the document transmission unit 214 transmits the document updated by the identifier description unit 212 and the shortened character string description unit 224 to the client 300 (S419).
  • the association information transmitting unit 226 transmits the association information generated based on the record of the database 282 to the client 300 (S421).
  • the resource analysis unit 220 analyzes the resource acquired in the above S407 before or after the transmission of the document and the association information or in parallel with this (S423). After that, the short character string description unit 224 replaces the character string included in the resource with the short character string based on the short character string record of the database 282 generated by the processing of the short character string generation unit 222 for the document ( S425). Thereafter, the resource transmission unit 216 transmits the resource to the client 300 in response to the resource request from the client 300 (S427).
  • FIG. 16 (FIG. 16A and FIG. 16B) is a flowchart showing processing of the client according to the fourth embodiment of the present disclosure.
  • the request transmission unit 302 transmits a request to the intermediate server 200 (S451).
  • the document receiving unit 304 receives the document transmitted by the intermediate server 200 in response to the request (S453).
  • the association information receiving unit 314 receives the association information transmitted from the intermediate server 200 before, after, or in parallel with the reception of the document (S455).
  • the association information receiving unit 314 generates a shortened character string record in the database 382 based on the received association information (S457).
  • the character string interpretation unit 316 refers to the database 382 and interprets the shortened character string included in the document (S459).
  • the display control unit 310 starts displaying the received document based on the interpretation by the character string interpretation unit 316 (S461).
  • the cache determination unit 306 determines whether or not a resource is stored in the cache 380 based on a unique identifier for each resource content associated with a reference to the resource in the document.
  • the cache determination unit 306 When it is determined that the resource is stored in the cache 380 (YES in S465), the cache determination unit 306 reads the resource from the cache 380 and provides it to the character string interpretation unit 316. That is, the cache determination unit 306 reuses the cached resource 380 (S467). On the other hand, when it is determined that the resource is not stored in the cache 380 (NO in S465), the cache determination unit 306 transmits a resource request to the intermediate server 200 (S469). The resource receiving unit 308 receives the resource transmitted by the intermediate server 200 in response to the request (S471).
  • the character string interpretation unit 316 interprets the shortened character string included in the reused resource or the resource received from the intermediate server 200 based on the record in the database 382 (S473).
  • the display control unit 310 continues to display the document by using the result obtained by the character string interpretation unit 316 interpreting the shortened character string included in the document and the resource (S475).
  • S465-S475 can be repeated until all references to resources in the document are found.
  • the display control unit 310 displays the entire document and no reference to the resource is found, or when no reference to the resource is found (NO in S463), the client 300 completes the display of the document (S463). S477).
  • the shortened character string generation unit 222 when the cache 380 in the client 300 is used for resources, it is desirable that the shortened character strings included in the resources are the same regardless of the opportunity to refer to the resources. Therefore, for example, in the intermediate server 200, the shortened character string generation unit 222 generates a shortened character string using a predetermined algorithm, and if the original character string is the same, the same shortened character string is automatically generated. You may do it. Alternatively, by using the database 282 in the intermediate server 200 in common for a plurality of documents, the same abbreviated character string may be generated if the original character string is the same.
  • FIG. 17 is a flowchart illustrating processing of the intermediate server according to the fifth embodiment of the present disclosure. Note that the illustrated series of processing can be executed by a processor included in an information processing apparatus that implements the intermediate server 200 operating according to a program stored in a memory or a recording medium.
  • the processor receives a request from the client 300 (S501).
  • the processor acquires the document specified in the request (S503).
  • the processor may acquire the document from the distribution source server 100 or may acquire the document internally from the cache.
  • the processor acquires a resource referred to in the document (S505).
  • the resource may also be acquired from the distribution source server 100 or may be acquired internally from the cache.
  • the processor generates intermediate data based on the acquired document and resource (S507).
  • the generation of intermediate data may include, for example, generation of a DOM (Document Object Model) by parsing an HTML document, generation of a Computed Style by CSS processing, and conversion to an intermediate representation by parsing of JavaScript.
  • the processor transmits the generated intermediate data to the client 300 (S509).
  • FIG. 18 is a flowchart showing processing of a client according to the fifth embodiment of the present disclosure.
  • the series of processes shown in the figure can be executed by a processor provided in an information processing apparatus that implements the client 300 operating according to a program stored in a memory or a recording medium.
  • the processor transmits a request to the intermediate server 200 (S521).
  • the processor receives the intermediate data based on the document and the resource transmitted by the intermediate server 200 in response to the request (S523).
  • the processor generates a layout based on the received intermediate data (S525), and displays a document according to the layout (S527).
  • part of the processing for displaying the document on the client 300 is executed instead on the intermediate server 200. If the processing capability of the intermediate server 200 is higher than that of the client 300, this shortens the time from when the request is sent by the client 300 until the display of the document is completed.
  • intermediate server 200 what kind of intermediate data is generated by the intermediate server 200 is appropriately determined according to the network status, the processing capability of the client 300, and the like. For example, only one of the above three examples relating to the HTML document may be employed, any two may be employed, or all three may be employed.
  • FIG. 19 is a flowchart illustrating processing of the intermediate server according to the sixth embodiment of the present disclosure. Note that the illustrated series of processing can be executed by a processor included in an information processing apparatus that implements the intermediate server 200 operating according to a program stored in a memory or a recording medium. Only the present embodiment will be described assuming that the document is an HTML document and the resource is a CSS.
  • the processor receives a request from the client 300 (S601).
  • the processor acquires the HTML document specified in the request (S603). Similar to the other embodiments described above, the processor may acquire the HTML document from the distribution source server 100 or may acquire it internally from the cache.
  • the processor acquires the CSS referred to in the HTML document (S605).
  • the CSS may be acquired from the distribution source server 100 or may be acquired internally from the cache.
  • the processor specifies a style defined by CSS for each element of the HTML document (S607).
  • a style defined by CSS for each element of the HTML document S607.
  • the processor updates the CSS based on the processing result of S607 (S609), and transmits the CSS updated together with the document to the client 300 (S611).
  • the client 300 displays an HTML document based on the HTML document and CSS received from the intermediate server 200. Since the processing at this time is the same as the processing for displaying a normal HTML document, detailed description thereof is omitted. However, in the case of the present embodiment, the CSS referred to by the client 300 is optimized by the processing in the intermediate server 200 as described above. Therefore, the client 300 can omit most of the processing for specifying the style defined for each element of the HTML document. Therefore, if the processing capacity of the intermediate server 200 is higher than that of the client 300, this shortens the time from when the request is transmitted by the client 300 until the display of the document is completed.
  • the resource is CSS.
  • other resources such as images and scripts may be referred to together with CSS.
  • FIG. 20 is a block diagram illustrating a schematic functional configuration of the intermediate server and the client according to the seventh embodiment of the present disclosure.
  • the intermediate server 200 includes, as functional configurations, a request reception unit 202, a document acquisition unit 204, a document analysis unit 206, a resource acquisition unit 208, an image transcoding unit 228, and an image reference update unit. 230, a document transmission unit 214, and a resource transmission unit 216.
  • the client 300 includes a request transmission unit 302, a document reception unit 304, a resource reception unit 308, and a display control unit 310 as functional configurations.
  • These functional configurations can be realized, for example, when a processor included in an information processing device that realizes the intermediate server 200 and the client 300 operates according to a program stored in a memory or a recording medium. Further, the cache 280 in the intermediate server 200 and the cache 380 in the client 300 can be realized by, for example, storage or memory of each information processing apparatus.
  • the request reception unit 202 and the document acquisition unit 204 acquire a document in response to a request from the client 300, as in the first embodiment.
  • the document analysis unit 206 analyzes the document acquired by the document acquisition unit 204 and detects a reference to a resource included in the document.
  • the resource acquisition unit 208 acquires the referenced resource when the document analysis unit 206 detects a reference to the resource.
  • the resources acquired by the resource acquisition unit 208 include images of various formats.
  • the image transcoding unit 228 transcodes the acquired image into a predetermined format, and stores the transcoded image in the cache 280.
  • the image reference update unit 230 updates the reference to the image resource included in the document to the reference to the image after transcoding by the image transcoding unit 228 stored in the cache 280.
  • the document transmission unit 214 transmits the document whose reference is updated to the client 300.
  • the resource transmission unit 216 transmits the resource stored in the cache 280 in response to a request from the client 300.
  • the transmitted resource can include an image transcoded by the image transcoding unit 228 into a predetermined format.
  • the request transmission unit 302 and the document reception unit 304 transmit a request to the intermediate server 200 as in the first embodiment, and receive the document transmitted by the intermediate server 200 in response to the request.
  • the display control unit 310 displays the received document.
  • the resource receiving unit 308 transmits a request to the intermediate server 200 and receives the resource transmitted in response to the request.
  • the resource received here may include an image transcoded into a predetermined format by the image transcoding unit 228 described above.
  • the display control unit 310 causes the document to be displayed using the resource stored in the cache 380 or the resource received by the resource receiving unit 308.
  • FIG. 21 is a flowchart illustrating processing of the intermediate server according to the seventh embodiment of the present disclosure.
  • the request receiving unit 202 receives a request from the client 300 (S701).
  • the document acquisition unit 204 acquires the document specified in the request (S703).
  • the document analysis unit 206 analyzes the acquired document (S705).
  • the image reference update unit 230 changes a reference to an image resource included in the document to a reference to the image after transcoding. (S709).
  • the identifier such as the file name of the image after the transcoding is determined first. The determined identifier is described in the document reference and is temporarily stored in the memory of the intermediate server 200, and is associated with the transcoded image to be generated later.
  • the document transmission unit 214 transmits the document with the updated reference to the image resource to the client 300 (S711).
  • the resource acquisition unit 208 acquires an image that is referred to (S713).
  • the image transcoding unit 228 transcodes the acquired image into a predetermined format (S715). Note that if the transcoded image is already stored in the cache 280, the image transcoding unit 228 may omit the transcoding process again.
  • the resource transmission unit 216 transmits a resource including the transcoded image to the client 300 in response to the resource request from the client 300 (S717).
  • the intermediate server 200 executes the transcoding of the image, so that the time until the client 300 completes the display of the document can be shortened.
  • the image transcoding unit 228 performs image transcoding.
  • the document transmission unit 214 may transmit the document to the client 300.
  • the processing in the client 300 is the same as the processing for displaying a normal document except that a transcoded image is included in the referenced resource, and thus detailed description thereof is omitted. To do.
  • images included in resources acquired from the distribution source server 100 are described in various formats such as JPEG, PNG, and GIF. Moreover, it is often the case that images do not strictly follow these formats. Therefore, when an image acquired from the distribution source server 100 (including an image cached by the intermediate server 200 or the client 300) is decoded by the client 300, it is necessary to assume various cases, so that the processing is optimized. It was difficult to do and the processing efficiency was not always high. In addition, images often occupy a large proportion of data transferred from the intermediate server 200 to the client 300 for document display, and the demand for reducing the amount of image data is still high.
  • the intermediate server 200 transcodes the image. For example, even if the image transcode 282 of the intermediate server 200 only transcodes the image acquired from the distribution source server 100 into a genuine format of each format, the decoding at the client 300 can be optimized to some extent. Thus, the display of the document can be speeded up. Further, when the image transcode 282 transcodes the image acquired from the distribution source server 100 into one or a plurality of predetermined formats that can optimize the decoding process in the client 300, the display of the document can be performed. Further speedup is possible.
  • image format (8-4. Format example)
  • the image format described below may be implemented in combination with transcoding in an intermediate server as in the present embodiment, for example, but is not limited to such an example, and when implemented as the image format itself Can also provide various advantages. That is, the embodiment of the present disclosure may include an image format (for example, an image processing apparatus or an image processing method that handles an image of the format) independent of transcoding.
  • 22 and 23 are diagrams for describing image file generation processing in accordance with an image format that can be applied in the seventh embodiment of the present disclosure.
  • the process described here can be executed by, for example, the image transcoding unit 228 of the intermediate server 200 described above.
  • a vector component 704, a bitmap component 706, and an approximation error 708 are calculated from an original image 700 described in a bitmap format (including JPEG, PNG, GIF, etc.).
  • the original image 700 is divided into two area groups 702a and 702b (S751).
  • the region group 702a is a wide region having a low spatial frequency.
  • the region group 702b is a narrow region having a high spatial frequency.
  • the division of the region can be realized by various known methods such as a split-and-merge method.
  • the vector component 704 is generated by the processing of S753 to S761.
  • a shading model of three-dimensional computer graphics can be applied. In the shading model, specular and the like can be expressed by setting a cubic surface and a light source.
  • the vector component 704 can be generated by expressing the approximate outline and the color in the outline for each region of the region group 702a.
  • a bitmap component 706 is generated by compressing it as an image (S763).
  • S763 a known technique such as DCT (Discrete Cosine Transform) or VQ (Vector Quantization) can be used.
  • an encoded image file 714 is generated based on the vector component 704, the bitmap component 706, and the approximation error 708.
  • the area of the original image 700 is divided based on the bounding boxes (bbox) of the vector component 704 and the bitmap component 706, and a kd tree 710 indicating the division is generated (S767).
  • the approximate error component 712 can be obtained by allocating the approximate error 708 by the area dividing line of the kd tree 710 (S769).
  • the image file 714 is generated by serializing the vector component 704, the bitmap component 706, the kd tree 710, and the approximate error component 712 thus obtained (S771).
  • a kd tree 710 is described as structure data at the top. As a result, it is possible to quickly seek the component of the region to be drawn. Subsequently, a vector component 704, a bitmap component 706, and an approximate error component 712 are described. For the components other than the kd tree 710, the arrangement order in the image file 714 is not particularly limited.
  • each vertex data is normalized by bbox. Therefore, the number of significant digits required by the mantissa part can be reduced and the data can be compressed.
  • the approximate error component 712 run-length compression is possible if most of the error zero region is present. Further, even if there is an error, the distribution should be concentrated on a small-scale error, so that it can be compressed using an algorithm such as LZW.
  • the vector component 704 represents, for example, that a region surrounded by a Bezier curve is solidly painted with a single color.
  • An example of the description content of the vector component 704 is shown below. In the example, the description content is expressed in PostScript format for the sake of explanation, but the actual vector component 704 is compressed after being binary encoded, for example. newpath 0 100 moveto 100 50 150 50 250 0 rcurveto 100 -50 150 -50 250 0 rcurveto closepath 0 .3 1 .0 setcolor fill
  • the bitmap component 706 represents applying a bitmap pattern to a rectangular area, for example.
  • An example of the description content of the bitmap component 706 is shown below. In the example, the description content is expressed in PostScript format for the sake of explanation, but the actual bitmap component 706 is compressed after being binary encoded, for example.
  • xxxx piximage indicates a bitmap used as a fill pattern. newpath 100 100 moveto 100 0 rlineto 0 100 rlineto -100 0 rlineto closepath xxxx piximage fill
  • the display control unit 310 of the client 300 draws the vector components 704 included in the image file 714 in order.
  • the path of the vector component 704 drawn later is prioritized.
  • the display control unit 310 sequentially draws the bitmap components 706 included in the image file 714. At this time, the drawing by the bitmap component 706 is overwritten with the drawing by the vector component 704. If there is an overlap in the path between the bitmap components 706, the path of the bitmap component 706 drawn later is given priority.
  • the display control unit 310 adds the approximate error component 712 to the image of each region.
  • the approximate error component 712 may be added for each of RGBA (Red, Green, Blue, Alpha), for example.
  • the display control unit 310 of the client 300 When drawing during download, as a first example, the display control unit 310 of the client 300 performs the vector component 704, the bitmap component 706, and the approximate error component 712 in order in accordance with the download progress of the image file 714. draw. As a result, first, a wide range of colors is determined, and then a display in which the image is detailed in stages is possible.
  • the display control unit 310 of the client 300 first downloads the kd tree 710 at the head of the image file 714.
  • the display control unit 310 can obtain pointer information from the kd tree 710 to the vector component 704, the bitmap component 706, and the approximate error component 712 corresponding to a specific region. Accordingly, the display control unit 310 downloads the vector component 704, the bitmap component 706, and the approximate error component 712 referred to by the pointer information using a file seek or HTTP range request.
  • the display control unit 310 draws the specific range in the order of the vector component 704, the bitmap component 706, and the approximate error component 712, and ends the decoding for the region.
  • the communication capacity can be reduced by reducing the file size of the image referred to in the document.
  • the decoding process can be speeded up by vectorizing these parts by transcoding.
  • FIG. 24 is a block diagram for describing a hardware configuration example of the information processing apparatus according to the embodiment of the present disclosure.
  • the illustrated information processing apparatus 900 can realize, for example, a server and a client in the above-described embodiment.
  • the information processing apparatus 900 includes a CPU (Central Processing unit) 901, a ROM (Read Only Memory) 903, and a RAM (Random Access Memory) 905.
  • the information processing apparatus 900 may include a host bus 907, a bridge 909, an external bus 911, an interface 913, an input device 915, an output device 917, a storage device 919, a drive 921, a connection port 923, and a communication device 925.
  • the information processing apparatus 900 may include an imaging device 933 and a sensor 935 as necessary.
  • the information processing apparatus 900 may include a processing circuit called DSP (Digital Signal Processor) or ASIC (Application Specific Integrated Circuit) instead of or in addition to the CPU 901.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • the CPU 901 functions as an arithmetic processing device and a control device, and controls all or a part of the operation in the information processing device 900 according to various programs recorded in the ROM 903, the RAM 905, the storage device 919, or the removable recording medium 927.
  • the ROM 903 stores programs and calculation parameters used by the CPU 901.
  • the RAM 905 primarily stores programs used in the execution of the CPU 901, parameters that change as appropriate during the execution, and the like.
  • the CPU 901, the ROM 903, and the RAM 905 are connected to each other by a host bus 907 configured by an internal bus such as a CPU bus. Further, the host bus 907 is connected to an external bus 911 such as a PCI (Peripheral Component Interconnect / Interface) bus via a bridge 909.
  • PCI Peripheral Component Interconnect / Interface
  • the input device 915 is a device operated by the user, such as a mouse, a keyboard, a touch panel, a button, a switch, and a lever.
  • the input device 915 may be, for example, a remote control device that uses infrared rays or other radio waves, or may be an external connection device 929 such as a mobile phone that supports the operation of the information processing device 900.
  • the input device 915 includes an input control circuit that generates an input signal based on information input by the user and outputs the input signal to the CPU 901. The user operates the input device 915 to input various data and instruct processing operations to the information processing device 900.
  • the output device 917 is a device that can notify the user of the acquired information visually or audibly.
  • the output device 917 can be, for example, a display device such as an LCD (Liquid Crystal Display), a PDP (Plasma Display Panel), an organic EL (Electro-Luminescence) display, an audio output device such as a speaker and headphones, and a printer device.
  • the output device 917 outputs the result obtained by the processing of the information processing device 900 as video such as text or an image, or outputs it as audio such as voice or sound.
  • the storage device 919 is a data storage device configured as an example of a storage unit of the information processing device 900.
  • the storage device 919 includes, for example, a magnetic storage device such as an HDD (Hard Disk Drive), a semiconductor storage device, an optical storage device, or a magneto-optical storage device.
  • the storage device 919 stores programs executed by the CPU 901, various data, various data acquired from the outside, and the like.
  • the drive 921 is a reader / writer for a removable recording medium 927 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, and is built in or externally attached to the information processing apparatus 900.
  • the drive 921 reads information recorded on the attached removable recording medium 927 and outputs the information to the RAM 905.
  • the drive 921 writes a record in the attached removable recording medium 927.
  • the connection port 923 is a port for directly connecting a device to the information processing apparatus 900.
  • the connection port 923 can be, for example, a USB (Universal Serial Bus) port, an IEEE 1394 port, a SCSI (Small Computer System Interface) port, or the like.
  • the connection port 923 may be an RS-232C port, an optical audio terminal, an HDMI (High-Definition Multimedia Interface) port, or the like.
  • the communication device 925 is a communication interface configured with, for example, a communication device for connecting to the communication network 931.
  • the communication device 925 may be, for example, a communication card for wired or wireless LAN (Local Area Network), Bluetooth (registered trademark), or WUSB (Wireless USB).
  • the communication device 925 may be a router for optical communication, a router for ADSL (Asymmetric Digital Subscriber Line), or a modem for various communication.
  • the communication device 925 transmits and receives signals and the like using a predetermined protocol such as TCP / IP with the Internet and other communication devices, for example.
  • the communication network 931 connected to the communication device 925 is a wired or wireless network, such as the Internet, a home LAN, infrared communication, radio wave communication, or satellite communication.
  • the imaging device 933 uses various members such as an imaging element such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor), and a lens for controlling the formation of a subject image on the imaging element. It is an apparatus that images a real space and generates a captured image.
  • the imaging device 933 may capture a still image or may capture a moving image.
  • the sensor 935 is various sensors such as an acceleration sensor, a gyro sensor, a geomagnetic sensor, an optical sensor, and a sound sensor.
  • the sensor 935 acquires information about the state of the information processing apparatus 900 itself, such as the posture of the information processing apparatus 900, and information about the surrounding environment of the information processing apparatus 900, such as brightness and noise around the information processing apparatus 900, for example. To do.
  • the sensor 935 may include a GPS sensor that receives a GPS (Global Positioning System) signal and measures the latitude, longitude, and altitude of the apparatus.
  • GPS Global Positioning System
  • Each component described above may be configured using a general-purpose member, or may be configured by hardware specialized for the function of each component. Such a configuration can be appropriately changed according to the technical level at the time of implementation.
  • Embodiments of the present disclosure include, for example, an information processing apparatus (server apparatus or client apparatus) as described above, a system, an information processing method executed by the information processing apparatus or system, and a program for causing the information processing apparatus to function And a non-transitory tangible medium on which the program is recorded. It should be noted that the plurality of embodiments described above can be implemented in any combination within the scope obvious to those skilled in the art from the description of the present specification, even if it is not specified that the combinations are particularly possible. .
  • a document acquisition unit that acquires a document including a reference to a resource in response to a request from a client;
  • An identifier generator that generates a unique identifier for each content of the resource;
  • An identifier description that associates the identifier with a reference to the resource in the document;
  • a server apparatus comprising: a document transmission unit configured to transmit the document and an identifier associated with a reference to the resource to the client.
  • the server device according to (1) or (2), further including a resource advance delivery unit.
  • the resource pre-distribution unit pre-compiles the program and transmits the program to the client when the resource estimated to be used frequently is a program. .
  • the server device according to any one of (1) to (4), wherein the identifier includes a hash calculated based on a content of the resource.
  • the document transmission unit transmits the document in which a dummy identifier is associated with a reference to the resource before the identifier is generated to the client, and after the identifier is generated, 6.
  • the server device according to any one of (1) to (5), wherein information that associates the identifier is transmitted to the client.
  • a request transmission unit that transmits a request to the server;
  • a document receiving unit that receives a document including a reference to a resource transmitted from the server in response to the request, and a unique identifier for each content of the resource associated with the reference to the resource;
  • a cache determination unit that determines whether or not the resource is stored in a cache based on the identifier.
  • the client device receives a document including a reference to the resource associated with the identifier in addition to the original identifier.
  • Client device receives the predetermined resource associated with the identifier from the server before the request and stores the received resource in a cache.
  • Client device (10) The client device according to (9), wherein when the predetermined resource is a program, the resource advance receiving unit receives the precompiled program and caches the received program.
  • the resource advance receiving unit caches the received program in a storage area different from resources other than the program.
  • the client device according to any one of (7) to (11), wherein the identifier includes a hash calculated based on a content of the resource.
  • the document reception unit receives, from the server, information associating the identifier with the dummy identifier after receiving the document in which a dummy identifier is associated with the reference to the resource from the server.
  • the client device according to any one of (12) to (12).
  • the cache determination unit realizes a function of transmitting a request for the identifier to the server when referring to the resource in a state where a dummy identifier is associated with a reference to the resource.
  • the client device according to 13).
  • DESCRIPTION OF SYMBOLS 10 System 100 Distribution server 200 Intermediate server 202 Request receiving part 204 Document acquisition part 206 Document analysis part 208 Resource acquisition part 210 Identifier generation part 212 Identifier description part 214 Document transmission part 216 Resource transmission part 218 Resource advance distribution part 220 Resource analysis part 222 Short character string generation unit 224 Short character string description unit 226 Association information transmission unit 228 Image transcoding unit 230 Image reference update unit 280 Cache 282 Database 300 Client 302 Request transmission unit 304 Document reception unit 306 Cache determination unit 308 Resource reception unit 310 Display Control unit 312 Resource preceding reception unit 314 Association information reception unit 316 Character string interpretation unit 380 Interview 382 database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】クライアントからのリクエストに応じてサーバがドキュメントを提供するシステムにおいて、サーバの処理能力を活用することによってクライアントへのドキュメントの提供を高速化する。 【解決手段】クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得するドキュメント取得部と、上記リソースの内容ごとに一意な識別子を生成する識別子生成部と、上記ドキュメントにおいて上記識別子を上記リソースへの参照に関連付ける識別子記述部と、上記ドキュメントと、上記リソースへの参照に関連付けられた識別子とを上記クライアントに送信するドキュメント送信部とを含むサーバ装置が提供される。

Description

サーバ装置、クライアント装置、情報処理方法および記録媒体
 本開示は、サーバ装置、クライアント装置、情報処理方法および記録媒体に関する。
 クライアントからのリクエストに応じてサーバがドキュメントを提供するシステムは、例えばHTML(Hyper Text Markup Language)ドキュメントを提供するWWW(World Wide Web)のように、今日広く普及している。こうしたシステムにおいて、ドキュメントをクライアントに提供するための所要時間、より具体的にはクライアントがリクエストを送信してからドキュメントがクライアントで表示されるまでの時間を短縮することは、長年取り組まれてきた課題である。例えば、特許文献1には、メモリリソースやウェブサービスへのアクセスが制限されている場合でもキャッシュを効率よく利用するために、ウェブサーバにおいてコンテンツをキャッシュする技術が記載されている。
特開2011-108102号公報
 しかしながら、例えばHTMLにおける画像/動画やスクリプトなどのように、様々なリソースを参照するリッチなドキュメントが増加する傾向にあり、上記のような高速化技術のさらなる進歩が求められている。また、サーバやクライアントの処理能力を向上させることも高速化に寄与するが、例えばクライアントがモバイル装置であるような場合には、処理能力の向上は必ずしも容易ではない。
 そこで、本開示では、クライアントからのリクエストに応じてサーバがドキュメントを提供するシステムにおいて、サーバの処理能力を活用することによってクライアントへのドキュメントの提供を高速化することを可能にする、新規かつ改良されたサーバ装置、クライアント装置、情報処理方法および記録媒体を提案する。
 本開示によれば、クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得するドキュメント取得部と、上記リソースの内容ごとに一意な識別子を生成する識別子生成部と、上記ドキュメントにおいて上記識別子を上記リソースへの参照に関連付ける識別子記述部と、上記ドキュメントと、上記リソースへの参照に関連付けられた識別子とを上記クライアントに送信するドキュメント送信部とを含むサーバ装置が提供される。
 また、本開示によれば、サーバにリクエストを送信するリクエスト送信部と、上記リクエストに応じて上記サーバから送信された、リソースへの参照を含むドキュメントと、上記リソースへの参照に関連付けられた上記リソースの内容ごとに一意な識別子とを上記サーバから受信するドキュメント受信部と、上記識別子に基づいて、上記リソースがキャッシュに格納されているか否かを判定するキャッシュ判定部とを含むクライアント装置が提供される。
 また、本開示によれば、クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得することと、上記リソースの内容ごとに一意な識別子を生成することと、プロセッサが、上記ドキュメントにおいて上記識別子を上記リソースへの参照に関連付けることと、上記ドキュメントと、上記リソースへの参照に関連付けられた識別子とを上記クライアントに送信することとを含む情報処理方法が提供される。
 また、本開示によればサーバにリクエストを送信する機能と、上記リクエストに応じて送信された、リソースへの参照を含むドキュメントと、上記リソースへの参照に関連付けられた上記リソースの内容ごとに一意な識別子とを上記サーバから受信する機能と、上記識別子に基づいて、上記リソースがキャッシュに格納されているか否かを判定する機能とをコンピュータに実現させるためのプログラムが記録された一時的でない有形の記録媒体が提供される。
 以上説明したように本開示によれば、クライアントからのリクエストに応じてサーバがドキュメントを提供するシステムにおいて、サーバの処理能力を活用することによってクライアントへのドキュメントの提供を高速化することができる。
本開示のいくつかの実施形態が適用されるシステムの概略的な構成を示す図である。 本開示の第1の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。 本開示の第1の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第1の実施形態に係るクライアントの処理を示すフローチャートである。 本開示の第1の実施形態の変形例に係る中間サーバの処理を示すフローチャートである。 本開示の第1の実施形態の変形例に係るクライアントの処理を示すフローチャートである。 本開示の第2の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。 本開示の第2の実施形態に係る中間サーバがリクエストを受信する前の処理を示すフローチャートである。 本開示の第2の実施形態に係るクライアントがリクエストを送信する前の処理を示すフローチャートである。 本開示の第3の実施形態に係る中間サーバの概略的な機能構成を示すブロック図である。 本開示の第3の実施形態に係るクライアントの概略的な機能構成を示すブロック図である。 本開示の第3の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第3の実施形態に係るクライアントの処理を示すフローチャートである。 本開示の第3の実施形態の変形例に係る中間サーバの処理を示すフローチャートである。 本開示の第4の実施形態に係る中間サーバの概略的な機能構成を示すブロック図である。 本開示の第4の実施形態に係るクライアントの概略的な機能構成を示すブロック図である。 本開示の第4の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第4の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第4の実施形態に係るクライアントの処理を示すフローチャートである。 本開示の第4の実施形態に係るクライアントの処理を示すフローチャートである。 本開示の第5の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第5の実施形態に係るクライアントの処理を示すフローチャートである。 本開示の第6の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第7の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。 本開示の第7の実施形態に係る中間サーバの処理を示すフローチャートである。 本開示の第7の実施形態で適用されうる画像フォーマットに従った画像ファイルの生成処理について説明するための図である。 本開示の第7の実施形態で適用されうる画像フォーマットに従った画像ファイルの生成処理について説明するための図である。 本開示の実施形態に係る情報処理装置のハードウェア構成例を説明するためのブロック図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 なお、説明は以下の順序で行うものとする。
 1.システム構成
 2.第1の実施形態
  2-1.機能構成
  2-2.処理フロー
  2-3.変形例
 3.第2の実施形態
  3-1.機能構成
  3-2.処理フロー
 4.第3の実施形態
  4-1.機能構成
  4-2.処理フロー
  4-3.変形例
 5.第4の実施形態
  5-1.機能構成
  5-2.処理フロー
 6.第5の実施形態
 7.第6の実施形態
 8.第7の実施形態
  8-1.機能構成
  8-2.処理フロー
  8-3.トランスコードの例
  8-4.フォーマットの例
  8-5.デコード処理の例
 9.ハードウェア構成
 10.補足
 (1.システム構成)
 図1は、本開示のいくつかの実施形態が適用されるシステムの概略的な構成を示す図である。図1を参照すると、システム10は、配信元サーバ100と、中間サーバ200と、クライアント300とを含む。配信元サーバ100、中間サーバ200、およびクライアント300は、例えばインターネットなどのネットワークによって相互に接続されている。
 配信元サーバ100および中間サーバ200は、いずれも1または複数のサーバ装置によって実現されるサーバである。配信元サーバ100は、ユーザに提供されるドキュメントと、ドキュメントが参照するリソースとを保持している。ドキュメントおよびリソースは、クライアント300からのリクエストに応じて、配信元サーバ100から1または複数の中間サーバ200を経由して、クライアント300に配信される。例えば、中間サーバ200がドキュメントやリソースをキャッシュとして保持し、キャッシュされているドキュメントやリソースを配信元サーバ100に代わってクライアント300に配信することによって、クライアント300に迅速にドキュメントを提供することができる。
 また、ドキュメントやリソースの一部は、クライアント300でもキャッシュとして保持されている。ドキュメントやリソースがクライアント300で保持されている場合、ネットワークを介したデータの送受信をしなくてもよいため、ドキュメントはより迅速に表示される。ただし、クライアント300で保持することが可能なキャッシュの量には限界があるため、より多くのキャッシュを保持することが可能な中間サーバ200を設けることには利点がある。中間サーバ200は、例えば後述する実施形態のように、キャッシュの保持に限らず、高速化のための様々な処理を実行しうる。
 なお、配信元サーバ100および中間サーバ200を実現する1または複数のサーバ装置は、CPU(Central Processing unit)などのプロセッサを備えた情報処理装置でありうる。また、クライアント300もプロセッサを備えた情報処理装置によって実現されうる。クライアント300には、ディスプレイやスピーカなどの出力装置や、タッチパネルなどの入力装置、および撮像装置などがさらに備えられてもよい。より具体的には、例えば、クライアント300は、スマートフォン、パーソナルコンピュータ、タブレット、メディアプレーヤ、テレビ、ゲーム機などといった装置でありうる。上記の各装置を実現しうる情報処理装置の具体的なハードウェア構成については、後段でさらに詳細に説明する。
 システム10は、例えばHTMLのようなマークアップ言語で記述されたドキュメントの配信に利用されうる。この場合、リソースは、例えばJavaScriptのようなスクリプトや、CSS(Cascading Style Sheets)のようなスタイル定義情報、画像および動画などでありうる。なお、システム10は、マークアップ言語で記述されたものに限らず、各種のドキュメント、またはドキュメント以外のデータ(画像もしくは動画などを含む)の配信に利用されうる。
 (2.第1の実施形態)
 (2-1.機能構成)
 図2は、本開示の第1の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。図2を参照すると、中間サーバ200は、機能構成として、リクエスト受信部202と、ドキュメント取得部204と、ドキュメント解析部206と、リソース取得部208と、識別子生成部210と、識別子記述部212と、ドキュメント送信部214と、リソース送信部216とを含む。クライアント300は、機能構成として、リクエスト送信部302と、ドキュメント受信部304と、キャッシュ判定部306と、リソース受信部308と、表示制御部310とを含む。
 これらの機能構成は、例えば、中間サーバ200およびクライアント300をそれぞれ実現する情報処理装置に備えられるプロセッサが、メモリまたは記録媒体に格納されたプログラムに従って動作することによって実現されうる。また、中間サーバ200におけるキャッシュ280、およびクライアント300におけるキャッシュ380は、例えば、それぞれの情報処理装置のストレージまたはメモリによって実現されうる。
  (中間サーバ)
 中間サーバ200では、リクエスト受信部202がクライアント300からのリクエストを受信する。リクエストが受信されると、ドキュメント取得部204が、リクエストに応じて、リクエストにおいて指定されたドキュメントを取得する。このとき、ドキュメント取得部204は、キャッシュ280に格納されたドキュメントを内部的に取得してもよい。指定されたドキュメントがキャッシュ280に格納されていない場合、ドキュメント取得部204は配信元サーバ100にリクエストを送信し、リクエストに応じて配信元サーバ100から送信されたドキュメントを取得する。
 ドキュメント解析部206は、ドキュメント取得部204が取得したドキュメントを解析する。より具体的には、ドキュメント解析部206は、ドキュメントに含まれるリソースへの参照を検出する。ドキュメント解析部206によってリソースへの参照が検出された場合、リソース取得部208が、参照されているリソースを取得する。このとき、リソース取得部208は、キャッシュ280に格納されたリソースを内部的に取得してもよい。参照されているリソースがキャッシュ280に格納されていない場合、リソース取得部208は配信元サーバ100にリクエストを送信し、リクエストに応じて配信元サーバ100から送信されたリソースを取得する。配信元サーバ100から新たに取得されたリソースは、キャッシュ280に格納される。
 識別子生成部210は、リソース取得部208によって取得されたリソースについて、リソースの内容ごとに一意な識別子を生成する。例えば、識別子生成部210は、リソースの内容に基づいて所定のアルゴリズムでハッシュを算出してもよい。この場合、算出されたハッシュは、リソースの内容ごとに一意な識別子になりうる。なお、識別子生成部210は、必ずしもハッシュをそのまま識別子として利用しなくてもよく、ハッシュに基づいてリソースを同定した上で、別途識別子を生成してリソースに付与してもよい。識別子生成部210は、生成した識別子をキャッシュ280に格納されているリソースに関連付けてもよい。
 より具体的には、例えば、識別子生成部210は、リソースを種類に関わらずバイナリデータとみなし、ハッシュ関数を利用して一意な識別子を生成する。ハッシュ関数としては、例えばMD5、SHA-1、またはSHA-256などを利用してもよい。さらに、識別子生成部210は、1つのリソースについて、複数のハッシュ関数を利用して複数の識別子を生成してもよい。これらの識別子がすべて一致した場合にリソースを同一と判定することで、識別子の一意性をより高めることができる。
 後述するように、識別子生成部210が生成するリソースの内容ごとに一意な識別子によって、クライアント300におけるドキュメントの表示を高速化させることができる。上記のハッシュ関数による識別子の生成の例のように、識別子生成部210による一意な識別子の生成にもある程度の時間はかかるが、一般に中間サーバ200の処理能力はクライアント300よりも高く、また後述する変形例のように識別子の生成と並行してクライアント300でドキュメントの表示を開始することも可能であるため、結果としてドキュメントの表示の高速化が達成される。
 識別子記述部212は、識別子生成部210によって生成された識別子を、ドキュメントにおけるリソースへの参照に関連付ける。より具体的には、例えば、識別子記述部212は、識別子生成部210が生成した識別子を、オリジナルの識別子に追加してリソースへの参照に関連付ける。例えば、HTMLドキュメントは、URL(Uniform Resource Locator)をオリジナルの識別子とするリソースへの参照を含む。この場合、識別子記述部212は、オリジナルの識別子であるURLを残しつつ、識別子生成部210によって生成された識別子、例えばハッシュを追加的にドキュメントに記述してもよい。
 一例として、HTMLドキュメントに下記の(a)に示すようなURLを含む画像のリソースへの参照が含まれていた場合、識別子記述部212は、(b)に示すように、識別子生成部210によって生成された識別子であるハッシュ(new_id)を追加的にドキュメントに記述してもよい。
(a)<img src=“resource/image001.jpg”/>
(b)<img src=“resource/image001.jpg” new_id=“736f6e7920706174656e74”/>
 後述するように、クライアント300は、ドキュメントの参照に際して、識別子記述部212によって追加的に記述された識別子に基づいてリソースのキャッシュの有無を判断し、キャッシュがない場合には中間サーバ200にリソースをリクエストするように構成されている。しかし、ネットワーク上には、クライアント300以外のクライアント、つまり追加的に記述された識別子を参照しないクライアントも存在しうる。識別子記述部212がオリジナルの識別子を残しておくことによって、そのようなクライアントとの間で下位互換性を確保することができる。
 あるいは、識別子記述部212は、識別子生成部210が生成した識別子によって、ドキュメントにおけるリソースへの参照に含まれるオリジナルの識別子を上書きしてもよい。この場合、例えば、上記の(a)に示すようなリソースへの参照は、下記の(c)に示すように書き換えられうる。
(c)<img src=“http://www.xxx.yyy/zzz/736f6e7920706174656e74”/>
 この例において、識別子記述部212は、URLを、中間サーバ200を示す絶対パスに書き換えるとともに、絶対パスに続けて識別子生成部210が生成した識別子を記述している。中間サーバ200を示す絶対パスは、すべてのリソースで共通して付加される。従って、クライアント300が上記の例のように書き換えられたオリジナルの識別子に基づいてキャッシュの有無を判断することは、実質的に識別子生成部210が生成した識別子に基づいて判断しているのと同じことになる。この場合、クライアントは、追加的に記述された識別子を参照するように構成されていなくてもよい。
 ドキュメント送信部214は、識別子生成部210によって生成された識別子を含むドキュメントをクライアント300に送信する。後述するように、クライアント300は、識別子生成部210によって生成された識別子に基づいてリソースを参照しながらドキュメントを表示させる。リソース送信部216は、ドキュメントで参照されるリソースがクライアント300でキャッシュされていなかった場合にクライアント300から送信されるリソースのリクエストに応じて、キャッシュ280に格納されたリソースをクライアント300に送信する。
  (クライアント)
 クライアント300では、リクエスト送信部302が、例えばユーザ操作に基づいて中間サーバ200にリクエストを送信する。ドキュメント受信部304は、中間サーバ200がリクエストに応じて送信したドキュメントを受信する。上述の通り、受信されるドキュメントにはリソースへの参照が含まれ、リソースへの参照には中間サーバ200の識別子生成部210によって生成されたリソースの内容ごとに一意な識別子が関連付けられている。上述の通り、ドキュメントにおいて、一意な識別子は、オリジナルの識別子に追加してリソースへの参照に関連付けられていてもよい。
 キャッシュ判定部306は、ドキュメント受信部304が受信したドキュメントにおいて参照されているリソースが、キャッシュ380に格納されているか否かを判定する。このとき、キャッシュ判定部306は、リソースの内容ごとに一意な識別子に基づいて、リソースがキャッシュ380に格納されているか否かを判定する。リソースがキャッシュ380に格納されている場合、キャッシュ判定部306は格納されたリソースを読み出して表示制御部310に提供する。一方、リソースがキャッシュ380に格納されていなかった場合、キャッシュ判定部306は、中間サーバ200に当該リソースのリクエストを送信することをリソース受信部308に依頼する。
 ここで、もし、キャッシュ判定部が判定に用いる識別子が、例えばURLのようなものであった場合、識別子は必ずしもリソースの内容ごとに一意ではない。それゆえ、リソースの内容が同一であっても、異なるリソースが参照されていると判定される場合がある。例えば、第1の配信元サーバ100aから配信される第1のドキュメントによって参照される第1のリソースと、第2の配信元サーバ100bから配信される第2のドキュメントによって参照される第2のリソースとがあるとする。この場合、第1のリソースと第2のリソースとの内容が同一であっても、第1の配信元サーバ100aを示すURLと第2の配信元サーバ100bを示すURLとが異なるために、第1のリソースおよび第2のリソースへの参照にそれぞれ用いられる識別子(URL)は異なる。従って、キャッシュ判定部は、受信された第2のドキュメントで第2のリソースが参照されているような場合、同じ内容の第1のリソースが既にキャッシュに格納されていても、第2のリソースそのものがキャッシュに格納されていなければ、参照されているリソースがキャッシュに格納されていないと判定しうる。
 これに対して、本実施形態に係るクライアント300のキャッシュ判定部306は、リソースの内容ごとに一意な識別子に基づいて、リソースがキャッシュ380に格納されているか否かを判定する。この場合、上記の例でいえば、中間サーバ200の識別子生成部210が、第1のリソースと第2のリソースとについて共通する識別子を生成し、キャッシュ判定部306は、この共通の識別子に基づいてリソースがキャッシュ380に格納されているか否かを判定する。従って、受信された第2のドキュメントで第2のリソースが参照されている場合、同じ内容の第1のリソースが既にキャッシュ380に格納されていれば、キャッシュ判定部306は、参照されているリソースがキャッシュ380に格納されていると判定し、中間サーバ200にリクエストを送信することなく、キャッシュ380に格納されたリソースを再利用して表示制御部310に提供することができる。
 リソース受信部308は、中間サーバ200にリソースのリクエストを送信し、リクエストに応じて中間サーバ200から送信されたリソースを受信する。リソース受信部308は、受信されたリソースを表示制御部310に提供する。また、リソース受信部308は、新たに受信されたリソースをキャッシュ380に格納する。
 表示制御部310は、ドキュメント受信部304が受信したドキュメントと、ドキュメントにおいて参照されているリソースとに基づいて、クライアント300のディスプレイにドキュメントを表示させる。上述のように、リソースは、キャッシュ判定部306の判定に応じて、キャッシュ380から読み出されて再利用されるか、中間サーバ200から新たに受信される。中間サーバ200からの受信には通信のための時間がかかるため、再利用されるリソースの割合が高いほど、ドキュメントの表示は高速化されることになる。
 本実施形態では、キャッシュ判定部306が、リソースの内容ごとに一意な識別子に基づいて、リソースがキャッシュ380に格納されているか否かを判定する。それゆえ、例えば同じ配信元サーバ100から配信されたドキュメントで参照されるリソースのみならず、相異なる配信元サーバ100から配信された複数のドキュメントでそれぞれ参照されるリソースであっても、内容が同一であれば再利用することができる。従って、ドキュメントの表示にあたって再利用されるリソースの割合が増加し、ドキュメントの表示が高速化されうる。
 (2-2.処理フロー)
  (中間サーバの処理フロー)
 図3は、本開示の第1の実施形態に係る中間サーバの処理を示すフローチャートである。図3を参照すると、まず、リクエスト受信部202が、クライアント300からのリクエストを受信する(S101)。次に、ドキュメント取得部204が、リクエストにおいて指定されたドキュメントを取得する(S103)。次に、ドキュメント解析部206が、取得されたドキュメントを解析する(S105)。
 ここで、ドキュメントの解析においてリソースへの参照が検出された場合(S107のYES)、リソース取得部208が、参照されているリソースを取得する(S109)。さらに、識別子生成部210が、取得されたリソースの内容に基づいて一意な識別子を生成する(S111)。次に、識別子記述部212が、生成された一意な識別子を、ドキュメントにおけるリソースへの参照に関連付ける(S113)。S109~S113は、ドキュメントにおけるリソースへの参照がすべて検出されるまで繰り返し実行されうる。
 ドキュメントの解析においてリソースへの参照が検出されなくなった場合、または検出されなかった場合(S107のNO)、ドキュメント送信部214が、ドキュメントをクライアント300に送信する(S115)。その後、クライアント300からリソースのリクエストが受信された場合(S117のYES)、リソース送信部216がクライアント300にリソースを送信する(S119)。リソースのリクエストが受信されなくなった場合、または受信されなかった場合(S117のNO)、中間サーバ200での処理は終了する。
  (クライアントの処理フロー)
 図4は、本開示の第1の実施形態に係るクライアントの処理を示すフローチャートである。図4を参照すると、まず、リクエスト送信部302が、中間サーバ200にリクエストを送信する(S131)。次に、ドキュメント受信部304が、中間サーバ200がリクエストに応じて送信したドキュメントを受信する(S133)。ここで、表示制御部310は、受信されたドキュメントの表示を開始する(S135)。
 ドキュメントにおいてリソースへの参照が発見された場合(S137のYES)、キャッシュ判定部306が、参照されているリソースがキャッシュ380に格納されているか(キャッシュされているか)否かを判定する(S139)。上述のように、キャッシュ判定部306は、ドキュメントにおけるリソースへの参照に関連付けられた、リソースの内容ごとに一意な識別子に基づいて、リソースがキャッシュ380に格納されているか否かを判定する。
 ここで、リソースがキャッシュ380に格納されていると判定された場合(S139のYES)、キャッシュ判定部306はキャッシュ380からリソースを読み出して表示制御部310に提供する。つまり、キャッシュ判定部306および表示制御部310はキャッシュされたリソースを再利用する(S141)。一方、リソースがキャッシュ380に格納されていないと判定された場合(S139のNO)、リソース受信部308が中間サーバ200にリソースのリクエストを送信する(S143)。リソース受信部308は、リクエストに応じて中間サーバ200が送信したリソースを受信する(S145)。
 表示制御部310は、再利用されたリソース、または中間サーバ200から受信されたリソースを参照して、ドキュメントの表示を継続する(S147)。S139~S147は、ドキュメントにおけるリソースへの参照がすべて発見されるまで繰り返し実行されうる。表示制御部310がドキュメントの全体を表示させ、リソースへの参照も発見されなくなった場合、またはリソースへの参照が発見されなかった場合(S137のNO)、クライアント300はドキュメントの表示を完了する(S149)。
 (2-3.変形例)
  (中間サーバの処理フロー)
 図5は、本開示の第1の実施形態の変形例に係る中間サーバの処理を示すフローチャートである。図5を参照すると、まず、上記で図3を参照して説明した例と同様にS101~S105が実行される。
 次に、識別子記述部212が、ドキュメントの解析によって検出されたリソースへの参照にダミー識別子を関連付ける(S161)。ここで、ダミー識別子は、例えば機械的に生成される一連の識別子であり、必ずしもリソースの内容ごとに一意ではない。識別子記述部212は、例えば、ドキュメントの先頭から順に、検出された参照にインクリメンタルな、またはランダムなダミー識別子を関連付ける。このとき、参照されるリソースのオリジナルの識別子(例えばURL)が同一であれば、識別子記述部212はこれらの参照に同一のダミー識別子を関連付けてもよい。
 次に、ドキュメント送信部214がドキュメントをクライアント300に送信する(S115)。この後に、またはこれと並行して、ドキュメントの解析によって検出されたリソースへの参照のそれぞれについて、リソース取得部208が参照されているリソースを取得し、識別子生成部210が取得されたリソースの内容に基づいて一意な識別子を生成する(S107~S111)。
 検出されたすべての参照についてS107~S111の処理が終了すると、識別子記述部212が、S161で参照に関連付けられたダミー識別子と、S111で生成された一意な識別子とを関連付ける情報(識別子の関連付け情報)を生成する(S163)。ドキュメント送信部214は、識別子の関連付け情報をクライアント300に送信する(S165)。その後、クライアント300からリソースのリクエストが受信されれば、リソース送信部216がクライアント300にリソースを送信する(S117,S119)。
  (クライアントの処理フロー)
 図6は、本開示の第1の実施形態の変形例に係るクライアントの処理を示すフローチャートである。図6を参照すると、まず、上記で図4を参照して説明した例と同様にS131~S135が実行される。
 ドキュメントにおいてリソースへの参照が発見された場合(S137のYES)、キャッシュ判定部306は、発見された参照に関連付けられたダミー識別子を一意な識別子に置換した上で(S181)、参照されているリソースがキャッシュ380に格納されているか否かを判定する(S139)。図示していないが、S181の時点で、上述した識別子の関連付け情報がドキュメント受信部304によって受信されていない場合、つまり、キャッシュ判定部306がリソースへの参照にダミー識別子が関連付けられた状態でリソースを参照する場合、キャッシュ判定部306は、識別子または識別子の関連付け情報のためのリクエストを中間サーバ200に送信する。この場合、中間サーバ200の識別子生成部210は、リクエストが受信された参照について、参照されているリソースの内容に基づく一意な識別子の生成を優先的に実行してもよい。
 中間サーバ200の処理能力がクライアント300に比べて高い場合でも、識別子生成部210による一意な識別子の生成にはある程度の時間がかかる。従って、本変形例のように、容易に生成できるダミー識別子が参照に関連付けられたドキュメントを先行してクライアント300に送信し、クライアント300で受信されたドキュメントに基づいて表示が開始されるのと並行して中間サーバ200で一意な識別子の生成を実行することで、クライアント300でドキュメントの表示が完了するまでの時間をさらに短縮することができる。
 (3.第2の実施形態)
 (3-1.機能構成)
 図7は、本開示の第2の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。図7を参照すると、中間サーバ200は、機能構成として、リソース先行配信部218をさらに含む。また、クライアント300は、機能構成として、リソース先行受信部312をさらに含む。
 中間サーバ200のリソース先行配信部218は、所定のリソースについて、リクエスト受信部202がクライアント300からリクエストを受信する前に、先行してクライアント300に送信する。このとき、リソース先行配信部218は、リソースを、識別子生成部210が生成したリソースの内容ごとに一意な識別子に関連付けてクライアント300に送信する。
 例えば、リソース先行配信部218は、識別子生成部210によって生成された識別子が、ドキュメントにおいてリソースへの参照に関連付けられた回数をカウントし、この回数に基づいて使用頻度が高いと推定されるリソースをクライアント300に送信してもよい。識別子生成部210によって生成される識別子はリソースの内容ごとに一意であるため、上記のカウントは、URLなどに関わらず、リソースの内容ごとに、それぞれのリソースがいろいろなドキュメントにおいて参照された頻度を示すものでありうる。
 あるいは、リソース先行配信部218は、サービス提供者によって指定されたリソースを、先行してクライアント300に送信してもよい。例えば、多くのドキュメントで共通して参照されることが予想されるスクリプトの標準ライブラリについては、サービス提供者による設定に従って、リソース先行配信部218がクライアント300に先行して送信しておくことで、ドキュメントを提供する場合にスクリプトのためのリクエストやリクエストに応じたスクリプトの送信にかかる時間を節減することができる。
 また、先行して配信されるリソースがスクリプトのようなプログラムである場合、リソース先行配信部218は、プログラムをプリコンパイルしてからクライアント300に送信してもよい。例えば、クライアント300が、ドキュメントにおいて参照されたプログラムをコンパイルしてから実行する場合、プログラムがキャッシュ380に格納されていたとしても、コンパイルにかけられる時間は限られている。一方、中間サーバ200でリソース先行配信部218がプログラムをクライアント300への送信前にプリコンパイルする場合、コンパイルに十分に時間をかけることができるために、プログラム実行時の動作コンパイルによって十分に最適化することができる。
 クライアント300のリソース先行受信部312は、リクエスト送信部302が中間サーバ200にリクエストを送信する前に、中間サーバ200のリソース先行配信部218が送信したリソースを受信する。ここで受信されるリソースは、上記のように、例えば、リソースへの参照に関連付けられた回数に基づいて使用頻度が高いと推定されるリソースであってもよいし、サービス提供者によって指定されたリソースであってもよい。いずれの場合も、リソース先行受信部312は、中間サーバ200から先行して配信されたリソースを受信し、受信したリソースをキャッシュ380に格納する。
 上述のように、受信されるリソースは、中間サーバ200において識別子生成部210が生成した、リソースの内容ごとに一意な識別子に関連付けられている。リソース先行受信部312は、受信したリソースを、この識別子に関連付けてキャッシュ380に格納する。これによって、先行して配信されたリソースのオリジナルの識別子(例えばURL)に関わらず、先行して配信されたリソースと同一の内容のリソースがドキュメントにおいて参照された場合には、キャッシュ380に予め格納されたリソースを利用し、ドキュメントの表示を高速化することができる。
 また、先行して配信されるリソースがスクリプトのようなプログラムである場合、リソース先行受信部312は、中間サーバ200のリソース先行配信部218によってプリコンパイルされたプログラムを受信してもよい。この場合、リソース先行受信部312は、プリコンパイルされたプログラムを、キャッシュ380において、例えば画像やCSSなどプログラム以外のリソースとは別の記憶領域に格納してもよい。プリコンパイルされたプログラムは、例えばWebCoreのようなライブラリと共通の記憶領域に格納されうる。これによって、クライアント300におけるドキュメントの表示時に、参照されているリソースに対応するプリコンパイルされたプログラムにより高速にアクセスすることが可能になりうる。
 例えばHTMLドキュメントにおいて参照されるリソースのサイズの割合では、JavaScriptなどのスクリプトが画像に次いで大きな割合を占める。また、例えばJavaScriptの参照では、特定のいくつかの標準ライブラリが参照されるケースが大半である。従って、例えばスクリプトの標準ライブラリを予め中間サーバ200からクライアント300に配信しておくことで、ドキュメントの表示にあたって高い確率で発生するスクリプトの標準ライブラリのためのリクエストやリソースの送受信を省略し、ドキュメントの表示を高速化することができる。
 より具体的には、スクリプトのアップデートがあった場合に、アップデート後のスクリプトがリクエストに先行して中間サーバ200からクライアント300に配信されていれば、アップデート後に初めてドキュメントから当該スクリプトが参照される場合であっても、クライアント300のキャッシュに格納されたスクリプトを利用して迅速にドキュメントを表示することができる。また、上記のような場合に、スクリプトの標準ライブラリがプリコンパイルされていれば、さらなる高速化が可能であることは上述した通りである。スクリプト以外でも、例えばロゴの画像や話題のアイテムの画像など、ドキュメントの表示にあたって参照される可能性が高いと推定されるリソースが予め中間サーバ200からクライアント300に配信することは、ドキュメントの表示を高速化することに寄与しうる。
 (3-2.処理フロー)
  (中間サーバの処理フロー)
 図8は、本開示の第2の実施形態に係る中間サーバがリクエストを受信する前の処理を示すフローチャートである。図8を参照すると、まず、リソース先行配信部218が、先行して配信するリソースを決定する(S201)。ここで、先行して配信するリソースは、例えば上記のように識別子がドキュメントにおいてリソースへの参照に関連付けられた回数に基づいて決定されてもよいし、サービス提供者によって指定されてもよい。
 また、リソース先行配信部218は、例えば上述したスクリプトの標準ライブラリのように、使用頻度が高いと推定され、かつアップデートの可能性があるリソースについて、配信元サーバ100に当該リソースを定期的にリクエストすることによってアップデートの有無を確認し、アップデートがあった場合にはアップデート後のリソースを先行して配信することを決定してもよい。リソース先行配信部218は、アップデートの有無の確認のために、識別子生成部210による識別子の生成処理を利用してもよい。つまり、識別子生成部210がリソースの内容ごとに一意な識別子を生成したときに、生成された識別子が以前に生成された識別子と異なっていれば、リソースにアップデートがあったと判断できる。
 次に、リソース先行配信部218は、付加的な処理として、先行して配信されるリソースがプログラムであれば、必要に応じてプリコンパイルを実行する(S203)。次に、リソース先行配信部218は、リソースをクライアント300に送信する(S205)。
  (クライアントの処理フロー)
 図9は、本開示の第2の実施形態に係るクライアントがリクエストを送信する前の処理を示すフローチャートである。図9を参照すると、まず、リソース先行受信部312が、中間サーバ200から配信されたリソースを受信する(S211)。次に、リソース先行受信部312は、付加的な処理として、先行して配信されるリソースがプログラムであれば(S213のYES)、配信されたリソースを他のリソースとは別の、プログラム用の記憶領域にリソースを格納する(S215)。そうでない場合、リソース先行受信部312は、リソースを通常のキャッシュ380の記憶領域に格納する(S217)。
 なお、リクエスト送信後の中間サーバおよびクライアントの処理フローについては、上記の第1の実施形態と同様であるため詳細な説明を省略する。本実施形態では、上記のようにリクエストの送信に先行して一部のリソースが中間サーバ200からクライアント300に送信されているために、例えば図4に示したフローチャートのS139において、リソースがキャッシュ380に格納されていると判定される場合がより多くなる。
 (4.第3の実施形態)
 (4-1.機能構成)
 図10(図10Aおよび図10B)は、本開示の第3の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。図10Aを参照すると、中間サーバ200は、機能構成として、リクエスト受信部202と、ドキュメント取得部204と、ドキュメント解析部206と、リソース取得部208と、リソース解析部220と、短縮文字列生成部222と、短縮文字列記述部224と、ドキュメント送信部214と、関連付け情報送信部226と、リソース送信部216とを含む。図10Bを参照すると、クライアント300は、機能構成として、リクエスト送信部302と、ドキュメント受信部304と、リソース受信部308と、関連付け情報受信部314と、文字列解釈部316と、表示制御部310とを含む。
 これらの機能構成は、例えば、中間サーバ200およびクライアント300をそれぞれ実現する情報処理装置に備えられるプロセッサが、メモリまたは記録媒体に格納されたプログラムに従って動作することによって実現されうる。また、中間サーバ200におけるデータベース282、およびクライアント300におけるデータベース382は、例えば、それぞれの情報処理装置のストレージまたはメモリによって実現されうる。
  (中間サーバ)
 中間サーバ200では、リクエスト受信部202およびドキュメント取得部204が、上記の第1の実施形態と同様に、クライアント300からのリクエストに応じてドキュメントを取得する。また、ドキュメント解析部206は、ドキュメント取得部204が取得したドキュメントを解析し、ドキュメントに含まれるリソースへの参照を検出する。リソース取得部208は、ドキュメント解析部206によってリソースへの参照が検出された場合に、参照されているリソースを取得する。
 さらに、本実施形態では、ドキュメント解析部206が、ドキュメント取得部204によって取得されたドキュメントに含まれる短縮可能な文字列を検出する。また、リソース解析部220が、リソース取得部208によって取得されたリソースに含まれる短縮可能な文字列を検出する。ここで、短縮可能な文字列は、例えば、ドキュメント内の要素や、スタイルで定義されるクラス、プログラムで定義された関数などに与えられる任意の識別子を含む。また、短縮可能な文字列は、ドキュメントやリソースのフォーマットにおける予約語を含んでもよい。さらに、短縮可能な文字列は、ドキュメントにおいて参照されているリソースの識別子や、いわゆる地の文としてドキュメントに記述されている文字列を含んでもよい。
 ドキュメント解析部206およびリソース解析部220によって短縮可能な文字列が検出された場合、短縮文字列生成部222が、検出された文字列を短縮した文字列(以下、短縮文字列ともいう)を生成する。例えば、短縮文字列生成部222は、元の文字列に基づいて所定のアルゴリズムに従って演算を実行することによって短縮文字列を生成してもよい。後述するように、図示された例において、元の文字列と短縮文字列との関係はデータベース282に記録されるため、アルゴリズムは非可逆的なものでよい。あるいは、短縮文字列生成部222は、元の文字列に関係なく、インクリメンタルな、またはランダムな短縮文字列を生成してもよい。
 ここで、上記の例において、アルゴリズムを利用して短縮文字列を生成する場合、短縮文字列がやや長くなるが、元の文字列が同じであれば自動的に同じ短縮文字列が生成されるため、データベース282のレコードを最小限にして検索性を向上させることができる。また、利用するアルゴリズムによっては、元の文字列に対して一意な短縮文字列を生成することができる。
 一方、インクリメンタルな、またはランダムな短縮文字列を生成する場合、短縮文字列を極限まで短くできるが(例えば、ドキュメントまたはリソースに含まれる短縮可能な文字列の数を表現可能な最短の長さにすることができる)、そのままではデータベース282に短縮可能な文字列(重複したものを含む)の数だけレコードが生成されてしまう。短縮文字列生成部222がデータベース282を参照し、同じ元の文字列についてまだ短縮文字列が生成されていない場合に新たな短縮文字列を生成するようにすれば、データベース282のレコード数を削減することができる。
 短縮文字列生成部222は、短縮文字列を生成した場合に、元の文字列と短縮文字列とを関連付けるレコード(短縮文字列レコード)をデータベース282に追加する。データベース282は、例えば、ドキュメントを単位として生成されてもよい。つまり、データベース282によって示される元の文字列と短縮文字列との対応づけは、単一のリクエストに応じて送信されるドキュメントと、このドキュメントから参照されるリソースとをスコープとしてもよい。あるいは、データベース282は、複数のドキュメントとこれらのドキュメントから参照されるリソースとをスコープとして生成されてもよい。
 ここで、生成された短縮文字列について、元の文字列との対応付けがクライアント300においてデータベース382に記録されていることがわかっている場合、短縮文字列生成部222は、データベース282に短縮文字列レコードを追加しなくてもよい。例えば、ドキュメントやリソースのフォーマットにおける予約語を短縮可能な文字列として扱う場合、予約語は有限であるため、予め短縮文字列を割り当てて、予約語と短縮文字列との対応付けをデータベース282およびデータベース382に予め記録しておくことが可能である。この場合、短縮文字列生成部222は、ドキュメントまたはリソースにおいて検出された予約語について、データベース282を参照して予め割り当てられた短縮文字列を生成した上で、データベース282への新たなレコードの追加を省略する。
 短縮文字列記述部224は、短縮文字列生成部222によって生成された短縮文字列で、ドキュメントおよびリソースに含まれる元の文字列を置換する。送信されるデータ量の削減、およびクライアント300における文字列読み取りの処理量の削減のためには、短縮文字列記述部224が、ドキュメントおよびリソースにおいて元の文字列を残すことなく、短縮文字列に置換することが望ましい。
 ドキュメント送信部214は、短縮文字列生成部222によって生成された短縮文字列を含む(つまり、元の文字列が短縮文字列に置換された)ドキュメントをクライアント300に送信する。また、リソース送信部216は、同様に元の文字列が短縮文字列に置換されたリソースをクライアント300に送信する。関連付け情報送信部226は、データベース282の短縮文字列レコードに基づいて、元の文字列と短縮文字列とを関連付ける情報(以下、関連付け情報ともいう)を生成し、これをクライアント300に送信する。
 ここで、関連付け情報送信部226は、クライアント300側で短縮文字列から元の文字列を復元する必要がある場合に限って、関連付け情報をクライアント300に送信してもよい。つまり、関連付け情報は、短縮文字列レコードの少なくとも一部を含まなくてもよい。
 例えば、短縮文字列生成部222が、ドキュメント内の要素や、スタイルで定義されるクラス、プログラムで定義された関数などに与えられる任意の識別子について短縮文字列を生成した場合、ドキュメントおよびリソースを通じて、元の文字列と短縮文字列とが1対1で対応するように短縮文字列を生成している(例えば、元の文字列から所定にアルゴリズムに基づいて短縮文字列を生成したり、データベース282を参照して元の文字列について既に短縮文字列が生成されている場合にはその短縮文字列を再利用したりしている)のであれば、クライアント300側で元の文字列を復元しなくても、要素、クラス、または関数は一意に特定される。このような場合、関連付け情報送信部226は、当該短縮文字列についての関連付け情報をクライアント300に送信しなくてもよい。
 また、例えば、ドキュメントまたはリソースにおける予約語について短縮文字列が生成される場合、データベース282には予め予約語に対応する短縮文字列に対応する短縮文字列レコードが含まれているが、クライアント300に送信される関連付け情報には予約語に関する情報が含まれなくてもよい(クライアント300のデータベース382に予約語に関する情報が予め格納されている場合)。
 一方、要素、クラス、または関数などについて生成された短縮文字列でも、元の文字列と1対1で対応しない場合(例えば、短縮文字列生成部222が短縮文字列の生成にあたってデータベース282を参照せず、機械的に割り当てた短縮文字列の情報をデータベースに格納するような場合)や、地の文としてドキュメントに記述されている文字列のように最終的に元の文字列がユーザに提示されるような場合には、関連付け情報送信部226がデータベース282のレコードに基づいて生成された関連付け情報をクライアント300に送信する。
 (クライアント)
 クライアント300では、リクエスト送信部302およびドキュメント受信部304が、上記の第1の実施形態と同様に、中間サーバ200にリクエストを送信し、中間サーバ200がリクエストに応じて送信したドキュメントを受信する。また、リソース受信部308は、中間サーバ200から送信されたリソースを受信する。受信されたドキュメントおよびリソースは、文字列解釈部316に提供される。さらに、本実施形態では、関連付け情報受信部314が、中間サーバ200の関連付け情報送信部226から送信された関連付け情報を受信する。関連付け情報受信部314は、受信した関連付け情報に基づいて、データベース382に短縮文字列レコードを生成する。
 文字列解釈部316は、データベース382を参照して、ドキュメントおよびリソースに含まれる短縮文字列を解釈する。ここで、文字列解釈部316は、短縮文字列を元の文字列に書き換える必要はない。本実施形態では、文字列解釈部316が、データベース382を参照することによってドキュメントおよびリソースに含まれる短縮文字列をそのまま解釈し、その解釈に基づいて表示制御部310がドキュメントを表示させることが可能である。
 なお、上述の通り、クライアント300において受信されるドキュメントおよびリソースには、関連付け情報受信部314が受信する関連付け情報には含まれない短縮文字列も含まれる。例えば、ドキュメントやリソースのフォーマットにおける予約語について、予め短縮文字列と予約語との対応付けがデータベース382に記録されているような場合、関連付け情報受信部314が受信する関連付け情報に予約語に対応する短縮文字列は含まれない。
 また、例えば、ドキュメント内の要素や、スタイルで定義されるクラス、プログラムで定義された関数などに与えられる任意の識別子について、ドキュメントおよびリソースを通じて、元の文字列と短縮文字列とが1対1で対応するように短縮文字列が生成されていれば、当該短縮文字列に対応する情報は関連付け情報には含まれず、またデータベース382にも含まれていなくてもよい。この場合、当該短縮文字列は、クライアント300においては通常の文字列と同様に扱われ、表示制御部310が直接的にこれを解釈してドキュメントを表示させる。
 (4-2.処理フロー)
  (中間サーバの処理フロー)
 図11は、本開示の第3の実施形態に係る中間サーバの処理を示すフローチャートである。図11を参照すると、まず、リクエスト受信部202が、クライアント300からのリクエストを受信する(S301)。次に、ドキュメント取得部204が、リクエストにおいて指定されたドキュメントを取得する(S303)。次に、ドキュメント解析部206が、取得されたドキュメントを解析する(S305)。
 ここで、ドキュメントの解析においてリソースへの参照が検出された場合(S307のYES)、リソース取得部208が参照されているリソースを取得し(S309)、リソース解析部220が、取得されたリソースを解析する(S311)。その後、短縮文字列生成部222が、ドキュメントおよびリソースで検出された短縮可能な文字列について、短縮文字列を生成する(S313)。このとき、短縮文字列生成部222は、元の文字列と短縮文字列とを関連付ける短縮文字列レコードを、データベース282に追加する(S315)。
 さらに、短縮文字列記述部224が、短縮文字列生成部222によって生成された短縮文字列によって、ドキュメントおよびリソースに含まれる元の文字列を置換する(S317)。ドキュメントにおける元の文字列の置換が完了すると、ドキュメント送信部214が、短縮文字列を含むドキュメントをクライアント300に送信する(S319)。これと前後して、またはこれと並行して、関連付け情報送信部226が、データベース382のレコードに基づいて生成された関連付け情報をクライアント300に送信する(S321)。さらに、リソース送信部216がクライアント300に短縮文字列を含むリソースを送信する(S323)。
  (クライアントの処理フロー)
 図12は、本開示の第3の実施形態に係るクライアントの処理を示すフローチャートである。図12を参照すると、まず、リクエスト送信部302が、中間サーバ200にリクエストを送信する(S331)。次に、ドキュメント受信部304が、中間サーバ200がリクエストに応じて送信した、短縮文字列を含むドキュメントを受信する(S333)。これと前後して、またはこれと並行して、関連付け情報受信部314が、中間サーバ200から送信された関連付け情報を受信する(S335)。関連付け情報受信部314は、受信した関連付け情報に基づいてデータベース382にレコードを生成する(S337)。また、リソース受信部308が、中間サーバ200が送信した、短縮文字列を含むリソースを受信する(S339)。
 S333でドキュメントが受信され、S337でデータベース382に短縮文字列レコードが生成されると、文字列解釈部316が、データベース382を参照して、ドキュメントに含まれる短縮文字列を解釈する(S341)。なお、S341の処理は、例えばS339の処理と並行して実行されてもよい。S339で受信された、ドキュメントで参照されているリソースについても、文字列解釈部316は、データベース382を参照して短縮文字列を解釈する(S343)。表示制御部310は、文字列解釈部316がドキュメントおよびリソースに含まれる短縮文字列を解釈した結果を利用して、ドキュメントを表示させる(S345)。
 本実施形態では、中間サーバ200において、短縮文字列生成部222が元の文字列と短縮文字列とを関連付けるレコードをデータベース282に追加する。これによって、例えば、短縮文字列の生成にあたってデータベース382を参照し、ドキュメントおよびリソースを通じて元の文字列と短縮文字列との関係を1対1の関係にすることができる。この場合、クライアント300に関連付け情報を送信しなくても、クライアント300がドキュメントとリソースとのそれぞれに記述された短縮文字列を解釈して、リソースを参照するドキュメントを表示させることが可能である。
 あるいは、中間サーバ200では、関連付け情報送信部226が、ドキュメントおよびリソースにおいてそれぞれ生成された短縮文字列と元の文字列とを関連付ける関連付け情報をデータベース282のレコードに基づいて生成し、これをクライアント300に送信してもよい。この場合、例えば、短縮文字列の生成時には元の文字列と短縮文字列との関係が1対1になっていなくても、クライアント300がドキュメントとリソースとのそれぞれに記述された短縮文字列を解釈して、リソースを参照するドキュメントを表示させることが可能である。
 (4-3.変形例)
  (中間サーバの処理フロー)
 図13は、本開示の第3の実施形態の変形例に係る中間サーバの処理を示すフローチャートである。図13を参照すると、まず、上記で図11を参照して説明した例と同様にS301~S305が実行される。
 本変形例では、短縮文字列生成部222が、ドキュメントで検出された短縮可能な文字列について、先行して短縮文字列を生成する(S361)。このとき、短縮文字列生成部222は、元の文字列と短縮文字列とを関連付けるレコードを、データベース282に追加する(S315)。さらに、短縮文字列記述部224が、データベース282のレコードに従って、ドキュメントに含まれる文字列を短縮文字列に置換する(S363)。置換が完了すると、ドキュメント送信部214が、短縮文字列を含むドキュメントをクライアント300に送信する(S319)。ドキュメントの送信と前後して、またはこれと並行して、関連付け情報送信部226が、データベース282のレコードに基づいて生成された関連付け情報をクライアント300に送信する(S321)。
 ドキュメントおよび関連付け情報の送信後に、またはこれと並行して、ドキュメントの解析においてリソースへの参照が検出された場合(S307のYES)、リソース取得部208が参照されているリソースを取得し(S309)、リソース解析部220が、取得されたリソースを解析する(S311)。その後、短縮文字列記述部224が、S315の処理によって生成されたデータベース382の短縮文字列レコードに基づいて、リソースに含まれる文字列を短縮文字列に置換する(S365)。その後、リソース送信部216が、クライアント300に短縮文字列を含むリソースを送信する(S323)。
 本変形例では、ドキュメントにおける短縮文字列の生成結果に基づいて、リソースの文字列が短縮文字列に置換される。これによって、ドキュメントと関連付け情報とを先行してクライアント300に送信した上で、リソースについてもドキュメントと整合するように短縮文字列への置換を実行することができる。従って、リソースについての短縮文字列の置換の完了を待つことなく、クライアント300でドキュメントの表示を開始することができる。
 なお、本変形例におけるクライアントの処理フローは、リソース受信部308が、ドキュメントおよび関連付け情報が受信された後にリソースを受信する点を除いて、図12に示したものと同様でありうるため、詳細な説明は省略する。また、上記の本実施形態の説明では、元の文字列と短縮文字列とを関連付ける情報がデータベースに格納される例について説明したが、情報は必ずしもデータベースに格納されなくてもよく、他の例ではファイルなどが用いられてもよい。
 (5.第4の実施形態)
 (5-1.機能構成)
 図14(図14Aおよび図14B)は、本開示の第4の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。図14Aを参照すると、中間サーバ200は、機能構成として、リクエスト受信部202と、ドキュメント取得部204と、ドキュメント解析部206と、リソース取得部208と、識別子生成部210と、識別子記述部212と、リソース解析部220と、短縮文字列生成部222と、短縮文字列記述部224と、ドキュメント送信部214と、関連付け情報送信部226と、リソース送信部216とを含む。図14Bを参照すると、クライアント300は、機能構成として、リクエスト送信部302と、ドキュメント受信部304と、関連付け情報受信部314と、文字列解釈部316と、キャッシュ判定部306と、リソース受信部308と、表示制御部310とを含む。
 これらの機能構成は、例えば、中間サーバ200およびクライアント300をそれぞれ実現する情報処理装置に備えられるプロセッサが、メモリまたは記録媒体に格納されたプログラムに従って動作することによって実現されうる。また、中間サーバ200におけるキャッシュ280およびデータベース282、ならびにクライアント300におけるキャッシュ380およびデータベース382は、例えば、それぞれの情報処理装置のストレージまたはメモリによって実現されうる。
 図14を参照すれば明らかなように、本実施形態は、上記の第1の実施形態と第3の実施形態とを合わせた実施形態である。中間サーバ200およびクライアント300の機能構成のそれぞれについては、第1および第3の実施形態において既に説明されているため、詳細な説明を省略する。
 (5-2.処理フロー)
 続いて、本実施形態の処理フローについて説明する。なお、以下の説明では、第1の実施形態および第3の実施形態のそれぞれの変形例を組み合わせたより複雑な処理フローについて説明するが、変形例ではない例を組み合わせた例についても同様に実現可能であることは容易に理解されるであろう。
  (中間サーバの処理フロー)
 図15(図15Aおよび図15B)は、本開示の第4の実施形態に係る中間サーバの処理を示すフローチャートである。図15を参照すると、まず、リクエスト受信部202が、クライアント300からのリクエストを受信する(S401)。次に、ドキュメント取得部204が、リクエストにおいて指定されたドキュメントを取得する(S403)。次に、ドキュメント解析部206が、取得されたドキュメントを解析する(S405)。
 ここで、リソース取得部208は、ドキュメントで検出されたリソースへの参照について、参照されているリソースを取得する(S407)。識別子生成部210は、取得されたリソースの内容に基づいて一意な識別子を生成する(S409)。識別子記述部212は、生成された一意な識別子を、ドキュメントにおけるリソースへの参照に関連付ける(S411)。なお、上記の処理は、1または複数のリソースへの参照が検出される度に逐次実行されてもよいし、全部のリソースへの参照が検出されてから一括して実行されてもよい。
 上記のS407~S411と前後して、または並行して、短縮文字列生成部222が、ドキュメントで検出された短縮可能な文字列について、短縮文字列を生成する(S413)。このとき、短縮文字列生成部222は、元の文字列と短縮文字列とを関連付ける短縮文字列レコードを、データベース282に追加する(S415)。さらに、短縮文字列記述部224が、データベース282の短縮文字列レコードに従って、ドキュメントに含まれる文字列を短縮文字列に置換する(S417)。なお、図示された例のように、S407~S411とS413~S417とが並行して実行される場合は、ドキュメントにおけるリソースへの参照は、短縮文字列の生成の対象にならなくてもよい。
 ここまでの処理が完了すると、ドキュメント送信部214が、識別子記述部212および短縮文字列記述部224によって更新されたドキュメントをクライアント300に送信する(S419)。これと前後して、またはこれと並行して、関連付け情報送信部226が、データベース282のレコードに基づいて生成された関連付け情報をクライアント300に送信する(S421)。
 ドキュメントおよび関連付け情報の送信と前後して、またはこれと並行して、リソース解析部220が、上記のS407において取得されたリソースを解析する(S423)。その後、短縮文字列記述部224が、ドキュメントについての短縮文字列生成部222の処理によって生成されたデータベース282の短縮文字列レコードに基づいて、リソースに含まれる文字列を短縮文字列に置換する(S425)。その後、リソース送信部216が、クライアント300からのリソースのリクエストに応じてクライアント300にリソースを送信する(S427)。
  (クライアントの処理フロー)
 図16(図16Aおよび図16B)は、本開示の第4の実施形態に係るクライアントの処理を示すフローチャートである。図16を参照すると、まず、リクエスト送信部302が、中間サーバ200にリクエストを送信する(S451)。次に、ドキュメント受信部304が、中間サーバ200がリクエストに応じて送信したドキュメントを受信する(S453)。
 ドキュメントの受信と前後して、またはこれと並行して、関連付け情報受信部314が、中間サーバ200から送信された関連付け情報を受信する(S455)。関連付け情報受信部314は、受信した関連付け情報に基づいてデータベース382に短縮文字列レコードを生成する(S457)。次に、文字列解釈部316が、データベース382を参照して、ドキュメントに含まれる短縮文字列を解釈する(S459)。表示制御部310は、文字列解釈部316による解釈に基づいて、受信されたドキュメントの表示を開始する(S461)。
 ドキュメントにおいてリソースへの参照が発見された場合(S463のYES)、キャッシュ判定部306が、受信されたドキュメントにおいて参照されているリソースについて、キャッシュ380に格納されているか(キャッシュされているか)否かを判定する(S465)。上述のように、キャッシュ判定部306は、ドキュメントにおけるリソースへの参照に関連付けられた、リソースの内容ごとに一意な識別子に基づいて、リソースがキャッシュ380に格納されているか否かを判定する。
 リソースがキャッシュ380に格納されていると判定された場合(S465のYES)、キャッシュ判定部306はキャッシュ380からリソースを読み出して文字列解釈部316に提供する。つまり、キャッシュ判定部306は、キャッシュ380されたリソースを再利用する(S467)。一方、リソースがキャッシュ380に格納されていないと判定された場合(S465のNO)、キャッシュ判定部306は、中間サーバ200にリソースのリクエストを送信する(S469)。リソース受信部308は、リクエストに応じて中間サーバ200が送信したリソースを受信する(S471)。
 文字列解釈部316は、データベース382のレコードに基づいて、再利用されたリソース、または中間サーバ200から受信されたリソースに含まれる短縮文字列を解釈する(S473)。表示制御部310は、文字列解釈部316がドキュメントおよびリソースに含まれる短縮文字列を解釈した結果を利用して、ドキュメントの表示を継続する(S475)。S465~S475は、ドキュメントにおけるリソースへの参照がすべて発見されるまで繰り返し実行されうる。表示制御部310がドキュメントの全体を表示させ、リソースへの参照も発見されなくなった場合、またはリソースへの参照が発見されなかった場合(S463のNO)、クライアント300はドキュメントの表示を完了する(S477)。
 なお、本実施形態で、リソースについてクライアント300におけるキャッシュ380を利用する場合、リソースに含まれる短縮文字列は、リソースが参照される機会に関わらず同一であることが望ましい。従って、例えば、中間サーバ200において、短縮文字列生成部222が所定のアルゴリズムを利用して短縮文字列を生成し、元の文字列が同じであれば自動的に同じ短縮文字列が生成されるようにしてもよい。あるいは、中間サーバ200におけるデータベース282を複数のドキュメントについて共通で利用することによって、元の文字列が同じであれば同じ短縮文字列が生成されるようにしてもよい。
 (6.第5の実施形態)
 図17は、本開示の第5の実施形態に係る中間サーバの処理を示すフローチャートである。なお、図示された一連の処理は、中間サーバ200を実現する情報処理装置に備えられるプロセッサがメモリまたは記録媒体に格納されたプログラムに従って動作することによって実行されうる。
 図17を参照すると、まず、プロセッサは、クライアント300からのリクエストを受信する(S501)。次に、プロセッサは、リクエストにおいて指定されたドキュメントを取得する(S503)。上記の他の実施形態と同様に、プロセッサは、ドキュメントを配信元サーバ100から取得してもよいし、キャッシュから内部的に取得してもよい。次に、プロセッサは、ドキュメントにおいて参照されているリソースを取得する(S505)。リソースも、配信元サーバ100から取得されてもよいし、キャッシュから内部的に取得されてもよい。
 さらに、プロセッサは、取得されたドキュメントおよびリソースに基づいて中間データを生成する(S507)。中間データの生成は、例えば、HTMLドキュメントのパースによるDOM(Document Object Model)の生成、CSSの処理によるComputed Styleの生成、およびJavaScriptのパースによる中間表現への変換などを含みうる。プロセッサは、生成された中間データをクライアント300に送信する(S509)。
 図18は、本開示の第5の実施形態に係るクライアントの処理を示すフローチャートである。なお、図示された一連の処理は、クライアント300を実現する情報処理装置に備えられるプロセッサがメモリまたは記録媒体に格納されたプログラムに従って動作することによって実行されうる。
 図18を参照すると、まず、プロセッサは、中間サーバ200にリクエストを送信する(S521)。次に、プロセッサは、中間サーバ200がリクエストに応じて送信した、ドキュメントおよびリソースに基づく中間データを受信する(S523)。プロセッサは、受信した中間データに基づいてレイアウトを生成し(S525)、レイアウトに従ってドキュメントを表示させる(S527)。
 本実施形態によれば、クライアント300でドキュメントを表示するための処理の一部が中間サーバ200で代わりに実行される。中間サーバ200の処理能力がクライアント300よりも高ければ、これによってクライアント300でリクエストを送信してからドキュメントの表示が完了するまでの時間が短縮される。
 なお、中間サーバ200でどのような中間データを生成するかは、ネットワークの状況や、クライアント300の処理能力などに応じて適宜決定される。例えば、HTMLドキュメントに関する上記の3つの例のうち、1つだけが採用されてもよいし、いずれか2つが採用されてもよいし、3つ全部が採用されてもよい。
 (7.第6の実施形態)
 図19は、本開示の第6の実施形態に係る中間サーバの処理を示すフローチャートである。なお、図示された一連の処理は、中間サーバ200を実現する情報処理装置に備えられるプロセッサがメモリまたは記録媒体に格納されたプログラムに従って動作することによって実行されうる。なお、本実施形態に限り、ドキュメントをHTMLドキュメント、リソースをCSSとして説明する。
 図19を参照すると、まず、プロセッサは、クライアント300からのリクエストを受信する(S601)。次に、プロセッサは、リクエストにおいて指定されたHTMLドキュメントを取得する(S603)。上記の他の実施形態と同様に、プロセッサは、HTMLドキュメントを配信元サーバ100から取得してもよいし、キャッシュから内部的に取得してもよい。次に、プロセッサは、HTMLドキュメントにおいて参照されているCSSを取得する(S605)。CSSも、配信元サーバ100から取得されてもよいし、キャッシュから内部的に取得されてもよい。
 さらに、プロセッサは、HTMLドキュメントの要素ごとに、CSSによって定義されるスタイルを特定する(S607)。HTMLドキュメントで階層構造をなす複数のCSSが参照されている場合、S607の処理によって、複数のCSSのうちのどのスタイルの組み合わせが採用されるのかが特定される。プロセッサは、S607の処理の結果に基づいてCSSを更新し(S609)、ドキュメントとともに更新されたCSSをクライアント300に送信する(S611)。
 本実施形態において、クライアント300は、中間サーバ200から受信したHTMLドキュメントおよびCSSに基づいて、HTMLドキュメントを表示させる。このときの処理は、通常のHTMLドキュメントの表示のための処理と同様であるため詳細な説明は省略する。しかしながら、本実施形態の場合、クライアント300で参照されるCSSは、上述したような中間サーバ200での処理によって最適化されている。従って、クライアント300は、HTMLドキュメントの各要素について定義されるスタイルを特定するための処理の大部分を省略することができる。従って、中間サーバ200の処理能力がクライアント300よりも高ければ、これによってクライアント300でリクエストを送信してからドキュメントの表示が完了するまでの時間が短縮される。
 なお、上記の説明ではリソースをCSSとしたが、HTMLドキュメントではCSSとともに画像やスクリプトなどの他のリソースがあわせて参照されてもよい。
 (8.第7の実施形態)
 (8-1.機能構成)
 図20は、本開示の第7の実施形態に係る中間サーバおよびクライアントの概略的な機能構成を示すブロック図である。図20を参照すると、中間サーバ200は、機能構成として、リクエスト受信部202と、ドキュメント取得部204と、ドキュメント解析部206と、リソース取得部208と、画像トランスコード部228と、画像参照更新部230と、ドキュメント送信部214と、リソース送信部216とを含む。クライアント300は、機能構成として、リクエスト送信部302と、ドキュメント受信部304と、リソース受信部308と、表示制御部310とを含む。
 これらの機能構成は、例えば、中間サーバ200およびクライアント300をそれぞれ実現する情報処理装置に備えられるプロセッサが、メモリまたは記録媒体に格納されたプログラムに従って動作することによって実現されうる。また、中間サーバ200におけるキャッシュ280、およびクライアント300におけるキャッシュ380は、例えば、それぞれの情報処理装置のストレージまたはメモリによって実現されうる。
  (中間サーバ)
 中間サーバ200では、リクエスト受信部202およびドキュメント取得部204が、上記の第1の実施形態と同様に、クライアント300からのリクエストに応じてドキュメントを取得する。また、ドキュメント解析部206は、ドキュメント取得部204が取得したドキュメントを解析し、ドキュメントに含まれるリソースへの参照を検出する。リソース取得部208は、ドキュメント解析部206によってリソースへの参照が検出された場合に、参照されているリソースを取得する。
 ここで、リソース取得部208が取得するリソースには、さまざまなフォーマットの画像が含まれる。画像トランスコード部228は、取得された画像を所定のフォーマットにトランスコードし、トランスコードされた画像をキャッシュ280に格納する。画像参照更新部230は、ドキュメントに含まれる画像リソースへの参照を、キャッシュ280に格納された、画像トランスコード部228によるトランスコード後の画像への参照に更新する。ドキュメント送信部214は、参照が更新されたドキュメントをクライアント300に送信する。リソース送信部216は、クライアント300からのリクエストに応じてキャッシュ280に格納されたリソースを送信する。送信されるリソースには、画像トランスコード部228によって所定のフォーマットにトランスコードされた画像が含まれうる。
  (クライアント)
 クライアント300では、リクエスト送信部302およびドキュメント受信部304が、上記の第1の実施形態と同様に、中間サーバ200にリクエストを送信し、中間サーバ200がリクエストに応じて送信したドキュメントを受信する。表示制御部310は、受信されたドキュメントを表示させる。このとき、ドキュメントにおいて参照されているリソースがキャッシュ380に格納されていなければ、リソース受信部308が中間サーバ200にリクエストを送信し、リクエストに応じて送信されたリソースを受信する。ここで受信されるリソースには、上記の画像トランスコード部228によって所定のフォーマットにトランスコードされた画像が含まれうる。表示制御部310は、キャッシュ380に格納されたリソース、またはリソース受信部308によって受信されたリソースを利用してドキュメントを表示させる。
 (8-2.処理フロー)
 図21は、本開示の第7の実施形態に係る中間サーバの処理を示すフローチャートである。図21を参照すると、まず、リクエスト受信部202が、クライアント300からのリクエストを受信する(S701)。次に、ドキュメント取得部204が、リクエストにおいて指定されたドキュメントを取得する(S703)。次に、ドキュメント解析部206が、取得されたドキュメントを解析する(S705)。
 ここで、ドキュメントの解析において画像への参照が検出された場合(S707のYES)、まず、画像参照更新部230が、ドキュメントに含まれる画像リソースへの参照を、トランスコード後の画像への参照に更新する(S709)。図示された例では、この時点でまだ画像のトランスコードが実行されていないため、先にトランスコード後の画像のファイル名などの識別子が決定されることになる。決定された識別子は、ドキュメントの参照に記述されるとともに中間サーバ200のメモリに一時的に記憶され、後に生成されるトランスコードされた画像に関連付けられる。
 次に、ドキュメント送信部214が、画像リソースへの参照が更新されたドキュメントをクライアント300に送信する(S711)。ドキュメントの送信後に、またはこれと並行して、リソース取得部208が参照されている画像を取得する(S713)。画像トランスコード部228は、取得された画像を所定のフォーマットにトランスコードする(S715)。なお、画像トランスコード部228は、トランスコードされた画像が既にキャッシュ280に格納されていれば、再度のトランスコードの処理を省略してもよい。その後、リソース送信部216が、クライアント300からリソースのリクエストに応じて、トランスコードされた画像を含むリソースをクライアント300に送信する(S717)。
 上述のように、中間サーバ200の処理能力がクライアント300に比べて高い場合でも、画像のトランスコードにはある程度の時間がかかる。従って、上記の処理フローのように、トランスコード後の画像の識別子を先に決定しておき、画像への参照が更新されたドキュメントを先行して中間サーバ200からクライアント300に送信し、クライアント300でドキュメントが受信されて表示が開始されるのと並行して中間サーバ200で画像のトランスコードを実行することで、クライアント300でドキュメントの表示が完了するまでの時間を短縮することができる。
 例えば、ドキュメントにおける画像の参照が少なかったり、参照された画像の多くが既にトランスコードされて中間サーバ200のキャッシュ280に格納されていたりするような場合には、画像トランスコード部228が画像のトランスコードを完了した後に、ドキュメント送信部214がドキュメントをクライアント300に送信してもよい。なお、いずれの場合も、クライアント300における処理は、参照されるリソースにトランスコードされた画像が含まれることを除けば、通常のドキュメントの表示のための処理と同様であるため詳細な説明は省略する。
 (8-3.トランスコードの例)
 次に、本実施形態における画像のトランスコードの例について、さらに説明する。
 通常、配信元サーバ100から取得されるリソースに含まれる画像は、例えばJPEGやPNG、GIFなど、多種多様なフォーマットで記述されている。しかも、画像がこれらのフォーマットに厳密には従っていない場合もしばしばである。それゆえ、配信元サーバ100から取得された画像(中間サーバ200またはクライアント300でキャッシュされたものを含む)をクライアント300でデコードするときには、様々なケースを想定する必要があるために処理を最適化することが難しく、処理の効率が必ずしも高くなかった。また、ドキュメントの表示のために中間サーバ200からクライアント300に転送されるデータの中では画像が大きな割合を占めることが多く、画像のデータ量を削減する需要も依然として高かった。
 そこで、本実施形態では、中間サーバ200において画像をトランスコードする。例えば、中間サーバ200の画像トランスコード282が、配信元サーバ100から取得された画像をそれぞれのフォーマットの純正な形式にトランスコードするだけでも、クライアント300でのデコードをある程度最適化することが可能になり、ドキュメントの表示が高速化されうる。さらに、画像トランスコード282が、配信元サーバ100から取得された画像を、クライアント300でのデコード処理を最適化することが可能な1または複数の所定のフォーマットにトランスコードすれば、ドキュメントの表示のさらなる高速化が可能である。
 (8-4.フォーマットの例)
 次に、本実施形態における画像のトランスコードに適用することが可能な、画像のフォーマットの例について、さらに説明する。以下で説明する画像のフォーマットは、例えば本実施形態のような中間サーバにおけるトランスコードに組み合わせて実施されてもよいが、そのような例には限られず、画像フォーマットそれ自体として実施される場合にも様々な利点をもたらしうるものである。つまり、本開示の実施形態には、トランスコードとは独立した、画像のフォーマット(例えば当該フォーマットの画像を扱う画像処理装置または画像処理方法など)が含まれうる。
 図22および図23は、本開示の第7の実施形態で適用されうる画像フォーマットに従った画像ファイルの生成処理について説明するための図である。ここで説明される処理は、例えば上記の中間サーバ200の画像トランスコード部228によって実行されうる。
 まず、図22に示されるように、ビットマップ形式(JPEGやPNG、GIFなどを含む)で記述された原画像700から、ベクター成分704と、ビットマップ成分706と、近似誤差708とが算出される。この処理では、まず、原画像700を2つの領域群702a,702bに分割する(S751)。領域群702aは、空間周波数が低く、かつ広い領域である。一方、領域群702bは、空間周波数が高く、かつ狭い領域である。領域の分割は、例えば分割統合(split-and-merge)法など、公知の各種の手法によって実現することが可能である。
 領域群702aについては、S753~S761の処理によってベクター成分704が生成される。まず、領域群702aに含まれる各領域についてエッジが抽出され、アウトラインがベジエ曲線で近似される(S753)。さらに、近似されたアウトライン内での色の勾配が求められる(S755)。ここで、色の勾配が比較的均一であれば(S757のYES)、頂点色を設定して単純補間によって領域の色が表現される(S759)。そうでなければ、領域の色がモデル化して表現される(S761)。モデルとしては、例えば3次元コンピュータグラフィックスのシェーディングモデルなどが適用されうる。シェーディングモデルでは、3次曲面と光源とを設定することで、スペキュラーなどを表現することができる。以上のような処理によって、領域群702aの各領域について、近似されたアウトラインとアウトライン内の色とを表現することによって、ベクター成分704を生成することができる。
 一方、領域群702bの各領域については、画像として圧縮することによって(S763)、ビットマップ成分706が生成される。S763での画像の圧縮には、例えばDCT(Discrete Cosine Transform)やVQ(Vector Quantization)などの公知の技術が利用されうる。
 さらに、領域群702aの領域ではベクター成分704と原画像700との差分、領域群702bの領域ではビットマップ成分706と原画像700との差分をそれぞれ算出することによって(S765)、ベクター成分704およびビットマップ成分706と原画像700との近似誤差708を得ることができる。
 次に、図23に示されるように、ベクター成分704と、ビットマップ成分706と、近似誤差708とに基づいて、エンコードされた画像ファイル714が生成される。まず、ベクター成分704とビットマップ成分706とのそれぞれのバウンディングボックス(bbox)に基づいて原画像700の領域を分割し、当該分割を示すk-dツリー710を生成する(S767)。さらに、近似誤差708をk-dツリー710の領域分割線で振り分けることによって(S769)、近似誤差成分712を得ることができる。
 このようにして得られたベクター成分704と、ビットマップ成分706と、k-dツリー710と、近似誤差成分712とをシリアライズすることによって(S771)、画像ファイル714が生成される。
 画像ファイル714では、先頭にk-dツリー710が構造データとして記述される。これによって、描画したい領域の成分を迅速にシークすることができる。続いて、ベクター成分704、ビットマップ成分706、および近似誤差成分712が記述される。なお、k-dツリー710以外の成分については、画像ファイル714内での配列の順番は特に限定されない。
 ベクター成分704では、各頂点データがbboxで正規化されている。従って、仮数部が必要とする有効桁数を削減し、データを圧縮することができる。また、近似誤差成分712については、誤差0の領域が大半であればrun-length圧縮が可能である。また、誤差があっても小規模な誤差に分布が集中するはずであるため、LZWなどのアルゴリズムを用いて圧縮することができる。
 ベクター成分704は、例えば、ベジエ曲線で囲まれた領域を単色でべた塗りすることを表現する。以下に、ベクター成分704の記述内容の一例を示す。なお、例は説明のために記述内容をPostScript形式で表現しているが、実際のベクター成分704は、例えばバイナリエンコードされた上で圧縮される。
newpath
0 100 moveto 
100 50 150 50 250 0 rcurveto 
100 -50 150 -50 250 0 rcurveto
closepath 
0 .3 1 .0 setcolor 
fill
 ビットマップ成分706は、例えば、矩形領域にビットマップパターンを適用することを表現する。以下に、ビットマップ成分706の記述内容の一例を示す。なお、例は説明のために記述内容をPostScript形式で表現しているが、実際のビットマップ成分706は、例えばバイナリエンコードされた上で圧縮される。なお、xxxx piximageはFill patternとして用いられるビットマップを示す。
newpath
100 100 moveto 
100 0 rlineto
0 100 rlineto
-100 0 rlineto
closepath
xxxx piximage
fill
 (8-5.デコード処理の例)
 次に、上記の例における画像ファイル714を、クライアント300においてデコードするときの処理の例について説明する。
  (ダウンロード完了後にデコードする場合)
 まず、ダウンロード完了後にデコードする場合の処理について説明する。この場合、クライアント300の表示制御部310は、画像ファイル714に含まれるベクター成分704を順に描画する。この例では、パスに重複がある場合は、後から描画されたベクター成分704のパスが優先される。
 次に、表示制御部310は、画像ファイル714に含まれるビットマップ成分706を順に描画する。このとき、ビットマップ成分706による描画は、ベクター成分704による描画に上書きされる。また、ビットマップ成分706の間でパスに重複がある場合は、後から描画されたビットマップ成分706のパスが優先される。
 次に、表示制御部310は、各領域の画像に近似誤差成分712を足し合わせる。近似誤差成分712は、例えば、RGBA(Red Green Blue Alpha)のそれぞれについて足し合わされてもよい。
  (ダウンロード途中で描画する場合)
 ダウンロード途中で描画する場合、第1の例として、クライアント300の表示制御部310は、画像ファイル714のダウンロードの進捗に合わせて、ベクター成分704、ビットマップ成分706、および近似誤差成分712の順で描画する。これによって、まず広い範囲の色が確定し、その後段階的に画像が詳細化されているような表示が可能になる。
 また、第2の例として、クライアント300の表示制御部310は、まず画像ファイル714の先頭にあるk-dツリー710をダウンロードする。表示制御部310は、k-dツリー710から、特定の領域に該当するベクター成分704、ビットマップ成分706、および近似誤差成分712へのポインタ情報を得ることができる。そこで、表示制御部310は、ファイルシークまたはHTTPレンジリクエストなどを利用して、上記のポインタ情報によって参照されるベクター成分704、ビットマップ成分706、および近似誤差成分712をダウンロードする。ダウンロードされたデータを用いて、表示制御部310は、上記特定の範囲をベクター成分704、ビットマップ成分706、および近似誤差成分712の順に描画し、当該領域についてのデコードを終了する。
 以上で説明した本実施形態によれば、例えば、ドキュメントにおいて参照される画像のファイルサイズを削減することによって、通信容量を削減することができる。また、画像が単純なグラデーションや単色での塗りつぶしを含むような場合には、これらの部分をトランスコーディングによってベクター化することによって、デコード処理を高速化することができる。
 (9.ハードウェア構成)
 次に、図24を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図24は、本開示の実施形態に係る情報処理装置のハードウェア構成例を説明するためのブロック図である。図示された情報処理装置900は、例えば、上記の実施形態におけるサーバおよびクライアントを実現しうる。
 情報処理装置900は、CPU(Central Processing unit)901、ROM(Read Only Memory)903、およびRAM(Random Access Memory)905を含む。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、通信装置925を含んでもよい。さらに、情報処理装置900は、必要に応じて、撮像装置933、およびセンサ935を含んでもよい。情報処理装置900は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)またはASIC(Application Specific Integrated Circuit)と呼ばれるような処理回路を有してもよい。
 CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置900内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
 入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりする。
 出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、有機EL(Electro-Luminescence)ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理装置900の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
 ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
 ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
 接続ポート923は、機器を情報処理装置900に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート923は、RS-232Cポート、光オーディオ端子、HDMI(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理装置900と外部接続機器929との間で各種のデータが交換されうる。
 通信装置925は、例えば、通信ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続される通信ネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
 撮像装置933は、例えば、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置933は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
 センサ935は、例えば、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサなどの各種のセンサである。センサ935は、例えば情報処理装置900の筐体の姿勢など、情報処理装置900自体の状態に関する情報や、情報処理装置900の周辺の明るさや騒音など、情報処理装置900の周辺環境に関する情報を取得する。また、センサ935は、GPS(Global Positioning System)信号を受信して装置の緯度、経度および高度を測定するGPSセンサを含んでもよい。
 以上、情報処理装置900のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
 (10.補足)
 本開示の実施形態は、例えば、上記で説明したような情報処理装置(サーバ装置またはクライアント装置)、システム、情報処理装置またはシステムで実行される情報処理方法、情報処理装置を機能させるためのプログラム、およびプログラムが記録された一時的でない有形の媒体を含みうる。なお、上記で説明された複数の実施形態は、特に組み合わせが可能であることが明示されていなくても、本明細書の記載から当業者に自明な範囲で任意に組み合わせて実現することができる。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得するドキュメント取得部と、
 前記リソースの内容ごとに一意な識別子を生成する識別子生成部と、
 前記ドキュメントにおいて前記識別子を前記リソースへの参照に関連付ける識別子記述部と、
 前記ドキュメントと、前記リソースへの参照に関連付けられた識別子とを前記クライアントに送信するドキュメント送信部と
 を備えるサーバ装置。
(2)前記識別子記述部は、前記識別子を、オリジナルの識別子に追加して前記リソースへの参照に関連付ける、前記(1)に記載のサーバ装置。
(3)前記識別子が前記リソースへの参照に関連付けられた回数をカウントし、前記回数に基づいて使用頻度が高いと推定される前記リソースを前記リクエストより前に前記識別子に関連付けて前記クライアントに送信するリソース先行配信部をさらに備える、前記(1)または(2)に記載のサーバ装置。
(4)前記リソース先行配信部は、前記使用頻度が高いと推定されるリソースがプログラムである場合に、前記プログラムをプリコンパイルしてから前記クライアントに送信する、前記(3)に記載のサーバ装置。
(5)前記識別子は、前記リソースの内容に基づいて算出されるハッシュを含む、前記(1)~(4)のいずれか1項に記載のサーバ装置。
(6)前記ドキュメント送信部は、前記識別子が生成される前に、前記リソースへの参照にダミー識別子を関連付けた前記ドキュメントを前記クライアントに送信し、前記識別子が生成された後に、前記ダミー識別子に前記識別子を関連付ける情報を前記クライアントに送信する、前記(1)~(5)のいずれか1項に記載のサーバ装置。
(7)サーバにリクエストを送信するリクエスト送信部と、
 前記リクエストに応じて前記サーバから送信された、リソースへの参照を含むドキュメントと、前記リソースへの参照に関連付けられた前記リソースの内容ごとに一意な識別子とを前記サーバから受信するドキュメント受信部と、
 前記識別子に基づいて、前記リソースがキャッシュに格納されているか否かを判定するキャッシュ判定部と
 を備えるクライアント装置。
(8)前記ドキュメント受信部は、オリジナルの識別子に追加して前記識別子が関連付けられた前記リソースへの参照を含むドキュメントを受信する、前記(7)に記載のクライアント装置。
(9)前記識別子に関連付けられた所定の前記リソースを前記リクエストより前に前記サーバから受信し、該受信されたリソースをキャッシュに格納するリソース先行受信部をさらに備える、前記(7)または(8)に記載のクライアント装置。
(10)前記リソース先行受信部は、前記所定のリソースがプログラムである場合に、プリコンパイルされた前記プログラムを受信し、該受信されたプログラムをキャッシュする、前記(9)に記載のクライアント装置。
(11)前記リソース先行受信部は、前記受信されたプログラムを、プログラム以外のリソースとは異なる記憶領域にキャッシュする、前記(10)に記載のクライアント装置。
(12)前記識別子は、前記リソースの内容に基づいて算出されるハッシュを含む、前記(7)~(11)のいずれか1項に記載のクライアント装置。
(13)前記ドキュメント受信部は、前記リソースへの参照にダミー識別子が関連付けられた前記ドキュメントを前記サーバから受信した後に、前記ダミー識別子に前記識別子を関連付ける情報を前記サーバから受信する、前記(7)~(12)のいずれか1項に記載のクライアント装置。
(14)前記キャッシュ判定部は、前記リソースへの参照にダミー識別子が関連付けられた状態で前記リソースを参照する場合に、前記サーバに前記識別子のためのリクエストを送信する機能を実現する、前記(13)に記載のクライアント装置。
(15)クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得することと、
 前記リソースの内容ごとに一意な識別子を生成することと、
 プロセッサが、前記ドキュメントにおいて前記識別子を前記リソースへの参照に関連付けることと、
 前記ドキュメントと、前記リソースへの参照に関連付けられた識別子とを前記クライアントに送信することと
 を含む情報処理方法。
(16)サーバにリクエストを送信する機能と、
 前記リクエストに応じて送信された、リソースへの参照を含むドキュメントと、前記リソースへの参照に関連付けられた前記リソースの内容ごとに一意な識別子とを前記サーバから受信する機能と、
 前記識別子に基づいて、前記リソースがキャッシュに格納されているか否かを判定する機能と
 をコンピュータに実現させるためのプログラムが記録された一時的でない有形の記録媒体。
 10  システム
 100  配信サーバ
 200  中間サーバ
 202  リクエスト受信部
 204  ドキュメント取得部
 206  ドキュメント解析部
 208  リソース取得部
 210  識別子生成部
 212  識別子記述部
 214  ドキュメント送信部
 216  リソース送信部
 218  リソース先行配信部
 220  リソース解析部
 222  短縮文字列生成部
 224  短縮文字列記述部
 226  関連付け情報送信部
 228  画像トランスコード部
 230  画像参照更新部
 280  キャッシュ
 282  データベース
 300  クライアント
 302  リクエスト送信部
 304  ドキュメント受信部
 306  キャッシュ判定部
 308  リソース受信部
 310  表示制御部
 312  リソース先行受信部
 314  関連付け情報受信部
 316  文字列解釈部
 380  キャッシュ
 382  データベース

Claims (16)

  1.  クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得するドキュメント取得部と、
     前記リソースの内容ごとに一意な識別子を生成する識別子生成部と、
     前記ドキュメントにおいて前記識別子を前記リソースへの参照に関連付ける識別子記述部と、
     前記ドキュメントと、前記リソースへの参照に関連付けられた識別子とを前記クライアントに送信するドキュメント送信部と
     を備えるサーバ装置。
  2.  前記識別子記述部は、前記識別子を、オリジナルの識別子に追加して前記リソースへの参照に関連付ける、請求項1に記載のサーバ装置。
  3.  前記識別子が前記リソースへの参照に関連付けられた回数をカウントし、前記回数に基づいて使用頻度が高いと推定される前記リソースを前記リクエストより前に前記識別子に関連付けて前記クライアントに送信するリソース先行配信部をさらに備える、請求項1に記載のサーバ装置。
  4.  前記リソース先行配信部は、前記使用頻度が高いと推定されるリソースがプログラムである場合に、前記プログラムをプリコンパイルしてから前記クライアントに送信する、請求項3に記載のサーバ装置。
  5.  前記識別子は、前記リソースの内容に基づいて算出されるハッシュを含む、請求項1に記載のサーバ装置。
  6.  前記ドキュメント送信部は、前記識別子が生成される前に、前記リソースへの参照にダミー識別子を関連付けた前記ドキュメントを前記クライアントに送信し、前記識別子が生成された後に、前記ダミー識別子に前記識別子を関連付ける情報を前記クライアントに送信する、請求項1に記載のサーバ装置。
  7.  サーバにリクエストを送信するリクエスト送信部と、
     前記リクエストに応じて前記サーバから送信された、リソースへの参照を含むドキュメントと、前記リソースへの参照に関連付けられた前記リソースの内容ごとに一意な識別子とを前記サーバから受信するドキュメント受信部と、
     前記識別子に基づいて、前記リソースがキャッシュに格納されているか否かを判定するキャッシュ判定部と
     を備えるクライアント装置。
  8.  前記ドキュメント受信部は、オリジナルの識別子に追加して前記識別子が関連付けられた前記リソースへの参照を含むドキュメントを受信する、請求項7に記載のクライアント装置。
  9.  前記識別子に関連付けられた所定の前記リソースを前記リクエストより前に前記サーバから受信し、該受信されたリソースをキャッシュに格納するリソース先行受信部をさらに備える、請求項7に記載のクライアント装置。
  10.  前記リソース先行受信部は、前記所定のリソースがプログラムである場合に、プリコンパイルされた前記プログラムを受信し、該受信されたプログラムをキャッシュする、請求項9に記載のクライアント装置。
  11.  前記リソース先行受信部は、前記受信されたプログラムを、プログラム以外のリソースとは異なる記憶領域にキャッシュする、請求項10に記載のクライアント装置。
  12.  前記識別子は、前記リソースの内容に基づいて算出されるハッシュを含む、請求項7に記載のクライアント装置。
  13.  前記ドキュメント受信部は、前記リソースへの参照にダミー識別子が関連付けられた前記ドキュメントを前記サーバから受信した後に、前記ダミー識別子に前記識別子を関連付ける情報を前記サーバから受信する、請求項7に記載のクライアント装置。
  14.  前記キャッシュ判定部は、前記リソースへの参照にダミー識別子が関連付けられた状態で前記リソースを参照する場合に、前記サーバに前記識別子のためのリクエストを送信する機能を実現する、請求項13に記載のクライアント装置。
  15.  クライアントからのリクエストに応じて、リソースへの参照を含むドキュメントを取得することと、
     前記リソースの内容ごとに一意な識別子を生成することと、
     プロセッサが、前記ドキュメントにおいて前記識別子を前記リソースへの参照に関連付けることと、
     前記ドキュメントと、前記リソースへの参照に関連付けられた識別子とを前記クライアントに送信することと
     を含む情報処理方法。
  16.  サーバにリクエストを送信する機能と、
     前記リクエストに応じて送信された、リソースへの参照を含むドキュメントと、前記リソースへの参照に関連付けられた前記リソースの内容ごとに一意な識別子とを前記サーバから受信する機能と、
     前記識別子に基づいて、前記リソースがキャッシュに格納されているか否かを判定する機能と
     をコンピュータに実現させるためのプログラムが記録された一時的でない有形の記録媒体。
PCT/JP2014/067696 2013-10-08 2014-07-02 サーバ装置、クライアント装置、情報処理方法および記録媒体 WO2015052968A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015541456A JP6323461B2 (ja) 2013-10-08 2014-07-02 サーバ装置、クライアント装置、情報処理方法および記録媒体
CN201480054817.5A CN105593853B (zh) 2013-10-08 2014-07-02 服务器装置、客户端装置、信息处理方法和记录介质
US15/026,919 US10509826B2 (en) 2013-10-08 2014-07-02 Server device, client device, information processing method, and recording medium
EP14852303.8A EP3056996A4 (en) 2013-10-08 2014-07-02 Server device, client device, information processing method, and recording medium
BR112016007311A BR112016007311A2 (pt) 2013-10-08 2014-07-02 dispositivos servidor e cliente, método de processamento de informação, e, mídia de gravação tangível não transitória

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-211282 2013-10-08
JP2013211282 2013-10-08

Publications (1)

Publication Number Publication Date
WO2015052968A1 true WO2015052968A1 (ja) 2015-04-16

Family

ID=52812789

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/067696 WO2015052968A1 (ja) 2013-10-08 2014-07-02 サーバ装置、クライアント装置、情報処理方法および記録媒体

Country Status (6)

Country Link
US (1) US10509826B2 (ja)
EP (1) EP3056996A4 (ja)
JP (1) JP6323461B2 (ja)
CN (1) CN105593853B (ja)
BR (1) BR112016007311A2 (ja)
WO (1) WO2015052968A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677809B2 (en) * 2015-10-15 2023-06-13 Usablenet Inc. Methods for transforming a server side template into a client side template and devices thereof
US10866893B2 (en) * 2018-01-23 2020-12-15 Home Depot Product Authority, Llc Cache coherency engine
US11914980B2 (en) * 2021-06-08 2024-02-27 Red Hat, Inc. Managing deployments of software programs to distributed computing environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222273A (ja) * 1999-02-03 2000-08-11 Nec Software Shikoku Ltd ドキュメントダウンロードシステム
JP2003281023A (ja) * 2002-03-26 2003-10-03 Toshiba Corp データ転送装置、データ転送方法、データ受信表示装置、プログラム
JP2004185263A (ja) * 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム
JP2007188514A (ja) * 2007-02-13 2007-07-26 Toshiba Corp サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP2011108102A (ja) 2009-11-19 2011-06-02 Sony Corp ウェブサーバ、ウェブブラウザおよびウェブシステム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195622B1 (en) * 1998-01-15 2001-02-27 Microsoft Corporation Methods and apparatus for building attribute transition probability models for use in pre-fetching resources
US6631515B1 (en) * 1998-09-24 2003-10-07 International Business Machines Corporation Method and apparatus to reduce code size and runtime in a Java environment
US8041817B2 (en) * 2000-06-30 2011-10-18 At&T Intellectual Property I, Lp Anonymous location service for wireless networks
US20040010543A1 (en) * 2002-07-15 2004-01-15 Steven Grobman Cached resource validation without source server contact during validation
US7519726B2 (en) * 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
JP5208560B2 (ja) * 2008-03-31 2013-06-12 株式会社東芝 情報映像化配信装置、情報映像化配信方法及びプログラム
JP5571667B2 (ja) * 2008-08-18 2014-08-13 エフ5 ネットワークス、インコーポレイテッド 可用性を維持しながらネットワークトラフィック管理装置をアップグレードする方法
CN102985921B (zh) * 2010-05-07 2016-09-21 谷歌公司 在具有电子资源数据库的客户端装置中高速缓存电子文档资源
US8484373B2 (en) * 2010-10-25 2013-07-09 Google Inc. System and method for redirecting a request for a non-canonical web page
IL217279A0 (en) * 2011-12-29 2012-02-29 Israel Ragutski Method and system for ensuring authenticity of ip data served by a service provider

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222273A (ja) * 1999-02-03 2000-08-11 Nec Software Shikoku Ltd ドキュメントダウンロードシステム
JP2003281023A (ja) * 2002-03-26 2003-10-03 Toshiba Corp データ転送装置、データ転送方法、データ受信表示装置、プログラム
JP2004185263A (ja) * 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム
JP2007188514A (ja) * 2007-02-13 2007-07-26 Toshiba Corp サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP2011108102A (ja) 2009-11-19 2011-06-02 Sony Corp ウェブサーバ、ウェブブラウザおよびウェブシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AKIRA MATSUDA, SHOKAI RAILS 4 'SHIJO SAIKO' NO SHIN VERSION O TETTEI SHOKAI! DAI 3 SHO JIKKO MO KAIHATSU MO KOSOKU NA RAILS 4, vol. 73, 25 March 2013 (2013-03-25), pages 63 - 69, XP008183601 *
See also references of EP3056996A4

Also Published As

Publication number Publication date
JPWO2015052968A1 (ja) 2017-03-09
US10509826B2 (en) 2019-12-17
EP3056996A4 (en) 2017-06-28
JP6323461B2 (ja) 2018-05-16
CN105593853A (zh) 2016-05-18
EP3056996A1 (en) 2016-08-17
US20160292298A1 (en) 2016-10-06
BR112016007311A2 (pt) 2017-08-01
CN105593853B (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN109947512B (zh) 一种文本适配显示方法、装置、服务器及存储介质
US20190294721A1 (en) Systems and Methods for Managing and Delivering Digital Content
JP2015529874A (ja) 医用画像を閲覧するためのシステム及び方法
US9286228B2 (en) Facilitating caching in an image-processing system
JP2003099358A5 (ja)
US20160098414A1 (en) Systems and methods to present activity across multiple devices
JP6323461B2 (ja) サーバ装置、クライアント装置、情報処理方法および記録媒体
CN108495174B (zh) 一种h5页面效果生成视频文件的方法及系统
CN114116635A (zh) 压缩数据流的并行解压缩
US10296713B2 (en) Method and system for reviewing medical study data
CN115209215A (zh) 视频处理方法、装置及设备
JP7399548B2 (ja) メディアシーン記述のための方法および装置
WO2015052967A1 (ja) サーバ装置、クライアント装置、情報処理方法および記録媒体
KR20140040994A (ko) 전자문서 레이아웃 유지를 위한 폰트처리 방법, 그리고 이를 위한 폰트처리 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
US11436764B2 (en) Dynamic generation and delivery of scalable graphic images in web applications
RU2634221C2 (ru) Способ и устройство для отрисовки представления электронного документа на экране
WO2015073666A1 (en) Displaying activity across multiple devices
CN109493401B (zh) 演示文稿生成方法、装置以及电子设备
CN115136594A (zh) 在沉浸式视频中对于每个图集标示启用视图的方法和装置
KR20190130959A (ko) 크로마 서브 샘플링된 이미지들에 대한 빠른 참조 객체 저장 형식에 대한 방법
EP4170517B1 (en) Integrating data with different configuration models
CN117272965B (zh) 演示稿件生成方法、装置、电子设备和计算机可读介质
CN104732481A (zh) 图像调整方法及装置
CN118194420A (zh) 基于b/s架构的在线编辑bim模型的方法及相关设备
CN116244580A (zh) 基于模型的数据预测方法、模型生成方法、装置及产品

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015541456

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: IDP00201602197

Country of ref document: ID

REEP Request for entry into the european phase

Ref document number: 2014852303

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15026919

Country of ref document: US

Ref document number: 2014852303

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112016007311

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112016007311

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20160401