KR100742436B1 - 가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및장치 - Google Patents

가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및장치 Download PDF

Info

Publication number
KR100742436B1
KR100742436B1 KR1020007011687A KR20007011687A KR100742436B1 KR 100742436 B1 KR100742436 B1 KR 100742436B1 KR 1020007011687 A KR1020007011687 A KR 1020007011687A KR 20007011687 A KR20007011687 A KR 20007011687A KR 100742436 B1 KR100742436 B1 KR 100742436B1
Authority
KR
South Korea
Prior art keywords
delete delete
user
data
session
computer
Prior art date
Application number
KR1020007011687A
Other languages
English (en)
Other versions
KR20010042901A (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 KR20010042901A publication Critical patent/KR20010042901A/ko
Application granted granted Critical
Publication of KR100742436B1 publication Critical patent/KR100742436B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

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

Abstract

본 발명은 컴퓨팅을 위한 중앙 오피스 메타포를 제공한다. 그리고 중앙 오피스 메타포에서는 하나 이상의 서버에 의해 제공되고 네트워크를 통해 가정용 터미널과 소통되는 특성과 기능을 포함한다. 데이터 제공자는 "서비스"로써 규정되고 하나 이상의 프로세싱 리소스에 의해 제공된다. 서비스는 이서네트 등의 네트워크를 통해 표시 터미널과 통신한다. 터미널은 데이터를 표시하고 키보드, 커서, 오디오 및 비디오 데이터를 네트워크를 통해 프로세싱 서버에 보내도록 구성된다. 데이터베이스, 서버 및 그래픽 유저 인터페이스 기능이 서비스에 의해 제공되고 인간 인터페이스 기능성이 터미널에 의해 제공되도록 기능성은 분할된다. 다양한 서비스에서 터미널과의 통신은 다른 출력을 공용 프로토콜로 변환함으로써 달성된다. 프로토콜 변환을 허용하기 위해 각 서비스에 대하여 적당한 드라이버가 제공된다. 복수개의 터미널은 네트워크에 접속된다. 사용자는 터미널들중의 하나에서 카드 판독기 속에 "스마트 카드"를 삽입하여 그들의 유일한 세션을 이용할 수 있다. 카드를 제거하면 세션을 이용할 수 없다. 카드 판독기에 카드를 다시 삽입하거나 다른 터미널에서 세션을 다시 이용할 수 있다.
가상 데스트탑 시스템(Virtual Desktop System)

Description

가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및 장치{Method and apparatus for providing a virtual desktop system architecture}
본 발명은 모든 컴퓨터 시스템에 관한 것이다.
본 특허 명세서는 저작권에 의해 보호되는 내용을 포함한다. 저작권자는 본 특허 명세서 또는 특허 개시 내용을 미국 특허청의 파일이나 기록에 나타나 있는 대로 누군가가 복사하는 것을 반대하지 않으나, 그 외의 행위에 대해서는 모든 저작권이 유지된다. 선(Sun), 선 마이크로시스템즈(Sun Microsystems), 선 로고(the Sun logo), 자바(Java), 자바빈(JavaBeans), 핫자바(HotJava) 및 모든 자바계 상표 및 로고는 미국과 다른 나라들에서의 선 마이크로사의 상표 또는 등록된 상표이다.
컴퓨터 사용자들은 더욱더 낮은 비용으로 고성능의 컴퓨터를 사용하기를 희망한다. 이러한 요구를 만족시키기 위한 현재의 노력에 의해 최저 비용의 컴퓨팅 시스템을 제공할 수는 있지만, 이러한 컴퓨팅 시스템은 매우 낮은 성능을 갖게 된다. 컴퓨터 사용자는 돈을 조금 적게 지불하는 대신 성능이 크게 낮은 컴퓨터를 사용해야 한다. 해결되어야 하는 이러한 문제는 매우 낮은 비용으로 동급 성능 이상의 컴퓨팅 체험을 어떻게 제공하느냐에 달려 있다. 이러한 문제는 컴퓨팅 시스템의 발전사를 살펴봄으로써 더욱 잘 이해될 수 있다.
컴퓨터 시스템을 구성하는 전형적인 예가 시간이 지남에 따라 변화되고 있다. 초창기에, 컴퓨터는 컴퓨터에 인접한 사용자에 의해 직접적으로 액세스되는 방 크기만한 장치이었다. 이러한 컴퓨터는 "메인프레임" 컴퓨터로 알려져 있다. 결국 더 많은 사용자가 메인프레임의 전산 능력에 접근하도록 할 요구가 생겼다. 이것은 네트워크를 통해 메인프레임과 통신하는 복수개의 소위 "덤 터미널(dumb terminals)"을 이끌어 내었다. 메인프레임은 연산 능력 및 데이터 저장을 제공하는 중앙 장치(central station)이었다. 덤 터미널은 메인프레임에 의해 제공된 데이터용 표시장치이며 메인프레임과 일부 데이터를 통신하기 위한 수단으로 제공되었다. 터미널은 그것들이 국부적인 처리 또는 데이터 저장 기능을 포함하지 않기 때문에 덤 터미널로 언급되었다. 터미널이 메인프레임 네트워크로부터 뽑혀진다면, 단말기는 어떠한 연산 실행도 제공할 수 없다. 메인프레임/터미널 구조는 메인프레임 컴퓨터 자체에 많은 비용이 든다는 단점이 있었다. 많은 사용자를 소유한 큰 사업체에서만 메인프레임/단말기 시스템을 구입하여 사용할 수 있었다.
데스크탑 컴퓨터로 잘 알려진 퍼스널 컴퓨터가 등장하면서 메인프레임 시스템의 단점에 대한 해결책을 제공하였다. 데스크탑 컴퓨터는 그 시스템 자체적으로 모든 애플리케이션, 데이터 및 연산 능력을 갖추고 있는 자체 보유 컴퓨팅 시스템이다. 이러한 퍼스널 컴퓨터로 인해 가정과 사무실에서 컴퓨터 사용이 증가하였다. 데스크탑 시스템의 가격은 메인프레임 환경에 비해 비교적 낮았다. 한 사람의 사용자가 데스크탑 시스템을 구매할 여유가 있었다. 하지만, 곧 데스크탑 컴퓨터의 사 용에 있어서 몇가지 단점이 대두되었다. 한가지 단점은 데스크탑 컴퓨터의 고립이었다. 더이상 중앙 집중식 네트워크의 한 부분이 아니므로, 사용자는 다른 사용자들과 데이터를 공유하기 어렵다는 것을 인식하였다. 각 데스크탑 컴퓨터는 그 자체의 소프트웨어에 의해 운영되기 때문에 다른 컴퓨터 상에서는 소프트웨어 애플리케이션이 호환되지 않는다는 문제점이 있었다. 또한, 복수의 운영체계(operating systems)를 포함하는 경우, 일부 데이터가 전혀 공유되지 않거나 특히 소정의 호환 형태로 변환된 후에 공유되지 않았다.
이러한 문제들에 대한 해결책으로서 클라이언트/서버 시스템이 등장하였다. 데스크탑 컴퓨터들은 회사 네트워크 내에서 서로 연결되었다. 공용 데이터와 일부 응용 프로그램이 서버로 불리우는 중앙 컴퓨팅 시스템상에 저장되었다. 서버는 공용 데이터를 유지하고 클라이언트(데스크탑 컴퓨터)의 요구에 따라 그것의 사본을 클라이언트에 제공하였다. 클라이언트 서버 시스템도 단점을 갖고 있었다. 그 중에 한가지 단점은 하드웨어가 시대에 뒤떨어지다는 것이었다. 데스크탑 컴퓨터는 마이크로프로세서에 의해 구동되고, 더 빠르고 더 강력한 마이크로프로세서를 이용하기 원하는 경우, 현재의 데스크탑 시스템의 업그레이드 또는 새로운 데스크탑 컴퓨터의 구매가 요구된다. 많은 사무실에서, 개인용 데스크탑 컴퓨터를 사용하여 때때로 수천 내지 수만번의 넘버링을 할 수 있다. 일부 하드웨어 부품, 예를 들어 시스템 RAM은 전체 데스크탑 시스템을 바꾸지 않고서 업그레이드될 수 있다. 그러나, 데스크탑 시스템의 수명과 종류에 따라 시스템 RAM을 업그레이드 할 수 있는 데에는 한계가 있다. 시스템 RAM이 업그레이드되는 경우에도, 많은 데스크탑 컴퓨터를 업그 레이드하는 비용은 과중하다. 유사한 문제가 로컬 하드 디스크 저장 장치의 업그레이드에 대해서도 존재한다. 시스템을 더이상 업그레이드 할 수 없는 경우에, 시스템을 교체해야 한다. 소프트웨어 애플리케이션과 운영체계의 새로운 버전의 도입은 더이상 기존 데스크탑 시스템과 부합하지 않는 하드웨어 사양의 이용을 요구한다. 즉, 수많은 데스크탑 컴퓨터를 교체해야 하고, 어떤 경우에는 매 3년마다 교체해야 한다.
이러한 시스템의 또 다른 단점은 각 시스템 상의 응용 프로그램과 데이터의 호환성 부족이다. 일부 사용자들은 소프트웨어 애플리케이션의 이전 버전과 역호환되지 않는 최신 버전을 가질 수 있다. 이러한 문제에 대한 해결책은 모든 시스템 상에 일관된 소프트웨어를 유지하는 것이다. 그러나, 각 시스템을 업그레이드하고 소프트웨어와 소프트웨어 업그레이드용의 인가된 사본을 제공하기 위한 비용은 상당히 요구된다. 또한, 소프트웨어 설치 및 소프트웨어 유지는 많은 관리상의 노력을 필요로 한다. 원거리 시스템 관리 능력을 갖고 있는 경우에도, 소프트웨어 자원의 트래킹(tracking)과 카달로깅(cataloguing)이 번거롭다. 게다가, 회사 내에서 인가된 소프트웨어에 더하여 사용자는 그들의 시스템에 엔터테인먼트 소프트웨어, 소프트웨어 최적화 수단 및 심지어 전체 네트워크 작동을 부정적으로 간섭하는 생산 도구를 포함하는 비인가된 소프트웨어를 추가하고 있다. 또한, 사용자가 비인가된 애플리케이션을 설치하여 회사 네트워크상에 컴퓨터 바이러스를 침입시킬 더 큰 위험도 있다.
최근, 인터넷의 등장은 소위 "네트워크 컴퓨터"의 신청 사용을 허용하였다. 네크워크 컴퓨터는 작은 저장 용량, 작은 메모리 및 작은 연산 능력을 가진 퍼스널 컴퓨터의 불필요한 부품을 뺀 버전이다. 이러한 아이디어는 네트워크 컴퓨터가 인터넷을 통해 데이터에 접근하는 것이며, 특별한 작업을 위해 요구되는 응용 프로그램만이 네트워크 컴퓨터에 제공된다. 응용 프로그램을 더이상 사용하지 않을 때에 이 응용 프로그램들은 네트워크 컴퓨터상에 저장되어 있지 않는다. 이러한 시스템은 완전한 데스크탑 시스템으로서의 성능을 충족시키지 못하기 때문에 약간의 비평을 받지만 그래도 감소된 성능을 보완하기에 충분하게 값이 싸다. 네트워크 컴퓨터가 데스크탑 컴퓨터의 일부분(subset)인 경우에도 충분한 성능을 유지하기 위하여 네트워크 컴퓨터의 하드웨어와 소프트웨어에 대한 업그레이드가 여전히 요구된다.
데스크탑 시스템보다 우수한 성능과 경비면에서 큰 유익을 제공하며, 메인프레임 시스템과 같이 관리가 용이하고 하드웨어의 감소된 퇴행성을 포함하는 시스템이 요구된다.
본 발명은 하나 이상의 서버에 의해 제공되고 네트워크를 통해 장치의 터미널에 전달되는 특성과 기능을 가진 컴퓨팅에 대해 하나의 센트럴 오피스 메타포(central office metaphor)를 제공한다. 정보 제공은 "서비스"로 정의되고 하나 이상의 프로세싱 수단에 의해 제공된다. 이러한 서비스는 이서네트(Ethernet) 등의 네트워크를 통해 디스플레이 터미널에 전해진다. 터미널은 데이터를 표시하고 네트워크를 통해 프로세싱 서버에 키보드, 커서, 오디오 및 비디오 데이터를 보내도록 구성된다. 서비스에 의해 데이터베이스, 서버 및 그래픽 사용자 인터페이스 기능이 제공되고 사용자 인터페이스 기능이 터미널에 의해 제공되도록 기능상 분배된다. 다양한 서비스로부터 터미널과의 통신은 서로 다른 출력을 공용 프로토콜로 변환하여 수행된다. 프로토콜을 변환하기 위해 적절한 드라이버가 각 서비스에 대해 제공된다. 복수의 터미널이 네트워크에 연결된다. 사용자들은 터미널들 중의 어느 하나에서 카드 판독기에 "스마트 카드(smart card)"를 삽입하여 그들만의 독특한 세션(session)을 사용할 수 있다. 스마트 카드를 빼내면 세션은 사용할 수 없다. 스마트 카드를 카드 판독기 또는 다른 터미널에 다시 삽입하여 세션을 다시 사용할 수 있다.
도 1은 본 발명에 사용되는 컴퓨터 시스템의 일례에 대한 블록도이다.
도 2는 본 발명에 세션 운영 및 사용 권한에 대한 일례를 나타낸다.
도 3은 본 발명의 가상 데스크탑 환경을 나타낸다.
도 4는 본 발명의 HID의 하나의 구현예에 대한 블록도이다.
도 5는 본 발명의 싱글 칩 HID 구현예를 나타낸다.
본 발명은 가상 데스크탑 시스템 아키텍처를 제공하는 방법 및 장치이다. 다음의 설명에서, 참조부호의 구체적인 설명은 본 발명의 구현예의 설명을 통해 보다 명확하게 제공된다. 하지만, 본 발명이 상세한 설명을 응용하여 실시될 수 있음이 당업자에게 명백하다. 한편, 본 발명을 쉽게 이해할 수 있도록 주지된 특징들은 상세하게 설명하지 않았다.
본 발명은 가상 데스크탑 아키텍처라고 불리우는 새로운 컴퓨터 아키텍처를 제공한다. 이러한 시스템은 종래 기술의 시스템보다 낮은 비용으로 실질적으로 더 높은 수준의 기능성을 제공한다. 본 발명은 중앙 서버 설비와 사용자 하드웨어와의 사이에서 기능성의 재분할을 규정한다. 데이터와 컴퓨터 사용에 관한 기능성은 중앙의 처리 설비를 통하여 데이터 소스에 의해 제공된다. 사용자를 끝으로 사용자로의 출력(예를 들면, 화면과 스피커)을 발생시키고 사용자로부터의 입력(예를 들면, 마우스와 키보드) 또는 사용자가 사용하는 다른 주변기기(예를 들면, 스캐너, 카메라, 탈착식 저장장치 등)를 제외한 모든 기능이 제거된다.
모든 컴퓨팅은 중앙 데이터 소스에 의해 행해지고, 컴퓨터의 조작은 생성되는 데이터의 용도와 무관하게 독립적으로 행해진다. 데이터 소스의 출력은 여기에서 "인간 인터페이스 장치(Human Interface Device)"(HID)로써 언급되는 터미널에 제공된다. 이러한 HID는 데이터를 받고 데이터를 표시할 수 있다.
본 발명의 가상 데스크탑 시스템 아키텍처는 다른 값비싼 분할 시스템과 유사하다. 예를 들면, 공중 전화 회사가 센트럴 오피스에 강력하고 정교한 프로세싱 능력과 대용량 데이터베이스를 보유한다. 하지만, 전화 회사에 의해 새로운 특징 또는 서비스가 추가되는 경우에도 인간 인터페이스 장치인 전화기는 비교적 단순하고 업그레이드를 요구하지 않는다. 전화기 자체는 낮은 비용과 매우 낮은 퇴행성의 장치가 된다. 유사하게 대부분의 컴퓨터 시스템의 디스플레이 모니터는 낮은 퇴행성을 갖고 대부분의 데스크탑 시스템이 업그레이드 될 때에도 일반적으로 계속 사용된다.

가상 데스크탑 시스템 아키텍처
상술한 시스템에서 시스템의 기능은 표시 및 입력 장치와 데이터 소스 또는 서비스와의 사이에서 분할된다. 이러한 표시 및 입력 장치는 인간 인터페이스 장치(HID)이다. 이러한 시스템의 분할은 상태 및 계산 기능을 HID로부터 제거하고 데이터 소스 또는 서비스 상에 상주한다. 본 발명의 하나의 구현예에서, 하나 이상의 서비스는 네트워크 등의 인터커넥션 조직을 통해 하나 이상의 HID와 통신한다. 이러한 시스템의 일례가 도 3에 도시되어 있다. 도 3을 참조하면, 이러한 시스템은 인터커넥션 구조(301)을 통해 HID(302)와 데이터 통신하는 컴퓨터 사용 서비스 제공자(computational service providers; 300)으로 구성된다.
컴퓨터 사용 서비스 제공자(Computational Service Providers)
상술한 HID 시스템에서, 컴퓨터 사용 능력 및 상태 유지는 서비스 제공자 또는 서비스에서 제공된다. 이러한 서비스는 특정 컴퓨터로 한정되지 않고, 도 1을 참조하여 설명한 바와 같이 하나 이상의 전통적인 데스크탑 시스템 또는 전통적인 서버들에 분배된다. 하나의 컴퓨터는 하나 이상의 서비스를 포함하거나 또는 하나의 서비스가 하나 이상의 컴퓨터에 의해 제공된다. 상술한 서비스는 컴퓨터의 사용, 상태 및 데이터를 HID에 제공하고 이러한 서비스는 공용 권한자 또는 관리자에 의해 관리된다. 도 3에서, 서비스는 컴퓨터(310, 311, 312, 313, 314)에 제공된다. 인터넷 또는 월드 와이드 웹 등의 중앙 데이터 소스의 외부로부터 발생한 데이터를 중앙 데이터 소스에 제공할 수 있음에 주목한다. 이러한 데이터 소스는 예를 들어 텔레비전 또는 라디오 신호 등의 데이터를 전파하는 것 등의 방송 엔티티(broadcast entity)일 수 있다.
X11/Unix 서비스, 녹화 또는 생방송 오디오 또는 비디오 서비스, 윈도우 NT 서비스, 자바 프로그램 실행 서비스 등이 서비스의 예들이다. 여기에서, 서비스는 출력 데이터를 제공하고 사용자의 요청과 입력에 대응하는 프로세스(process)이다.
주어진 서비스를 엑세스하는 데 현재 사용되고 있는 HID와의 통신을 다루는 것이 서비스의 역할이다. 이것은 연산 서비스로부터의 출력을 얻고 그것을 HID용의 표준 프로토콜로 변환하는 것을 포함한다. 본 발명의 한 구현예에서 이러한 데이터 프로토콜 변환은 서비스 생산기 내에서 X11 서버, 마이크로소프트 윈도우 인터페이스, 비디오 포맷 트랜스코더, 오픈GL 인터페이스, 또는 여러 가지의 자바 그래픽 클래스(java.awt.graphics class) 등의 미들웨어 계층(middleware layer)을 통해 다루어진다. 서비스 기기는 가상 데스크탑 아키텍처로 오고가는 유선 프로토콜의 해석을 담당한다.
본 발명의 구현예에서, 각 서비스는 그 성능이 최적화된 컴퓨팅 장치에 의해 제공된다. 예를 들면, 회사급 기기는 X11/Unix 서비스를 제공하고 선 미디어센터(Sun MediaCenter)가 비디오 서비스를 제공하며 히드라계(Hydra based) NT 기기가 애플릿 프로그램 실행 서비스를 제공하도록 사용될 수 있다.
서비스 생산 컴퓨터 시스템은 인터커넥션 구조를 통해 HID에 직접적으로 연결된다. 서비스 프로듀서는 3층 구조로 된 데이터베이스 등의 연산 서비스를 제공 하는 다른 기기에 대한 프락시(proxy)가 될 수 있으며, 프락시 컴퓨터는 별 문제없이 사용자 인터페이스 코드를 실행한다.
인터커넥션 구조(Interconnection Fabric)
본 발명에서, 인터커넥션 구조는 서비스와 HID와의 사이에서 데이터를 전달하는 모든 다중 안정 통신 경로이다. 본 발명의 하나의 구현예에서, 인터커넥션 구조는 이서네트 네트워크로써 제공된 근거리 통신망(local area network)이다. 다른 지역 네트워크가 이용될 수도 있다. 또한, 본 발명은 광역통신망(wide area networks), 인터넷, 월드 와이드 웹 등의 사용을 고려할 수도 있다. 인터커넥션 구조는 전선 또는 광섬유 케이블 등의 물리적 매개물로 제공되거나 무선 환경으로 제공될 수 있다.
본 발명의 한 구현예에서, 인터커넥트 구조는 HID 및 접속 서비스와의 사이에서 활동적으로 운영되고 낮은 대기 시간을 포함하며 대역폭이 높은 통신을 제공한다. 본 구현예는 협동(경쟁에 반대된 개념) 네트워크 트래픽을 포함하는 단일 레벨 교환망(switched network)을 고려하고 있다. 전용 또는 공유 통신 인터커넥트가 본 발명에 사용될 수 있다.
인간 인터페이스 장치(Human Interface Devices)
상술한 HID는 서비스로 제공된 컴퓨터 사용 서비스에 사용자가 접근하는 것을 의미한다. 도 3은 HID(321, 322, 323)를 나타낸다. 하나의 HID는 디스플레이(326), 키보드(324), 마우스(325) 및 오디오 스피커(327)로 구성된다. 상술한 HID는 인터커넥션 구조에 상술한 장치를 접속하고 서비스로 데이터를 전송하거나 서비스로부터 데이터를 받을 필요가 있는 전자 장치를 포함한다.
상술한 HID의 블록도가 도 4에 도시되어 있다. 이 HID의 구성 요소들은 PCI 버스 412에 내부적으로 접속된다. 네트워크 컨트롤 블록(402)은 라인(414)을 통해 이서네트 등의 인터커텍트 구조와 통신한다. 오디오 코덱(403)은 인터페이스(416)으로 오디오 데이터를 받으며 블록(402)에 접속되어 있다. USB 데이터 통신은 USB 컨트롤러(401)에 라인(413)으로 공급된다.
내장형(imbeded) 프로세서(404)는 예를 들어 플래시 메모리(405)와 DRAM(406)이 접속되어 있는 스파크(Sparc2ep)이다. 상술한 USB 컨트롤러(401), 네트워크 컨트롤러(402) 및 장착된 프로세서(404)는 모두 PCI 버스(412)에 접속된다. 비디오 컨트롤러(409)도 상술한 PCI(412)에 접속된다. 상술한 비디오 컨트롤러(409)는 라인(415)에 수퍼 비디오 그래픽스 어레이(SVGA) 출력을 제공하는 ATI 레이지프로플러스(RagePro+) 프레임 버퍼 컨트롤러가 될 수 있다. NTSC 데이터는 비디오 디코더(410) 및 비디오 인코더(411)을 각각 통해 비디오 컨트롤러로 제공되거나 비디오 컨트롤러 외부로 제공된다. 스마트카드 인터페이스(408)이 비디오 컨트롤러(409)에 접속될 수도 있다.
한편, 도 5에 도시된 바와 같이 상술한 HID는 단일 칩 솔루션을 사용하여 실행될 수 있다. 단일 칩 솔루션은 CPU(501) 및 그래픽 렌더러(renderer; 505)를 통해 실행되는 필수 처리 능력을 포함한다. 칩 메모리(507)는 비디오 컨트롤러/인터 페이스(506)와 함께 제공된다. 유니버셜 직렬 버스(USB) 컨트롤러(502)가 HID에 부착된 마우스, 키보드 및 다른 국부적 장치와의 통신을 허용하도록 제공된다. 사운드 컨트롤러(503) 및 인터커넥트 인터페이스(504)도 제공된다. 비디오 인터페이스는 CPU(501) 및 그래픽 렌더러(505)와 함께 메모리(507)를 공유한다. 본 구현예에서 사용된 소프트웨어는 비휘발성 메모리에 상주하거나 또는 장치에 전력이 공급되었을 때에 인터커넥션 인터페이스를 통해 로드될 수 있다.
가상 데스크탑 시스템 아키텍처의 작용
세션 핸들링(Session Handling)
가상 데스크탑 시스템 아키텍처에서의 서비스 제공은 여기에 세션으로써 언급된 추상적인 개념을 되풀이한다. 세션은 장차 어떤 면에서 사용자를 위해 존재하는 상술한 장치들의 롱리브드(long-lived)하고 지속적이며 신뢰성 있는 표현이다. 새로운 세션은 새로운 사용자가 시스템 상에서 권한이 주어졌을 때에 생성되고, 사용자의 세션 모두는 사용자가 시스템으로부터 떠났을 때에 제거된다. 세션 개념은 세션 관리자로써 알려진 설비에 의해 유지되며, 그것의 의무는 사용자와 세션 사이의 맵핑에 대한 데이터베이스를 유지하고 각 세션을 형성하는 서비스를 운영하는 것이다. 시스템에 인지되어 있는 각 사용자에 대해 하나 이상의 세션이 있다. 세션 관리자는 세션 구성과 새로운 세션 생성을 허용하는 서비스를 사용자에게 제공한다.
본 발명의 시스템에서, 사용자는 어떤 특별한 HID에 구속되지 않는다. 사용 자는 그 사용자 세션과 연결되고, 그 세션은 그 사용자가 엑세스하는 소정 HID 상에 표시될 수 있다. 인증 관리자로써 알려진 추상화는 사용자의 합법성을 보증하고 그들의 소정 세션과 연결하는 판단 능력을 가질 수 있다. 상술한 HID는 일반적으로 사용중이 아닌 경우에 중단 상태, 대기 상태 또는 오프 모드 상태에 있다. 사용자가 특정 HID를 사용하길 원할 때, 인증 교환이 하나 이상의 스마트카드, 키, 패스워드, 및/또는 바이오메트릭 장치(biometric mechanism)를 구성하는 곳에서 일어난다.
인증 관리자가 사용자를 인가하면, 인증 관리자는 사용자의 현재 세션 관리자를 알리고, 선택된 세션 내의 모든 서비스를 차례로 알리며, 세션의 표시가 사용자의 데스크탑에서 만들어진다. 세션 내에서부터, 사용자는 존재하는 서비스와 상호 작용하고, 새로운 서비스를 시작하며 실행중인 서비스를 중단시킬 수 있다. 사용자가 HID로부터 벗어날 때(예를 들면, 스마트카드를 빼는 경우), 인증 관리자는 이것을 기록하고 세션 관리자에게 알리며, 그것과 관련된 모든 서비스를 차례로 알리고, 그것들의 표시 기능이 정지되며, HID가 비활성 상태로 돌아간다. HID의 활성과 비활성의 효과는 데스크탑 시스템 상의 디스플레이 모니터를 끄는 것과 유사하다. 사용자 데스크탑은 아직 이용가능하고 아마 실행중이지만, 디스플레이가 생성되지는 않는다. 본 발명의 하나의 장점은 사용자 데스크탑이 어떤 접속된 HID에서 접근될 수 있다는 것이다.
도 2는 본 발명에서의 세션 관리와 인증의 일례를 제공한다. 이러한 자료는 1998년 4월 20일에 출원되고 본 발명의 양수인에게 양도되었으며 본 명세서에 제목 등의 일부분이 포함되었고 현재 계류중인 미국 특허 출원 일련 번호 09/063,339호, 제목 "세션 관리과 사용자 인증에 관한 방법 및 장치"에 설명되어 있다. 네트워크 터미널(202)은 인간 인터페이스 장치(HID)이며, 사용자에게 서비스의 출력의 표시하는 일과 사용자로부터 서비스로의 입력을 얻는 일을 포함한다. 네트워크 터미널(202)은 예를 들어 컴퓨터 사용 서비스 제공자에서 실행중인 소프트웨어 프로그램(예를 들면, 서비스(230 - 238), 인증(204) 및 세션 관리자(206))으로부터 받은 명령에 반응하는 능력을 포함한다. 사용자로부터 받은 입력은 예를 들어 사용자 요구를 충족시키는 서비스를 진행시킨다.
서비스는 사용자에 대하여 몇가지 기능을 실행하는 프로그램이다. 하나 이상의 서버가 세션을 포함하는 상술한 서비스를 실행할 수 있다. 예를 들면, 세션(208)에서, 서비스(230)는 서버(210)에서 실행되고, 서비스(232, 234)는 서버(212)에서 실행되며, 서비스(236, 238)은 서버(214)에서 실행된다.
사용자는 로그인(login)함으로써 시스템(예를 들면, 서버, 세션, 서비스 및 네트워크 터미널)에 접근한다. 로그인 동안에 사용자는 인증 관리자(204)에 의해 허가된다. 다양한 기술을 사용하여 사용자가 로그인하도록 허용할 수 있다. 예를 들면, 사용자는 네트워크 터미널(202)에 암호(key)를 눌러 로그인할 수 있다.
본 발명의 하나의 구현예에서, 사용자는 네트워크 터미널(202)에 부착된 카드 판독기(예를 들면, 카드 판독기(216)) 속에 스마트 카드를 삽입하여 시스템에 접근한다. 스마트 카드는 스마트 카드의 자성 스트립 또는 메모리 등에 정보를 저장할 수 있는 카드이다. 스마트 카드는 네트워크 터미널(202)에 전송되는 사용자 증명(예를 들면, 64비트 숫자 등의 사용자 ID)과 비밀 코드(예를 들면, 128비트 임의의 숫자) 등의 사용자 정보를 저장할 수 있다. 비밀 코드는 인증 동안에 사용된다.
네트워크 터미널(202)은 그것의 인터커넥션 네트워크 어드레스와 그 어드레스의 인증 관리자(204)를 인식하거나 얻을 수 있다. 사용자가 로그인하면, 네트워크 터미널(202)은 인증 관리자(204)와 통신을 개시하고 인증을 시작한다. 인증 관리자(204)는 예를 들어 근거리 통신망(LAN) 등의 인터커넥션 네트워크를 통해 네트워크 터미널(202)에 접속된 컴퓨터 사용 서비스 제공자에서 활성(예를 들어, 실행하는) 프로그램이다. 한편, 네트워크 터미널(202)이 예를 들어 파이버 채널 루프 또는 포인트 대 포인트 케이블 등의 다른 인터커넥션 네트워크 기술에 의해 인증 관리자(204)에 접속될 수 있다는 것은 명백하다. 네트워크 터미널(202)은 사용자 인증(사용자 ID)을 포함하는 인증 관리자(204)에 개시 요청을 보낸다.
본 발명의 하나의 구현예에서, 인증 관리자(204)는 사용자를 확인하여 인증함으로써 개시 요청에 응답한다. 인증은 확인하는 시스템에 대한 사용자의 확인을 증명하는 소정의 메커니즘을 포함할 수 있다. 사용자에게만 알려진 키 또는 패스워드, 또는 바이오메트릭 정보가 그 사용자를 인증하는 데 사용될 수 있다.
본 발명의 구현예에서, 인증은 네트워크 터미널(202)에서 사용자에 의해 입력된 개인 증명 번호(personal identification number; PIN)를 확인함으로써 실행된다. 인증 관리자(204)는 네트워크 터미널(202)에서 사용자의 PIN의 입력을 개시하도록 명령(예를 들면, 챌린지 명령)을 보낸다. 사용자의 입력은 네트워크 단말기(202)에 의해 패키지되어 인증 관리자(204)에 전송된다(예를 들면, 챌린지 응답).
인증 관리자(204)는 인증 데이터베이스(218)에 저장유지되는 사용자 정보와, 사용자에 의해 공급된 정보 및 인증 동안에 생성된 정보로 상술한 챌린지 응답을 확인한다. 사용자가 인증되어 있는 경우, 그 사용자는 세션(예를 들면, 세션(208))에 접근할 수 있다. 세션은 사용자를 위해 실행되는 하나 이상의 서비스의 관련 세트에 대한 지속적인 표현이다.
사용자로부터 예상된 결과가 받아지면, 인증 관리자(204)는 (커넥트 관리자를 통해) 네트워크 터미널(202)상에 사용자가 시스템에 로그한 세션 관리자(206)를 알려준다. 인증 데이터베이스(218)에 포함된 세션 정보는 서버, 포트 및 세션 관리자(206)용의 세션 식별자(ID)를 확인하는 데 사용된다. 세션 관리자(206)는 예를 들어 컴퓨터 사용 서비스 제공자 상에서 작동하는 프로그램이고, 인터커넥션 네트워크를 통해 인증 관리자(204) 및 네트워크 터미널(202)에 접속되는 프로그램이다. 인증 관리자(204)는 세션 관리자(206)의 서버 및 인증 데이터베이스(218)에 포함된 포트 정보를 이용하여 메시지를 세션 관리자(206)로 보낸다.
인증 관리자(204)로부터의 접속 메시지에 대응하여, 세션 관리자(206)은 네트워크 터미널(202)에 연결되어 있는 사용자의 현재 세션 내의 서비스(예를 들면, 세션(208) 내의 서비스)를 알린다. 즉, 세션 관리자(206)은 네트워크 터미널(202)에 직접 출력하도록 서비스(230 - 238)에 대한 접속 메시지를 보낸다. 세션 관리자(206)는 세션에 대해 요구된 서비스라고 생각되는 서비스가 실행되는 것을 보증한다. 그렇지 않으면, 세션 관리자(206)는 그것들이 초기화되도록 한다. 사용자는 세션(예를 들면, 세션(208)) 내에서 서비스(230 - 238)와 상호 작용할 수 있다. 네트워크 터미널(202)은 근거리 통신망 등의 인터커넥션 네트워크 또는 다른 인터커넥션 기술을 통해 서버(210, 212, 214) (및 서비스 230 - 238)에 접속된다. 사용자는 새로운 서비스를 개시하거나 또는 현재의 서비스를 종료시킬 수도 있다.
사용자는 카드 판독기(216)에서 카드를 제거함으로써 시스템에서 분리될 수 있다. 접속해제(disconnect)를 나타내는 다른 메커니즘이 본 발명에 사용될 수도 있다(예를 들면, 네트워크 터미널(202) 상의 "종료" 버튼). 서비스(230 - 238)는 사용자가 카드 판독기(216)에서 카드를 제거한 후에도 실행되도록 계속된다. 즉, 사용자의 연결 세션(들) 및 세션을 포함하는 서비스가 사용자가 시스템에서 떨어져 있는(예를 들면, 로그 오프되어 있는) 시간 동안에 지속적으로 존재할 수 있다. 사용자가 카드 판독기(216)에서 카드를 제거하면, 네트워크 터미널(202)은 (예를 들어, 디스커넥트 관리자를 통해) 세션 관리자(206)에게 알리는 인증 관리자(204)에게 그것을 알린다. 세션 관리자(206)는 네트워크 터미널(202)에 대해 표시 명령의 전송을 종료한 서비스(230 - 238)를 (예를 들어, 디스커넥트 관리자를 통해) 알린다. 한편, 서비스(230 - 238)은 사용자가 네트워크 터미널을 통해 컴퓨터를 사용하지 않은 시간 동안에도 계속 실행된다. 사용자는 네트워크 터미널(202) 등의 네트워크 터미널을 이용하여 다시 컴퓨터를 사용하고, 세션(208)에 접속하며 서비스(230 - 238)과 상호 작용할 수 있다.
유선 프로토콜
본 발명은 표준 프로토콜 또는 본 명세서에 언급된 "유선 프로토콜"로 출력되는 서비스를 변환하여 어느 정도 서비스들로 컴퓨터 사용 기능성을 분할할 수 있다. 상술한 유선 프로토콜의 한 구현예에 대한 일례가 부록 A로서 본 명세서에 첨부되어 있다. 상술한 유선 프로토콜은 비디오 데이터 및 오디오 데이터를 취급하기 위한 명령을 제공한다. 이러한 시스템은 대역폭 사용을 운영하기 위한 메커니즘도 제공한다.
비디오 데이터
유선 프로토콜은 사용자를 위해 실행될 수 있는 모든 서비스의 디스플레이 조작을 지지하도록 만들어진 렌더링 명령들을 포함한다. 이것은 모든 디스플레이 조작을 다수의 2D/직사각형 조작(예를 들면, 필(fill), 복사, 굴립(glyph), 스티플(stipple))으로 정규화함으로써 달성된다. 이미지 또는 비디오 데이터의 전송을 위해, 픽셀 어레이 전송 조작이 제공되고, 다른 포맷의 작은 세트를 허용하며, 압축 포맷을 포함한다. 또한, 상술한 유선 프로토콜은 입력 장치(예를 들면, 키보드, 마우스) 취급, 오디오 입력/출력, 및 사용자 커넥트, 디스커넥트 및 인증에 대한 서포트를 포함한다.
본 발명의 시스템 아키텍처는 시스템의 서비스에 대해 렌더링을 제공하는 모든 API가 본 발명의 유선 프로토콜을 출력하는 것을 요구한다. 이것은 본 발명의 한 구현예에서 소프트웨어 "가상 프레임 버퍼"를 이용하는 렌더링 API를 포함하고 정해진 높은 레벨의 API에서의 명령을 유선 프로토콜의 명령으로 렌더링함으로써 달성된다. 예를 들면, 스팬(Spans) 인터페이스에서 명령을 제거하도록 X서버가 수정되고, 마이크로소프트 윈도우즈의 GDI 인터페이스가 낮은 레벨 렌더링 명령에 대한 접근을 쉽게 얻을 수 있으며, MPEG 비디오 디코더가 색채공간을 비디오 데이터로 변환하고 축적하는 포인트에 앞서 분할될 수 있다. 유사하게, 자바 그래픽 클래스는 애플리케이션 및 애플릿을 허용하도록 서브클래스가 되어 유선 프로토콜을 방출할 수 있다( 그것에 의해 X 또는 윈도우즈가 전체적으로 렌더링하는 것을 우회할 수 있다).
또한, 2D 렌더링과 장치 입력을 위한 서포트를 제공함으로써, 가상 데스크탑 프로토콜이 멀티미디어 데이터 유형을 위한 서포트도 제공된다. 현재 존재하는 다른 오디오/비디오 포맷의 넓은 범위를 처리하기 위해, 2D 디스플레이 명령 세트에 대해 얻어진 것과 유사한 접근법이 취해진다. 즉, 서비스 프로듀서에서 모두 렌더링하고 낮은 레벨 포맷으로의 출력을 정규화된다. 다른 미디어 포맷을 모든 HID에 의해 이해되는 표준화된 형태로 변환함으로써, 많은 다른 포맷에 대한( 또는 일련의 특정 하드웨어 업그레이드 또는 소프트웨어 플러그인에 의한) 비용이 절감된다. 비디오 및 이미징 데이터가 적어도 공통 기준 즉, 비율 변경되지 않음(unscaled), 색채 공간 변환되지 않음(un-color-space-converted), 채도-서브샘플 픽셀(chroma-subsampled pixels)(예를 들면, YUV422)에서 정규화된다. 이러한 포맷은 모든 코딩 체계의 대부분을 공동 사용하고 그 자체가 프락시 기기(디코딩 파이프라인을 짧게 자르고 미가공 픽셀 데이터를 방출하는 기기)에 의해 트랜스코딩된다. 또한, 단순 한 형태의 마일드(mild) 압축(소프트웨어로 쉽게 부호화하고 해독가능한 압축)에 대한 선택적 사용은 이미지 품질을 거의 떨어뜨리지 않으면서 압축된 추가적인 요인을 제공한다. 미가공, NTSC 비디오는 RGB 포맷에서 전송될 때에 240 Mbps의 연속 데이터를 표시한다. 채도-서브 샘플 YUV 데이터는 160Mbps이고, 마일드 압축 기술은 풀 사이즈 및 비율의 NTSC 윈도우( 또는 4개의 SIF 크기의 윈도우즈 등)가 약 30Mbps로 전송되도록 허용한다. 이러한 동일한 비디오 전송 포맷은 데스크탑 장치에서도 비디오 데이터를 쉽게 보낼 수 있다. 이러한 비디오 프로토콜은 1998년 4월 20일에 출원되고 본 발명의 양수인에게 양도되었으며 본 명세서에 명칭 등의 일부분이 포함되었고, 현재 계류중인 미국 특허 출원 일련 번호 09/063,492호, 제목 "네트워크 환경에서 비디오 프로토콜을 지지하는 방법 및 장치(Method and Apparatus of Supporting a Video Protocol in a Network Environment"에 설명되어 있다.
오디오 데이터
오디오 데이터는 가상 데스크탑 프로토콜의 일부분으로써 정의된 오디오 명령의 세트에 의해 데스크탑으로 또는 데스크탑으로부터 전달된다. 데스크탑 장치에서의 오디오 수신기는 "범용 수신기(universal receiver)" 어프로치 - 모든 샘플 비율 데이터의 모든 스트림으로 간주될 수 있는 것이 HID로 보내질 수 있고 이를 혼합하여 스트림을 적절하게 출력한다. 예를 들면, DAT-품질 스트레오 오디오 스트림은 48㎑에서 샘플 포맷당 16비트로 보내질 수 있고, 데이터 속도는 약 1.5Mbps이 다. 상술한 스트림 중 일부와 다른 데이터 속도에서의 복수개의 다른 오디오 스트림, 다른 데이터 속도로 효과적으로 시간을 변경하고 모든 스트림을 혼합하며 시스템 오디오 출력 스트림을 생성하는 HID에 보내질 수 있다.
상술한 유선 프로토콜의 오디오 프로토콜 부분은 서비스 사용에 대한 표준 프로토콜을 제공한다. 본 발명의 구현예에서, 리시버와 결합된 오디오 프로세싱 및 하드웨어 요건은 네트워크와 상술한 리시버상의 트랜스미터들 사이로 오디오 데이터 전송을 위한 단일 오디오 프로토콜을 지정함으로써 최소화된다. 상술한 프로토콜은 고품질 사운드를 허용하고 리시버의 복잡성을 최소화하는 샘플링 비율, 비트 분석 및 퀀티제이션 스켐(quantization scheme)을 지정한다. 트랜스미터들은 필요에 따라 오디오 데이터를 지정된 프로토콜로 변환하기 위한 드라이버들을 구비한다.
지정된 프로토콜의 형태는 네트워크 상에서 오디오 스트림을 전송하는데 따른 문제점을 보완하도록 제공된다. 지정 프로토콜은 데이터 패킷 내에서 오디오 샘플들을 번갈아 포개어 패킷 손실에 의해 오디오 데이터 샘플을 연속적으로 놓쳐버리는 에러를 최소화하기 위한 포맷을 지정한다. 리시버는 오디오 데이터 샘플을 놓친 것에 대하여 허위 샘플의 삽입(interpolation)을 통해 보정할 수 있다. 지정 프로토콜에 따르면, 일련의 크기는 오디오 데이터가 어떻게 처리되는지를 결정하기 위해 지정된다. 트랜스미터들은 각 오디오 애플리케이션에 대한 소정 한계 내에서 오디오 대기 시간을 적절하게 유지되도록 상술한 일련의 크기를 조정한다. 또한, 지정 프로토콜은 복수 채널을 포함한 오디오 데이터가 복수의 오디오 출력 장치들 사이에서 어떻게 혼합되고 보내는지를 지정하는 혼합 모드 및 복수의 채널에 대한 결정을 규정한다. 상술한 오디오 프로토콜은 1998년에 출원되고 본 발명의 양수인에게 양도되었으며 본 명세서에 제목 등의 일부분이 포함되었고, 현재 계류중인 미국 특허출원 일련 번호 09/063,341호, 제목 "네트워크 환경에서 오디오 프로토콜을 지지하는 방법 및 장치"에 설명되어 있다.
밴드폭 운영(Bandwidth Management)
가상 데스트탑 프로토콜 트래픽은 실제로 버스티(bursty)된다. 서비스 프로듀서로써 기능하지 않은 긴 시간이 매우 높은 대역폭 버스트(burst)에 의해 이어진다. 예를 들면, 트래픽이 사용자 리드 데이터로써 발생되지 않고, 그 다음에 추가적인 데이터가 요청되자마자 풀 스크린 업데이트가 실행된다. 긴 기간의 평균 데이터 속도가 무시되는 동안에 최대 데이터-속도 버스트가 관찰된다. 버스트는 잘 정의된 한계(즉, 모든 픽셀을 변경하기 위한 ~2Gbps, 각 프레임 시간)를 포함하고 상술한 한계하에서 통상 유지한다(즉, 통상 스크린의 픽셀의 일부 서브셋을 변경한 후, 다음 변경 전의 시간 주기 동안에 변함없이 상태를 유지한다). 또한, 버스트는 임의로 분배되고(즉, 사용자가 독립적으로 조작하기 쉽게 분배되고), 통계적 다중 통신으로부터 나오는 이득의 장점을 취하는데 공헌한다. 한편, 이것은 순간적인 과부하를 취급하는 수단이 시스템 자원에 대한 요구가 그 공급량을 초과하는 경우를 다루도록 제공될 것을 요구한다. 상술한 목적을 위해, 속도 제어 메커니즘이 인터커넥션 구조의 운영에 채용된다. 이것은 프로듀서가 링크 또는 사용할 수 있는 인간 인터페이스 장치보다 더 많은 데이터를 발생시키지 않는 것을 보장하도록 실시된다. 이러한 과업은 정해진 인터커넥트 링크와 정해진 HID에 전달되게 하는 복합 소스가 있기 때문에 어렵게 만들어진다. 이것은 소정 형태의 분배 조정( 또는 협조)이 시스템이 동작하는 것을 보장하도록 제공되어야함을 의미한다. 이러한 문제를 해결하기 위한 효과적인 접근법은 인터커넥트 자원 뿐만 아니라 데스크탑 자원을 운영하는 정체 회피 및 속도 제어 기술을 사용하는 것이다. 현재의 FTP 수단에서의 기술들과 호환되는 기술을 사용하는 것은 가상 데스크탑 프로토콜 트래픽이 표준 인터넷 트래픽과 잘 공존하도록 허용한다.
매체에 데이터를 전송하는 복합 데이터 소스의 누적 데이터 비율이 매체의 대역폭을 초과하면, 매체는 원하는 데이터 비율로 모든 데이터를 전송할 수 없게 된다. 매체의 대역폭 한계 내에서 데이터 전송을 유지하기 위해, 일부 데이터는 지연되거나 조금도 보내지지 않아야 된다. 그러나, 복잡한 소스가 변경된 시간에 데이터 분량이 변경하여 전송되면, 데이터를 지연시키거나 드롭시키는 선택이 매우 복잡하게 된다. 지연되거나 드롭되어야 하는 데이터의 선택을 잘못하는 경우에 시스템 성능면에서 서비스 감소를 유발시킬 수 있다. 그러므로, 한정된 대역폭을 가진 매체상의 복잡한 소스로부터 데이터 통신을 운영하기 위한 기술이 요구된다. 여기에서 복잡한 소스에 대해 필요한 누적 대역폭은 매체의 대역폭을 초과할 수 있다.
본 발명의 한 구현예에서, 복수개의 데이터 소스는 통신 매체를 통해 데이터 리시버와 결합된다. 데이터 소스는 모든 정보 소스가 될 수 있고, 상술한 정보는 모든 종류 또는 다중 형태의 것이 될 수 있다. 예를 들면, 정보는 컴퓨터 프로그램 코드, 텍스트, 오디오 데이터, 비디오 데이터, 그래픽 데이터, 상태 또는 이벤트에 대한 데이터 표본, 디지털 정보, 아날로그 정보, 또는 다른 형태의 다른 정보가 될 수 있다. 데이터 소스의 예로는 컴퓨터 장치, 오디오 장치, 비디오 장치, 사용자 입력 장치, 정보 저장 장치, 네트워크 장치, 센서, 식별 장치, 또는 다른 정보의 소스를 포함한다.
정보가 데이터 소스로부터 데이터 리시버로 보내지게 되면, 데이터 소스는 허용가능한 데이터 속도로 정보를 전송하는데 요구되는 밴드폭의 분량을 예정한다. 데이터 소스는 데이터 리시버로 그것의 밴드폭 요구에 대한 견적을 보낸다. 복수의 데이터 소스가 갖추어진 환경에서, 데이터 리시버는 복수의 데이터 소스에서의 대역폭 요구에 대한 견적들을 수신한다. 데이터 리시버는 복수의 데이터 소스의 대역폭 요구에 대한 견적을 더해 복수의 데이터 소스에 의해 요청되는 누적 데이터 비율을 얻는다. 데이터 리시버는 정보가 통과하기 위한 것인 통신 매체의 대역폭에 대해 요구된 누적 데이터 비율을 비교한다. 요구된 누적 데이터 비율이 매체의 대역폭보다 작은 경우에도, 데이터 리시버는 모든 복수의 데이터 소스의 데이터 비율을 한정하지 않는다. 데이터 리시버는 데이터 소스에 의해 요구된 모든 대역폭 분량을 각 데이터 소스에 할당한다.
한편, 요구된 누적 데이터 비율이 통신 매체의 대역폭을 초과하면, 데이터 리시버는 각 데이터 소스에 의해 요구된 대역폭의 양을 비교한다. 비교적 적은 양의 대역폭을 요청한 데이터 소스에 대하여, 데이터 리시버는 요구된 대역폭 모두를 할당한다. 그리고, 비교적 많은 양의 대역폭을 요청한 데이터 소스에 대하여, 데이터 리시버는 요구된 대역폭의 일부만을 할당한다. 데이터 리시버는 대역폭 감소에 의해 영향을 받는 데이터 소스의 갯수와 영향받는 각 데이터 소스에 대한 대역폭 감소의 범위를 결정하여 요청된 대역폭을 약간 감소시킨 것에 대한 이점과 요청된 대역폭을 전혀 감소시키지 않은 것에 대한 이점을 균형있게 유지시킨다.
본 발명의 한 구현예에서, 데이터 소스는 데이터 리시버에 보내지는 모니터링 명령에 의해 쉽게 요청되는 대역폭의 견적을 생성한다. 예를 들면, X 윈도우 서버 모니터 명령을 포함하는 데이터 소스는 X 윈도우 클라이언트 프로그램을 보낸다. 이러한 명령을 모니터링함으로써, X 윈도우 서버는 전송되는 비트수 및 픽셀수와 상술한 전송이 일어나는 동안의 이상적인 시간 주기를 결정할 수 있다. 상술한 이상적인 시간 주기로 비트수를 분할함으로써, X 윈도우 서버가 명령에 의해 생성된 데이터에 대하여 초당 비트로 표현되는 이상적인 데이터 속도를 얻을 수 있다. 더욱이, 상술한 이상적인 시간 주기로 픽셀수를 분할함으로써, X 윈도우 서버가 상술한 명령에 의해 생성된 데이터에 대하여 초당 픽셀로 표현되는 이상적인 데이터 속도를 얻을 수 있다. 이러한 이상적인 데이터 속도는 대역폭 요구에 대한 초기 판단으로써 사용될 수 있다.
이러한 모니터링과 견적 처리를 계속하면, 데이터 속도에 관한 기록적인 정보가 데이터 속도에 대해 나타내는 통계적 파라미터를 생성하는데 사용될 수 있다. 예를 들면, 평균 데이터 속도 또는 하나의 기본 편차를 더하여 평균 데이터 속도와 동일한 데이터 속도가 정확하게 예측될 수 있고 장래의 대역폭 할당을 결정하는데 사용될 수 있다.
상술한 데이터 소스는, 데이터를 전송하지 않는 주기 동안에, 또는 충분한 컴퓨팅 자원이 데이터 소스에 존재하는 경우, 데이터 소스가 데이터를 전송하고 있는 주기 동안에, 상술한 모니터링, 분석, 및 데이터 속도 파라미터들의 평가를 실시할 수 있다. 예를 들면, 데이터 소스가 데이터를 전송하는데 있어서 할당된 대역폭의 감소가 속도를 늦추는 경우에, 데이터 소스는 데이터를 전송하기 위해 기다리는 동안에 모니터링, 분석, 및 데이터 속도 파라미터의 평가를 실행하도록 시간을 사용할 수 있다. 본 발명의 밴드폭 운영 및 충돌 방지 방법은 1998년 4월 20에 출원되고 본 발명의 양수인에게 양도되었으며 본 명세서에 제목 등의 일부분이 포함되었고, 현재 계류중인 미국특허출원 일련번호 09/063,491호, 제목 "한정된 대역폭을 가진 미디어상의 통신 운영에 대한 방법 및 장치(Method and Apparatus for Management of Communications over Media of Finite Bandwidth)"에 설명되어 있다.
컴퓨터 실행 환경에 대한 구현예(하드웨어)
본 발명의 구현예는 도 1에 도시된 컴퓨터(100) 등의 일반용 컴퓨터에서 실행되는 컴퓨터 판독가능 코드의 형태로, 또는 상술한 컴퓨터에서 실행되는 자바 런타임 환경 내에서 실행가능한 바이트코드 클래스 화일의 형태로 컴퓨터 소프트웨어로써 실행될 수 있다. 키보드(110) 및 마우스(111)는 양방향 시스템 버스(118)에 접속된다. 키보드와 마우스는 컴퓨터 시스템에 사용자 입력을 소개하고 프로세서(113)에 사용자 입력을 통신하기 위한 것이다. 다른 적당한 입력 장치가 마우스(111) 및 키보드(110)에 더하여 또는 대신에 사용될 수 있다. 양방향 시스템 버스(118)에 접속된 I/O(입력/출력) 유닛(119)은 프린터, A/V(오디오/비디오) I/O 등과 같은 I/O 엘리먼트를 나타낸다.
컴퓨터(100)는 키보드(110), 마우스(111) 및 프로세서(113)와 함께 양방향 시스템 버스(118)에 모두 접속된 비디오 메모리(114), 메인 메모리(115), 및 대용량 저장장치(112)를 포함한다. 대용량 저장장치(112)는 마그네틱, 옵티컬 또는 마그네틱 옵티컬 저장 시스템 또는 다른 유용한 대용량 저장 기술 등의 고정형 매체와 이동형 매체를 모두 포함할 수 있다. 버스(118)는 예를 들어 비디오 메모리(114) 또는 메인 메모리(115)를 어드레싱하기 위한 32개의 어드레스 라인을 포함할 수 있다. 이러한 시스템 버스(118)는 예를 들어 프로세서(113), 메인 메모리(115), 비디오 메모리(114) 및 대용량 저장장치(112) 등의 구성 요소들 사이에서 데이터를 전달하기 위한 32비트 데이터 버스도 포함한다. 한편, 복수의 데이터/어드레스 라인들이 개별 데이터와 어드레스 라인들 대신에 사용될 수도 있다.
본 발명의 한 구현예에서, 프로세서(113)는 모토롤라에 의해 제조된 680X0 프로세서 등의 마이크로프로세서, 인텔에 의해 제조된 80X86 또는 펜티엄 프로세서 등의 마이크로프로세서, 또는 선 마이크로시스템즈사의 스파크 마이크로프로세서이다. 하지만, 다른 적당한 마이크로프로세서 또는 마이크로컴퓨터가 사용될 수 있다. 메인 메모리(115)는 다이내믹 램(DRAM)을 포함한다. 비디오 메모리(114)는 듀얼 포트형 비디오 램이다. 상술한 비디오 메모리(114)의 한 포트는 비디오 증폭기(116)에 접속된다. 비디오 증폭기(116)는 음극선관(CRT) 래스터 모니터(117)를 구동하는데 사용된다. 한편, 비디오 메모리는 평면 또는 액정 표시장치(LCD), 또는 다른 적당한 데이터 표시 장치를 구동하는데 사용될 수 있다. 비디오 증폭기(116)는 종래 기술에 잘 알려져 있고 다른 적당한 장치에 의해 실행될 수 있다. 이러한 회로는 비디오 메모리(114) 내에 저장된 픽셀 데이터를 모니터(117)에 사용되기에 적당한 래스터 신호로 변환한다. 모니터(117)는 그래픽 이미지를 표시하기에 적당한 모니터의 일종이다.
컴퓨터(100)는 버스(118)에 접속된 통신 인터페이스(120)를 포함할 수도 있다. 통신 인터페이스(120)는 네트워크 링크(121)를 통해 지역 네트워크(122)에 접속하는 투웨이 데이터 통신을 제공한다. 예를 들면, 통신 인터페이스(120)가 종합 정보 통신망(ISDN) 카드 또는 모뎀이면, 통신 인터페이스(120)는 네트워크 링크(121)의 일부분을 포함하는 전화선의 대응 형태로 데이터 통신 접속을 제공한다. 통신 인터페이스(120)가 근거리 통신망(LAN) 카드이면, 통신 인터페이스(120)는 네트워크 링크(121)를 통해 호환가능한 LAN에 데이터 통신 접속을 제공한다. 무선 링크, 모뎀 또는 케이블 모뎀 링크들도 가능하다. 상술한 장치에서 통신 인터페이스(120)는 다양한 형태의 정보를 나타내는 디지털 데이터 스트림을 운반하는 전기적, 전자기적 또는 광학적 신호들을 보내고 받는다.
일반적으로 네트워크 링크(121)는 하나 이상의 네트워크를 통해 다른 데이터 장치에 데이터 통신을 제공한다. 예를 들면, 네트워크 링크(121)는 지역 네트워크(122)를 통해 지역 서버 컴퓨터(123)에 또는 인터넷 서비스 제공자(ISP; 124)에 의해 동작되는 데이터 장치에 접속을 제공할 수 있다. ISP(124)는 현재 "인터넷"(125)으로써 일반적으로 불리우는 월드 와이드 패킷 데이터 통신 네트워크를 통해 차례로 데이터 통신 서비스를 제공한다. 지역 네트워크(122) 및 인터넷(125) 모두는 디지털 데이터 스트림을 운반하는 전기적, 전자기적 또는 광학적 신호들을 사용한다. 디지털 데이터를 컴퓨터(100)로 또는 컴퓨터(100)로부터 운반하며 다양한 네트워크들을 지나가고 네트워크 링크(121) 및 통신 인터페이스(120)을 지나가는 신호는 정보를 전송하는 반송파(carrier waves)의 전형적인 형태이다.
컴퓨터(100)는 네트워크(들), 네트워크 링크(121) 및 통신 인터페이스(120)를 통해 프로그램 코드를 포함하는 메시지와 서비스 데이터를 보낼 수 있다. 인터넷의 예에서, 원거리 서버 컴퓨터(126)은 인터넷(125), ISP(124), 지역 네트워크(122) 및 통신 인터페이스(120)을 통해 응용 프로그램용의 요구된 코드를 전송할 수 있다.
수신된 코드는 그것이 수신되었을 때에 프로세서(113)에 의해 실행되고, 및/또는 나중에 실행하기 위해 대용량 저장장치(112) 또는 다른 비휘발성 저장장치 내에 저장된다. 이러한 방법에서, 컴퓨터(100)은 반송파의 형태로 애플리케이션 코드를 얻는다.
애플리케이션 코드는 컴퓨터 프로그램 제품의 형태로 구체화될 수 있다. 컴퓨터 프로그램 제품은 저장 또는 전송 컴퓨터 판독가능 코드로 구성되거나 또는 컴퓨터 판독가능 코드가 기록되어 있는 매체를 포함한다. 컴퓨터 프로그램 제품의 몇가지 예로써는 CD-ROM 디스크, ROM 카드, 플로피 디스크, 자기 테이프, 컴퓨터 하 드 드라이브, 네트워크상의 서버, 및 반송파가 있다.
상술한 컴퓨터 시스템은 예로써만 제공되었다. 본 발명의 구현예는 소정 형태의 컴퓨터 시스템, 프로그래밍 환경, 또는 프로세싱 환경에서 실시될 수 있다.
데스크탑 장치의 기능을 충분히 한정하고, 지정하며, 조정된 작동 상태(behaviors)로 감소시킴으로써, 다른 실행의 범위가 가능해진다. 예를 들면, HID는 하드웨어(예를 들면, 보드 또는 칩과 같은 하드웨어)에서 간단히 실행될 수 있고, 그것은 작은 데스크탑 시스템(예를 들면, 네트워크 컴퓨터, 개인용 컴퓨터, 구식 데스크탑 시스템)을 제어하는 소프트웨어로써 실행될 수 있으며, 또한, 그것은 종래의 워크스테이션 컴퓨터 시스템상에서 실행되는 애플리케이션으로써 실행될 수 있다.
이와 같이, 가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및 장치를 설명하였다.
Figure 112000022107387-pct00013
Figure 112000022107387-pct00014
Figure 112000022107387-pct00015
Figure 112000022107387-pct00016
Figure 112000022107387-pct00017
Figure 112000022107387-pct00018
Figure 112000022107387-pct00019
Figure 112000022107387-pct00020
Figure 112000022107387-pct00021
Figure 112000022107387-pct00022
Figure 112000022107387-pct00023
Figure 112000022107387-pct00024
Figure 112000022107387-pct00025
Figure 112000022107387-pct00026

Claims (48)

  1. 인터커넥트 구조(interconnect fabric)를 통해 데이터를 제공하는 데이터 소스;
    상기 데이터를 받고 렌더링하기 위해 상기 인터커넥트 구조에 접속된 비상태형(stateless) 인간 인터페이스 장치를 포함하고,
    상기 데이터 소스는 상기 사용자가 상기 비상태형 인간 인터페이스 장치로부터 접속해제 또는 접속되었을 때 사용자와 관련된 고성능 세션을 유지하도록 설정되고,
    상기 고성능 세션은 상기 사용자가 접속 해제되었을 때 유지되는 상기 고성능 세션에 대한 하나 이상의 실행 서비스의 지속적인 표시로 구성되는 컴퓨팅 시스템 아키텍처(computing system architecture).
  2. 제 1항에 있어서, 상기 비상태형 인간 인터페이스 장치가 식별자(identifier)를 이용하는 사용자에 의해 접근됨을 특징으로 하는 컴퓨팅 시스템 아키텍처.
  3. 제 2항에 있어서, 상기 식별자가 스마트 카드를 포함함을 특징으로 하는 컴퓨팅 시스템 아키텍처.
  4. 제 2항에 있어서, 상기 식별자가 생체 인식 식별자(biometric identifier)를 포함함을 특징으로 하는 컴퓨터 시스템 아키텍처.
  5. 제 2항에 있어서, 상기 사용자는 상기 사용자가 상기 비상태형 인간 인터페이스 장치에 접근할 때에 상기 사용자의 컴퓨팅 세션(computing session)에 접근함을 특징으로 하는 컴퓨터 시스템 아키텍처.
  6. 제 5항에 있어서, 상기 아키텍처가 상기 데이터 소스에 상기 인터커넥트 구조를 통해 접속된 복수개의 비상태형 인간 인터페이스 장치를 더 포함함을 특징으로 하는 컴퓨터 시스템 아키텍처.
  7. 제 6항에 있어서, 상기 사용자가 상기 식별자를 이용하여 상기 복수개의 비상태형 인간 인터페이스 장치 중의 한 장치에서 상기 세션에 접근할 수 있음을 특징을 하는 컴퓨터 시스템 아키텍처.
  8. 제 1항에 있어서, 상기 데이터 소스가 복수개의 데이터 서비스를 포함함을 특징으로 하는 컴퓨터 시스템 아키텍처.
  9. 제 8항에 있어서, 상기 복수개의 데이터 서비스의 출력은 상기 인터커넥트 구조를 통한 상기 비상태형 인간 인터페이스 장치로의 전송을 위해 공용 프로토콜로 변환됨을 특징으로 하는 컴퓨터 시스템 아키텍처.
  10. 복수개의 사용자 세션들에 대해 컴퓨터의 사용(computation) 및 데이터 발생을 제공하는 중앙 프로세싱 소스(centralized processing source);
    상기 중앙 프로세싱 소스에 인터커넥트 구조(interconnect fabric)를 통해 접속되고, 상기 중앙 프로세싱 소스로부터 데이터를 받고 상기 복수개의 사용자 세션들중 하나에 들어온 사용자에게 출력을 각각 표시하며, 상기 인터커넥트 구조를 통해 상기 중앙 프로세싱 소스에 사용자 입력을 각각 제공하는 복수개의 비상태형 인간 인터페이스 장치들; 및
    상기 사용자와 관련된 세션이 상기 인터커넥트 구조를 통해 상기 비상태형 인간 인터페이스 장치들중 하나에 유도되도록 상기 사용자를 식별하는, 상기 비상태형 인간 인터페이스 장치들중 하나에서 상기 사용자에 의해 사용된 식별자;를 포함하고,
    상기 중앙 프로세싱 소스는 상기 사용자가 상기 비상태형 인간 인터페이스 장치들 중 하나로부터 접속해제 또는 접속되었을 때 상기 사용자와 관련된 고성능 세션을 유지하도록 설정되고,
    상기 고성능 세션은 상기 사용자가 접속 해제되었을 때 유지되는 상기 고성능 세션에 대한 하나 이상의 실행 서비스의 지속적인 표시로 구성되는 컴퓨터 사용 시스템(computing system).
  11. 제 10항에 있어서, 상기 사용자 세션의 상태가 상기 중앙 컴퓨팅 리소스(centralized computing resource)에서 유지됨을 특징으로 하는 컴퓨터 사용 시스템.
  12. 제 11항에 있어서, 상기 사용자 입력은 키보드를 치는 것을 포함함을 특징으로 하는 컴퓨터 사용 시스템.
  13. 제 11항에 있어서, 상기 사용자 입력은 커서를 이동하는 것을 포함함을 특징으로 하는 컴퓨터 사용 시스템.
  14. 제 11항에 있어서, 상기 사용자 입력이 오디오를 포함함을 특징으로 하는 컴퓨터 사용 시스템.
  15. 제 11항에 있어서, 상기 사용자 입력이 비디오를 포함함을 특징으로 하는 컴퓨터 사용 시스템.
  16. 제 11항에 있어서, 상기 사용자는 물리적 식별자를 이용하여 상기 복수개의 비상태형 인간 인터페이스 장치들중 한 장치에서 상기 세션에 접근할 수 있음을 특징으로 하는 컴퓨터 사용 시스템.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
KR1020007011687A 1998-04-20 1999-04-20 가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및장치 KR100742436B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/063,335 US7346689B1 (en) 1998-04-20 1998-04-20 Computer architecture having a stateless human interface device and methods of use
US09/063,335 1998-04-20

Publications (2)

Publication Number Publication Date
KR20010042901A KR20010042901A (ko) 2001-05-25
KR100742436B1 true KR100742436B1 (ko) 2007-07-25

Family

ID=22048506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007011687A KR100742436B1 (ko) 1998-04-20 1999-04-20 가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및장치

Country Status (8)

Country Link
US (1) US7346689B1 (ko)
EP (1) EP1074137A2 (ko)
JP (1) JP2002512395A (ko)
KR (1) KR100742436B1 (ko)
CN (1) CN1310487C (ko)
AU (1) AU763158B2 (ko)
CA (1) CA2329199A1 (ko)
WO (1) WO1999054804A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10656956B2 (en) 2017-04-11 2020-05-19 Electronics And Telecommunications Research Institute Virtual desktop server for supporting high-quality graphics processing and method for processing high-quality graphics using the same

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2784474A1 (fr) * 1998-10-08 2000-04-14 Thomson Multimedia Sa Gestionnaire d'applications avec jeu d'instructions de gestion variable
JP2003085084A (ja) * 2001-09-12 2003-03-20 Sony Corp コンテンツ配信システム及びコンテンツ配信方法、携帯端末、配信サーバ、並びに記憶媒体
US7363363B2 (en) 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
JP2004145392A (ja) * 2002-10-21 2004-05-20 Kddi Corp 動画像ファイル配信装置
US7512881B2 (en) 2002-11-14 2009-03-31 International Business Machines Corporation Tool-tip for multimedia files
US7516484B1 (en) * 2008-02-13 2009-04-07 Michael Arnouse Reader adapted for a portable computer
US7533408B1 (en) * 2003-06-13 2009-05-12 Michael Arnouse Portable computing system, apparatus and method
US9010645B2 (en) 2003-06-13 2015-04-21 Michael Arnouse Portable computing system and portable computer for use with same
CN1304984C (zh) * 2003-11-28 2007-03-14 中国科学院软件研究所 自动创建和管理远程终端图形用户接口会话的方法和系统
CN100440888C (zh) * 2004-01-17 2008-12-03 中国科学院计算技术研究所 基于网络存储和资源虚拟化的大型服务系统的管理系统及其方法
WO2006017198A2 (en) * 2004-07-08 2006-02-16 Actuality Systems, Inc. Architecture for rendering graphics on output devices
US7911446B2 (en) * 2004-07-13 2011-03-22 Hewlett-Packard Development Company, L.P. Networked keyboard and mouse drivers
US20070130261A1 (en) * 2005-11-26 2007-06-07 Shaub Frances J Control/satellite electronic work station configurations in which stations interact among themselves on a real-time basis
US7766243B2 (en) 2006-07-19 2010-08-03 Research In Motion Limited Method, system and smart card reader for management of access to a smart card
WO2008009094A1 (en) 2006-07-19 2008-01-24 Research In Motion Limited Method, system and smart card reader for management of access to a smart card
CN100407180C (zh) 2006-08-15 2008-07-30 北京飞天诚信科技有限公司 一种使hid设备能提供智能卡接口的装置及方法
US7756198B2 (en) * 2006-08-18 2010-07-13 Fujitsu Limited System and method for assigning channels in a wireless network
US7917149B2 (en) * 2006-08-18 2011-03-29 Fujitsu Limited System and method for reusing wireless resources in a wireless network
JP4819644B2 (ja) * 2006-10-12 2011-11-24 株式会社日立製作所 情報処理システム、情報処理方法、情報処理装置
WO2009001855A1 (ja) * 2007-06-27 2008-12-31 Globalsign K.K. サーバ証明書発行システム
EP2081361B1 (en) * 2008-01-21 2014-03-26 Alcatel Lucent Converged information systems
USRE49124E1 (en) 2008-02-13 2022-07-05 Arnouse Digital Devices Corp. Mobile data center
US10235323B2 (en) 2008-02-13 2019-03-19 Michael Arnouse Portable computing system and portable computer for use with same
US11113228B2 (en) 2008-02-13 2021-09-07 Arnouse Digital Devices Corporation Portable computing system and portable computer for use with same
KR101545137B1 (ko) * 2008-04-17 2015-08-19 삼성전자주식회사 사용자 인터페이스를 생성하는 방법 및 장치
KR101531165B1 (ko) * 2008-04-17 2015-06-25 삼성전자주식회사 클라이언트의 특성을 고려한 사용자 인터페이스를 제공, 수신하는 방법 및 장치
KR101560183B1 (ko) * 2008-04-17 2015-10-15 삼성전자주식회사 사용자 인터페이스를 제공/수신하는 방법 및 장치
KR20090110202A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 개인화된 사용자 인터페이스를 디스플레이하는 방법 및 장치
US9959897B2 (en) * 2008-06-06 2018-05-01 Disney Enterprises, Inc. User input handling for digital video playback device
US20100088397A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Systems for dynamically updating virtual desktops or virtual applications
US20100088360A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Methods for dynamically updating virtual desktops or virtual applications
US8234332B2 (en) * 2009-04-22 2012-07-31 Aventura Hq, Inc. Systems and methods for updating computer memory and file locations within virtual computing environments
US9367512B2 (en) * 2009-04-22 2016-06-14 Aventura Hq, Inc. Systems and methods for dynamically updating virtual desktops or virtual applications in a standard computing environment
US20110082938A1 (en) * 2009-10-07 2011-04-07 Joe Jaudon Systems and methods for dynamically updating a user interface within a virtual computing environment
US8732290B2 (en) * 2010-10-05 2014-05-20 Citrix Systems, Inc. Virtual workplace software based on organization characteristics
CN102508695A (zh) * 2011-10-14 2012-06-20 深圳市京华科讯科技有限公司 一种屏幕虚拟化的方法及系统
US10101769B2 (en) 2012-04-10 2018-10-16 Michael Arnouse Mobile data center
CN104053019A (zh) * 2013-03-12 2014-09-17 中兴通讯股份有限公司 基于虚拟桌面的视频播放、处理方法及装置
US9483176B2 (en) * 2013-07-08 2016-11-01 Samsung Display Co., Ltd. Method and apparatus to reduce display lag of soft keyboard presses
FR3011704A1 (fr) * 2013-10-07 2015-04-10 Orange Procede de mise en œuvre d'une session de communication entre une pluralite de terminaux
CN103607452B (zh) * 2013-11-19 2017-09-12 浙江云巢科技有限公司 虚拟机终端数据的获取方法、装置及系统
CN105337955A (zh) * 2015-09-22 2016-02-17 电子科技大学 一种虚拟桌面的管理控制系统和方法
US10437928B2 (en) * 2016-12-30 2019-10-08 Google Llc Device identifier dependent operation processing of packet based data communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000057127A (ko) * 1999-02-03 2000-09-15 송동호 소프트웨어 임대 시스템을 위한 분산컴퓨팅 환경에서의프로그램 수행시스템 및 그 방법
KR20000058745A (ko) * 2000-06-27 2000-10-05 정장기 인터넷 피씨방 환경에서의 분산 메모리 직/병렬 처리컴퓨터 구조를 활용한 데이터 프로세스 처리 시스템
KR20040008106A (ko) * 2003-12-31 2004-01-28 학교법인 한국정보통신학원 그리드에서 사용자의 QoS와 응용특성에 근거한동적자원 할당방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5623656A (en) * 1994-12-15 1997-04-22 Lucent Technologies Inc. Script-based data communication system and method utilizing state memory
JPH0926970A (ja) * 1994-12-20 1997-01-28 Sun Microsyst Inc 情報を検索するコンピュータによる実行方法及び装置
US5602905A (en) * 1995-01-23 1997-02-11 Mettke; Richard P. On-line communication terminal/apparatus
US5881239A (en) * 1995-01-23 1999-03-09 Tandem Computers Incorporated Network system with resilient virtual fault tolerant sessions
US5654886A (en) * 1995-03-14 1997-08-05 Wsi Corporation Multimedia outdoor information system
US5784562A (en) * 1995-10-10 1998-07-21 U S West Advanced Technologies, Inc. System for using a dialog session context to process electronic forms data on the world wide web
US5793365A (en) * 1996-01-02 1998-08-11 Sun Microsystems, Inc. System and method providing a computer user interface enabling access to distributed workgroup members
US5864868A (en) * 1996-02-13 1999-01-26 Contois; David C. Computer control system and user interface for media playing devices
US5812765A (en) * 1996-03-22 1998-09-22 Axxs Technologies Corporation Multi-media remote data access terminals and system
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5828840A (en) 1996-08-06 1998-10-27 Verifone, Inc. Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
US5790792A (en) 1996-09-04 1998-08-04 Radiant Systems, Inc. Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
IL119364A (en) * 1996-10-06 2000-11-21 Icq Inc Communications system
US5864870A (en) * 1996-12-18 1999-01-26 Unisys Corp. Method for storing/retrieving files of various formats in an object database using a virtual multimedia file system
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US5960085A (en) * 1997-04-14 1999-09-28 De La Huerga; Carlos Security badge for automated access control and secure data gathering
US6193153B1 (en) * 1997-04-16 2001-02-27 Francis Lambert Method and apparatus for non-intrusive biometric capture
US6938257B1 (en) * 1997-07-17 2005-08-30 International Business Machines Corporation Apparatus and method to provide persistence for application interfaces
US5935212A (en) * 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
US5928363A (en) * 1997-08-27 1999-07-27 International Business Machines Corporation Method and means for preventing unauthorized resumption of suspended authenticated internet sessions using locking and trapping measures
US6035404A (en) * 1997-09-09 2000-03-07 International Business Machines Corporation Concurrent user access control in stateless network computing service system
US5983273A (en) * 1997-09-16 1999-11-09 Webtv Networks, Inc. Method and apparatus for providing physical security for a user account and providing access to the user's environment and preferences
EP1705563B1 (en) 1997-11-14 2009-03-11 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000057127A (ko) * 1999-02-03 2000-09-15 송동호 소프트웨어 임대 시스템을 위한 분산컴퓨팅 환경에서의프로그램 수행시스템 및 그 방법
KR20000058745A (ko) * 2000-06-27 2000-10-05 정장기 인터넷 피씨방 환경에서의 분산 메모리 직/병렬 처리컴퓨터 구조를 활용한 데이터 프로세스 처리 시스템
KR20040008106A (ko) * 2003-12-31 2004-01-28 학교법인 한국정보통신학원 그리드에서 사용자의 QoS와 응용특성에 근거한동적자원 할당방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10656956B2 (en) 2017-04-11 2020-05-19 Electronics And Telecommunications Research Institute Virtual desktop server for supporting high-quality graphics processing and method for processing high-quality graphics using the same

Also Published As

Publication number Publication date
EP1074137A2 (en) 2001-02-07
CA2329199A1 (en) 1999-10-28
WO1999054804B1 (en) 2000-07-13
KR20010042901A (ko) 2001-05-25
WO1999054804A2 (en) 1999-10-28
WO1999054804A3 (en) 2000-04-27
WO1999054804A9 (en) 2001-07-05
CN1346564A (zh) 2002-04-24
AU763158B2 (en) 2003-07-17
AU3863899A (en) 1999-11-08
JP2002512395A (ja) 2002-04-23
US7346689B1 (en) 2008-03-18
CN1310487C (zh) 2007-04-11

Similar Documents

Publication Publication Date Title
KR100742436B1 (ko) 가상 데스크탑 시스템 아키텍처를 제공하기 위한 방법 및장치
US6654806B2 (en) Method and apparatus for adaptably providing data to a network environment
JP4257967B2 (ja) ユニバーサルなステートレスのデジタルおよびコンピュータ・サービスを提供するためのシステムと方法
US6466982B1 (en) Exclusive use of peripheral devices
US6912578B1 (en) Method and apparatus for improving utilization of a resource on a shared client
US7448071B2 (en) Dynamic downloading of keyboard keycode data to a networked client
CN1225543A (zh) 用于电视服务的基于个人计算机的机顶转换器
WO2006097937A2 (en) A method for a clustered centralized streaming system
US9559957B2 (en) Preventing quality of service policy abuse in a network
WO2015196590A1 (zh) 桌面云视频的播放处理方法及装置
CA2391322C (en) Process for the automatic adaptation of the data to be transferred from a data-preparing device to a data-requesting device, to the capabilities of this terminal
WO2004002107A1 (en) Method, network, server and client for distributing data via a data communications network
US20020095500A1 (en) Method and apparatus for aggregate resource management of active computing environments
US11880713B2 (en) Method and apparatus for optimization of cryptographic resource usage
US20040194145A1 (en) Leveraging PC processing power to handle CPU intensive tasks
US20120219070A1 (en) System and method for a thin-client terminal system with a local screen buffer using a serial bus
US7133408B1 (en) Shared decoder
US20100306310A1 (en) Method and system for regulating bandwidth
ZA200408546B (en) System and method for provisioning universal stateless digital and comuting services
Kwon et al. A novel device sharing scheme for thin client
WO2009130446A1 (en) Remote use of computer games and software applications
CN115866109A (zh) 一种远程设备原生驱动控制方法及装置
KR20010112763A (ko) 분리수용방식에 의한 안정적 대역폭의 멀티미디어 데이터전송 방법 및 그시스템
KR20030068077A (ko) 서버와 복수의 클라이언트 사이에서 자원 할당을 하기위한 ens 카드 및 ens카드를 이용한 자원 할당 방법

Legal Events

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

Payment date: 20130620

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 11

EXPY Expiration of term