KR20070012544A - 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치 - Google Patents

한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치 Download PDF

Info

Publication number
KR20070012544A
KR20070012544A KR1020067025934A KR20067025934A KR20070012544A KR 20070012544 A KR20070012544 A KR 20070012544A KR 1020067025934 A KR1020067025934 A KR 1020067025934A KR 20067025934 A KR20067025934 A KR 20067025934A KR 20070012544 A KR20070012544 A KR 20070012544A
Authority
KR
South Korea
Prior art keywords
application
server
protocol
screen
data
Prior art date
Application number
KR1020067025934A
Other languages
English (en)
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 KR20070012544A publication Critical patent/KR20070012544A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1616Error detection by comparing the output signals of redundant hardware where the redundant component is an I/O device or an adapter therefor
    • G06F11/162Displays
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 시스템은 애플리케이션 프로그램을 실행하는 애플리케이션 서버를 포함한다. 프록시 서버는 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 애플리케이션 서버로부터 수신한다. 사용자 디바이스는 클라이언트 애플리케이션을 실행한다. 클라이언트 애플리케이션은 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 정적 이미지 데이터를 상기 프록시 서버로부터 수신한다.
애플리케이션 서버, 프로그램, 사용자 디바이스, 정적 이미지 데이터

Description

한정된 시스템 자원을 가진 디바이스상에서 애플리케이션 출력을 디스플레이하는 방법 및 장치{METHODS AND APPARATUS FOR DISPLAYING APPLICATION OUTPUT ON DEVICES HAVING CONSTRAINED SYSTEM RESOURCES}
본 발명은 일반적으로 서버 디바이스들 상에서 실행되는 애플리케이션 프로그램들의 출력을 클라이언트 디바이스들에서 디스플레이하는 것에 관한 것으로, 특히 한정된 시스템 자원들을 가진 디바이스들에서 애플리케이션 프로그램들의 출력을 디스플레이하는 기술 및 장치에 관한 것이다.
네트워킹된 자원들에 대한 원격 액세스를 제공하는 기술들은 다양한 클라이언트/서버 소프트웨어 조합들을 포함한다. 이들 조합 중 하나의 조합을 종종 "씬(thin)-클라이언트" 또는 "분산 애플리케이션 프로세싱" 시스템이라고 한다. 이들 시스템에서, 애플리케이션 프로그램은, 보통 "씬-클라이언트" 또는 "씬-클라이언트 애플리케이션"이라고 하는 하나 이상의 클라이언트 컴퓨팅 디바이스들을 대신하여 보통 "애플리케이션 서버"라고 하는 서버 컴퓨팅 디바이스에 의해 실행된다. 씬-클라이언트에서 사용자로부터 수신되는 애플리케이션에 대한 입력 및 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 출력만이 상기 씬-클라이언트와 상기 애플리케이션 서버 사이에서 전송된다. 씬-클라이언트 컴퓨팅 구조들 은 애플리케이션들 및 다른 시스템 자원들에의 원격 접속을 제공하기 위한 일반적인 구현들이다. 이와 같은 시스템들의 예로는, 미국 플로리다 포트 로더데일 소재의 시트릭스 시스템즈 인코포레이티드(Citrix Systems, Inc.)의 ICA(Intelligent Computing Architecture) 클라이언트들과 조합된 시트릭스 메타프레임 프리젠테이션 서버(Citrix MetaFrame Presentation Server) 소프트웨어; X 컨소시엄의 X 윈도우즈 클라이언트들과 조합된 X 서버들; 및 미국 워싱턴 레드몬드 소재의 마이크로소프트 코포레이션의 RDP(Remote Display Protocol) 클라이언트들과 조합된 마이크로소프트 윈도우즈 NT 서버 4.0 단말 서버 판(Microsoft Windows NT Server 4.0 Terminal Server Edition)을 들 수 있다.
씬-클라이언트 컴퓨팅 구조에서 클라이언트는 애플리케이션 프로그램을 실행하지 않고 사용자 입력만을 애플리케이션 서버에 전송하며 애플리케이션 서버상에서 실행되는 애플리케이션의 출력만을 디스플레이하기 때문에, 클라이언트 디바이스는 사용자가 알아차릴 수 있는 성능의 저하 없이 한정된 양의 메모리, 보다 느린 통신 서브시스템들, 및 한정된 시스템 자원들을 공급해도 된다. 개인 컴퓨터, 워크스테이션, 또는 다른 유사한 컴퓨팅 디바이스는 일반적으로 씬-클라이언트 애플리케이션을 실행하고 애플리케이션 서버와 통신하기에 충분한 시스템 자원들을 제공한다.
그러나, 원격 접속을 필요로 하는 보다 많은 사용자들이 컴퓨팅 디바이스들을, 휴대 전화기 및 PDA(personal digital assistant)와 같은 씬-클라이언트로서의 기능을 하기에 충분한 메모리, 네트워크 자원들, 또는 적절한 운영 체제 환경들을 제공하지 않는 씬-클라이언트로서 사용한다. 예컨대, 현재의 다수의 휴대 전화기들은, 일반적으로 씬-클라이언트 애플리케이션을 실행하기에는 충분하지 않은 1 메가바이트 이하의 랜덤 액세스 메모리를 제공한다. 또한, 때로는, 임베디드 시스템이 애플리케이션 출력을 위해 애플리케이션 서버를 액세스하는 것이 유용하다. 일반적으로, 이들 시스템도 메모리와 같은 자원들이 한정되어 있다.
제한된 메모리와 같은 한정된 시스템 자원들을 가진 클라이언트 디바이스들이 애플리케이션 서버들 상에서 실행되는 애플리케이션 프로그램들과 상호 작용할 수 있도록 하는 시스템을 갖는 것이 유용하다.
본 발명은 휴대 전화기들, PDA들(personal digital assistants), 및 임베디드 시스템들과 같은 저급(low-end) 클라이언트 디바이스들이 애플리케이션 서버들 상에서 실행되는 애플리케이션 프로그램들과 상호 작용할 수 있도록 하여, 애플리케이션들이 여러 위치들에서 원격 액세스될 수 있도록 한다.
일 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 시스템에 관한 것이다. 상기 시스템은 애플리케이션 프로그램을 실행하는 애플리케이션 서버를 포함한다. 프록시 서버가 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 상기 애플리케이션 서버로부터 수신한다. 사용자 디바이스는 프록시 서버로부터 정적 이미지 데이터를 수신하는 클라이언트 애플리케이션을 실행한다. 수신된 정적 이미지 데이터는 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타낸다.
다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 방법에 관한 것이다. 애플리케이션 서버는 그래픽 사용자 인터페이스 데이터의 스크린을 생성하는 애플리케이션을 실행하고, 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린을 프록시 서버에 전송한다. 상기 프록시 서버는 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 사용자 디바이스에 전송한다. 상기 사용자 디바이스는 상기 전송된 정적 이미지 데이터를 디스플레이한다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 장치에 관한 것이다. 상기 장치는 상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 제1 프로토콜 포맷의 데이터를 애플리케이션 서버로부터 수신하는 제1 프로토콜 핸들러를 포함한다. 상기 장치는 또한, 상기 제1 프로토콜 핸들러에 의해 수신되는 상기 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 제2 프로토콜 포맷의 정적 이미지 데이터를 디스플레이용 클라이언트 애플리케이션에 전송하는 제2 프로토콜 핸들러를 포함한다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력을 사용자 디바이스에서 디스플레이하는 방법에 관한 것이다. 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 정적 이미지 데이터가 제1 프로토콜을 통해 애플리케이션 서버로부터 수신된다. 상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 상기 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터가 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송된다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 시스템에 관한 것이다. 상기 시스템은 애플리케이션 프로그램을 실행하는 애플리케이션 서버를 포함한다. 상기 시스템은 또한, 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 프리젠테이션-레벨 프로토콜을 통해 상기 애플리케이션 서버로부터 수신하는 프록시 서버를 포함한다. 상기 시스템은 클라이언트 애플리케이션을 실행하는 사용자 디바이스를 더 포함하고, 상기 클라이언트 애플리케이션은 상기 애플리케이션 프로그램에 의해 생성되는 상기 그래픽 디스플레이 출력의 스크린을 나타내는 정적 이미지 데이터를 HTTP(HyperText Transfer Protocol) 명령들을 통해 상기 프록시 서버로부터 수신한다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 방법에 관한 것이다. 애플리케이션 서버가 그래픽 사용자 인터페이스 데이터의 스크린을 생성하는 애플리케이션을 실행한다. 상기 애플리케이션 서버는 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린을 프리젠테이션-레벨 프로토콜을 통해 프록시 서버에 전송한다. 상기 프록시 서버는 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 HTTP(HyperText Transfer Protocol) 명령들을 통해 사용자 디바이스에 전송한다. 상기 사용자 디바이스는 상기 전송된 정적 이미지 데이터를 디스플레이한다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하기 위한 컴퓨터 판독가능 프로그램 수단을 구현한 제조 아티클(article of manufacture)에 관한 것이다. 상기 제조 아티클은 상기 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 사용자 인터페이스 데이터의 스크린을 프록시 서버에 전송하는 컴퓨터-판독 가능 프로그램 수단; 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 상기 프록시 서버에 의해 사용자 디바이스에 전달하는 컴퓨터-판독 가능 프로그램 수단; 및 상기 전송된 정적 이미지 데이터를 상기 사용자 디바이스에 의해 디스플레이하는 컴퓨터-판독 가능 프로그램 수단을 포함한다.
또 다른 양태에서, 본 발명은 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력을 사용자 디바이스에서 디스플레이하기 위한 컴퓨터 판독가능 프로그램 수단을 구현한 제조 아티클에 관한 것이다. 상기 제조 아이클은 상기 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 제1 프로토콜을 통해 애플리케이션 서버로부터 수신하는 컴퓨터-판독 가능 프로그램 수단; 및 상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린의 적어도 일부분을 나타내는 정적 이미지 데이터를 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송하는 컴퓨터-판독 가능 프로그램 수단을 포함한다.
본 발명의 이들 양태 및 다른 양태는 본 발명을 예시하며 한정하지 않는 이하의 상세한 설명 및 첨부 도면으로부터 명백할 것이다.
도 1은 한정된 시스템 자원들을 가진 디바이스들에 애플리케이션 출력을 제공하는 시스템의 일실시예의 블록도.
도 2A 및 도 2B는 본 발명과 함께 이용하는 컴퓨터들의 실시예들을 나타낸 블록도.
도 3은 한정된 시스템 자원들을 가진 디바이스들에 애플리케이션 출력을 제공하는 시스템의 동작의 일실시예를 나타낸 흐름도.
도 4는 한정된 시스템 자원들을 가진 디바이스들에 애플리케이션 출력을 전달하는데 사용되는 프로토콜의 일실시예의 도시적 표현을 나타낸 도면.
이제, 도 1을 참조하면, 한정된 시스템 자원들을 가진 클라이언트 디바이스에 애플리케이션 출력을 제공하는 시스템(100)은 애플리케이션 서버(110), 프록시 서버(150), 및 클라이언트(140)를 포함한다. 하나의 애플리케이션 서버(110), 프록시 서버(150), 및 클라이언트(140)만이 도 1에 도시된 실시예에 나타내었지만, 상기 시스템은 이들 구성 요소들을 다수 개 제공할 수도 있다. 예컨대, 일실시예에서, 시스템(100)은 클라이언트(140) 대신에 애플리케이션들을 실행하는데 이용할 수 있는 다수의 논리적으로 그룹화된 애플리케이션 서버들(110)을 포함한다. 이 실시예들에서, 서버들의 논리적 그룹을 "서버 팜(server farm)"이라고도 한다. 다른 실시예들에서, 다수의 프록시 서버(150)가 제공될 수 있다. 이들 실시예들 중 몇몇 실시예에서는, 프록시 서버들이 지리적으로 분산될 수도 있다.
애플리케이션 서버(110)는 클라이언트(140) 대신에 하나 이상의 애플리케이션 프로그램들(122, 124, 126, 128)을 실행한다. 애플리케이션 프로그램은 출력을 제공하기 위해 데이터를 처리하고 시스템 자원들의 액세스를 위한 운영 체제를 이용하는 프로그램일 수 있다. 예시적인 애플리케이션 프로그램들은, 미국 워싱턴 레드몬드 소재의 마이크로소프트 코포레이션에서 제조한 마이크로소프트 워드(MICROSOFT WORD)와 같은 워드 프로세싱 애플리케이션들; 마이크로소프트 코포레이션에서 제조한 마이크로소프트 엑셀(MICROSOFT EXCEL)과 같은 스프레드시트 프로그램; 마이크로소프트 코포레이션에서 제조한 마이크로소프트 아웃룩(MICROSOFT OUTLOOK) 및 미국 유타 프로보 소재의 노벨 코포레이션(Novell Corp.)에서 제조한 그룹와이즈(GROUPWISE)와 같은 전자 메일 프로그램; 및 미국 캘리포니아 마운틴 뷰 소재의 선 마이크로시스템즈에서 제조한 스타 오피스(STAR OFFICE)와 같은 생산성 스위트(productivity suites)를 포함한다.
애플리케이션 서버(110)는 제1 네트워크(125)를 통해 프록시 서버(150)와 통신한다. 제1 네트워크(125)는 LAN(loca area network), MAN(metropolitan area network), 또는 인터넷과 같은 WAN(wide area network)일 수 있다. 애플리케이션 서버(110)와 프록시 서버(150)는 표준 전화 회선, LAN 또는 WAN 링크(예컨대, T1, T3, 56 kb, X.25), 광대역 접속(ISDN, 프레임 릴레이(Frame Relay), ATM), 및 무선 접속을 포함한 다양한 접속을 통해 제1 네트워크(125)에 접속할 수 있다. 애플리케이션 서버(110)와 프록시 서버(150) 간의 접속은 다양한 데이터-링크 계층 통신 프로토콜(예컨대, TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SMB, 이더넷(Ethernet), ARCNET, FDDI(Fiber Distributed Data Interface), RS232, IEEE 802.11, IEEE802.11a, IEE 802.11b, IEEE 802.11g 및 집적 비동기 접속)을 이용할 수 있다.
프록시 서버(150)는 마이크로소프트 코포레이션에서 제조한 원격 디스플레이 프로토콜(Remote Display Protocol) 클라이언트 또는 미국 플로리다 포트 로더데일 소재의 시트릭스 시스템즈 인코포레이티드(Citrix Systems, Inc.)에서 제조한 ICA 클라이언트와 같은 하나 이상의 씬-클라이언트 애플리케이션(152, 154)을 실행한다. 애플리케이션 서버(110)는 애플리케이션 프로그램들(122, 124, 126, 128)의 출력을 프록시 서버(150)상에서 실행되는 씬-클라이언트 애플리케이션(152, 154)에 전달하고, 씬-클라이언트 애플리케이션(152, 154)으로부터 애플리케이션 프로그램들(122, 124, 126, 128)로 향한 사용자 입력을 수신한다. 애플리케이션 서버(110)는 미국 플로리다 포트 로더데일 소재의 시트릭스 시스템즈 인코포레이티드의 ICA(Independent Computing Architecture) 프로토콜 또는 마이크로소프트 코포레이션의 RDP(Remote Display Protocol)과 같은 프리젠테이션-계층 프로토콜을 이용하여 네트워크(125)를 통해 씬-클라이언트 애플리케이션(152, 154)과 통신한다. 두 개의 씬-클라이언트 애플리케이션들만이 도 1에 도시된 실시예에 나타내었지만, 프록시 서버(150)는 임의의 개수의 씬-클라이언트 애플리케이션(152, 154)을 호스팅할 수 있다.
프록시 서버(150)는 또한 프록시 서버 애플리케이션(158)을 실행한다. 프록시 서버 애플리케이션(158)은 애플리케이션 프로그램, 서브시스템 또는 서비스일 수 있다. 프록시 서버 애플리케이션(158)은 상기 프록시 서버(150)에 의해 호스팅되는 씬-클라이언트 애플리케이션(152, 154)을 관리한다. 프록시 서버 애플리케이션은 또한 상기 씬-클라이언트 애플리케이션(152, 154)에 의해 수신되는 애플리케이션 출력을 클라이언트 디바이스(140)에 전송하고 클라이언트 디바이스(140)로부터 수신되는 사용자 입력을 프록시 서버(150)상에서 실행되는 적합한 씬-클라이언트 애플리케이션(152, 154)에 전송한다.
상기 프록시 서버(150)상에서 실행되는 프록시 서버 애플리케이션(158)은 제2 네트워크(175)를 통해 클라이언트(140)와 통신한다. 클라이언트(140)가 임베디드 시스템인 실시예들의 경우, 클라이언트(140)와 프록시 서버(150)는 표준 전화 회선, LAN 또는 WAN 링크(예컨대, T1, T3, 56 kb, X.25), 광대역 접속(ISDN, 프레임 릴레이(Frame Relay), ATM), 및 무선 접속을 포함해서 다양한 접속을 통해 제2 네트워크(175)에 접속될 수 있다. 클라이언트(140)와 프록시 서버(150) 간의 접속은 다양한 데이터-링크 계층 통신 프로토콜(예컨대, TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SMB, 이더넷(Ethernet), ARCNET, FDDI(Fiber Distributed Data Interface), RS232, IEEE 802.11, IEEE802.11a, IEE802.11b, IEEE 802.11g, 및 집 적 비동기 접속)을 이용할 수 있다.
다른 실시예들에서, 클라이언트 디바이스(140)는 셀룰러 전화기 또는 PDA(personal digital assistant)와 같은 모바일 디바이스이다. 이들 실시예에서, 클라이언트(140)와 프록시 서버 애플리케이션(158)은 W-CDMA와 같은 GSM 또는 CDMA 패밀리로부터의 다수의 잘 알려진 프로토콜 중 하나를 이용하여 제2 네트워크에 접속한다. 이들 프로토콜은 상용 무선 통신 서비스를 지원하며, 특히 W-CDMA는 엔티티 도코모(NTT DoCoMo)에서 공급하는 i-Mode 및 mMode 서비스들을 지원하는 하층 프로토콜이다.
클라이언트 디바이스(140)는 클라이언트 애플리케이션(146)을 실행한다. 클라이언트 애플리케이션은 http 또는 https 요청들을 프록시 서버 애플리케이션(158)에 전송하고 프록시 서버 애플리케이션(158)으로부터 수신한다. 클라이언트 애플리케이션(148)은 실행되는 애플리케이션 프로그램(122, 124, 126, 128)으로 향하는 사용자 입력을 제2 네트워크(175)를 통해 프록시 서버 애플리케이션(158)에 전송한다. 클라이언트 애플리케이션(148)은 또한 애플리케이션 서버(110)상에서 실행되는 애플리케이션 프로그램(122, 124, 126, 128)의 출력에 대응하는 클라이언트 디바이스의 스크린상에 그래픽 출력을 제공한다.
다수의 실시예들에서, 애플리케이션 서버(110)와 프록시 서버(150)는 미국 캘리포니아 팔로 알토 소재의 휴렛 팩커드 또는 텍사스 라운드 록 소재의 델 코포레이션에서 제조한 종류의 개인 컴퓨터 또는 컴퓨터 서버로서 제공된다. 클라이언트 디바이스(140)가 임베디드 시스템인 실시예들의 경우에는, 클라이언트 디바이 스(140)는 또한 개인 컴퓨터로서 제공될 수도 있다. 도 2A 및 도 2B는 이들 실시예에서의 애플리케이션 서버(110), 프록시 서버(150), 또는 상기 클라이언트 디바이스로서 유용한 일반적인 컴퓨터(200)의 블록도를 나타낸다. 도 2A 및 2B에 도시된 바와 같이, 각 컴퓨터(200)는 중앙 처리 장치(202) 및 메인 메모리 유닛(204)을 포함한다. 각 컴퓨터(200)는 또한 하나 이상의 입/출력 디바이스들(230a-230n)(전반적으로 참조 번호 230으로 나타냄), 및 중앙 처리 장치(202)와 통신하는 캐시 메모리(240)와 같은 다른 선택적 요소들을 포함할 수도 있다.
중앙 처리 장치(202)는 메인 메모리 유닛(204)으로부터 페치된 명령들에 응답하고 그 명령들을 처리하는 논리 회로이다. 다수의 실시예들에서, 중앙 처리 장치는 마이크로프로세서 유닛, 예컨대, 미국 캘리포니아 마운틴 뷰 소재의 인텔 코포레이션에서 제조한 8088, 80286, 80386, 80486, 펜티엄(Pentium), 펜티엄 프로(ntium Pro), 펜티엄 II(Pentium II), 셀러론(Celeron), 또는 제온(Xeon) 프로세서; 미국 일리노이 샤움버그 소재의 모토로라 코포레이션에서 제조한 68000, 68010, 68020, 68030, 68040, PowerPC 601, PowerPC604, PowerPC604e, MPC603e, MPC603ei, MPC603ev, MPC603r, MPC603p, MPC740, MPC745, MPC750, MPC755, MPC7400, MPC7410, MPC7441, MPC7445, MPC7447, MPC7450, MPC7451, MPC7455, MPC7457 프로세서; 미국 캘리포니아 산타클라라 소재의 트랜스메타 코포레이션(Transmeta Corporation)에서 제조한 크루소(Crusoe) TM5800, 크루소 TM5600, 크루소 TM5500, 크루소 TM5400, 이피시온(Efficeon) TM8600, 이피시온 TM8300, 또는 이피시온 TM8620 프로세서; 미국 뉴욕 화이트 플레인즈 소재의 인터내셔널 비즈니 스 머신즈(International Business Machines)에서 제조한 RS/6000 프로세서, RS64, RS 64 II, P2SC, POWER3, RS64 III, POWER3-II, RS 64 IV, POWER4, POWER4+, POWER5, 또는 POWER6 프로세서; 또는 미국 캘리포니아 서니베일 소재의 어드밴스드 마이크로 디바이스(Advanced Micro Devices)에서 제조한 AMD Opteron, AMD Athalon 64 FX, AMD Athalon, 또는 AMD Duron 프로세서에 의해 제공된다.
메인 메모리 유닛(204)은 데이터를 저장할 수 있고 기억 위치가 마이크로프로세서(202)에 의해 직접 액세스될 수 있는 하나 이상의 메모리 칩들, 예컨대 SRAM(Static random access memory), 버스트(Burst) SRAM 또는 BSRAM(SynchBurst SRAM), DRAM(Dynamic random access memory), FPM DRAM(Fast Page Mode DRAM), EDRAM(Enhanced DRAM), EDO RAM(Extended Data Output RAM), EDO DRAM(Extended Data Output DRAM), BEDO DRAM(Burst Extended Data Output DRAM), EDRAM(Enhanced DRAM), SDRAM(synchronous DRAM), JEDEC SRAM, PC100 SDRAM, DDR SDRAM(Double Data Rate SDRAM), ESDRAM(Enhanced SDRAM), SLDRAM(SyncLink DRAM), DRDRAM(Direct Rambus DRAM), 또는 FRAM(Ferroelectric RAM)일 수 있다.
도 2A에 도시된 실시예에서, 프로세서(202)는 시스템 버스(220)(상세히 후술됨)를 통해 메인 메모리(204)와 통신한다. 도 2B는 프로세서가 메모리 포트를 통해 메인 메모리(204)와 직접 통신하는 컴퓨터 시스템(200)의 일실시예를 나타낸다. 예컨대, 도 2B에서, 메인 메모리(204)는 DRDRAM일 수 있다.
도 2A 및 도 2B는 메인 프로세서(202)가 "후면(backside)" 버스라고도 하는 보조 버스를 통해 캐시 메모리(240)와 집적 통신하는 실시예들을 나타낸다. 다른 실시예들에서, 메인 프로세서(202)는 시스템 버스(220)를 사용하여 캐시 메모리(240)와 통신한다. 캐시 메모리(240)는 일반적으로 메인 메모리(204)보다 빠른 응답 시간을 가지며, 일반적으로 SRAM, BSRAM, 또는 EDRAM에 의해 제공된다.
도 2A에 도시된 실시예에서, 프로세서(202)는 로컬 시스템 버스(220)를 통해 각종 I/O 디바이스들(230)과 통신한다. 각종 버스들은 중앙 처리 장치(202)를, VESA VL 버스, ISA 버스, EISA 버스, MCA(MicroChannel Architecture) 버스, PCI 버스, PCI-X 버스, PCI-익스프레스(PCI-Express) 버스, 또는 NuBus를 포함한 I/O 디바이스들(230)에 연결하는데 사용될 수 있다. I/O 디바이스가 비디오 디스플레이인 실시예들의 경우, 프로세서(202)는 디스플레이와 통신하는데 AGP(Advanced Graphics Port)를 이용할 수 있다. 도 2B는 메인 프로세서(202)가 하이퍼트랜스포트(HyperTransport), 고속(Rapid) I/O, 또는 인피니밴드(InfiniBand)를 통해 I/O 디바이스(230b)와 직접 통신하는 컴퓨터 시스템(200)의 일실시예를 나타낸다. 도 2B는 또한 로컬 버스들과 직접 통신이 혼합된 실시예를 나타내며, 프로세서(202)는 I/O 디바이스(230b)와 직접 통신하면서 로컬 상호 접속 버스를 이용하여 I/O 디바이스(230a)와 통신한다.
다양한 I/O 디바이스들(230)이 컴퓨터 시스템(200) 내에 존재할 수 있다. 입력 디바이스들은 키보드, 마우스, 트랙패드, 트랙볼, 마이크로폰, 드로잉 태블렛을 포함한다. 출력 디바이스들은 비디오 디스플레이, 스피커, 잉크젯 프린터, 레이저 프린터 및 염료 승화방식(Dye-sublimation) 프린터를 포함한다. I/O 디바이스는, 하드 디스크 드라이브와 같은 컴퓨터 시스템(200)용의 대용량 기억 장치, 3.5 인치 디스크, 5.25 인치 디스크 또는 ZIP 디스크와 같은 플로피 디스크를 수납하는 플로피 디스크 드라이브, CD-ROM 드라이브, CD-R/RW 드라이브, DVD-ROM 드라이브, 각종 포맷의 테이프 드라이브, 미국 캘리포니아 로스 알라미토스 소재의 트윈테크 인더스트리 인코포레이티드(Twintech Industry, Inc.)에서 제조한 디바이스용 USB 플래시 드라이브 라인과 같은 USB 기억 디바이스를 제공할 수 있다.
다른 실시예들에서, I/O 디바이스(230)는 시스템 버스(220)와, USB 버스, 애플 데스크탑 버스, RS-232 직렬 접속, SCSI 버스, 파이어 와이어(FireWire) 버스, 파이어 와이어 800 버스, 이더넷 버스, 애플토크(AppleTalk) 버스, 기가비트 이더넷(Gigabit Ethernet) 버스, 비동기식 전송 모드(Asynchronous Transfer Mode) 버스, HIPPI 버스, 슈퍼(Super) HIPPI 버스, 시리얼플러스(SerialPlus) 버스, SCI/LAMP 버스, 파이버채널(FibreChannel) 버스, 또는 직렬 부착(Serial Attached) 소형 컴퓨터 시스템 인터페이스 버스와 같은 외부 통신 버스 간의 브릿지일 수 있다.
도 2A 및 도 2B에 도시된 종류의 범용 데스크탑 컴퓨터들은 일반적으로 작업 스케줄 및 시스템 자원 액세스를 제어하는 운영 체제들의 제어 하에서 동작한다. 일반적인 운영 체제들로는, 특히, 미국 워싱턴 레드몬드 소재의 마이크로소프트에서 제조한 마이크로소프트 윈도우즈(MICROSOFT WINDOWS); 미국 캘리포니아 쿠퍼티노 소재의 애플 컴퓨터에서 제조한 MacOS; 미국 뉴욕 아몽크 소재의 인터내셔널 비즈니스 머신즈(Internatioal Business Machines)에서 제조한 OS/2; 및 미국 유타 솔트 레이크 시티 소재의 칼데라 코포레이션(Caldera Corp.)에서 배급한 무료 운영 체제인 리눅스를 들 수 있다.
클라이언트 디바이스(140)가 모바일 디바이스인 실시예들의 경우, 클라이언트 디바이스는 미국 일리노이 샤움버그 소재의 모토로라 코포레이션에서 제조한 i50sx, i55sr, i58sr, i85s, i88s, i90c,i95c1, 또는 im11000과 같은 JAVA-구동형 셀룰러 전화기; 일본 교토 소재의 교세라에서 제조한 6035 또는 7135; 또는 대한민국 서울 소재의 삼성 전자에서 제조한 i300 또는 i330일 수 있다. 클라이언트 디바이스(140)가 모바일 다바이스인 다른 실시예들에서, 클라이언트 디바이스는 미국 캘리포니아 밀피타스 소재의 팜원 인코포레이티드(palmOne, Inc)에서 제조한 Tungsten W, VII, Vllx, i705와 같은 PalmOS 운영 체제의 제어 하에서 동작하는 PDA(personal digital assistant)일 수 있다. 다른 실시예들에서, 클라이언트 디바이스(140)는 미국 팔로 알토 소재의 휴렛 팩커드 코포레이션에서 제조한 iPAQ 4155, iPAQ 5555, iPAQ 1945, iPAQ 2215, 및 iPAQ 4255; 미국 캘리포니아 월넛 소재의 뷰소닉(ViewSonic)에서 제조한 ViewSonic V36, 또는 미국 뉴욕 뉴욕소재의 도시바 어메리카 인코포레이티드에서 제조한 Toshiba PocketPC e405과 같은 PocketPC 운영 체제의 제어 하에서 동작하는 PDA(personal digital assistant)일 수 있다. 또 다른 실시예들에서, 클라이언트 디바이스는 미국 캘리포니아 밀피타스 소재의 팜원 인코포레이티드에서 제조한 Treo 180, Treo 270 또는 Treo 600과 같은 조합형 PDA/전화기 디바이스이다. 또 다른 실시예에서, 클라이언트 디바이스(140)는 모토로라 코포레이션에서 제조한 MPx200과 같은 PocketPC 운영 체제의 제어 하에서 동작하는 셀룰러 전화기이다.
도 3은 도 1 내지 도 2B에 기재된 시스템의 동작을 나타낸다. 클라이언트 애플리케이션(146)은 애플리케이션 프로그램(122, 124, 126, 128)을 대신 실행하라는 요청을 프록시 서버 애플리케이션(158)에 전송한다(스텝 302). 몇몇 실시예들에서, 클라이언트 애플리케이션(146)에 의해 전송된 http 요청은 사용자가 실행하기를 원하는 애플리케이션의 이름을 포함한다. 다른 실시예들에서, 상기 요청은 사용자가 작업하기를 원하는 파일을 식별할 수 있다. 이들 실시예에서, 상기 요청은 파일 타입을 포함하고, 프록시 서버 애플리케이션(158)은 상기 파일을 처리할 수 있는 하나 이상의 애플리케이션 프로그램들을 식별한다. 예컨대, 프록시 서버 애플리케이션(158)은 파일 타입들을 이들 파일 타입과 연관된 특정 애플리케이션 프로그램들에 맵핑시키는 테이블로부터 사용할 애플리케이션 프로그램을 찾을 수 있다. 또 다른 실시예에서, 클라이언트 애플리케이션(146)에 의해 전송된 http 요청은 애플리케이션 프로그램(122, 124, 126, 128)을 실행해야 하는 특별한 데스크탑 또는 특별한 서버(100)를 구체적으로 식별할 수 있다.
프록시 서버 애플리케이션(158)은 씬 클라이언트 애플리케이션(152, 154)을 생성하고(스텝 322), 씬-클라이언트 애플리케이션(152, 154)에 상기 요청된 프로그램의 아이덴터티를 제공한다. 씬-클라이언트가 애플리케이션 출력을 기록하는 메모리의 블록을 씬-클라이언트 애플리케이션(152, 154)이 옆에 둔다는 점을 제외하고는, 씬-클라이언트 애플리케이션(152, 154)은 당해 기술 분야에서 잘 알려진 방식으로 동작한다(스텝 342). 바꾸어 말하면, 당해 기술 분야에서 통상적으로 행해지는 바와 같이, 씬-클라이언트 애플리케이션(152, 154)은 애플리케이션 출력을 비 주얼 디스플레이가 아닌 메모리 내에 유지되는 가상 스크린에 기록한다. 그러나, 몇몇 실시예들에서, 씬-클라이언트 애플리케이션(152, 154)은 가상 스크린과 일반 디스플레이 스크린 둘 다에 기록한다.
씬-클라이언트 애플리케이션(152, 154)은 애플리케이션 프로그램(122, 124, 126, 128)의 실행을 시작하라는 요청을 서버(110)에 전송한다(스텝 344). 몇몇 실시예들에서, 씬-클라이언트 애플리케이션(152, 154)은 상기 요청된 애플리케이션 프로그램(122, 124, 126, 128)을 호스팅하는 서버(110)의 주소로 씬-클라이언트 애플리케이션(152, 154)에 응답하는 서버 팜 내의 한 서버에 상기 요청을 전송한다. 다른 실시예들에서, 씬-클라이언트 애플리케이션(152, 154)은 상기 요청을 서비스 액세스 포인트에 전송하고, 상기 서비스 액세스 포인트는 적합한 애플리케이션 서버(110)에 접속하기 위해 필요한 정보를 클라이언트 애플리케이션(146)에 제공하는 클라이언트 디바이스(140)에 문서를 제공한다. 이들 실시예 모두에서, 씬-클라이언트 애플리케이션(152, 154)은 상기 식별된 서버(110)와의 접속을 개시한다.
다른 실시예들에서, 씬-클라이언트 애플리케이션(152, 154)은 애플리케이션 요청을 상기 애플리케이션 서버(110)에 전송(스텝 344)한 후 가상 스크린 메모리 영역을 설정한다(스텝 342). 또 다른 실시예들에서, 이들 동작은 실질적으로 동시에 일어난다.
서버(110)는 요청된 애플리케이션 프로그램(122, 124, 126, 128)을 실행하기 시작하고(스텝 382), 씬-클라이언트 프리젠테이션 프로토콜을 이용하여 제1 네트워크(125)를 통해 그래픽 애플리케이션 출력을 전송한다(스텝 384). 씬-클라이언트 애플리케이션(152, 154)으로의 전송을 위한 프리젠테이션-레벨 프로토콜 패킷을 형성하기 위해 애플리케이션 서버(110)가 취한 스텝들의 각종 실시예들이 미국 특허 제 6,141,737 호, 제 6,118,899 호, 제 6,081,623 호, 제 6,057,857 호 및 제 6,016,535 호에 기술되어 있고, 이들 공보는 본 명세서의 참고 문헌이 된다.
씬-클라이언트 애플리케이션(152, 154)은 애플리케이션 서버(110)로부터 수신되는 프리젠테이션 프로토콜 패킷들을 디코딩하고, 프리젠테이션 프로토콜 패킷들에 의해 표현되는 그래픽 애플리케이션 출력을 가상 스크린 메모리에 기록한다(스텝 346). 다수의 실시예들에서, 가상 스크린 메모리는 스크린 버퍼이다. 즉, 가상 스크린 메모리 영역은 그래픽 출력의 비주얼 디스플레이를 형성하는데 필요한 데이터의 비트맵 표현을 저장한다.
도 3에 도시된 실시예에서, 클라이언트 애플리케이션(146)은 그래픽 애플리케이션 출력의 현재 상태를 나타내는 정적 이미지에 대한 요청을 프록시 서버 애플리케이션에 전송한다(스텝 304). 클라이언트 애플리케이션은 그래픽 애플리케이션 출력의 현재 상태를 매분, 30초마다, 15초마다, 10초마다, 5초마다, 다른 초마다, 1초에 한 번, 1초에 두 번, 1초에 다섯 번, 1초에 열 번, 1초에 스무 번, 또는 1초에 서른 번 요청할 수 있다. 다른 실시예들에서, 프록시 서버 애플리케이션(158)은 그래픽 애플리케이션 출력의 현재 상태를 나타내는 정적 이미지를 상기 클라이언트 애플리케이션(146)에 주기적으로 전송한다. 이들 다른 실시예에서, 프록시 서버 애플리케이션(158)은 업데이트를 분마다, 30초마다, 15초마다, 10초마다, 5 초마다, 다른 초마다, 1초에 한 번, 1초에 두 번, 1초에 다섯 번, 1초에 열 번, 1 초에 스무 번, 또는 1초에 서른 번 클라이언트 애플리케이션(146)에 전송할 수 있다. 대안으로, 상기 프록시 서버 애플리케이션(158)은 가상 스크린 메모리 영역의 미리 결정된 비율이 상태를 변경한 것으로 결정할 때 또는 그래픽 애플리케이션 출력의 현재 상태에 대한 요청이 상기 프록시 서버 애플리케이션에 의해 수신될 때마다 업데이트를 클라이언트 애플리케이션(146)에 전송할 수 있다.
도 3을 다시 참조하면, 프록시 서버 애플리케이션(158)은 전송된 요청을 수신하고(스텝 324), 입력으로서 적합한 씬-클라이언트 애플리케이션(152, 154)의 가상 스크린 메모리를 이용하여 정적 이미지 파일을 생성한다(스텝 326). 몇몇 실시예들에서, 클라이언트 애플리케이션(146)은 프록시 서버 애플리케이션(158)과의 자신의 접속 상태를 예컨대 "쿠키(cookie)"에 저장한다. 이들 실시예에서, 상기 전송된 요청(스텝 324)은 프록시 서버 애플리케이션(158)이 정적 이미지 파일을 생성하기 위해 가상 스크린 메모리를 선택하는데 이용하는 세션 식별자를 포함할 수 있다. 이들 실시예들 중 다른 실시예에서, 요청은 클라이언트 디바이스(140)와 연관된 고유 식별자를 포함한다. 예컨대, 클라이언트 디바이스(140)가 휴대 전화기인 실시예들의 경우, 고유 식별자는 휴대 전화기와 연관된 전화 번호일 수 있다.
다른 실시예들에서, 클라이언트 애플리케이션(146)은 프록시 서버 애플리케이션(158)과의 자신의 접속의 상태를 저장하지 않는다. 이들 실시예에서, 세션은 엿듣는 사람(eavesdropper)에게 세션 식별자를 노출시키지 않는 방식으로 상기 전송된 요청에서 식별되어야 한다(스텝 324). 예컨대, 세션을 식별하는 상기 전송된 http 요청의 일부(스텝 324)는 클라이언트 애플리케이션(146)과 프록시 서버 애플 리케이션(158) 사이에서 공유되는 전용키를 이용하여 암호화된다. 이들 실시예들 중 다른 실시예에서, 상기 요청은 클라이언트 디바이스(140)와 연관된 고유 식별자를 포함하며, 이 식별자는 엿듣는 사람으로부터 보호하기 위해 암호화될 수도 있다. 예컨대, 클라이언트 디바이스(140)가 휴대 전화기인 실시예들의 경우, 고유 식별자는 휴대 전화기와 연관된 전화 번호일 수 있다.
프록시 서버 애플리케이션(158)에 의해 생성되는 정적 이미지는 JPEG, GIF, PNG, TIFF, 또는 BMP를 포함하는 다수의 표준 포맷들 중 어느 하나의 포맷을 가질 수 있다. 몇몇 실시예들에서, 프록시 서버 애플리케이션(158)은 정적 이미지를 생성하기 위해 씬-클라이언트 애플리케이션(152, 154)에 의해 노출되는 COM(Common Object Model) API(Application Programming Interface)를 호출한다.
몇몇 실시예들에서, 프록시 서버 애플리케이션(158)은 생성되는 정적 이미지의 크기를 최적화한다. 이들 실시예들 중 한 실시예에서, 프록시 서버 애플리케이션(158)은 사용자의 현재 위치를 둘러싸는 스크린 영역을 선택함으로써 스크린 이미지의 크기를 결정한다. 사용자의 현재 위치는 프록시 서버 애플리케이션(158)에 전송될 최종 마우스 클릭의 x 좌표 및 y 좌표 또는 최종 마우스 위치의 x 좌표 및 y 좌표를 이용하여 결정될 수 있다. 스크린 이미지를 생성하는데 이용되는 사용자의 최종 위치의 좌측 및 우측으로의 위 아래의 스크린의 양은 미리 결정된 픽셀수에 의해 설정될 수 있고, 또는 클라이언트 디바이스(140)에 의해 선택될 수도 있다.
다른 실시예에서, 프록시 서버 애플리케이션(158)은 받아들일 수 있는 이미 지 손실량을 증가시킨다. 즉, 프록시 서버 애플리케이션(158)은 전송 전에 스크린 이미지를 인코딩하기 위해 JPEG와 같은 손실 압축 알고리즘을 이용한다. 프록시 서버 애플리케이션(158)은 전송될 이미지 타입에 기초하여 받아들일 수 있는 이미지 손실량, 클라이언트 디바이스(158)의 스크린과 가상 스크린 메모리 간의 상대적 크기 차, 클라이언트 디바이스(140)의 스크린의 절대 크기, 클라이언트 디바이스(140)의 스크린의 비트 깊이, 또는 네트워크(175) 상에서 이용할 수 있는 대역폭을 선택할 수 있다.
또 다른 실시예들에서, 프록시 서버 애플리케이션(158)은 그래픽 요소들을 갖고 있지 않은 스크린들을 전송하는데 정적 이미지를 이용하지 않는다. 이들 실시예에서, 클라이언트 애플리케이션(146)은 텍스트 드로잉 명령들 및 그래픽 명령들을 위해 별도 세트의 프로그래밍 인터페이스들을 노출시킨다. 그래픽 요소들을 갖고 있지 않은 스크린들의 경우에는, 애플리케이션 출력 스크린을 제공하기 위해 텍스트 드로잉 호출만이 행해진다.
또 다른 실시예들에서, 상기 프록시 서버 애플리케이션(158)은 스크린 또는 상기 스크린의 보다 큰 부분을 클라이언트 디바이스(140)의 스크린상에 볼 수 있도록 가상 스크린 버퍼로부터 판독되는 애플리케이션 출력을 스케일링한다. 대안으로, 상기 스케일링은 COM 인터페이스에 의해 제공될 수 있다.
프록시 서버 애플리케이션(158)은 상기 생성된 정적 이미지 파일을 클라이언트 애플리케이션(146)에 전송한다(스텝 328). 몇몇 실시예들에서, 단일 세션 식별자가 다수의 클라이언트 디바이스들(140) 사이에서 공유될 수 있어, 하나 이상의 클라이언트 디바이스들(140)이 다른 클라이언트 디바이스(140)를 새도우(shadow)할 수 있다. 즉, "새도잉(shadowing)" 클라이언트 디바이스들(140)에 의해 디스플레이되는 출력은 상기 "새도우된" 클라이언트 디바이스(140)와 동일하다. 일실시예에서, 정적 이미지 파일은 http(HyperText Transfer Protocol) 또는 https(Secure HyperText Transfer Protocol)를 이용하여 클라이언트 애플리케이션(146)으로 전송된다. 정적 이미지 파일들을 클라이언트 애플리케이션(146)에 전송하고 클라이언트 입력을 상기 클라이언트 애플리케이션(146)으로부터 수신하는데 이용된 프로토콜을 이하 도 4를 참조하여 상세히 설명한다. 클라이언트 애플리케이션(146)은 상기 수신되는 정적 이미지 파일을 디스플레이한다(스텝 308).
이제 도 4를 참조하면, 사용자 입력과 애플리케이션 실행 출력을 교환하기 위해 상기 클라이언트 애플리케이션(146) 및 상기 프록시 서버 애플리케이션(158)에 의해 사용되는 프로토콜의 일실시예가 도시적으로 도시되어 있다. 도 4에 도시된 실시예에는, 네 개의 프로토콜 명령들, 즉 "이미지 획득하기(Get image)"(410); "스트링 보내기(Send String)"(420); "키스트로크 보내기(Send Keystroke)"(430); 및 "마우스 이벤트 전송하기(Send Mouse Event)"(440)가 나타내어져 있다.
도 4에 도시된 바와 같이, 클라이언트 애플리케이션(146)은 http 요청이 향할 서버를 식별하는 상기 http 요청(412) 및 클라이언트 애플리케이션(146)이 요청한 정적 이미지에 관한 파라미터를 프록시 서버 애플리케이션(158)에 전송한다. 도 4에 도시된 실시예에서, 클라이언트 애플리케이션(146)에 의해 전송된 http 요청에 포함된 파라미터들은 시작 x 좌표, 시작 y 좌표, 끝 x 좌표, 끝 y 좌표, 및 선호하는 정적 이미지 파일 타입을 포함한다. 프록시 서버 애플리케이션(158)은 상기 요청된 정적 이미지 파일을 전송하는 http 패킷(414)으로 응답한다.
도 4에 도시된 프로토콜 실시예는 또한, 세 개의 입력 명령들, 즉 "스트링 보내기(420), "키 스트로크 보내기"(430) 및 "마우스 이벤트 보내기"(440)를 포함한다. 이들 명령 각각에 대해, 클라이언트 애플리케이션(146)은 사용자 입력이 향할 서버를 식별하는 http 패킷 및 상기 입력을 프록시 서버 애플리케이션(158)에 전송한다. "스트링 보내기" 명령(422)의 경우에, 사용자 입력은 일련의 문자 숫자들을 포함한다. "키 스트로크 보내기" 명령(432)의 경우에, 사용자 입력은 키 스트로크이다. "마우스 이벤트 보내기" 명령(442)의 경우에, 사용자 입력은 마우스 이벤트의 x 좌표, 마우스 이벤트의 y 좌표, 및 상기 마우스 이벤트가 "클릭"을 포함하는지의 여부이다. 몇몇 실시예들에서, "마우스 이벤트 보내기"는 또한 마우스 버튼이 클릭되었는지에 대한 지시를 포함한다. 이들 경우의 각각에서, 상기 프록시 서버 애플리케이션(158)은 "OK" 메시지(424, 434, 444)로 상기 클라이언트 애플리케이션(146)에 응답한다.
사용자 입력(422, 432, 442)의 수신시, 프록시 서버 애플리케이션(158)은 사용자 입력을 상기 씬-클라이언트 애플리케이션(152, 154_)에 전송한다. 씬-클라이언트 애플리케이션(152, 154)은 수신되는 사용자 입력을 애플리케이션 서버(110)에 전송한다. 애플리케이션 서버(110)는 사용자 입력을 수신하여 상기 애플리케이션 프로그램(122, 124, 126, 128)에 제공한다.
본 발명은 하나 이상의 제조 아티클 상에 또는 하나 이상의 제조 아티클 내 에 구현되는 하나 이상의 컴퓨터 판독가능 프로그램으로서 제공될 수 있다. 상기 제조 아티클은 플로피 디스크, 하드 디스크, 컴팩트 디스크, DVD(digital versatile disc), 플래시 메모리 카드, PROM, RAM, ROM, 또는 자기 테이프일 수 있다. 일반적으로, 컴퓨터-판독 가능 프로그램들은 프로그래밍 언어로 구현될 수 있다. 사용될 수 있는 언어들의 일부 예로는, C, C++, C#, 또는 JAVA를 들 수 있다. 상기 소프트웨어 프로그램들은 하나 이상의 제조 아티클 상에 또는 하나 이상의 제조 아티클 내에 오브젝트 코드로서 저장될 수 있다.
특정의 바람직한 실시예들을 참조하여 본 발명을 도시 및 설명하였지만 본 발명의 형태 및 세부 구성은 다음의 청구 범위에 의해 정의되는 본 발명의 취지 및 범위로부터 이탈하지 않고 여러 가지로 변경될 수 있음을 당업자는 이해해야 한다.
본 발명은 서버 디바이스들 상에서 실행되는 애플리케이션 프로그램들의 출력을 클라이언트 디바이스들에서 디스플레이하는 분야에 이용 가능하다.

