WO2017163426A1 - 中継装置、中継方法及び中継プログラム - Google Patents
中継装置、中継方法及び中継プログラム Download PDFInfo
- Publication number
- WO2017163426A1 WO2017163426A1 PCT/JP2016/059760 JP2016059760W WO2017163426A1 WO 2017163426 A1 WO2017163426 A1 WO 2017163426A1 JP 2016059760 W JP2016059760 W JP 2016059760W WO 2017163426 A1 WO2017163426 A1 WO 2017163426A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- cache
- relay device
- communication device
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
Definitions
- the present invention relates to a relay device, a relay method, and a relay program.
- a file sharing system in which a remote client can download a file from a server or upload a file to the server.
- a method for increasing the processing speed required from data request to data acquisition between a client and a server is known in which a remote client can download a file from a server or upload a file to the server.
- the file sharing protocol used for file sharing includes CIFS (Common Internet File System) / SMB (Server Message Block).
- CIFS Common Internet File System
- SMB Server Message Block
- FIG. 7 is a sequence diagram illustrating an example of processing operation of the high-speed transmission system 200 related to relay processing.
- a high-speed transmission system 200 illustrated in FIG. 7 includes a server 201, a server-side relay device 202, a client-side relay device 203, and a client 204.
- the client 204 transmits an information acquisition command (GetInfo) to the client side relay device 203 (step S201).
- the client side relay device 203 transmits the received information acquisition command to the server side relay device 202 (step S202).
- the server side relay apparatus 202 transmits the received information acquisition command to the server 201 (step S203).
- the server 201 transmits an information acquisition response corresponding to the received information acquisition command to the server-side relay device 202 (step S204).
- the server side relay apparatus 202 transmits the received information acquisition response to the client side relay apparatus 203 (step S205). Further, the client side relay device 203 transmits the received information acquisition response to the client 204 (step S206).
- the client 204 transmits a read command (read0-99) to the client side relay device 203 in response to the information acquisition response (step S207).
- the client side relay device 203 receives the read command (read0-99)
- the client side relay device 203 transmits the read command (read0-99) to the server side relay device 202 (step S208).
- the server side relay apparatus 202 receives the read command (read0-99)
- the server side relay apparatus 202 transmits the read command (read0-99) to the server 201 (step S209).
- the server 201 reads the data (data0-99) in response to the read command (read0-99), and transmits the read data (data0-99) to the server side relay device 202 (step S210). Further, the server side relay device 202 transmits data (data0-99) to the client side relay device 203 (step S211). Further, the client side relay device 203 transmits data (data 0-99) to the client 204 (step S212).
- the server side relay apparatus 202 transmits data (data 0-99) to the client side relay apparatus 203 in step S211
- the server side relay apparatus 202 transmits a prefetch command (read100-199) to the server 201 (step S213).
- the server 201 reads the data (data 100-199) according to the prefetch command (read 100-199), and transmits the read data (data 100-199) to the server side relay apparatus 202 (step S214). Further, the server side relay apparatus 202 transmits data (data 100-199) to the client side relay apparatus 203 (step S215).
- the server side relay apparatus 202 transmits data (data 100-199) to the client side relay apparatus 203 in step S215
- the server side relay apparatus 202 transmits a prefetch command (read200-299) to the server 201 (step S216).
- the server 201 reads the data (data 200-299) according to the prefetch command (read 200-299), and transmits the read data (data 200-299) to the server side relay apparatus 202 (step S217).
- the server side relay apparatus 202 transmits data (data 200-299) to the client side relay apparatus 203 (step S218).
- the server side relay apparatus 202 transmits the data (data 200-299) to the client side relay apparatus 203 in step S218, the server side relay apparatus 202 transmits a prefetch command (read 300-399) to the server 201 (step S219).
- the server 201 reads the data (data 300-399) according to the prefetch command (read 300-399), and transmits the read data (data 300-399) to the server side relay device 202 (step S220). Further, the server side relay device 202 transmits data (data 300-399) to the client side relay device 203 (step S221).
- the server side relay apparatus 202 transmits the data (data 300-399) to the client side relay apparatus 203 in step S221, the server side relay apparatus 202 transmits a prefetch command (read 400-499) to the server 201 (step S222).
- the server 201 reads the data (data 400-499) according to the prefetch command (read 400-499), and transmits the read data (data 400-499) to the server side relay device 202 (step S223).
- the server side relay apparatus 202 transmits data (data 400-499) to the client side relay apparatus 203 (step S224).
- the client 204 when the client 204 receives the data (data 0-99) in step S212, the client 204 transmits a read command (read 100-199) to the client side relay device 203 (step S225). In response to the read command (read 100-199), the client side relay device 203 transmits the data (data 100-199) received in step S215 to the client 204 as a proxy response (step S226).
- the client 204 When the client 204 receives the data (data 100-199) in step S226, the client 204 transmits a read command (read200-299) to the client side relay device 203 (step S227). In response to the read command (read200-299), the client side relay device 203 transmits the received data (data200-299) as a proxy response to the client 204 (step S228).
- the client 204 When the client 204 receives the data (data 200-299) in step S228, the client 204 transmits a read command (read 300-399) to the client side relay device 203 (step S229). In response to the read command (read 300-399), the client side relay device 203 transmits the received data (data 300-399) to the client 204 as a proxy response (step S230).
- the client When the client receives data (data 300-399) in step S230, the client transmits a read command (read 400-499) to the client side relay device 203 (step S231). In response to the read command (read 400-499), the client side relay device 203 transmits the received data (data 400-499) to the client 204 as a proxy response (step S232). The client 204 repeatedly executes these series of processes until the desired data is obtained from the server 201.
- the server-side relay device 202 requests the server 201 for a prefetch command in response to a read command from the client 204, and transmits data obtained by the prefetch command to the client side relay device 203. Further, the client side relay device 203 sequentially transmits data obtained by the prefetch command to the client 204 in response to the read command from the client 204. As a result, the processing speed required from data request to data acquisition can be increased.
- FIG. 8 is a sequence diagram showing an example of processing operation of the high-speed transmission system 300 related to relay processing.
- a high-speed transmission system 300 illustrated in FIG. 8 includes a server 301, a server-side relay device 302, a client-side relay device 303, and a client 304.
- the client 304 transmits the first read command (read0-99) to the client side relay device 303 (step S301).
- the client side relay device 303 transmits the received read command (read0-99) to the server side relay device 302 (step S302).
- the server side relay device 302 transmits the received read command (read0-99) to the server 301 (step S303).
- the server 301 reads the data (data0-99) in response to the read command (read0-99), and transmits the read data (data0-99) to the server side relay device 302 (step S304).
- the server side relay apparatus 302 transmits the data (data0-99) to the client side relay apparatus 303 (step S305).
- the client side relay device 303 caches the received data (data0-99) in the cache (step S306), and transmits the data (data0-99) in the cache to the client 304 (step S307).
- the client 304 transmits a second read command (read0-99) to the client side relay device 303 (step S308).
- the client side relay device 303 transmits the data (data0-99) in the cache to the client 304 (step S309).
- the cache-side data is transmitted to the client 304 without transferring the read command to the server 301.
- the processing speed required from data request to data acquisition can be increased.
- the read data is stored in the cache in response to the first data request (read command), and the data in the cache is stored in the cache in the second and subsequent data requests. Is sent to the client 304.
- the client-side relay device 303 assumes that the data to be downloaded in the cache is the same data for the first time and the second time, a mechanism for determining whether there is an update in the cache is required.
- An object of one aspect is to provide a relay apparatus, a relay method, and a relay program that can increase the processing speed required from data request to data acquisition.
- the relay device includes a first relay device connected to the first communication device and a second relay device connected to the second communication device.
- the relay device reads data from the first communication device in response to a data request from the second communication device, and relays the read data to the second communication device.
- the first relay device includes a request unit, a control unit, and a notification unit.
- the request unit requests the first communication device to prefetch data in response to a request from the second communication device.
- the control unit caches the prefetch data obtained by the prefetch request of the request unit in the first cache.
- the notifying unit requests the first communication device to prefetch data, and the prefetch data obtained by the prefetch request and the first cache are being cached.
- the second relay device When the pre-read data matches, a predetermined signal is notified to the second relay device.
- the second relay device includes a second cache and a response unit.
- the second cache caches a part of the prefetched data in the cache in the first cache.
- the response unit makes a proxy response to the second communication device with the prefetched data in the cache in response to a data request from the second communication device.
- the processing speed required from data request to data acquisition can be increased.
- FIG. 1 is an explanatory diagram illustrating an example of a high-speed transmission system according to the present embodiment.
- FIG. 2 is a sequence diagram illustrating an example of processing operation of the high-speed transmission system related to relay processing when the cache is empty.
- FIG. 3 is a sequence diagram showing an example of processing operation of the high-speed transmission system related to the relay processing when the cache is OK.
- FIG. 4 is a sequence diagram showing an example of the processing operation of the high-speed transmission system related to the relay processing at the time of cache NG.
- FIG. 5 is a flowchart illustrating an example of the processing operation of the server side relay apparatus related to the relay processing.
- FIG. 6 is an explanatory diagram illustrating an example of an information processing apparatus that executes a relay program.
- FIG. 7 is a sequence diagram illustrating an example of processing operation of the high-speed transmission system related to relay processing.
- FIG. 8 is a sequence diagram illustrating an example of processing operation of the high-speed transmission system related to relay processing.
- FIG. 1 is an explanatory diagram showing an example of the high-speed transmission system 1 of the present embodiment.
- a high-speed transmission system 1 illustrated in FIG. 1 includes a server 2, a server-side relay device 3, a client-side relay device 4, and a client 5.
- the server-side relay device 3 and the client-side relay device 4 are connected by a communication network 6 such as the Internet or a LAN (Local Area Network).
- Data communication between the server 2 and the client 5 uses, for example, a CIFS / SMB communication protocol.
- the server 2 is a first communication device such as a computer that manages the database that the client 5 requests, for example, download data is stored.
- the server-side relay device 3 is a first relay device that is connected to the server 2 and connected to the communication network 6. For convenience of explanation, it is assumed that the server side relay device 3 is disposed in the vicinity of the server 2, for example. It may be an application.
- the server-side relay device 3 includes a communication unit 11, a memory 12, a storage unit 13, a CPU (Central Processing Unit) 14, and a first acceleration unit 15.
- the communication unit 11 is a communication interface that manages communication with the server 2 and with the communication network 6.
- the storage unit 13 is an area for storing various information.
- the memory 12 is a work area that stores various types of information and executes processing of the CPU 14. Note that the memory 12 includes a first cache 12A that caches head data to be described later.
- the CPU 14 controls the entire server side relay device 3.
- the first acceleration unit 15 is an application that realizes relay processing on the server 2
- the first speed-up unit 15 includes a request unit 21, a first control unit 22, and a notification unit 23.
- the request unit 21 requests the server 2 for an initial prefetch command for requesting prefetching of the head data when transmitting an information acquisition response to the information acquisition command from the server 2 to the client side relay device 4.
- the initial prefetch command is a command for requesting prefetch of the top data (data 0-399), for example.
- the request unit 21 requests the server 2 for a prefetch command for requesting prefetch of the next data (for example, data 400-499).
- the first control unit 22 controls the first cache 12A. When there is no prefetched head data in the first cache 12A, the first control unit 22 caches the prefetched head data acquired by the first prefetch command in the first cache 12A.
- the notification unit 23 compares the acquired prefetch top data with the top data in the cache in the first cache 12A.
- the notification unit 23 notifies the client-side relay device 4 of the cache OK when the acquired top data matches the top data in the cache in the first cache 12A.
- the cache OK permits the use of the cache data of the second cache 32A to make a proxy response to the client 5 using the first data in the cache in a later-described second cache 32A in the client side relay device 4. This is a predetermined signal.
- the notifying unit 23 notifies the client side relay device 4 of the cache NG when the acquired top data and the top data in the cache in the first cache 12A do not match.
- the cache NG is a signal for prohibiting the use of the cache data in the second cache 32A in order to prohibit the proxy response to the client 5 using the cache in the second cache 32A in the client side relay device 4. It is.
- the client 5 is, for example, a second communication device in the vicinity of the client 5 such as a personal computer.
- the client-side relay device 4 is a second relay device that is connected to the client 5 and connected to the communication network 6.
- the client side relay device 4 includes a communication unit 31, a memory 32, a storage unit 33, a CPU 34, and a second speed-up unit 35.
- the communication unit 31 is a communication interface that manages communication with the client 5 and with the communication network 6.
- the storage unit 33 is an area for storing various information.
- the memory 32 is a work area that stores various types of information and executes processing of the CPU 34.
- the memory 32 has a second cache 32A.
- the CPU 34 controls the entire client side relay device 4.
- the second acceleration unit 35 is an application that realizes relay processing on the client 5 side.
- the second speed-up unit 35 includes a second control unit 41 and a response unit 42.
- the second control unit 41 controls the second cache 32A.
- the second control unit 41 caches the first data in the cache in the first cache 12A in the server-side relay device 3 in the second cache 32A.
- the cache amount of the second cache 32A is equal to or greater than the RTT (Round Trip Time) required for processing from the first transmission of the read command from the client 5 until the data corresponding to the read command is acquired from the server 2, This is the amount of read-ahead data for which a proxy response is possible. That is, the cache amount of the second cache 32A can be calculated by the read command speed (bps) of the client 5 ⁇ RTT (msec) ⁇ 1000.
- the second cache 32A caches the prefetched head data (data0-399) in the cache in the first cache 12A.
- the response unit 42 makes a proxy response to the client 5 for the head data in the second cache 32 ⁇ / b> A in response to a read command from the client 5.
- FIG. 2 is a sequence diagram showing an example of processing operation of the high-speed transmission system 1 related to relay processing when the cache is empty.
- the first cache 12A in the server side relay device 3 and the second cache 32A in the client side relay device 4 are in an empty state in which the top data is not cached.
- the client 5 transmits an information acquisition command to the client side relay device 4 (step S31).
- the client side relay device 4 transmits the received information acquisition command to the server side relay device 3 (step S32).
- the server side relay device 3 transmits the received information acquisition command to the server 2 (step S33).
- the server 2 transmits an information acquisition response corresponding to the received information acquisition command to the server-side relay device 3 (step S34).
- the server side relay device 3 transmits the received information acquisition response to the client side relay device 4 (step S35).
- the client side relay device 4 transmits the received information acquisition response to the client 5 (step S36).
- the server side relay device 3 When the server side relay device 3 transmits an information acquisition response to the client side relay device 4 in step S35, the server side relay device 3 requests the server 2 for an initial prefetch command (read0-399) (step S37).
- the server 2 reads the head data (data0-399) in response to the initial prefetch command (read0-399), and transmits the read head data (data0-399) to the server side relay device 3 (step S38).
- the server-side relay device 3 caches the head data (data0-399) received in step S38 in the first cache 12A (step S39). As a result, the first data (data0-399) is stored in the first cache 12A.
- the client 5 When the client 5 receives the information acquisition response in step S36, the client 5 transmits a read command (read0-99) to the client side relay device 4 (step S40).
- the client side relay device 4 transmits the received read command (read0-99) to the server side relay device 3 (step S41).
- the server-side relay device 3 When the server-side relay device 3 receives the read command (read0-99) in step S41, the server-side relay device 3 reads data (data0-99) corresponding to the read command (read0-99) from the first cache 12A. Then, the server side relay device 3 transmits the read data (data0-99) to the client side relay device 4 (step S42). Then, the client side relay device 4 caches the received data (data0-99) in the second cache 32A (step S43) and transmits the data (data0-99) to the client 5 (step S44).
- step S42 the server-side relay device 3 transmits the data (data0-99) cached in the first cache 12A to the client-side relay device 4 and then the data (data100-data) cached in the first cache 12A. 199). Then, the server side relay device 3 transmits the read data (data 100-199) to the client side relay device 4 (step S45). Then, the client side relay device 4 caches the received (data 100-199) in the second cache 32A (step S43A).
- step S45 the server side relay device 3 transmits the data (data 100-199) cached in the first cache 12A to the client side relay device 4 and then the data cached in the first cache 12A (data200- 299). Then, the server side relay device 3 transmits the read data (data 200-299) to the client side relay device 4 (step S46). Then, the client side relay device 4 caches the received data (data 200-299) in the second cache 32A (step S43B).
- step S46 the server side relay device 3 transmits the data (data 200-299) cached in the first cache 12A to the client side relay device 4 and then the data cached in the first cache 12A (data300- 399). Then, the server side relay device 3 transmits the read data (data 300-399) to the client side relay device 4 (step S47). Then, the client side relay device 4 caches the received (data 300-399) in the second cache 32A (step S43C). As a result, the same top data (data0-399) as that in the first cache 12A is cached in the second cache 32A.
- the client 5 transmits the next read command (read 100-199) to the client side relay device 4 (step S48).
- the client-side relay device 4 reads data (data 100-199) corresponding to the received read command (read 100-199) from the second cache 32A. Then, the client side relay device 4 transmits the read data (data 100-199) to the client 5 as a proxy response (step S49).
- the client 5 transmits the next read command (read200-299) to the client side relay device 4 (step S50).
- the client-side relay device 4 reads data (data 200-299) corresponding to the received read command (read 200-299) from the second cache 32A.
- the client side relay device 4 transmits the read data (data 200-299) to the client 5 as a proxy response (step S51).
- the client 5 transmits the next read command (read 300-399) to the client side relay device 4 (step S52).
- the client side relay device 4 reads data (data 300-399) corresponding to the received read command (read 300-399) from the second cache 32A.
- the client side relay device 4 transmits the read data (data 300-399) to the client 5 as a proxy response (step S53).
- the server-side relay device 3 transmits data (data 300-399) to the client-side relay device 4 in step S53, and then transmits a prefetch command (read 400-499) to the server 2 (step S54).
- the server 2 reads the data (data 400-499) in response to the prefetch command (read 400-499), and transmits the read data (data 400-499) to the server side relay device 3 (step S55).
- the server side relay device 3 transmits the read data (data 400-499) to the client side relay device 4 (step S56).
- the client 5 receives the proxy response (data 300-399) in step S53, the client 5 transmits the next read command (read 400-499) to the client side relay device 4 (step S57).
- the client side relay device 4 transmits the received data (data 400-499) for the read command (read 400-499) to the client 5 as a proxy response (step S58).
- the client 5 repeatedly executes the series of processes until all desired data can be acquired from the server 2.
- the server side relay device 3 shown in FIG. 2 transmits an information acquisition response of the information acquisition command to the client side relay device 4, the server side relay device 3 requests the server 2 for the first prefetch command and acquires the prefetch data corresponding to the first prefetch command. . Furthermore, when the first cache 12A is empty, the server-side relay device 3 caches the acquired prefetched data in the first cache 12A. Further, the client side relay device 4 sequentially acquires the prefetched data from the first cache 12A, and caches the prefetched data that is sequentially acquired in the second cache 32A. As a result, the first cache 12A in the server-side relay device 3 and the second cache 32A in the client-side relay device 4 can cache the same prefetched data. Since the client side relay device 4 can make a proxy response to the client 5 using the first data in the cache in the second cache 32A, the processing speed from the data request to the data acquisition in the first stage is increased. Can be
- FIG. 3 is a sequence diagram showing an example of processing operation of the high-speed transmission system 1 related to relay processing at the time of cache OK.
- first data data 0-399
- the same first data is cached in the first cache 12A in the server side relay device 3 and the second cache 32A in the client side relay device 4. To do.
- the client 5 transmits an information acquisition command to the client side relay device 4 (step S61).
- the client side relay device 4 transmits the received information acquisition command to the server side relay device 3 (step S62).
- the server-side relay device 3 transmits the received information acquisition command to the server 2 (step S63).
- the server 2 transmits an information acquisition response corresponding to the received information acquisition command to the server side relay device 3 (step S64).
- the server side relay device 3 transmits the received information acquisition response to the client side relay device 4 (step S65). Further, the client side relay device 4 receives the received information acquisition response (step S66).
- the server side relay device 3 transmits the information acquisition response to the client side relay device 4 in step S65, the server side relay device 3 transmits an initial prefetch command (read0-399) to the server 2 (step S67).
- the server 2 reads the head data (data0-399) in response to the initial prefetch command (read0-399), and transmits the read head data (data0-399) to the server side relay device 3 (step S68).
- the server-side relay device 3 compares the received head data (data 0-399) with the head data in the cache in the first cache 12A. When the received head data matches the head data in the cache in the first cache 12A, the server side relay device 3 transmits a cache OK to the client side relay device 4 (step S69).
- the client 5 When the client 5 receives the information acquisition response in step S66, the client 5 transmits a read command (read0-99) to the client side relay device 4 (step S70).
- the client side relay device 4 transmits the received read command (read0-99) to the server side relay device 3 (step S71).
- the client-side relay device 4 When the client-side relay device 4 receives the cache OK in step S69, the client-side relay device 4 makes a proxy response to the second cache 32A with the top data in the cache. That is, when the client side relay device 4 receives the read command (read0-99) in step S70, the client side relay device 4 reads data (data0-99) corresponding to the read command (read0-99) from the second cache 32A. Then, the client side relay device 4 transmits the read data (data0-99) to the client 5 (step S72).
- the client 5 transmits the next read command (read 100-199) to the client side relay device 4 (step S73).
- the client-side relay device 4 receives the read command (read 100-199)
- the client-side relay device 4 reads data (data 100-199) corresponding to the read command (read 100-199) from the second cache 32A.
- the client side relay device 4 transmits the read data (data 100-199) to the client 5 as a proxy response (step S74).
- step S74 when the client 5 receives the data (data 100-199) in step S74, the client 5 transmits the next read command (read200-299) to the client side relay device 4 (step S75).
- the client side relay device 4 reads data (data 200-299) corresponding to the read command (read 200-299) from the second cache 32A. Then, the client side relay device 4 transmits the read data (data 200-299) to the client 5 as a proxy response (step S76).
- step S76 when the client 5 receives the data (data 200-299) in step S76, the client 5 transmits the next read command (read 300-399) to the client side relay device 4 (step S77).
- the client side relay device 4 reads data (data 300-399) corresponding to the read command (read 300-399) from the second cache 32A. Then, the client side relay device 4 transmits the read data (data 300-399) to the client 5 as a proxy response (step S78).
- the server side relay device 3 transmits the prefetch command (read400-499) to the server 2 (step S79).
- the server 2 reads the data (data 400-499) according to the prefetch command (read 400-499), and transmits the read data (data 400-499) to the server side relay device 3 (step S80).
- the server side relay device 3 transmits the read data (data 400-499) to the client side relay device 4 (step S81).
- the client 5 receives the proxy response (data 300-399) in step S78, the client 5 transmits a read command (read 400-499) to the client side relay device 4 (step S82).
- the client side relay device 4 transmits the received data (data 400-499) for the read command (read 400-499) to the client 5 as a proxy response (step S83).
- the client 5 repeatedly executes these series of processes until all desired data can be acquired from the server 2.
- the server-side relay device 3 compares the prefetch data acquired in response to the first prefetch command with the prefetch data in the cache in the first cache 12A.
- the server-side relay device 3 notifies the client-side relay device 4 of the cache OK when the prefetched data matches the prefetched data in the cache in the first cache 12A.
- the client-side relay device 4 receives the cache OK, the client-side relay device 4 makes a proxy response to the second cache 32A with the pre-read data in the cache in response to the read command from the client 5.
- the processing speed from the data request in the initial stage to the data acquisition can be increased. Without being limited to the initial stage, the processing speed from data request to data acquisition between the client 5 and the server 2 can be increased.
- FIG. 4 is a sequence diagram showing an example of processing operation of the high-speed transmission system 1 related to relay processing at the time of cache NG.
- the first data is cached in the first cache 12A in the server-side relay device 3 and the second cache 32A in the client-side relay device 4.
- the client 5 transmits an information acquisition command to the client side relay device 4 (step S91).
- the client side relay device 4 transmits the received information acquisition command to the server side relay device 3 (step S92).
- the server side relay device 3 transmits the received information acquisition command to the server 2 (step S93).
- the server 2 transmits an information acquisition response corresponding to the received information acquisition command to the server side relay device 3 (step S94).
- the server side relay device 3 transmits the received information acquisition response to the client side relay device 4 (step S95). Further, the client side relay device 4 transmits the received information acquisition response to the client 5 (step S96).
- the server-side relay device 3 When the server-side relay device 3 transmits an information acquisition response to the client-side relay device 4 in step S95, the server-side relay device 3 requests the server 2 for an initial prefetch command (read0-399) (step S97).
- the server 2 reads the head data (data0-399) in response to the initial prefetch command (read0-399), and transmits the read head data (data0-399) to the server side relay device 3 (step S98).
- the server-side relay device 3 compares the received head data (data 0-399) with the head data in the cache in the first cache 12A. If the received top data is different from the top data in the cache in the first cache 12A, the server side relay device 3 transmits the cache NG to the client side relay device 4 (step S99). The server-side relay device 3 updates the received head data (data0-399) in the first cache 12A (step S100). When the client-side relay device 4 receives the cache NG from the server-side relay device 3, the client-side relay device 4 deletes the cache contents of the second cache 32A.
- the client 5 When the client 5 receives the information acquisition response in step S96, the client 5 transmits a read command (read0-99) to the client side relay device 4 (step S101).
- the client side relay device 4 transmits the received read command (read0-99) to the server side relay device 3 (step S102).
- the server-side relay device 3 When the server-side relay device 3 receives the read command (read0-99) in step S102, the server-side relay device 3 reads data (data0-99) corresponding to the read command (read0-99) from the first cache 12A. Then, the server side relay device 3 transmits the read data (data0-99) to the client side relay device 4 (step S103). Then, the client side relay device 4 caches the received data (data0-99) in the second cache 32A (step S104) and transmits the data (data0-99) to the client 5 (step S105).
- step S103 the server side relay device 3 transmits the data (data0-99) cached in the first cache 12A to the client side relay device 4 and then the data cached in the first cache 12A (data100- 199). Then, the server side relay device 3 transmits the read data (data 100-199) to the client side relay device 4 (step S106). Then, the client side relay device 4 caches the received data (data 100-199) in the second cache 31A (step S104A).
- step S106 the server-side relay device 3 transmits the data (data 100-199) cached in the first cache 12A to the client-side relay device 4 and then the data cached in the first cache 12A (data200- 299). Then, the server side relay device 3 transmits the read data (data 200-299) to the client side relay device 4 (step S107). Then, the client side relay device 4 caches the received data (data 200-299) in the second cache 32A (step S104B).
- step S107 the server side relay device 3 transmits the data (data 200-299) cached in the first cache 12A to the client side relay device 4 and then the data cached in the first cache 12A (data300- 399). Then, the server side relay device 3 transmits the read data (data 300-399) to the client side relay device 4 (step S108). Then, the client side relay device 4 caches the received data (data 300-399) in the second cache 32A (step S104C). As a result, the second cache 32A caches the same top data (data0-399) as the first cache 12A.
- the client 5 transmits the next read command (read 100-199) to the client side relay device 4 (step S109).
- the client-side relay device 4 receives the read command (read 100-199)
- the client-side relay device 4 reads data (data 100-199) corresponding to the read command (read 100-199) from the second cache 32A.
- the client side relay device 4 transmits the read data (data 100-199) to the client 5 as a proxy response (step S110).
- the client 5 transmits the next read command (read200-299) to the client side relay device 4 (step S111).
- the client side relay device 4 When receiving the read command (read200-299), the client side relay device 4 reads data (data200-299) corresponding to the read command (read200-299) from the second cache 32A. Then, the client side relay device 4 transmits the read data (data 200-299) to the client 5 as a proxy response (step S112).
- the client 5 transmits the next read command (read300-399) to the client side relay device 4 (step S113).
- the client-side relay device 4 receives the read command (read 300-399)
- the client-side relay device 4 reads data (data 300-399) corresponding to the read command (read 300-399) from the second cache 32A.
- the client side relay device 4 transmits the read data (data 300-399) to the client 5 as a proxy response (step S114).
- the server-side relay device 3 transmits data (data 300-399) to the client-side relay device 4 in step S108, and then transmits a prefetch command (read 400-499) to the server 2 (step S115).
- the server 2 reads the data (data 400-499) in response to the prefetch command (read 400-499), and transmits the read data (data 400-499) to the server side relay device 3 (step S116).
- the server side relay device 3 transmits the read data (data 400-499) to the client side relay device 4 (step S117).
- the client 5 receives the proxy response (data 300-399) in step S114, the client 5 transmits a read command (read 400-499) to the client side relay device 4 (step S118).
- the client side relay device 4 transmits the received data (data 400-499) for the read command (read 400-499) to the client 5 as a proxy response (step S119).
- the client 5 repeatedly executes these series of processes until all desired data can be acquired from the server 2.
- the server side relay device 3 shown in FIG. 4 compares the current prefetch data acquired in response to the first prefetch command and the prefetch data in the cache in the first cache 12A.
- the server-side relay device 3 notifies the client-side relay device 4 of the cache NG when the current prefetched data does not match the prefetched data in the cache in the first cache 12A.
- the server-side relay device 3 updates the current prefetched data in the first cache.
- the client side relay device 4 sequentially acquires the prefetch data from the first cache 12A after the cache update, and updates the sequentially acquired prefetch data in the second cache 32A.
- the first cache 12A in the server-side relay device 3 and the second cache 32A in the client-side relay device 4 can cache the same prefetched data. Since the client side relay device 4 can make a proxy response to the client 5 using the first data in the cache in the second cache 32A, the processing speed from the data request to the data acquisition in the first stage is increased. Can be
- FIG. 5 is a flowchart showing an example of the processing operation of the server side relay device 3 related to the relay processing.
- the first speed-up unit 15 in the server-side relay device 3 determines whether or not an information acquisition command has been received from the client-side relay device 4 (step S11).
- the first acceleration unit 15 transmits the information acquisition command to the server 2 (Step S12).
- the first speed-up unit 15 determines whether an information acquisition response to the information acquisition command has been received from the server 2 (step S13). When receiving the information acquisition response (Yes at Step S13), the first acceleration unit 15 transmits the information acquisition response to the client side relay device 4 (Step S14).
- the request unit 21 in the first acceleration unit 15 transmits an initial prefetch command to the server 2 (step S15), and determines whether or not prefetch data for the initial prefetch command has been received (step S16).
- the first control unit 22 in the first speed-up unit 15 receives prefetched data (Yes at Step S16)
- the first control unit 22 determines whether or not there is head data in the first cache 12A (Step S17). .
- the notification unit 23 in the first acceleration unit 15 compares the first data in the first cache 12A with the received prefetched data. (Step S18). The notification unit 23 determines whether or not the top data in the first cache 12A matches the received prefetch data (step S19).
- the notification unit 23 notifies the client-side relay device 4 of the cache OK when the first data in the first cache 12A matches the received prefetched data (step S20).
- the request unit 21 determines whether a read command has been received from the client side relay device 4 (step S21). When receiving the read command (Yes at Step S21), the request unit 21 transmits a prefetch command for subsequent data to the server 2 (Step S22).
- the first speed-up unit 15 determines whether or not prefetch data for the prefetch command has been received (step S23). When receiving the prefetch data (Yes at Step S23), the first acceleration unit 15 transmits the received prefetch data to the client side relay device 4 (Step S24). Then, the first speed-up unit 15 determines whether or not there is prefetched data (step S25). When there is no prefetch data (Yes at Step S25), the first speed-up unit 15 ends the processing operation illustrated in FIG.
- the first speed-up unit 15 proceeds to Step S22 in order to transmit a prefetch command of continued data to the server 2.
- the first high speed unit 15 ends the processing operation illustrated in FIG. If the first speed-up unit 15 has not received an information acquisition response from the server (No at Step S13), the first speed-up unit 15 proceeds to Step S13 to determine whether an information acquisition response has been received.
- Step S16 If the first speed-up unit 15 has not received prefetch data for the first prefetch command (No at Step S16), the first speed-up unit 15 proceeds to Step S16 to determine whether or not prefetch data for the first prefetch command has been received.
- the first control unit 22 updates the prefetched head data in the first cache 12A (Step S26). Then, the first speed-up unit 15 transmits the prefetched data in the first cache 12A to the client side relay device 4 (step S27), and determines whether there is no prefetched data in step S25. Transition.
- Step S19 If the comparison result does not match (No at Step S19), the first control unit 22 proceeds to Step S26 in order to update the prefetched head data to the first cache 12A. If the first speed-up unit 15 has not received a read command from the client-side relay device (No at Step S21), the first speed-up unit 15 proceeds to Step S21 to determine whether or not a read command has been received. If the first speed-up unit 15 has not received prefetch data for the prefetch command (No at Step S23), the first speed-up unit 15 proceeds to Step S23 to determine whether or not prefetch data for the prefetch command has been received.
- the server-side relay device 3 compares the prefetch data acquired in response to the first prefetch command with the prefetch data in the cache in the first cache 12A.
- the server-side relay device 3 notifies the client-side relay device 4 of the cache OK when the prefetched data matches the prefetched data in the cache in the first cache 12A.
- the client-side relay device 4 receives the cache OK, the client-side relay device 4 makes a proxy response with the data in the cache to the second cache 32A in response to the read command from the client 5. As a result, the processing speed from the data request in the initial stage to the data acquisition can be increased.
- the server-side relay device 3 in the high-speed transmission system 1 of the present embodiment compares the current prefetched data acquired in response to the initial prefetch command and the prefetched data in the cache in the first cache 12A.
- the server-side relay device 3 notifies the client-side relay device 4 of the cache OK when the current prefetched data matches the prefetched data in the cache in the first cache 12A.
- the client-side relay device 4 receives the cache OK, the client-side relay device 4 makes a proxy response with the data in the cache to the second cache 32A in response to the read command from the client 5. As a result, the processing speed from the data request in the initial stage to the data acquisition can be increased.
- the high-speed transmission system 1 increases the processing speed (download speed) from data request to data acquisition when applied to a file sharing system between remote locations.
- the high-speed transmission system 1 becomes more effective in increasing the processing speed from data request to data acquisition as the data size to be downloaded becomes smaller. For example, when the RTT between the client 5 and the server 2 is 100 ms and downloads 100 KB data, the processing time can be reduced from 0.2 seconds to 0.1 seconds. For example, when the number of data is 100, 20 seconds can be shortened to 10 seconds.
- the client-side relay device 4 does not need to cache the entire file, so the amount of storage required for the cache can be reduced.
- the server 2 is requested to prefetch 0-399 data as the first prefetch command, but the amount of prefetch data is not limited to 0-399 and can be changed as appropriate. It is.
- the second cache 32A illustrates the case where the same data as the first data 0-399 in the cache is cached in the first cache 12A.
- the second cache 32A may cache a part of the head data in the cache of the first cache 12A, for example, data of 0-299. It can be appropriately changed in consideration of the RTT from the data request to the data acquisition described above.
- the server side relay device 3 transmits an information acquisition response to the client side relay device 4, the server side relay device 3 requests the server 2 for the first prefetch command.
- the server side relay device 3 is not limited to this timing, and receives the information acquisition response from the server 2. The timing may also be changed as appropriate.
- the server side relay device 3 erases the contents of the first cache 12A when the current prefetch data acquired by the request unit 21 and the prefetch data in the cache in the first cache 12A are different, and the current prefetch data is stored. Cached in the first cache 12A. However, the server-side relay device 3 notifies the client 5 of an alarm without erasing the cache in the first cache 12A when the current prefetch data and the prefetch data in the cache in the first cache 12A are different. Also good. Further, the server side relay device 3 deletes the cache of the first cache 12A only when a predetermined condition is satisfied when the prefetch data this time and the prefetch data in the cache in the first cache 12A are different. The current prefetched data may be cached in the first cache 12.
- the server 2 is a communication device such as a computer, but various functions and information of the server 2 may be realized by cloud computing.
- the CIFS / SMB file sharing protocol is adopted.
- the present invention is not limited to this, and may be, for example, NFS (Network File System) or AFP (Apple Filing Protocol). It can be changed.
- CIFS / SMB is exemplified as the file sharing protocol.
- HTTP Hypertext Transfer Protocol
- FTP File Transfer Protocol
- MAPI Messaging Application Programming Interface
- IMAP Internet Message Access Protocol
- POP Post Office Protocol
- SMTP Simple Mail Transfer Protocol
- LDAP Lightweight Directory Access Protocol
- each component of each part illustrated does not necessarily need to be physically configured as illustrated.
- the specific form of distribution / integration of each part is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed / integrated in arbitrary units according to various loads and usage conditions. Can be configured.
- various processing functions performed in the server side relay device 3 are all or arbitrary on a CPU (Central Processing Unit) (or a micro computer such as an MPU (Micro Processing Unit) or MCU (Micro Controller Unit)). A part may be executed. Various processing functions may be executed entirely or arbitrarily on a program that is analyzed and executed by a CPU (or a microcomputer such as an MPU or MCU) or hardware based on wired logic. Needless to say.
- a CPU Central Processing Unit
- MPU Micro Processing Unit
- MCU Micro Controller Unit
- FIG. 6 is an explanatory diagram illustrating an example of the information processing apparatus 100 that executes a relay program.
- the information processing apparatus 100 that executes the relay program includes a communication unit 101, a cache 102, a ROM 103, a RAM 104, a processor 105, and a bus 106.
- the information processing apparatus 100 is connected to the first communication apparatus, reads data from the first communication apparatus in response to a data request from the second communication apparatus, and relays the read data to the second communication apparatus. To do.
- the ROM 103 stores in advance a relay program that exhibits the same function as in the above embodiment.
- the processing program may be recorded on a recording medium that can be read by a drive (not shown) instead of the ROM 103.
- the recording medium may be, for example, a portable recording medium such as a CD-ROM, a DVD disk, a USB memory, or an SD card, or a semiconductor memory such as a flash memory.
- the processing programs are a request program 103A, a control program 103B, and a notification program 103C. Note that the request program 103A, the control program 103B, and the notification program 103C may be appropriately integrated or distributed.
- the information processing apparatus 100 may acquire and execute the relay program from these portable physical media.
- the relay program is stored in another computer or the like connected to the information processing apparatus 100 via a public line, the Internet, a LAN, a WAN, or the like, and the information processing apparatus 100 acquires and executes the relay program therefrom. You may do it.
- the processor 105 reads the request program 103A, the control program 103B, and the notification program 103C from the ROM 103, and expands the read programs on the RAM 104.
- the processor 105 causes the request program 103A, the control program 103B, and the notification program 103C to function as the request process 104A, the control process 104B, and the notification process 104C on the RAM 104.
- the processor 105 not all the processing units shown in the present embodiment are necessarily required to operate, and it is only necessary that a processing unit corresponding to a process to be executed is virtually realized.
- the processor 105 requests prefetching of data from the first communication device in response to a request from the second communication device.
- the processor 105 caches the prefetch data obtained by the prefetch request in the cache 102.
- the processor 105 requests prefetching of data from the first communication device in response to the current request from the second communication device.
- the processor 105 connects to the second communication device in response to a data request from the second communication device when the current prefetched data obtained by the prefetch request matches the prefetch data in the cache in the cache 102.
- a predetermined signal instructing the proxy response to the second communication device is notified to the other relay device by using the pre-read data in the cache. As a result, the processing time required from data request to data acquisition can be increased.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
中継装置は、サーバと接続する第1の中継装置と、クライアントと接続する第2の中継装置とを有する。第1の中継装置は、要求部と、制御部と、通知部とを有する。要求部は、クライアントからの要求に応じてサーバに対してデータの先読みを要求する。制御部は、先読み要求で得た先読みデータを第1のキャッシュにキャッシュする。通知部は、クライアントから今回の要求に応じてサーバに対して先読みを要求し、その先読みデータと第1のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を第2の中継装置に通知する。第2の中継装置は、第2のキャッシュと、応答部とを有する。第2のキャッシュは、第1のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする。応答部は、所定信号を検出した場合にクライアントからのデータ要求に応じて第2のキャッシュにキャッシュ中の先読みデータでクライアントに代理応答する。
Description
本発明は、中継装置、中継方法及び中継プログラムに関する。
近年、ファイル共有システムでは、遠隔地のクライアントがサーバからファイルをダウンロード又は、サーバに対してファイルをアップロードできるシステムが知られている。そして、クライアントとサーバとの間のデータ要求からデータ取得までに要する処理速度を高速化する方法が求められている。
ファイル共有に使用するファイル共有プロトコルとしては、CIFS(Common Internet File System)/SMB(Server Message Block)等がある。CIFSでは、サーバとクライアントとの間で通信メッセージのネゴが多く、サーバとクライアントとの間の通信距離が長くなるに連れて、ネゴに要する処理時間が増える。その結果、サーバとクライアントとの間でファイル共有に関わるデータ要求から、当該データ要求に対するデータ取得までの処理速度が低下してしまう。
そこで、このような事態に対処すべく、データ要求からデータ取得までの処理速度の高速化を図るべく高速伝送システムが知られている。図7は、中継処理に関わる高速伝送システム200の処理動作の一例を示すシーケンス図である。図7に示す高速伝送システム200は、サーバ201と、サーバ側中継装置202と、クライアント側中継装置203と、クライアント204とを有する。
クライアント204は、情報取得コマンド(GetInfo)をクライアント側中継装置203に送信する(ステップS201)。クライアント側中継装置203は、受信した情報取得コマンドをサーバ側中継装置202に送信する(ステップS202)。サーバ側中継装置202は、受信した情報取得コマンドをサーバ201に送信する(ステップS203)。
サーバ201は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置202に送信する(ステップS204)。サーバ側中継装置202は、受信した情報取得応答をクライアント側中継装置203に送信する(ステップS205)。更に、クライアント側中継装置203は、受信した情報取得応答をクライアント204に送信する(ステップS206)。
クライアント204は、情報取得応答に応じて読出しコマンド(read0-99)をクライアント側中継装置203に送信する(ステップS207)。クライアント側中継装置203は、読出しコマンド(read0-99)を受信した場合、その読出しコマンド(read0-99)をサーバ側中継装置202に送信する(ステップS208)。サーバ側中継装置202は、読出しコマンド(read0-99)を受信した場合、その読出しコマンド(read0-99)をサーバ201に送信する(ステップS209)。
サーバ201は、読出しコマンド(read0-99)に応じてデータ(data0-99)を読み出し、読み出したデータ(data0-99)をサーバ側中継装置202に送信する(ステップS210)。更に、サーバ側中継装置202は、データ(data0-99)をクライアント側中継装置203に送信する(ステップS211)。更に、クライアント側中継装置203は、データ(data0-99)をクライアント204に送信する(ステップS212)。
また、サーバ側中継装置202は、ステップS211にてデータ(data0-99)をクライアント側中継装置203に送信した場合、先読みコマンド(read100-199)をサーバ201に送信する(ステップS213)。サーバ201は、先読みコマンド(read100-199)に応じてデータ(data100-199)を読み出し、読み出したデータ(data100-199)をサーバ側中継装置202に送信する(ステップS214)。更に、サーバ側中継装置202は、データ(data100-199)をクライアント側中継装置203に送信する(ステップS215)。
また、サーバ側中継装置202は、ステップS215にてデータ(data100-199)をクライアント側中継装置203に送信した場合、先読みコマンド(read200-299)をサーバ201に送信する(ステップS216)。サーバ201は、先読みコマンド(read200-299)に応じてデータ(data200-299)を読み出し、読み出したデータ(data200-299)をサーバ側中継装置202に送信する(ステップS217)。更に、サーバ側中継装置202は、データ(data200-299)をクライアント側中継装置203に送信する(ステップS218)。
また、サーバ側中継装置202は、ステップS218にてデータ(data200-299)をクライアント側中継装置203に送信した場合、先読みコマンド(read300-399)をサーバ201に送信する(ステップS219)。サーバ201は、先読みコマンド(read300-399)に応じてデータ(data300-399)を読み出し、読み出したデータ(data300-399)をサーバ側中継装置202に送信する(ステップS220)。更に、サーバ側中継装置202は、データ(data300-399)をクライアント側中継装置203に送信する(ステップS221)。
また、サーバ側中継装置202は、ステップS221にてデータ(data300-399)をクライアント側中継装置203に送信した場合、先読みコマンド(read400-499)をサーバ201に送信する(ステップS222)。サーバ201は、先読みコマンド(read400-499)に応じてデータ(data400-499)を読み出し、読み出したデータ(data400-499)をサーバ側中継装置202に送信する(ステップS223)。更に、サーバ側中継装置202は、データ(data400-499)をクライアント側中継装置203に送信する(ステップS224)。
また、クライアント204は、ステップS212にてデータ(data0-99)を受信した場合、読出しコマンド(read100-199)をクライアント側中継装置203に送信する(ステップS225)。クライアント側中継装置203は、読出しコマンド(read100-199)に応じて、ステップS215で受信したデータ(data100-199)を代理応答としてクライアント204に送信する(ステップS226)。
クライアント204は、ステップS226にてデータ(data100-199)を受信した場合、読出しコマンド(read200-299)をクライアント側中継装置203に送信する(ステップS227)。クライアント側中継装置203は、読出しコマンド(read200-299)に応じて、受信したデータ(data200-299)を代理応答としてクライアント204に送信する(ステップS228)。
クライアント204は、ステップS228にてデータ(data200-299)を受信した場合、読出しコマンド(read300-399)をクライアント側中継装置203に送信する(ステップS229)。クライアント側中継装置203は、読出しコマンド(read300-399)に応じて、受信したデータ(data300-399)を代理応答としてクライアント204に送信する(ステップS230)。
クライアントは、ステップS230にてデータ(data300-399)を受信した場合、読出しコマンド(read400-499)をクライアント側中継装置203に送信する(ステップS231)。クライアント側中継装置203は、読出しコマンド(read400-499)に応じて、受信したデータ(data400-499)を代理応答としてクライアント204に送信する(ステップS232)。クライアント204は、サーバ201から所望のデータが取得し終えるまで、これら一連の処理を繰り返し実行する。
サーバ側中継装置202では、クライアント204からの読出しコマンドに応じて先読みコマンドをサーバ201に要求し、その先読みコマンドで得たデータをクライアント側中継装置203に送信する。更に、クライアント側中継装置203は、クライアント204からの読出しコマンドに応じて先読みコマンドで得たデータをクライアント204に順次送信する。その結果、データ要求からデータ取得までに要する処理速度を高速化できる。
図8は、中継処理に関わる高速伝送システム300の処理動作の一例を示すシーケンス図である。図8に示す高速伝送システム300は、サーバ301と、サーバ側中継装置302と、クライアント側中継装置303と、クライアント304とを有する。
クライアント304は、1度目の読出しコマンド(read0-99)をクライアント側中継装置303に送信する(ステップS301)。クライアント側中継装置303は、受信した読出しコマンド(read0-99)をサーバ側中継装置302に送信する(ステップS302)。サーバ側中継装置302は、受信した読出しコマンド(read0-99)をサーバ301に送信する(ステップS303)。サーバ301は、読出しコマンド(read0-99)に応じてデータ(data0-99)を読み出し、読み出したデータ(data0-99)をサーバ側中継装置302に送信する(ステップS304)。サーバ側中継装置302は、データ(data0-99)をクライアント側中継装置303に送信する(ステップS305)。クライアント側中継装置303は、受信したデータ(data0-99)をキャッシュにキャッシュし(ステップS306)、キャッシュ中のデータ(data0-99)をクライアント304に送信する(ステップS307)。
また、クライアント304は、2度目の読出しコマンド(read0-99)をクライアント側中継装置303に送信する(ステップS308)。クライアント側中継装置303は、読出しコマンド(read0-99)を受信した場合、キャッシュにキャッシュ中のデータ(data0-99)をクライアント304に送信する(ステップS309)。
クライアント側中継装置303では、クライアント304からの2度目以降の読出しコマンドを検出した場合、サーバ301に読出しコマンドを転送することなく、キャッシュにキャッシュ中のデータをクライアント304に送信する。その結果、データ要求からデータ取得までに要する処理速度を高速化できる。
しかしながら、図7に示す高速伝送システム200では、ステップS207のクライアント204の読出しコマンド送信開始からステップS212の読出しコマンドに対応する読出しデータを取得するまでの期間は先読みデータがない状態となる。つまり、クライアント側中継装置203は、ステップS212にてサーバ側中継装置202から先読みデータが得られるまでの期間は待機中になる。その結果、データ要求からデータ取得までに要する処理速度を高速化できない。
図8に示す高速伝送システム300内のクライアント側中継装置303では、1度目のデータ要求(読出しコマンド)に応じて読出しデータをキャッシュに保存し、2度目以降のデータ要求ではキャッシュにキャッシュ中のデータをクライアント304に送信する。しかしながら、クライアント側中継装置303では、キャッシュ内のダウンロード対象のデータが1度目と2度目とで同一データであることが前提となるため、キャッシュ内の更新有無を判定する仕組みが必要となる。
一つの側面では、データ要求からデータ取得までに要する処理速度を高速化できる中継装置、中継方法及び中継プログラムを提供することを目的とする。
一つの態様では、中継装置は、第1の通信装置と接続する第1の中継装置と、第2の通信装置と接続する第2の中継装置とを有する。中継装置は、第2の通信装置からのデータ要求に応じて第1の通信装置からデータを読み出し、その読み出したデータを第2の通信装置に中継する。第1の中継装置は、要求部と、制御部と、通知部とを有する。要求部は、第2の通信装置からの要求に応じて第1の通信装置に対してデータの先読みを要求する。制御部は、要求部の先読み要求で得た先読みデータを第1のキャッシュにキャッシュする。通知部は、第2の通信装置から次回の要求に応じて、要求部で第1の通信装置に対してデータの先読みを要求し、先読み要求で得た先読みデータと第1のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を第2の中継装置に通知する。第2の中継装置は、第2のキャッシュと、応答部とを有する。第2のキャッシュは、第1のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする。応答部は、所定信号を検出した場合に、第2の通信装置からのデータ要求に応じて第2のキャッシュにキャッシュ中の先読みデータで第2の通信装置に対して代理応答する。
一つの側面として、データ要求からデータ取得までに要する処理速度を高速化できる。
以下、図面に基づいて、本願の開示する中継装置、中継方法及び中継プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す各実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
図1は、本実施例の高速伝送システム1の一例を示す説明図である。図1に示す高速伝送システム1は、サーバ2と、サーバ側中継装置3と、クライアント側中継装置4と、クライアント5とを有する。尚、サーバ側中継装置3とクライアント側中継装置4との間は、例えば、インターネットやLAN(Local Area Network)等の通信網6で接続されている。サーバ2とクライアント5との間のデータ通信は、例えば、CIFS/SMBの通信プロトコルを使用するものとする。
サーバ2は、クライアント5が要求する、例えばダウンロードデータが格納されたデータベースを管理するコンピュータ等の第1の通信装置である。サーバ側中継装置3は、サーバ2に接続すると共に、通信網6と接続する第1の中継装置である。尚、説明の便宜上、サーバ側中継装置3は、例えば、サーバ2近傍に配置されるものとするが、例えば、サーバ2内部に内蔵しても良いし、サーバ2内部の図示せぬCPUで展開するアプリケーションであっても良い。サーバ側中継装置3は、通信部11と、メモリ12と、記憶部13と、CPU(Central Processing Unit)14と、第1の高速化部15とを有する。通信部11は、サーバ2との間及び、通信網6との間の通信を司る通信インタフェースである。記憶部13は、各種情報を記憶する領域である。メモリ12は、各種情報を記憶し、CPU14の処理を実行する作業領域である。尚、メモリ12には、後述する先頭データをキャッシュする第1のキャッシュ12Aを有する。CPU14は、サーバ側中継装置3全体を制御する。第1の高速化部15は、サーバ2側の中継処理を実現するアプリケーションである。
第1の高速化部15は、要求部21と、第1の制御部22と、通知部23とを有する。要求部21は、サーバ2から情報取得コマンドに対する情報取得応答をクライアント側中継装置4に送信する際に、先頭データの先読みを要求する初回先読みコマンドをサーバ2に要求する。尚、初回先読みコマンドは、例えば、先頭データ(data0-399)の先読みを要求するコマンドである。また、要求部21は、次のデータ(例えば、data400-499)の先読みを要求する先読みコマンドをサーバ2に要求する。
第1の制御部22は、第1のキャッシュ12Aを制御する。第1の制御部22は、第1のキャッシュ12A内に先読みの先頭データがない場合、初回先読みコマンドで取得した先読みの先頭データを第1のキャッシュ12Aにキャッシュする。
通知部23は、要求部21にて初回先読みコマンドに応じて先頭データを取得した場合、取得した先読みの先頭データと第1のキャッシュ12Aにキャッシュ中の先頭データとを比較する。通知部23は、取得した先頭データと第1のキャッシュ12Aにキャッシュ中の先頭データとが一致する場合、クライアント側中継装置4に対してキャッシュOKを通知する。尚、キャッシュOKは、クライアント側中継装置4内の後述する第2のキャッシュ32Aにキャッシュ中の先頭データを利用してクライアント5に代理応答すべく、第2のキャッシュ32Aのキャッシュデータの利用を許可する所定信号である。
通知部23は、取得した先頭データと第1のキャッシュ12Aにキャッシュ中の先頭データとが一致しない場合、クライアント側中継装置4にキャッシュNGを通知する。尚、キャッシュNGは、クライアント側中継装置4内の第2のキャッシュ32Aにキャッシュを利用してのクライアント5への代理応答を禁止すべく、第2のキャッシュ32Aのキャッシュデータの利用を禁止する信号である。
クライアント5は、例えば、パソコン等のクライアント5近傍の第2の通信装置である。クライアント側中継装置4は、クライアント5に接続すると共に、通信網6と接続する第2の中継装置である。尚、説明の便宜上、クライアント側中継装置4は、例えば、クライアント5近傍に配置されるものとするが、例えば、クライアント5内部に内蔵しても良いし、クライアント5内部の図示せぬCPUで展開するアプリケーションであっても良い。クライアント側中継装置4は、通信部31と、メモリ32と、記憶部33と、CPU34と、第2の高速化部35とを有する。通信部31は、クライアント5との間及び、通信網6との間の通信を司る通信インタフェースである。記憶部33は、各種情報を記憶する領域である。メモリ32は、各種情報を記憶し、CPU34の処理を実行する作業領域である。尚、メモリ32には、第2のキャッシュ32Aを有する。CPU34は、クライアント側中継装置4全体を制御する。第2の高速化部35は、クライアント5側の中継処理を実現するアプリケーションである。
第2の高速化部35は、第2の制御部41と、応答部42とを有する。第2の制御部41は、第2のキャッシュ32Aを制御する。第2の制御部41は、サーバ側中継装置3内の第1のキャッシュ12Aにキャッシュ中の先頭データを第2のキャッシュ32Aにキャッシュする。第2のキャッシュ32Aのキャッシュ量は、クライアント5から1回目の読出しコマンドの送信から当該読出しコマンドに対応するデータをサーバ2から取得するまでの処理に要するRTT(Round Trip Time)以上、クライアント5に対する代理応答が可能な先読みデータ量である。すなわち、第2のキャッシュ32Aのキャッシュ量は、クライアント5の読出しコマンドの速度(bps)×RTT(msec)×1000で算出できる。尚、説明の便宜上、第2のキャッシュ32Aは、第1のキャッシュ12Aにキャッシュ中の先読みの先頭データ(data0-399)をキャッシュしているものとする。応答部42は、第2のキャッシュ32A内に先頭データがある場合、クライアント5からの読出しコマンドに応じて第2のキャッシュ32A内の先頭データをクライアント5に対して代理応答する。
次に本実施例の高速伝送システム1の動作について説明する。図2は、キャッシュ空時の中継処理に関わる高速伝送システム1の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置3内の第1のキャッシュ12A及びクライアント側中継装置4内の第2のキャッシュ32A内には、先頭データがキャッシュされていない空の状態となる。
クライアント5は、情報取得コマンドをクライアント側中継装置4に送信する(ステップS31)。クライアント側中継装置4は、受信した情報取得コマンドをサーバ側中継装置3に送信する(ステップS32)。サーバ側中継装置3は、受信した情報取得コマンドをサーバ2に送信する(ステップS33)。
サーバ2は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置3に送信する(ステップS34)。サーバ側中継装置3は、受信した情報取得応答をクライアント側中継装置4に送信する(ステップS35)。更に、クライアント側中継装置4は、受信した情報取得応答をクライアント5に送信する(ステップS36)。
サーバ側中継装置3は、ステップS35にて情報取得応答をクライアント側中継装置4に送信する場合、初回先読みコマンド(read0-399)をサーバ2に要求する(ステップS37)。サーバ2は、初回先読みコマンド(read0-399)に応じて先頭データ(data0-399)を読み出し、読み出した先頭データ(data0-399)をサーバ側中継装置3に送信する(ステップS38)。
サーバ側中継装置3は、第1のキャッシュ12A内に先頭データがないため、ステップS38で受信した先頭データ(data0-399)を第1のキャッシュ12Aにキャッシュする(ステップS39)。その結果、第1のキャッシュ12A内には、先頭データ(data0-399)が格納されることになる。
クライアント5は、ステップS36にて情報取得応答を受信した場合、読出しコマンド(read0-99)をクライアント側中継装置4に送信する(ステップS40)。クライアント側中継装置4は、受信した読出しコマンド(read0-99)をサーバ側中継装置3に送信する(ステップS41)。
サーバ側中継装置3は、ステップS41にて読出しコマンド(read0-99)を受信した場合、読出しコマンド(read0-99)に対応するデータ(data0-99)を第1のキャッシュ12Aから読み出す。そして、サーバ側中継装置3は、読み出したデータ(data0-99)をクライアント側中継装置4に送信する(ステップS42)。そして、クライアント側中継装置4は、受信したデータ(data0-99)を第2のキャッシュ32Aにキャッシュすると共に(ステップS43)、そのデータ(data0-99)をクライアント5に送信する(ステップS44)。
サーバ側中継装置3は、ステップS42にて第1のキャッシュ12Aにキャッシュ中のデータ(data0-99)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data100-199)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data100-199)をクライアント側中継装置4に送信する(ステップS45)。そして、クライアント側中継装置4は、受信した(data100-199)を第2のキャッシュ32Aにキャッシュする(ステップS43A)。
サーバ側中継装置3は、ステップS45にて第1のキャッシュ12Aにキャッシュ中のデータ(data100-199)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data200-299)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data200-299)をクライアント側中継装置4に送信する(ステップS46)。そして、クライアント側中継装置4は、受信したデータ(data200-299)を第2のキャッシュ32Aにキャッシュする(ステップS43B)。
サーバ側中継装置3は、ステップS46にて第1のキャッシュ12Aにキャッシュ中のデータ(data200-299)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data300-399)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data300-399)をクライアント側中継装置4に送信する(ステップS47)。そして、クライアント側中継装置4は、受信した(data300-399)を第2のキャッシュ32Aにキャッシュする(ステップS43C)。その結果、第2のキャッシュ32Aには、第1のキャッシュ12Aと同一の先頭データ(data0-399)がキャッシュされたことになる。
また、クライアント5は、ステップS44にてデータ(data0-99)を受信した場合、次の読出しコマンド(read100-199)をクライアント側中継装置4に送信する(ステップS48)。クライアント側中継装置4は、受信した読出しコマンド(read100-199)に対応するデータ(data100-199)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data100-199)を代理応答としてクライアント5に送信する(ステップS49)。
また、クライアント5は、ステップS49にてデータ(data100-199)を受信した場合、次の読出しコマンド(read200-299)をクライアント側中継装置4に送信する(ステップS50)。クライアント側中継装置4は、受信した読出しコマンド(read200-299)に対応するデータ(data200-299)を第2のキャッシュ32Aから読み出す。クライアント側中継装置4は、読み出したデータ(data200-299)を代理応答としてクライアント5に送信する(ステップS51)。
また、クライアント5は、ステップS51にてデータ(data200-299)を受信した場合、次の読出しコマンド(read300-399)をクライアント側中継装置4に送信する(ステップS52)。クライアント側中継装置4は、受信した読出しコマンド(read300-399)に対応するデータ(data300-399)を第2のキャッシュ32Aから読み出す。クライアント側中継装置4は、読み出したデータ(data300-399)を代理応答としてクライアント5に送信する(ステップS53)。
また、サーバ側中継装置3は、ステップS53にてデータ(data300-399)をクライアント側中継装置4に送信した後、先読みコマンド(read400-499)をサーバ2に送信する(ステップS54)。サーバ2は、先読みコマンド(read400-499)に応じてデータ(data400-499)を読み出し、読み出したデータ(data400-499)をサーバ側中継装置3に送信する(ステップS55)。
更に、サーバ側中継装置3は、読み出しデータ(data400-499)をクライアント側中継装置4に送信する(ステップS56)。そして、クライアント5は、ステップS53にて代理応答(data300-399)を受信した場合、次の読出しコマンド(read400-499)をクライアント側中継装置4に送信する(ステップS57)。クライアント側中継装置4は、読出しコマンド(read400-499)に対する受信データ(data400-499)を代理応答としてクライアント5に送信する(ステップS58)。クライアント5は、サーバ2に対して所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行することになる。
図2に示すサーバ側中継装置3は、情報取得コマンドの情報取得応答をクライアント側中継装置4に送信した場合に初回先読みコマンドをサーバ2に要求し、初回先読みコマンドに対応する先読みデータを取得する。更に、サーバ側中継装置3は、第1のキャッシュ12Aが空の場合、その取得した先読みデータを第1のキャッシュ12Aにキャッシュする。更に、クライアント側中継装置4は、第1のキャッシュ12Aから先読みデータを順次取得し、順次取得した先読みデータを第2のキャッシュ32Aにキャッシュする。その結果、サーバ側中継装置3内の第1のキャッシュ12A及びクライアント側中継装置4内の第2のキャッシュ32Aは、同一の先読みデータをキャッシュできる。そして、クライアント側中継装置4は、第2のキャッシュ32Aにキャッシュ中の先頭データを使用してクライアント5に対して代理応答ができるため、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。
図3は、キャッシュOK時の中継処理に関わる高速伝送システム1の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置3内の第1のキャッシュ12A及びクライアント側中継装置4内の第2のキャッシュ32A内には同一の先頭データ(data0-399)がキャッシュされているものとする。
クライアント5は、情報取得コマンドをクライアント側中継装置4に送信する(ステップS61)。クライアント側中継装置4は、受信した情報取得コマンドをサーバ側中継装置3に送信する(ステップS62)。サーバ側中継装置3は、受信した情報取得コマンドをサーバ2に送信する(ステップS63)。
サーバ2は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置3に送信する(ステップS64)。サーバ側中継装置3は、受信した情報取得応答をクライアント側中継装置4に送信する(ステップS65)。更に、クライアント側中継装置4は、受信した情報取得応答を受信する(ステップS66)。
サーバ側中継装置3は、ステップS65にて情報取得応答をクライアント側中継装置4に送信した場合、初回先読みコマンド(read0-399)をサーバ2に送信する(ステップS67)。サーバ2は、初回先読みコマンド(read0-399)に応じて先頭データ(data0-399)を読み出し、読み出した先頭データ(data0-399)をサーバ側中継装置3に送信する(ステップS68)。
サーバ側中継装置3は、受信した先頭データ(data0-399)と第1のキャッシュ12Aにキャッシュ中の先頭データとを比較する。サーバ側中継装置3は、受信した先頭データが第1のキャッシュ12Aにキャッシュ中の先頭データと一致した場合、キャッシュOKをクライアント側中継装置4に送信する(ステップS69)。
クライアント5は、ステップS66にて情報取得応答を受信した場合、読出しコマンド(read0-99)をクライアント側中継装置4に送信する(ステップS70)。クライアント側中継装置4は、受信した読出しコマンド(read0-99)をサーバ側中継装置3に送信する(ステップS71)。
クライアント側中継装置4は、ステップS69にてキャッシュOKを受信した場合、第2のキャッシュ32Aにキャッシュ中の先頭データで代理応答する。つまり、クライアント側中継装置4は、ステップS70にて読出しコマンド(read0-99)を受信した場合、読出しコマンド(read0-99)に対応するデータ(data0-99)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data0-99)をクライアント5に送信する(ステップS72)。
また、クライアント5は、ステップS72にてデータ(data0-99)を受信した場合、次の読出しコマンド(read100-199)をクライアント側中継装置4に送信する(ステップS73)。クライアント側中継装置4は、読出しコマンド(read100-199)を受信した場合、読出しコマンド(read100-199)に対応するデータ(data100-199)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data100-199)を代理応答としてクライアント5に送信する(ステップS74)。
また、クライアント5は、ステップS74にてデータ(data100-199)を受信した場合、次の読出しコマンド(read200-299)をクライアント側中継装置4に送信する(ステップS75)。クライアント側中継装置4は、読出しコマンド(read200-299)に対応するデータ(data200-299)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data200-299)を代理応答としてクライアント5に送信する(ステップS76)。
また、クライアント5は、ステップS76にてデータ(data200-299)を受信した場合、次の読出しコマンド(read300-399)をクライアント側中継装置4に送信する(ステップS77)。クライアント側中継装置4は、読出しコマンド(read300-399)に対応するデータ(data300-399)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data300-399)を代理応答としてクライアント5に送信する(ステップS78)。
また、サーバ側中継装置3は、ステップS71にて読出しコマンド(read0-99)を受信した後、先読みコマンド(read400-499)をサーバ2に送信する(ステップS79)。サーバ2は、先読みコマンド(read400-499)に応じてデータ(data400-499)を読み出し、読み出したデータ(data400-499)をサーバ側中継装置3に送信する(ステップS80)。
更に、サーバ側中継装置3は、読み出しデータ(data400-499)をクライアント側中継装置4に送信する(ステップS81)。そして、クライアント5は、ステップS78にて代理応答(data300-399)を受信した場合、読出しコマンド(read400-499)をクライアント側中継装置4に送信する(ステップS82)。クライアント側中継装置4は、読出しコマンド(read400-499)に対する受信データ(data400-499)を代理応答としてクライアント5に送信する(ステップS83)。クライアント5は、サーバ2から所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行する。
図3に示すサーバ側中継装置3は、初回先読みコマンドに応じて取得した先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとを比較する。サーバ側中継装置3は、先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが一致した場合にキャッシュOKをクライアント側中継装置4に通知する。クライアント側中継装置4は、キャッシュOKを受信した場合、クライアント5からの読出しコマンドに応じて第2のキャッシュ32Aにキャッシュ中の先読みデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。初回段階に限定されることなく、クライアント5とサーバ2との間のデータ要求からデータ取得までの処理速度を高速化できる。
図4は、キャッシュNG時の中継処理に関わる高速伝送システム1の処理動作の一例を示すシーケンス図である。尚、説明の便宜上、サーバ側中継装置3内の第1のキャッシュ12A及びクライアント側中継装置4内の第2のキャッシュ32A内には先頭データがキャッシュされているものとする。
クライアント5は、情報取得コマンドをクライアント側中継装置4に送信する(ステップS91)。クライアント側中継装置4は、受信した情報取得コマンドをサーバ側中継装置3に送信する(ステップS92)。サーバ側中継装置3は、受信した情報取得コマンドをサーバ2に送信する(ステップS93)。
サーバ2は、受信した情報取得コマンドに対応する情報取得応答をサーバ側中継装置3に送信する(ステップS94)。サーバ側中継装置3は、受信した情報取得応答をクライアント側中継装置4に送信する(ステップS95)。更に、クライアント側中継装置4は、受信した情報取得応答をクライアント5に送信する(ステップS96)。
サーバ側中継装置3は、ステップS95にて情報取得応答をクライアント側中継装置4に送信した場合、初回先読みコマンド(read0-399)をサーバ2に要求する(ステップS97)。サーバ2は、初回先読みコマンド(read0-399)に応じて先頭データ(data0-399)を読み出し、読み出した先頭データ(data0-399)をサーバ側中継装置3に送信する(ステップS98)。
サーバ側中継装置3は、受信した先頭データ(data0-399)と第1のキャッシュ12Aにキャッシュ中の先頭データとを比較する。サーバ側中継装置3は、受信した先頭データが第1のキャッシュ12Aにキャッシュ中の先頭データと異なる場合、キャッシュNGをクライアント側中継装置4に送信する(ステップS99)。サーバ側中継装置3は、受信した先頭データ(data0-399)を第1のキャッシュ12Aにキャッシュ更新する(ステップS100)。クライアント側中継装置4は、サーバ側中継装置3からキャッシュNGを受信した場合、第2のキャッシュ32Aのキャッシュ内容を消去する。
そして、クライアント5は、ステップS96にて情報取得応答を受信した場合、読出しコマンド(read0-99)をクライアント側中継装置4に送信する(ステップS101)。クライアント側中継装置4は、受信した読出しコマンド(read0-99)をサーバ側中継装置3に送信する(ステップS102)。
サーバ側中継装置3は、ステップS102にて読出しコマンド(read0-99)を受信した場合、読出しコマンド(read0-99)に対応するデータ(data0-99)を第1のキャッシュ12Aから読み出す。そして、サーバ側中継装置3は、読み出したデータ(data0-99)をクライアント側中継装置4に送信する(ステップS103)。そして、クライアント側中継装置4は、受信したデータ(data0-99)を第2のキャッシュ32Aにキャッシュすると共に(ステップS104)、そのデータ(data0-99)をクライアント5に送信する(ステップS105)。
サーバ側中継装置3は、ステップS103にて第1のキャッシュ12Aにキャッシュ中のデータ(data0-99)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data100-199)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data100-199)をクライアント側中継装置4に送信する(ステップS106)。そして、クライアント側中継装置4は、受信したデータ(data100-199)を第2のキャッシュ31Aにキャッシュする(ステップS104A)。
サーバ側中継装置3は、ステップS106にて第1のキャッシュ12Aにキャッシュ中のデータ(data100-199)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data200-299)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data200-299)をクライアント側中継装置4に送信する(ステップS107)。そして、クライアント側中継装置4は、受信したデータ(data200-299)を第2のキャッシュ32Aにキャッシュする(ステップS104B)。
サーバ側中継装置3は、ステップS107にて第1のキャッシュ12Aにキャッシュ中のデータ(data200-299)をクライアント側中継装置4に送信した後、第1のキャッシュ12Aにキャッシュ中のデータ(data300-399)を読み出す。そして、サーバ側中継装置3は、読み出したデータ(data300-399)をクライアント側中継装置4に送信する(ステップS108)。そして、クライアント側中継装置4は、受信したデータ(data300-399)を第2のキャッシュ32Aにキャッシュする(ステップS104C)。その結果、第2のキャッシュ32Aには、第1のキャッシュ12Aと同一の先頭データ(data0-399)をキャッシュした状態となる。
また、クライアント5は、ステップS105にてデータ(data0-99)を受信した場合、次の読出しコマンド(read100-199)をクライアント側中継装置4に送信する(ステップS109)。クライアント側中継装置4は、読出しコマンド(read100-199)を受信した場合、読出しコマンド(read100-199)に対応するデータ(data100-199)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data100-199)を代理応答としてクライアント5に送信する(ステップS110)。
また、クライアント5は、ステップS110にてデータ(data100-199)を受信した場合、次の読出しコマンド(read200-299)をクライアント側中継装置4に送信する(ステップS111)。クライアント側中継装置4は、読出しコマンド(read200-299)を受信した場合、読出しコマンド(read200-299)に対応するデータ(data200-299)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data200-299)を代理応答としてクライアント5に送信する(ステップS112)。
また、クライアント5は、ステップS112にてデータ(data200-299)を受信した場合、次の読出しコマンド(read300-399)をクライアント側中継装置4に送信する(ステップS113)。クライアント側中継装置4は、読出しコマンド(read300-399)を受信した場合、読出しコマンド(read300-399)に対応するデータ(data300-399)を第2のキャッシュ32Aから読み出す。そして、クライアント側中継装置4は、読み出したデータ(data300-399)を代理応答としてクライアント5に送信する(ステップS114)。
また、サーバ側中継装置3は、ステップS108にてデータ(data300-399)をクライアント側中継装置4に送信した後、先読みコマンド(read400-499)をサーバ2に送信する(ステップS115)。サーバ2は、先読みコマンド(read400-499)に応じてデータ(data400-499)を読み出し、読み出したデータ(data400-499)をサーバ側中継装置3に送信する(ステップS116)。
更に、サーバ側中継装置3は、読み出したデータ(data400-499)をクライアント側中継装置4に送信する(ステップS117)。また、クライアント5は、ステップS114にて代理応答(data300-399)を受信した場合、読出しコマンド(read400-499)をクライアント側中継装置4に送信する(ステップS118)。クライアント側中継装置4は、読出しコマンド(read400-499)に対する受信データ(data400-499)を代理応答としてクライアント5に送信する(ステップS119)。クライアント5は、サーバ2から所望の全てのデータを取得できるまで、これら一連の処理を繰り返し実行する。
図4に示すサーバ側中継装置3は、初回先読みコマンドに応じて取得した今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとを比較する。サーバ側中継装置3は、今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが一致しなかった場合にキャッシュNGをクライアント側中継装置4に通知する。サーバ側中継装置3は、今回の先読みデータを第1のキャッシュにキャッシュ更新する。そして、クライアント側中継装置4は、キャッシュ更新後の第1のキャッシュ12Aから先読みデータを順次取得し、順次取得した先読みデータを第2のキャッシュ32Aにキャッシュ更新する。その結果、サーバ側中継装置3内の第1のキャッシュ12A及びクライアント側中継装置4内の第2のキャッシュ32Aは、同一の先読みデータをキャッシュできる。そして、クライアント側中継装置4は、第2のキャッシュ32Aにキャッシュ中の先頭データを使用してクライアント5に対して代理応答ができるため、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。
図5は、中継処理に関わるサーバ側中継装置3の処理動作の一例を示すフローチャートである。図5においてサーバ側中継装置3内の第1高速化部15は、クライアント側中継装置4から情報取得コマンドを受信したか否かを判定する(ステップS11)。第1の高速化部15は、情報取得コマンドを受信した場合(ステップS11肯定)、情報取得コマンドをサーバ2に送信する(ステップS12)。
第1の高速化部15は、情報取得コマンドに対する情報取得応答をサーバ2から受信したか否かを判定する(ステップS13)。第1の高速化部15は、情報取得応答を受信した場合(ステップS13肯定)、情報取得応答をクライアント側中継装置4に送信する(ステップS14)。
第1の高速化部15内の要求部21は、初回先読みコマンドをサーバ2に送信し(ステップS15)、初回先読みコマンドに対する先読みデータを受信したか否かを判定する(ステップS16)。第1の高速化部15内の第1の制御部22は、先読みデータを受信した場合(ステップS16肯定)、第1のキャッシュ12A内に先頭データがあるか否かを判定する(ステップS17)。
第1の高速化部15内の通知部23は、第1のキャッシュ12A内に先頭データがある場合(ステップS17肯定)、第1のキャッシュ12A内の先頭データと受信した先読みデータとを比較する(ステップS18)。通知部23は、第1のキャッシュ12A内の先頭データと受信した先読みデータとが一致しているか否かを判定する(ステップS19)。
通知部23は、第1のキャッシュ12A内の先頭データと受信した先読みデータとが一致している場合、キャッシュOKをクライアント側中継装置4に通知する(ステップS20)。要求部21は、クライアント側中継装置4から読出しコマンドを受信したか否かを判定する(ステップS21)。要求部21は、読出しコマンドを受信した場合(ステップS21肯定)、続きのデータの先読みコマンドをサーバ2に送信する(ステップS22)。
第1の高速化部15は、先読みコマンドに対する先読みデータを受信したか否かを判定する(ステップS23)。第1の高速化部15は、先読みデータを受信した場合(ステップS23肯定)、受信した先読みデータをクライアント側中継装置4に送信する(ステップS24)。そして、第1の高速化部15は、先読みデータがなしか否かを判定する(ステップS25)。第1の高速化部15は、先読みデータがなしの場合(ステップS25肯定)、図5に示す処理動作を終了する。
第1の高速化部15は、先読みデータがなしでない場合(ステップS25否定)、続きデータの先読みコマンドをサーバ2に送信すべく、ステップS22に移行する。第1の高速部15は、クライアント側中継装置4から情報取得コマンドを受信しなかった場合(ステップS11否定)、図5に示す処理動作を終了する。第1の高速化部15は、サーバから情報取得応答を受信しなかった場合(ステップS13否定)、情報取得応答を受信したか否かを判定すべく、ステップS13に移行する。
第1の高速化部15は、初回先読みコマンドに対する先読みデータを受信しなかった場合(ステップS16否定)、初回先読みコマンドに対する先読みデータを受信したか否かを判定すべく、ステップS16に移行する。
第1の制御部22は、第1のキャッシュ12A内に先頭データがない場合(ステップS17否定)、先読みの先頭データを第1のキャッシュ12A内に更新する(ステップS26)。そして、第1の高速化部15は、第1のキャッシュ12A内の先読みデータをクライアント側中継装置4に送信し(ステップS27)、先読みデータなしであるか否かを判定すべく、ステップS25に移行する。
第1の制御部22は、比較結果が一致していない場合(ステップS19否定)、先読みの先頭データを第1のキャッシュ12Aに更新すべく、ステップS26に移行する。第1の高速化部15は、クライアント側中継装置から読出しコマンドを受信しなかった場合(ステップS21否定)、読出しコマンドを受信したか否かを判定すべく、ステップS21に移行する。第1の高速化部15は、先読みコマンドに対する先読みデータを受信しなかった場合(ステップS23否定)、先読みコマンドに対する先読みデータを受信したか否かを判定すべく、ステップS23に移行する。
サーバ側中継装置3は、初回先読みコマンドに応じて取得した先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとを比較する。サーバ側中継装置3は、先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが一致した場合にキャッシュOKをクライアント側中継装置4に通知する。クライアント側中継装置4は、キャッシュOKを受信した場合、クライアント5からの読出しコマンドに応じて第2のキャッシュ32Aにキャッシュ中のデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。
本実施例の高速伝送システム1内のサーバ側中継装置3は、初回先読みコマンドに応じて取得した今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとを比較する。サーバ側中継装置3は、今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが一致した場合にキャッシュOKをクライアント側中継装置4に通知する。クライアント側中継装置4は、キャッシュOKを受信した場合、クライアント5からの読出しコマンドに応じて第2のキャッシュ32Aにキャッシュ中のデータで代理応答する。その結果、初回段階でのデータ要求からデータ取得までの処理速度を高速化できる。
高速伝送システム1では、遠隔地間のファイル共有システムに適用した場合、データ要求からデータ取得までの処理速度(ダウンロード速度)を高速化する。そして、高速伝送システム1は、ダウンロード対象のデータサイズが小さくなるに連れてデータ要求からデータ取得までの処理速度の高速化の効果が大きくなる。例えば、クライアント5とサーバ2との間のRTTが100m秒で100KByteのデータをダウンロードする場合に、その処理時間が0.2秒から0.1秒に短縮化できる。例えば、データ数が100個の場合、20秒が10秒に短縮化できる。
図8に示す従来の高速伝送システム300に比較して、クライアント側中継装置4では、ファイル全体をキャッシュする必要がないため、キャッシュに要するストレージ量を小さくできる。
上記実施例のサーバ側中継装置3では、初回先読みコマンドとして、0-399のデータの先読みをサーバ2に要求したが、先読みのデータ量は0-399に限定されるものではなく、適宜変更可能である。
第2のキャッシュ32Aは、第1のキャッシュ12Aにキャッシュ中の先頭データ0-399と同一のデータをキャッシュする場合を例示した。しかしながら、第2のキャッシュ32Aは、第1のキャッシュ12Aのキャッシュ中の先頭データの一部、例えば、0-299のデータをキャッシュする場合でも良く。前述したデータ要求からデータ取得までのRTTを考慮して適宜変更可能である。サーバ側中継装置3は、情報取得応答をクライアント側中継装置4に送信した場合に初回先読みコマンドをサーバ2に要求したが、このタイミングに限定されるものではなく、情報取得応答をサーバ2から受信したタイミングでも良く、適宜変更可能である。
サーバ側中継装置3は、要求部21で取得した今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが異なる場合に第1のキャッシュ12Aの内容を消去し、今回の先読みデータを第1のキャッシュ12Aにキャッシュした。しかしながら、サーバ側中継装置3は、今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが異なる場合に第1のキャッシュ12Aのキャッシュを消去せず、アラームをクライアント5に通知しても良い。また、サーバ側中継装置3は、今回の先読みデータと第1のキャッシュ12Aにキャッシュ中の先読みデータとが異なる場合に、所定条件を満たした場合にのみ、第1のキャッシュ12Aのキャッシュを消去し、今回の先読みデータを第1のキャッシュ12にキャッシュしても良い。
上記実施例では、サーバ2をコンピュータ等の通信装置としたが、サーバ2の各種機能や情報をクラウドコンピューティングで実現しても良い。
上記実施例の高速伝送システム1では、CIFS/SMBのファイル共有プロトコルを採用したが、これらに限定されるものではなく、例えば、NFS(Network File System)やAFP(Apple Filing Protocol)でも良く、適宜変更可能である。
高速伝送システム1では、ファイル共有プロトコルとしてCIFS/SMBを例示した。しかしながら、ファイル共有プロトコルに限定されるものではなく、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、MAPI(Messaging Application Programming Interface)のプロトコルにも適用可能である。また、IMAP(Internet Message Access Protocol)、POP(Post Office Protocol)、SMTP(Simple Mail Transfer Protocol)やLDAP(Lightweight Directory Access Protocol)のプロトコルにも適用可能である。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
更に、サーバ側中継装置3で行われる各種処理機能は、CPU(Central Processing Unit)(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、CPU(又はMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータ等の情報処理装置の一例を説明する。図6は、中継プログラムを実行する情報処理装置100の一例を示す説明図である。
図6において中継プログラムを実行する情報処理装置100では、通信部101と、キャッシュ102と、ROM103、RAM104、プロセッサ105、バス106とを有する。情報処理装置100は、第1の通信装置と接続すると共に、第2の通信装置からのデータ要求に応じてデータを第1の通信装置から読み出し、その読み出したデータを第2の通信装置に中継する。
そして、ROM103には、上記実施例と同様の機能を発揮する中継プログラムが予め記憶されている。尚、ROM103ではなく、図示せぬドライブで読取可能な記録媒体に処理プログラムが記録されていても良い。また、記録媒体としては、例えば、CD-ROM、DVDディスク、USBメモリ、SDカード等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。処理プログラムとしては、要求プログラム103A、制御プログラム103B及び通知プログラム103Cである。尚、要求プログラム103A、制御プログラム103B及び通知プログラム103Cについては、適宜統合又は分散しても良い。情報処理装置100が、これらの可搬用の物理媒体から中継プログラムを取得して実行するようにしても良い。また、公衆回線、インターネット、LAN、WAN等を介して情報処理装置100に接続される他のコンピュータ等に中継プログラムを記憶させておき、情報処理装置100がこれらから中継プログラムを取得して実行するようにしても良い。
そして、プロセッサ105は、これらの要求プログラム103A、制御プログラム103B及び通知プログラム103CをROM103から読み出し、これら読み出された各プログラムをRAM104上に展開する。プロセッサ105は、要求プログラム103A、制御プログラム103B及び通知プログラム103CをRAM104上で要求プロセス104A、制御プロセス104B及び通知プロセス104Cとして機能させる。尚、プロセッサ105では、必ずしも本実施例で示した全ての処理部が動作しなくてもよく、実行対象とする処理に対応する処理部が仮想的に実現されれば良い。
プロセッサ105は、第2の通信装置からの要求に応じて第1の通信装置に対してデータの先読みを要求する。プロセッサ105は、先読み要求で得た先読みデータをキャッシュ102にキャッシュする。プロセッサ105は、第2の通信装置から今回の要求に応じて第1の通信装置に対してデータの先読みを要求する。プロセッサ105は、先読み要求で得た今回の先読みデータとキャッシュ102にキャッシュ中の先読みデータとが一致した場合に、第2の通信装置からのデータ要求に応じて、当該第2の通信装置に接続する他の中継装置内のキャッシュにキャッシュ中の先読みデータで第2の通信装置に対する代理応答を指示する所定信号を他の中継装置に通知する。その結果、データ要求からデータ取得までに要する処理時間を高速化できる。
1 高速伝送システム
2 サーバ
3 サーバ側中継装置
4 クライアント側中継装置
5 クライアント
12A 第1のキャッシュ
21 要求部
22 第1の制御部
23 通知部
32A 第2のキャッシュ
42 応答部
2 サーバ
3 サーバ側中継装置
4 クライアント側中継装置
5 クライアント
12A 第1のキャッシュ
21 要求部
22 第1の制御部
23 通知部
32A 第2のキャッシュ
42 応答部
Claims (5)
- 第1の通信装置と接続する第1の中継装置と、第2の通信装置と接続する第2の中継装置とを有し、前記第2の通信装置からのデータ要求に応じて前記第1の通信装置からデータを読み出し、その読み出したデータを前記第2の通信装置に中継する中継装置であって、
前記第1の中継装置は、
前記第2の通信装置からの要求に応じて前記第1の通信装置に対してデータの先読みを要求する要求部と、
前記要求部の先読み要求で得た先読みデータを第1のキャッシュにキャッシュする制御部と、
前記第2の通信装置から次回の要求に応じて、前記要求部で前記第1の通信装置に対して前記データの先読みを要求し、先読み要求で得た先読みデータと前記第1のキャッシュにキャッシュ中の先読みデータとが一致した場合に所定信号を前記第2の中継装置に通知する通知部と
を有し、
前記第2の中継装置は、
前記第1のキャッシュにキャッシュ中の先読みデータの一部をキャッシュする第2のキャッシュと、
前記所定信号を検出した場合に、前記第2の通信装置からのデータ要求に応じて前記第2のキャッシュにキャッシュ中の先読みデータで前記第2の通信装置に対して代理応答する応答部と
を有することを特徴とする中継装置。 - 前記第2のキャッシュは、
前記第2の通信装置から前記第1の通信装置へのデータ要求の開始から前記第1の通信装置から前記第2の通信装置へのデータ取得までの処理に要する処理時間以上、前記第2の通信装置に対する代理応答が可能なデータ量の前記先読みデータをキャッシュすることを特徴とする請求項1に記載の中継装置。 - 第1の通信装置と接続すると共に、第2の通信装置からのデータ要求に応じてデータを前記第1の通信装置から読み出し、その読み出したデータを前記第2の通信装置に中継する中継装置であって、
前記第2の通信装置からの要求に応じて前記第1の通信装置に対してデータの先読みを要求する要求部と、
前記要求部の先読み要求で得た先読みデータを第1のキャッシュにキャッシュする制御部と、
前記第2の通信装置から今回の要求に応じて、前記要求部で前記第1の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記第1のキャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第2の通信装置からのデータ要求に応じて、当該第2の通信装置に接続する第2の中継装置内の第2のキャッシュにキャッシュ中の先読みデータで前記第2の通信装置に対する代理応答を指示する所定信号を前記第2の中継装置に通知する通知部と
を有することを特徴とする中継装置。 - 第1の通信装置と接続すると共に、第2の通信装置からのデータ要求に応じてデータを前記第1の通信装置から読み出し、その読み出したデータを前記第2の通信装置に中継する中継装置の中継方法であって、
前記中継装置は、
前記第2の通信装置からの要求に応じて前記第1の通信装置に対してデータの先読みを要求し、
先読み要求で得た先読みデータを第1のキャッシュにキャッシュし、
前記第2の通信装置から今回の要求に応じて前記第1の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記第1のキャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第2の通信装置からのデータ要求に応じて、当該第2の通信装置に接続する第2の中継装置内の第2のキャッシュにキャッシュ中の先読みデータで前記第2の通信装置に対する代理応答を指示する所定信号を前記第2の中継装置に通知する
処理を実行することを特徴とする中継方法。 - 第1の通信装置と接続すると共に、第2の通信装置からのデータ要求に応じてデータを前記第1の通信装置から読み出し、その読み出したデータを前記第2の通信装置に中継する中継装置のプロセッサに、
前記第2の通信装置からの要求に応じて前記第1の通信装置に対してデータの先読みを要求し、
先読み要求で得た先読みデータをキャッシュにキャッシュし、
前記第2の通信装置から今回の要求に応じて前記第1の通信装置に対して前記データの先読みを要求し、先読み要求で得た今回の先読みデータと前記キャッシュにキャッシュ中の先読みデータとが一致した場合に、前記第2の通信装置からのデータ要求に応じて、当該第2の通信装置に接続する他の中継装置内のキャッシュにキャッシュ中の先読みデータで前記第2の通信装置に対する代理応答を指示する所定信号を前記他の中継装置に通知する
処理を実行させることを特徴とする中継プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018506743A JP6575675B2 (ja) | 2016-03-25 | 2016-03-25 | 中継装置、中継方法及び中継プログラム |
PCT/JP2016/059760 WO2017163426A1 (ja) | 2016-03-25 | 2016-03-25 | 中継装置、中継方法及び中継プログラム |
US16/127,592 US10637955B2 (en) | 2016-03-25 | 2018-09-11 | Relay device, and relay method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/059760 WO2017163426A1 (ja) | 2016-03-25 | 2016-03-25 | 中継装置、中継方法及び中継プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/127,592 Continuation US10637955B2 (en) | 2016-03-25 | 2018-09-11 | Relay device, and relay method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017163426A1 true WO2017163426A1 (ja) | 2017-09-28 |
Family
ID=59899886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/059760 WO2017163426A1 (ja) | 2016-03-25 | 2016-03-25 | 中継装置、中継方法及び中継プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10637955B2 (ja) |
JP (1) | JP6575675B2 (ja) |
WO (1) | WO2017163426A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282542B1 (en) * | 1997-08-06 | 2001-08-28 | Tachyon, Inc. | Distributed system and method for prefetching objects |
WO2013180255A1 (ja) * | 2012-05-31 | 2013-12-05 | 株式会社日立製作所 | 通信装置および方法 |
JP2014085822A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Ltd | データ送信装置、データ送信システム、データ送信方法、及びプログラム |
WO2014150538A1 (en) * | 2013-03-15 | 2014-09-25 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757705B1 (en) * | 1998-08-14 | 2004-06-29 | Microsoft Corporation | Method and system for client-side caching |
US7216072B2 (en) * | 2000-02-29 | 2007-05-08 | Fujitsu Limited | Relay device, server device, terminal device, and translation server system utilizing these devices |
JP2001318902A (ja) * | 2000-05-09 | 2001-11-16 | Matsushita Electric Ind Co Ltd | キャッシュ装置 |
US8069225B2 (en) * | 2003-04-14 | 2011-11-29 | Riverbed Technology, Inc. | Transparent client-server transaction accelerator |
JP2006252019A (ja) | 2005-03-09 | 2006-09-21 | Hitachi Ltd | ストレージネットワークシステム |
US7685255B2 (en) * | 2006-04-24 | 2010-03-23 | Blue Coat Systems, Inc. | System and method for prefetching uncacheable embedded objects |
JP5423900B2 (ja) | 2010-09-29 | 2014-02-19 | 富士通株式会社 | 中継システム、中継システムの制御方法及び中継装置の制御プログラム |
JP2013218505A (ja) * | 2012-04-09 | 2013-10-24 | Hitachi Ltd | クライアントとサーバ間の通信を中継する通信装置及び通信システム |
-
2016
- 2016-03-25 WO PCT/JP2016/059760 patent/WO2017163426A1/ja active Application Filing
- 2016-03-25 JP JP2018506743A patent/JP6575675B2/ja active Active
-
2018
- 2018-09-11 US US16/127,592 patent/US10637955B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282542B1 (en) * | 1997-08-06 | 2001-08-28 | Tachyon, Inc. | Distributed system and method for prefetching objects |
WO2013180255A1 (ja) * | 2012-05-31 | 2013-12-05 | 株式会社日立製作所 | 通信装置および方法 |
JP2014085822A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Ltd | データ送信装置、データ送信システム、データ送信方法、及びプログラム |
WO2014150538A1 (en) * | 2013-03-15 | 2014-09-25 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017163426A1 (ja) | 2018-12-27 |
US20190014189A1 (en) | 2019-01-10 |
US10637955B2 (en) | 2020-04-28 |
JP6575675B2 (ja) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8463936B2 (en) | Method and device for distributing digital data in particular for a peer-to-peer network | |
EP2503759A1 (en) | Method, apparatus and cache system for providing file downloading service | |
RU2689439C2 (ru) | Улучшение производительности веб-доступа | |
US20050044146A1 (en) | Protection of the distribution of digital documents in a peer to peer network | |
WO2017185633A1 (zh) | Cdn服务器及其缓存数据的方法 | |
CN112953945B (zh) | 访问请求处理方法和系统 | |
US20140198700A1 (en) | Method and apparatus for controlling traffic in electronic device | |
CN111625743B (zh) | 资源加载方法、装置及电子设备 | |
US8209711B2 (en) | Managing cache reader and writer threads in a proxy server | |
WO2018082712A1 (zh) | 一种情境感知的移动Web应用协议切换方法 | |
US20240129272A1 (en) | Methods and systems for communication session management | |
US9270748B2 (en) | Method for content delivery involving a policy database | |
US9781222B2 (en) | Method, system and server device for transmitting a digital resource in a client-server communication system | |
CN103905516A (zh) | 分享数据的方法及相应服务器和终端 | |
US11409511B2 (en) | Method and system for downloading information | |
JP6575675B2 (ja) | 中継装置、中継方法及び中継プログラム | |
US7979490B2 (en) | Method for combatting the illicit distribution of protected material and computer system for carrying out said method | |
CN113079210A (zh) | 一种跨区数据自动同步的配置方法、终端设备及存储介质 | |
US20090138545A1 (en) | Asynchronous response processing in a web based request-response computing system | |
CN115883579A (zh) | 一种视频流传输方法、系统、电子设备及介质 | |
CN113301050B (zh) | 网页页面多用户实时登录登出管理方法、系统、终端及介质 | |
CN110209968B (zh) | 一种数据存储系统、方法、装置及计算机可读存储介质 | |
CN110740171B (zh) | 一种数据分片传输方法与装置 | |
Silva et al. | Content-aware prefetching in over-the-top wireless networks | |
CN116501659A (zh) | 一种缓存控制方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 2018506743 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16895457 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16895457 Country of ref document: EP Kind code of ref document: A1 |