KR100798963B1 - 클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법 - Google Patents

클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR100798963B1
KR100798963B1 KR1020027000992A KR20027000992A KR100798963B1 KR 100798963 B1 KR100798963 B1 KR 100798963B1 KR 1020027000992 A KR1020027000992 A KR 1020027000992A KR 20027000992 A KR20027000992 A KR 20027000992A KR 100798963 B1 KR100798963 B1 KR 100798963B1
Authority
KR
South Korea
Prior art keywords
response
server
node
client
user input
Prior art date
Application number
KR1020027000992A
Other languages
English (en)
Other versions
KR20020038700A (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 KR20020038700A publication Critical patent/KR20020038700A/ko
Application granted granted Critical
Publication of KR100798963B1 publication Critical patent/KR100798963B1/ko

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트 노드에서 유저 입력에 대한 감지 비쥬얼 응답 시간을 감소하기 위한 방법 및 장치가 개시된다. 클라이언트 노드는 원격으로 서버노드 상의 어플리케이션 프로그램을 실행한다. 어플리케이션 프로그램의 모든 실행은 서버노드 상에서 일어난다. 클라이언트 노드(10)는 서버노드(14)에 대한 유저-제공 입력을 전송하고, 유저-제공 입력은 디스플레이 하기 위해 클라이언트 노드로 전송되는 서버노드로부터의 응답을 유도한다. 클라이언트 노드는 서버노드에 대해 전송될 유저 입력을 수신한다. 클라이언트 노드는 키보드 또는 포인팅 디바이스를 통해 유저 입력(34)을 얻을 수 있다. 유저 입력에 대한 응답으로, 클라이언트 노드는 유저 입력에 대한 서버응답(30)의 예측치를 생성한다. 그 다음 클라이언트 노드는 예측치(22)를 표시한다. 예측치의 표시는 서버노드로부터 얻을 수 있는 것보다 유저 입력에 대한 더 빠른 비주얼 응답을 갖는 클라이언트 유저를 제공한다. 서버 응답을 수신하여, 클라이언트 노드는 서버응답을 표시하고, 예측치를 오버라이트한다.
가시 응답, 유저 입력, 클라이언트 시스템, 서버 시스템

Description

클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법{A System And Method For Providing Immediate visual Response to user Input At A Client System}
본 발명은 일반적으로 클라이언트-서버(client-server) 컴퓨터 네트워크에 관한 것으로, 보다 상세하게는, 클라이어트 시스템에서 유저 입력(user input)에 대한 피드백을 제공하기 위한 방법 및 시스템에 관한 것이다.
전형적인 컴퓨터 네트워크는 통신선(commucation link)을 통해 서버 시스템과 통신하는 클라이언트 시스템을 포함한다. 클라이언트 시스템의 유저는 주로 클라이언트 시스템 상에서 동작하는 유저 인터페이스(user interface)를 통해 서버 시스템으로 질의(query)들을 공식화하여 전달한다. 서버 시스템은 질의를 예측하고 클라이언트 유저 인터페이스 상에 나타내기 위해 클라이언트 시스템으로 응답(response)을 전송한다.
과거 10년에 걸쳐, 로컬 영역 네트워크(local area network:LAN), 와이드 영역 네트워크(wide area network:WAN), 인트라넷(intranet) 및 인터넷(internet)과 같이, 다양한 컴퓨터 네트워크의 변화가, 원격 어플리케이션 프로세싱(remote application processing)에 채택되어왔다. 원격 어플리케이션 프로세서 시스템에서, 모든 응응 프로그램의 실행은 서버 시스템 상에서 일어나며, 단지 클라이언트 유저 인터페이스용 컨트롤 정보, 키스트로크(keystroke) 및 마우스 움직임 만이 네트워크를 따라 이동한다. 그 결과, 보다 적은 클라이언트 시스템의 리소스(resource)가 어플리케이션 프로그램들을 동작하기 위해 요구된다.
그러나, 원격 어플리케이션 프로세싱의 단점은 클라이언트 시스템이 서버 시스템으로 입력을 보낼때부터 클라이언트 시스템이 응답을 수신할 때까지 채용하기 어려운 왕복전송 지연(round-trip delay)(예, 지연시간)을 경험한다는 것이다. 이러한 지연은 인터넷, WANs, 위성 링크 상에서 또는 다중-유저 서버시스템과의 교전과 같은, 원격 컴퓨팅 환경(remote computing environment)에서 스스로 나타낼 수 있다. 무선 컴퓨팅 환경에 따른, 서버시스템으로부터 클라이언트 시스템의 지리적 격리(geographical separation)가 지연을 일으킨다. 이것은 타이핑하는 유저(예를 들면, 클라이언트 시스템에서)에게 특히 성가실 수 있다. 서버시스템으로 이동하는 클라이언트 입력 및 클라이언트 시스템으로 리턴하기 위한 서버 응답을 위해 요구되는 시간이 유저를 혼란시켜 타이핑 에러를 유발시킬 수 있어 명백한 지연을 일으킨다. 다중-유저 서버시스템(muti-user server system)에서, 왕복전송 지연은 비지 서버 시스템(busy server system)의 능력에 더 의존할 것이고, 다중 활성 클라이언트(multiple active client)에 대한 유저 인터페이스 데이터를 처리하는 동시에, 특정한 클라이언트 시스템으로부터 수신된 입력에 응답할 것이다.
결과적으로, 왕복전송 응답 시간이 받아들일 수 있는 유저 인터페이스 응답 시간 보다 더 크다는 데서 종래 원격 컴퓨팅 및 다중-유저 기술들의 이점들이 성취를 저감시킨다. 그러므로, 원격 컴퓨팅 및 다중-유저 컴퓨터 시스템 네트워크에서 클라이언트 시스템의 유저에 의해 감지된 지연시간을 최소화하는 시스템 및 방법에 대한 필요성이 대두된다.
본 발명은 어플리케이션 프로그램의 실행이 서버노드 상에서 일어난다는 점에서 서버노드 상의 어플리케이션 프로그램을 원격으로 실행하는 클라이언트 노드에서의 유저 입력에 대한 감지된 비쥬얼 응답(visual response)을 감소시키기 위한 방법 및 장치를 특징으로 한다. 클라이언트 노드는 서버노드로 유저 입력을 전송하고, 유저 입력은 서버노드로부터 디스플레이를 위해 클라이언트 노드로 되전송되는 응답을 이끌어낸다.
어느 한 측면에 따르면, 본 발명은 서버노드에 전송된 유저 입력을 수신하는 단계를 포함하는 방법을 특징으로 한다. 유저 입력에 응답하여, 유저 입력에 대한 서버 응답의 예측(prediction)이 생성된다. 그 다음 이 예측은 클라이언트 노드(client node)에 디스플레이된다. 예측은 현재 서버상에서 동작하는 어플리케이션에 대한 정보에 기초하여 결정될 수 있다. 관련 정보는 커서 위치(cursor position), 폰트(font) 및 데이타의 다른 타입을 포함한다.
다른 분야에서, 본 발명은 서버노드로 전송되는 유저 입력을 제공하는 입력 디바이스(input device)와, 유저 입력에 대한 서버응답의 예측을 산출하는 프로세 서(processor)와, 예측을 표시하는 디스플레이 디바이스(display device)를 포함하는 클라이언트 노드를 특징으로 한다.
또 다른 분야에서, 본 발명은 서버노드와 클라이언트 노드를 포함하는 클라이언트-서버(client-server) 시스템을 특징으로 한다. 클라이언트 노드는 유저 입력을 제공하기 위한 입력 디바이스와, 프로세서 및 디스플레이 디바이스를 포함한다. 프로세서는 서버노드로 유저 입력을 전송하고, 유저 입력에 응답하여, 서버노드에 의해 유저 입력에 대한 서버응답을 예측하도록 클라이언트 응답을 산출한다. 클라이언트 응답은 클라이언트 노드가 서버응답을 수신하기 전에 유저 입력에 대한 비쥬얼 응답을 제공한다. 디스플레이된 서버응답은 그 예측 위에 오버라이트(overwrite)된다.
본 발명은 첨부된 청구항들에서 상세하게 나타나며, 본 발명의 전술 및 다른 이점은 첨부 도면과 관련한 이하 설명을 참조하여 더 쉽게 이해될 수 있다.
도 1은 네트워크를 통해 서버노드와 통신하는 클라이언트 시스템의 실시예의 도면이다.
도 2는 본 발명의 발명을 실행할 때 클라이언트와 서버 사이에서 통신경로를 도시하는 클라이언트-서버 시스템의 블럭도이다.
도 3은 클라이언트 노드가 키보드 입력으로 응답을 발생시키는 바람직한 프로세서의 바람직한 플로우차트이다.
도 4는 클라이언트 노드가 포인팅 디바이스를 통해 제공된 유저 입력으로 응답을 발생시키는 바람직한 프로세서의 플로우차트이다.
도 1은 본 발명의 구조에 따라 서버노드(14) 상에 어플리케이션 프로그램을 원격으로 실행하기 위한 통신 네트워크(18)를 따라 제2 컴퓨팅 시스템(second computing system)(서버노드)(14)과 통신하는 제1 컴퓨팅시스템(first computing system)(클라이언트 노드)(10)을 도시한다. 클라이언트 및 서버 노드(10,14) 통신에 대한 네트워크(18)는 인터넷과 같은 로컬 에어리어 네트워크(LAN) 또는 와이드 에어리어 네트워크(WAN)가 될 수 있다. 클라이언트 및 서버노드(10,14)는 표준 전화선(standard telephone line), LAN 또는 WAN 링크(예. T1,T3,56kb,X.25), 광대역 연결(IDSN, 프레임 릴레이(freame relay), ATM), 및 무선 연결을 포함하는 다양한 연결을 통해 네트워크(18)와 연결할 수 있다. 연결은 다양한 통신 프로토콜(예. TCP/IP, IPX, SPX, NetBIOS, Ethernet, RS232C, direct asynchronous connection)을 사용하여 개설될 수 있다. 다른 클라이언트 노드 및 서버노드(미도시) 또한 네트워크(18)로 연결될 것이다.
삭제
하나의 실시예에서, 클라이언트 노드(10)는 플로리다주, FT. 라우더블의 사이트릭스 시스템사(cytrix system. Inc.)에 의해 개발된 독립 컴퓨팅 아키텍쳐 (independent computing architecture:ICA)를 사용하는 서버노드(14)와 통신한다. ICA는 클라이언트 노드(10) 및 서버 노드(14) 사이에서 입력/출력을 제어하는 범용 프리젠테이션 서비스 프로토콜(general-purpose presentation services protocol) 이다. ICA의 설계는, TCP/IP, IPX/SPX, NetBEUI와 같이, 산업 표준 전송 프로토콜을 사용하고, ISDN, 프레임 릴레이, 및 비동기 전송 모드(asynchronous transfer mode:ATM)에 제한되지 않으며, 산업 표준 네트워크 프로토콜에 대해 동작하기 위한 프리젠테이션 서비스이다.
ICA프로토콜로써, 모든 어플리케이션 실행은 서버노드(14) 상에 남아있고, 윈도우즈 어플리케이션 스크린 프리젠테이션(windows application screen presentation), 풀-스크린 텍스트 프리젠테이션(full-screen text presentation), 키보드 및 포인팅 디바이스 업데이트와 같은, 유저인터페이스만 클라이언트 노드(10)로 보내진다. 발명의 기술은 표준 ICA키보드 프로세싱을 가속화하는 특징에 따라 동작한다. 만약 특정 어플리케이션 프로그램 또는 입력 제어가 기술을 뒷받침할 수 없다면, 표준 ICA키보드 프로세싱이 사용된다. 다른 실시예는, 본 발명의 구조를 실행하기 위해, 마이크로소프트 RDP(remote desktop protpcal)와 같은, 다른 원격 제어 프로토콜을 이용할 수 있다.
클라이언트 노드(10)는 어떠한 개인용 컴퓨터(예. 286,386,486,펜티엄, 펜티엄Ⅱ, 매킨토시 컴퓨터), 씬-클라이언트 디바이스(thin-client device), 윈도우즈 및 넌윈도우즈 기반 터미널(windows and non-windows based terminal), 네트워크 컴퓨터, 무선 디바이스, 정보 애플리언스(information appliance), RISC 파워 PC, X-디바이스, 워크스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 또는 서버노드(14) 상에서 원격으로 실행하는 어플리케이션 프로그램으로 입력 데이타를 전송하는 프로토콜에 따라 어플리케이션 데이터를 표시하고 동작할 수 있는 어떠한 프로세서- 기반 디바이스로 할 수 있다.
클라이언트 노드(10)에 표시되는 유저 인터페이스는 텍스트 동작형(예. 워싱턴주, 레드몬드의 마이크로소프트사에서 만들어진 도스 운영 체제) 또는 그래픽 동작형(예. 워싱턴주, 레드몬드의 마이크로소프트사에서 만들어진 윈도우즈 운영 체제)로 할 수 있다. 클라이언트 노드(10)의 운영 체제는, 윈도우즈 3.x, 윈도우즈 95, 윈도우즈 98, 윈도우즈 NT 3.51, 윈도우즈 NT 4.0, 매킨토시, 자바(java), 및 유닉스, 도스, 리눅스(linux), 및 윈도우즈 기본형 터미널용 윈도우즈 CE에 제한되지 않고 다양한 플랫폼 중에 하나를 포함할 수 있다. 클라이언트 노드(10)는 디스플레이 스크린(22), 키보드(24), 포인팅 디바이스(28)(예, 마우스, 트랙볼, 터치-패드, 터치-스크린 등), 프로세서(미도시) 및 영구 저장부(persistent storage)(미도시)를 포함한다.
서버노드(14)는 네트워크(예, 워크스테이션, 프린터 등)의 다른 부분에 액세스를 제어하고 클라이언트 노드(10)로부터 수신된 입력에 응하여 어플리케이션을 동작시키는 어떠한 컴퓨터 디바이스로 할 수 있다. 클라이언트 노드(10)처럼, 서버노드(14)는, 예를 들면, 윈도우즈 3.x, 윈도우즈 95, 윈도우즈 98, 윈도우즈 NT 3.51, 윈도우즈 NT 4.0, 매킨토시, 자바, 및 유닉스, 도스, 리눅스, 및 윈도우즈 기본형 터미널용 윈도우즈 CE 등과 같은 다양한 운영 체제 플랫포옴을 뒷받침할 수 있다. 서버노드(14)는 서버 펌(server farm)이라 불리는, 논리적으로 단일 서버 시스템처럼 동작하는 일군의 서버시스템을 포함할 수 있다. 하나의 실시예에서, 서버노드(14)는 다수의 동시 활성 클라이언트 노드를 지지하는 다중-유저 서버시스 템이다.
서버노드(14)는 클라이언트 노드(10)에 의해 액세스될 수 있는 하나 또는 그 이상의 어플리케이션 프로그램을 관리한다. 이러한 어플리케이션 예로는 워싱턴주, 레드몬드의 마이크로소프트 사에서 만들어진 모든 브라우져 소프트 웨어(예를 들면, 마이크로소프트 인터넷 익스플로러(MICROSOFT INTERNET EXPLORERTM), 마이크로 소프트 워드(MICROSOFT WORD) 및 마이크로소프트 노드패드(MICROSOFT NOTEPAD)와 같은 워드 프로세싱 프로그램, 마이크로소프트 액세스(MICROSOFT ACCESS)와 같은 데이타 베이스 프로그램, 및 마이크로 소프트 엑셀(MICROSOFT EXECL)과 같은 스프레드 쉬트 프로그램)을 포함한다.
이러한 어플리케이션 프로그램은 서버노드(14)상에서 작동하는 운영 체제의 실행을 지시하기 위해 어플리케이션 프로그램 인터페이스(API) 루틴을 불러낸다. 서버측 지원은, 워싱톤, 레드몬드의 마이크로 소프트 사에 의해 개발된, 활성 접근이 쉬운 API, 또는 윈도우의 제어하에 있는 어플리케이션으로부터 추출될 윈도우 내용에 대한 정보를 제공하는 등가의 전유 API(proprietary API)를 사용할 수 있다. 예를 들면, 활성 액서스 가능(active accessibility) API는 컴포넌트 객체 모델(component object model:COM) 객체와 같은 유저 인터페이스 요소를 모델로 한다. 클라이언트는 Iaccessible::accLocation 및 Iaccessible::get_accName과 같이 제공되는 함수를 사용하여 객체의 속성을 조사할 수 있다. 전술한 실시예들은 실시예를 가리키는 것이지 그것을 속속들이 규명하는 것은 아니다.
간략하면, 클라이언트 노드(10)는 서버노드(10)상의 어플리케이션 프로그램을 원격으로 실행하기 위해 서버노드(14)와 통신한다. 클라이언트 노드(10)에서 제공된 유저 입력은 어플리케이션 프로그램에 대한 입력으로서 제공된다. 어플리케이션 프로그램의 모든 실행은 클라이언트 노드(10)로부터 서버노드(14)로 전송된 이 유저 입력에 따라 서버노드 (10) 상에서 일어난다. 전형적으로 클라이언트 노드(10)의 유저에 의해 제시된, 유저 입력의 예는, 키보드(24)를 통해 입력된 문저 또는 포인팅 디바이스(28)를 사용하여 제시된 커서이동을 포함한다.
유저 입력에 응하여, 서버 노드(14)는 클라이언트 노드(10)로 전송되고 클라이언트 노드(10)에 의해 수신된 다음 클라이언트 노드(10)의 스크린 디스플레이의 내용 및 외형을 제어하는 서버 응답을 생성한다. 서버응답의 형태는 수신된 유저 입력 타입과 유저 입력을 처리하는 어플리케이션 프로그램에 따라 달라진다. 예를 들면, 만약 어플리케이션 프로그램이 워드 프로세서이고, 입력 이벤트가 문자 "T"의 키보드 입력이라면, 서버노드(14)로부터 클라이언트 노드(10)까지의 응답은 클라이언트 노드(10)상에 표시될 때 문자 "T"를 생성한다. 응답은 클라이언트 노드(10)의 스크린 상에 문자 "T"의 표시를 정의하는 정보를 포함할 수 있고, 현재의 입력 위치 정보 및 폰트 정보를 포함한다. 유사하게, 예를 들면, 만약 유저 입력이 툴바아이콘(toolbar icon)을 선택하는 포인팅 디바이스 동작(예, 커서 움직임)을 대신한다면, 서버 응답은 클라이언트 노드(10)의 스크린상(22)에 아이콘과 관련된 드랍-다운 메뉴(drop-down menu)를 디스플레이 할 수 있다.
서버노드(14)로 네트워크(18)를 통과하기 위한 유저 입력 및 클라이언트 노드(10)로 되돌리기 위한 서버 응답용 경과 시간(elapsed time)의 주기는 노드(10)와 노드(14)사이의 연결 지연이다. 클라이언트 노드(10) 및 서버노드(14)가 긴-지연(high-latency) 연결을 따라 통신할 때, 유저는 입력을 인가할 때부터 서버응답을 수신할 때까지 분명한 지연을 경험할 수 있다. 이러한 긴-지연 연결은 WAN 또는 인터넷 환경에서 보편적이며, 다중 활성 클라이언트로부터 질의에 응답하기에 바쁜 다중-유저 컴퓨터 시스템에서 발생할 수 있다.
이러한 지연의 효과를 완화하기 위해, 클라이언트 노드(10)는 서버 응답을 예상하고 입력 이벤트로 응답을 발생시키고 표시한다. 본 발명의 구조에 따르면, 클라이언트 노드(10) 응답은 기대된 서버응답의 디스플레이 다음에, 내용 및 외형을 실질적으로 결합하는 서버응답을 예측하기 위해 시도된다. 내용은, 예를 들면, 대문자 "T"와 전술한 예의 드랍-다운 메뉴처럼, 표시될 것으로 기대되는 서버응답을 명확한 텍스트 및 그래픽 영상을 포함한다. 외형과 관련된 특성은, 예를 들면, 디스플레이 스크린(22) 상에 표시된 문자의 색(예, 블루), 폰트 크기(예, 12), 폰트 타입(예, 타임즈 뉴 로만체), 폰트 스타일(예, 이탤릭), 그리고 현재 입력 위치(예, (x,y)좌표)를 포함한다.
클라이언트 응답 생성
도 2는 유저-제공 입력(user-supplied input)(34)으로 클라이언트 응답(32)을 발생시키기 위한 클라이언트 응답 발생기(client response generator)(30)에 의해 사용된 정보를 도시하는 실시예 블럭도를 도시한다. 클라이언트 응답 발생기(30)는 클라이언트 노드(10)의 프로세서 및 클라이언트-제공 응답(32)을 형 성하여 표시하는 특정의 API루틴을 포함한다. 전형적으로, 클라이언트 응답 발생기(30)는 유저-제공 입력(34) 및 서버-제공 정보(36)에 기초하여 클라이언트-제공 응답(32)을 형성하지만, 이하 어떠한 서버-제공 정보가 이용가능하지 않으면, 클라이언트 응답 발생기(30)가 디폴트 정보(38)를 대신 사용할 수 있다.
유저-제공 입력(34)은 (1) 키보드 입력 또는 (2) 포인팅 디바이스 입력 중 적어도 두가지 타입 중 하나이다. 클라이언트 노드(10)의 유저가 키보드를 사용하여 문자를 타이핑함에 의한 키보드 입력 및 포인팅 디바이스(28)를 클릭 또는 더블-클릭함으로써 포인팅 디바이스 입력을 제공한다. 포인팅 디바이스 입력의 다른 형태는 클라이언트 노드(10)의 디스플레이 스크린(22) 상에서 커서의 위치이다. 유저-제공 입력은 클라이언트-측 전송 메카니즘(client-side transport mechanism)(33)을 경유하여 서버(14)로 전송된다. 도 2에 도시된 실시예에서, 클라이언트-사이드 전송 메카니즘(33)은 로우-레벨 네트워크 통신(예. 물리층(physical layer))을 조작하는 전송 드라이버(transport driver), 하이-레벨 네트워크 통신을 조작하는 프로토콜 드라이버(protocol driver)(예, 데이타 링크층), 및 ICA프로토콜에 따르기 위한 데이타의 포매팅(formatting)을 조작하는 ICA드라이버를 포함한다.
서버-제공 정보(36) 타입은 유저 입력 타입에 의존한다. 전술된 바와 같이, 입력타입은 키보드 입력 및 포인팅 디바이스 입력을 포함한다. 키보드 입력에서, 서버-제공 정보(36)는 현재 입력 위치 및 현재 폰트 정보를 포함한다. 현재 입력 위치는 현재 커서 위치에 의해 결정된다. 폰트 정보는 디스플레이 스크인 상에 표시될 때 클라이언트-제공 응답의 형태(예, 폰트 크기, 스타일, 색, 타입, 등)를 정의한다.
포인팅 디바이스 장치에서, 서버-제공 정보(36)는, 도시된 바와 같이, 현재 입력 위치 정보, 및 현재 객체 정보를 포함한다. 예를 들면, 만약 현재 스크린 객체가 메뉴이면, 스크린 객체 정보는 메뉴 크기 및 스크린 위치, 다수의 메뉴 요소, 및 메뉴 요소의 크기와 같은 그러한 정보를 포함한다. 여기서, 현재 입력 위치 정보는 포인팅 입력 디바이스에 의해 결정된 커서위치에 대응한다.
서버노드(14)는 서버 노드(14) 상에서 실행하는 어플리케이션 프로그램(40)으로부터의 입력위치, 폰트 및 스크린 객체 정보를 얻는다. 현재 입력위치를 제공하기 위해, 어플리케이션 프로그램은 루틴을 조작하는 표준 운영체제 커서를 사용할 수 있거나 도 2에 도시된 "폰트 인포(font info)"API(41) 또는 "카렛(caret)"API(42)와 같은, 커서정보를 얻는 특정의 쿼리 API를 뒷받침할 수 있다. 표준 운영 체제 루틴의 사용은 커서 정보를 얻기 위한 루틴에 약간의 변형을 요구한다. 예를 들면, 마이크로소프트 윈도우즈(MICROSOFT WINDOWS)를 사용하는 실행에서는 표준 다이나믹 링크 라이이브러리 파일 유저32.dll(dynamic link library file user 32.dll)에서 후크 프로시져(hook procedure)를 인스톨함으로써 이것을 달설할 수 있다.
폰트 정보를 제공하기 위해, 어플리케이션 프로그램(40)은 키보드 입력에 응답으로 텍스트를 드로우 하기 위한 출력 함수를 사용하거나 폰트 정보를 얻기 위한 특정의 질의 API를 제공하거나 둘 중 하나이다. 어플리케이션 프로그램이 폰트 정 보를 제공할 수 있는 API를 뒷받침힐 수 없어도 클라이언트 응답 발생기(30)는 클라이언트-제공 응답(32)을 생성하기 위해 디폴트 정보(38)를 사용할 수 있다. 예를 들면, 폰트에 대한 디폴트 정보(38)는 어플리케이션 프로그램에 의해 발생된 사전의 텍스트 출력, 가장 최근으로부터 받아들이거나 결정될 수 있다.
어플리케이션 프로그램(40)은 현재 입력위치를 제공하는 것과 동일한 방법으로 스크린 객체 정보를 제공하며, 즉, 이러한 정보를 액세스하기 위해 시스템-제공 루틴을 사용하거나 전술한 IAccessible::accLocation과 마찬가지로 다른 특정 질의 API를 계속 지원함으로써 제공한다. 이러한 질의 API는, 마이크로소프트에서 개발된 활성 액세스 가능 인터페이스에서의 API와 같은, 표준 API 또는 전유(proprietary) API로 할 수 있다.
서버-제공 정보(36) 타입 또한 서버노드(14)상에서 일반적으로 실행하는 어플리케이션 프로그램의 동작 상태에 의존한다. 예를 들어, 서버노드(14)가 워드 프로세싱 어플리케이션 프로그램을 실행하고, 프로그램이 편집 제어를 사용하는 입력을 바로 처리한다면, 클라이언트 응답 발생기(30)는 서버노드(14)가 이러한 제어 방향에 따라 동작하는 동안 키보드 입력을 처리할 수 있는 방법을 예상할 수 있다. 윈도우즈 동작 시스템을 사용하여 구현된 실시예에서, 편집 제어는 표준이고 문서화가 잘 되어있다. 편집 제어의 작용은 일반적으로 텍스트의 다중 라인을 포함하는 제어를 지시하는 ES_MULTILINE, 인가될 숫지만 허용하는 제어를 지시하는 ES_NUMBER, 입력된 데이터가 중앙으로 배치될 것을 지시하는 ES_CENTER, 또는 입력된 텍스트가 로우 케이스로 변환될 것이라는 것을 지시하는 ES_LOWERCASE와 같은, 편집 제어와 협력되는 플래그의 세트에 의해 결정된다. 다른 정보는, 출력 직사각형의 현재 크기, 현재 선택된 폰트, 현재 라인, 또는 편집 제어에서 현재 텍스트 선택과 같은, 편집 제어를 질의함으로써 얻어질 수 있다. 그러므로, 클라이언트 응답 발생기(30)는, 예를 들면, 서버응답을 추정하기 위해 현재 편집된 텍스트와 협력하는 다수의 문자를 예측할 수 있다. 다른 실시예에서, 클라이언트 응답 발생기(30)는 후킹 제어 프로시져(hooking control procedure)를 사용함으로써 제어를 모니터한다. 만약 편집 제어가 유저 입력 또는 어플리케이션 요청의 결과로서 그 상태를 변화시키면, 변화는 인스톨된 후크 프로시져에 의해 검출되고 업데이트된 정보는 클라이언트와 통신된다.
추정 기술이 편집 제어나 어떤 특정한 제어 세트에 제한되지 않으며 이 기술은 커서(caret) 정보가 클라이언트 응답 발생기(30)에 이용할 수 있는 한 어떠한 입력 제어 형태로 적용될 수 있음을 이해하여야 한다. 선택적으로, 이 기술은 폰트 정보가 또한 클라이언트 응답 발생기(30)에 이용가능해질 것을 필요로 할 수 있다.
서버노드(14)는 어플리케이션 프로그램 타입에 의존하는 어플리케이션 프로그램의 실행중의 다양한 시점에서 클라이언트 노드로 서버-제공 정보(36)를 보낼 수 있다. 어떤 실시예에서, 서버노드(14)는 주기적으로 클라이언트(10)에 정보를 보낸다. 이들 실시예에서, 서버(14)는 정보를 전송하기 위해 ICA프로토콜을 사용하여 설치된 가상 채널(virtual channel)을 사용할 것이다. 다른 실시예에서, 클라이언트(10)는 로우 네트워크 밴드폭을 사용하거나 로우 프로세서 로딩의 주기와 같은, 기회 시간(opportune time)에 서버(14)로부터 정보를 요구한다. 클라이언트(10)가 정보를 요구하는 한 시점은 서버노드(14)가 어플리케이션프로그램(40)을 실행하기 시작할 때이다. 여기서, 서버(14)와 클라이언트 노드(10) 사이에서의 연결의 지연은 클라이언트 유저가 어플리케이션 프로그램(40)으로 입력을 여전히 제공하는 것이 아직 시작되지 않기 때문에 클라이언트 유저 작용의 영향을 최소로 받는다. 다른 시점은, 예를 들면, 서버노드(14)가 클라이언트 노드(14)에 서버 응답을 전송할 때와 마찬가지로, 어플리케이션 프로그램(40)의 실행중에 일어날 수 있다. 또 다른 시점은, 예를 들면, 어떠한 트리거 이벤트(trigger event)가 어플리케이션 프로그램의 실행 내내 일어날 때, 예를 들면, 클라이언트 유저가 데이타베이스 레코드에서 데이타를 입력하는 동안 하나의 입력 필드로부터 다른 입력 필드로 이동할 때이다. 여기서, 매시간 클라이언트 유저가 새로운 입력 필드로 나아가고, 서버노드(14)는 그 입력필드에 대해 적절한 클라이언트 노드 정보(36)를 전송할 수 있다.
도 3은 클라이언트 유저에 의해 키보드(24)로 타이핑된 각 문자에 대한 즉각적인 비주얼 응답을 클라이언트 유저에게 제공하도록 클라이언트노드(10)와 서버노드(14)에 대한 본 발명의 실시예 프로세스를 도시한다. 응답은 문자에 의해 특성을 나타낸다. 따라서, 유저는 응답이 관측되는 순간에서부터 입력을 제공하는 순간 사이에서 어떠한 지연을 가시적으로 식별할 수 없다.
간략하면, 클라이언트 노드(10)가 응응 프로그램을 개시하고(스텝40), 응답으로, 서버노드(14)가 그 어플리케이션의 실행을 시작한다(스텝44). 단지 설명을 위한 목적으로, 어플리케이션 프로그램은 유저에 의해 타이핑된 문자가 나타나는 다중-라인 편집 박스(multi-line Edit box)를 사용하는, 마이크로소프트 노트패드(MICROSOFT NOTEPAD)이다. 그 용용의 실행을 시작한 후에, 서버노드(14)는 클라이언트 노드(10)에 어플리케이션-특정 정보(application-specific information)를 전송한다(스텝 48). 이 정보는 적어도 폰트 정보 및 현재 입력 위치 정보를 포함한다.
키보드에서, 클라이언트 유저가 대문자"T"를 타이핑한다. 클라이언트 노드(10)는 이 키보드 입력을 수신한다(스텝 52), 전술된 바와 같이, 서버 응답을 예측하도록 비주얼 응답을 발생시키고 표시한다(스텝 56). 클라이언트-공급 응답은 클라이언트-공급 응답 역시, 폰트 타입, 크기, 색, 디스플레이 스크인 상에서 현재 입력 위치와 같은, 캐릭터의 비주얼 형태를 예측하기 때문에 대문자 "T"의 단순한 메아리 이상이다.
이러한 모든 비쥬얼 형태들은 스텝 48에서 서버에 의해 제공되는 정보로부터 얻어질 수 있다. 클라이언트 노드(10)는 이러한 어플리케이션-상세 정보를 가지며 서버노드(14)에 의해 제공되지 않는 어떠한 비주얼 형태를 위해 디폴트 정보를 이용할 수 있다.
클라이언트 노드(10)는 서버노드(14)로 입력 문자"T"를 전송한다(스텝 60). 비록 클라이언트-제공 응답의 발생 및 표시후에 일어나는 것처럼 도시되어 있을지라도, 서버노드(14)로의 문자 전송은 이러한 발생 및 표시전에 일어날 수 있다. 클라이언트 노드는 클라이언트 유저에 의해 타이핑된 제2문자(여기서, 문자"e")를 수신한다(스텝64). "T"자에 대한 클라이언트-생성 응답과 동일한 방법에서, 클라이언트 노드(10)가 클라이언트 디스플레이 스크린 상에서 문자 "e"에 대한 응답을 발생시키고 표시한다(스텝 68). 스텝 72에서, 클라이언트 노드(10) 는 서버노드(14)로 문자 "e"의 유저입력을 전송한다.
서버노드(14)로 문자 입력을 보낸 다음, 클라이언트 노드(10)는 서버응답을 모니터한다. 서버노드(14)가 문자 입력"T"에 응답을 생성하여, 네트워크(18)를 거쳐 클라이언트 노드(10)로 응답을 전송한다. 일반적으로, 클라이언트와 서버노드(10,14) 사이에서의 연결 지연은 클라이언트-공급 응답을 제공하고 디스플레이하기 위해 클라이언트 노드(10)에서 필요로 하는 시간보다 더 길다. 그러므로, 클라이언트-제공 응답은 서버노드가 서버응답을 발생시키거나 유저 입력을 수신하기 전에 스크린 상에 나타날 것이다. 일반적으로, 서버노드와 클라이언트 노드 사이에서의 통신선의 지연은, 본 실시예에 도시된 바와 같이, 다중 문자로 클라이언트 노드(10)에 의해 표시된 뒤쳐진 응답들을 서버노드(14)로부터 응답하는 것과 같다.
클라이언트 노드(10)가 "T"자에 대한 서버응답을 수신하고 서버응답으로써 클라이언트-제공 응답을 겹쳐씀으로써 디스플레이를 업데이트한다(스텝80). 서버응답을 클라이언트 응답에 겹쳐쓰기 때문에, 서버 응답은 클라이언트-제공 응답을 정확하게 매치할 필요가 없다. 클라이언트-공급 응답과 서버 응답 사이에서의 외관상 미세한 차이는 보통 클라이언트 유저에 의해 식별할 수 없다. 다른 실시예에서, 클라이언트 노드(10)는 클라이언트-공급 응답을 서버응답과 비교한 다음 서버응답이 다르면 클라이언트-공급 응답에 겹쳐쓴다.
서버노드가 문자 입력"e"에 대한 응답을 생성하고, 클라이언트 노드로 응답을 리턴시키고, 이 서버응답으로 디스플레이 스크린을 업데이트한다. 다른 실시예에서, 클라이언트 노드(10)는 서버-제공 응답이 클라이언트-제공 응답과 다른지 아닌지에 관계없이 디스플레이 스크린을 업데이트한다. 다른 실시예에서, 클라이언트-제공 응답이 잘못된 경우에만 클라이언트 노드(10)는 서버-제공 응답으로 디스플레이를 업데이트한다. 이상과 같이, 서버노드(14)로부터 클라이언트 노드(10)까지 서버 응답의 매 전송에 따라, 서버노드(14)는 후속하여 생성된 클라이언트-제공 응답을 업데이트하기 위해 클라이언트 노드(10)에 의해 사용하기 위한 새로운 폰트 및 현재 입력 정보를 제공할 수 있다.
도 4는 포인팅 디바이스(28)를 통해 제공된 유저 입력에 대한 응답을 발생시키는 클라이언트 노드에 의한 프로세스의 다른 실시예의 플로우 차트를 제공한다. 도 3에 도시된 바와 같이, 클라이언트 노드(10)는 서버노드(14) 상에서 실행을 시작하는(스텝104) 어플리케이션 프로그램을 개시한다(스텝100). 이 실시예에서, 서버노드(14)는 마이크로 소프트 워드 어플리케이션 프로그램을 실행한다.
도 3에 설명된 바와 같이, 서버노드는 어플리케이션-특정 정보를 제공한다(스텝108). 여기서, 어플리케이션-상세 정보는, 마이크로소프트 워드(MICROSOFT WORD) 윈도우의 상부에 디스플레이된 커맨드와 툴박스 아이콘과 같은, 스크린 객체와 각각의 스크린 객체에 연관된 메뉴구조를 설명한다. 클라이언트 객체 정보는 각 커맨드 및 아이콘에 의해 커버되는 스크린 위치 및 스크린 영역을 포함하므로 클라이언트 노드(10)가 현재 커서 위치를 사용하여, 클라이언트 유저가 포인팅 디바이스(28)를 클릭할 때 선택된 커맨드 또는 아이콘을 발생시킬 수 있다. 예를 들면, 마이크로소프트 워드(MICROSOFT WORD) 윈도우 표면에서 커맨드의 전형적인 표시는 File View Insert Format Tools Table Window Help 이다.
편집 커맨드의 활성화는, 예를 들면, 커서위치가 편집 커맨드에 의해 커버되는 사각 스크린 영역의 경계에 해당하는 동안 포인팅 디바이스를 클릭함으로써 일어난다.
스텝 (112)에서, 클라이언트 노드(10)는 이 포인팅 디바이스 입력을 수신한다. 서버 응답을 예측하여, 클라이언트 노드(10)는, 서버-제공 어플리케이션-특정 정보 및 현재 커서위치로부터, 응답, 여기서는 편집 커맨드와 연관된 드랍-다운 메뉴를 생성하고 디스플레이한다(스텝 116). 클라이언트 노드(10)는 서버노드(14)로 유저 입력을 전송한다(스텝120). 하나의 실시예에서, 클라이언트 노드(10)는 드랍-다운 메뉴내에서의 커서의 움직임을 추적하고 현재 커서 위치에 해당하는 메뉴 아이템을 하이라이팅한다. 스텝 (128)에서, 서버노드(14)는 포인팅 디바이스 입력에 대한 실제응답을 생성하고 클라이언트 노드(10)로 응답을 되돌린다. 클라이언트 노드(10)는 서버응답으로써 디스플레이를 업데이트한다.
본 발명은 하나 또는 그 이상의 제조물 상에 또는 제조품 내에 구현되는 컴퓨터-판독가능한 소프트웨어 프로그램으로서 구현될 것이다. 제조물은, 예를 들 면, 플로피디스크, 하드디스크, 하드-디스크 드라이브, CD롬, DVD롬, 플래시 메모리 카드, EEPROM, EPROM, PROM, RAM, ROM, 또는 자기 테이프 중 하나이거나 조합일 수 있다. 일반적으로, 임의의 표준 또는 특정, 프로그래밍 또는 번역 언어(interpretive language)는 컴퓨터-판독가능한 소프트웨어 프로그램을 생성하기 위해 사용될 수 있다. 이러한 언어의 예들은 C, C++, 파스칼, 자바, 베이직, 비주얼 베이직, 비주얼 C++이 포함된다. 소프트웨어 프로그램은 소스 코드(source code), 객체 코드(object code), 인터프리티브 코드(interpretive code), 실행 코드(excutable code)로서 하나 또는 그 이상의 제조물에 저장될 것이다.
본 발명은 구체적인 바람직한 실시예를 참조하여 도시되고 설명되었지만, 이하 청구항에 의해 정의된 발명의 정신 및 범주로부터 벗어남 없이 형태 및 상세한 면에서 다양하게 변경할 수 있다는 것을 본 기술분야에서 당업자들은 이해할 수 있을 것이다.

Claims (20)

  1. 어플리케이션 프로그램이 실행되는 서버노드에 유저-제공 입력을 전송하는 클라이언트 노드를 포함하는 클라이언트-서버 시스템(client-server system) -상기 시스템에서 상기 유저-제공 입력은 디스플레이를 위해 상기 클라이언트 노드로 전송되는 상기 서버노드로부터의 응답을 유도함- 에서, 상기 유저-제공 입력에 대한 감지 응답 시간(perceived response time)을 줄이기 위한 방법에 있어서,
    (a) 상기 클라이언트 노드에서, 상기 서버 노드상에서 실행되는 상기 어플리케이션 프로그램에 대한 입력을 위한 입력 디바이스로부터 유저 입력을 수신하는 단계와,
    (b) 상기 유저 입력을 통신선(communication link)을 통해 상기 서버 노드상에서 실행되는 상기 어플리케이션 프로그램에 전송하는 단계와,
    (c) 상기 클라이언트 노드에서, 상기 유저 입력에 대한 상기 서버의 응답의 예측(prediction) 응답을 발생시키는 단계와,
    (d) 상기 클라이언트 노드에서, 디스플레이 스크린상에 상기 예측 응답을 디스플레이하는 단계와,
    (e) 상기 서버노드로부터 상기 유저 입력에 대한 서버 응답을 수신하는 단계와,
    (f) 상기 디스플레이 스크린 상에 디스플레이된 상기 예측 응답을 상기 서버노드로부터 수신된 상기 서버 응답으로 대체하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 단계 (f)는 상기 디스플레이 스크린상의 상기 예측 응답을 상기 서버 응답으로 덮어쓰는(overwriting) 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 유저 입력은 제1 유저 입력이며,
    (g) 상기 서버노드에 전송될 추가 유저 입력을 수신하는 단계와,
    (h) 상기 추가 유저 입력에 대한 제2 예측 응답을 발생시키는 단계와,
    (i) 상기 클라이언트 노드에서, 상기 제1 유저 입력에 대한 상기 서버 응답을 수신하기 이전에 상기 제2 예측 응답을 디스플레이하는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 단계 (b)는 상기 서버노드로부터 현재 입력 위치 정보를 수신하는 단계를 더 포함하며, 상기 단계 (c)는 상기 현재 입력 위치 정보에 응답하여 상기 예측 응답을 결정하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 단계 (b)는 상기 예측 응답의 비쥬얼(visual) 특성을 정의 하기 위해 폰트 정보를 제공하는 단계를 더 포함하며, 단계 (c)는 상기 폰트 정보에 응답하여 상기 예측 응답을 결정하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 단계 (b)는 상기 예측 응답의 비쥬얼(visual) 특성을 정의 하기 위해 폰트 정보를 제공하는 단계를 더 포함하며, 단계 (c)는 상기 폰트 정보에 응답하여 상기 예측 응답을 결정하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 단계 (b)는 상기 서버노드로부터 상기 폰트 정보를 얻는 단계를 더 포함하는 방법.
  8. 제6항에 있어서,
    상기 폰트 정보를 제공하는 단계는
    디폴트 폰트 정보를 얻는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    상기 단계 (b)는 상기 클라이언트 노드에 의해 조정되는 현재의 스크린 객체에 대한 정보를 수신하는 단계와, 상기 예측 응답을 발생시키기 위해 상기 유저 입력 및 상기 스크린 객체 정보에 대응하는 발견적 프로시져 응답(heuristic procedure response)을 실행하는 단계를 더 포함하는 방법.
  10. 어플리케이션 프로그램이 실행되는 서버노드에 유저-제공 입력을 전송하는 클라이언트 노드를 포함하는 클라이언트-서버 시스템 -상기 시스템에서 상기 유저-제공 입력은 디스플레이를 위해 상기 클라이언트 노드로 전송되는 상기 서버노드로부터의 응답을 유도함- 에서, 상기 유저-제공 입력 방법에 대한 감지 응답 시간(perceived response time)을 줄이기 위한 방법에 있어서,
    (a) 상기 클라이언트 노드에서, 상기 서버 노드상에서 실행되는 상기 어플리케이션 프로그램에 대한 후속 전송(subsequent transmission)을 위한 입력 디바이스로부터 유저 입력을 수신하는 단계와,
    (b) 상기 클라이언트 노드에서, 상기 유저 입력에 응답하여 상기 유저 입력에 대한 상기 서버의 응답의 예측 응답을 발생시키는 단계와,
    (c) 상기 클라이언트 노드에서, 상기 클라이언트 노드에 의해 발생된 상기 예상 응답을 디스플레이하는 단계와,
    (d) 디스플레이된 상기 예측 응답을 상기 서버노드로부터 수신된 상기 서버 응답으로 대체하는 단계
    를 포함하는 방법.
  11. 클라이언트 노드에 의해 공급되는 유저 입력에 따라 어플리케이션 프로그램을 실행시키는 서버노드를 포함하는 클라이언트-서버 시스템 -상기 시스템에서 유저 입력은 디스플레이를 위해 상기 클라이언트 노드에 후속하여 전송되는 응답을 유도함- 에서, 상기 클라이언트 노드는 상기 유저 입력에 대해 감소된 감지 응답 시간을 가지며,
    상기 클라이언트 노드는,
    상기 서버 노드상에서 실행되는 상기 어플리케이션 프로그램에 대한 전송을 위해 상기 클라이언트 노드에 유저 입력을 제공하기 위한 입력 디바이스와,
    상기 입력 디바이스와 통신하며, 상기 유저 입력에 대응하여 상기 유저 입력에 대한 상기 서버 노드의 응답의 예상 응답을 발생시키는 응답 발생기와,
    상기 응답 발생기와 통신하며, 상기 서버 노드에 의한 응답을 표시하기 이전에 상기 예측 응답을 디스플레이하기 위한 디스플레이 디바이스와,
    상기 서버 노드로부터 상기 유저 입력에 대한 서버 응답을 수신하기 위한 수신기와,
    디스플레이된 상기 예측 응답을 상기 서버 노드로부터 수신된 서버 응답으로 대체하기 위한 대체 모듈
    을 포함하는 클라이언트-서버 시스템.
  12. 어플리케이션 프로그램을 실행하는 서버 노드와,
    상기 서버 노드와 통신하는 클라이언트 노드 -상기 클라이언트 노드는 (a)상기 서버노드상에서 실행되는 상기 어플리케이션 프로그램으로 전송되는 유저 입력을 수신하기 위한 입력 디바이스와, (b) 상기 서버노드에 의한 상기 유저 입력에 대한 서버 응답을 예측하여 상기 유저 입력에 대한 클라이언트 응답을 발생시키기 위한 응답 발생기와, (c)상기 서버 응답을 디스플레이하기 전에 상기 유저 입력에 대한 비쥬얼 응답을 제공하기 위해 상기 클라이언트 응답을 디스플레이하기 위한 디스플레이 디바이스와, (d) 상기 서버 노드로부터 상기 유저 입력에 대한 서버 응답을 수신하는 수신기와, (e) 디스플레이된 상기 클라이언트 응답을 상기 서버 노드로부터 수신된 서버 응답으로 대체하기 위한 대체 모듈을 포함함-
    를 포함하는 클라이언트-서버 시스템.
  13. 삭제
  14. 제12항에 있어서,
    상기 서버 노드로부터 수신된 상기 서버 응답은 현재 입력 위치 정보를 더 포함하는, 클라이언트-서버 시스템.
  15. 제14항에 있어서,
    상기 응답 발생기는 상기 현재 입력 위치 정보에 대응하여 상기 클라이언트 응답을 발생시키는, 클라이언트-서버 시스템.
  16. 제12항에 있어서,
    상기 서버 노드로부터 수신된 상기 서버 응답은 상기 클라이언트 응답의 비쥬얼 특성을 정의하기 위한 폰트 정보를 더 포함하는, 클라이언트-서버 시스템.
  17. 제16항에 있어서,
    상기 응답 발생기는 상기 폰트 정보에 대응하여 상기 클라이언트 응답을 발생시키는, 클라이언트-서버 시스템.
  18. 제12항에 있어서,
    상기 서버 응답은 상기 클라이언트 노드에 의해 조정되는 현재의 스크린 객체에 대한 정보를 더 포함하는, 클라이언트-서버 시스템.
  19. 제18항에 있어서,
    상기 응답 발생기는 상기 클라이언트 응답을 발생시키기 위해 상기 유저 입력 및 상기 스크린 객체 정보에 대응하는 발견적 프로시져 응답을 실행하는, 클라이언트-서버 시스템.
  20. 제12항에 있어서,
    상기 디스플레이 디바이스는 상기 유저 입력에 대한 상기 서버 응답을 수신하기 이전에 제2 클라이언트 응답을 디스플레이하는, 클라이언트-서버 시스템.
KR1020027000992A 1999-07-23 2000-07-20 클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법 KR100798963B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/360,876 1999-07-23
US09/360,876 US6538667B1 (en) 1999-07-23 1999-07-23 System and method for providing immediate visual response to user input at a client system connected to a computer system by a high-latency connection

Publications (2)

Publication Number Publication Date
KR20020038700A KR20020038700A (ko) 2002-05-23
KR100798963B1 true KR100798963B1 (ko) 2008-01-28

Family

ID=23419752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000992A KR100798963B1 (ko) 1999-07-23 2000-07-20 클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법

Country Status (11)

Country Link
US (1) US6538667B1 (ko)
EP (1) EP1197055B1 (ko)
JP (1) JP2003505781A (ko)
KR (1) KR100798963B1 (ko)
AU (1) AU775740B2 (ko)
CA (1) CA2380768C (ko)
DE (1) DE60033286T2 (ko)
ES (1) ES2281349T3 (ko)
HK (1) HK1045617B (ko)
IL (2) IL147754A0 (ko)
WO (1) WO2001008378A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014092293A1 (ko) * 2012-12-12 2014-06-19 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
KR101430929B1 (ko) 2012-12-12 2014-08-18 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
KR101432990B1 (ko) 2012-12-12 2014-08-22 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721786B1 (en) * 2000-01-06 2004-04-13 International Business Machines Corporation Method and apparatus for balancing bandwidth usage in a browser
AU778428B2 (en) * 2000-02-25 2004-12-02 Canon Kabushiki Kaisha Local sound and graphic feedback
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US6763501B1 (en) * 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
WO2002012997A1 (en) * 2000-08-08 2002-02-14 Fineground Networks Method and system for parameterized web documents
US7047281B1 (en) 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7310687B2 (en) * 2001-03-23 2007-12-18 Cisco Technology, Inc. Methods and systems for managing class-based condensation
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US20030105879A1 (en) * 2001-11-30 2003-06-05 Erlend Olson Wireless network architecture and method
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
DE10315111A1 (de) * 2003-04-02 2004-10-14 Klaus Rock Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal Server und einem Terminal-Server Client in einem geostationären Satellitennetzwerk
US20050234838A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for providing in place editing within static documents
US8250034B2 (en) * 2004-04-14 2012-08-21 Verisign, Inc. Method and apparatus to provide visual editing
US20050257196A1 (en) * 2004-05-17 2005-11-17 Gideon Hollander System and method for developing new services from legacy computer applications
DE102004043868B4 (de) * 2004-09-10 2007-01-11 Kai Lauterjung Datenkommunikationssystem, sowie Datenkommunikationsverfahren
DE102004048343B4 (de) * 2004-10-01 2022-09-22 Satcloud Ip Holding Llc Verfahren zur Reduzierung der Latenzzeit bei der interaktiven Datenkommunikation zwischen einem Terminal Server und einem Terminal-Server Client in einem Telekommunikationsnetzwerk, insbesondere einem GSM oder einem UMTS Netzwerk
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
CA2490645A1 (en) * 2004-12-16 2006-06-16 Ibm Canada Limited - Ibm Canada Limitee Data-centric distributed computing
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
WO2007120771A2 (en) * 2006-04-14 2007-10-25 Advanced Solutions, Inc. Method, system, and computer-readable medium to provide version management of documents in a file management system
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8214367B2 (en) * 2007-02-27 2012-07-03 The Trustees Of Columbia University In The City Of New York Systems, methods, means, and media for recording, searching, and outputting display information
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
CA2607537A1 (en) * 2007-10-22 2009-04-22 Ibm Canada Limited - Ibm Canada Limitee Software engineering system and method for self-adaptive dynamic software components
JP5012716B2 (ja) * 2008-07-29 2012-08-29 富士通株式会社 リモートファイル操作方法
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
JP2010091724A (ja) * 2008-10-07 2010-04-22 Canon Inc 画像処理システム
US8195692B2 (en) 2008-12-11 2012-06-05 International Business Machines Corporation System and method for managing semantic and syntactic metadata
CN102301359B (zh) * 2009-01-29 2015-07-01 惠普开发有限公司 通过计算机之间的网络提供用户接口装置处的变化的指示
WO2011018827A1 (ja) 2009-08-13 2011-02-17 株式会社日立製作所 実行環境におけるアプリケーションの適性を評価するシステム及び方法
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US8555187B2 (en) * 2010-02-16 2013-10-08 Google Inc. Server-based data sharing in computer applications using a clipboard
WO2012048007A2 (en) * 2010-10-05 2012-04-12 Citrix Systems, Inc. Touch support for remoted applications
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US9274746B2 (en) * 2011-02-18 2016-03-01 Nuance Communications, Inc. Latency hiding techniques for multi-modal user interfaces
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9307009B2 (en) * 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US9794735B2 (en) 2012-02-15 2017-10-17 Dropbox Inc. Context determination for mobile devices when accessing remote resources
KR20130101864A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 클라이언트 장치, 클라이언트의 제어 방법, 서버 및 서버의 영상 제공 방법
CN104903832B (zh) * 2012-10-05 2020-09-25 触觉实验室股份有限公司 用于低等待时间用户输入处理和反馈的混合型系统和方法
JP6205749B2 (ja) * 2013-02-26 2017-10-04 日本電気株式会社 サーバ装置、仮想デスクトップシステム、入力情報処理方法、およびそのプログラム
US9122366B2 (en) * 2013-03-15 2015-09-01 Navico Holding As Residue indicators
US20150089203A1 (en) * 2013-09-23 2015-03-26 Mitch Kline Latency reduction in distributed computing environments
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US10437938B2 (en) 2015-02-25 2019-10-08 Onshape Inc. Multi-user cloud parametric feature-based 3D CAD system
US11750674B2 (en) 2015-05-05 2023-09-05 Penguin Computing, Inc. Ultra-low latency remote application access
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US11263028B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements in virtual machine sessions at reduced latency
US11281478B2 (en) 2019-03-27 2022-03-22 Citrix Systems, Inc. Providing user interface (UI) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
US11263029B2 (en) 2019-03-27 2022-03-01 Citrix Systems, Inc. Providing user interface (UI) elements having scrollable content in virtual machine sessions at reduced latency and related methods

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0836145A2 (en) 1996-10-11 1998-04-15 AT&T Corp. Method for transferring and displaying data pages on a data network

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE32632E (en) 1982-07-19 1988-03-29 Apple Computer, Inc. Display system
JPS62282328A (ja) 1986-02-21 1987-12-08 Hitachi Ltd 多重画面制御方式
US4937036A (en) 1986-04-28 1990-06-26 Xerox Corporation Concurrent display of data from two different display processors and user interface therefore
US5072412A (en) 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4949281A (en) 1987-04-23 1990-08-14 H. Berthold Ag Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves
US4903218A (en) 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US5103303A (en) 1988-04-19 1992-04-07 Konica Corporation Multicolor imaging forming apparatus
US4958303A (en) 1988-05-12 1990-09-18 Digital Equipment Corporation Apparatus for exchanging pixel data among pixel processors
KR930003126B1 (ko) 1989-04-20 1993-04-19 가부시기가이샤 도시바 곡선정합에 있어서 형상을 표시하는 직선쇼트벡터의 접속상태를 판정하는 방법 및 시스템
US5119319A (en) 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
US5309555A (en) 1990-05-15 1994-05-03 International Business Machines Corporation Realtime communication of hand drawn images in a multiprogramming window environment
EP0773685B1 (en) 1990-12-26 2002-06-05 Canon Kabushiki Kaisha Multi-media communication apparatus
CA2069355C (en) 1991-06-07 1998-10-06 Robert C. Pike Global user interface
US5351129A (en) 1992-03-24 1994-09-27 Rgb Technology D/B/A Rgb Spectrum Video multiplexor-encoder and decoder-converter
JP3390033B2 (ja) 1992-10-14 2003-03-24 株式会社日立製作所 パケット通信方式
US5469540A (en) 1993-01-27 1995-11-21 Apple Computer, Inc. Method and apparatus for generating and displaying multiple simultaneously-active windows
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5874960A (en) 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US5805815A (en) * 1995-12-18 1998-09-08 At&T Corp. Method and apparatus for providing interim data displays while awaiting of retrieval linked information
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5757925A (en) 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US6108493A (en) * 1996-10-08 2000-08-22 Regents Of The University Of Minnesota System, method, and article of manufacture for utilizing implicit ratings in collaborative filters
US6078740A (en) * 1996-11-04 2000-06-20 Digital Equipment Corporation Item selection by prediction and refinement
RU2210871C2 (ru) * 1997-08-06 2003-08-20 Тэчйон, Инк. Распределенная система и способ предварительной выборки объектов
US5982351A (en) * 1997-09-30 1999-11-09 Motorola, Inc. Method and apparatus for supplementing a keyboard and for helping a user operate an electronic device
JP3272281B2 (ja) * 1997-10-20 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
US6243761B1 (en) * 1998-03-26 2001-06-05 Digital Equipment Corporation Method for dynamically adjusting multimedia content of a web page by a server in accordance to network path characteristics between client and server
US6182125B1 (en) * 1998-10-13 2001-01-30 3Com Corporation Methods for determining sendable information content based on a determined network latency
US6178461B1 (en) * 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6304909B1 (en) * 1998-12-18 2001-10-16 International Business Machines Corporation Client-controlled link processing in computer network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0836145A2 (en) 1996-10-11 1998-04-15 AT&T Corp. Method for transferring and displaying data pages on a data network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014092293A1 (ko) * 2012-12-12 2014-06-19 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
KR101430929B1 (ko) 2012-12-12 2014-08-18 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
KR101432990B1 (ko) 2012-12-12 2014-08-22 에스케이플래닛 주식회사 사용자의 입력에 즉각적인 결과를 제공할 수 있는 서비스 제공 방법, 이를 위한 시스템 및 장치
EP2933730A4 (en) * 2012-12-12 2016-07-20 Sk Planet Co Ltd PROCESS FOR PROVIDING IMMEDIATE RESULTS FOR USER ENTRIES AND SYSTEM AND DEVICE THEREFOR
US10747755B2 (en) 2012-12-12 2020-08-18 Sk Planet Co., Ltd. Method for providing immediate result for user input, and apparatus therefor

Also Published As

Publication number Publication date
IL147754A0 (en) 2002-08-14
WO2001008378A1 (en) 2001-02-01
KR20020038700A (ko) 2002-05-23
AU6114200A (en) 2001-02-13
HK1045617B (zh) 2007-12-14
HK1045617A1 (en) 2002-11-29
DE60033286D1 (de) 2007-03-22
IL147754A (en) 2007-05-15
WO2001008378A9 (en) 2002-08-29
AU775740B2 (en) 2004-08-12
EP1197055A1 (en) 2002-04-17
DE60033286T2 (de) 2007-11-08
ES2281349T3 (es) 2007-10-01
EP1197055B1 (en) 2007-02-07
US6538667B1 (en) 2003-03-25
JP2003505781A (ja) 2003-02-12
CA2380768A1 (en) 2001-02-01
CA2380768C (en) 2006-12-19

Similar Documents

Publication Publication Date Title
KR100798963B1 (ko) 클라이언트 시스템에서 유저 입력에 대한 가시 응답을 즉시 제공하기 위한 시스템 및 방법
US5983001A (en) Method and system for facilitating the automatic creation of test scripts
US5831609A (en) Method and system for dynamic translation between different graphical user interface systems
EP1214667B1 (en) Methods and apparatus for efficiently transmitting interactive application data between a client and server using markup language
US6590595B1 (en) Mechanism for providing intuitive scrolling feedback
US7657837B2 (en) Seamless windows functionality to remote desktop sessions regarding z-order
US6122661A (en) Method of accessing information on a host computer from a client computer
EP0437441B1 (en) Workstation and method of operating it
US6266058B1 (en) Apparatus and method for linking browser bars with active documents for a browser
US6286003B1 (en) Remote controlling method a network server remote controlled by a terminal and a memory storage medium for HTML files
US20090077174A1 (en) Server-based computing environment
US20020165993A1 (en) System and method of partitioning software components of a monolithic component-based application program to separate graphical user interface elements for local execution at a client system in conjunction with remote execution of the application program at a server system
US20020000990A1 (en) Method and apparatus for providing remote access, control of remote systems and updating of display information
JPH081624B2 (ja) プログラム・アプリケーションを表示するためのシステムおよび方法
KR20040089600A (ko) 웹페이지에 디스플레이된 소프트웨어 어플리케이션과의상호작용
WO2001075836A2 (en) Remote control system
CN109710343B (zh) 计算机桌面的窗口切换方法、装置、设备以及存储介质
US20040194023A1 (en) User selective reload of images
WO2000002148A9 (en) System and method for rendering and displaying a compound document
US20070118798A1 (en) Web service UI information guide
KR100422679B1 (ko) 혼합 컨텐츠 서버-클라이언트 시스템
JP2000112888A (ja) ブラウザ操作管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US6414695B1 (en) System for adding function to an object oriented program through a computer controlled interactive display interface with alternate access to data in the object oriented program normally inaccessible through the interface
KR100555392B1 (ko) 클라이언트/서버간 응용프로그램 실행의 터미널 제어시스템 및 그 방법
US20060168106A1 (en) Method for reducing latency periods during interactive data communication between a terminal server and a terminal server client in a geostationay satellite network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130107

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150106

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180109

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190109

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 13