Claims (54)

  1. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 시스템에 있어서,
    애플리케이션 프로그램을 실행하는 애플리케이션 서버;
    상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 상기 애플리케이션 서버로부터 수신하는 프록시 서버; 및
    클라이언트 애플리케이션을 실행하는 사용자 디바이스를 구비하고,
    상기 클라이언트 애플리케이션은 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 정적 이미지 데이터를 상기 프록시 서버로부터 수신하는 시스템.
  2. 제 1 항에 있어서,
    상기 애플리케이션 서버는 서버 팜(server farm) 내의 복수의 서버 중 하나를 구비하는 시스템.
  3. 제 1 항에 있어서,
    상기 프록시 서버는 상기 클라이언트 애플리케이션으로부터 전송되는 입력을 수신하고 상기 수신되는 입력을 상기 애플리케이션 서버에 전송하는 시스템.
  4. 제 1 항에 있어서,
    상기 프록시 서버는 프리젠테이션 프로토콜을 통해 상기 애플리케이션 서버로부터 데이터를 수신하는 시스템.
  5. 제 1 항에 있어서,
    상기 프록시 서버는 ICA(Independent Computing Architecture) 프로토콜을 통해 상기 애플리케이션 서버로부터 데이터를 수신하는 시스템.
  6. 제 1 항에 있어서,
    상기 프록시 서버는 RDP(Remote Display Protocol)를 통해 상기 애플리케이션 서버로부터 데이터를 수신하는 시스템.
  7. 제 1 항에 있어서,
    상기 프록시 서버는 상기 애플리케이션 서버로부터 수신되는 데이터를 수정하는 시스템.
  8. 제 7 항에 있어서,
    상기 프록시 서버는 상기 애플리케이션 서버로부터 수신되는 데이터를 스케일링(scale)하는 시스템.
  9. 제 7 항에 있어서,
    상기 프록시 서버는 상기 애플리케이션 서버로부터 수신되는 데이터의 컬러 깊이를 수정하는 시스템.
  10. 제 7 항에 있어서,
    상기 프록시 서버는 상기 애플리케이션 서버로부터 수신되는 데이터에 대해 손실 이미지 압축을 수행하는 시스템.
  11. 제 1 항에 있어서,
    상기 프록시 서버는 상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린의 변화를 나타내는 데이터를 상기 애플리케이션 서버로부터 수신하고, 업데이트된 정적 이미지 데이터를 상기 클라이언트 애플리케이션에 전송하는 시스템.
  12. 제 11 항에 있어서,
    상기 업데이트된 정적 이미지 데이터는 미리 결정된 시간 기간이 경과한 후 상기 프록시 서버에 의해 전송되는 시스템.
  13. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션에 의해 수신되는 상기 정적 이미지 데이터는 GIF 포맷의 이미지 파일의 적어도 일부를 구비하는 시스템.
  14. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션에 의해 수신되는 상기 정적 이미지 데이터는 JPEG 포맷의 이미지의 적어도 일부를 구비하는 시스템.
  15. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 HTTP(Hyper Text Transfer Protocol)를 통해 상기 프록시 서버로부터 정적 이미지 데이터를 수신하는 시스템.
  16. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 JAVA 애플리케이션을 구비하는 시스템.
  17. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 실행 중에 메모리의 50 KB 이하를 사용하는 시스템.
  18. 제 1 항에 있어서,
    상기 클라이언트 애플리케이션은 상기 프록시 서버로부터 업데이트된 정적 이미지 데이터를 요청하는 시스템.
  19. 제 1 항에 있어서,
    상기 사용자 디바이스는 휴대 전화기(cell phone)를 구비하는 시스템.
  20. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 방법에 있어서,
    (a) 애플리케이션 서버가 그래픽 사용자 인터페이스 데이터의 스크린을 생성하는 애플리케이션을 실행하는 단계;
    (b) 상기 애플리케이션 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린을 프록시 서버에 전송하는 단계;
    (c) 상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 사용자 디바이스에 전송하는 단계; 및
    (d) 상기 사용자 디바이스가 상기 전송된 정적 이미지 데이터를 디스플레이하는 단계를 포함하는 디스플레이 방법.
  21. 제 20 항에 있어서,
    상기 애플리케이션 서버가 상기 실행된 애플리케이션에 의해 생성되는 상기 그래픽 사용자 인터페이스 데이터의 스크린을 프리젠테이션 프로토콜 포맷의 적어 도 하나의 제1 메시지로 포매팅하는 단계를 더 포함하는 디스플레이 방법.
  22. 제 20 항에 있어서,
    상기 애플리케이션 서버가 상기 실행된 애플리케이션에 의해 생성되는 상기 그래픽 사용자 인터페이스 데이터의 스크린을 ICA(Independent Computing Architecture) 프로토콜 포맷의 적어도 하나의 제1 메시지로 포매팅하는 단계를 더 포함하는 디스플레이 방법.
  23. 제 20 항에 있어서,
    상기 애플리케이션 서버가 상기 실행된 애플리케이션에 의해 생성되는 상기 그래픽 사용자 인터페이스 데이터의 스크린을 RDP(Remote Display Protocol) 포맷의 제1 메시지로 포매팅하는 단계를 더 포함하는 디스플레이 방법.
  24. 제 20 항에 있어서,
    상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 파일을 생성하는 단계를 더 포함하는 디스플레이 방법.
  25. 제 20 항에 있어서,
    상기 프록시 서버가 상기 애플리케이션 서버로부터 수신되는 데이터를 수정 하는 단계를 더 포함하는 디스플레이 방법.
  26. 제 25 항에 있어서,
    상기 수정하는 단계는 손실 이미지 압축을 상기 애플리케이션 서버로부터 수신되는 데이터에 적용하는 것을 포함하는 디스플레이 방법.
  27. 제 25 항에 있어서,
    상기 수정하는 단계는 상기 애플리케이션 서버로부터 수신되는 데이터의 컬러 깊이를 변경하는 것을 포함하는 디스플레이 방법.
  28. 제 25 항에 있어서,
    상기 수정하는 단계는 상기 애플리케이션 서버로부터 수신되는 데이터를 스케일링하는 것을 포함하는 디스플레이 방법.
  29. 제 18 항에 있어서,
    단계(c)는 상기 프록시 서버가 상기 그래픽 사용자 출력의 스크린의 적어도 일부를 나타내는 GIF 이미지 데이터를 사용자 디바이스에 전송하는 것을 포함하는 디스플레이 방법.
  30. 제 20 항에 있어서,
    단계(c)는 상기 프록시 서버가 상기 그래픽 사용자 출력의 스크린의 적어도 일부를 나타내는 JPEG 이미지 데이터를 사용자 디바이스에 전송하는 것을 포함하는 디스플레이 방법.
  31. 제 20 항에 있어서,
    단계(c)는 상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 HTTP(Hyper Text Transfer Protocol)를 통해 사용자 디바이스에 전송하는 것을 포함하는 디스플레이 방법.
  32. 제 20 항에 있어서,
    상기 프록시 서버가 상기 사용자 디바이스로부터의 입력을 나타내는 데이터를 수신하는 단계를 더 포함하는 디스플레이 방법.
  33. 제 32 항에 있어서,
    상기 프록시 서버가 상기 수신되는 사용자 입력 데이터를 상기 애플리케이션 서버에 전송하는 단계를 더 포함하는 디스플레이 방법.
  34. 제 20 항에 있어서,
    상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린 의 변화를 나타내는 데이터를 상기 애플리케이션 실행 서버로부터 수신하는 단계를 더 포함하는 디스플레이 방법.
  35. 제 34 항에 있어서,
    상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 변경된 스크린을 나타내는 정적 이미지 데이터를 사용자 디바이스에 전송하는 단계를 더 포함하는 디스플레이 방법.
  36. 제 35 항에 있어서,
    상기 전송하는 단계는 미리 결정된 시간 기간이 경과된 후 일어나는 디스플레이 방법.
  37. 제 20 항에 있어서,
    상기 클라이언트 애플리케이션이 업데이트된 정적 이미지 정보에 대한 요청을 전송하는 단계를 더 포함하는 디스플레이 방법.
  38. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 장치에 있어서,
    상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 제1 프로토콜 포맷의 데이터를 애플리케 이션 서버로부터 수신하는 제1 프로토콜 핸들러; 및
    상기 제1 프로토콜 핸들러에 의해 수신되는 상기 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 제2 프로토콜 포맷의 정적 이미지 데이터를 디스플레이용 클라이언트 애플리케이션에 전송하는 제2 프로토콜 핸들러를 구비하는 디스플레이 장치.
  39. 제 38 항에 있어서,
    상기 제2 프로토콜 핸들러는 상기 클라이언트 애플리케이션으로부터 사용자 입력을 나타내는 데이터를 수신하는 디스플레이 장치.
  40. 제 39 항에 있어서,
    상기 제1 프로토콜 핸들러는 상기 제2 프로토콜 핸들러에 의해 수신되는 사용자 입력을 나타내는 데이터를 상기 애플리케이션 서버에 전송하는 디스플레이 장치.
  41. 제 38 항에 있어서,
    상기 제1 프로토콜 핸들러는 상기 수신되는 데이터를 제1 프로토콜로부터 제2 프로토콜로 변환하는 디스플레이 장치.
  42. 제 38 항에 있어서,
    상기 제2 프로토콜 핸들러는 상기 수신되는 데이터를 제1 프로토콜로부터 제2 프로토콜로 변환하는 디스플레이 장치.
  43. 제 38 항에 있어서,
    상기 제1 프로토콜로 상기 제1 프로토콜 핸들러에 의해 수신되는 데이터를 액세스하고 상기 데이터를 상기 제2 프로토콜 포맷의 적어도 하나의 메시지로 변환하는 변환 모듈을 더 구비하는 디스플레이 장치.
  44. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력을 사용자 디바이스에서 디스플레이하는 방법에 있어서,
    (a) 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 제1 프로토콜을 통해 상기 애플리케이션 서버로부터 수신하는 단계; 및
    (b) 상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 상기 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송하는 단계를 포함하는 디스플레이하는 방법.
  45. 제 44 항에 있어서,
    상기 애플리케이션 프로그램에의 사용자 입력을 나타내는 데이터를 상기 제2 프로토콜을 통해 상기 클라이언트 애플리케이션으로부터 수신하는 단계를 더 포함하는 디스플레이하는 방법.
  46. 제 45 항에 있어서,
    상기 클라이언트 애플리케이션으로부터 수신되는 사용자 입력을 나타내는 데이터를 상기 제1 프로토콜을 통해 상기 애플리케이션 서버에 전송하는 단계를 더 포함하는 디스플레이하는 방법.
  47. 제 44 항에 있어서,
    상기 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 제1 프로토콜의 포맷으로부터 제2 프로토콜의 포맷으로 변환하는 단계를 더 포함하는 디스플레이하는 방법.
  48. 제 44 항에 있어서,
    단계(b)는 상기 애플리케이션 서버상에서 실행되는 애플리케이션의 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 GIF 데이터를 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송하는 것을 포함하는 디스플레이하는 방법.
  49. 제 48 항에 있어서,
    상기 GIF 파일은 HTTP(HyperText Transfer Protocol)를 통해 상기 클라이언트 애플리케이션에 전송되는 디스플레이하는 방법.
  50. 제 44 항에 있어서,
    단계(b)는 상기 애플리케이션 서버상에서 실행되는 애플리케이션의 그래픽 디스플레이 출력의 스크린의 적어도 일부를 나타내는 JPEG 데이터를 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송하는 것을 포함하는 디스플레이하는 방법.
  51. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 시스템에 있어서,
    애플리케이션 프로그램을 실행하는 애플리케이션 서버;
    상기 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 프리젠테이션-레벨 프로토콜을 통해 상기 애플리케이션 서버로부터 수신하는 프록시 서버; 및
    클라이언트 애플리케이션을 실행하는 사용자 디바이스를 구비하고,
    상기 클라이언트 애플리케이션은 상기 애플리케이션 프로그램에 의해 생성되는 상기 그래픽 디스플레이 출력의 스크린을 나타내는 정적 이미지 데이터를 HTTP(HyperText Transfer Protocol) 명령들을 통해 상기 프록시 서버로부터 수신하는 디스플레이하는 시스템.
  52. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하는 방법에 있어서,
    (a) 애플리케이션 서버가 그래픽 사용자 인터페이스 데이터의 스크린을 생성하는 애플리케이션을 실행하는 단계;
    (b) 상기 애플리케이션 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린을 프리젠테이션-레벨 프로토콜을 통해 프록시 서버에 전송하는 단계;
    (c) 상기 프록시 서버가 상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나타내는 정적 이미지 데이터를 HTTP(HyperText Transfer Protocol) 명령들을 통해 사용자 디바이스에 전송하는 단계; 및
    (d) 상기 사용자 디바이스가 상기 전송된 정적 이미지 데이터를 디스플레이하는 단계를 포함하는 디스플레이 방법.
  53. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 출력을 사용자 디바이스에서 디스플레이하기 위한 컴퓨터 판독가능 프로그램 수단을 구현한 제조 아티클(article of manufacture)에 있어서,
    상기 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 사용자 인터페이스 데이터의 스크린을 프록시 서버에 전송하는 컴퓨터-판독 가능 프로그램 수단;
    상기 생성된 그래픽 사용자 인터페이스 데이터의 스크린의 적어도 일부를 나 타내는 정적 이미지 데이터를 상기 프록시 서버에 의해 사용자 디바이스에 전달하는 컴퓨터-판독 가능 프로그램 수단; 및
    상기 전송된 정적 이미지 데이터를 상기 사용자 디바이스에 의해 디스플레이하는 컴퓨터-판독 가능 프로그램 수단을 구비하는 제조 아티클.
  54. 서버상에서 실행되는 애플리케이션 프로그램에 의해 생성되는 그래픽 디스플레이 출력을 사용자 디바이스에서 디스플레이하기 위한 컴퓨터-판독 가능 프로그램 수단을 구현한 제조 아티클에 있어서,
    상기 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린을 나타내는 데이터를 제1 프로토콜을 통해 애플리케이션 서버로부터 수신하는 컴퓨터-판독 가능 프로그램 수단; 및
    상기 애플리케이션 서버상에서 실행되는 애플리케이션에 의해 생성되는 그래픽 디스플레이 출력의 스크린의 적어도 일부분을 나타내는 정적 이미지 데이터를 제2 프로토콜을 통해 디스플레이용 클라이언트 애플리케이션에 전송하는 컴퓨터-판독 가능 프로그램 수단을 구비하는 제조 아티클.
KR1020067025934A 2004-05-14 2005-05-13 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치 KR20070012544A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/709,581 2004-05-14
US10/709,581 US20050256923A1 (en) 2004-05-14 2004-05-14 Methods and apparatus for displaying application output on devices having constrained system resources

Publications (1)

Publication Number Publication Date
KR20070012544A true KR20070012544A (ko) 2007-01-25

Family

ID=34969731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025934A KR20070012544A (ko) 2004-05-14 2005-05-13 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치

Country Status (8)

Country Link
US (1) US20050256923A1 (ko)
EP (1) EP1756709A1 (ko)
JP (1) JP2008502176A (ko)
KR (1) KR20070012544A (ko)
AU (1) AU2005246306A1 (ko)
CA (1) CA2566717A1 (ko)
IL (1) IL179205A0 (ko)
WO (1) WO2005114395A1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011111926A2 (ko) * 2010-03-12 2011-09-15 블루가 (주) 통신 단말기의 웹 기반 사용자 인터페이스 구현 장치 및 그 방법
WO2012047023A2 (ko) * 2010-10-05 2012-04-12 엘지전자 주식회사 네트워크 모니터, 이를 이용한 네트워크 모니터 시스템 및 그의 제어 방법
KR101148043B1 (ko) * 2010-03-12 2012-05-24 블루가 (주) 통신 단말기의 웹 기반 사용자 인터페이스 구현 장치 및 그 방법
WO2012086918A2 (ko) * 2010-12-24 2012-06-28 (주)케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
WO2012086919A2 (ko) * 2010-12-24 2012-06-28 (주)케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101238364B1 (ko) * 2007-04-24 2013-02-28 삼성전자주식회사 화상 형성 장치의 커스터마이즈 방법 및 시스템
US8775870B2 (en) 2010-12-22 2014-07-08 Kt Corporation Method and apparatus for recovering errors in a storage system
US8849756B2 (en) 2011-04-13 2014-09-30 Kt Corporation Selecting data nodes in distributed storage system
US8913026B2 (en) 2012-03-06 2014-12-16 Industry-University Cooperation Foundation Hanyang University System for linking and controlling terminals and user terminal used in the same
US9052962B2 (en) 2011-03-31 2015-06-09 Kt Corporation Distributed storage of data in a cloud storage system
US9158460B2 (en) 2011-04-25 2015-10-13 Kt Corporation Selecting data nodes using multiple storage policies in cloud storage system

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US8137200B2 (en) * 1996-11-14 2012-03-20 Bally Gaming, Inc. Networked gaming system having a browser manager
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
WO2000070838A2 (en) * 1999-05-14 2000-11-23 Pivia, Inc. Client-server independent intermediary mechanism
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
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
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
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7949705B1 (en) * 2004-06-14 2011-05-24 Oracle America, Inc. Dynamic desktop switching for thin clients
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
EP1771979B1 (en) 2004-07-23 2011-11-23 Citrix Systems, Inc. A method and systems for securing remote access to private networks
EP1771998B1 (en) 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
AU2005272779B2 (en) * 2004-08-13 2010-06-10 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
CA2594983A1 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
JP2007287025A (ja) 2006-04-19 2007-11-01 Nec Corp 画面遷移プログラム生成方法及び装置
KR100800447B1 (ko) 2006-09-27 2008-02-04 엘지전자 주식회사 자바 미들릿의 화면 크기 보정 방법 및 그 단말기
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
US9264483B2 (en) 2007-07-18 2016-02-16 Hammond Development International, Inc. Method and system for enabling a communication device to remotely execute an application
US8260985B2 (en) * 2007-10-05 2012-09-04 Pano Logic, Inc. Universal serial bus assistance engine
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
EP2241081B1 (en) 2008-01-26 2018-05-02 Citrix Systems, Inc. Systems and methods for fine grain policy driven cookie proxying
WO2009094673A2 (en) 2008-01-27 2009-07-30 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
JP5236352B2 (ja) * 2008-05-15 2013-07-17 株式会社日立製作所 アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末
JP2009290469A (ja) * 2008-05-28 2009-12-10 Hideaki Watanabe ネットワーク通信システム
US9071651B2 (en) * 2008-06-05 2015-06-30 Microsoft Technology Licensing, Llc Dynamic content delivery to network-enabled static display device
US8156418B2 (en) * 2008-06-05 2012-04-10 Microsoft Corporation Image acquisition from dynamic content for delivery to network-enabled static display devices
US20100058354A1 (en) * 2008-08-28 2010-03-04 Gene Fein Acceleration of multimedia production
US8468587B2 (en) * 2008-09-26 2013-06-18 Microsoft Corporation Binding activation of network-enabled devices to web-based services
CN102257471B (zh) * 2008-10-26 2015-07-22 思杰系统有限公司 一种用于在移动计算设备上显示在服务器上执行的应用的窗口的方法
US8001213B2 (en) 2008-12-22 2011-08-16 Nokia Corporation Method, apparatus and computer program product for providing unrestricted content on a user terminal
US20100174818A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Input Service for Client Devices
US8893232B2 (en) * 2009-02-06 2014-11-18 Empire Technology Development Llc Media monitoring system
US9077784B2 (en) 2009-02-06 2015-07-07 Empire Technology Development Llc Media file synchronization
US8732749B2 (en) 2009-04-16 2014-05-20 Guest Tek Interactive Entertainment Ltd. Virtual desktop services
FR2944618B1 (fr) * 2009-04-17 2011-11-25 Gerard Weerts Systeme de mise a disposition d'une application sur un terminal utilisateur.
US8966112B1 (en) 2009-11-30 2015-02-24 Dell Software Inc. Network protocol proxy
US9229734B2 (en) 2010-01-15 2016-01-05 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual user interfaces
US20130110918A1 (en) * 2010-07-06 2013-05-02 Nec Corporation Thin client system, management server, management method and program
US9003455B2 (en) 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
EP2612253A4 (en) * 2010-08-29 2014-01-22 Vascode Technologies Ltd SYSTEM AND METHOD FOR MORE PROCESS OPERATION IN A CLIENT-FREE MOBILE TELEPHONE
US9395885B1 (en) 2010-12-10 2016-07-19 Wyse Technology L.L.C. Methods and systems for a remote desktop session utilizing HTTP header
US9245047B2 (en) * 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US8589800B2 (en) * 2010-12-10 2013-11-19 Wyse Technology Inc. Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server
US8966376B2 (en) * 2010-12-10 2015-02-24 Wyse Technology L.L.C. Methods and systems for remote desktop session redrawing via HTTP headers
US8504654B1 (en) * 2010-12-10 2013-08-06 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing long polling
US8949726B2 (en) 2010-12-10 2015-02-03 Wyse Technology L.L.C. Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US9383891B2 (en) * 2012-03-28 2016-07-05 Skytap Methods and systems for an intermediate graphical desktop sharing protocol
CN103731717B (zh) * 2012-10-10 2017-06-20 华为终端有限公司 展示多幅图像的方法、装置、家庭网络系统和移动终端
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US20150134725A1 (en) * 2013-11-13 2015-05-14 Adrian Cesena, Jr. Computer-implemented methods, computer readable medium and systems for virtual application execution
JP6718435B2 (ja) * 2015-03-25 2020-07-08 株式会社ハイウェイテックジャパン シンクライアント方式によるデバイス制御方法
KR102638377B1 (ko) * 2018-08-14 2024-02-20 주식회사 케이티 가상 현실 컨텐츠를 제공하는 서버, 방법 및 사용자 단말
US11647095B1 (en) * 2018-10-02 2023-05-09 Intuit Inc. Method and system for orchestrating communications between application services through a unified connector platform
US11444878B2 (en) * 2019-09-04 2022-09-13 Yahoo Ad Tech Llc Intelligent dataflow-based service discovery and analysis

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US7006881B1 (en) * 1991-12-23 2006-02-28 Steven Hoffberg Media recording device with remote graphic user interface
US5577188A (en) * 1994-05-31 1996-11-19 Future Labs, Inc. Method to provide for virtual screen overlay
KR100427136B1 (ko) * 1996-05-30 2004-08-11 마츠시타 덴끼 산교 가부시키가이샤 데이터변환장치
EP0872991B1 (en) * 1997-04-15 2006-07-26 Hewlett-Packard Company, A Delaware Corporation Method and apparatus for device interaction by format
US6009410A (en) * 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
US6925606B2 (en) * 1997-11-13 2005-08-02 Tarantella, Inc. Color quality and packet shaping features for displaying an application on a variety of client devices
US6173316B1 (en) * 1998-04-08 2001-01-09 Geoworks Corporation Wireless communication device with markup language based man-machine interface
JP2000242566A (ja) * 1999-02-23 2000-09-08 Dainippon Printing Co Ltd 画像配信システム、画像プロキシ装置および記録媒体
US6981041B2 (en) * 2000-04-13 2005-12-27 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
US20020046262A1 (en) * 2000-08-18 2002-04-18 Joerg Heilig Data access system and method with proxy and remote processing
US7216149B1 (en) * 2000-08-18 2007-05-08 International Business Machines Corporation Gathering enriched web server activity data of cached web content
EP1182576A1 (en) * 2000-08-18 2002-02-27 Sun Microsystems, Inc. Data access system and method with proxy and remote processing
US20020054090A1 (en) * 2000-09-01 2002-05-09 Silva Juliana Freire Method and apparatus for creating and providing personalized access to web content and services from terminals having diverse capabilities
WO2002033607A1 (en) * 2000-10-16 2002-04-25 Iis Inc. Method for offering multilingual information translated in many languages through a communication network
EP2287723A3 (en) * 2001-07-26 2012-11-14 IRiSE System and process for gathering, recording and validating requirements for computer applications
US6931270B2 (en) * 2002-02-11 2005-08-16 General Electric Company Method and system for conducting medical imaging transactions
JP2003323402A (ja) * 2002-05-01 2003-11-14 Ntt Docomo Inc シンクライアントシステム、並びに、シンクライアント端末、シンクライアント端末制御方法、及び、制御プログラム
JP2003348562A (ja) * 2002-05-27 2003-12-05 Telecommunication Advancement Organization Of Japan Cg画像配信システム
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US8176428B2 (en) * 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US20050186913A1 (en) * 2004-02-24 2005-08-25 Research In Motion Limited Remote user interface

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101238364B1 (ko) * 2007-04-24 2013-02-28 삼성전자주식회사 화상 형성 장치의 커스터마이즈 방법 및 시스템
WO2011111926A2 (ko) * 2010-03-12 2011-09-15 블루가 (주) 통신 단말기의 웹 기반 사용자 인터페이스 구현 장치 및 그 방법
WO2011111926A3 (ko) * 2010-03-12 2011-11-24 블루가 (주) 통신 단말기의 웹 기반 사용자 인터페이스 구현 장치 및 그 방법
KR101148043B1 (ko) * 2010-03-12 2012-05-24 블루가 (주) 통신 단말기의 웹 기반 사용자 인터페이스 구현 장치 및 그 방법
WO2012047023A2 (ko) * 2010-10-05 2012-04-12 엘지전자 주식회사 네트워크 모니터, 이를 이용한 네트워크 모니터 시스템 및 그의 제어 방법
WO2012047023A3 (ko) * 2010-10-05 2012-08-23 엘지전자 주식회사 네트워크 모니터, 이를 이용한 네트워크 모니터 시스템 및 그의 제어 방법
US8775870B2 (en) 2010-12-22 2014-07-08 Kt Corporation Method and apparatus for recovering errors in a storage system
WO2012086918A3 (ko) * 2010-12-24 2012-09-07 (주)케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
WO2012086919A3 (ko) * 2010-12-24 2012-09-07 (주)케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
WO2012086919A2 (ko) * 2010-12-24 2012-06-28 (주)케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US8495013B2 (en) 2010-12-24 2013-07-23 Kt Corporation Distributed storage system and method for storing objects based on locations
WO2012086918A2 (ko) * 2010-12-24 2012-06-28 (주)케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US9888062B2 (en) 2010-12-24 2018-02-06 Kt Corporation Distributed storage system including a plurality of proxy servers and method for managing objects
US9052962B2 (en) 2011-03-31 2015-06-09 Kt Corporation Distributed storage of data in a cloud storage system
US8849756B2 (en) 2011-04-13 2014-09-30 Kt Corporation Selecting data nodes in distributed storage system
US9158460B2 (en) 2011-04-25 2015-10-13 Kt Corporation Selecting data nodes using multiple storage policies in cloud storage system
US8913026B2 (en) 2012-03-06 2014-12-16 Industry-University Cooperation Foundation Hanyang University System for linking and controlling terminals and user terminal used in the same
US10656895B2 (en) 2012-03-06 2020-05-19 Industry—University Cooperation Foundation Hanyang University System for linking and controlling terminals and user terminal used in the same

Also Published As

Publication number Publication date
JP2008502176A (ja) 2008-01-24
US20050256923A1 (en) 2005-11-17
EP1756709A1 (en) 2007-02-28
WO2005114395A1 (en) 2005-12-01
IL179205A0 (en) 2007-03-08
AU2005246306A1 (en) 2005-12-01
CA2566717A1 (en) 2005-12-01

Similar Documents

Publication Publication Date Title
KR20070012544A (ko) 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치
US7797724B2 (en) Methods and apparatus for secure online access on a client device
CN101495990B (zh) 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备
US7254621B2 (en) Technique for enabling remote data access and manipulation from a pervasive device
US7475354B2 (en) Method for generating a portal page
KR101966258B1 (ko) 복수의 동적 아이콘 패널을 업데이트하기 위한 푸시 알림
US9330077B2 (en) Dynamic image generation for customizable user interfaces
US6654814B1 (en) Systems, methods and computer program products for dynamic placement of web content tailoring
US20060271877A1 (en) A system and methods for selective sharing of an application window
JP4818253B2 (ja) ウェブ・ページの適時更新
JP2005063440A (ja) クライアント上においてウェブ・サービスを統合するための方法、システム、およびプログラム・プロダクト
US20120089901A1 (en) High performance cross platform document viewing
US20080201405A1 (en) Method and System for Generating a Graphical Display for a Remote Terminal Session
CA2420017A1 (en) Developing applications online
US9948592B1 (en) Managing notifications across services
US20060070090A1 (en) System and method for remoting twain function calls from a user session to a client system
KR20080081160A (ko) 컨텐츠를 목표 주소로 전송하는 방법, 컨텐츠를 목표주소로 전송하는 시스템, 기본 사용자 인터페이스프리젠테이션을 적어도 하나의 컨텐츠-전달 아이콘으로채우는 방법 및 컴퓨터 판독가능 매체
US7748032B2 (en) Method and apparatus for associating tickets in a ticket hierarchy
US20060117257A1 (en) System and method for processing JavaScript resource files
CN112088362A (zh) 针对已保存站点的通知更新
US7792969B2 (en) Message interface for configuring web services for remote portlets
WO2008044821A2 (en) Method and system for previewing web-page with hypertext at web-browsing
JP2012503231A (ja) ウェブアプリケーションのための非同期待ち行列型メッセージング
CN107977380B (zh) 用于生成页面的方法和装置
US20090063943A1 (en) Use of Dynamic Anchors to Transmit Content

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid