Sign In to Follow Application
View All Documents & Correspondence

Server Device Client Device Information Processing Method And Recording Medium

Abstract: [Problem] To speed up the supply of a document to a client by drawing on the processing capability of a server in a system in which the server supplies the document in response to a request from the client. [Solution] There is provided a server device including: a document acquisition unit for acquiring a document containing a reference to a resource in response to a request from a client; an identifier generation unit for generating a unique identifier for each content of the resource; an identifier description unit for correlating in the document the identifier with a reference to the resource; and a document transmission unit for transmitting to the client the document and the identifier correlated with the reference to the resource.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
17 March 2016
Publication Number
30/2016
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
ipo@knspartners.com
Parent Application

Applicants

SONY CORPORATION
1 7 1 Konan Minato ku Tokyo 1080075,Japan

Inventors

1. YUTANI Tetsuo
c/o SONY CORPORATION 1 7 1 Konan Minato ku Tokyo 1080075
2. WONGPAISARNSIN Goragot
c/o SONY CORPORATION 1 7 1 Konan Minato ku Tokyo 1080075

Specification

SERVER DEVICE, CLIENT DEVICE, INFORMATION PROCESSING METHOD,
5 AND RECORDING MEDIUM
Technical Field
[0001]
The present disclosure relates to a server device, a client device, an
10 information processing method, and a recording medium.
Background Art
[0002]
A system in which a server provides a document in response to a request
15 from a client, such as the world wide web (WWW) that provides a hyper text markup
language (HTML) document, has been widely diffused recently. In such a system,
reduction in a time required for providing a document to a client, i.e., more
specifically, reduction in a time between transmission of a request from a client and
display of a document in the client is a problem that has been attempted to be solved
20 for a long time. For example, Patent Literature 1 discloses a technique that caches a
content in a web server in order to efficiently use a cache even in the case where
access to a memory resource or a web service is limited.
Citation List
25 Patent Literature
[0003]
Patent Literature 1: JP 2011-108102A
Summary of Invention
30 Technical Problem
[0004]
3
However, a rich document referring to various resources, such as a still
image/a moving image and a script in an HTML, tends to be increased, and therefore
further progress of a speed-up technique such as the above technique is demanded.
Although improvement in throughput of a server and a client contributes to speeding
up of the system, it is not always easy 5 to improve the throughput in the case where
the client is, for example, a mobile device.
[0005]
In view of this, the present disclosure proposes a server device, a client
device, an information processing method, and a recording medium in a system in
10 which a server provides a document in response to a request from a client, each of
which is new and improved and is capable of speeding up provision of a document to
the client by utilizing throughput of the server.
Solution to Problem
15 [0006]
According to the present disclosure, there is provided a server device,
including: a document acquisition unit configured to acquire a document including a
reference to a resource in response to a request from a client; an identifier generation
unit configured to generate an identifier unique to content of the resource; an
20 identifier writing unit configured to associate the identifier with the reference to the
resource in the document; and a document transmission unit configured to transmit
the document and the identifier associated with the reference to the resource to the
client.
[0007]
25 According to the present disclosure, there is provided a client device,
including: a request transmission unit configured to transmit a request to a server; a
document reception unit configured to receive, from the server, a document including
a reference to a resource, the document being transmitted from the server in response
to the request, and an identifier that is associated with the reference to the resource
30 and is unique to content of the resource; and a cache determination unit configured to
determine whether or not the resource is stored in a cache on the basis of the
4
identifier.
[0008]
According to the present disclosure, there is provided an information
processing method, including: acquiring a document including a reference to a
resource in response to a request from a client; 5 generating an identifier unique to
content of the resource; associating, with the use of a processor, the identifier with
the reference to the resource in the document; and transmitting the document and the
identifier associated with the reference to the resource to the client.
[0009]
10 According to the present disclosure, there is provided a non-transitory
tangible recording medium having a program recorded thereon, the program causing
a computer to realize a function of transmitting a request to a server, a function of
receiving, from the server, a document including a reference to a resource, the
document being transmitted in response to the request, and an identifier that is
15 associated with the reference to the resource and is unique to content of the resource,
and a function of determining whether or not the resource is stored in a cache on the
basis of the identifier.
Advantageous Effects of Invention
20 [0010]
According to the present disclosure as described above, in a system in which
a server provides a document in response to a request from a client, it is possible to
speed up provision of a document to the client by utilizing throughput of the server.
25 Brief Description of Drawings
[0011]
[FIG. 1] FIG. 1 shows a schematic configuration of a system to which some
embodiments of the present disclosure are applied.
[FIG. 2] FIG. 2 is a block diagram showing a schematic function configuration of an
30 intermediate server and a client according to Embodiment 1 of the present disclosure.
[FIG. 3] FIG. 3 is a flowchart showing processing of the intermediate server
5
according to Embodiment 1 of the present disclosure.
[FIG. 4] FIG. 4 is a flowchart showing processing of the client according to
Embodiment 1 of the present disclosure.
[FIG. 5] FIG. 5 is a flowchart showing processing of an intermediate server according
to a modification e 5 xample of Embodiment 1 of the present disclosure.
[FIG. 6] FIG. 6 is a flowchart showing processing of a client according to the
modification example of Embodiment 1 of the present disclosure.
[FIG. 7] FIG. 7 is a block diagram showing a schematic function configuration of an
intermediate server and a client according to Embodiment 2 of the present disclosure.
10 [FIG. 8] FIG. 8 is a flowchart showing processing before the intermediate server
according to Embodiment 2 of the present disclosure receives a request.
[FIG. 9] FIG. 9 is a flowchart showing processing before the client according to
Embodiment 2 of the present disclosure transmits a request.
[FIG. 10A] FIG. 10A is a block diagram showing a schematic function configuration
15 of an intermediate server according to Embodiment 3 of the present disclosure.
[FIG. 10B] FIG. 10B is a block diagram showing a schematic function configuration
of a client according to Embodiment 3 of the present disclosure.
[FIG. 11] FIG. 11 is a flowchart showing processing of the intermediate server
according to Embodiment 3 of the present disclosure.
20 [FIG. 12] FIG. 12 is a flowchart showing processing of the client according to
Embodiment 3 of the present disclosure.
[FIG. 13] FIG. 13 is a flowchart showing processing of an intermediate server
according to a modification example of Embodiment 3 of the present disclosure.
[FIG. 14A] FIG. 14A is a block diagram showing a schematic function configuration
25 of an intermediate server according to Embodiment 4 of the present disclosure.
[FIG. 14B] FIG. 14B is a block diagram showing a schematic function configuration
of a client according to Embodiment 4 of the present disclosure.
[FIG. 15A] FIG. 15A is a flowchart showing processing of the intermediate server
according to Embodiment 4 of the present disclosure.
30 [FIG. 15B] FIG. 15B is a flowchart showing processing of the intermediate server
according to Embodiment 4 of the present disclosure.
6
[FIG. 16A] FIG. 16A is a flowchart showing processing of the client according to
Embodiment 4 of the present disclosure.
[FIG. 16B] FIG. 16B is a flowchart showing processing of the client according to
Embodiment 4 of the present disclosure.
[FIG. 17] FIG. 17 is a flowchart showing processing 5 of an intermediate server
according to Embodiment 5 of the present disclosure.
[FIG. 18] FIG. 18 is a flowchart showing processing of a client according to
Embodiment 5 of the present disclosure.
[FIG. 19] FIG. 19 is a flowchart showing processing of an intermediate server
10 according to Embodiment 6 of the present disclosure.
[FIG. 20] FIG. 20 is a block diagram showing a schematic function configuration of
an intermediate server and a client according to Embodiment 7 of the present
disclosure.
[FIG. 21] FIG. 21 is a flowchart showing processing of the intermediate server
15 according to Embodiment 7 of the present disclosure.
[FIG. 22] FIG. 22 is a diagram for explaining processing for generating an image file
in accordance with an image format that is applicable in Embodiment 7 of the
present disclosure.
[FIG. 23] FIG. 23 is a diagram for explaining processing for generating an image file
20 in accordance with an image format that is applicable in Embodiment 7 of the
present disclosure.
[FIG. 24] FIG. 24 is a block diagram for explaining an example of a hardware
configuration of an information processing device according to an embodiment of the
present disclosure.
25
Description of Embodiments
[0012]
Hereinafter, (a) preferred embodiment(s) of the present disclosure will be
described in detail with reference to the appended drawings. In this specification
30 and the drawings, elements that have substantially the same function and structure
are denoted with the same reference signs, and repeated explanation is omitted.
7
[0013]
Note that description will be provided in the following order.
1. System Configuration
2. Embodiment 1
5 2-1. Function Configuration
2-2. Processing Flow
2-3. Modification Example
3. Embodiment 2
3-1. Function Configuration
10 3-2. Processing Flow
4. Embodiment 3
4-1. Function Configuration
4-2. Processing Flow
4-3. Modification Example
15 5. Embodiment 4
5-1. Function Configuration
5-2. Processing Flow
6. Embodiment 5
7. Embodiment 6
20 8. Embodiment 7
8-1. Function Configuration
8-2. Processing Flow
8-3. Example of Transcoding
8-4. Example of Format
25 8-5. Example of Decoding Processing
9. Hardware Configuration
10. Supplementary Explanation
[0014]
(1. System Configuration)
30 FIG. 1 shows a schematic configuration of a system to which some
embodiments of the present disclosure are applied. When referring to FIG. 1, a
8
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 one another via a network such as the Internet.
[0015]
Each of both the distribution 5 source server 100 and the intermediate server
200 is a server realized by one or a plurality of server devices. The distribution
source server 100 holds a document to be provided to a user and a resource referred
to by the document. The document and the resource are distributed from the
distribution source server 100 to the client 300 via the one or plurality of
10 intermediate servers 200 in response to a request from the client 300. For example,
when the intermediate server 200 holds a document and a resource as caches and
distributes the cached document and resource to the client 300 instead of the
distribution source server 100, the document can be quickly provided to the client
300.
15 [0016]
Part of the document and the resource is also held in the client 300 as a
cache. In the case where the document and the resource are held in the client 300, it
is unnecessary to transmit and receive data via a network, and therefore the
document is displayed more quickly. However, an amount of cache that can be held
20 in the client 300 is limited, and therefore it is advantageous to provide the
intermediate server 200 that can hold more caches. The intermediate server 200 not
only holds caches but also can execute various kinds of speed-up processing as
described in embodiments described below.
[0017]
25 Note that the one or plurality of server devices realizing the distribution
source server 100 or the intermediate server 200 can be an information processing
device(s) including a processor such as a central processing unit (CPU). The client
300 can also be realized by an information processing device including a processor.
The client 300 may further include output devices such as a display and a speaker, an
30 input device such as a touchscreen panel, an image pickup device, and the like.
More specifically, for example, the client 300 can be a device such as a smartphone,
9
a personal computer, a tablet, a media player, a television, and a game console. A
specific hardware configuration of the information processing device realizing each
device described above will be described in more detail below.
[0018]
The system 10 can be used 5 to distribute a document written in a markup
language such as HTML. In this case, the resource can be, for example, a script
such as JavaScript, style definition information such as cascading style sheets (CSS),
a still image, and a moving image. Note that the system 10 can be used to distribute
not only a document written in a markup language but also various documents and
10 data (including a still image, a moving image, and the like) other than the documents.
[0019]
(2. Embodiment 1)
(2-1. Function Configuration)
FIG. 2 is a block diagram showing a schematic function configuration of an
15 intermediate server and a client according to Embodiment 1 of the present disclosure.
When referring to FIG. 2, the intermediate server 200 includes, as a function
configuration, a request reception unit 202, a document acquisition unit 204, a
document analysis unit 206, a resource acquisition unit 208, an identifier generation
unit 210, an identifier writing unit 212, a document transmission unit 214, and a
20 resource transmission unit 216. The client 300 includes, as a function configuration,
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.
[0020]
For example, those function configurations can be realized by causing the
25 processors included in the information processing devices that realize the
intermediate server 200 and the client 300 to operate in accordance with programs
stored in memories or recording media. A cache 280 in the intermediate server 200
and a cache 380 in the client 300 can be realized by, for example, storages or
memories of the respective information processing devices.
30 [0021]
(Intermediate Server)
10
In the intermediate server 200, the request reception unit 202 receives a
request from the client 300. When the request is received, the document acquisition
unit 204 acquires a document specified in the request in response to the request. At
this time, the document acquisition unit 204 may internally acquire the document
stored in the cache 280. In the case 5 where the specified 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.
[0022]
10 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. In the case where the
reference to the resource is detected by the document analysis unit 206, the resource
acquisition unit 208 acquires the resource that is referred to. At this time, the
15 resource acquisition unit 208 may internally acquire the resource stored in the cache
280. In the case where the resource that is referred to 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
20 server 100 is stored in the cache 280.
[0023]
The identifier generation unit 210 generates an identifier unique to content
of the resource acquired by the resource acquisition unit 208. For example, the
identifier generation unit 210 may calculate a hash with a predetermined algorithm
25 on the basis of the content of the resource. In this case, the calculated hash can be
an identifier unique to the content of the resource. Note that the identifier
generation unit 210 does not necessarily need to use a hash as an identifier as it is
and may identify a resource on the basis of a hash and then separately generate an
identifier to thereby add the identifier to the resource. The identifier generation unit
30 210 may associate the generated identifier with the resource stored in the cache 280.
[0024]
11
More specifically, for example, the identifier generation unit 210 considers
the resource to be binary data regardless of a type thereof and generates a unique
identifier with the use of a hash function. As the hash function, for example, MD5,
SHA-1, SHA-256, or the like may be used. Further, the identifier generation unit
210 may generate a plurality of identifiers for a 5 single resource with the use of a
plurality of hash functions. In the case where all those identifiers match, it is
determined that resources are identical. This can further improve uniqueness of the
identifiers.
[0025]
10 As described below, it is possible to speed up display of a document in the
client 300 by using an identifier that is unique to content of a resource and is
generated by the identifier generation unit 210. As in the above example where an
identifier is generated by using a hash function, it takes some time for the identifier
generation unit 210 to generate a unique identifier. However, throughput of the
15 intermediate server 200 is generally higher than that of the client 300, and display of
a document can be started in the client 300 while an identifier is being generated as
described in a modification example described below. As a result, display of the
document is speeded up.
[0026]
20 The identifier writing unit 212 associates the identifier generated by the
identifier generation unit 210 with the reference to the resource in the document.
More specifically, for example, the identifier writing unit 212 adds the identifier
generated by the identifier generation unit 210 to an original identifier and associates
the identifier with the reference to the resource. For example, an HTML document
25 includes a reference to a resource having a uniform resource locator (URL) as an
original identifier. In this case, the identifier writing unit 212 may additionally
write an identifier generated by the identifier generation unit 210 such as a hash in
the document while maintaining the URL serving as an original identifier.
[0027]
30 As an example, in the case where a reference to a resource of an image
including a URL shown in the following (a) is included in a HTML document, the
12
identifier writing unit 212 may additionally write a hash (new_id) that is an identifier
generated by the identifier generation unit 210 in the document as shown in (b).
(a)
(b)
5 [0028]
As described below, the client 300 is configured to determine whether or not
a cache of a resource exists on the basis of an identifier additionally written by the
identifier writing unit 212 at the time of referring to a document and transmit a
request for the resource to the intermediate server 200 in the case where the cache
10 does not exist. However, a client other than the client 300, i.e., a client that does
not refer to an identifier that is additionally written can exist in the network. When
the identifier writing unit 212 maintains an original identifier, it is possible to secure
backward compatibility with such a client.
[0029]
15 Alternatively, the identifier writing unit 212 may overwrite the identifier
generated by the identifier generation unit 210 on the original identifier included in
the reference to the resource in the document. In this case, for example, the
reference to the resource shown in the above (a) can be rewritten as shown in the
following (c).
20 (c)
[0030]
In this example, the identifier writing unit 212 rewrites the URL into an
absolute pass indicating the intermediate server 200 and writes the identifier
generated by the identifier generation unit 210 after the absolute pass. The absolute
25 pass indicating the intermediate server 200 is added in common to all resources.
Therefore, determination of presence/absence of a cache by the client 300 on the
basis of an original identifier rewritten as in the above example is substantially the
same as determination based on an identifier generated by the identifier generation
unit 210. In this case, the client does not need to be configured to refer to an
30 identifier that is additionally written.
[0031]
13
The document transmission unit 214 transmits the document including the
identifier generated by the identifier generation unit 210 to the client 300. As
described below, the client 300 displays the document while referring to the resource
on the basis of the identifier generated by the identifier generation unit 210. In the
case where the resource referred to in the 5 document is not cached in the client 300,
the resource transmission unit 216 transmits the resource stored in the cache 280 to
the client 300 in response to a request for the resource transmitted from the client 300.
[0032]
(Client)
10 In the client 300, the request transmission unit 302 transmits a request to the
intermediate server 200 on the basis of, for example, user operation. The document
reception unit 304 receives a document transmitted by the intermediate server 200 in
response to the request. As described above, the received document includes a
reference to a resource, and the reference to the resource is associated with an
15 identifier that is generated by the identifier generation unit 210 of the intermediate
server 200 and is unique to content of the resource. As described above, the unique
identifier may be added to an original identifier to be associated with the reference to
the resource in the document.
[0033]
20 The cache determination unit 306 determines whether or not the resource
that is 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 or not the resource is stored in the cache 380 on the basis of the identifier
unique to the content of the resource. In the case where the resource is stored in the
25 cache 380, the cache determination unit 306 reads out the stored resource and
provides the resource to the display control unit 310. On the contrary, in the case
where 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.
30 [0034]
Herein, if the identifier used in determination by the cache determination
14
unit is, for example, a URL, the identifier is not always unique to the content of the
resource. Therefore, in some cases, it is determined that different resources are
referred to even in the case where the resources have identical contents. For
example, it is assumed that there are a first resource referred to by a first document
distributed from a first distribution source server 100a 5 and a second resource referred
to by a second document distributed from a second distribution source server 100b.
In this case, even in the case where the first resource and the second resource have
identical content, a URL indicating the first distribution source server 100a and a
URL indicating the second distribution source server 100b are different, and
10 therefore identifiers (URLs) used in references to the first resource and the second
resource are different. Accordingly, in the case where the second resource is
referred to in the received second document, the cache determination unit may
determine that the resource that is referred to is not stored in the cache unless the
second resource itself is stored in the cache even though the first resource having the
15 same content as that of the second resource has already been stored in the cache.
[0035]
On the contrary, the cache determination unit 306 of the client 300
according to this embodiment determines whether or not the resource is stored in the
cache 380 on the basis of the identifier unique to the content of the resource. In the
20 above example, the identifier generation unit 210 of the intermediate server 200
generates an identifier common to the first resource and the second resource, and the
cache determination unit 306 determines whether or not the resource is stored in the
cache 380 on the basis of the common identifier. Therefore, in the case where the
second resource is referred to in the received second document and the first resource
25 having the same content as that of the second resource has already been stored in the
cache 380, the cache determination unit 306 determines that the resource that is
referred to is stored in the cache 38. This makes it possible to reuse the resource
stored in the cache 380 and provide the resource to the display control unit 310
without transmitting a request to the intermediate server 200.
30 [0036]
The resource reception unit 308 transmits the request for the resource to the
15
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 reception
unit 308 stores the resource that is newly received in the cache 380.
5 [0037]
The display control unit 310 displays the document on the display of the
client 300 on the basis of the document received by the document reception unit 304
and the resource that is referred to in the document. As described above, the
resource is read out from the cache 380 and is reused in accordance with
10 determination of the cache determination unit 306 or is newly received from the
intermediate server 200. Because it takes time for communication to receive the
resource from the intermediate server 200, display of documents is speeded up as a
ratio of reused resources is higher.
[0038]
15 In this embodiment, the cache determination unit 306 determines whether or
not a resource is stored in the cache 380 on the basis of an identifier unique to
content of the resource. Therefore, for example, not only resources referred to in
documents distributed from the same distribution source server 100 but also
resources referred to in a plurality of documents, respectively, distributed from
20 different distribution source servers 100 can be reused as long as contents thereof are
identical. This can increase a ratio of resources reused when documents are
displayed, and therefore display of the documents can be speeded up.
[0039]
(2-2. Processing Flow)
25 (Processing Flow of Intermediate Server)
FIG. 3 is a flowchart showing processing of the intermediate server
according to Embodiment 1 of the present disclosure. When referring to FIG. 3,
first, the request reception unit 202 receives a request from the client 300 (S101).
Next, the document acquisition unit 204 acquires a document specified in the request
30 (S103). Then, the document analysis unit 206 analyzes the acquired document
(S105).
16
[0040]
Herein, a reference to a resource is detected in analysis of the document
(YES in S107), the resource acquisition unit 208 acquires the resource that is referred
to (S109). Further, the identifier generation unit 210 generates a unique identifier
on the basis of content of the acquired resource 5 (S111). Then, the identifier writing
unit 212 associates the generated unique identifier with the reference to the resource
in the document (S113). S109 to S113 can be repeatedly executed until all
references to resources in the document are detected.
[0041]
10 In the case where a reference to a resource is no longer detected or no
reference has been detected in analysis of the document (NO in S107), the document
transmission unit 214 transmits the document to the client 300 (S115). Thereafter,
in the case where a request for a resource is received from the client 300 (YES in
S117), the resource transmission unit 216 transmits the resource to the client 300
15 (S119). In the case where a request for a resource is no longer received or no
request has been received (NO in S117), processing in the intermediate server 200 is
terminated.
[0042]
(Processing Flow of Client)
20 FIG. 4 is a flowchart showing processing of the client according to
Embodiment 1 of the present disclosure. When referring to FIG. 4, first, the request
transmission unit 302 transmits a request to the intermediate server 200 (S131).
Then, the document reception unit 304 receives a document transmitted by the
intermediate server 200 in response to the request (S133). Herein, the display
25 control unit 310 starts displaying the received document (S135).
[0043]
In the case where a reference to a resource is found in the document (YES in
S137), the cache determination unit 306 determines whether or not the resource that
is referred to is stored (cached) in the cache 380 (S139). As described above, the
30 cache determination unit 306 determines whether or not the resource is stored in the
cache 380 on the basis of an identifier that is unique to content of the resource and is
17
associated with the reference to the resource in the document.
[0044]
Herein, in the case where it is determined that the resource is stored in the
cache 380 (YES in S139), the cache determination unit 306 reads out the resource
from the cache 380 and provides the resource 5 to the display control unit 310. That
is, the cache determination unit 306 and the display control unit 310 reuse the cached
resource (S141). On the contrary, in the case where it is determined that the
resource is not stored in the cache 380 (NO in S139), the resource reception unit 308
transmits a request for the resource to the intermediate server 200 (S143). The
10 resource reception unit 308 receives the resource transmitted by the intermediate
server 200 in response to the request (S145).
[0045]
The display control unit 310 continues to display the document with
reference to the reused resource or the resource received from the intermediate server
15 200 (S147). S139 to S147 can be repeatedly executed until all references to
resources in the document are found. In the case where the display control unit 310
displays the whole document and a reference to a resource is no longer found or no
reference to a resource has been found (NO in S137), the client 300 completes
display of the document (S149).
20 [0046]
(2-3. Modification Example)
(Processing Flow of Intermediate Server)
FIG. 5 is a flowchart showing processing of an intermediate server
according to a modification example of Embodiment 1 of the present disclosure.
25 When referring to FIG. 5, first, S101 to S105 are executed in the same way as S101
to S105 in the example described above with reference to FIG. 3.
[0047]
Next, the identifier writing unit 212 associates dummy identifiers with
references to resources detected by analysis of a document (S161). Herein, the
30 dummy identifiers are, for example, a series of identifiers that are mechanically
generated and are not necessarily unique to contents of the resources. The identifier
18
writing unit 212 associates, for example, incremental or random dummy identifiers
with detected references in order from the top of the document. At this time, in the
case where original identifiers (e.g., URLs) of the resources that are referred to are
identical, the identifier writing unit 212 may associate an identical dummy identifier
5 with those references.
[0048]
Then, the document transmission unit 214 transmits the document to the
client 300 (S115). After that or along with this, for each of the references to the
resources detected by analysis of the document, the resource acquisition unit 208
10 acquires the resource that is referred to, and the identifier generation unit 210
generates a unique identifier on the basis of content of the acquired resource (S107 to
S111).
[0049]
In the case where processing in S107 to S111 for all the detected references
15 is terminated, the identifier writing unit 212 generates information (association
information on identifiers) that associates the dummy identifiers associated with the
references in S161 and the unique identifiers generated in S111 with each other
(S163). The document transmission unit 214 transmits the association information
on the identifiers to the client 300 (S165). Thereafter, in the case where a request
20 for a resource is received from the client 300, the resource transmission unit 216
transmits the resource to the client 300 (S117, S119).
[0050]
(Processing Flow of Client)
FIG. 6 is a flowchart showing processing of the client according to the
25 modification example of Embodiment 1 of the present disclosure. When referring
to FIG. 6, first, S131 to S135 are executed in the same way as S131 to S135 in the
example described above with reference to FIG. 4.
[0051]
In the case where a reference to a resource is found in a document (YES in
30 S137), the cache determination unit 306 replaces a dummy identifier associated with
the found reference with a unique identifier (S181) and determines whether or not the
19
resource that is referred to is stored in the cache 380 (S139). Although not shown,
in the case where the association information on the above identifiers is not received
by the document reception unit 304 in S181, i.e., in the case where the cache
determination unit 306 refers to the resource in a state in which the dummy identifier
is associated with the reference to the resource, 5 the cache determination unit 306
transmits a request for the identifier or association information on the identifier to the
intermediate server 200. In this case, regarding the reference whose request is
received, the identifier generation unit 210 of the intermediate server 200 may
preferentially generate a unique identifier based on content of the resource that is
10 referred to.
[0052]
Even in the case where throughput of the intermediate server 200 is higher
than that of the client 300, it takes some time for the identifier generation unit 210 to
generate a unique identifier. As in this modification example, a document in which
15 a dummy identifier that can be easily generated is associated with a reference is
precedently transmitted to the client 300 and a unique identifier is generated in the
intermediate server 200 while display is started on the basis of the document received
in the client 300, and therefore it is possible to further reduce a time to complete
display of a document in the client 300.
20 [0053]
(3. Embodiment 2)
(3-1. Function Configuration)
FIG. 7 is a block diagram showing a schematic function configuration of an
intermediate server and a client according to Embodiment 2 of the present disclosure.
25 When referring to FIG. 7, the intermediate server 200 further includes a resource
precedent distribution unit 218 as a function configuration. The client 300 further
includes a resource precedent reception unit 312 as a function configuration.
[0054]
The resource precedent distribution unit 218 of the intermediate server 200
30 precedently transmits a predetermined resource to the client 300 before the request
reception unit 202 receives a request from the client 300. At this time, the resource
20
precedent distribution unit 218 associates the resource with an identifier unique to
content of the resource generated by the identifier generation unit 210 and transmits
the resource to the client 300.
[0055]
For example, the resource precedent 5 distribution unit 218 may count the
number of association of an identifier generated by the identifier generation unit 210
with a reference to a resource in documents and transmit, to the client 300, the
resource estimated to be frequently used on the basis of this number. Because an
identifier generated by the identifier generation unit 210 is unique to content of a
10 resource, the above count can be count indicating a frequency at which each resource
is referred to in various documents on the basis of contents of the resources
regardless of URLs thereof and the like.
[0056]
Alternatively, the resource precedent distribution unit 218 may precedently
15 transmit a resource specified by a service provider to the client 300. For example,
the resource precedent distribution unit 218 precedently transmits a standard library
of a script expected to be referred to in common by a large number of documents to
the client 300 in accordance with setting performed by the service provider.
Therefore, in the case where a document is provided, it is possible to save a time to
20 transmit a request for a script and a time to transmit the script in response to the
request.
[0057]
In the case where a resource that is precedently distributed is a program
such as a script, the resource precedent distribution unit 218 may transmit the
25 program to the client 300 after precompiling the program. For example, in the case
where the client 300 compiles a program referred to in a document and then executes
the program, a time for compilation is limited even in the case where the program is
stored in the cache 380. On the contrary, in the case where the resource precedent
distribution unit 218 precompiles a program in the intermediate server 200 before
30 transmitting the program to the client 300, it is possible to have an enough time to
perform compilation. Therefore, optimization can be satisfactorily achieved by
21
operation compilation at the time of executing the program.
[0058]
The resource precedent reception unit 312 of the client 300 receives a
resource transmitted by the resource precedent distribution unit 218 of the
intermediate server 200 before the request 5 transmission unit 302 transmits a request
to the intermediate server 200. Herein, the received resource may be, for example,
a resource estimated to be frequently used on the basis of the number of association
with a reference to the resource or a resource specified by a service provider as
described above. In any case, the resource precedent reception unit 312 receives a
10 resource precedently distributed from the intermediate server 200 and stores the
received resource in the cache 380.
[0059]
As described above, the received resource is associated with an identifier
that is unique to content of the resource and is generated by the identifier generation
15 unit 210 in the intermediate server 200. The resource precedent reception unit 312
stores the received resource associated with this identifier in the cache 380. With
this, in the case where a resource whose content is identical with that of a resource
that is precedently distributed is referred to in a document, the resource stored in the
cache 380 in advance is used regardless of an original identifier (e.g., URL) of the
20 resource that is precedently distributed. This makes it possible to speed up display
of the document.
[0060]
In the case where a resource that is precedently distributed is a program
such as a script, the resource precedent reception unit 312 may receive a program
25 precompiled by the resource precedent distribution unit 218 of the intermediate
server 200. In this case, the resource precedent reception unit 312 may store the
precompiled program in a storage area that is different from a storage area for
resources other than the program, such as an image and CSS, in the cache 380. The
precompiled program can be stored in a storage area in common with a library such
30 as WebCore. With this, when a document is displayed in the client 300, it is
possible to access a precompiled program corresponding to a resource that is referred
22
to at a higher speed.
[0061]
In terms of a ratio of a size of a resource that is referred to in, for example,
an HTML document, a ratio of a script such as JavaScript is the largest next to a ratio
of an image. Further, when, for example, 5 JavaScript is referred to, some specific
standard libraries are referred to in most cases. Therefore, when, for example, a
standard library of a script is distributed to the client 300 from the intermediate
server 200 in advance, it is possible to omit transmission and reception of a request
for a standard library of a script and a resource which are generated with a high
10 probability when the document is displayed, thereby speeding up display of the
document.
[0062]
More specifically, in the case where a script is updated and the updated
script is distributed to the client 300 from the intermediate server 200 before a
15 request, it is possible to use the script stored in the cache of the client 300 to quickly
display a document even in the case where the script is referred to from the document
for the first time after updating. In the above case, when a standard library of the
script is precompiled, it is possible to further speed up display thereof as described
above. Distribution of resources to the client 300 from the intermediate server 200
20 in advance, the resources being estimated to be referred to with a high probability
when a document is displayed such as an image of a logo and an image of a topical
item, in addition to the script, can contribute to speeding up of display of the
document.
[0063]
25 (3-2. Processing Flow)
(Processing Flow of Intermediate Server)
FIG. 8 is a flowchart showing processing before the intermediate server
according to Embodiment 2 of the present disclosure receives a request. When
referring to FIG. 8, first, the resource precedent distribution unit 218 determines a
30 resource to be precedently distributed (S201). Herein, the resource to be
precedently distributed may be determined on the basis of, for example, the number
23
of association of an identifier with a reference to a resource in documents or may be
specified by a service provider as described above.
[0064]
The resource precedent distribution unit 218 may regularly request a
resource that is estimated to be frequently used and 5 may be updated, such as the
standard library of the script described above, from the distribution source server 100
to check presence/absence of update thereof. In the case where the update is
presence, the resource precedent distribution unit 218 may determine to precedently
distribute the updated resource. The resource precedent distribution unit 218 may
10 use generation processing of an identifier performed by the identifier generation unit
210 in order to check presence/absence of the update. That is, in the case where,
when the identifier generation unit 210 generates an identifier unique to content of a
resource, the generated identifier is different from an identifier that has been
generated before, it is possible to determine that the resource has been updated.
15 [0065]
Then, in the case where the resource to be precedently distributed is a
program, the resource precedent distribution unit 218 executes precompilation as
additional processing as necessary (S203). Next, the resource precedent
distribution unit 218 transmits the resource to the client 300 (S205).
20 [0066]
(Processing Flow of Client)
FIG. 9 is a flowchart showing processing before the client according to
Embodiment 2 of the present disclosure transmits a request. When referring to FIG.
9, first, the resource precedent reception unit 312 receives a resource distributed from
25 the intermediate server 200 (S211). Then, as additional processing, in the case
where the resource that is precedently distributed is a program (YES in S213), the
resource precedent reception unit 312 stores the distributed resource in a program
storage area that is different from a storage area for other resources (S215). If the
resource is not a program, the resource precedent reception unit 312 stores the
30 resource in a normal storage area in the cache 380 (S217).
[0067]
24
Note that the processing flows of the intermediate server and the client after
transmitting a request are similar to those in Embodiment 1 described above, and
therefore detailed description thereof is omitted. In this embodiment, part of a
resource is transmitted to the client 300 from the intermediate server 200 before a
request is transmitted as described above, and therefore 5 the resource is determined to
be stored in the cache 380 more frequently in, for example, S139 in the flowchart of
FIG. 4.
[0068]
(4. Embodiment 3)
10 (4-1. Function Configuration)
FIGS. 10 (FIG. 10A and FIG. 10B) is block diagrams showing schematic
function configurations of an intermediate server and a client according to
Embodiment 3 of the present disclosure. When referring to FIG. 10A, the
intermediate server 200 includes, as a function configuration, the request reception
15 unit 202, the document acquisition unit 204, the document analysis unit 206, the
resource acquisition unit 208, a resource analysis unit 220, an abbreviated character
string generation unit 222, an abbreviated character string writing unit 224, the
document transmission unit 214, an association information transmission unit 226,
and the resource transmission unit 216. When referring to FIG. 10B, the client 300
20 includes, as a function configuration, the request transmission unit 302, the document
reception unit 304, the resource reception unit 308, an association information
reception unit 314, a character string interpretation unit 316, and the display control
unit 310.
[0069]
25 For example, those function configurations can be realized by causing the
processors included in the information processing devices that realize the
intermediate server 200 and the client 300 to operate in accordance with programs
stored in memories or recording media. A database 282 in the intermediate server
200 and a database 382 in the client 300 can be realized by, for example, storages or
30 memories of the respective information processing devices.
[0070]
25
(Intermediate Server)
In the intermediate server 200, the request reception unit 202 and the
document acquisition unit 204 acquire a document in response to a request from the
client 300 in the same way as the request reception unit 202 and the document
acquisition unit 204 in Embodiment 1 5 described above. Further, 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. In the case
where the reference to the resource is detected by the document analysis unit 206, the
resource acquisition unit 208 acquires the resource that is referred to.
10 [0071]
Further, in this embodiment, the document analysis unit 206 detects a
character string that can be abbreviated and is included in the document acquired by
the document acquisition unit 204. The resource analysis unit 220 detects a
character string that can be abbreviated and is included in the resource acquired by
15 the resource acquisition unit 208. Herein, examples of the character strings that can
be abbreviated encompass arbitrary identifiers applied to an element in the document,
a class defined by a style, a function defined by a program, and the like. Examples
of the character strings that can be abbreviated may further encompass reserved
words in formats of the document and the resource. Examples of the character
20 strings that can be abbreviated may further encompass an identifier of the resource
that is referred to in the document and a character string written in the document as a
so-called descriptive sentence.
[0072]
In the case where the character strings that can be abbreviated are detected
25 by the document analysis unit 206 and the resource analysis unit 220, the abbreviated
character string generation unit 222 generates character strings obtained by
abbreviating the detected character strings (hereinafter, also referred to as
"abbreviated character strings"). For example, the abbreviated character string
generation unit 222 may generate an abbreviated character string by executing
30 calculation in accordance with a predetermined algorithm on the basis of an original
character string. As described below, in the example shown in FIGS. 10, the
26
algorithm may be irreversible because a relationship between the original character
string and the abbreviated character string is recorded in the database 282.
Alternatively, the abbreviated character string generation unit 222 may generate
incremental or random abbreviated character strings regardless of original character
5 strings.
[0073]
Herein, in the case where an abbreviated character string is generated by
using an algorithm in the above example, the abbreviated character string is slightly
longer. However, the same abbreviated character string is automatically generated
10 with respect to the same original character string, and therefore it is possible to
improve searchability while reducing a record of the database 282 as small as
possible. Further, depending on an algorithm to be used, it is possible to generate
an abbreviated character string unique to an original character string.
[0074]
15 Meanwhile, in the case where incremental or random abbreviated character
strings are generated, the abbreviated character strings can be reduced to the utmost
limit (e.g., to have a shortest length that can express the number of character strings
that can be abbreviated and are included in the document or the resource). However,
records corresponding to the number of character strings that can be abbreviated
20 (including repetitious character strings) are generated in the database 282 if nothing
is done. When the abbreviated character string generation unit 222 refers to the
database 282 and generates a new abbreviated character string in the case where an
abbreviated character string of the same original character string has not been
generated, it is possible to reduce the number of records in the database 282.
25 [0075]
In the case where the abbreviated character string is generated, the
abbreviated character string generation unit 222 adds, to the database 282, a record
(abbreviated character string record) that associates the original character string and
the abbreviated character string with each other. The database 282 may be
30 generated by using, for example, a document as a unit. That is, association of the
original character string with the abbreviated character string, which is indicated by
27
the database 282, may be performed by using a document transmitted in response to
a single request and a resource referred to from this document as scopes.
Alternatively, the database 282 may be generated by using a plurality of documents
and resources referred to from those documents as scopes.
5 [0076]
Herein, in the case where it has already been found that association of the
generated abbreviated character string with the original character string is recorded in
the database 382 of the client 300, the abbreviated character string generation unit
222 does not need to add the abbreviated character string record to the database 282.
10 For example, in the case where reserved words in formats of a document and a
resource are treated as character strings that can be abbreviated, the reserved words
are limited, and therefore it is possible to allot abbreviated character strings in
advance and record association of the reserved words with the abbreviated character
strings in advance in the database 282 and the database 382. In this case, the
15 abbreviated character string generation unit 222 generates an abbreviated character
string allotted in advance with reference to the database 282 with respect to a
reserved word detected in a document or a resource and then omits addition of a new
record to the database 282.
[0077]
20 The abbreviated character string writing unit 224 replaces the original
character strings included in the document and the resource with the abbreviated
character strings generated by the abbreviated character string generation unit 222.
In order to reduce an amount of data to be transmitted and reduce a processing
amount for reading character strings in the client 300, the abbreviated character
25 string writing unit 224 is desired to replace the original character strings in the
document and the resource with the abbreviated character strings instead of
maintaining the original character strings.
[0078]
The document transmission unit 214 transmits the document including the
30 abbreviated character string generated by the abbreviated character string generation
unit 222 (i.e., the document in which the original character string has been replaced
28
with the abbreviated character string) to the client 300. Similarly, the resource
transmission unit 216 transmits, to the client 300, the resource in which the original
character string has been replaced with the abbreviated character string. The
association information transmission unit 226 generates information that associates
the original character string and the abbreviated 5 character string with each other
(hereinafter, also referred to as "association information") on the basis of the
abbreviated character string record of the database 282 and transmits the information
to the client 300.
[0079]
10 Herein, the association information transmission unit 226 may transmit the
association information to the client 300 only in the case where the original character
string needs to be restored from the abbreviated character string in the client 300.
That is, the association information does not need to include at least part of
abbreviated character string records.
15 [0080]
For example, in the case where the abbreviated character string generation
unit 222 generates an abbreviated character string of an arbitrary identifier applied to
an element in a document, a class defined by a style, a function defined by a program,
or the like and the abbreviated character string is generated so that an original
20 character string and the abbreviated character string have one-to-one correspondence
via the document and a resource (e.g., the abbreviated character string is generated
on the basis of the original character string in accordance with a predetermined
algorithm, or, when the database 282 is referred to and the abbreviated character
string of the original character string has already been generated, the abbreviated
25 character string is reused), the element, the class, or the function is uniquely
specified even in the case where the original character string is not restored in the
client 300. In such a case, the association information transmission unit 226 does
not need to transmit association information on the abbreviated character string to the
client 300.
30 [0081]
For example, in the case where an abbreviated character string of a reserved
29
word in a document or a resource is generated, the database 282 includes an
abbreviated character string record corresponding to the abbreviated character string
corresponding to the reserved word in advance, whereas association information to
be transmitted to the client 300 does not need to contain information on the reserved
word (in the case where the information 5 on the reserved word is stored in advance in
the database 382 of the client 300).
[0082]
On the contrary, in the case where an abbreviated character string is
generated with respect to the element, the class, the function, or the like but is not in
10 one-to-one correspondence with an original character string (e.g., in the case where
the abbreviated character string generation unit 222 generates an abbreviated
character string without referring to the database 282 and stores, in the database,
information on the abbreviated character string that is mechanically allotted) or in the
case where an original character string is finally presented to a user as in the case of a
15 character string that is written in a document as a descriptive sentence, the
association information transmission unit 226 transmits association information
generated on the basis of a record of the database 282 to the client 300.
[0083]
(Client)
20 In the client 300, the request transmission unit 302 and the document
reception unit 304 transmit a request to the intermediate server 200 and receive a
document transmitted by the intermediate server 200 in response to the request in the
same way as the request transmission unit 302 and the document reception unit 304
in Embodiment 1 described above. The resource reception unit 308 receives a
25 resource transmitted from the intermediate server 200. The received document and
resource are provided to the character string interpretation unit 316. Further, in this
embodiment, the association information reception unit 314 receives association
information transmitted from the association information transmission unit 226 of the
intermediate server 200. The association information reception unit 314 generates
30 an abbreviated character string record in the database 382 on the basis of the received
association information.
30
[0084]
The character string interpretation unit 316 interprets abbreviated character
strings included in the document and the resource with reference to the database 382.
Herein, the character string interpretation unit 316 does not need to rewrite the
abbreviated character strings into original c 5 haracter strings. In this embodiment, the
character string interpretation unit 316 can interpret the abbreviated character strings
included in the document and the resource as they are with reference to the database
382 and the display control unit 310 can display the document on the basis of the
interpretation.
10 [0085]
Note that, as described above, abbreviated character strings that are not
included in the association information received by the association information
reception unit 314 are also included in the document and the resource received in the
client 300. For example, in the case where association of an abbreviated character
15 string with a reserved word in a format of the document or the resource is recorded in
the database 382 in advance, the abbreviated character string corresponding to the
reserved word is not included in the association information received by the
association information reception unit 314.
[0086]
20 For example, in the case where an abbreviated character string of an
arbitrary identifier applied to an element in the document, a class defined by a style,
a function defined by a program, or the like is generated so that an original character
string and the abbreviated character string have one-to-one correspondence via the
document and the resource, information corresponding to the abbreviated character
25 string is not included in the association information and does not need to be included
in the database 382. In this case, the abbreviated character string is treated in the
same way as a normal character string in the client 300, and the display control unit
310 directly interprets this abbreviated character string to display the document.
[0087]
30 (4-2. Processing Flow)
(Processing Flow of Intermediate Server)
31
FIG. 11 is a flowchart showing processing of the intermediate server
according to Embodiment 3 of the present disclosure. When referring to FIG. 11,
first, the request reception unit 202 receives a request from the client 300 (S301).
Next, the document acquisition unit 204 acquires a document specified in the request
(S303). Then, the document analysis 5 unit 206 analyzes the acquired document
(S305).
[0088]
Herein, in the case where a reference to a resource is detected in analysis of
the document (YES in S307), the resource acquisition unit 208 acquires the resource
10 that is referred to (S309), and the resource analysis unit 220 analyzes the acquired
resource (S311). Thereafter, the abbreviated character string generation unit 222
generates abbreviated character strings of character strings that are detected in the
document and the resource and can be abbreviated (S313). At this time, the
abbreviated character string generation unit 222 adds, to the database 282,
15 abbreviated character string records in which original character strings and the
abbreviated character strings are associated with each other (S315).
[0089]
Further, the abbreviated character string writing unit 224 replaces the
original character strings included in the document and the resource with the
20 abbreviated character strings generated in the abbreviated character string generation
unit 222 (S317). When replacement of the original character strings in the
document is completed, the document transmission unit 214 transmits the document
including the abbreviated character string to the client 300 (S319). Before or after
this or along with this, the association information transmission unit 226 transmits, to
25 the client 300, association information generated on the basis of the records in the
database 382 (S321). Further, the resource transmission unit 216 transmits the
resource including the abbreviated character string to the client 300 (S323).
[0090]
(Processing Flow of Client)
30 FIG. 12 is a flowchart showing processing of the client according to
Embodiment 3 of the present disclosure. When referring to FIG. 12, first, the
32
request transmission unit 302 transmits a request to the intermediate server 200
(S331). Then, the document reception unit 304 receives a document including an
abbreviated character string, which is transmitted by the intermediate server 200 in
response to the request (S333). Before or after this or along with this, the
association information 5 reception unit 314 receives association information
transmitted from the intermediate server 200 (S335). The association information
reception unit 314 generates a record in the database 382 on the basis of the received
association information (S337). Further, the resource reception unit 308 receives a
resource including an abbreviated character string, which is transmitted by the
10 intermediate server 200 (S339).
[0091]
When the document is received in S333 and the abbreviated character string
record is generated in the database 382 in S337, the character string interpretation
unit 316 interprets the abbreviated character string included in the document with
15 reference to the database 382 (S341). Note that processing in S341 may be
executed along with, for example, processing in S339. The character string
interpretation unit 316 also interprets the abbreviated character string of the resource
that is referred to in the document, which is received in S339, with reference to the
database 382 (S343). The display control unit 310 displays the document with the
20 use of results obtained by the character string interpretation unit 316 interpreting the
abbreviated character strings included in the document and the resource (S345).
[0092]
In this embodiment, in the intermediate server 200, the abbreviated
character string generation unit 222 adds, to the database 282, a record in which an
25 original character string and an abbreviated character string are associated with each
other. With this, for example, when the abbreviated character string is generated,
the database 382 is referred to so that the original character string and the
abbreviated character string can have one-to-one correspondence via the document
and the resource. In this case, even in the case where the association information is
30 not transmitted to the client 300, the client 300 can interpret the abbreviated
character strings written in the document and the resource to thereby display the
33
document in which the resource is referred to.
[0093]
Alternatively, in the intermediate server 200, the association information
transmission unit 226 may generate association information that associates
abbreviated character strings generated 5 in the document and the resource and original
character strings with each other on the basis of the records of the database 282 to
thereby transmit the association information to the client 300. In this case, for
example, even in the case where the original character strings and the abbreviated
character strings do not have one-to-one correspondence when the abbreviated
10 character strings are generated, the client 300 can interpret the abbreviated character
strings written in the document and the resource to thereby display the document in
which the resource is referred to.
[0094]
(4-3. Modification Example)
15 (Processing Flow of Intermediate Server)
FIG. 13 is a flowchart showing processing of an intermediate server
according to a modification example of Embodiment 3 of the present disclosure.
When referring to FIG. 13, first, S101 to S105 are executed in the same way as S301
to S305 in the example described above with reference to FIG. 11.
20 [0095]
In this modification example, the abbreviated character string generation
unit 222 precedently generates an abbreviated character string of a character string
that is detected in a document and can be abbreviated (S361). At this time, the
abbreviated character string generation unit 222 adds, to the database 282, a record in
25 which an original character string and the abbreviated character string are associated
with each other (S315). Further, the abbreviated character string writing 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 replacement
is completed, the document transmission unit 214 transmits the document including
30 the abbreviated character string to the client 300 (S319). Before or after
transmission of the document or along with this, the association information
34
transmission unit 226 transmits, to the client 300, association information generated
on the basis of the record in the database 282 (S321).
[0096]
In the case where a reference to a resource is detected in analysis of the
document (YES in S307) 5 after transmission of the document and the association
information or along with this, the resource acquisition unit 208 acquires the resource
that is referred to (S309), and the resource analysis unit 220 analyzes the acquired
resource (S311). Thereafter, the abbreviated character string writing unit 224
replaces a character string included in the resource with an abbreviated character
10 string on the basis of the abbreviated character string record in the database 382,
which is generated in processing in S315 (S365). Thereafter, the resource
transmission unit 216 transmits the resource including the abbreviated character
string to the client 300 (S323).
[0097]
15 In this modification example, the character string of the resource is replaced
with the abbreviated character string on the basis of a result of generation of the
abbreviated character string in the document. With this, after the document and the
association information are precedently transmitted to the client 300, replacement
with the abbreviated character string can also be executed in the resource so as to
20 have consistency with the replacement in the document. Therefore, it is possible to
start displaying the document in the client 300 without waiting completion of
replacement with the abbreviated character string in the resource.
[0098]
Note that the processing flow of the client in this modification example can
25 be similar to that of FIG. 12 except that the resource reception unit 308 receives the
resource after receiving the document and the association information, and therefore
detailed description thereof is omitted. Although an example where information
that associates an original character string and an abbreviated character string with
each other is stored in the database has been described in the above description of
30 this embodiment, the information does not necessarily need to be stored in the
database, and a file or the like may be used in other examples.
35
[0099]
(5. Embodiment 4)
(5-1. Function Configuration)
FIGS. 14 (FIG. 14A and FIG. 14B) is block diagrams showing schematic
function configurations of an intermediate server 5 and a client according to
Embodiment 4 of the present disclosure. When referring to FIG. 14A, the
intermediate server 200 includes, as a function configuration, the request reception
unit 202, the document acquisition unit 204, the document analysis unit 206, the
resource acquisition unit 208, the identifier generation unit 210, the identifier writing
10 unit 212, the resource analysis unit 220, the abbreviated character string generation
unit 222, the abbreviated character string writing unit 224, the document
transmission unit 214, the association information transmission unit 226, and the
resource transmission unit 216. When referring to FIG. 14B, the client 300 includes,
as a function configuration, the request transmission unit 302, the document
15 reception unit 304, the association information reception unit 314, the character
string interpretation unit 316, the cache determination unit 306, the resource
reception unit 308, and the display control unit 310.
[0100]
For example, those function configurations can be realized by causing the
20 processors included in the information processing devices that realize the
intermediate server 200 and the client 300 to operate in accordance with programs
stored in memories or recording media. A cache 280 and database 282 in the
intermediate server 200 and a cache 380 and a database 382 in the client 300 can be
realized by, for example, storages or memories of the respective information
25 processing devices.
[0101]
As is clear from FIGS. 14, this embodiment is an embodiment obtained by
combining Embodiment 1 with Embodiment 3. The function configurations of the
intermediate server 200 and the client 300 have already been described in
30 Embodiments 1 and 3, and therefore detailed description thereof is omitted.
[0102]
36
(5-2. Processing Flow)
A processing flow of this embodiment will be described. Note that, in the
following description, a more complicated processing flow obtained by combining
the modification examples of Embodiment 1 and Embodiment 3 will be described.
However, it is easily understood that an example 5 obtained by combining examples
which are not the modification examples can also be similarly realized.
[0103]
(Processing Flow of Intermediate Server)
FIG. 15 (FIG. 15A and FIG. 15B) is a flowchart showing processing of the
10 intermediate server according to Embodiment 4 of the present disclosure. When
referring to FIG. 15, first, the request reception unit 202 receives a request from the
client 300 (S401). Next, the document acquisition unit 204 acquires a document
specified in the request (S403). Then, the document analysis unit 206 analyzes the
acquired document (S405).
15 [0104]
Herein, regarding a reference to a resource detected in the document, the
resource acquisition unit 208 acquires the resource that is referred to (S407). The
identifier generation unit 210 generates a unique identifier on the basis of content of
the acquired resource (S409). The identifier writing unit 212 associates the
20 generated unique identifier with the reference to the resource in the document (S411).
Note that the above processing may be executed every time when one or a plurality
of references to the resources are detected or the references may be collectively
executed after all the references to the resources are detected.
[0105]
25 Before or after the above S407 to S411 or along with this, the abbreviated
character string generation unit 222 generates an abbreviated character string of a
character string that is detected in the document and can be abbreviated (S413). At
this time, the abbreviated character string generation unit 222 adds, to the database
282, an abbreviated character string record in which an original character string and
30 the abbreviated character string are associated with each other (S415). Further, the
abbreviated character string writing unit 224 replaces the character string included in
37
the document with the abbreviated character string in accordance with the
abbreviated character string record in the database 282 (S417). Note that, in the
case where S407 to S411 and S413 to S417 are executed in parallel with each other
as in an example shown in FIG. 15A, the reference to the resource in the document
does not need to be a target of generation of 5 an abbreviated character string.
[0106]
When the above processing is completed, the document transmission unit
214 transmits, to the client 300, the document updated by the identifier writing unit
212 and the abbreviated character string writing unit 224 (S419). Before or after
10 this or along with this, the association information transmission unit 226 transmits, to
the client 300, association information generated on the basis of the record in the
database 282 (S421).
[0107]
Before or after transmission of the document and the association
15 information or along with this, the resource analysis unit 220 analyzes the resource
acquired in S407 (S423). Thereafter, the abbreviated character string writing unit
224 replaces a character string included in the resource with an abbreviated character
string on the basis of the abbreviated character string record in the database 282, the
abbreviated character string record being generated in processing performed by the
20 abbreviated character string generation unit 222 regarding the document (S425).
Thereafter, the resource transmission unit 216 transmits the resource to the client 300
in response to the request for the resource from the client 300 (S427).
[0108]
(Processing Flow of Client)
25 FIG. 16 (FIG. 16A and FIG. 16B) is a flowchart showing processing of the
client according to Embodiment 4 of the present disclosure. When referring to FIG.
16, first, the request transmission unit 302 transmits a request to the intermediate
server 200 (S451). Then, the document reception unit 304 receives a document
transmitted by the intermediate server 200 in response to the request (S453).
30 [0109]
Before or after reception of the document or along with this, the association
38
information reception unit 314 receives association information transmitted from the
intermediate server 200 (S455). The association information reception unit 314
generates an abbreviated character string record in the database 382 on the basis of
the received association information (S457). Then, the character string
interpretation unit 316 interprets an abbreviated 5 character string included in the
document with reference to the database 382 (S459). The display control unit 310
starts displaying the received document on the basis of interpretation performed by
the character string interpretation unit 316 (S461).
[0110]
10 In the case where a reference to a resource is found in the document (YES in
S463), the cache determination unit 306 determines whether or not the resource that
is referred to in the received document is stored (cached) in the cache 380 (S465).
As described above, the cache determination unit 306 determines whether or not the
resource is stored in the cache 380 on the basis of an identifier that is unique to
15 content of the resource and is associated with the reference to the resource in the
document.
[0111]
In the case where it is determined that the resource is stored in the cache 380
(YES in S465), the cache determination unit 306 reads out the resource from the
20 cache 380 and provides the resource to the character string interpretation unit 316.
That is, the cache determination unit 306 reuses the cached 380 resource (S467).
On the contrary, in the case where it is determined that the resource is not stored in
the cache 380 (NO in S465), the cache determination unit 306 transmits a request for
the resource to the intermediate server 200 (S469). The resource reception unit 308
25 receives the resource transmitted by the intermediate server 200 in response to the
request (S471).
[0112]
The character string interpretation unit 316 interprets the reused resource or
the abbreviated character string included in the resource received from the
30 intermediate server 200 on the basis of the record in the database 382 (S473). The
display control unit 310 continues to display the document with the use of results
39
obtained by the character string interpretation unit 316 interpreting the abbreviated
character strings included in the document and the resource (S475). S465 to S475
can be repeatedly executed until all the references to the resources in the document
are found. In the case where the display control unit 310 displays the whole
document and the reference to the resource 5 is no longer found or no reference to a
resource has been found (NO in S463), the client 300 completes display of the
document (S477).
[0113]
Note that, in this embodiment, in the case where the cache 380 in the client
10 300 is used for the resource, the abbreviated character string included in the resource
is desired to be identical regardless of an opportunity in which the resource is
referred to. Therefore, for example, in the intermediate server 200, the abbreviated
character string generation unit 222 may generate an abbreviated character string
with the use of a predetermined algorithm and may automatically generate the same
15 abbreviated character string with respect to the same original character string.
Alternatively, the same abbreviated character string may be generated with respect to
the same original character string by using the database 282 in the intermediate
server 200 in common in a plurality of documents.
[0114]
20 (6. Embodiment 5)
FIG. 17 is a flowchart showing processing of an intermediate server
according to Embodiment 5 of the present disclosure. Note that a series of
processes shown in FIG. 17 can be executed by causing a processor included in an
information processing device that realizes the intermediate server 200 to operate in
25 accordance with a program stored in a memory or a recording medium.
[0115]
When referring to FIG. 17, first, the processor receives a request from the
client 300 (S501). Next, the processor acquires a document specified in the request
(S503). The processor may acquire the document from the distribution source
30 server 100 or may internally acquire the document from the cache in the same way as
the processors in other embodiments described above. Then, the processor acquires
40
a resource that is referred to in the document (S505). The resource may also be
acquired from the distribution source server 100 or may also be internally acquired
from the cache.
[0116]
Further, the processor generates 5 intermediate data on the basis of the
acquired document and resource (S507). Generation of the intermediate data
includes, for example, generation of the document object model (DOM) using
parsing of an HTML document, generation of a computed style using processing of
CSS, and conversion of JavaScript into an intermediate representation using parsing,
10 and the like. The processor transmits the generated intermediate data to the client
300 (S509).
[0117]
FIG. 18 is a flowchart showing processing of a client according to
Embodiment 5 of the present disclosure. Note that a series of processes shown in
15 FIG. 17 can be executed by causing a processor included in an information
processing device that realizes the client 300 to operate in accordance with a program
stored in a memory or a recording medium.
[0118]
When referring to FIG. 18, first, the processor transmits a request to the
20 intermediate server 200 (S521). Then, the processor receives intermediate data
based on a document and a resource transmitted by the intermediate server 200 in
response to the request (S523). The processor generates a layout on the basis of the
received intermediate data (S525) and displays the document in accordance with the
layout (S527).
25 [0119]
According to this embodiment, part of processing for displaying the
document in the client 300 is executed in the intermediate server 200 instead of the
client 300. With this, in the case where throughput of the intermediate server 200 is
higher than that of the client 300, a time between transmission of the request and
30 completion of display of the document in the client 300 is reduced.
[0120]
41
Note that what intermediate data is generated in the intermediate server 200
is appropriately determined on the basis of a state of a network, the throughput of the
client 300, and the like. For example, among the above three examples regarding
the HTML document, only one example may be employed, any two examples may
be employed, or all 5 three examples may be employed.
[0121]
(7. Embodiment 6)
FIG. 19 is a flowchart showing processing of an intermediate server
according to Embodiment 6 of the present disclosure. Note that a series of
10 processes shown in FIG. 17 can be executed by causing a processor included in an
information processing device that realizes the intermediate server 200 to operate in
accordance with a program stored in a memory or a recording medium. Note that,
only in this embodiment, description will be provided assuming that a document is
an HTML document and a resource is CSS.
15 [0122]
When referring to FIG. 19, first, the processor receives a request from the
client 300 (S601). Next, the processor acquires an HTML document specified in
the request (S603). The processor may acquire the HTML document from the
distribution source server 100 or may internally acquire the document from the cache
20 in the same way as the processors in other embodiments described above. Then, the
processor acquires CSS that is referred to in the HTML document (S605). The CSS
may also be acquired from the distribution source server 100 or may also be
internally acquired from the cache.
[0123]
25 Further, the processor specifies a style defined by CSS for each element of
the HTML document (S607). In the case where a plurality of kinds of CSS that
have a hierarchical structure in the HTML document are referred to, which
combination of styles among the plurality of kinds of CSS is employed is specified
by processing in S607. The processor updates the CSS on the basis of a result of
30 the processing in S607 (S609) and transmits the updated CSS together with the
document to the client 300 (S611).
42
[0124]
In this embodiment, the client 300 displays the HTML document on the
basis of the HTML document and the CSS received from the intermediate server 200.
Processing for this is similar to processing for displaying a normal HTML document,
and therefore detailed description thereof is 5 omitted. However, in this embodiment,
the CSS referred to in the client 300 has been optimized by the above processing in
the intermediate server 200. Therefore, the client 300 can omit a large part of
processing for specifying a style defined for each element of the HTML document.
With this, in the case where throughput of the intermediate server 200 is higher than
10 that of the client 300, a time between transmission of the request and completion of
display of the document in the client 300 is reduced.
[0125]
Note that, although the resource is CSS in the above description, other
resources such as an image and a script can be referred to together with CSS in an
15 HTML document.
[0126]
(8. Embodiment 7)
(8-1. Function Configuration)
FIG. 20 is block diagrams showing schematic function configurations of an
20 intermediate server and a client according to Embodiment 7 of the present disclosure.
When referring to FIG. 20, the intermediate server 200 includes, as a function
configuration, the request reception unit 202, the document acquisition unit 204, the
document analysis unit 206, the resource acquisition unit 208, an image transcoding
unit 228, an image reference updating unit 230, the document transmission unit 214,
25 and the resource transmission unit 216. The client 300 includes, as a function
configuration, the request transmission unit 302, the document reception unit 304,
the resource reception unit 308, and the display control unit 310.
[0127]
For example, those function configurations can be realized by causing the
30 processors included in the information processing devices that realize the
intermediate server 200 and the client 300 to operate in accordance with programs
43
stored in memories or recording media. A cache 280 in the intermediate server 200
and a cache 380 in the client 300 can be realized by, for example, storages or
memories of the respective information processing devices.
[0128]
5 (Intermediate Server)
In the intermediate server 200, the request reception unit 202 and the
document acquisition unit 204 acquire a document in response to a request from the
client 300 in the same way as the request reception unit 202 and the document
acquisition unit 204 in Embodiment 1 described above. Further, the document
10 analysis unit 206 analyzes the document acquired by the document acquisition unit
204 and detects a reference to a resource included in the document. In the case
where the reference to the resource is detected by the document analysis unit 206, the
resource acquisition unit 208 acquires the resource that is referred to.
[0129]
15 Herein, the resource acquired by the resource acquisition unit 208 includes
images having various formats. The image transcoding unit 228 transcodes the
formats of the acquired images to a predetermined format and stores the transcoded
images in the cache 280. The image reference updating unit 230 updates references
to image resources included in the document to references to the images that have
20 been transcoded by the image transcoding unit 228 and have been stored in the cache
280. The document transmission unit 214 transmits the document in which the
references have been updated to the client 300. The resource transmission unit 216
transmits a resource stored in the cache 280 in response to a request from the client
300. The transmitted resources can include an image whose format has been
25 transcoded by the image transcoding unit 228 to a predetermined format.
[0130]
(Client)
In the client 300, the request transmission unit 302 and the document
reception unit 304 transmit a request to the intermediate server 200 and receive a
30 document transmitted by the intermediate server 200 in response to the request in the
same way as the request transmission unit 302 and the document reception unit 304
44
in Embodiment 1. The display control unit 310 displays the received document.
At this time, in the case where a resource that is referred to in the document is not
stored in the cache 380, the resource reception unit 308 transmits a request to the
intermediate server 200 and receives the resource transmitted in response to the
request. The received resource herein can include an 5 image whose format has been
transcoded by the image transcoding unit 228 to a predetermined format. The
display control unit 310 displays the document with the use of the resource stored in
the cache 380 or the resource received by the resource reception unit 308.
[0131]
10 (8-2. Processing Flow)
FIG. 21 is a flowchart showing processing of the intermediate server
according to Embodiment 7 of the present disclosure. When referring to FIG. 21,
first, the request reception unit 202 receives a request from the client 300 (S701).
Next, the document acquisition unit 204 acquires a document specified in the request
15 (S703). Then, the document analysis unit 206 analyzes the acquired document
(S705).
[0132]
Herein, in the case where a reference to an image is detected in analysis of
the document (YES in S707), first, the image reference updating unit 230 updates the
20 reference to the image resource included in the document to a reference to a
transcoded image (S709). In an example shown in FIG. 21, because the image has
not been transcoded yet at this time, an identifier of the transcoded image, such as a
file name, is determined in advance. The determined identifier is written in the
reference in the document while being temporarily stored in the memory of the
25 intermediate server 200 and is associated with the transcoded image to be generated
thereafter.
[0133]
Then, the document transmission unit 214 transmits the document in which
the reference to the image resource has been updated to the client 300 (S711). After
30 transmission of the document or along with this, the resource acquisition unit 208
acquires the image that is referred to (S713). The image transcoding unit 228
45
transcodes a format of the acquired image to a predetermined format (S715). Note
that, in the case where the transcoded image has already been stored in the cache 280,
the image transcoding unit 228 may omit repetitious transcoding processing.
Thereafter, the resource transmission unit 216 transmits the resource including the
transcoded image to the client 300 in response 5 to a request for the resource from the
client 300 (S717).
[0134]
As described above, it takes some time to transcode an image even in the
case where throughput of the intermediate server 200 is higher than that of the client
10 300. Therefore, as in the above processing flow, a time to complete display of the
document in the client 300 can be reduced by determining an identifier of a
transcoded image in advance, precedently transmitting a document including an
updated reference to the image to the client 300 from the intermediate server 200,
and starting display in the client 300 upon receipt of the document while transcoding
15 the image in the intermediate server 200.
[0135]
For example, in the case where there is few references to images in the
document or many of images that are referred to have already been transcoded and
stored in the cache 280 of the intermediate server 200, the document transmission
20 unit 214 may transmit the document to the client 300 after the image transcoding unit
228 completes transcoding of the images. Note that, in any case, processing in the
client 300 is similar to processing for displaying a normal document except that a
transcoded image is included in a resource that is referred to, and therefore detailed
description thereof is omitted.
25 [0136]
(8-3. Example of Transcoding)
An example of transcoding an image in this embodiment will be further
described.
[0137]
30 Images included in a resource acquired from the distribution source server
100 are normally written in various formats such as JPEG, PNG, and GIF. Further,
46
frequently, the images do not strictly comply with those formats. Thus, various
cases need to be considered when images acquired from the distribution source
server 100 (including an image cached in the intermediate server 200 or the client
300) are decoded in the client 300, and therefore it is difficult to optimize processing,
and efficiency of the processing is not necessarily high. 5 In data transferred to the
client 300 from the intermediate server 200 to display the document, a ratio of
images is large in many cases, and therefore a demand for reduction in an amount of
data of images is still high.
[0138]
10 In view of this, in this embodiment, an image is transcoded in the
intermediate server 200. For example, when the image transcode 282 of the
intermediate server 200 only transcodes formats of images acquired from the
distribution source server 100 to pure forms of the respective formats, decoding can
be optimized in the client 300 to some extent, and therefore display of a document
15 can be speeded up. Further, in the case where the image transcode 282 transcodes
formats of images acquired from the distribution source server 100 to one or a
plurality of predetermined formats that can optimize decoding processing in the
client 300, it is possible to further speed up display of the document.
[0139]
20 (8-4. Example of Format)
An example of a format of an image that can be applied to transcoding of an
image in this embodiment will be further described. A format of an image in the
following description may be implemented in combination with, for example,
transcoding in the intermediate server in this embodiment. However, the format is
25 not limited to such an example, and there are various advantages also in the case
where a format of an image itself is implemented. That is, the embodiments of the
present disclosure can include a format of an image independent from transcoding
(e.g., an image processing device or an image processing method that treats an image
having the above format).
30 [0140]
FIG. 22 and FIG. 23 are diagrams for explaining processing for generating
47
an image file in accordance with an image format that is applicable in Embodiment 7
of the present disclosure. The processing described herein can be executed by, for
example, the image transcoding unit 228 of the above intermediate server 200.
[0141]
First, as shown in FIG. 22, 5 a vector component 704, a bitmap component
706, and an approximation error 708 are calculated on the basis of an original image
700 written in a bitmap format (including JPEG, PNG, GIF, and the like). In this
processing, first, the original image 700 is split into two area groups 702a and 702b
(S751). The area group 702a has low spatial frequencies and has wide areas. On
10 the contrary, the area group 702b has high spatial frequencies and has narrow areas.
Splitting of the area can be realized by various publicly known techniques such as a
split-and-merge method.
[0142]
Regarding the area group 702a, the vector component 704 is generated by
15 processing in S753 to S761. First, edges of each area included in the area group
702a are extracted and an outline is approximated by using a Bezier curve (S753).
Further, a color gradient in the approximated outline is obtained (S755). Herein, in
the case where the color gradient is comparatively uniform (YES in S757), a vertex
color is set and color in the area is expressed by simple interpolation (S759). In the
20 case where the color gradient is not uniform, color in the area is expressed by
modelling (S761). As a model, for example, a shading model of three-dimensional
computer graphics or the like is applicable. In the shading model, it is possible to
express specularity or the like by setting a cubic surface and a light source. By
performing the above processing, an approximated outline and color in the outline in
25 each area of the area group 702a are expressed, and therefore the vector component
704 can be generated.
[0143]
Meanwhile, each area of the area group 702b is compressed as an image,
and therefore the bitmap component 706 is generated (S763). For compression of
30 the image in S763, a publicly known technique such as a discrete cosine transform
(DCT) or vector quantization (VQ) can be used.
48
[0144]
Differences between the vector components 704 and the original image 700
are calculated in the areas of the area group 702a, and differences between the
bitmap components 706 and the original image 700 are calculated in the areas of the
area group 702b (S765), and therefore the 5 approximation errors 708 between the
vector components 704 and the bitmap components 706 and the original image 700
can be obtained.
[0145]
As shown in FIG. 23, an encoded image file 714 is generated on the basis of
10 the vector components 704, the bitmap components 706, and the approximation
errors 708. First, the area of the original image 700 is split on the basis of bounding
boxes (bbox) of the vector components 704 and the bitmap components 706, and a kd
tree 710 indicating the above splitting is generated (S767). Further, the
approximation errors 708 are allocated by area splitting lines of the k-d tree 710
15 (S769), and therefore approximation error components 712 can be obtained.
[0146]
The vector components 704, the bitmap components 706, the k-d tree 710,
and the approximation error components 712 obtained as described above are
serialized (S771), and therefore the image file 714 is generated.
20 [0147]
The k-d tree 710 is written at the top of the image file 714 as structure data.
With this, it is possible to quickly seek a component of an area to be drawn. After
that, the vector components 704, the bitmap components 706, and the approximation
error components 712 are written. Note that arrangement order of components
25 other than the k-d tree 710 in the image file 714 is not particularly limited.
[0148]
In the vector components 704, each piece of vertex data is normalized by
bbox. Therefore, it is possible to reduce significant figures needed by a mantissa,
thereby compressing data. Regarding the approximation error components 712,
30 run-length compression can be performed in the case where many of areas have an
error 0. Even in the case where errors exist, distribution is supposed to be
49
concentrated in small errors, and therefore it is possible to perform compression with
the use of an algorithm such as LZW.
[0149]
The vector component 704 expresses, for example, painting out of an area
surrounded by a Bezier curve with a single color. 5 The following is an example of
written content of the vector component 704. Note that, although the written
content is expressed in a PostScript format in the example for convenience of
explanation, the actual vector component 704 is subjected to, for example, binary
encoding and is then compressed.
10 newpath
0 100 moveto
100 50 150 50 250 0 rcurveto
100 -50 150 -50 250 0 rcurveto
closepath
15 0.3 1.0 setcolor
fill
[0150]
The bitmap component 706 expresses, for example, application of a bitmap
pattern to a rectangular area. The following is an example of written content of the
20 bitmap component 706. Note that, although the written content is expressed in a
PostScript format in the example for convenience of explanation, the actual bitmap
component 706 is subjected to, for example, binary encoding and is then compressed.
Note that "xxxx piximage" indicates a bitmap used as "Fill pattern".
newpath
25 100 100 moveto
100 0 rlineto
0 100 rlineto
-100 0 rlineto
closepath
30 xxxx piximage
fill
50
[0151]
(8-5. Example of Decoding Processing)
An example of processing performed when the image file 714 in the above
example is decoded in the client 300 will be described.
5 [0152]
(Case where Decoding Is Performed After Downloading is Completed)
Processing performed when decoding is performed after downloading is
completed will be described. In this case, the display control unit 310 of the client
300 draws the vector components 704 included in the image file 714 in order. In
10 this example, in the case where passes are repeated, a pass of the vector component
704 drawn later is prioritized.
[0153]
Then, the display control unit 310 draws the bitmap components 706
included in the image file 714 in order. At this time, drawing by using the bitmap
15 components 706 is overwritten on drawing by using the vector components 704. In
the case where passes of the bitmap components 706 are repeated, a pass of the
bitmap component 706 drawn later is prioritized.
[0154]
Then, the display control unit 310 adds the approximation error components
20 712 to images in the respective areas. The approximation error components 712
may be added in terms of, for example, red, green, blue, and alpha (RGBA).
[0155]
(Case Where Drawing Is Performed in the Middle of Downloading)
In the case where drawing is performed in the middle of downloading, as a
25 first example, the display control unit 310 of the client 300 draws the vector
components 704, the bitmap components 706, and the approximation error
components 712 in this order in accordance with progress in downloading of the
image file 714. This makes it possible to perform display so that color in a wide
range is fixed first and an image is gradually refined thereafter.
30 [0156]
Further, as a second example, the display control unit 310 of the client 300
51
downloads the k-d tree 710 at the top of the image file 714. The display control
unit 310 can obtain pointer information to the vector component 704, the bitmap
component 706, and the approximation error component 712 corresponding to a
specific area from the k-d tree 710. Then, the display control unit 310 downloads
the vector component 5 704, the bitmap component 706, and the approximation error
component 712 referred to by the above pointer information with the use of file
seeking, an HTTP range request, or the like. The display control unit 310 draws the
vector component 704, the bitmap component 706, and the approximation error
component 712 in this order in the above specific range with the use of downloaded
10 data, and thus decoding of the area is terminated.
[0157]
According to this embodiment described above, for example, a
communication capacity can be reduced by reducing a file size of an image that is
referred to in a document. Further, in the case where the image is partially simple
15 gradation or is partially painted out with a single color, those parts are vectorized by
transcoding, and therefore it is possible to speed up decode processing.
[0158]
(9. Hardware Configuration)
Next, a hardware configuration of the information processing device
20 according to an embodiment of the present disclosure will be described with
reference to FIG. 24. FIG. 24 is a block diagram for explaining an example of the
hardware configuration of the information processing device according to an
embodiment of the present disclosure. An information processing device 900
illustrated in the figure may realize the server, the client, or the like in the
25 aforementioned embodiments.
[0159]
The information processing device 900 includes a CPU (Central Processing
Unit) 901, a ROM (Read Only Memory) 903, and a RAM (Random Access Memory)
905. In addition, the information processing device 900 may include a host bus 907,
30 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
52
communication device 925. Further, the information processing device 900 may
include an imaging device 933 and a sensor 935 as necessary. The information
processing device 900 may include a processing circuit such as a DSP (Digital Signal
Processor) or ASIC (Application Specific Integrated Circuit), alternatively or in
5 addition to the CPU 901.
[0160]
The CPU 901 serves as an operation processor and a controller, and controls
all or some operations in the information processing device 900 in accordance with
various programs recorded in the ROM 903, the RAM 905, the storage device 919 or
10 a removable recording medium 927. The ROM 903 stores programs and operation
parameters which are used by the CPU 901. The RAM 905 temporarily stores
programs which are used in the execution of the CPU 901 and parameters which are
appropriately modified in the execution. The CPU 901, ROM 903, and RAM 905
are connected to each other by the host bus 907 configured to include an internal bus
15 such as a CPU bus. In addition, the host bus 907 is connected to the external bus
911 such as a PCI (Peripheral Component Interconnect/Interface) bus via the bridge
909.
[0161]
The input device 915 is a device which is operated by a user, such as a
20 mouse, a keyboard, a touch panel, buttons, switches and a lever. The input device
915 may be, for example, a remote control unit using infrared light or other radio
waves, or may be an external connection device 929 such as a portable phone
operable in response to the operation of the information processing device 900.
Furthermore, the input device 915 includes an input control circuit which generates
25 an input signal on the basis of the information which is input by a user and outputs
the input signal to the CPU 901. By operating the input device 915, a user can input
various types of data to the information processing device 900 or issue instructions
for causing the information processing device 900 to perform a processing operation.
[0162]
30 The output device 917 includes a device capable of visually or audibly
notifying the user of acquired information. The output device 917 may include a
53
display device such as an LCD (Liquid Crystal Display), a PDP (Plasma Display
Panel), and an organic EL (Electro-Luminescence) displays, an audio output device
such as a speaker or a headphone, and a peripheral device such as a printer. The
output device 917 may output the results obtained from the process of the
information processing device 900 in a form of 5 a video such as text or an image, and
an audio such as voice or sound.
[0163]
The storage device 919 is a device for data storage which is configured as
an example of a storage unit of the information processing device 900. The storage
10 device 919 includes, for example, a magnetic storage device such as a HDD (Hard
Disk Drive), a semiconductor storage device, an optical storage device, or a
magneto-optical storage device. The storage device 919 stores programs to be
executed by the CPU 901, various data, and data obtained from the outside.
[0164]
15 The drive 921 is a reader/writer for the removable recording medium 927
such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor
memory, and is embedded in the information processing device 900 or attached
externally thereto. The drive 921 reads information recorded in the removable
recording medium 927 attached thereto, and outputs the read information to the
20 RAM 905. Further, the drive 921 writes a record in the removable recording
medium 927 attached thereto.
[0165]
The connection port 923 is a port used to directly connect devices to the
information processing device 900. The connection port 923 may include a USB
25 (Universal Serial Bus) port, an IEEE1394 port, and a SCSI (Small Computer System
Interface) port. The connection port 923 may further include an RS-232C port, an
optical audio terminal, an HDMI (High-Definition Multimedia Interface) port, and so
on. The connection of the external connection device 929 to the connection port
923 makes it possible to exchange various data between the information processing
30 device 900 and the external connection device 929.
[0166]
54
The communication device 925 is, for example, a communication interface
including a communication device or the like for connection to a communication
network 931. The communication device 925 may be, for example, a
communication card for a wired or wireless LAN (Local Area Network), Bluetooth
(registered trademark), WUSB 5 (Wireless USB) or the like. In addition, the
communication device 925 may be a router for optical communication, a router for
ADSL (Asymmetric Digital Subscriber Line), a modem for various kinds of
communications, or the like. The communication device 925 can transmit and
receive signals to and from, for example, the Internet or other communication
10 devices based on a predetermined protocol such as TCP/IP. In addition, the
communication network 931 connected to the communication device 925 may be a
network or the like connected in a wired or wireless manner, and may be, for
example, the Internet, a home LAN, infrared communication, radio wave
communication, satellite communication, or the like.
15 [0167]
The imaging device 933 is a device that generates an image by imaging a
real space using an image sensor such as a charge-coupled device (CCD) or a
complementary metal-oxide-semiconductor (CMOS) sensor, as well as various
members such as one or more lenses for controlling the formation of a subject image
20 on the image sensor, for example. The imaging device 933 may be a device that
takes still images, and may also be a device that takes moving images.
[0168]
The sensor 935 is any of various sensors such as an acceleration sensor, a
gyro sensor, a geomagnetic sensor, an optical sensor, or a sound sensor, for example.
25 The sensor 935 acquires information regarding the state of the information
processing device 900, such as the orientation of the case of the information
processing device 900, as well as information regarding the environment surrounding
the information processing device 900, such as the brightness or noise surrounding
the information processing device 900, for example. The sensor 935 may also
30 include a Global Positioning System (GPS) sensor that receives GPS signals and
measures the latitude, longitude, and altitude of the apparatus.
55
[0169]
The foregoing thus illustrates an exemplary hardware configuration of the
information processing device 900. Each of the above components may be realized
using general-purpose members, but may also be realized in hardware specialized in
the function of each component. Such a configuration 5 may also be modified as
appropriate according to the technological level at the time of the implementation.
[0170]
(10. Supplementary Explanation)
The embodiments of the present disclosure can include, for example, the
10 aforementioned information processing device (server device or client device), a
system, an information processing method executed in the information processing
device or the system, a program causing the information processing device to
function, and a non-transitory tangible medium in which the program is recorded.
Note that the plurality of embodiments described above can be realized in arbitrary
15 combination within the scope that is obvious to a person skilled in the art on the basis
of description of the present specification even in the case where the specification
does not clearly describe in particular that the embodiments can be combined.
[0171]
The preferred embodiment(s) of the present disclosure has/have been
20 described above with reference to the accompanying drawings, whilst the present
disclosure is not limited to the above examples. A person skilled in the art may find
various alterations and modifications within the scope of the appended claims, and it
should be understood that they will naturally come under the technical scope of the
present disclosure.
25 [0172]
Additionally, the present technology may also be configured as below.
(1)
A server device, including:
a document acquisition unit configured to acquire a document including a
30 reference to a resource in response to a request from a client;
an identifier generation unit configured to generate an identifier unique to
56
content of the resource;
an identifier writing unit configured to associate the identifier with the
reference to the resource in the document; and
a document transmission unit configured to transmit the document and the
identifier associated with the reference 5 to the resource to the client.
(2)
The server device according to (1),
wherein the identifier writing unit adds the identifier to an original identifier
and associates the identifier with the reference to the resource.
10 (3)
The server device according to (1) or (2), further including
a resource precedent distribution unit configured to count the number of
association of the identifier with the reference to the resource and associate the
resource estimated to be frequently used on the basis of the number with the
15 identifier to transmit the resource to the client before the request.
(4)
The server device according to (3),
wherein, in a case where the resource estimated to be frequently used is a
program, the resource precedent distribution unit precompiles the program and then
20 transmits the program to the client.
(5)
The server device according to any one of (1) to (4),
wherein the identifier includes a hash calculated on the basis of content of
the resource.
25 (6)
The server device according to any one of (1) to (5),
wherein, before the identifier is generated, the document transmission unit
transmits, to the client, the document in which a dummy identifier is associated with
the reference to the resource and, after the identifier is generated, the document
30 transmission unit transmits, to the client, information that associates the identifier
with the dummy identifier.
57
(7)
A client device, including:
a request transmission unit configured to transmit a request to a server;
a document reception unit configured to receive, from the server, a
document including a reference to a resource, the 5 document being transmitted from
the server in response to the request, and an identifier that is associated with the
reference to the resource and is unique to content of the resource; and
a cache determination unit configured to determine whether or not the
resource is stored in a cache on the basis of the identifier.
10 (8)
The client device according to (7),
wherein the document reception unit receives the document including the
reference to the resource with which not only an original identifier but also the
identifier are associated.
15 (9)
The client device according to (7) or (8), further including
a resource precedent reception unit configured to receive the predetermined
resource associated with the identifier from the server before the request and store
the received resource in a cache.
20 (10)
The client device according to (9),
wherein, in a case where the predetermined resource is a program, the
resource precedent reception unit receives the precompiled program and caches the
received program.
25 (11)
The client device according to (10),
wherein the resource precedent reception unit caches the received program
in a storage area that is different from a storage area for a resource other than the
program.
30 (12)
The client device according to any one of (7) to (11),
58
wherein the identifier includes a hash calculated on the basis of content of
the resource.
(13)
The client device according to any one of (7) to (12),
wherein the document reception unit 5 receives, from the server, the document
in which a dummy identifier is associated with the reference to the resource and then
receives, from the server, information that associates the identifier with the dummy
identifier.
(14)
10 The client device according to (13),
wherein, in a case where the resource is referred to in a state in which the
dummy identifier is associated with the reference to the resource, the cache
determination unit realizes a function of transmitting a request for the identifier to the
server.
15 (15)
An information processing method, including:
acquiring a document including a reference to a resource in response to a
request from a client;
generating an identifier unique to content of the resource;
20 associating, with the use of a processor, the identifier with the reference to
the resource in the document; and
transmitting the document and the identifier associated with the reference to
the resource to the client.
(16)
25 A non-transitory tangible recording medium having a program recorded
thereon, the program causing a computer to realize
a function of transmitting a request to a server,
a function of receiving, from the server, a document including a reference to
a resource, the document being transmitted in response to the request, and an
30 identifier that is associated with the reference to the resource and is unique to content
of the resource, and
59
a function of determining whether or not the resource is stored in a cache on
the basis of the identifier.
Reference Signs List
5 [0173]
10 system
100 distribution server
200 intermediate server
202 request reception unit
10 204 document acquisition unit
206 document analysis unit
208 resource acquisition unit
210 identifier generation unit
212 identifier writing unit
15 214 document transmission unit
216 resource transmission unit
218 resource precedent distribution unit
220 resource analysis unit
222 abbreviated character string generation unit
20 224 abbreviated character string writing unit
226 association information transmission unit
228 image transcoding unit
230 image reference updating unit
280 cache
25 282 database
300 client
302 request transmission unit
304 document reception unit
306 cache determination unit
30 308 resource reception unit
310 display control unit
60
312 resource precedent reception unit
314 association information reception unit
316 character string interpretation unit
380 cache
5 382 database
61
CLAIMS
Claim 1
A server device, comprising:
a document acquisition unit configured to acquire a document including a
reference to a resource 5 in response to a request from a client;
an identifier generation unit configured to generate an identifier unique to
content of the resource;
an identifier writing unit configured to associate the identifier with the
reference to the resource in the document; and
10 a document transmission unit configured to transmit the document and the
identifier associated with the reference to the resource to the client.
Claim 2
The server device according to claim 1,
15 wherein the identifier writing unit adds the identifier to an original identifier
and associates the identifier with the reference to the resource.
Claim 3
The server device according to claim 1, further comprising
20 a resource precedent distribution unit configured to count the number of
association of the identifier with the reference to the resource and associate the
resource estimated to be frequently used on the basis of the number with the
identifier to transmit the resource to the client before the request.
25 Claim 4
The server device according to claim 3,
wherein, in a case where the resource estimated to be frequently used is a
program, the resource precedent distribution unit precompiles the program and then
transmits the program to the client.
30
Claim 5
62
The server device according to claim 1,
wherein the identifier includes a hash calculated on the basis of content of
the resource.
5 Claim 6
The server device according to claim 1,
wherein, before the identifier is generated, the document transmission unit
transmits, to the client, the document in which a dummy identifier is associated with
the reference to the resource and, after the identifier is generated, the document
10 transmission unit transmits, to the client, information that associates the identifier
with the dummy identifier.
Claim 7
A client device, comprising:
15 a request transmission unit configured to transmit a request to a server;
a document reception unit configured to receive, from the server, a
document including a reference to a resource, the document being transmitted from
the server in response to the request, and an identifier that is associated with the
reference to the resource and is unique to content of the resource; and
20 a cache determination unit configured to determine whether or not the
resource is stored in a cache on the basis of the identifier.
Claim 8
The client device according to claim 7,
25 wherein the document reception unit receives the document including the
reference to the resource with which not only an original identifier but also the
identifier are associated.
Claim 9
30 The client device according to claim 7, further comprising
a resource precedent reception unit configured to receive the predetermined
63
resource associated with the identifier from the server before the request and store
the received resource in a cache.
Claim 10
5 The client device according to claim 9,
wherein, in a case where the predetermined resource is a program, the
resource precedent reception unit receives the precompiled program and caches the
received program.
10 Claim 11
The client device according to claim 10,
wherein the resource precedent reception unit caches the received program
in a storage area that is different from a storage area for a resource other than the
program.
15
Claim 12
The client device according to claim 7,
wherein the identifier includes a hash calculated on the basis of content of
the resource.
20
Claim 13
The client device according to claim 7,
wherein the document reception unit receives, from the server, the document
in which a dummy identifier is associated with the reference to the resource and then
25 receives, from the server, information that associates the identifier with the dummy
identifier.
Claim 14
The client device according to claim 13,
30 wherein, in a case where the resource is referred to in a state in which the
dummy identifier is associated with the reference to the resource, the cache
64
determination unit realizes a function of transmitting a request for the identifier to the
server.
Claim 15
5 An information processing method, comprising:
acquiring a document including a reference to a resource in response to a
request from a client;
generating an identifier unique to content of the resource;
associating, with the use of a processor, the identifier with the reference to
10 the resource in the document; and
transmitting the document and the identifier associated with the reference to
the resource to the client.
Claim 16
15 A non-transitory tangible recording medium having a program recorded
thereon, the program causing a computer to realize
a function of transmitting a request to a server,
a function of receiving, from the server, a document including a reference to
a resource, the document being transmitted in response to the request, and an
20 identifier that is associated with the reference to the resource and is unique to content
of the resource, and
a function of determining whether or not the resource is stored in a cache on
the basis of the identifier.

Documents