[go: up one dir, main page]

KR20030060713A - Method for caching font data in thin client/server system - Google Patents

Method for caching font data in thin client/server system Download PDF

Info

Publication number
KR20030060713A
KR20030060713A KR1020020001661A KR20020001661A KR20030060713A KR 20030060713 A KR20030060713 A KR 20030060713A KR 1020020001661 A KR1020020001661 A KR 1020020001661A KR 20020001661 A KR20020001661 A KR 20020001661A KR 20030060713 A KR20030060713 A KR 20030060713A
Authority
KR
South Korea
Prior art keywords
font
thin client
server
command
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
KR1020020001661A
Other languages
Korean (ko)
Inventor
신재규
Original Assignee
(주) 씨네티아 정보통신
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 씨네티아 정보통신 filed Critical (주) 씨네티아 정보통신
Priority to KR1020020001661A priority Critical patent/KR20030060713A/en
Publication of KR20030060713A publication Critical patent/KR20030060713A/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Landscapes

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

Abstract

본 발명은 서버에서 실행된 응용프로그램 결과를 표시하도록 씬 클라이언트로 전송되는 폰트이미지를 압축, 전송하지 않고, 씬 클라이언트로 변경된 폰트에 대한 데이터만을 매핑하여 전송하고 씬클라이언트에서 자체적으로 표시하도록 구성된 씬 클라이언트-서버시스템의 폰트캐쉬 제어방법에 관한 것이다.According to the present invention, a thin client configured to map and transmit only data on a changed font to a thin client and display the same on the thin client without compressing or transmitting a font image transmitted to the thin client to display an application program executed on a server. It relates to the font cache control method of the server system.

본 발명의 씬 클라이언트-서버시스템의 폰트캐쉬 제어방법은 씬 클라이언트/서버의 양자에 의하여 상호작용하여 실행되며, 서버에서는 자체적으로 처리하여야 할 이미지압축에 대한 부하를 대폭 감소시킴으로써 서버의 작동부하가 감소되고, 또한 종래 이미지압축으로 전송되는 데이터전송량에 비하여 데이터전송량이 현저하게 감소함으로써 네트웍의 트래픽을 감소시킬 수 있으며, 또한 씬 클라이언트의 한정된 자원의 활용도를 높일 수 있는 이점을 가진다.The font cache control method of the thin client-server system of the present invention is executed by interacting with both thin clients / servers, and the server operation load is reduced by drastically reducing the load on image compression to be processed by the server itself. In addition, since the data transmission amount is significantly reduced compared to the data transmission amount transmitted by conventional image compression, it is possible to reduce the traffic of the network and also increase the utilization of limited resources of the thin client.

Description

씬 클라이언트/서버시스템의 폰트캐쉬 제어방법{Method for caching font data in thin client/server system}Method for caching font data in thin client / server system

본 발명은 서버에서 실행된 응용프로그램 결과를 표시하도록 씬 클라이언트로 전송되는 폰트이미지를 압축, 전송하지 않고, 씬 클라이언트로 변경된 폰트에 대한 데이터와 가상인덱스만을 매핑하여 전송하고 씬클라이언트에서 자체적으로 폰트를 표시하도록 구성함으로써 서버시스템의 작동부하와 네트웍의 트래픽을 감소시키고 또한 한정된 자원의 활용도를 높일 수 있는 씬 클라이언트-서버시스템의 폰트캐쉬 제어방법에 관한 것이다.The present invention does not compress and transmit the font image transmitted to the thin client to display the result of the application executed on the server, and transmits only the data and the virtual indexes for the changed font to the thin client, and transmits the font itself in the thin client. The present invention relates to a font cache control method of a thin client-server system that can reduce the operation load of the server system and the traffic of the network and increase the utilization of limited resources by configuring the display.

퍼스널 컴퓨터(PC)가 점차 대형화, 고비용화됨으로서 발생되는 제반 문제, 특히 전체적인 비용(TCO)의 상승과 인터넷서핑, 증권접속등의 업무이외의 활동에 많은 시간을 빼앗기는 문제점등을 해결하기 위하여 씬 클라이언트/서버시스템(thin client/server system)이 각광받고 있다. 씬 클라이언트(thin clinet)는 사용자의 작동에 필요한 최소한의 사양을 갖춘 가볍고 날씬한 단말기(terminal)를 의미하는 것으로서, 그동안 책상 한 모퉁이를 차지했던 크고 무거운 PC를 대체하기 위하여 개발되고 있다.In order to solve the problems caused by the increasing size and cost of personal computers (PCs), in particular, the increase in total cost (TCO) and the deprivation of time for non-business activities such as Internet surfing and securities access, etc. The thin client / server system is in the spotlight. Thin clinet refers to a lightweight, thin terminal with minimal requirements for user operation, and is being developed to replace a large, heavy PC that has taken up a corner of a desk.

도 1에 도시된 것은 종래 사용되는 씬 클라이언트/서버시스템의 연결상태도이다. 도시된 바와 같이, 고성능 서버(101)와 다수의 씬 클라이언트(130)가 네트웍을 통하여 연결되어 있으며, 씬 클라이언트(130)로부터의 요구에 의하여 서버(101)는 서버에 설치되어 있는 특정응용프로그램을 수행하고, 수행결과에 의하여 변경된 영역의 이미지를 압축, 전송하여 씬 클라이언트(130)의 모니터화면상으로 출력하게 된다.1 is a diagram illustrating a connection state of a conventional thin client / server system. As shown, the high performance server 101 and a plurality of thin clients 130 are connected through a network, and the server 101 requests a specific application installed in the server by a request from the thin client 130. The image of the region changed according to the result of the execution is compressed and transmitted to be output on the monitor screen of the thin client 130.

이러한 씬 클라이언트(단말기)(130)는 외형뿐만 아니라, 작동방식이 종래 PC와는 근본적으로 다르게 작동된다. 이것은 씬 클라이언트시스템의 또 다른 명칭인 '서버 기반 컴퓨팅'으로부터 알 수 있는 바와 같이, 서버(101)에 모든 응용프로그램(애플리케이션)들을 설치한 상태에서 씬 클라이언트(130)는 특정 응용프로그램이 필요할 때마다 서버(101)에 접속하여 해당 응용프로그램을 작동시키고 서버(101)에서는 응용프로그램의 결과(변경된 이미지)만을 씬 클라이언트로 전송하여 모니터화면에 표시하는 방식으로 구동된다.This thin client (terminal) 130 operates not only in appearance, but also fundamentally different from the conventional PC. This can be seen from another name of the thin client system, 'server-based computing', where the thin client 130 is installed every time an application is needed with the server 101 installed. It connects to the server 101 to operate the corresponding application, and the server 101 is driven by transmitting only the result of the application (the changed image) to the thin client and displaying it on the monitor screen.

도 2에는 상기와 같은 서버(101)와 씬 클라이언트(130)의 간략화된 블럭구성이 표시되어 있다. 이것을 참고하여 종래 씬 클라이언트/서버시스템의 작동과정(process)를 간단히 설명하면 다음과 같다.2 shows a simplified block configuration of the server 101 and the thin client 130 as described above. Referring to this, the process of the conventional thin client / server system is briefly described as follows.

씬 클라이언트(130)로부터 사용자가 키보드 또는 마우스(미도시됨) 등을 이용하여 특정응용프로그램을 작동시키도록 제어부(134)에 요구하면, 제어부(134)로부터 해당 요구신호가 데이터송수신부(131)(106)를 통하여 서버(101)의 제어부(105)에 입력되고, 제어부(105)에서는 해당 응용프로그램을 응용프로그램적재부(102)로부터 실행시킨다. 서버(101)에서는 해당 응용프로그램을 실행시킨 후에씬 클라이언트(130)에 대하여 각각 할당된 프레임버퍼(103)에 해당 응용프로그램의 작동 결과로부터 발생된 변경된 이미지를 기록하고, 변경된 영역의 이미지를 압축하여 데이터송수신부(106)(131)를 통하여 전송한다. 프레임버퍼(103)는 해당 씬 클라이언트에 대하여 각각 할당되어서 다른 씬 클라이언트와 분리/보호된다.When the user requests the control unit 134 to operate a specific application by using a keyboard or a mouse (not shown) from the thin client 130, a corresponding request signal is transmitted from the control unit 134 to the data transmission / reception unit 131. It is input to the control part 105 of the server 101 via 106, and the control part 105 makes the said application program run from the application program loading part 102. FIG. After executing the application, the server 101 records the changed image generated from the operation result of the application in the frame buffer 103 allocated to the thin client 130 and compresses the image of the changed area. The data transmission / reception unit 106 or 131 transmits the data. The frame buffer 103 is allocated to the corresponding thin client and separated / protected from other thin clients.

씬 클라이언트(130)로 전송된 압축 이미지 데이터들은 디코더(132)에 의하여 디코딩된 후에 시각적으로 표시되기 위하여 비디오메모리(133)에 저장된다. 씬 클라이언트(130) 사용자는 폰트가 표시된 모니터화면을 보고 필요한 명령이나 데이터등을 입력시킨 후에 서버(101)로 전송하면, 서버(101)의 해당 응용프로그램에서 입력데이터를 이용하여 응용프로그램을 실행하고 새롭게 변화된 영역의 이미지 데이터들을 다시 프레임버퍼(103)에 저장하였다가 압축, 전송한다.The compressed image data transmitted to the thin client 130 is stored in the video memory 133 to be visually displayed after being decoded by the decoder 132. When the thin client 130 sees the monitor screen on which the font is displayed, inputs a necessary command or data, and then transmits the same to the server 101, the thin client 130 executes the application program using the input data in the corresponding application program of the server 101. The image data of the newly changed area is stored in the frame buffer 103 again, and then compressed and transmitted.

이러한 구동방식에 의하여, 씬 클라이언트(130)에 장착되는 메모리나 하드디스크의 용량이 커야 할 필요가 없으며, 또한 씬 클라이언트와 서버가 네트워크로 연결만 되어 있다면 서버에 연결된 CD롬 드라이브나 플로피디스크 드라이브를 이용하는 것이 가능하므로 하드웨어 구입 비용을 감소시킬 수 있으며, 또한 응용프로그램을 모든 씬 클라이언트 시스템에 설치할 필요가 없기 때문에 응용프로그램의 구입비용이 역시 감소되는 이점을 가진다.By such a driving method, the capacity of the memory or hard disk mounted in the thin client 130 does not need to be large. Also, if the thin client and the server are connected to a network, a CD-ROM drive or a floppy disk drive connected to the server may be used. It can be used to reduce the cost of hardware purchase, and also has the advantage that the cost of purchasing the application is also reduced because the application does not need to be installed on all thin client systems.

실제로 씬 클라이언트/서버시스템의 일실시예에서 씬 클라이언트는 키보드와, 마우스와, 모니터화면을 구비하고 있으며, 서버에서는 씬 클라이언트의 요구에 의하여 분리/보호된 프레임버퍼를 생성하고, 사용자별로 사용하는 응용프로그램의 수행결과들을 프레임버퍼에 기록하고, 씬 클라이언트의 요청 또는 프레임버퍼의 내용갱신시에 프레임버퍼의 내용을 압축하여 씬 클라이언트로 전송한다. 전송된 데이터들은 씬 클라이언트에서 압축이 해제된 후에 모니터를 통하여 표시된다.In fact, in one embodiment of the thin client / server system, the thin client has a keyboard, a mouse, and a monitor screen. In the server, an application that creates a framebuffer separated / protected according to the thin client's request, and uses it for each user The execution results of the program are recorded in the frame buffer, and the contents of the frame buffer are compressed and transmitted to the thin client when the thin client requests or updates the contents of the frame buffer. The transmitted data is displayed on the monitor after decompression on the thin client.

그러나 상기와 같은 이점에도 불구하고 하나의 서버(101)에서 다수의 씬 클라이언트들로 부터의 요구를 모두 처리하여야 하기 때문에 동시처리발생시에는 서버(101)에 과부하가 걸리는 문제점이 발생된다.However, in spite of the above advantages, since one server 101 must process all requests from a plurality of thin clients, a problem occurs that the server 101 is overloaded when concurrent processing occurs.

이것을 상세히 설명하면, 씬 클라이언트/서버시스템에서의 핵심기술은 프레임버퍼에 생성된 이미지를 클라이언트와 서버간에 실시간적으로 동기화시키는 것이다. 서버는 프레임버퍼내의 변경된 이미지 영역만을 압축하여 씬 클라이언트에게 전송하고, 이를 수신한 씬 클라이언트는 전송받은 데이터의 압축을 해제하고 그 데이터를 사용한다.To explain this in detail, a key technique in thin client / server systems is to synchronize the image created in the framebuffer in real time between the client and server. The server compresses only the changed image area in the frame buffer and transmits it to the thin client. The received thin client decompresses the received data and uses the data.

이 때 서버에서는 씬 클라이언트와의 프레임버퍼의 동기화를 위해 변경된 영역, 예를 들어 폰트(font) 이미지를 전송할 데이터를 준비하는 연산을 위해 대부분의 시스템자원을 소모하게 된다. 따라서 다수의 씬 클라이언트가 동시에 서버에 접속하여 작동되는 경우에 일시적으로 서버시스템이 처리할 수 있는 용량보다 더욱 많은 부하가 걸리게 되어서 씬 클라이언트와 서버간의 프레임버퍼동기화가 잘 이루어지지 않으며, 데이터처리가 늦어지는 문제점이 발생된다. 또한 이러한 문제점을 해결하기 위하여 서버의 성능을 높이는 것이 가능하지만 비용상승의 측면에서 바람직하지 않다.At this time, the server consumes most of the system resources for preparing the data to transmit the changed area, for example, a font image, for synchronization of the frame buffer with the thin client. Therefore, when multiple thin clients are connected to the server at the same time, the load is temporarily higher than the server system can handle, and the frame buffer synchronization between the thin client and the server is not well performed and data processing is slow. Losing problems occur. In addition, it is possible to increase the performance of the server to solve this problem, but it is not preferable in terms of cost increase.

본 발명은 상기한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 서버에서 실행된 응용프로그램 결과를 표시하도록 씬 클라이언트로 전송되는 폰트이미지를 압축, 전송하지 않고, 씬 클라이언트로 변경된 폰트에 대한 데이터와 가상인덱스만을 매핑하여 전송하고 씬클라이언트에서 자체적으로 폰트를 표시하도록 구성함으로써 서버시스템의 작동부하와 네트웍의 트래픽을 감소시키고 또한 한정된 자원의 활용도를 높일 수 있는 씬 클라이언트-서버시스템의 폰트캐쉬 제어방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to compress the font image transmitted to the thin client so as to display the result of the application program executed on the server, and to transmit data on the font changed to the thin client. By mapping only the virtual indexes and configuring the thin client to display the fonts on its own, the font cache control method of the thin client-server system can reduce the server system's operating load and network traffic and increase the utilization of limited resources. To provide.

도 1은 종래 사용되는 씬 클라이언트/서버시스템의 개략적인 연결상태도,1 is a schematic connection state diagram of a conventional thin client / server system;

도 2는 도 1의 씬 클라이언트/서버시스템의 개략적인 블럭구성도,2 is a schematic block diagram of the thin client / server system of FIG. 1;

도 3은 본 발명에 의한 씬클라이언트/서버시스템의 블럭구성도,3 is a block diagram of a thin client / server system according to the present invention;

도 4는 서버에서 실행되는 폰트캐싱과정을 나타내는 플로우차트,4 is a flowchart showing a font caching process executed in a server;

도 5는 씬클라이언트에서 실행되는 폰트캐싱과정을 나타내는 플로우차트.5 is a flowchart illustrating a font caching process executed in a thin client.

※도면의 주요부분에 대한 부호의 설명※※ Explanation of symbols about main part of drawing ※

101: 서버(시스템) 102: 응용프로그램적재부101: server (system) 102: loading application

103: 프레임버퍼 104: 인코더103: frame buffer 104: encoder

105: 제어부 106: 데이터송수신부105: control unit 106: data transmission and reception unit

130: 씬 클라이언트 131: 데이터송수신부130: thin client 131: data transmission and reception unit

132: 디코더 133: 비디오메모리132: decoder 133: video memory

134: 제어부 201: 서버134: control unit 201: server

202: 응용프로그램적재부 203: 프레임버퍼202: Loading application part 203: Frame buffer

204: 폰트매핑테이블 205: 인코더204: font mapping table 205: encoder

206: 제어부 207: 데이터송수신부206: control unit 207: data transmission and reception unit

230: 씬 클라이언트 231: 데이터송수신부230: thin client 231: data transmission and reception unit

232: 디코더 233: 폰트캐쉬테이블232: decoder 233: font cache table

234: 비디오메모리 235: 제어부234: video memory 235: control unit

상기 목적을 달성하기 위한 본 발명의 씬 클라이언트-서버시스템에서의 폰트캐쉬 제어방법은, 다수의 응용프로그램을 저장하고 있으며 씬 클라이언트로부터의 요청에 의하여 서버에서 특정 응용프로그램을 단독, 또는 동시에 수행하고 결과데이터를 클라이언트로 전송하여 표시하는 클라이언트/서버 시스템에 있어서, 상기 서버가, 응용프로그램의 실행결과에 따라서 표시되어야 할 폰트들의 입력을 요청받으면 할당된 프레임버퍼에 해당 폰트데이터를 출력하는 제1단계; 폰트데이터의 출력후에, 폰트매핑테이블에 출력할 폰트가 캐쉬었는가를 판단하고, 캐쉬되어 있으면 해당 폰트의 폰트매핑테이블의 가상인덱스를 획득하고, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제2단계; 폰트매핑테이블에 출력할 폰트가 캐쉬되어 있지 않으면 빈 캐쉬영역이 있는 가를 검색하여, 빈 캐쉬영역이 존재하면 서버의 폰트매핑테이블에 해당 폰트를 등록하고 해당 폰트데이터를 클라이언트 캐쉬측에 저장하도록 전송하며, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제3단계; 빈 캐쉬영역이 존재하지 않으면 폰트매핑테이블내의 가장 오래된 (폰트)인덱스를 삭제하고 씬 클라이언트의 해당 폰트인덱스를 제거하기 위한 명령을 전송하고, 서버의 폰트매핑테이블에 해당 폰트를 등록하고 해당 폰트데이터를 클라이언트 캐쉬측에 저장하도록 전송하며, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제4단계;를 포함하며, 상기 씬 클라이언트가, 상기 서버로부터 전송된 데이터를 수신하고, 명령을 판독하는 제5단계; 판독된 명령이 폰트캐쉬명령이면 캐쉬영역을 검색하여 빈 캐쉬영역이 존재하면 폰트를 캐쉬하고, 빈 캐쉬영역이 존재하지 않으면 폰트캐쉬테이블내의 가장 오래된 가상인덱스와 폰트데이터를 삭제한 후에 캐쉬하는 제6단계; 상기 제6단계에서의 폰트 캐쉬후에 캐쉬된 폰트의 해당 가상인덱스가 캐쉬되었음을 서버에 통보하는 제7단계; 폰트캐쉬명령이 아니면 폰트를 제거하는 명령인가를 판독하여, 제거명령이면 폰트캐쉬(테이블)영역의 해당 폰트를 제거한 후에 서버에 해당 가상인덱스가 삭제됨을 통보하는 제8단계; 폰트제거명령이 아니면 폰트를 출력하는 명령인가를 판단하여 폰트출력명령이면 해당 가상인덱스에 대한 폰트를 출력하고, 폰트출력명령이 아니면 해당 명령을 수행하는 제9단계를 포함한다.Font cache control method in the thin client-server system of the present invention for achieving the above object, and stores a plurality of applications, and by executing a specific application in the server alone or at the same time by the request from the thin client results A client / server system for transmitting data to a client and displaying the data, the server comprising: a first step of outputting corresponding font data to an allocated frame buffer when the server is requested to input fonts to be displayed according to an execution result of an application program; After outputting the font data, it is determined whether the font to be output to the font mapping table is cached, and if it is cached, the virtual index of the font mapping table of the corresponding font is obtained, and the virtual index is output to the thin client side. Transmitting a virtual index group; If the font to be printed in the font mapping table is not cached, it searches whether there is an empty cache area. If there is an empty cache area, it registers the font in the font mapping table of the server and transmits the font data to the client cache side. Transmitting a virtual index group and a command for outputting the corresponding virtual index to the thin client side; If there is no empty cache area, delete the oldest (font) index in the font mapping table, send a command to remove the corresponding font index from the thin client, register the font in the server's font mapping table, and print the font data. A fourth step of transmitting a virtual index group and a command for outputting the virtual index to the thin client side, and transmitting the data to be stored at the client cache side, wherein the thin client receives data transmitted from the server. A fifth step of reading a command; If the read command is a font cache command, the cache area is searched for, and if there is an empty cache area, the font is cached. If there is no empty cache area, the sixth cache is deleted after deleting the oldest virtual index and font data in the font cache table. step; A seventh step of notifying the server that the virtual index of the cached font is cached after the font cache in the sixth step; An eighth step of reading whether it is a command for removing a font if it is not a font cache command, and if not, removing the corresponding font in the font cache (table) area and notifying the server that the corresponding virtual index is deleted; If it is not the font removal command, it is determined whether it is a command for outputting a font, and if it is a font output command, the font for the corresponding virtual index is output, and if it is not a font output command, the ninth step of performing the command is performed.

이하 첨부된 도면을 참고하여 본 발명의 씬 클라이언트-서버시스템에서의 폰트캐쉬 제어방법을 상세히 설명하면 다음과 같다.Hereinafter, a font cache control method in the thin client-server system of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명에 의한 폰트매핑테이블(204)과 폰트캐쉬테이블(233)이 더 구비된 서버(201)와 씬 클라이언트(230)의 구성을 나타내는 블럭도이다. 이것을 도 2와 비교하면, 폰트매핑테이블(204)과 폰트캐쉬테이블(233)이 더 추가된 것에 특징이 있음을 알 수 있다. 먼저, 각각의 구성요소들에 대하여 간단히 설명한다.3 is a block diagram illustrating a configuration of a server 201 and a thin client 230 further including a font mapping table 204 and a font cache table 233 according to the present invention. Comparing this with FIG. 2, it can be seen that the font mapping table 204 and the font cache table 233 are further added. First, each component is briefly described.

서버(201)는 응용프로그램적재부(202), 프레임버퍼(203), 인코더(205), 폰트매핑테이블(204), 제어부(206), 및 데이터송수신부(207)를 포함하고 있으며, 씬 클라이언트(230)는 데이터송수신부(231), 디코더(232), 제어부(235), 폰트캐쉬테이블(233), 및 비디오메모리(234)로 구성되어 있다.The server 201 includes an application program loading unit 202, a frame buffer 203, an encoder 205, a font mapping table 204, a control unit 206, and a data transmission / reception unit 207, and a thin client. 230 includes a data transmitter / receiver 231, a decoder 232, a controller 235, a font cache table 233, and a video memory 234.

상기 응용프로그램적재부(202)는 OS상에서 지원하는 모든 응용프로그램(applications)들을 포함하며, 통상 하드디스크드라이브(HDD)와 같은 저장매체로서, 컴퓨터OS(리눅스, 윈도우2000서버, 유닉스등)에서 실행되는 모든 응용프로그램이 설치(install)될 수 있다. 본 발명에서의 "폰트"(Glyph)들은 사용자가 입력하는 문자, 응용프로그램이 출력하는 문자들을 의미한다. 적재된 응용프로그램들은 제어부(206)에 의하여 실행된다. 캐쉬(cached)는 컴퓨터 및 관련분야에서 통상 사용되는 의미로 사용되었다.The application program loading unit 202 includes all applications supported on the OS, and is typically a storage medium such as a hard disk drive (HDD), and runs on a computer OS (Linux, Windows 2000 server, Unix, etc.). Any application that can be installed can be installed. In the present invention, "fonts" (glyphs) refer to characters input by a user and characters output by an application program. The loaded application programs are executed by the controller 206. Cached is used in the sense commonly used in computers and related fields.

상기 프레임버퍼(203)는 디스플레이되기 위한 데이터(특히 폰트데이터)들이 일시적으로 저장되는 공간으로서, 통상 사용되는 메모리소자를 이용하여 구성할 수 있다.The frame buffer 203 is a space in which data (especially font data) to be displayed is temporarily stored, and may be configured by using a memory device that is commonly used.

상기 인코더(205)는 프레임버퍼(203)의 데이터와 여러 가지 명령어(command)들을 씬 클라이언트(230)로 전송하기 위하여 인코딩하는 것으로서, 특히 데이터를 압축하는 기능을 수행한다.The encoder 205 encodes data of the frame buffer 203 and various commands for transmission to the thin client 230, and in particular, compresses data.

또한 상기 데이터송수신부(207)는 소켓(socket)으로 구성되어 있으며, 씬 클라이언트(230)의 데이터 송수신부(231)과 데이터를 주고 받는다.In addition, the data transmission and reception unit 207 is composed of a socket (socket), and exchanges data with the data transmission and reception unit 231 of the thin client 230.

상기 폰트매핑테이블(204)은 응용프로그램과 제어부(206)로부터 출력하고자 하는 폰트(glyph)의 실제 인덱스와 가상 인텍스를 n : 1로 맵핑(mapping) 하는 것으로서, 후에 상술된다.The font mapping table 204 maps an actual index and a virtual index of a glyph to be output from the application program and the controller 206 to n: 1, which will be described later.

씬 클라이언트(230)의 데이터송수신부(231)는 서버(201)의 데이터송수신부(207)에서 전송되는 데이터를 수신하고, 씬 클라이언트의 요청을 서버(201)의 데이터송수신부(207)로 전달하는 기능을 수행한다.The data transmission / reception unit 231 of the thin client 230 receives data transmitted from the data transmission / reception unit 207 of the server 201, and transmits a request of the thin client to the data transmission / reception unit 207 of the server 201. It performs the function.

씬 클라이언트 디코더(232)는 서버(201)의 인코더(205)에 의하여 압축된 데이터를 수신하여 복원하여 출력한다.The thin client decoder 232 receives, decompresses and outputs the data compressed by the encoder 205 of the server 201.

씬 클라이언트 제어부(235)는 디코더(232)에 의하여 복원된 데이터중에서 명령어(command)와 데이터를 분리하고, 명령어에 따라서 서버(201)에서 전송되는 가상 인덱스에 해당되는 폰트데이터를 비디오메모리(234)에 출력하는 등의 명령을 수행한다.The thin client controller 235 separates a command and data from the data restored by the decoder 232, and outputs font data corresponding to a virtual index transmitted from the server 201 according to the command. Perform commands such as output to

또한 씬 클라이언트 폰트캐쉬테이블(233)은 씬 클라이언트(230)의 제어부(235)로부터 전송되는 가상 인덱스값을 검색하고 제어부(235)의 지시에 따라서 가상인덱스에 해당되는 폰트데이터를 비디오메모리(234)에 출력한다.In addition, the thin client font cache table 233 retrieves the virtual index value transmitted from the control unit 235 of the thin client 230, and in accordance with the instruction of the control unit 235, font data corresponding to the virtual index is stored in the video memory 234. Output to

상기와 같은 씬 클라이언트/서버시스템을 이용하여 실행되는 본 발명의 방법을 설명한다. 도 4에는 본 발명의 방법중 서버(201)에서 실행되는 과정이, 도 5에는 씬 클라이언트(230)에서 실행되는 과정이 각각 분리되어 표시되어 있다.The method of the present invention executed using the above thin client / server system is described. 4 shows a process executed in the server 201 of the method of the present invention, and a process executed in the thin client 230 is shown separately in FIG. 5.

먼저 도 4를 참고하여 서버(201)에서의 폰트캐쉬처리 및 폰트데이터전송과정을 설명한다. 사용자에 의하여 특정응용프로그램의 실행명령이 입력되고 그 명령이씬 클라이언트(230)로부터 서버(201)로 전송되면, 제어부(206)에 의하여 해당 응용프로그램이 실행된다. 해당 응용프로그램의 실행중에 씬 클라이언트(230)에서 표시하기 위하여 프레임버퍼(203)로 출력해야 할 폰트입력의 요청이 있으면(S301), 요청된 해당 폰트데이터들을 프레임버퍼(203)에 출력한다(S302). 그리고 씬 클라이언트(230)의 비디오메모리(234)에 저장되어 있는 폰트데이터와 프레임버퍼(203)에 저장된 데이터들의 동기화를 위하여 폰트캐싱작업을 수행한다.First, a font cache process and a font data transfer process in the server 201 will be described with reference to FIG. 4. When a command for executing a specific application is input by a user and the command is transmitted from the thin client 230 to the server 201, the application is executed by the controller 206. If there is a request for font input to be output to the frame buffer 203 in order to be displayed by the thin client 230 while executing the corresponding application program (S301), the requested font data are output to the frame buffer 203 (S302). ). The font caching operation is performed to synchronize the font data stored in the video memory 234 of the thin client 230 and the data stored in the frame buffer 203.

먼저, 폰트캐싱작업에 의하여, 씬 클라이언트(230)로 출력하고자 하는 폰트데이터들이 폰트매핑테이블(font mapping table)(204)에 캐쉬(cached)되어 있는지를 판단한다(S303). 폰트매핑테이블에 출력할 폰트문자가 캐쉬되어 있으면, 그에 따른 해당 폰트의 가상인덱스를 획득한다(S305). 상기 가상인덱스는 제어부(206)에 의하여 이미 저장된 상태이다.First, it is determined whether the font data to be output to the thin client 230 is cached in the font mapping table 204 by the font caching operation (S303). If font characters to be output to the font mapping table are cached, a virtual index of the corresponding font is obtained according to the above (S305). The virtual index is already stored by the controller 206.

제어부(206)에서는 출력할 폰트에 대하여 폰트매핑테이블의 가상(캐쉬)인덱스를 검색한 후에 씬 클라이언트(230)측에 폰트를 출력하도록 하기 위한 명령과 가상인덱스그룹을 데이터송수신부(207)를 통하여 전송하고 종료한다(S308). 전송된 데이터들은 씬 클라이언트(230)에 의하여 처리되며 후에 상세히 설명된다.The control unit 206 retrieves the virtual (cache) index of the font mapping table for the font to be output, and then generates a command and a virtual index group for outputting the font to the thin client 230 through the data transmission / reception unit 207. Transfer and end (S308). The transmitted data is processed by the thin client 230 and described in detail later.

만일, 출력하고자 하는 폰트데이터들이 폰트매핑테이블에 등록되지 않는 것으로 판명되면(S303), 폰트매핑테이블(204)에 빈 캐쉬영역이 남아있는 가를 판단한다(S304). 판단결과, 빈 캐쉬영역이 남은 것으로 판단되면, 서버(201)의 폰트매핑테이블에 폰트를 등록한 후, 해당 폰트를 씬클라이언트(230)의 캐쉬측에 저장하도록 가상인덱스를 포함한 데이터를 전송한다(S309). 그 후에 해당 가상캐쉬인덱스를씬 클라이언트(230) 출력하도록 하기 위한 명령과 가상 인덱스그룹을 전송하고 종료한다(S308).If it is found that the font data to be output is not registered in the font mapping table (S303), it is determined whether an empty cache area remains in the font mapping table 204 (S304). If it is determined that the empty cache area remains, the font is registered in the font mapping table of the server 201 and the data including the virtual index is transmitted to store the font in the cache side of the thin client 230 (S309). ). After that, the command and virtual index group for outputting the virtual cache index and the thin client 230 are terminated (S308).

만일 빈 캐쉬영역이 남아있지 않으면, 폰트매핑테이블(204)내에서 가장 오래된 폰트인덱스를 삭제한다(S306). 그 후에 씬 클라이언트(230)에 있는 해당 폰트인덱스를 제거하기 위한 명령을 씬 클라이언트(230)로 전송한다. 씬 클라이언트(230)의 제어부(235)에서는 입력된 명령에 따라서 해당된 가상폰트인덱스와 폰트데이터를 제거하고 그 결과를 서버(201)의 제어부(206)로 전송한다.If no empty cache area remains, the oldest font index in the font mapping table 204 is deleted (S306). Thereafter, a command for removing the corresponding font index in the thin client 230 is transmitted to the thin client 230. The control unit 235 of the thin client 230 removes the corresponding virtual font index and font data according to the input command and transmits the result to the control unit 206 of the server 201.

서버(201)의 제어부(206)에서는 상기와 같이 빈 캐쉬공간이 확보되었으므로, 서버(201)측 폰트매핑테이블에 폰트를 등록한 후에 해당 폰트캐쉬 인덱스를 씬 클라이언트(230)에 저장하도록 가상인덱스를 포함한 데이터를 전송한다(S309). 그 후에, 해당 가상캐쉬인덱스를 씬 클라이언트(230)측에 출력하도록 하기 위한 명령과 가상캐쉬인덱스그룹을 전송한다(S308).Since the controller 206 of the server 201 secures the empty cache space as described above, the virtual index includes the virtual index to store the font cache index in the thin client 230 after registering the font in the server 201 side font mapping table. Data is transmitted (S309). Thereafter, a command and a virtual cache index group for outputting the corresponding virtual cache index to the thin client 230 are transmitted (S308).

상기와 같이 명령과 가상캐쉬인덱스그룹이 전송되면, 씬 클라이언트(230)에서는 데이터송수신부(231)를 통하여 이 데이터들을 수신한다. 씬 클라이언트(230)에서 실행되는 본 발명의 방법을 도 5를 참고하여 설명한다.When the command and the virtual cache index group are transmitted as described above, the thin client 230 receives the data through the data transmitter / receiver 231. The method of the present invention executed in the thin client 230 is described with reference to FIG.

서버(201)로부터 씬 클라이언트(230)의 데이터 송수신부(231)로 데이터가 수신되면(C401), 입력된 명령을 판독하는 과정을 수행한다(C402). 만일 판독된 명령이 폰트를 캐쉬하라는 명령이면 캐쉬영역이 남아있는가를 판독한다(C403). 빈 캐쉬영역이 남아있으면 폰트를 캐쉬하고(C405), 캐쉬된 폰트의 해당 가상인덱스가 캐쉬되었음을 서버(201)로 통보하고 종료한다(C408).When data is received from the server 201 to the data transceiver 231 of the thin client 230 (C401), a process of reading the input command is performed (C402). If the read command is a command to cache the font, it is read whether a cache area remains (C403). If the empty cache area remains, the font is cached (C405), the server 201 is notified that the corresponding virtual index of the cached font is cached, and ends (C408).

만일, 빈 캐쉬영역이 남아있지 않으면 폰트캐쉬테이블(233)내에서 가장 오래된 가상인덱스와 폰트데이터를 삭제한 후에 전송되어 온 캐쉬한다(C406). 캐쉬된 후에는 캐쉬된 폰트의 해당 가상인덱스가 캐쉬되었음을 서버(201)로 통보하고 종료한다(C408).If the empty cache area remains, the cache is transmitted after deleting the oldest virtual index and font data in the font cache table 233 (C406). After the cache is cached, the server 201 notifies that the corresponding virtual index of the cached font is cached and terminates (C408).

폰트를 캐쉬하라는 명령이 아니면(C402), 캐쉬를 제거(삭제)하라는 명령인가를 판단한다(C404). 만일 캐쉬제거명령이라면, 캐쉬영역의 해당 폰트를 제거한 후에 서버(201)에 해당 가상인덱스가 제거되었음을 통보한다. 그러나 폰트캐쉬를 삭제하라는 명령이 아니면(C404), 폰트를 출력하라는 명령인가를 판단한다(C409).If it is not a command to cache the font (C402), it is determined whether the command is to remove (delete) the cache (C404). If the cache removal command, the server 201 is notified that the virtual index has been removed after removing the font of the cache area. However, if the command is not to delete the font cache (C404), it is determined whether the command to output the font (C409).

폰트를 출력하라는 명령이면, 해당 인덱스에 대한 폰트를 출력하고 종료한다(C410). 출력된 폰트데이터는 모니터화면상에 폰트표시에 사용된다. 만일 폰트를 출력하라는 명령이 아니면(C409), 해당 명령을 수행하고 그 결과를 반환한다.If the command to output the font, the font for the index is output and ends (C410). The printed font data is used for font display on the monitor screen. If the command is not to print the font (C409), the command is executed and the result is returned.

이와 같은 본 발명에 의하면 서버시스템에서 응용프로그램의 실행결과에 따라서 씬 클라이언트에서 표시되기 위하여 전송되는 폰트데이터를 씬 클라이언트에 캐쉬부를 구비하여 캐싱함으로서 서버시스템의 작동부하를 감소시키고 자원활용도를 제고할 수 있는 효과가 있다.According to the present invention, by caching font data transmitted to the thin client to be displayed in the thin client according to the execution result of the application program in the server system by caching the thin client can reduce the operating load of the server system and improve the resource utilization It has an effect.

Claims (1)

다수의 응용프로그램을 저장하고 있으며 씬 클라이언트로부터의 요청에 의하여 서버에서 특정 응용프로그램을 단독, 또는 동시에 수행하고 결과데이터를 클라이언트로 전송하여 표시하는 클라이언트/서버 시스템에 있어서,In a client / server system that stores a plurality of applications and executes a specific application alone or simultaneously at the server by a request from a thin client, and transmits and displays the result data to the client. 상기 서버가, 응용프로그램의 실행결과에 따라서 표시되어야 할 폰트들의 입력을 요청받으면 할당된 프레임버퍼에 해당 폰트데이터를 출력하는 제1단계; 폰트데이터의 출력후에, 폰트매핑테이블에 출력할 폰트가 캐쉬었는가를 판단하고, 캐쉬되어 있으면 해당 폰트의 폰트매핑테이블의 가상인덱스를 획득하고, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제2단계; 폰트매핑테이블에 출력할 폰트가 캐쉬되어 있지 않으면 빈 캐쉬영역이 있는 가를 검색하여, 빈 캐쉬영역이 존재하면 서버의 폰트매핑테이블에 해당 폰트를 등록하고 해당 폰트데이터를 클라이언트 캐쉬측에 저장하도록 전송하며, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제3단계; 빈 캐쉬영역이 존재하지 않으면 폰트매핑테이블내의 가장 오래된 (폰트)인덱스를 삭제하고 씬 클라이언트의 해당 폰트인덱스를 제거하기 위한 명령을 전송하고, 서버의 폰트매핑테이블에 해당 폰트를 등록하고 해당 폰트데이터를 클라이언트 캐쉬측에 저장하도록 전송하며, 해당 가상인덱스를 씬 클라이언트측에 출력하도록 하기 위한 명령과 가상인덱스그룹을 전송하는 제4단계;를 포함하며,A first step of outputting corresponding font data to the allocated frame buffer when the server is requested to input fonts to be displayed according to an execution result of an application program; After outputting the font data, it is determined whether the font to be output to the font mapping table is cached, and if it is cached, the virtual index of the font mapping table of the corresponding font is obtained, and the virtual index is output to the thin client side. Transmitting a virtual index group; If the font to be printed in the font mapping table is not cached, it searches whether there is an empty cache area. If there is an empty cache area, it registers the font in the font mapping table of the server and transmits the font data to the client cache side. Transmitting a virtual index group and a command for outputting the corresponding virtual index to the thin client side; If there is no empty cache area, delete the oldest (font) index in the font mapping table, send a command to remove the corresponding font index from the thin client, register the font in the server's font mapping table, and print the font data. A fourth step of transmitting a virtual index group and a command for outputting the virtual index to the thin client side for transmission to the client cache side; 상기 씬 클라이언트가, 상기 서버로부터 전송된 데이터를 수신하고, 명령을판독하는 제5단계; 판독된 명령이 폰트캐쉬명령이면 캐쉬영역을 검색하여 빈 캐쉬영역이 존재하면 폰트를 캐쉬하고, 빈 캐쉬영역이 존재하지 않으면 폰트캐쉬테이블내의 가장 오래된 가상인덱스와 폰트데이터를 삭제한 후에 캐쉬하는 제6단계; 상기 제6단계에서의 폰트 캐쉬후에 캐쉬된 폰트의 해당 가상인덱스가 캐쉬되었음을 서버에 통보하는 제7단계; 폰트캐쉬명령이 아니면 폰트를 제거하는 명령인가를 판독하여, 제거명령이면 폰트캐쉬(테이블)영역의 해당 폰트를 제거한 후에 서버에 해당 가상인덱스가 삭제됨을 통보하는 제8단계; 폰트제거명령이 아니면 폰트를 출력하는 명령인가를 판단하여 폰트출력명령이면 해당 가상인덱스에 대한 폰트를 출력하고, 폰트출력명령이 아니면 해당 명령을 수행하는 제9단계를 포함하는 것을 특징으로 하는 씬 클라이언트-서버시스템의 폰트캐쉬 제어방법.A fifth step of the thin client receiving data transmitted from the server and reading a command; If the read command is a font cache command, the cache area is searched for, and if there is an empty cache area, the font is cached. If there is no empty cache area, the sixth cache is deleted after deleting the oldest virtual index and font data in the font cache table. step; A seventh step of notifying the server that the virtual index of the cached font is cached after the font cache in the sixth step; An eighth step of reading whether it is a command for removing a font if it is not a font cache command, and if not, removing the corresponding font in the font cache (table) area and notifying the server that the corresponding virtual index is deleted; Determining whether the command is a font output command if the font removal command is not a font output command, and outputting a font for the corresponding virtual index if the font output command is included, and performing a corresponding command if the font output command is not a font output command. -Font cache control method of server system.
KR1020020001661A 2002-01-11 2002-01-11 Method for caching font data in thin client/server system Ceased KR20030060713A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020001661A KR20030060713A (en) 2002-01-11 2002-01-11 Method for caching font data in thin client/server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020001661A KR20030060713A (en) 2002-01-11 2002-01-11 Method for caching font data in thin client/server system

Publications (1)

Publication Number Publication Date
KR20030060713A true KR20030060713A (en) 2003-07-16

Family

ID=32217710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020001661A Ceased KR20030060713A (en) 2002-01-11 2002-01-11 Method for caching font data in thin client/server system

Country Status (1)

Country Link
KR (1) KR20030060713A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
JP2000214840A (en) * 1999-01-26 2000-08-04 Toshiba Corp Computer system, and cache generating method of font data in the system
US6292166B1 (en) * 1997-10-24 2001-09-18 Compaq Computer Corporation System and method for sharing diverse display types in a bit map sharing collaborative tool
WO2001093525A2 (en) * 2000-05-26 2001-12-06 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
US6292166B1 (en) * 1997-10-24 2001-09-18 Compaq Computer Corporation System and method for sharing diverse display types in a bit map sharing collaborative tool
JP2000214840A (en) * 1999-01-26 2000-08-04 Toshiba Corp Computer system, and cache generating method of font data in the system
WO2001093525A2 (en) * 2000-05-26 2001-12-06 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism

Similar Documents

Publication Publication Date Title
US11003412B2 (en) Method and system for identifying drawing primitives for selective transmission to a remote display
US9369721B2 (en) Data compression of images using a shared dictionary
US7181457B2 (en) System and method for utilizing compression in database caches to facilitate access to database information
KR101144694B1 (en) Method and system for copying a framebuffer for transmission to a remote display
US6266753B1 (en) Memory manager for multi-media apparatus and method therefor
US20120236199A1 (en) Information processing apparatus, image transmitting program, image transmitting method and image display method
US20090204957A1 (en) Virtual computer server apparatus, and update image detection method
US9344528B2 (en) Data compressor using hints
CN115052043B (en) Video transmission method, electronic equipment, device and medium of cloud desktop
US10002403B2 (en) Command remoting
US20060077207A1 (en) Context dependent image caching
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
US9235452B2 (en) Graphics remoting using augmentation data
EP3275184B1 (en) Efficient encoding of composited display frames
US20060132489A1 (en) Remote computing
US7046250B1 (en) Caching fonts for improved bandwidth of transmitted text
KR20030060713A (en) Method for caching font data in thin client/server system
CN114064182B (en) Low-cost desktop virtualization system and operation method
US7903119B2 (en) Compression of image regions according to graphics command type
US6829390B2 (en) Method and apparatus for transmitting image updates employing high compression encoding
US12287744B2 (en) Merged input/output for accelerating directory listing phase in client drive redirection
US12169876B2 (en) Optimizing partial writes to compressed blocks
WO2023020124A1 (en) Data processing method and apparatus, and computing device and system
YANG OPTIMIZATION METHODS FOR THE PERFORMANCE ENHANCEMENT OF THIN CLIENT COMPUTING OVER BANDWIDTH-LIMITED AND SLOW LINKS

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20020111

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20030827

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20040129

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20030827

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I