KR19980024091A - 스크린의 원격 복제 및 리프레시 방법, 그 시스템과 원격 제어 시스템 - Google Patents

스크린의 원격 복제 및 리프레시 방법, 그 시스템과 원격 제어 시스템 Download PDF

Info

Publication number
KR19980024091A
KR19980024091A KR1019970033057A KR19970033057A KR19980024091A KR 19980024091 A KR19980024091 A KR 19980024091A KR 1019970033057 A KR1019970033057 A KR 1019970033057A KR 19970033057 A KR19970033057 A KR 19970033057A KR 19980024091 A KR19980024091 A KR 19980024091A
Authority
KR
South Korea
Prior art keywords
image
data processing
processing system
graphic
display unit
Prior art date
Application number
KR1019970033057A
Other languages
English (en)
Other versions
KR100269529B1 (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 포만 제프리 엘
Publication of KR19980024091A publication Critical patent/KR19980024091A/ko
Application granted granted Critical
Publication of KR100269529B1 publication Critical patent/KR100269529B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

네트워크를 통해 제어기 컴퓨터에 의해 타겟 컴퓨터의 원격 제어를 행하는 방법 및 시스템이 제공된다. 타겟 컴퓨터의 그래픽 엔진에 의해 송출되는 그래픽 명령은 후크되며, 시스템과 독립적인 포맷으로 번역된다. 그 후, 번역된 명령은 디스플레이상에 재생될 제어기 컴퓨터로 전송된다. 타겟 컴퓨터의 그래픽 명령의 서브세트를 번역하는데 사용되는 프로토콜을 정의함으로써 오퍼레이팅 시스템으로부터의 독립성이 실현되며, 이는 동일 프로토콜에 따라 명령이 재번역되는 제어기 컴퓨터로 전송되기 전에 행해진다.

Description

스크린의 원격 복제 및 리프레시 방법, 그 시스템과 원격 제어 시스템
본 발명은 원격 제어 시스템에 관한 것으로, 특히 목적지 시스템의 스크린상에 소스 데이타 처리 시스템의 스크린 이미지를 복제(duplicating)하는 시스템 및 방법에 관한 것이다.
원격 제어 프로그램은 통신 어플리케이션의 특별한 분야이다. 원격 제어 프로그램은 하나의 컴퓨터와 이를 실질적으로 제어하는 다른 하나의 컴퓨터를 접속시키는 기능 이상의 기능을 행한다. 전화선 및 모뎀 또는 LAN 접속을 통해 접속함으로써 이들 프로그램은 통상 타겟(target)이라 불리우는 하나의 데이타 처리 시스템(예를 들어, 퍼스널 컴퓨터 혹은 워크스테이션)의 모든 자원을 통상 제어기라 불리우는 다른 데이타 처리 시스템(예를 들어, LAN과 접속된 퍼스널 컴퓨터 또는 워크스테이션)의 완벽한 제어하에 둘 수 있다. 제어기 스크린은 타겟 스크린을 복제한다. 제어기의 키보드로 타겟 데이타 처리 시스템에 직접 문자를 입력할 수 있으며, 제어기의 마우스로 타겟 스크린상의 마우스 포인터를 이동시킬 수 있다. 제어기 스크린은 타겟 데이타 처리 시스템 스크린으로부터 계속적으로 데이타를 수신한다. 마찬가지로, 제어기의 키보드로 키가 입력될 때마다 타겟 데이타 처리 시스템으로 데이타가 전송된다. 모든 실용적인 목적에 대해, 제어기 사용자는 타겟 데이타 처리 시스템 앞에 앉아 있는 것과 마찬가지이다.
이러한 종류의 원격 제어 소프트웨어는 여러 환경에서 유용할 수 있다. 단지 하나의 예로서, 사무실 퍼스널 컴퓨터 시스템을 홈(home) 퍼스널 컴퓨터로 제어하여 동작시킬 수 있다. 사무실 PC가 모뎀에 접속되어 있을 경우, 홈 PC로 제어할 수 있으며, 타겟 PC의 모든 자원을 원격적으로 제어하고 사용할 수 있다. 사무실의 네트워크 접속된 PC로 (모뎀을 통해) 전화를 하고, 로그 인(log in)하며, 네트워크 어플리케이션을 작동시키거나 혹은 네트워크상의 공유 파일을 갱신하는 것은 좀 더 특별하게 사용하는 예이다.
모뎀에 의해 야기되는 병목 현상은 원격 제어 동작의 속도에 중요한 영향을 미칠 수 있다. 성능을 향상시키기 위해, 원격 제어 프로그램은 통신 라인(LAN 혹은 전화 케이블)을 통해 전송될 필요가 있는 데이타의 양을 줄이고 최소화하려 한다. 제어기 PC상에 복제되어야 될 타겟 PC의 디스플레이 스크린상의 비디오 이미지의 리프레시는 전송되어야 할 정보의 양이 많으므로 전송 속도면에서 중요한 사항이다. 과거에는, 원격 제어 프로그램은 매순간 타겟 PC 스크린의 전체 이미지를 원격 PC로 전송하고 리프레시하는 동작을 행하였다. 스크린 이미지가 제어기 PC로 전송되는 일정한 비율을 스크린 리프레시 비율이라 불렀다. 제어기 PC 스크린은 타겟 PC에서의 변화가 다음 스크린 리프레시에 포함될 때 타겟 PC 스크린을 정확히 반영하였다. 물론 이 방안은, 각 리프레시마다 전송될 광대한 데이타의 양때문에, 속도면에서 그다지 만족시키지 못했다.
종종, 이미지의 변화는 스크린의 작은 섹션에 한정되며(예를 들어, 마우스 포인터를 이동시키는 것, 메뉴를 풀 다운하는 것, 객체를 하이라이트하는 것), 변화된 데이타만이 리프레시될 필요가 있다. 제어기 시스템은 이전에 수신된 스크린 데이타를 사용할 수 있으며, 스크린의 단지 변경된 부분을 리프레시한다. 여분의 스크린 리프레시 데이타를 차단함으로써, 원격 제어 프로그램은 응답 시간을 향상시킬 수 있다. 캐시 메모리는 하드 드라이브 및 메모리 칩의 수행 속도를 높혀주며, 원격 제어 프로그램에도 또한 유용할 수 있다. 캐시의 이면의 아이디어는 신속히 액세스할 수 있는 일시 기억 장소에 최근에 사용된 데이타를 유지시키는 것이다. 데이타를 곧 다시 사용해야 할 경우, 원래의 소스로부터 복구하는 것보다 빠르게 액세스할 수 있는 일시 기억 장소로부터 이 데이타를 액세스하는 것이 더 빠르다. 이 기법에 따르면, 최근에 디스플레이된 스크린의 요소는 확장된 메모리내에 캐시로서 저장된다. 전체 페이지는 제어기 PC 스크린 캐시로부터 재인출해서, 모뎀을 통해 타겟으로부터 제어기 PC로 많은 양의 정보를 전송할 필요가 없게 된다. 스크린 캐시로부터 종종 재인출되는 스크린 요소는 비트맵, 텍스트, 폰트를 포함한다.
미국 특허 제 5,491,780 호에는, 타겟 컴퓨터의 그래픽 명령에 의해 실질적으로 발생되는 스크린의 부분만으로 전송 및 리프레시를 제한함으로써, 비트맵 이미지의 전송을 감소시키는 기법이 개시되어 있다.
어쨌든 전술한 기법은 통신 라인을 통해 전송될 이미지 데이타의 양은 감소시키지만, 이미지가 변경될 때마다 통상 비트맵의 형태인 이미지 부분의 전송은 피할 수 없다. 이 전송 방법에는 변경된 영역을 갖는 비트맵이 모뎀 또는 LAN을 통해 전송될 수 있을 때의 낮은 속도로 인해 여전히 원격 제어 프로그램의 병목 현상이 나타나며, 큰 비트맵을 필요로 하는 많은 변경이 발생할 경우 이는 더 심각해질 수 있다.
본 발명의 목적은 전술한 결점을 극복할 수 있는 기법을 제공하는데 있다.
본 발명에 따르면, 본 발명은
그래픽 이미지를 디스플레이하는 제 1 디스플레이 유닛과, 상기 제 1 디스플레이 유닛상의 이미지를 변경하는 제 1 디스플레이 드라이버를 포함하는 적어도 하나의 목적지(destination) 데이타 처리 시스템상에서 소스 데이타 처리 시스템상에 디스플레이되는 그래픽 이미지를 복제하고 리프레시하는 방법에 있어서,
상기 그래픽 이미지는, 이미지를 디스플레이하는 제 2 디스플레이 유닛과, 다수의 그래픽 명령을 발생하는 그래픽 엔진과, 상기 그래픽 엔진에 의해 발생된 상기 그래픽 명령에 따라 상기 제 2 디스플레이 유닛상의 상기 이미지를 변경하는 제 2 디스플레이 드라이버를 포함하는 상기 소스 데이타 처리 시스템상에 디스플레이되며, 상기 적어도 하나의 목적지 데이타 처리 시스템과 상기 소스 데이타 처리 시스템은 네트워크를 통해 접속되고, 상기 그래픽 이미지를 복제하고 리프레시하는 방법은,
상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령을 인터셉트하는 단계와,
상기 그래픽 명령을 상기 제 2 디스플레이 드라이버로 전달하는 단계와,
사전정의된 프로토콜에 따라, 상기 그래픽 명령의 서브세트를 오퍼레이팅 시스템과 독립적인 포맷으로 번역하는 단계와,
상기 네트워크를 통해 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 단계와,
상기 프로토콜에 따라, 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템 포맷으로 변환하는 단계와,
상기 변환된 그래픽 명령을 상기 제 1 디스플레이 드라이버로 전달하는 단계를 포함한다.
또한, 본 발명에 따르면 본 발명은,
그래픽 이미지를 디스플레이하는 제 1 디스플레이 유닛과, 상기 제 1 디스플레이 유닛상의 이미지를 변경하는 제 1 디스플레이 드라이버를 포함하는 적어도 하나의 목적지 데이타 처리 시스템상에서 소스 데이타 처리 시스템상에 디스플레이되는 그래픽 이미지를 복제하고 리프레시하기 위한 시스템에 있어서,
상기 그래픽 이미지는,
이미지를 디스플레이하는 제 2 디스플레이 유닛과, 다수의 그래픽 명령을 발생하는 그래픽 엔진과, 상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령에 따라 상기 제 2 디스플레이 유닛상의 상기 이미지를 변경하는 제 2 디스플레이 드라이버를 포함하는 소스 데이타 처리 시스템상에 디스플레이되며, 상기 적어도 하나의 목적지 데이타 처리 시스템과 상기 소스 데이타 처리 시스템은 네트워크를 통해 접속되고, 상기 시스템은,
상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령을 인터셉트하는 수단과,
상기 그래픽 명령을 상기 제 2 디스플레이 드라이버로 전달하는 통신 수단과,
사전정의된 프로토콜에 따라, 상기 그래픽 명령의 서브세트를 오퍼레이팅 시스템과 독립적인 포맷으로 번역하는 수단과,
상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 네트워크 수단과,
상기 프로토콜에 따라, 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템 포맷으로 변환하는 수단과,
상기 변환된 그래픽 명령을 상기 제 1 디스플레이 드라이버로 전달하는 통신 수단을 포함한다.
이하, 본 발명의 여러가지 실시예는 첨부된 도면을 참조하여 예를 통해 상세히 기술될 것이다.
도 1은 본 발명의 방법 및 시스템을 수행하는데 사용될 수 있는 네트워크 및 퍼스널 컴퓨터를 개략적으로 도시한 도면
도 2는 본 발명의 실시예를 개략적으로 도시한 도면
도 3은 본 발명의 바람직한 실시예에 따른 방법의 단계를 개략적으로 도시한 도면
도면의 주요 부분에 대한 부호의 설명
203 : 그래픽 엔진 205 : 디스플레이 드라이버
207 : 디스플레이 209 : 후크 디스플레이 드라이버
213 : 디스플레이 드라이버 215 : 디스플레이
도 1은 원격 제어 시스템이 구현될 수 있는 전형적인 근거리 통신망(LAN)의 일예를 도시한 도면이다. 도 1에는 둘 이상의 데이타 처리 시스템간의 통신 브릿지로 동작하는 LAN 서버(101)가 구비되어 있다. 그 밖의 다른 접속 시스템에서, 서버의 기능은 예를 들어 브릿지, 모뎀, 케이블 혹은 일반적으로 둘 이상의 데이타 처리 시스템간에 놓여서 이들을 접속시키는 임의의 디바이스에 의해 수행될 수 있다.
데이타 처리 시스템(105)은 제어기이며, 다른 데이타 처리 시스템(103, 107, 109)중 하나를 대신해서 제어를 담당할 수 있다.
데이타 처리 시스템(103, 105, 107, 109)은 시장에서 구입할 수 있는 퍼스널 컴퓨터 혹은 워크스테이션일 수 있다. 바람직하게 이들은 본 기술 분야에 잘 알려진 방식으로 결합된 디스플레이 유닛 및 키보드를 구비한다. 부가적으로, 데이타 처리 시스템은 메인 프로세서 및 메모리 이외에 고정된 디스크 드라이브 및 디스켓 드라이브를 장착할 수 있는 프로세서 시스템 유닛을 포함한다. 또한, 그래픽 사용자 인터페이스의 사용을 용이하게 하기 위해, 데이타 처리 시스템은 바람직하게 스크린상의 시각적 디스플레이내의 포인터의 위치를 조작하는 데 이용될 수 있는 마우스와 같은 그래픽 포인팅 디바이스를 구비한다.
본 기술 분야에 통상의 지식을 가진 자라면, 전술한 데이타 처리 시스템은 IBM사에 의해 제조된 PS/2 퍼스널 컴퓨터와 같은 임의의 최신 퍼스널 컴퓨터를 사용하여 구현될 수 있음을 이해할 것이다. (PS/2는 IBM사의 상표이다.)
데이타 처리 시스템에는 통상 그래픽 사용자 인터페이스(GUI)가 구비되어서 사용자가 데이타 처리 시스템을 제어하고 시스템 디스플레이상에 사용자 조작의 결과를 나타낼 수 있게 한다. 그래픽 사용자 인터페이스에서, 어플리케이션 및 데이타는 일반적으로 사용자 인터페이스상에 묘사된(depicted) 객체로서 표시된다. 그러면, 묘사된 객체의 그래픽 선택 및 이들 객체에 대응하는 어플리케이션의 조작을 허용하는 복잡한 데이타 처리 시스템에 대한 그래픽적이고 직관적인 인터페이스가 사용자에게 제공된다.
전술한 구성을 사용하는 상업적으로 이용가능한 여러가지 상이한 그래픽 사용자 인터페이스 환경이 존재한다. 이들 환경에는 애플 컴퓨터사(Apple Computer, INC.)에 의해 개발된 시스템 7 오퍼레이팅 시스템(시스템 7은 애플 컴퓨터사의 상표임)과, 마이크로소프트사에 의해 개발된 윈도즈(Windows) 그래픽 사용자 인터페이스(윈도즈는 마이크로소프트사의 상표임)와, IBM사에 의해 개발된 OS/2 프리젠테이션 매니저(Presentation Manager)(OS/2와 프리젠테이션 매니저는 IBM사의 상표임)가 포함된다.
윈도우 환경은 일반적으로 컴퓨터 시스템(100)의 동작을 제어하기 위한 유틸리티 프로그램의 집합을 포함하는 오퍼레이팅 시스템 소프트웨어의 일부분이다.
도 1에 도시된 예에서, 타겟 시스템으로 정의된 시스템(103)에 대해 제어가 행해지며, 시스템(103)의 모든 자원은 제어기 시스템에 의해 사용되고, 작동될 수 있다. 이러한 제어를 행하기 위해, 시스템(105)은 자신의 디스플레이상에서 타겟 디스플레이(103)의 정확한 카피(copy)를 나타낼 수 있어야 한다.
도 2를 참조하면, 본 발명의 바람직한 실시예가 도시된다. 최신 그래픽 오퍼레이팅 시스템하에서, 어플리케이션은 오퍼레이팅 시스템 그래픽 엔진(203)에 의해 제공되는, 디바이스와 독립적인 API 세트를 통해 스크린상의 이미지를 디스플레이하거나 변경할 수 있다. 그래픽 엔진(203)은 드라이버상에서 드라이버가 작성된 적절한 동작을 수행하는 디스플레이 드라이버(205)의 입력점(entry point)을 호출함으로써 그래픽 동작을 수행한다. 드라이버는 그래픽 프레임 버퍼 혹은 하드웨어에 의해 직접 관리되는 디스플레이(207)를 변경하기 때문에 동작의 종점(end point)이다.
본 발명에 따르면, 다른 모듈이 시스템내에 삽입된다. 후크(hook) 디스플레이 드라이버(209)는 그래픽 엔진(203)에 의해 디스플레이 드라이버(205)로 송출되는 호출을 인터셉트한다. 그 다음, 후크 디스플레이 드라이버(209)는 그래픽 명령을 복제하고, 이들을 타겟 디스플레이 드라이버(205)와 제어기 디스플레이 드라이버(213)로 각각 전송해서 타겟 시스템 및 제어기 시스템상에 디스플레이되는 이미지간의 대응관계를 실현한다.
도 3은 본 발명의 바람직한 실시예에 따른 방법의 단계를 도시한다. 단계(301)에서 서버(101)는 타겟 컴퓨터(103)와 제어기 컴퓨터(105)를 접속시킨다. 단계(303)에서 후크 디스플레이 드라이버(209)는 그래픽 엔진(203)에 의해 디스플레이 드라이버(205)로 송출되는 그래픽 명령을 인터셉트한다. 단계(305)에서 그래픽 명령 파라미터를 추출하고, 단계(307)에서 제어기 컴퓨터의 디스플레이(215)상에 재생될 제어기 컴퓨터의 디스플레이 드라이버(213)로 이 파라미터를 전송한다.
명백하게, 이 해결책은 타겟 이미지의 비트맵을 전송하는 방법보다 전송 속도면에서 훨씬 더 효율적이다.
그러나, 비트맵은 어떠한 오퍼레이팅 시스템이라도 이해하고 처리할 수 있는 보편적인 포맷의 한 종류이며, 명령 세트 전송 방안은 타겟 오퍼레이팅 시스템 및 제어기가 동일하지 않을 경우 호환성면에서 몇몇 문제가 발생될 수 있다.
이 호환성을 실현하기 위해, 본 발명에 따른 후크 디스플레이 드라이버(209)는 타겟 컴퓨터의 그래픽 엔진(203)에 의해 송출되는 그래픽 명령을 사전정의된 프로토콜을 사용하여 시스템과 독립적인 포맷으로 번역한다. 그 후, 시스템과 독립적인 명령은 네트워크를 통해 제어기 컴퓨터로 전송되며, 여기서 이들은 동일 프로토콜을 사용하여 디스플레이 드라이버(213)에 대한 그래픽 명령으로 재번역된다.
본 발명의 바람직한 실시예에 따르면, 그래픽 엔진에 의해 송출되는 그래픽 명령의 한 서브세트만이 번역되고 제어기로 전송된다. 그 이유는 한정된 명령 세트가 디스플레이 드라이버에 의해 수행되는 대부분의 동작을 수용하기 때문이다.
이하에는 본 발명의 바람직한 실시예에서 사용되는 'C' 언어로 표현된 상수 및 데이타 구조가 정의되어 있다.
프로토콜에서 사용되는 'C' 언어로 표현된 상수 및 데이타 구조의 리스트:
Command identifier values:
#define ACCM_CMD_BITBLT 1
#define ACCM_CMD_BITBLT_SAVE 2
#define ACCM_CMD_BITBLT_HIT 3
#define ACCM_CMD_BITBLT_SRCCOPY 4
#define ACCM_CMD_SAVESCREENBITMAP_SAVE 5
#define ACCM_CMD_SAVESCREENBITMAP_RESTORE 6
#define ACCM_CMD_BITBLT_REPEAT 7
#define ACCM_CMD_TEXTOUT 8
Brush field values:
#define DIC_BRUSH_SOLID 0
#define DIC_BRUSH_HATCHED 2
#define DIC_BRUSH_PATTERN 3
#define DIC_BRUSH_SIMULATED_PATTERN 4
Extended Text Out field values:
#define ETO_OPAQUE 0x0002
#define ETO_CLIPPED 0x0004
Background field values:
#define BK_TRANSPARENT 1
#define BK_OPAQUE 2
Font identifier field values:
#define FONT_COURIER 1
#define FONT_HELV 2
#define FONT_SYSTEM 3
#define FONT_TMSROMAN 4
typedef struct tagDCAF_BITMAPINFOHEADER
{
unsigned short usSize;
unsigned short usBmpWidth;
unsigned short usBmpHeight;
unsigned char bPlanes;
unsigned char bBitcount;
} DCAF_BITMAPINFOHEADER;
typedef DCAF_BITMAPINFOHEADER *PDCAF_BITMAPINFOHEADER;
typedef struct tagDCAF_BITMAPINFO
{
DCAF_BITMAPINFOHEADER dcfbmpinfoheader;
unsigned char bBmpBytes[MAX_BRUSH_BITMAP_SIZE];
} DCAF_BITMAPINFO;
typedef DCAF_BITMAPINFO *PDCAF_BITMAPINFO;
typedef struct tagDCAF_BRUSHINFOHEADER
{
short sSize;
short sType;
long 1Color;
short sHatch;
long 1BkColor;
short usXalign;
short usYalign;
} DCAF_BRUSHINFOHEADER;
typedef DCAF_BRUSHINFOHEADER *PDCAF_BRUSHINFOHEADER;
typedef struct tagDCAF_BRUSHINFO
{
DCAF_BRUSHINFOHEADER dcfbrushinfoheader;
DCAF_BITMAPINFO dcfbmpinfo;
} DCAF_BRUSHINFO;
typedef DCAF_BRUSHINFO *PDCAF_BRUSHINFO;
typedef struct tagDCAF_BITMAPSAVER
{
unsigned short usBmpSize;
unsigned short usWidth;
unsigned short usHeight;
unsigned short usWidthBytes;
unsigned short usPlanes;
char bmp;
} DCAF_BITMAPSAVER;
typedef DCAF_BITMAPSAVER *PDCAF_BITMAPSAVER;
typedef struct _DCAFRECT {
unsigned short usRectXLeft;
unsigned short usRectYBottom;
unsigned short usRectXRight;
unsigned short usRectYTop;
} DCAFRECT;
typedef DCAFRECT *PDCAFRECT;
typedef struct _ACCM_TEXTOUT {
unsigned char bCommandType;
unsigned short usCmdLength;
unsigned short usEtoOptions;
char bClipPresent;
DCAFRECT rectClipArea;
char bOpaquePresent;
DCAFRECT rectOpaqueArea;
unsigned short usDestX;
unsigned short usDestY;
unsigned short usCount;
unsigned short usSelHeight;
unsigned short usSelWidth;
unsigned short usPointSize;
unsigned short usFaceName;
unsigned long ulBkColor;
unsigned long ulTextColor;
unsigned short usBkMode;
unsigned short usWeight;
unsigned short usWidth;
unsigned short usHeight;
char cItalic;
char cUnderline;
char cStrikeOut;
char cText;
} ACCM_TEXTOUT;
typedef ACCM_TEXTOUT *PACCM_TEXTOUT;
typedef struct _ACCM_BITBLT_CORE {
unsigned char bCommandType;
unsigned short usCmdLength;
unsigned short usDestXOrigin;
unsigned short usDestYOrigin;
unsigned short usSrcXOrigin;
unsigned short usSrcYOrigin;
unsigned short usXExtension;
unsigned short usYExtension;
long 1Rop3;
} ACCM_BITBLT_CORE;
typedef ACCM_BITBLT_CORE *PACCM_BITBLT_CORE;
typedef struct _ACCM_BITBLT {
ACCM_BITBLT_CORE bmp_core;
DCAF_BRUSHINFO Brush;
} ACCM_BITBLT;
typedef ACCM_BITBLT *PACCM_BITBLT;
typedef struct _ACCM_BITBLT_SAVE {
ACCM_BITBLT_CORE bmp_core;
unsigned char bBmpID;
DCAF_BITMAPSAVER bmpSaver;
} ACCM_BITBLT_SAVE;
typedef ACCM_BITBLT_SAVE *PACCM_BITBLT_SAVE;
typedef struct _ACCM_BITBLT_HIT {
ACCM_BITBLT_CORE bmp_core;
unsigned char bBmpID;
} ACCM_BITBLT_HIT;
typedef ACCM_BITBLT_HIT *PACCM_BITBLT_HIT;
typedef struct _ACCM_SAVESCREENBITMAP {
unsigned char bCommandType;
unsigned short usCmdLength;
unsigned short usRectXLeft;
unsigned short usRectYBottom;
unsigned short usRectXRight;
unsigned short usRectYTop;
} ACCM_SAVESCREENBITMAP;
typedef ACCM_SAVESCREENBITMAP *PACCM_SAVESCREENBITMAP;
그래픽 명령을 재생하는데 필요한 정보는 명령 식별기 및 명령을 재생하는데 사용되는 파라미터를 포함하는 구조체내에 저장된다. 예를 들어, 텍스트가 인출될 때, 이 이벤트에 관련된 정보는 구조체 ACCM_TEXTOUT에 저장되며, 이것의 제 1 필드는 값 ACCM_CMD_TEXTOUT을 가지며 그 밖의 다른 필드는 텍스트를 재생하는데 사용된다.
전술한 프로토콜은 임의의 알려진 오퍼레이팅 시스템상의 디스플레이를 변경하는 대부분의 이벤트를 처리하는 것으로 생각된다. 예를 들면, 마이크로소프트 윈도즈 오퍼레이팅 시스템을 사용하여, 전술한 프로토콜이 후크할 수 있으며, 스크린 변화의 평균 95%를 재생할 수 있다.
본 발명의 바람직한 실시예에 따르면, 프로토콜에 의해 수용되지 못할 경우 제어기 디스플레이를 동기화하기 위해 타겟 디스플레이상에 실질적으로 디스플레이되는 이미지의 비트맵을 사전결정된 매시간 주기(예를 들어, 5 초)마다 전송함으로써 제어기 디스플레이와 타겟 디스플레이의 완벽한 대응이 이루어진다.
제어기 디스플레이상에 재생되는 이미지가 타겟 디스플레이와 일치하는지를 체크하기 위해, 타겟 디스플레이의 새도우(shadow) 비트맵 카피가 타겟 컴퓨터의 저장 장치에 유지된다. 그래픽 엔진에 의해 송출되는 명령이 프로토콜을 사용하여 번역되고 재번역되어 재생될 제어기 컴퓨터로 전송될 때마다, 새도우 비트맵 이미지상에서 동일 동작이 행해지며, 시스템과 독립적인 명령은 재번역되고, 새도우 비트맵상에서 동작된다. 사전결정된 시간 주기(바람직한 실시예에서, 5초)마다, 새도우 이미지는 실질적인 타겟 디스플레이와 비교되며, 임의의 차이가 검출될 경우, 변경될 스크린 부분은 비트맵 포맷으로 제어기 컴퓨터로 전송된다.
본 발명은, 네트워크를 통해 제어기 컴퓨터에 의해 타겟 컴퓨터의 원격 제어를 행하는 방법 및 시스템을 제공한다. 타겟 컴퓨터의 그래픽 엔진에 의해 송출되는 그래픽 명령은 후크되며, 시스템과 독립적인 포맷으로 번역된다. 그 후, 번역된 명령은 디스플레이상에 재생될 제어기 컴퓨터로 전송된다. 타겟 컴퓨터의 그래픽 명령의 서브세트를 번역하는데 사용되는 프로토콜을 정의함으로써 오퍼레이팅 시스템으로부터의 독립성이 실현되며, 이는 동일 프로토콜에 따라 명령이 재번역되는 제어기 컴퓨터로 전송되기 전에 행해진다.

Claims (8)

  1. 그래픽 이미지를 디스플레이하는 제 1 디스플레이 유닛과, 상기 제 1 디스플레이 유닛상의 이미지를 변경하는 제 1 디스플레이 드라이버를 포함하는 적어도 하나의 목적지(destination) 데이타 처리 시스템상에서 소스 데이타 처리 시스템상에 디스플레이되는 그래픽 이미지를 복제하고 리프레시하는 방법에 있어서,
    상기 그래픽 이미지는, 이미지를 디스플레이하는 제 2 디스플레이 유닛과, 다수의 그래픽 명령(a plurality of graphic commands)을 발생하는 그래픽 엔진(a graphic engine)과, 상기 그래픽 엔진에 의해 발생된 상기 그래픽 명령에 따라 상기 제 2 디스플레이 유닛상의 상기 이미지를 변경하는 제 2 디스플레이 드라이버를 포함하는 상기 소스 데이타 처리 시스템(a source data processing system)상에 디스플레이되며, 상기 적어도 하나의 목적지 데이타 처리 시스템과 상기 소스 데이타 처리 시스템은 네트워크를 통해 접속되고, 상기 그래픽 이미지를 복제하고 리프레시하는 방법은,
    ① 상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령을 인터셉트하는 단계와,
    ② 상기 그래픽 명령을 상기 제 2 디스플레이 드라이버로 전달하는 단계와,
    ③ 사전정의된 프로토콜에 따라, 상기 그래픽 명령의 서브세트(a subset of the graphic commands)를 오퍼레이팅 시스템과 독립적인 포맷(an operating system independent format)으로 번역하는 단계와,
    ④ 상기 네트워크를 통해 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 단계와,
    ⑤ 상기 프로토콜에 따라, 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템 포맷으로 변환하는 단계와,
    ⑥ 상기 변환된 그래픽 명령을 상기 제 1 디스플레이 드라이버로 전달하는 단계를 포함하는 복제 및 리프레시 방법.
  2. 제 1 항에 있어서,
    사전결정된 시간 주기마다, 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지의 비트맵(a bit-map of the image)을 상기 소스 데이타 처리 시스템의 저장 장치에 카피하는 단계와,
    상기 그래픽 명령의 서브세트에 따라 상기 비트맵 이미지를 변경하는 단계와,
    사전결정된 시간 주기마다, 상기 비트맵 이미지와 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지를 비교하는 단계와,
    상기 비트맵 이미지와 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지간의 차이가 사전결정된 임계값을 초과할 경우, 상기 네트워크를 통해 상기 비트맵 이미지를 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 단계를 더 포함하는 복제 및 리프레시 방법.
  3. 전술한 임의의 항에 있어서,
    상기 네트워크는 근거리 통신망(a Local Area Network)인 복제 및 리프레시 방법.
  4. 전술한 임의의 항의 방법을 이용하는 원격 제어 시스템.
  5. 그래픽 이미지를 디스플레이하는 제 1 디스플레이 유닛과, 상기 제 1 디스플레이 유닛상의 이미지를 변경하는 제 1 디스플레이 드라이버를 포함하는 적어도 하나의 목적지 데이타 처리 시스템상에서 소스 데이타 처리 시스템상에 디스플레이되는 그래픽 이미지를 복제하고 리프레시하기 위한 시스템에 있어서,
    상기 그래픽 이미지는,
    이미지를 디스플레이하는 제 2 디스플레이 유닛과, 다수의 그래픽 명령을 발생하는 그래픽 엔진과, 상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령에 따라 상기 제 2 디스플레이 유닛상의 상기 이미지를 변경하는 제 2 디스플레이 드라이버를 포함하는 소스 데이타 처리 시스템상에 디스플레이되며, 상기 적어도 하나의 목적지 데이타 처리 시스템과 상기 소스 데이타 처리 시스템은 네트워크를 통해 접속되고, 상기 시스템은,
    ① 상기 그래픽 엔진에 의해 발생되는 상기 그래픽 명령을 인터셉트하는 수단과,
    ② 상기 그래픽 명령을 상기 제 2 디스플레이 드라이버로 전달하는 통신 수단과,
    ③ 사전정의된 프로토콜에 따라, 상기 그래픽 명령의 서브세트(a subset of the graphic commands)를 오퍼레이팅 시스템과 독립적인 포맷으로 번역하는 수단과,
    ④ 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 네트워크 수단과,
    ⑤ 상기 프로토콜에 따라, 상기 시스템과 독립적인 그래픽 명령을 상기 적어도 하나의 목적지 데이타 처리 시스템 포맷으로 변환하는 수단과,
    ⑥ 상기 변환된 그래픽 명령을 상기 제 1 디스플레이 드라이버로 전달하는 통신 수단을 포함하는 복제 및 리프레시 시스템.
  6. 제 5 항에 있어서,
    사전결정된 시간 주기를 카운팅하는 타이머 수단과,
    사전결정된 시간 주기마다, 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지의 비트맵을 상기 소스 데이타 처리 시스템의 저장 장치에 카피하는 수단과,
    상기 그래픽 명령의 서브세트에 따라 상기 비트맵 이미지를 변경하는 수단과,
    사전결정된 시간 주기마다, 상기 비트맵 이미지와 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지를 비교하는 수단과,
    상기 비트맵 이미지와 상기 제 2 디스플레이 유닛상에 디스플레이되는 상기 이미지간의 차이가 사전결정된 임계값을 초과할 경우, 상기 비트맵 이미지를 상기 적어도 하나의 목적지 데이타 처리 시스템으로 전송하는 네트워크 수단을 더 포함하는 복제 및 리프레시 시스템.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 네트워크는 근거리 통신망인 복제 및 리프레시 시스템.
  8. 제 5 항, 제 6 항, 또는 제 7 항의 시스템을 구현하는 원격 제어 시스템.
KR1019970033057A 1996-09-24 1997-07-16 스크린의원격복제및리프레시방법,그시스템과원격제어시스템 KR100269529B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9620019.1 1996-09-24
GB9620019A GB2317470A (en) 1996-09-24 1996-09-24 Screen remote control

Publications (2)

Publication Number Publication Date
KR19980024091A true KR19980024091A (ko) 1998-07-06
KR100269529B1 KR100269529B1 (ko) 2000-11-01

Family

ID=10800480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970033057A KR100269529B1 (ko) 1996-09-24 1997-07-16 스크린의원격복제및리프레시방법,그시스템과원격제어시스템

Country Status (5)

Country Link
US (2) US5982392A (ko)
EP (2) EP0834801A3 (ko)
JP (1) JP3224763B2 (ko)
KR (1) KR100269529B1 (ko)
GB (1) GB2317470A (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7077312B2 (en) * 1998-10-27 2006-07-18 Diebold, Incorporated Automated banking machine system and method
US6314470B1 (en) * 1997-07-25 2001-11-06 Hewlett Packard Company System and method for asynchronously accessing a graphics system for graphics application evaluation and control
US6570546B1 (en) * 1998-10-31 2003-05-27 Duke University Video display configuration detector
US6323854B1 (en) 1998-10-31 2001-11-27 Duke University Multi-tile video display system with distributed CRTC
US6275874B1 (en) * 1998-12-23 2001-08-14 Nortel Networks Limited System for producing communication codes responsive to communication signals, translating communication codes into peripheral codes, and producing signals for communicating with peripheral responsive to peripheral codes
US7015932B1 (en) 1999-09-30 2006-03-21 Matsushita Electric Works, Ltd. System for designing visual information to be displayed on monitor unit used in combination with programmable controller
JP2001119767A (ja) * 1999-10-19 2001-04-27 Sony Corp 情報処理装置および方法、情報処理システム並びに記録媒体
US7043697B1 (en) * 2000-05-15 2006-05-09 Intel Corporation Virtual display driver
AR033549A1 (es) * 2000-08-07 2003-12-26 Diebold Inc Maquina automatica para operaciones bancarias, metodos para operarla y medio legible por computadora
JP3936835B2 (ja) * 2000-09-20 2007-06-27 株式会社日立製作所 計算機ネットワーク用の端末装置および操作履歴記録方法
US7359949B2 (en) * 2000-12-29 2008-04-15 Intel Corporation Remotely controlling a UNIX-based system
US20030017846A1 (en) * 2001-06-12 2003-01-23 Estevez Leonardo W. Wireless display
US6801673B2 (en) 2001-10-09 2004-10-05 Hewlett-Packard Development Company, L.P. Section extraction tool for PDF documents
US7038696B2 (en) * 2002-01-04 2006-05-02 Hewlett-Packard Development Company Method and apparatus for implementing color graphics on a remote computer
US7757001B2 (en) * 2002-04-26 2010-07-13 Smart Technologies Ulc System, method and graphical user interface for identifying image from remote site during screen sharing
GB2388506B (en) * 2002-05-10 2004-04-21 Nec Electronics Display driver IC, display module and electrical device incorporating a graphics engine
EP1504417A2 (en) * 2002-05-10 2005-02-09 NEC Electronics Corporation Graphics engine converting individual commands to spatial image information, and electrical device and memory incorporating the graphics engine
US7027056B2 (en) * 2002-05-10 2006-04-11 Nec Electronics (Europe) Gmbh Graphics engine, and display driver IC and display module incorporating the graphics engine
JP4307121B2 (ja) * 2003-03-25 2009-08-05 三菱電機株式会社 地図データ処理装置
KR100810515B1 (ko) * 2003-12-13 2008-03-10 삼성전자주식회사 디스플레이 관리시스템
KR20050108853A (ko) * 2004-05-14 2005-11-17 삼성전자주식회사 멀티 디스플레이 시스템 및 디스플레이장치
US7831680B2 (en) * 2004-07-16 2010-11-09 National Instruments Corporation Deterministic communication between graphical programs executing on different computer systems
US20060039464A1 (en) 2004-08-23 2006-02-23 Emerson Theodore F Method and apparatus for capturing video data to a virtual screen buffer
US20060129634A1 (en) * 2004-11-18 2006-06-15 Microsoft Corporation Multiplexing and de-multiplexing graphics streams
WO2006129676A1 (ja) * 2005-05-31 2006-12-07 Science Park Corporation 監視方法、監視システム、システム用のプログラム、及びプログラムを記録した記録媒体
US8223001B2 (en) * 2005-07-19 2012-07-17 Marvell International Ltd. Two way remote control
US20070018844A1 (en) * 2005-07-19 2007-01-25 Sehat Sutardja Two way remote control
US20090089453A1 (en) * 2007-09-27 2009-04-02 International Business Machines Corporation Remote visualization of a graphics application
US20090207167A1 (en) * 2008-02-18 2009-08-20 International Business Machines Corporation Method and System for Remote Three-Dimensional Stereo Image Display
US9268466B2 (en) * 2009-12-09 2016-02-23 Citrix Systems, Inc. Methods and systems for updating a dock with a user interface element representative of a remote application
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
US20130147832A1 (en) * 2011-12-07 2013-06-13 Ati Technologies Ulc Method and apparatus for remote extension display
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
JP5875555B2 (ja) * 2013-07-29 2016-03-02 株式会社デジタル 画像作成システム
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
KR102478018B1 (ko) 2016-01-13 2022-12-16 삼성전자주식회사 콘텐트 표시 방법 및 이를 수행하는 전자 장치
GB2547220A (en) 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software
GB2547222A (en) 2016-02-10 2017-08-16 Testplant Europe Ltd Method of, and apparatus for, testing computer hardware and software

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4414621A (en) * 1977-06-13 1983-11-08 Canadian Patents & Development Ltd. Interactive visual communications system
US5734871A (en) * 1985-10-29 1998-03-31 Mitem Corporation Method for and apparatus for controlling the execution of host computer application programs through a second computer
US4897799A (en) * 1987-09-15 1990-01-30 Bell Communications Research, Inc. Format independent visual communications
US5309555A (en) * 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
US5241625A (en) * 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
GB2270581A (en) * 1992-09-15 1994-03-16 Ibm Computer workstation
US5872923A (en) * 1993-03-19 1999-02-16 Ncr Corporation Collaborative video conferencing system
US5704042A (en) * 1993-03-19 1997-12-30 Ncr Corporation Accelerated replication of multiple computer displays
US5608426A (en) * 1993-09-28 1997-03-04 Ncr Corporation Palette management for application sharing in collaborative systems
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
US5687376A (en) * 1994-12-15 1997-11-11 International Business Machines Corporation System for monitoring performance of advanced graphics driver including filter modules for passing supported commands associated with function calls and recording task execution time for graphic operation
GB9501378D0 (en) * 1995-01-24 1995-03-15 Ibm A system and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5774720A (en) * 1995-08-18 1998-06-30 International Business Machines Corporation Personality neutral graphics subsystem
US5801689A (en) * 1996-01-22 1998-09-01 Extended Systems, Inc. Hypertext based remote graphic user interface control system
US6038575A (en) * 1996-09-11 2000-03-14 Intel Corporation Method of sharing glyphs between computers having graphical user interfaces

Also Published As

Publication number Publication date
EP0890898A1 (en) 1999-01-13
EP0834801A2 (en) 1998-04-08
US6141022A (en) 2000-10-31
GB9620019D0 (en) 1996-11-13
GB2317470A (en) 1998-03-25
US5982392A (en) 1999-11-09
EP0834801A3 (en) 1998-08-12
JPH10105137A (ja) 1998-04-24
JP3224763B2 (ja) 2001-11-05
KR100269529B1 (ko) 2000-11-01

Similar Documents

Publication Publication Date Title
KR100269529B1 (ko) 스크린의원격복제및리프레시방법,그시스템과원격제어시스템
US5864711A (en) System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US6911987B1 (en) Method and system for transmitting data for a shared application
US5758110A (en) Apparatus and method for application sharing in a graphic user interface
JPH07160608A (ja) プログラム・アプリケーションを表示するためのシステムおよび方法
JP3066597B2 (ja) ラスターデータの変化を検出するための方法および装置
US8199136B2 (en) Image data transmission apparatus and method for image display system
US5754242A (en) Data formatting system for processing multiple independent input data streams for high resolution screen displays
US7012612B1 (en) Context dependent image caching
US20020075297A1 (en) Methods and apparatus for updating information in a display containing fixed and variable information
CN108304239B (zh) 用于远程操作的快速界面交互方法及装置
CN109298806B (zh) 一种基于对象识别的远程快速界面交互方法及装置
US20010034770A1 (en) Method and device for implementing networked terminals in graphical operating environment
US6023558A (en) Graphics compression for an emulation system
US5367628A (en) Multi-window system and display method for controlling execution of an application for a window system and an application for a non-window system
Sproull Raster graphics for interactive programming environments
US6038575A (en) Method of sharing glyphs between computers having graphical user interfaces
JP2005506019A (ja) カラービットマップの正規化
CN114911402A (zh) 远程应用和本地系统间的拖拽交互方法及系统
CN109388457B (zh) 一种多场景的远程快速界面交互方法及装置
JP3248199B2 (ja) Xウインドウを備えた情報処理装置
JP3711144B2 (ja) グラフィックイメージ生成方法
US6600494B1 (en) Color reduction for a remote control system
CN115543140B (zh) 一种在sol页面展示bios设置界面光标的控制方法
JP3359075B2 (ja) 情報処理装置及び方法

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