KR100935586B1 - Cache method - Google Patents
Cache method Download PDFInfo
- Publication number
- KR100935586B1 KR100935586B1 KR1020047002829A KR20047002829A KR100935586B1 KR 100935586 B1 KR100935586 B1 KR 100935586B1 KR 1020047002829 A KR1020047002829 A KR 1020047002829A KR 20047002829 A KR20047002829 A KR 20047002829A KR 100935586 B1 KR100935586 B1 KR 100935586B1
- Authority
- KR
- South Korea
- Prior art keywords
- cached
- update
- message
- display data
- key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/04—Partial updating of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
Abstract
씬 서버 장치에서 씬 클라이언트 장치로 갱신-디스플레이 데이터(1)를 전송하는 방법으로서, 전송될 새로운 갱신-디스플레이 데이터(1)를 나타내는 (짧은) 키(6)를 발생하는 단계; 새로이 발생된 키를 이전에 발생된 키 또는 키들과 비교하는 단계; 및 클라이언트 장치에 전송될 메시지를 편집하는 단계를 포함하고, 메시지는 갱신-디스플레이 데이터가 이미 캐시되어 있는지, 캐시할 것인지, 아니면 캐시하지 않을 것인지를 클라이언트 장치에 식별시키는 비교단계의 결과에 따라 설정되는 헤더와, 갱신-디스플레이 데이터를 나타내는 코드 워드들을 포함한다. 바람직하게 DCT 코딩이 사용된다. 이 방법을 사용하는 씬 클라이언트 서버 시스템은 보다 빠르고 보다 효율적이다.CLAIMS 1. A method of transmitting update-display data (1) from a thin server device to a thin client device, comprising: generating a (short) key (6) indicating new update-display data (1) to be transmitted; Comparing the newly generated key with a previously generated key or keys; And editing the message to be sent to the client device, wherein the message is set according to the result of the comparing step of identifying to the client device whether the update-display data is already cached, cached or not cached. A header and code words representing the update-display data. Preferably DCT coding is used. Thin client server systems using this method are faster and more efficient.
씬 서버 장치, 씬 클라이언트, 캐시 명령 필드, 시퀀스 아이덴티티 필드Thin server device, thin client, cache command field, sequence identity field
Description
본 발명은 캐시 방법에 관한 것으로 특히 씬 클라이언트(thin client) 서버 컴퓨터 시스템을 위한 캐시 방법에 관한 것이다.
The present invention relates to a caching method, and more particularly to a caching method for a thin client server computer system.
씬 클라이언트 서버 컴퓨터 시스템은 어플리케이션 프로그램들이 클라이언트 장치가 아니라 서버 장치에 설치된 시스템이다. 씬 클라이언트 디스플레이 프로토콜(원격 프레임 버퍼 기술이라고도 알려져 있음)을 사용하여 클라이언트 장치에 어플리케이션들을 실행시키게 할 수 있다. 씬 클라이언트 디스플레이 프로토콜은 서버 장치에 로딩되는 한 부분과 클라이언트 장치에 로딩되는 또 다른 부분을 포함하는 컴퓨터 프로그램이다. 클라이언트 프로그램은 작은 코드 크기를 갖고 있고 따라서 클라이언트 장치의 비교적 소수의 자원들(메모리 및 처리능력)을 필요로 하기 때문에 이른바 씬(thin) 프로그램이다. 이 시스템에 의해, 훨씬 더 강력한 서버의 서비스에 클라이언트 장치들이 비교적 간단하고 저렴하게 액세스할 수 있게 된다.A thin client server computer system is a system in which application programs are installed on a server device, not on a client device. Thin client display protocols (also known as remote frame buffer technologies) can be used to run applications on client devices. The thin client display protocol is a computer program that includes one portion loaded to the server device and another portion loaded to the client device. Client programs are so-called thin programs because they have a small code size and therefore require relatively few resources (memory and processing power) of the client device. This system allows client devices to access the services of a much more powerful server relatively simply and inexpensively.
하나의 이러한 씬 클라이언트 디스플레이 프로토콜이, 가상 네트워크 컴퓨팅(Virtual Network Computing: VNC)이며, 클라이언트 장치가 코맨드(command)들을 서버 장치에 보내어 서버 장치가 이들 명령들을 처리하여 갱신된 정보, 또는 프레임 버퍼 데이터를 소위 갱신영역에 발생시키도록 서로 간에 통신하는 씬 서버 프로그램 "VNC 서버" 및 씬 클라이언트 프로그램 "VNC 뷰어"를 포함한다. 이것은 클라이언트 장치에서 스크린 갱신하는데 필요한 기본 유닛이다. 이것은 윈도우 형태를 취할 수 있다. 갱신영역은 서버 장치에서 씬 클라이언트 장치로 보내진다. 실제로, 프로토콜의 디스플레이측은 직사각형의 화소 데이터를 클라이언트 스크린 상의 소정의 x, y 위치에 놓도록 클라이언트 장치에 명령을 내린다.One such thin client display protocol is Virtual Network Computing (VNC), where the client device sends commands to the server device so that the server device processes these commands to update updated information, or frame buffer data. And a thin server program " VNC Server " and a thin client program " VNC Viewer " which communicate with each other so as to occur in the so-called update area. This is the basic unit required for screen update on the client device. This may take the form of a window. The update area is sent from the server device to the thin client device. In practice, the display side of the protocol instructs the client device to place the rectangular pixel data at a predetermined x, y position on the client screen.
씬 클라이언트 서버 컴퓨터 시스템들에 있어서의 문제는 서버와 클라이언트 장치들 간에 전달되는 상당량의 데이터가 있어 이에 따라 시스템이, 특히 클라이언트 장치가 서버 장치로부터 데이터를 검색하는(retrieve) 것이 지체될 수 있다는 것이다.The problem with thin client server computer systems is that there is a significant amount of data being passed between the server and the client devices, which may cause the system, especially the client device, to retrieve data from the server device.
씬 서버에서 씬 클라이언트로의 프레임 버퍼 데이터의 보다 효율적인 전송은 서로 다른 데이터 패턴들에 서로 다른 코딩 알고리즘들을 사용함으로써, 그리고 적응형 인터넷 프로토콜 및 1996년 3월 16일, Citrix Systems에 의한 "Independent Computing Architecture Technical Paper"에 기재된 바와 같은 오브젝트 어웨어 캐시(object aware cache)방법들에 의해 달성되었다. 그러나, 이들 방법들은 소프트웨어 플랫폼에 의존하기 때문에 컴퓨터들에서 실행되는 운영체제들에 따라 수정하지 않고는 보편적으로 채택될 수 없다. VNC와 같은 넌-오브젝트 어웨어 프로토콜들이 바람직하다.More efficient transmission of frame buffer data from thin server to thin client is achieved by using different coding algorithms for different data patterns, and by adopting the Adaptive Internet Protocol and March 16, 1996, "Independent Computing Architecture" by Citrix Systems. It was achieved by object aware cache methods as described in "Technical Paper". However, since these methods depend on the software platform, they cannot be universally adopted without modification depending on the operating systems running on the computers. Non-objectware protocols such as VNC are preferred.
인터넷 환경에서 장치들 간에 보다 효율적인 통신을 위해 캐시 방법들이 제안되었지만 인터넷의 특성과 씬 클라이언트 서버 컴퓨터 시스템들의 특성이 완전히 다르기 때문에 이들 캐시 방법들은 씬 클라이언트 서버 시스템들에 쉽게 적용될 수 없다. 예를 들면, 프록시 서버들(proxy servers)에 캐시하는 것은 월드 와이드 웹(World Wide Web)에 액세스하기 위한 인지된 응답 시간을 감소시킨다. 이들은 캐싱하기 위한 문서들의 서브셋들을 선택하지만, 캐시된 문서들의 일관성을 유지하기 위한 별도의 단계들이 취해져야 한다.Although cache methods have been proposed for more efficient communication between devices in the Internet environment, these cache methods cannot be easily applied to thin client server systems because the characteristics of the Internet and the characteristics of thin client server computer systems are completely different. For example, caching on proxy servers reduces the perceived response time for accessing the World Wide Web. They select subsets of documents for caching, but separate steps must be taken to maintain the consistency of cached documents.
본 발명의 목적은 씬 클라이언트 서버 컴퓨터 시스템의 효율을 향상시키며 데이터 전송 속도를 높이는 것이다. 본 발명은 독립 청구항들에서 정의되고 종속 청구항들은 이로운 실시예들을 정의한다.It is an object of the present invention to improve the efficiency of the thin client server computer system and to increase the data transfer rate. The invention is defined in the independent claims and the dependent claims define advantageous embodiments.
바람직하게는, 메시지는 "캐시함", "캐시하지 않음", "캐시되어 있음"의 코맨드들 중 하나에 대응하는 명령을 포함하는 캐시 명령 필드, 및 매치하는 키의 어드레스 또는 적합한 새로운 어드레스 등의 캐시 어드레스를 포함하는 시퀀스 아이덴티티 필드를 포함하는 헤더를 포함한다.Preferably, the message includes a cache command field containing an instruction corresponding to one of the commands "cached", "not cached", "cached", and the address of the matching key or a suitable new address, and the like. A header including a sequence identity field containing a cache address.
키는 압축된 코딩된 갱신-디스플레이 데이터의 코드 워드들의 조합된 길이를 포함한다. 압축 코딩은 공간영역에서 주파수 영역으로 데이터를 전환시키는 이산 코사인 변환(DCT), 특히 2D-DCT에 의하는 것이 바람직하다.The key includes a combined length of code words of compressed coded update-display data. Compression coding is preferably by discrete cosine transform (DCT), in particular 2D-DCT, which transforms data from the spatial domain to the frequency domain.
일 실시예는 예를 들면 JPEG 인코딩(encoding) 및 엔트로피 코딩(entropy encoding)에 의해 데이터를 양자화하는 것을 더 포함한다.One embodiment further includes quantizing the data by, for example, JPEG encoding and entropy encoding.
본 발명의 바람직한 실시예에 따라서, 예를 들면 인코딩된 데이터의 높이 및 폭의 크기가 체크되고 크기가 소정의 레벨 미만이면 캐싱은 행해지지 않는다. 크기는 또한 예비 비교 단계로서 사용될 수도 있다. 키들 간에 상응하는 것이 발견되면 클라이언트 장치 내 캐시된 데이터가 클라이언트 장치에 의해 표시된다. 하나 이상 상응하는 것이 발견되면 코드 워드들이 비교된다. 데이터가 클라이언트 장치로부터 상실되었다면, 재전송 메시지를 다시 서버 장치에 보낼 수도 있다.According to a preferred embodiment of the present invention, caching is not done, for example, if the size of the height and width of the encoded data is checked and the size is below a predetermined level. The size may also be used as a preliminary comparison step. If a match is found between the keys, the cached data in the client device is displayed by the client device. Code words are compared if more than one corresponding is found. If data has been lost from the client device, a retransmission message may be sent back to the server device.
본 발명은, 비교를 서버에서 행하고 계산을 간단하게 위해 각 갱신영역에 대해 프레임내(intra-frame) 코딩을 사용하여, 비-후보 영역들을 필더링해내는, 편리하고 고속의 비교적 비용효율적인 방법을 제공할 수 있다.The present invention provides a convenient, fast and relatively cost-effective method of filtering non-candidate areas using intra-frame coding for each update area to make comparisons at the server and to simplify calculations. Can provide.
본 발명의 이해를 위해서 그리고 본 발명이 어떻게 실행되는가를 보이기 위해서, 첨부한 도면을 참조하도록 할 것이다.
For the purpose of understanding the invention and to show how the invention is practiced, reference will be made to the accompanying drawings.
도 1은 씬 클라이언트 서버 시스템의 클라이언트 및 서버에 적용되는 본 발명의 방법의 흐름도.1 is a flowchart of the method of the present invention applied to a client and a server of a thin client server system.
도 2는 도 1의 방법에서 영역 키를 발생하는 방법을 도시한 흐름도.2 is a flow chart illustrating a method for generating an area key in the method of FIG.
도 3은 도 2의 영역 키의 발생에서 데이터 블록의 압축의 개략적인 예를 보여주는 도면.3 shows a schematic example of the compression of a data block in the generation of the area key of FIG.
도 4는 도 1 내지 도 3의 방법에 사용하기 위한 메시지 포맷을 보여주는 도면.4 shows a message format for use in the method of FIGS. 1-3.
도 5는 제1 경우에 대한 본 발명의 방법의 부분을 보여주는 도면. 5 shows a part of the method of the invention for a first case.
도 6은 제2 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.6 shows a part of the method of the invention for a second case.
도 7은 제3 경우에 대한 본 발명의 방법의 부분을 보여주는 도면.7 shows a part of a method of the invention for a third case.
도 8은 본 발명의 방법의 예를 보여주는 도면.8 shows an example of the method of the invention.
도 9는 본 발명의 방법의 또 다른 예를 보여주는 도면.
9 shows another example of the method of the invention.
도 1의 흐름도에서, 씬 서버 프로그램이 실행되고 있다. 이것은 전형적으로 "VNC 서버"이지만 이외 유사한 프로그램들 또한 유효할 것이다. 다음 단계들이 행해진다. 서버(SE)에서:In the flowchart of Fig. 1, the thin server program is running. This is typically a "VNC server" but other similar programs will also be valid. The following steps are done. On the server (SE):
A. 갱신-디스플레이 데이터 또는 갱신영역은 높이 H와 폭 W를 가지며 소스 데이터 1로서 나타낸다.A. The update-display data or update area has a height H and a width W and is represented as
B. 도 2 및 도 3을 참조하여 후술하는 바와 같이, 소스 데이터 1을 인코딩하여 코드 워드들을 생성한다.B. As described below with reference to FIGS. 2 and 3,
C. 인코딩된 소스 데이터를 폭 및 높이에 대해서 체크한다.C. Check the encoded source data for width and height.
D. 폭 및 높이가 임계값 미만이면, 메시지 헤더의 캐시 필드를 "캐시하지 않음"으로 설정한다(갱신이 매우 작다면 캐시해 두는 것으로부터 얻어질 잇점이 전혀 없다). D. If the width and height are below the threshold, set the cache field of the message header to "not cached" (if the update is very small, there is no benefit from caching).
이 상황을 후술하는 도 5에 도시하였다.This situation is illustrated in FIG. 5 described later.
E. 시퀀스 아이덴티티(SID)은 널(NULL)로 설정되고 이어서 갱신 메시지가 클라이언트에 보내진다-이하 기술되는 단계 P 참조.E. The sequence identity (SID) is set to null and then an update message is sent to the client-see step P described below.
G. 폭 및 높이가 임계값 이상이면 메시지 헤더의 캐시 필드를 "캐시함"으로 설정한다.G. If the width and height are above the threshold, set the cache field of the message header to "cache".
이 상황을 후술하는 도 6에 도시하였다.This situation is illustrated in FIG. 6 described later.
H. 코드 워드들의 길이를 조합함으로써, 다음에 도 2에 관련하여 기술하는 방법을 사용하여, 데이터/이미지 서명들을 나타내는 영역 키(RKEY)를 생성한다.H. By combining the lengths of the code words, a region key (RKEY) representing the data / image signatures is then generated using the method described in connection with FIG.
I. 이어서 서버는 임의의 갱신영역들이 전에 캐시되어 있는지, 그리고 캐시된 영역들의 폭 및 높이가 갱신영역들과 매치하는지를 체크한다. I. The server then checks if any update areas are previously cached and if the width and height of the cached areas match the update areas.
J. 전에 어떠한 갱신영역도 캐시되어 있지 않으면, 서버는 얻을 수 있는 다음 시퀀스 아이덴티티(SID)을 얻을 것이며, 이에 따라 메시지 헤더 내 SID 필드를 설정하고 메시지 헤더의 캐시 필드를 "캐시함"으로 함으로써, 클라이언트에 보낼 메시지를 포맷할 것이다.J. If no update area has been cached before, the server will get the next sequence identity (SID) it can obtain, thereby setting the SID field in the message header and setting the cache field in the message header to "cache". We will format the message to be sent to the client.
K. 서버는 메시지(압축된 데이터의 SID, RKEY 및 코드 워드들을 포함함)의 복제본을 유지해 두고, 이 메시지를 클라이언트에 전송한다-다음의 단계 P 참조.K. The server maintains a duplicate of the message (including the SID, RKEY and code words of the compressed data) and sends this message to the client-see step P below.
L. 갱신영역이 전에 캐시되어 있다면 서버는 매치하는 캐시된 것에 대해 RKEY를 체크하였을 때 이를 인지할 것이다.L. If the update area is cached before, the server will know when it checks the RKEY for a matching cache.
M. 어떠한 매치하는 영역 키(RKEY)도 식별되지 않으면 단계 J가 반복되고, 갱신영역을 나타내는 압축된 데이터와 함께 새로운 메시지가 클라이언트에 보내진다.M. If no matching area key (RKEY) is identified, step J is repeated and a new message is sent to the client with compressed data representing the update area.
N. 매치하는 것이 단지 하나가 발견되면 캐시 필드는 "캐시되어 있음"으로 설정되고 대응하는 SID가 압축된 데이터의 코드 워드들 없이 클라이언트에 보내진 다. N. If only one match is found, the cache field is set to "cached" and the corresponding SID is sent to the client without code words of compressed data.
이 상황을 후술하는 도 7에 도시하였다.This situation is illustrated in FIG. 7 described later.
O. 하나 이상의 영역 키(RKEY) 매치가 발견되면 압축된 데이터의 새로운 코드 워드들을 로컬 캐시 버퍼 내 코드 워드들과 비교하고 매치하는 코드 워드들이 식별되었을 때 캐시 필드는 "캐시되어 있음"으로 설정되고 압축된 데이터의 코드 워드들 없이 대응하는 SID가 보내진다.O. If more than one RKEY match is found, the new code words of the compressed data are compared with the code words in the local cache buffer and the cache field is set to "cached" when matching code words are identified. The corresponding SID is sent without code words of compressed data.
P. 메시지가 서버로부터 보내진다.P. The message is sent from the server.
클라이언트 CL에서:In the client CL:
Q. 메시지가 클라이언트 의해 수신된다.Q. The message is received by the client.
R. 클라이언트는 먼저 이 갱신영역을 캐시할 것인지를 결정하기 위해 메시지의 캐시 필드를 체크한다.R. The client first checks the cache field of the message to determine whether to cache this update area.
S. 캐시 필드가 "캐시함"으로 설정되어 있다면 클라이언트는 갱신영역의 코드 워드들의 복제본을 유지해두고 코드 워드들을 디코드하고 단계 V로 간다.S. If the cache field is set to "cache", the client keeps a duplicate of the code words in the update area, decodes the code words and goes to step V.
T. 캐시 필드가 "캐시하지 않음"으로 설정되어 있다면 클라이언트는 메시지 내 코드 워드들을 디코드하지만 이를 저장하진 않고 단계 V로 간다.T. If the cache field is set to "don't cache", the client decodes the code words in the message but goes to step V without storing it.
U. 캐시 필드가 "캐시되어 있음"으로 설정되어 있다면 클라이언트는 클라이언트 캐시로부터 캐시된 코드 워드들을 검색하고 이 코드 워드들을 디코드하고 단계 V로 간다.U. If the cache field is set to "cached" then the client retrieves cached code words from the client cache, decodes these code words and goes to step V.
V. 디코드된 갱신영역을 디스플레이한다.V. Display the decoded update area.
코딩을 사용하여, 갱신영역 소스 데이터(1)로부터 영역 키(6)의 생성을 도 2의 상측 부분에 도시하였고 도 2의 하측 부분엔 이에 이은 인코딩된 데이터의 디코딩이 도시되어 있다. 소스 데이터(1), 즉 갱신 영역 서명을 나타내는 데이터 또는 이미지는 순방향 이산 코사인 변환(FDCT)(2)에 의해 압축되고 '3'에서 양자화된다. 이어서 '4'에서 엔트로피 인코딩되고 코드 워드들의 길이를 '5'에서 조합하여 키(6)를 생성한다. 이어서 이것은 서버의 캐시 메모리(7)에 복제되고 시퀀스 아이덴티티 표시자(8)를 1만큼 증분시킨다. 이것을 도 1의 상측 부분에 도시하였다.Using coding, the generation of the area key 6 from the update
이어서 데이터는 '9'에서 엔트로피 디코딩에 의해 디코딩되고, '10'에서 역양자화되고, '11'에서 압축해제되어, 디코딩된 데이터(12)를 형성한다. 시퀀스 발생기(13)는 캐시(14)의 다른 위치를 가리키기 위해 매번 증분된다.The data is then decoded by entropy decoding at '9', dequantized at '10' and decompressed at '11' to form decoded
도 3은 8x8 격자에 64개의 두 자리 수 격자를 포함하는 블록(31)의 그룹으로 된 원 소스 이미지 데이터의 코딩(original source image data)을 도시한 것이다. 이 블록을 64개의 직교(orthogonal) 신호들(DCT 계수들이라 함)로 압축해제하기 위해 순방향 DCT 프로세스를 적용한다. 한 계수는 양 차원 모두에서 제로 주파수를 가지며 이를 DC 계수라 한다. 이외 다른 63개는 AC 계수들이다. 시각적으로 무의미한 정보는 폐기하고 양자화 및 엔트로피 처리 후에 결과는 총 35 비트의 2진 워드들의 스트링을 포함하는 압축된 코드워드(32)이다. 소스 이미지에 대해 8비트 압축을 사용하는 이 예에서 압축율은 약 15:1이다.FIG. 3 shows the coding of original source image data in a group of
도 4는 서버에서 클라이언트로의 전송을 위한 메시지의 포맷을 나타낸 것이다. 이것은 캐시 헤드(21)("캐시함", "캐시하지 않음" 또는 "캐시되어 있음")와 시퀀스 아이덴티티 필드(SID)(22)로 형성된 메시지 헤더(20)를 갖는다. 이것은 또한 압축된 메시지의 코드 워드들을 포함하는 메시지 필드(23)를 갖는다.4 shows the format of a message for transmission from a server to a client. It has a
도 5는 서버가 "캐시하지 않음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다. 이것은 예를 들면 갱신영역의 크기가 임계값 미만이어서 캐시할 가치가 없을 때 일어날 수 있다. 캐시 필드(21)는 "캐시하지 않음"으로 설정되고 SID 필드(22)는 헤더에서 "널"로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다. FIG. 5 illustrates the configuration of the message of FIG. 4 when the server issues a "no cache" command. This can happen, for example, when the size of the update area is below the threshold and is not worth caching. The
도 6은 서버가 "캐시함"이라고 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.FIG. 6 illustrates the configuration of the message of FIG. 4 when the server issues a "cache".
이것은 갱신영역의 크기가 임계값 이상일 때 일어난다. 캐시(21) 필드는 "캐시함"으로 설정되고 SID 필드(22)는 헤더에서 "N"으로 설정되며, 압축된 코드 워드들은 메시지 필드(23)에 첨부된다.This occurs when the size of the update area is greater than or equal to the threshold. The
도 7은 서버가 "캐시되어 있음"이라 명령을 내린 경우에 도 4의 메시지의 구성을 도시한 것이다.FIG. 7 illustrates the configuration of the message of FIG. 4 when the server issues a "cached" command.
이 경우 메시지 헤더(20)는 캐시 필드(21)에 명령 "캐시되어 있음"을 SID 필드(22)에 "N"을 포함하고, 압축된 코드 워드들은 이 상황에서 이들이 클라이언트 장치에의 로컬 캐시로부터 검색될 수 있기 때문에 첨부되지 않으므로 서버와 클라이언트 간 전송 대역폭을 절약하여 시스템의 속도 및 효율을 향상시킨다.In this case the
도 8은 도 5 내지 도 7에 나타낸 경우들 각각에 대해서 타임 라인(time line)에 따라 시스템이 어떻게 반응하는가를 도시한 것이다.FIG. 8 illustrates how the system reacts according to a time line for each of the cases shown in FIGS.
제1 갱신영역 데이터(1a)가 서버 장치에서 발생되고 ①에서 크기는 임계값 미만이고 서버는 "캐시하지 않음"이라 명령한다. 도 5에 도시한 바와 같은 메시지가 발생되고 컴퓨터 네트워크를 통해 클라이언트 장치에 전송되고 이에 따라 갱신영역이 클라이언트 디스플레이에 디스플레이된다. 이것을 경우 I라고 표시하였다.The first
잠시 후에 제2 갱신영역 데이터(1b)가 발생된다. 갱신영역(1b)의 크기는 임계값 이상이고 영역 키(RKEY)가 발생되고 서버의 콘텐츠 캐시 버퍼(도 2의 7 참조)와 비교한다. 이것을 ②로서 나타내었다. ③에서, 전에 캐시되어 있는 것이 없으므로 메시지 "캐시함"이 데이터와 함께 클라이언트로 보내진다. 이를 경우 II로 표시하였다. ④에서 대응하는 키가 캐시(7)에서 발견된다. SID가 검색되고, 적합한 SID와 함께 그러나 데이터 없이 "캐시되어 있음"이라는 메시지가 클라이언트 장치에 전송되어, 전송 공간 및 시간이 절약된다. 이를 경우 III으로 표시하였다.After a while, the second
SID 숫자들은, 가장 최근의 갱신영역 데이터가 저장되는 것을 보장하면서 메모리 공간을 절약하기 위해 통상 1 내지 999로 순환할 것이다.SID numbers will typically cycle from 1 to 999 to save memory space while ensuring that the most recent update area data is stored.
단지 두 개의 캐시 버퍼들만이 사용이 가능하다면, 도 9의 상황이 적용되고 가장 최근의 2개의 갱신영역들을 캐시하기 위해서 순환 리스트가 유지된다. 예를 들면 메시지 A는 경우 II의 메시지인 "캐시함"(전에 캐시된 것이 전혀 없으므로)이다. 따라서, 캐시 버퍼(14)는 제1 캐시 위치(25)에 A를 저장한다. 이어서 메시지 B가 발생되고 이것은 경우 I의 메시지인 "캐시하지 않음"이므로, B에 저장이 행해지지 않고 제2 캐시 위치(26)는 비어있게 된다. 메시지 C는 또 다른 경우 II의 메시지인, "캐시함"이고, 따라서 이제는 C가 캐시 위치(26)에 저장된다. 메시지 D는 마찬가지로 경우 II이고 그러므로 D는 위치(25) 내 A를 대치한다.If only two cache buffers are available, the situation of FIG. 9 applies and a circular list is maintained to cache the two most recent update regions. For example, message A is the message of case II, "cached" (since nothing was cached before). Thus,
이어서 메시지 C가 다시 수신되고 이것은 서버가 캐시된 메시지 C와 상응하는 것을 검출하기 때문이 경우 III 메시지인 "캐시되어 있음"이 된다. 따라서 클라이언트 장치로의 메시지는 로컬 캐시(14)로부터 대응하는 데이터를 검색하기 위해 위치(26)에 대한 SID를 포함한다. 마찬가지로 메시지 D가 재전송되었을 때, 상응하는 것이 발견되고 경우 III 메시지로 클라이언트는 위치(25)에서 로컬 캐시 버퍼(14)로부터 데이터를 검색하라는 명령을 받는다.Message C is then received again, which is the III message "cached" because the server detects that it corresponds to cached message C. The message to the client device thus includes the SID for
전술한 실시예들은 본 발명을 한정하는 것이 아니라 예시하는 것으로 이 기술에 숙련된 자들은 첨부된 청구항들의 범위 내에서 많은 대안이 되는 실시예들을 설계할 수 있을 것임에 유념해야 할 것이다. 청구항들에서, 괄호 내 부기한 어떠한 참조부호든 청구항을 한정하는 것으로 해석되지 않을 것이다. "포함하다"라는 말은 청구항에 열거된 구성요소들 또는 단계들 이외의 것들의 존재를 배제하는 것은 아니다. 단수표시된 구성요소는 복수의 이러한 구성요소들의 존재를 배제하는 것은 아니다. 본 발명은 몇가지 구별되는 구성요소들을 포함하는 하드웨어, 및 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 몇가지 수단을 열거한 장치 청구항에서 이들 수단 몇몇은 한 하드웨어 및 동일 하드웨어 아이템으로 실현될 수 있다. 어떤 대책들이 서로 상이한 종속 청구항들에 인용되었다는 것이, 이들 대책들의 조합이 이롭게 사용될 수 없다는 것을 나타내는 것은 아니다. It should be noted that the foregoing embodiments illustrate rather than limit the invention and those skilled in the art will be able to design many alternative embodiments within the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprises" does not exclude the presence of elements other than components or steps listed in a claim. Singular components are not intended to exclude the presence of a plurality of such components. The invention can be implemented by means of hardware comprising several distinct components, and by a suitably programmed computer. In the device claims enumerating several means, several of these means can be realized with one hardware and the same hardware item. The fact that certain measures are cited in different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Claims (16)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01203234 | 2001-08-27 | ||
EP01203234.8 | 2001-08-27 | ||
PCT/IB2002/003360 WO2003019927A1 (en) | 2001-08-27 | 2002-08-16 | Cache method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040031006A KR20040031006A (en) | 2004-04-09 |
KR100935586B1 true KR100935586B1 (en) | 2010-01-07 |
Family
ID=8180842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047002829A KR100935586B1 (en) | 2001-08-27 | 2002-08-16 | Cache method |
Country Status (6)
Country | Link |
---|---|
US (1) | US20030055889A1 (en) |
EP (1) | EP1423972A1 (en) |
JP (1) | JP2005501355A (en) |
KR (1) | KR100935586B1 (en) |
CN (1) | CN1290027C (en) |
WO (1) | WO2003019927A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2538340A1 (en) * | 2003-09-12 | 2005-03-31 | Citrix Systems, Inc. | Method and apparatus for generating graphical and media displays at a thin client |
GB0707276D0 (en) * | 2007-04-16 | 2007-05-23 | Adventiq Ltd | Video data transmission |
US20080307412A1 (en) * | 2007-06-06 | 2008-12-11 | Sony Computer Entertainment Inc. | Cached content consistency management |
US8416247B2 (en) | 2007-10-09 | 2013-04-09 | Sony Computer Entertaiment America Inc. | Increasing the number of advertising impressions in an interactive environment |
JP5259683B2 (en) | 2010-11-19 | 2013-08-07 | 株式会社東芝 | Server apparatus and program |
US10198462B2 (en) | 2012-04-05 | 2019-02-05 | Microsoft Technology Licensing, Llc | Cache management |
US20150296054A1 (en) * | 2012-11-15 | 2015-10-15 | Nec Corporation | Server apparatus, terminal, thin client system, screen transmission method and program |
JP6169990B2 (en) * | 2014-02-25 | 2017-07-26 | Kddi株式会社 | Controller proxy program and method in remote automatic operation system |
JP2017151609A (en) * | 2016-02-23 | 2017-08-31 | 株式会社東芝 | Storage, and storage system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11219312A (en) * | 1998-02-04 | 1999-08-10 | Hitachi Ltd | Data cache method and data access method |
US6061714A (en) * | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
WO2000060874A1 (en) * | 1999-04-06 | 2000-10-12 | Koninklijke Philips Electronics N.V. | Motion estimation |
WO2001001692A1 (en) * | 1999-06-28 | 2001-01-04 | Valtion Teknillinen Tutkimuskeskus | Procedure and system for performing motion estimation |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2796329B2 (en) * | 1989-02-08 | 1998-09-10 | 株式会社日立製作所 | Display memory and image processing apparatus having the same |
JPH04273351A (en) * | 1991-02-27 | 1992-09-29 | Nec Corp | Information processor |
US5402492A (en) * | 1993-06-18 | 1995-03-28 | Ast Research, Inc. | Security system for a stand-alone computer |
JPH07311710A (en) * | 1994-05-17 | 1995-11-28 | Mitsubishi Electric Corp | Buffer cache managing method for computer |
US6473609B1 (en) * | 1995-12-11 | 2002-10-29 | Openwave Systems Inc. | Method and architecture for interactive two-way communication devices to interact with a network |
US6205253B1 (en) * | 1996-08-19 | 2001-03-20 | Harris Corporation | Method and apparatus for transmitting and utilizing analog encoded information |
US6138141A (en) * | 1996-10-18 | 2000-10-24 | At&T Corp | Server to client cache protocol for improved web performance |
US5787470A (en) * | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
US5913033A (en) * | 1996-12-20 | 1999-06-15 | International Business Machines Corporation | Apparatus and method for retrieving information using standard objects |
US5898849A (en) * | 1997-04-04 | 1999-04-27 | Advanced Micro Devices, Inc. | Microprocessor employing local caches for functional units to store memory operands used by the functional units |
US5933849A (en) * | 1997-04-10 | 1999-08-03 | At&T Corp | Scalable distributed caching system and method |
US6272257B1 (en) * | 1997-04-30 | 2001-08-07 | Canon Kabushiki Kaisha | Decoder of variable length codes |
US5907678A (en) * | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
US6256712B1 (en) * | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US6000015A (en) * | 1997-09-16 | 1999-12-07 | Unisys Corporation | Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache |
US6151020A (en) * | 1997-10-24 | 2000-11-21 | Compaq Computer Corporation | Real time bit map capture and sharing for collaborative tools |
US6393526B1 (en) * | 1997-10-28 | 2002-05-21 | Cache Plan, Inc. | Shared cache parsing and pre-fetch |
US6112279A (en) * | 1998-03-31 | 2000-08-29 | Lucent Technologies, Inc. | Virtual web caching system |
US6272593B1 (en) * | 1998-04-10 | 2001-08-07 | Microsoft Corporation | Dynamic network cache directories |
US6341311B1 (en) * | 1998-05-29 | 2002-01-22 | Microsoft Corporation | Directing data object access requests in a distributed cache |
US6377991B1 (en) * | 1998-05-29 | 2002-04-23 | Microsoft Corporation | Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs |
US6219725B1 (en) * | 1998-08-28 | 2001-04-17 | Hewlett-Packard Company | Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations |
US6438652B1 (en) * | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
US7446774B1 (en) * | 1998-11-09 | 2008-11-04 | Broadcom Corporation | Video and graphics system with an integrated system bridge controller |
US6233606B1 (en) * | 1998-12-01 | 2001-05-15 | Microsoft Corporation | Automatic cache synchronization |
US6453342B1 (en) * | 1998-12-03 | 2002-09-17 | International Business Machines Corporation | Method and apparatus for selective caching and cleaning of history pages for web browsers |
US6959300B1 (en) * | 1998-12-10 | 2005-10-25 | At&T Corp. | Data compression method and apparatus |
US6351767B1 (en) * | 1999-01-25 | 2002-02-26 | International Business Machines Corporation | Method and system for automatically caching dynamic content based on a cacheability determination |
US6408360B1 (en) * | 1999-01-25 | 2002-06-18 | International Business Machines Corporation | Cache override control in an apparatus for caching dynamic content |
US6463509B1 (en) * | 1999-01-26 | 2002-10-08 | Motive Power, Inc. | Preloading data in a cache memory according to user-specified preload criteria |
JP3966636B2 (en) * | 1999-02-18 | 2007-08-29 | 富士通株式会社 | Supervisory control system |
US6427172B1 (en) * | 1999-07-20 | 2002-07-30 | Cyberstar, L.P. | Method and apparatus for internet cache content delivery via a data distribution system |
US6470437B1 (en) * | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US7127525B2 (en) * | 2000-05-26 | 2006-10-24 | Citrix Systems, Inc. | Reducing the amount of graphical line data transmitted via a low bandwidth transport protocol mechanism |
US6864895B1 (en) * | 2000-05-30 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Pseudo-linear frame buffer mapping system and method |
US6553388B1 (en) * | 2000-07-20 | 2003-04-22 | International Business Machines Corporation | Database deltas using Cyclic Redundancy Checks |
US7035912B2 (en) * | 2000-08-28 | 2006-04-25 | Abaco.P.R., Inc. | Method and apparatus allowing a limited client device to use the full resources of a networked server |
US6978021B1 (en) * | 2000-09-18 | 2005-12-20 | Navteq North America, Llc | Encryption method for distribution of data |
US6768942B1 (en) * | 2000-09-18 | 2004-07-27 | Navigation Technologies Corp. | Navigation system with decryption functions and secure geographic database |
US6477622B1 (en) * | 2000-09-26 | 2002-11-05 | Sun Microsystems, Inc. | Simplified writeback handling |
US6976151B1 (en) * | 2000-09-28 | 2005-12-13 | Intel Corporation | Decoding an instruction portion and forwarding part of the portion to a first destination, re-encoding a different part of the portion and forwarding to a second destination |
US6470426B2 (en) * | 2000-12-15 | 2002-10-22 | International Business Machines Corporation | Method and apparatus for loading a cache with data with a subsequent purge of stale cache information |
US7155676B2 (en) * | 2000-12-19 | 2006-12-26 | Coolernet | System and method for multimedia authoring and playback |
US6651143B2 (en) * | 2000-12-21 | 2003-11-18 | International Business Machines Corporation | Cache management using a buffer for invalidation requests |
US20020091819A1 (en) * | 2001-01-05 | 2002-07-11 | Daniel Melchione | System and method for configuring computer applications and devices using inheritance |
US20020095475A1 (en) * | 2001-01-17 | 2002-07-18 | Prasad Krothapalli | Frame handling for a thin client |
US20020129096A1 (en) * | 2001-02-14 | 2002-09-12 | Mansour Peter M. | Platform-independent distributed user interface client architecture |
US7155681B2 (en) * | 2001-02-14 | 2006-12-26 | Sproqit Technologies, Inc. | Platform-independent distributed user interface server architecture |
JP2002251313A (en) * | 2001-02-23 | 2002-09-06 | Fujitsu Ltd | Cache server and distributed cache server system |
US6993594B2 (en) * | 2001-04-19 | 2006-01-31 | Steven Schneider | Method, product, and apparatus for requesting a resource from an identifier having a character image |
US6927776B2 (en) * | 2001-05-17 | 2005-08-09 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and method |
US6995771B2 (en) * | 2001-12-07 | 2006-02-07 | Intel Corporation | Sparse refresh of display |
US6888551B2 (en) * | 2001-12-07 | 2005-05-03 | Intel Corporation | Sparse refresh of display |
US7447997B2 (en) * | 2002-05-30 | 2008-11-04 | Microsoft Corporation | Reducing information transfer in screen capture series |
US7302648B1 (en) * | 2002-07-10 | 2007-11-27 | Apple Inc. | Method and apparatus for resizing buffered windows |
-
2002
- 2002-08-16 CN CNB028167228A patent/CN1290027C/en not_active Expired - Fee Related
- 2002-08-16 WO PCT/IB2002/003360 patent/WO2003019927A1/en active Application Filing
- 2002-08-16 EP EP02755536A patent/EP1423972A1/en not_active Withdrawn
- 2002-08-16 KR KR1020047002829A patent/KR100935586B1/en not_active IP Right Cessation
- 2002-08-16 JP JP2003524248A patent/JP2005501355A/en active Pending
- 2002-08-26 US US10/227,673 patent/US20030055889A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061714A (en) * | 1997-05-07 | 2000-05-09 | International Business Machines Corporation | Persistent cache synchronization and start up system |
JPH11219312A (en) * | 1998-02-04 | 1999-08-10 | Hitachi Ltd | Data cache method and data access method |
WO2000060874A1 (en) * | 1999-04-06 | 2000-10-12 | Koninklijke Philips Electronics N.V. | Motion estimation |
WO2001001692A1 (en) * | 1999-06-28 | 2001-01-04 | Valtion Teknillinen Tutkimuskeskus | Procedure and system for performing motion estimation |
Also Published As
Publication number | Publication date |
---|---|
KR20040031006A (en) | 2004-04-09 |
JP2005501355A (en) | 2005-01-13 |
WO2003019927A1 (en) | 2003-03-06 |
EP1423972A1 (en) | 2004-06-02 |
CN1290027C (en) | 2006-12-13 |
CN1547851A (en) | 2004-11-17 |
US20030055889A1 (en) | 2003-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8254704B2 (en) | Remote computing platforms providing high-fidelity display and interactivity for clients | |
KR100540495B1 (en) | A method and apparatus for compressing a continuous, indistinct data stream | |
US7986844B2 (en) | Optimized video compression using hashing function | |
US8929402B1 (en) | Systems and methods for compressing packet data by predicting subsequent data | |
US7672005B1 (en) | Methods and apparatus for scan block caching | |
US7343037B1 (en) | Dynamic, locally-adaptive, lossless palettization of color and grayscale images | |
US20080252495A1 (en) | System and program for using a reentry data set to decode compressed data | |
US9866656B2 (en) | System and method for single KVM client accommodating multiple different video compression technologies | |
KR20040104515A (en) | Method and apparatus for generating graphical and media displays at a client | |
CN109040786B (en) | Camera data transmission method, device and system and storage medium | |
JP2009506456A (en) | Remote protocol support for large object communication in any format | |
KR100935586B1 (en) | Cache method | |
US8326061B2 (en) | Fast visual degrading of images | |
CN112035081A (en) | Screen projection method and device, computer equipment and storage medium | |
US8977068B2 (en) | Transform space difference compression | |
US8473428B2 (en) | Generation and use of specific probability tables for arithmetic coding in data compression systems | |
CN110868599B (en) | Video compression method of remote desktop | |
CN105610979B (en) | Network resource transmission system and method based on virtualization technology | |
CN101401431A (en) | Information transfer apparatus, information receiving apparatus and computer program | |
KR100586693B1 (en) | Image transcoding apparatus for reducing gif size and it's method | |
CN116489476A (en) | Image transmission method, device, equipment and storage medium | |
CN117596144A (en) | Method and device for acquiring background data | |
CN116980619A (en) | Video processing method, device, equipment and storage medium | |
CN117435146A (en) | Code stream generation method, system and device, electronic equipment and storage medium | |
CN116366070A (en) | Wavelet coefficient coding method, device, system, equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |