KR101367718B1 - 이동 기기의 상호운영성을 제공하는 방법 및 장치 - Google Patents

이동 기기의 상호운영성을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR101367718B1
KR101367718B1 KR1020127002542A KR20127002542A KR101367718B1 KR 101367718 B1 KR101367718 B1 KR 101367718B1 KR 1020127002542 A KR1020127002542 A KR 1020127002542A KR 20127002542 A KR20127002542 A KR 20127002542A KR 101367718 B1 KR101367718 B1 KR 101367718B1
Authority
KR
South Korea
Prior art keywords
frame buffer
determining
processor
scan period
program code
Prior art date
Application number
KR1020127002542A
Other languages
English (en)
Other versions
KR20120042883A (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 KR20120042883A publication Critical patent/KR20120042883A/ko
Application granted granted Critical
Publication of KR101367718B1 publication Critical patent/KR101367718B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1415Digital output to display device ; Cooperation and interconnection of the display device with other functional units with means for detecting differences between the image stored in the host and the images displayed on the displays
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/103Detection of image changes, e.g. determination of an index representative of the image change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2380/00Specific applications
    • G09G2380/10Automotive applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

다른 기기들과의 이동 기기 상호운영성을 제공하는 장치는 적어도 하나의 프로세서; 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함한다. 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금 적어도, 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 것; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 것; 및 상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 것;을 수행하게 하도록 구성될 수 있다. 또한, 대응하는 방법 및 컴퓨터 프로그램 제품이 제공된다.

Description

이동 기기의 상호운영성을 제공하는 방법 및 장치{Method and apparatus for providing mobile device interoperability}
본 발명의 실시예들은 일반적으로 기술하면 네트워크 통신 기술에 관한 것이며, 좀더 구체적으로 기술하면 다른 기기들과의 이동 기기의 상호운영성을 제공하는 방법, 장치 및 컴퓨터 프로그램 제품에 관한 것이다.
최근 들어 유선 및 무선 네트워크들이 엄청나게 확장된 통신 시대가 되었다. 소비자의 요구에 부응하는 전례없는 기술 확장은 컴퓨터 네트워크들, 텔레비전 네트워크들, 및 전화 네트워크들을 통해 체험될 수 있다. 무선 및 이동 네트워킹 기술들은, 정보를 더 유연하고 직접적으로 전송하면서 관련 소비자의 요구사항들을 해결해 왔다.
현재 및 향후의 네트워킹 기술들은 계속 정보 전송을 용이하게 하고 사용자들의 편의를 촉진하려고 할 것이다. 정보 전송을 좀더 용이하게 하고 사용자들의 편의를 좀더 촉진해 달라는 요구가 있는 한 분야는 각종 네트워크들에서의 정보 공유의 제공에 관련된 것이다. 비록 정보 공유에 이용가능한 타입의 네트워크들이 많이 있지만, 스마트형 및 지능형 환경들/네트워크들을 통해 정보를 공유하는 것이 최근들어 점점더 대중화되어가고 있다.
기기들이 거의 컨피규레이션(configuration)을 가지지 않고서도 기기들이 쉽게 네트워크로 진입하고 쉽게 네트워크로부터 탈출하는 것을 가능하게 하는 환경은 종종 "스마트 공간(smart space)"으로서 알려져 있다. 이상적인 스마트 공간에서는, 사용자들이 특정 환경 내로 진입한 다음에 네트워크에 가입함으로써 광범위한 '사용자 관여 과정(user involvement)'에 필요한 컨피규레이션 셋업 오버헤드(configuration set up overhead)를 거의 가지지 않고서도 자원들을 공유 또는 이용할 수 있다. 일부 스마트 공간들은 중앙 집중 제어 환경보다는 오히려 분산 환경에서 동작하는 네트워크들로서 고려되는 것이 일반적일 수 있는 비집중형 네트워크들로서 분류되어 있다. 따라서, 프로세서들, 메모리, 스위칭 기기들 등등과 같은 네트워크 자원들은 한 장소(예컨대, 서버 또는 서버 뱅크)에서 중앙 집중되는 대신에 네트워크 전반에 걸쳐 분산되어 있을 수 있다. 이 때문에, 예를 들면, 다양한 기기들이 임의의 시간에 네트워크로 진입하고 네트워크로부터 탈출할 수 있으므로 다양한 기기들의 자원들은 비교적 예측할 수 없는 방식으로 제공될 수도 있다. 더욱이, 스마트 공간 기기들의 상호운영성(interoperability)을 제공하는데 기여하도록 비교적 제한이 없는 자원들을 갖는 단일의 고성능 서버가 존재하지 않을 수도 있다. 따라서, 스마트 공간들에서의 기기들의 상호운영성에 관련된 개선점들을 제공하는 메커니즘을 개발하는 것이 바람직할 수 있다.
그러므로, 본 발명은 이동 기기들을 포함한 기기 상호운영성을 제공할 수 있게 하는 방법, 장치 및 컴퓨터 프로그램 제품을 제공하는 것이다. 더욱이, 예를 들면, 일부 실시예들에서는 이동 기기 상호운영성에 관련된 프로세싱 오버헤드를 적응적으로 감소시키는 기능이 제공될 수 있다.
한 전형적인 실시예에서는, 다른 기기들과의 이동 기기 상호운영성을 제공하는 장치가 제공된다. 상기 장치는 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함할 수 있다. 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서와 함께, 상기 장치로 하여금 적어도, 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 것; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지를 식별하는 것; 상기 식별에 기반하여 상기 프레임 버퍼의 선택된 부분을 상기 원격 환경으로 업데이트하는 것;을 수행하게 하도록 구성될 수 있다.
다른 한 전형적인 실시예에서는, 다른 기기들과의 이동 기기 상호운영성을 제공하는 방법이 제공된다. 상기 방법은, 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 것; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지를 식별하는 것; 상기 식별에 기반하여 상기 프레임 버퍼의 선택된 부분을 상기 원격 환경으로 업데이트하는 것;을 포함할 수 있다.
한 전형적인 실시예에서는, 다른 기기들과의 이동 기기 상호운영성을 제공하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은, 컴퓨터-실행가능 프로그램 코드 부분들이 수록된 적어도 하나의 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 상기 컴퓨터-실행가능 프로그램 코드 부분들은, 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 프로그램 코드 부분들; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 프로그램 코드 부분들; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지를 식별하는 프로그램 코드 부분들; 상기 식별에 기반하여 상기 프레임 버퍼의 선택된 부분을 상기 원격 환경으로 업데이트하는 프로그램 코드 부분들;을 포함할 수 있다.
본 발명은 이동 기기들을 포함한 기기 상호운영성을 제공함으로써, 이동 기기 상호운영성에 관련된 프로세싱 오버헤드를 적응적으로 감소시킬 수 있게 한다.
지금까지 일반적인 관점에서 본 발명의 몇몇 실시예들을 설명하였지만, 지금부터는 반드시 일정한 비율로 도시될 것을 요하지 않는 첨부도면들이 참조될 것이다.
도 1은 본 발명의 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 시스템을 개략적인 블록 다이어그램으로 예시한 도면이다.
도 2는 본 발명의 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 장치를 개략적인 블록 다이어그램으로 예시한 도면이다.
도 3은 본 발명의 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 다른 컴포넌트들과 원격 사용자 인터페이스 서버의 상호작용을 개략적인 블록 다이어그램으로 예시한 도면이다.
도 4는 본 발명의 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 다른 컴포넌트들과 원격 사용자 인터페이스 서버의 동작을 보여주는 플로차트이다.
도 5는 본 발명의 한 전형적인 실시예에 따른 프레임 버퍼 스캐닝에 대한 스킵 주기의 구현을 예시하는 다이어그램이다.
도 6은 분산 네트워크 내의 특정 기기의 관점에서 본 발명의 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 한 전형적인 방법에 따른 플로차트이다.
지금부터 본 발명의 몇몇 실시예들은, 본 발명의 몇몇 실시예들이 도시되어 있지만 본 발명의 모든 실시예들이 도시된 것이 아닌 첨부도면들을 참조하여 이하에서 좀더 상세하게 설명될 것이다. 실제로, 본 발명의 다양한 실시예들은 다른 여러 형태로 구현될 수 있으므로 본 명세서에 기재된 실시예들에 국한되는 것으로서 이해되어선 아니 되며, 오히려 이러한 실시예들은 본 명세서가 적용가능한 법적 요건들을 충족하도록 제공된 것이다. 본 명세서 전반에 걸쳐, 동일한 참조부호들은 동일한 요소들을 지칭한다. 본 명세서에서 사용되는 용어들 "데이터", "콘텐츠", "정보" 및 유사한 용어들은 본 발명의 실시예들에 따라 전송, 수신, 동작 및/또는 저장될 수 있는 데이터를 지칭하도록 상호 교환 방식으로 사용될 수 있다. 더욱이, "전형적인"이라는 용어는 어떤 정성적인 평가(qualitative assessment)를 전달하도록 제공된 것이 아니고 단지 특정 예의 예시를 전달하도록 제공된 것이다. 따라서, 그러한 용어들 중 어느 용어의 사용은 본 발명의 실시예들에 대한 사상 및 범위를 한정하도록 취해져서는 아니 된다.
그 외에도, 본 명세서에서 사용된 '회로(circuit)'라는 용어는 (a) 하드웨어-전용 구현들(예컨대, 아날로그 회로 및/또는 디지털 회로의 구현들); (b) 장치로 하여금 본 명세서에 기재된 하나 이상의 기능들을 수행하게 하도록 함께 동작하는 하나 이상의 컴퓨터 판독가능 메모리들 상에 저장된 소프트웨어 및/또는 펌웨어 명령어들을 포함하는 컴퓨터 프로그램 제품(들) 및 회로들의 조합; 및 (c) 비록 소프트웨어 또는 펌웨어가 물리적으로 존재하는 않지만 동작을 위해 소프트웨어 또는 펌웨어를 필요로 하는, 예를 들면 마이크로프로세서(들) 또는 마이크로프로세서(들)의 부분과 같은 회로들을 지칭한다. 이와 같은 '회로'의 정의는 어떤 청구항들을 포함하여, 본 명세서에서의 이러한 용어의 모든 사용에 적용한다. 본 명세서에서 사용되는 부가적인 예로서, '회로'라는 용어는 또한 하나 이상의 프로세서들 및/또는 그의 일부(들) 및 그에 수반되는 소프트웨어 및/또는 펌웨어를 포함하는 구현을 또한 포함한다. 다른 한 예로서, 본 명세서에서 사용되는 용어 '회로'는, 예를 들면 기저대역 집적회로 또는 이동 전화용 애플리케이션 프로세서 집적회로 또는 서버 내의 유사한 집적회로, 셀룰러 네트워크 기기, 다른 네트워크 기기, 및/또는 다른 컴퓨팅 기기를 또한 포함한다.
본 발명의 실시예들은 이동 기기 상호운영성이 프로세싱 오버헤드를 적응적으로 감소시킬 수 있는 환경에서 제공될 수 있다. 이동 기기 상호운영성과 관련해서, 본 발명의 몇몇 실시예들은, 이동 기기를 휴대하고 있는 사람이 지능형 공간 내에 실제로 진입할 때마다 이동 기기들로 하여금 단절됨이 없이 다른 지능형 환경(예를 들면, 차량 헤드 유닛, 회의실, 가정 거실(home living room) 등등)의 일부가 되게 할 수도 있다. 그 결과로, 이동 기기의 특징들 및 능력들은 스마트 공간상에 투입될 수 있으므로 마치 이동 기기의 특징들 및 능력들이 (이하에서는 스마트 공간, 원격 환경, 또는 원격 클라이언트로서 서로 교환가능하게 언급될 수 있는) 지능형 환경 자체의 고유 능력들인 것처럼 보인다. 스마트 공간상에 기기 능력들이 투입되는 부분은 스마트 공간에 이동 기기의 사용자 인터페이스(UI; user interface) 스크린 및 커맨드 및 제어 능력들을 내보내는 것;을 포함함으로써, 사용자가 원격 환경을 통해 편리하게 상호작용하여 이동 기기의 자원들을 사용할 수 있다.
원격 환경에 이동 기기의 사용자 인터페이스(UI)를 투입하는 한가지 방법은 이동 기기의 프레임 버퍼 내의 데이터를 스마트 환경의 다른 기기의 프레임 버퍼 또는 스마트 환경의 다른 기기에 접근가능한 프레임 버퍼에 카피(copy)함으로써 수행될 수 있다. 현재까지는, 이동 기기 '사용자 인터페이스(UI)'의 내보내기를 포함하는 전형적인 스마트 공간 시나리오에서, (프로세싱 오버헤드를 감소시키는 것과는 반대로) 원격 환경으로의 이동 기기 프레임 버퍼를 전송하는 동안에 네트워크 오버헤드를 감소시키려는 개선점에 대한 노력들이 대부분 이루어져 왔다. 원격 환경으로 기기 '사용자 인터페이스(UI)'를 내보내는 동안의 프로세싱 오버헤드는 프레임 버퍼의 어떤 부분들이 업데이트됨으로써 클라이언트-측에 기기 '사용자 인터페이스(UI)'를 투입하기 위해 클라이언트-측에 전송되어야 하는 지를 기기(예컨대, 서버 기기)가 결정하는 프레임 버퍼 분석 및 비교 스테이지들 동안 생기는 것이 전형적이다. 종종, 프레임 버퍼 분석은 업데이트되어야 하는 영역들을 결정하기 위해 전체 프레임 버퍼를 횡단하고 이전 프레임과 각각의 프레임을 비교함으로써 수행된다. 차이들이 결정된 후에는, 변경이 이루어졌던 디스플레이 스크린의 그러한 부분들만이 전송됨에 따라 네트워크 오버헤드의 감소가 달성될 수 있다. 그러나, 이는 업데이트가 이루어졌던 부분들을 결정하기 위해 프로세싱 오버헤드를 증가시키는 것을 희생하면서 수행된다.
네트워크 오버헤드 감소 기법들은 서버 기기가 견고한 컴퓨팅 능력들을 지니고 있을 경우에 작동 상태가 양호하다. 그러나, 예를 들면 서버의 역할을 수행하는 기기가 좀더 제한된 능력들을 지니고 있는 스마트 환경에서는, 프로세싱 오버헤드를 증가시킴으로써 네트워크 오버헤드 감소 기법들을 구현하는 것이 성능을 감소시키는 결과를 초래할 수 있다. 이와 관련하여, 예를 들면, 이동 기기 상호운영성을 포함하는 경우에, 이동 기기가 자체적으로 대부분은 서버의 역할을 수행할 수 있다. 따라서, 다수의 개인용 컴퓨터(personal computer; PC)들 또는 서버들에 비해 이동 기기가 자신의 프로세싱 능력들 면에서 비교적 상당한 제한들을 지니고 있다는 점을 고려할 때, 현저한 성능 손실들이 검출될 수 있는 한계점까지 네트워크 오버헤드의 감소가 프로세싱 오버헤드를 증가시킬 수 있다. 이와 관련하여, 대부분의 이동 기기들의 비교적 낮은 프로세싱 성능 및 적은 메모리 때문에, 비교적 많은 개수의 서버 프로그램들이 단일 스레드 애플리케이션들로서 이동 기기들 상에서 실행하도록 설계된다. 그러한 경우에, 높은 프레임 버퍼 프로세싱 오버헤드는 원격 사용자에 의한 제어 및 커맨드에 있어서의 대기시간(latency) 및/또는 디스플레이 업데이트들을 제공함에 있어서의 대기시간에 상당한 영향을 줄 수 있다. 디스플레이 업데이트들을 제공함에 있어서의 대기시간과 관련해서, 그러한 프레임 버퍼 프로세싱 오버헤드가 높은 경우에, 이동 기기의 스크린에 대한 어떤 변경들이 원격 환경에 긴 대기시간을 가지고 전달될 수 있는데, 그 이유는 서버가 원격 환경에 어떤 부분들을 전송해야 할지를 결정할 수 있기 전에 프레임 버퍼가 분석 및 비교되어야 하기 때문이다. 한편, 원격 사용자들에 의한 제어 및 커맨드에 있어서의 대기시간과 관련해서, 이동 기기를 원격 제어하려고 시도하는 사용자들은 이러한 사용자들이 제어 커맨드(예컨대, 마우스 클릭 또는 키보드 이벤트)를 내리는 시간과 그 제어 커맨드가 최종적으로 서버 기기(예컨대, 이동 기기)에 의해 수행되는 시간 간의 긴 대기시간을 경험할 수 있다. 그러한 대기시간은 서버 기기가 단지 단일 스레드 수행으로서만 실행하기 때문에, 서버 기기가 제어 커맨드들의 수행을 계속 진행할 수 있기 전에 서버 기기가 서버 기기의 대기행렬에 있는 이전의 프레임 버퍼 프로세싱 요구들 모두를 이행하여야 한다는 점에 기인할 수 있다. 이는 원격 클라이언트로부터의 프레임 버퍼 업데이트 요구들의 빈도가 종종 사용자 액션(user action) 때문에 전송되고 있는 제어 커맨드들의 개수보다 훨씬 많을 수 있기 때문에 생길 수 있다.
네트워크 접속이 고속 '범용 직렬 버스(Universal Serial Bus; USB)'와 같은 광대역 유선 솔루션들을 통해 이루어지는 이동 기기 상호운영성을 포함하는 다른 사례에서는, 네트워크 오버헤드와 비교해 볼 때 서버에서의 프로세싱 오버헤드가 가장 큰 병목현상(bottleneck)을 일으킬 수 있다. 따라서, 그러한 경우에, 네트워크 오버헤드의 감소는 적거나 무시할 수 있는 유틸리티를 지니게 된다. 사실상, 그러한 경우에 시스템이 데이터 압축 또는 다른 이미지 프로세싱 기법들을 이용할 경우에, 네트워크 오버헤드의 감소는 사용자 경험에 도움을 주기보다는 오히려 실제로 사용자 경험에 방해가 될 수 있는데, 그 이유는 압축으로 인한 높은 프로세싱 오버헤드가 디스플레이 업데이트들을 제공함에 있어서 그리고 착신 제어 커맨드들을 수행함에 있어서 대기시간이 길어지는 원인이 될 수 있기 때문이다. 그 외에도, 다양한 비디오 그래픽스 어레이(Wide Video Graphics Array; WVGA)(800x480) 및 슈퍼 비디오 그래픽스 어레이(Super Video Graphics Array; SVGA)(800x600)와 같은 대형 디스플레이들을 지니는 이동 기기들이 시동될 때, 프레임 버퍼를 횡단하는데 필요한 프로세싱은 상당히 증가하고 이동 기기가 원격 환경으로부터 업데이트 요구에 대한 응답을 제공할 수 있기 전에 프로세싱 지연들이 길어지는 원인이 될 수 있다.
위에서 설명한 이유들 및 또 잠재적으로는 다른 이유들 때문에, 프로세싱 오버헤드를 최소화시키거나 적어도 감소시키는 것은 이동 기기 상호운영성 사례들에서 고품질의 사용자 경험을 제공하기 위해 바람직할 수 있다. 본 발명의 몇몇 실시예들은 서버 기기(예컨대, 스마트 공간에서의 이동 기기)에서 어떠한 방식으로 프레임 버퍼 프로세싱 오버헤드를 감소시켜야 하는 지에 대한 문제를 해결할 수 있다. 이와 관련하여, 본 발명의 몇몇 실시예들은 사용자 경험을 개선할 수 있으며 또한 프로세싱 능력이 네트워크 자원들과는 반대로 잠재적인 병목현상을 일으키는 사례에서 프로세싱 오버헤드를 감소시키는 데 초점을 맞출 수 있다. 한 전형적인 실시예에서, 프레임 버퍼 프로세싱 오버헤드를 감소시키는 적응 메커니즘은 이동 기기 자체를 물리적으로 동작시키는 동안에 직면하는 사용자 경험에 근접하고 그러한 사용자 경험과 거의 동일한 원격 환경을 통해 직면하는 사용자 경험을 형성하기 위해 사용자 인터페이스(UI) 업데이트들 및 커맨드 및 제어 전달들의 대기시간을 감소시키도록 제공된다.
도 1에는 본 발명의 실시예들로부터 이점을 얻을 수 있는 이동 기기와 같은 기기(예컨대, 이동 단말기(10))가 한 전형적인 통신 환경에서 도시된 일반적인 시스템 다이어그램이 예시되어 있다. 도 1에 도시된 바와 같이, 본 발명의 한 전형적인 실시예에 따른 시스템의 한 실시예는 네트워크(30)를 통해 서로와 통신하는 것이 가능한 제1 통신 기기(예컨대, 이동 단말기(10)) 및 제2 통신 기기(20)를 포함할 수 있다. 어떤 경우에는, 본 발명의 실시예들이 하나 이상의 추가적인 통신 기기들(예컨대, 상기 제2 통신 기기(20)와 같은 다른 기기들의 예들에 관련해서 잠재적인 다수성(potential multiplicity)을 예시하는 일례일 수 있는 제3 통신 기기(25))을 부가적으로 포함할 수 있다. 몇몇 실시예들에서는, 본 발명의 실시예들을 채용하는 모든 시스템들이 본 명세서에 예시 및/또는 기재되어 있지 않다. 이동 단말기(10) 및/또는 제2 및 제3 통신 기기들(20,25)의 몇몇 실시예들이 예시될 수 있고 이하에서는 예를 들 목적으로 설명될 수 있지만, 휴대 정보 단말기(potable digital assitant; PDA)들, 페이저(pager)들, 이동 텔레비전들, 이동 전화들, 게임 기기들, 랩톱 컴퓨터들, 카메라들, 비디오 레코더들, 오디오/비디오 플레이어들, 라디오, 위성 위치 확인 시스템(global positioning system; GPS) 기기들, 또는 위에 언급한 것들의 임의 조합과 같은 다른 타입들의 단말기들, 및 다른 타입들의 음성 및 텍스트 통신 시스템들은 본 발명의 실시예들을 용이하게 채용할 수 있다. 더군다나, 이동성이 아닌 기기들도 본 발명의 실시예들을 용이하게 채용할 수 있다.
상기 네트워크(30)는 해당하는 유선 및/또는 무선 인터페이스들을 통해 서로와 통신할 수 있는 다른 여러 노드들, 기기들 또는 기능부들의 집합을 포함할 수 있다. 이 때문에, 도 1의 예시는 시스템 또는 네트워크(30)의 모든 포괄적이거나 세부적인 개념이 아니고 시스템의 특정 요소들의 광범위한 개념의 일례인 것으로 이해되어야 한다. 비록 반드시 필요한 것이 아니지만, 몇몇 실시예들에서는, 상기 네트워크(30)가 다수의 1-세대(1G), 2-세대(2G), 2.5G, 3-세대(3G), 3.5G, 3.9G, 4-세대(4G) 이동 통신 프로토콜들, 장기 진화(Long Term Evolution; LTE), 및/또는 다른 여러 유사한 것 중 어느 하나 이상의 것들에 따른 통신을 지원하는 것이 가능할 수 있다. 몇몇 실시예들에서는, 상기 네트워크(30)가 피어-투-피어(peer-to-peer; P2P) 네트워크일 수 있다.
상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)과 같은 하나 이상의 통신 단말기들은 상기 네트워크(30)를 통해 서로와 통신할 수 있으며 각각은, 예를 들면 하나 이상의 셀룰러 또는 이동 네트워크들 중 일부인 기지국 또는 근거리 통신 네트워크(Local Area Network; LAN)와 같은 데이터 네트워크, 도시권 통신 네트워크(Metropolitan Area Network; MAN), 및/또는 인터넷과 같은 광역 통신 네트워크(Wide Area Network; WAN)에 연결될 수 있는 액세스 포인트(access point)일 수 있는 기지 사이트(base site)로부터 신호들을 수신하고 상기 기지 사이트에 신호들을 전송하기 위한 안테나 또는 안테나들을 포함할 수 있다. 또한, 프로세싱 요소들(예컨대, 개인용 컴퓨터들, 서버 컴퓨터들 또는 다른 여러 유사한 것들)과 같은 다른 기기들이 상기 네트워크(30)를 통해 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)에 연결될 수 있다. 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)(및/또는 다른 기기들)을 상기 네트워크(30)에 직접 또는 간접적으로 접속함으로써, 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)은, 예를 들면 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 및/또는 다른 여러 유사한 것을 포함하는 여러 통신 프로토콜들에 따라 다른 기기들과 통신하거나 또는 서로 간에 통신하여 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)의 여러 통신 및 다른 기능들을 각각 수행하도록 허용될 수 있다.
더군다나, 비록 도 1에는 도시되어 있지는 않지만, 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)은 예를 들면 무선 주파수(radio frequency; RF), 블루투스(Bluetooth; BT), 적외선(Infrared; IR) 또는 LAN, 무선 LAN(WLAN), WiMAX(Worldwide Interoperability for Microwave Access), WiFi, 초광대역(Ultra-Wide Band; UWB), 와이브리(Wibree) 기법들 및/또는 다른 여러 유사한 것을 포함하는 다수의 다른 유선 또는 무선 통신 기법들 중 어느 하나에 따라 통신할 수 있다. 이 때문에, 상기 이동 단말기(10) 및 상기 제2 및 제3 통신 기기들(20,25)은 다른 여러 액세스 메커니즘들 중 어느 하나에 의해 상기 네트워크(30)와 통신하고 그리고 서로 간에 통신하도록 허용될 수 있다. 예를 들면, 광대역 코드 분할 다중 액세스(Wideband Code Division Multiple Access; W-CDMA), CDMA2000, 이동 통신 세계화 시스템(Global System for Mobile Communications; GSM), 일반 패킷 무선 서비스(General Packet Radio Service; GPRS) 및/또는 다른 여러 유사한 것과 같은 이동 액세스 메커니즘들은, WLAN, WiMAX, 및/또는 다른 여러 유사한 것과 같은 무선 액세스 메커니즘들 및 디지털 가입자 회선(Digital Subscriber Line; DSL), 케이블 모뎀들, 이더넷 및/또는 다른 여러 유사한 것과 같은 고정 액세스 메커니즘들과 함께, 지원될 수 있다.
전형적인 실시예들에서는, 상기 네트워크(30)는 스마트 공간이도록 구성된 혹(hoc) 또는 분산 네트워크일 수 있다. 따라서, 기기들은 상기 네트워크(30)로 진입할 수 있고 그리고/또는 상기 네트워크(30)로부터 탈출할 수 있으며 상기 네트워크(30)의 기기들은 대응하는 기기들 또는 노드들 및 대응하는 기기들 및 노드들에 대응하는 능력들의 가감을 야기하도록 다른 기기들의 진입 및/또는 탈출에 기반한 동작들을 조정하는 것이 가능할 수 있다. 한 전형적인 실시예에서는, 상기 네트워크에 있는 기기들 중 하나(예컨대, 이동 단말기(10))는 마스터 기기(예컨대, 서버 기기)로서 선택될 수도 있고 이와는 달리 마스터 기기(예컨대, 서버 기기)로서 동작할 수도 있다. 상기 마스터 기기는 마스터 기기(예컨대, 최대 능력, 최대 프로세싱 성능, 및/또는 다른 여러 유사한 것을 지니는 기기)를 결정하기 위한 어느 적합한 실시에 기반하여 선택 및/또는 지정될 수 있다. 상기 마스터 기기는 한 전형적인 실시예에 따른 원격 '사용자 인터페이스(UI)' 서버(40)를 포함할 수 있다. 상기 원격 UI 서버(40)는 본 명세서에서 설명한 바와 같이 프로세싱 오버헤드를 적응적으로 감소시키도록 구성될 수 있다.
도 2에는 본 발명의 한 전형적인 실시예에 따른 적응적으로 감소된 프로세싱 오버헤드를 가지고 이동 기기 상호운영성의 제공을 가능하게 하는 장치의 개략적인 블록 다이어그램이 예시되어 있다. 지금부터 본 발명의 한 전형적인 실시예가 도 2를 참조하여 설명될 것인데, 도 2에는 적응적으로 감소된 프로세싱 오버헤드를 가지고 이동 기기 상호운영성을 제공하는 장치(50)의 특정 요소들이 나타나 있다. 도 2의 장치(50)는 예를 들면 이동 단말기(10)(및/또는 상기 제2 통신 기기(20) 또는 상기 제3 통신 기기(25))상에 채용될 수 있다. 그러나, 상기 장치(50)는 (예를 들면 위에 기재된 기기들 중 어느 하나와 같은) 이동식 및 고정식 양자 모두인 다른 여러 기기들에서 변형적으로 구현될 수 있다. 어떤 경우에는, 실시예들이 기기들의 조합상에서 채용될 수 있다. 따라서, 본 발명의 몇몇 실시예들은 단일 기기(예컨대, 이동 기기(10))에서 모두 구현될 수도 있고, 분산 방식으로 복수의 기기들에 의해(예컨대, P2P 네트워크에 내재하는 하나 또는 복수의 기기들 상에서) 구현될 수도 있으며 클라이언트/서버 관계로 기기들에 의해 구현될 수도 있다. 더군다나, 여기서 유념해야 할 점은 이하에서 설명되는 기기들 또는 요소들이 필수적인 것이 아니므로 특정 실시예들에서는 생략될 수 있다는 점이다.
도 2를 지금부터 참조하면, 도 2에는 적응적으로 감소된 프로세싱 오버헤드를 가지고 이동 기기 상호운영성을 제공하는 장치가 제공되어 있다. 상기 장치(50)는 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 기기(76)를 포함할 수도 있고 이와는 달리, 상기 장치(50)는 프로세서(70), 사용자 인터페이스(72), 통신 인터페이스(74) 및 메모리 기기(76)와 통신할 수도 있다.
상기 메모리 기기(76)는 예를 들면 하나 이상의 휘발성 및/또는 비-휘발성 메모리들을 포함할 수 있다. 다시 말하면, 예를 들어, 상기 메모리 기기(76)는 기계(예컨대, 컴퓨팅 기기)에 의해 검색가능할 수 있는 데이터(예컨대, 비트들)를 저장하도록 구성된 게이트들을 포함하는 전자 저장 기기일 수 있다. 상기 메모리 기기(76)는 상기 장치가 본 발명의 전형적인 실시예들에 따른 여러 기능을 수행할 수 있게 하기 위해 정보, 데이터, 애플리케이션들, 명령어들 또는 다른 여러 유사한 것들을 저장하도록 구성될 수 있다. 예를 들면, 상기 메모리 기기(76)는 상기 프로세서(70)에 의한 프로세싱을 위한 입력 데이터를 버퍼링하도록 구성될 수 있다. 추가로 또는 변형적으로는, 상기 메모리 기기(76)가 상기 프로세서(70)에 의한 실행을 위한 명령어들을 저장하도록 구성될 수 있다.
상기 프로세서(70)는 다른 여러 방식으로 구현될 수 있다. 예를 들면, 상기 프로세서(70)는 코프로세서, 마이크로프로세서, 제어기, 디지털 신호 프로세서(digital signal processor; DSP), DSP가 합체된 프로세싱 회로 또는 DSP가 분리된 프로세싱 회로와 같은 여러 프로세싱 수단, 또는 예를 들면 주문형 집적회로(application specific integrated circuit; ASIC), 필드 프로그램가능 게이트 어레이(field programmable gate array; FPGA), 하드웨어 가속기, 특수 목적용 컴퓨터 칩 또는 다른 여러 유사한 것과 같은 집적회로들을 포함하는 다른 여러 프로세싱 기기들 중 하나 이상으로서 구현될 수 있다. 한 전형적인 실시예에서는, 상기 프로세서(70)가 상기 메모리 기기(76)에 저장되거나 이와는 달리 상기 프로세서(70)가 이용할 수 있는 명령어들을 실행하도록 구성될 수 있다. 변형적으로나 또는 추가로, 상기 프로세서(70)는 하드 코딩 기능(hard coded functionality)을 실행하도록 구성될 수 있다. 이 때문에, 하드웨어 또는 소프트웨어 방식들로 구성되든, 또는 이들의 조합에 의해 구성되든, 상기 프로세서(70)는 본 발명의 실시예들에 따라 구성되면서 본 발명의 실시예들에 따른 동작들을 수행하는 것이 가능한 (예컨대, 실제로 회로로 구현되는) 개체(entity)를 대표할 수 있다. 따라서, 예를 들면, 상기 프로세서(70)가 ASIC, FPGA 또는 다른 여러 유사한 것으로서 구현될 경우에, 상기 프로세서(70)는 본 명세서에 기재된 동작들을 수행하기 위한 특정하게 구성된 하드웨어일 수 있다. 변형적으로는, 다른 일례로서, 상기 프로세서(70)가 소프트웨어 명령어들의 실행자로서 구현될 경우에, 상기 명령어들은, 상기 명령어들이 실행될 때 본 명세서에 기재된 알고리즘들 및 동작들을 수행하기 위해 상기 프로세서(70)를 특정하게 구성할 수 있다. 그러나, 어떤 경우에는, 상기 프로세서(70)가 본 명세서에 기재된 알고리즘들 및/또는 동작들을 수행하기 위한 명령어들에 의한 상기 프로세서(70)의 부가적인 구성을 통해 본 발명의 실시예들을 채용하기에 적합한 특정 기기(예컨대, 이동 단말기 또는 네트워크 기기)의 프로세서일 수 있다. 이 때문에, 예를 들면, 어떤 경우에는 상기 프로세서(70)가 명령어들의 실행에 의해 결과적으로는 상기 메모리 기기(76)를 가지고 상기 실행된 명령어들에 연관된 해당하는 액션들을 수행하도록 상기 장치(50)를 구성한다. 상기 프로세서(70)는 특히 상기 프로세서(70)의 동작을 지원하도록 구성된, 클록, 산술 논리 유닛(arithmetic logic unit; ALU) 및 논리 게이트들을 포함할 수 있다.
한편, 상기 통신 인터페이스(74)는, 상기 장치와 통신하는 네트워크 및/또는 다른 임의의 기기 또는 모듈로부터/로 데이터를 수신 및/또는 전송하도록 구성되는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합 중 어느 하나에서 구현되는 기기 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 상기 통신 인터페이스(74)는 예를 들면 무선 통신 네트워크와의 통신을 허용하기 위한 안테나(또는 다수의 안테나) 및 지원용 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 어떤 환경에서는, 상기 통신 인터페이스(74)가 변형적으로나 또는 또한 유선 통신을 지원할 수 있다. 이 때문에, 예를 들면, 상기 통신 인터페이스(74)는 케이블, 디지털 가입자 회선(digital subscriber line; DSL), 범용 직렬 버스(universal serial bus; USB), 또는 다른 메커니즘들을 통해 통신을 지원하기 위한 통신 모뎀 및/또는 다른 하드웨어/소프트웨어를 포함할 수 있다.
상기 사용자 인터페이스(72)는 프로세서(70)와 통신하여 상기 사용자 인터페이스(72)에서의 사용자 입력의 표시를 수신하며 그리고/또는 가청적, 가시적, 기계적 또는 다른 출력을 사용자에게 제공할 수 있다. 이 때문에, 상기 사용자 인터페이스(72)는 예를 들면 키보드, 마우스, 조이스틱, 디스플레이, 터치 스크린, 소프트키들, 마이크로폰, 스피커, 또는 다른 입력/출력 메커니즘들 및 그러한 입력/출력 메커니즘 각각에 연관된 해당 회로를 포함할 수 있다. 상기 장치가 서버 또는 다른 어떤 네트워크 기기들로서 구현되는 한 전형적인 실시예에서는, 상기 사용자 인터페이스(72)가 제한될 수도 있고 제거될 수도 있다. 그러나, 상기 장치가 통신 기기(예컨대, 상기 이동 단말기(10))로서 구현되는 한 실시예에서는, 상기 사용자 인터페이스(72)가, 다른 기기들 또는 요소들 중에서, 스피커, 마이크로폰, 디스플레이, 및 키보드 또는 다른 여러 유사한 것 중 어느 하나나 모두를 포함할 수 있다. 이와 관련하여, 예를 들면, 상기 프로세서(70)는 예를 들면 스피커, 신호기(ringer), 마이크로폰, 디스플레이, 및/또는 다른 여러 유사한 것과 같은 사용자 인터페이스의 하나 이상의 요소들의 적어도 몇몇 기능들을 제어하도록 구성된 사용자 인터페이스를 포함할 수 있다. 상기 프로세서(70) 및/또는 상기 프로세서(70)를 포함하는 사용자 인터페이스 회로는 메모리(예컨대, 메모리 기기(76) 및/또는 다른 여러 유사한 것) 상에 저장되며 상기 프로세서(70)가 이용할 수 있는 컴퓨터 프로그램 명령어들(예컨대, 소프트웨어 및/또는 펌웨어)을 통해 상기 사용자 인터페이스의 하나 이상의 요소들의 하나 이상의 기능들을 제어하도록 구성될 수 있다.
한 전형적인 실시예에서는, 상기 프로세서(70)가 상기 원격 UI 서버(40)로서 구현될 수도 있고, 상기 원격 UI 서버(40)를 포함할 수도 있으며 이와는 달리 상기 원격 UI 서버(40)를 제어할 수도 있다. 상기 원격 UI 서버(40)는 소프트웨어에 따라 동작할 수도 있고 이와는 달리 하드웨어 또는 하드웨어 및 소프트웨어의 조합(예컨대, 소프트웨어 제어하에서 동작하는 프로세서(70), 본 명세서에 기재된 동작들을 수행하도록 특정하게 구성된 ASIC 또는 FPGA로서 구현되는 프로세서(70), 또는 이들의 조합)으로 구현될 수도 있는 기기 또는 회로와 같은 임의의 수단일 수 있음으로써 본 명세서에 기재된 바와 같이 상기 원격 UI 서버(40)의 해당하는 기능들을 수행하도록 상기 기기 또는 회로를 구성할 수 있다. 따라서, 소프트웨어가 채용되는 예들에서는, 상기 소프트웨어를 실행하는 기기 또는 회로(예컨대, 일례에서는 프로세서(70))가 그러한 수단에 연관된 구조를 형성한다.
한 전형적인 실시예에서는, 상기 원격 UI 서버(40)가 스마트 공간 또는 원격 환경의 다른 기기들과의 이동 단말기(10)의 상호운영성을 제공하는 것과 관련해서 프로세싱 오버헤드를 적응적으로 감소시키기 위해 이동 단말기(10)의 다양한 컴포넌트들과 그리고 상기 원격 환경과 인터페이스하도록 구성될 수 있다. 이와 관련하여, 도 3에는 한 전형적인 실시예에 따라 상기 원격 UI 서버(40)가 통신할 수 있게 하는 컴포넌트들의 일례가 예시되어 있다. 도 4에는 한 전형적인 실시예에 따른 도 3에 도시된 전형적인 구조의 동작 흐름도가 예시되어 있다.
스마트 환경 내에서는, 여러 기기들 및 서비스들이 다양한 기기들 및 서비스들의 능력들에 기반하여 사용자에게 새로운 상호작용 서비스들 및 적응 애플리케이션들을 제공함으로써 상호작용할 수 있다. 스마트 환경 내에는 여러 스마트 장치들 및 상호작용 위젯(widget)들이 존재할 수 있으며 사용자들은 그러한 기기들 및 위젯들을 사용하여 그러한 환경 내에서 가능한 애플리케이션들을 어드레싱하여 상기 애플리케이션들과 상호작용할 수 있다. 이 때문에, 다수의 기기들이 인접한 접촉 상태에 있게 되면, 각각의 기기의 개별 능력들의 조합에 기반하여 혹 스마트 공간이 형성될 수 있다. 도 3에서는, 원격 환경(80)이 스마트 공간을 예시하는 데 사용된다. 이 때문에, 예를 들면, 상기 원격 환경(80)은 서로와 통신하는 하나 이상의 기기들을 포함할 수 있으며 또한 상기 제2 및 제3 통신 기기들(20,25)과 같은 이동 단말기(10)와 통신하는 것이 가능할 수 있다. 어떤 경우에는, 상기 원격 환경(80)이, 예를 들면, 차량 헤드 유닛, 기내 엔터테인먼트 콘솔(in-flight entertainment console), 홈 엔터테인먼트 시스템, 원격 회의 또는 화상 회의에서의 한 그룹의 기기들 또는 스마트 공간에서의 다른 어떤 그룹의 기기들을 포함할 수 있다.
도 3에 도시된 바와 같이, 상기 원격 UI 서버(40)는 상기 원격 환경(80) 및 상기 이동 단말기(10)의 다른 컴포넌트들과 통신할 수 있다. 이와 관련하여, 예를 들면, 상기 이동 단말기(10)는 디스플레이 드라이버(82), 프레임 버퍼(84), 프레임 버퍼 복사 기기(86), 및 중앙 처리 유닛(central processing unit; CPU) 모니터(88)와 같은 다양한 컴포넌트들을 포함할 수 있다. 상기 디스플레이 드라이버(82), 상기 프레임 버퍼(84), 상기 프레임 버퍼 복사 기기(86), 및 상기 CPU 모니터(88) 각각은 소프트웨어 또는 이와는 달리 하드웨어에 내장되는 소프트웨어 또는 하드웨어 및 소프트웨어의 조합에 따라 동작하는 기기 또는 회로와 같은 임의의 수단일 수 있음으로써 본 명세서에 설명된 바와 같은, 상기 디스플레이 드라이버(82), 상기 프레임 버퍼(84), 상기 프레임 버퍼 복사 기기(86), 및 상기 CPU 모니터(88) 각각의 해당하는 기능들을 수행하도록 상기 기기 또는 회로를 구성할 수 있다.
상기 디스플레이 드라이버(82)는 사용자 인터페이스에서 디스플레이를 위한 데이터를 제공하기 위해 사용자 인터페이스(72)의 디스플레이와 인터페이스하도록 구성될 수 있다. 이 때문에, 예를 들면, 상기 디스플레이 드라이버(82)는 상기 디스플레이에서 디스플레이될 데이터 스트림으로 일련의 비디오 프레임들을 제공하도록 구성될 수 있다. 상기 프레임 버퍼(84)는 상기 디스플레이 드라이버(82)에 의해 제공되는 데이터 스트림을 정의하는 프레임 데이터와 같은 하나 이상의 데이터 프레임들을 저장하도록 구성된 메모리 기기(예컨대, 메모리 기기(76)) 또는 메모리 기기의 부분일 수 있다. 상기 프레임 버퍼 복사 기기(86)는 또한 하나 이상의 데이터 프레임들을 저장하도록 구성된 메모리 기기(예컨대, 메모리 기기(76)) 또는 메모리 기기의 부분일 수 있다. 이와 관련하여, 상기 프레임 버퍼 복사 기기(86)는 상기 프레임 버퍼(84)에 미리 저장된 프레임 데이터의 복사본을 저장하도록 구성될 수 있다. 따라서, 예를 들면, 상기 프레임 버퍼(84)에 저장된 데이터 및 상기 프레임 버퍼 복사 기기(86)에 저장된 데이터는, 위에 설명된 바와 같은 네트워크 오버헤드를 감소시키기 위해 단지 변경된 데이터만이 상기 원격 환경(80)에 복사될 수 있도록 디스플레이될 데이터에 대해 변경들이 이루어졌는지를 결정하기 위해 비교될 수 있다. 그러나, 본 발명의 전형적인 실시예들에 의하면, 상기 원격 UI 서버(40)는 또한 프로세싱 오버헤드를 감소시키기 위해 그러한 비교를 수행하는 적응 메커니즘을 이용하도록 구성될 수 있다.
이와 관련하여, 상기 원격 UI 서버(40)는 상기 CPU 모니터(88)에 의해 결정된 상기 이동 단말기(10)의 프로세서 로딩에 기반하여 상기 프레임 버퍼 복사 기기(86)에 저장된 데이터와 상기 프레임 버퍼(84)에 저장된 데이터와의 비교를 수행하도록 구성될 수 있다. 이 때문에, 상기 CPU 모니터(88)는 CPU 로딩 특징들을 결정하고 상기 원격 UI 서버(40)로 하여금 상기 프레임 버퍼(84) 및 상기 프레임 버퍼 복사 기기(86)에 저장된 현재 데이터 및 이전 데이터(또는 오래된 데이터 및 최근 데이터)의 비교 동안 스킵될 프레임 데이터의 부분을 결정할 수 있게 하도록 그러한 특징들을 보고하도록 구성될 수 있다. 한 전형적인 실시예에서는, 오래된 데이터 및 최근 데이터의 비교에서 스킵될 프레임 데이터의 분량이 프로세서 로딩이 증가함에 따라 증가할 수 있다. 도 4에는 한 전형적인 실시예에 따른 도 3에 도시된 시스템의 동작을 보여주는 흐름도가 예시되어 있다.
한 전형적인 실시예에서는, 상기 이동 단말기(10)(예컨대, 위에 기재된 것들과 같은 셀룰러폰, PDA 또는 다른 기기) 및 상기 원격 환경(예컨대 관련 차량 서브-시스템들이 구비된 차량 헤드 유닛, 홈 엔터테인먼트 시스템, 기내 엔터테인먼트 시스템 또는 이와는 다른 것)이 서로와 통신할 수 있다. 상기 이동 단말기(10)가 상기 스마트 공간에 진입하게 되는 경우에, 상기 이동 단말기(10)는 자신의 사용자 인터페이스를 상기 원격 환경(80)에 내보낼 수 있고 상기 이동 단말기(10)는, 사용자가 실제로 상기 이동 단말기(10) 자체를 사용하고 있었던 경우에 사용자가 실제로 상기 이동 단말기(10) 자체를 사용하고 있는 것과 본질적으로 동일한 방식으로 상기 원격 환경(80)을 통해 사용자로 하여금 상기 이동 단말기(10)에 액세스하여 상기 이동 단말기(10)를 제어할 수 있게 한다. 상기 사용자 인터페이스의 내보내기는 상기 이동 단말기(10)의 프레임 버퍼(84)(물리 프레임 버퍼 또는 가상 프레임 버퍼)의 콘텐츠를 상기 원격 환경(80)에 전송함으로써 달성될 수 있다.
어떤 경우에는, 상기 이동 단말기(10)의 사용자 인터페이스의 내보내기는 동작단계 100에 도시된 바와 같이 프레임 버퍼 업데이트에 대한 상기 원격 환경으로부터의 요구에 응답하여 달성될 수 있다. 그러한 프레임 버퍼 업데이트 요구의 수신시, 상기 이동 단말기(10)의 원격 UI 서버(40)는 현재 프레임 버퍼 콘텐츠를 판독하고 최종 업데이트 요구 이래로 변경이 이루어진 프레임 버퍼 콘텐츠의 섹션들 또는 부분들의 전송을 허용하기 위해 상기 프레임 버퍼의 이전 복사본과 상기 콘텐츠를 비교하도록 구성될 수 있다. 어떤 경우에는, 예를 들면, 전송될 섹션들이 직사각형들로 표현될 수 있는데, 여기서 상기 직사각형들의 모서리(corner)들의 좌표들은 상기 프레임 버퍼(84)의 콘텐츠에 대한 변경이 생기게 된 온-스크린 경계들을 지정한다. 그러나, 상기 원격 UI 서버(40)는 이하에서 좀더 구체적으로 설명되는 바와 같이 프로세서 로딩에 기반하여 그러한 비교를 수행하도록 부가적으로 구성될 수 있다.
이와 관련하여, 한 전형적인 실시예는 프로세싱 오버헤드의 적응적 감소 기능을 제공한다. 그러한 기능을 수행하기 위해, 본 발명의 실시예들은 상기 원격 환경(80)에 복사될 프레임 버퍼 콘텐츠의 부분들을 적응적으로 결정하도록 상기 이동 단말기(10)의 디스플레이 드라이버(82) 및 상기 CPU 모니터(88)로부터의 정보를 이용할 수 있다. 따라서, 상기 프레임 버퍼에 액세스하여 상기 프레임 버퍼를 비교하는 동작이 업데이트 요구가 수신될 때마다 전체 프레임 버퍼를 횡단하고 변경이 이루어진 스크린 영역들 모두를 전송하는 것을 포함하는 것이 전형적인 반면에, 본 발명의 몇몇 전형적인 실시예들은 이와 같이 준엄한 비교를 의무부담이 덜어진 비교로 대신할 수 있다.
한 전형적인 실시예에서는, 도 3에 도시된 바와 같이 상기 원격 UI 서버(40)가 초기에 상기 디스플레이 드라이버(82)에 등록하여 상기 디스플레이 드라이버(82)가 통지를 보낼 것을 요구할 수도 있거나 이와는 달리 상기 디스플레이 드라이버(82)가 상기 프레임 버퍼(84)의 콘텐츠를 리프레시(refresh)할 때를 상기 원격 UI 서버(40)에 통지할 것을 요구할 수도 있다. 따라서, 예를 들면, 프레임 버퍼 업데이트 요구가 동작단계 100에서 수신될 경우에, 상기 원격 UI 서버(40)는, 최종 프레임 버퍼 업데이트가 동작단계 102에서 보내진 이래로 리플레시 통지 이벤트가 상기 디스플레이 드라이버로부터 수신되었는지를 체크하도록 허용될 수 있다. 동작단계 104에서 리프레시 통지가 수신되지 않은 것으로 판단되는 경우에, 상기 원격 UI 서버(40)는 동작단계 106에서 빈 프레임 버퍼(empty frame buffer) 업데이트 메시지를 상기 원격 환경(80)에 보낼 수 있다. 빈 프레임 버퍼 업데이트 메시지를 보냄으로써, 프로세싱 오버헤드 절감이 달성될 수 있는데, 그 이유는 상기 프레임 버퍼(84)의 콘텐츠가 리프레시되지 않는 경우에 상기 리프레시 버퍼(84)를 통해 스캐닝하는 것을 선제(先制)해서 회피하는 것이 가능할 수 있기 때문이다. 변형적으로는, 상기 원격 UI 서버(40)가 리프레시 통지를 받을 때까지 상기 프레임 버퍼 업데이트를 지연시킬 수 있다.
리프레시 통지가 동작단계 104에서 수신된 것으로 판단되는 경우에, 그리고 필요한 경우나 원하는 경우에, 업데이트된 프로세서 로딩 정보(예컨대, CPU 로드 통계치)는 상기 CPU 모니터(88)로부터 수신될 수 있다. 다시 말하면, 동작단계 108에서, 상기 원격 UI 서버(40)는 상기 CPU 모니터(88)에 질의(query)하여 상기 이동 단말기(10)의 현재 프로세서 로드를 결정할 수 있다. 프로세서 로드에 기반하여, 상기 원격 UI 서버(40)는 동작단계 110에서 상기 프레임 버퍼 복사 기기(86)의 콘텐츠에 대한 비교를 스캔해야 할 프레임 버퍼(84)의 콘텐츠가 어느 정도의 부분(예컨대, 몇 퍼센트)인지를 결정할 수 있다. 한 전형적인 실시예에서는, 스캔되어야 할 부분은 구분적 함수(piece-wise function)(p(x))로 표현될 수 있다. 일례에서는, 상기 함수(p(x))는 다음과 같이 결정될 수 있다(그러나, p(x)에 대한 다른 값들이 채용될 수 있는 데, 그 이유는 이러한 것이 단지 일례일 뿐이며 개별 기기들의 프로세싱 프로파일들에 기반하여 서로 다른 기기들에 대하여 값들이 서로 다르기 때문이다).
Figure 112012007425454-pct00001
한 전형적인 실시예에서는, p(x)의 값이 상기 프레임 버퍼(84)를 스캐닝하는 동안 스킵될 픽셀들의 개수를 결정한다. 예를 들면, p(x)의 값이 2일 경우에, 상기 프레임 버퍼(84)의 콘텐츠를 횡단하여 상기 프레임 버퍼(84)의 콘텐츠를 상기 프레임 버퍼 복사 기기(86)의 복사 콘텐츠와 비교하는 동안, 상기 원격 UI 서버(40)는 차후의 3개의 픽셀을 스킵한다. 따라서, 도 4의 예에 도시된 바와 같이, 프로세서 로딩에 기반하여, 상기 원격 UI 서버(40)는 동작단계 110에서 (상기 프레임 버퍼(84) 및 상기 프레임 버퍼 복사 기기(86) 간의) 프레임 버퍼 콘텐츠 비교들 동안 스킵하도록 픽셀들의 개수를 결정할 수 있다. 동작단계 112에서, 상기 프레임 버퍼(84) 및 상기 프레임 버퍼 복사 기기(86) 각각의 해당하는 스캐닝된 픽셀들 간의 차이들에 관련된 비교에 기반하여 스크린의 어떤 부분에 변경이 이루어졌는지에 대한 판단이 이루어질 수 있다. 동작단계 114에서는, 변경이 이루어진 스크린 영역들에 해당하는 데이터를 포함하는 프레임 버퍼 업데이트 메시지가 상기 원격 환경(80)에 보내질 수 있다.
도 5에는 스캐닝된 픽셀이 상기 프레임 버퍼 콘텐츠의 변경에 관한 각각의 차후 반복되는 판단에 대해 우측으로 하나씩 시프트되는 3 가지 연속 동작들에 걸친 특정 개수의 스킵된 픽셀들(예컨대, 2개)에 대한 위에 설명된 프로세스의 일례가 도시되어 있다. 이와 관련하여, 제1 반복 동안, 제1 픽셀(120)이 스캔되고 제2 픽셀(122) 및 제3 픽셀(124)이 스킵된다. 그러한 패턴은, 제4 픽셀(126) 및 제7 픽셀(132)이 스킵되지만 제5 픽셀(128), 제6 픽셀(130) 및 제8 픽셀(134)이 스킵되지 않도록 반복된다. 그 다음에, 제2 반복 동안, 상기 제2 픽셀(122), 상기 제5 픽셀(128) 및 상기 제8 픽셀(134)이 스킵되지만, 상기 제1 픽셀(120), 상기 제3 픽셀(124), 상기 제4 픽셀(126), 상기 제6 픽셀(130) 및 상기 제7 픽셀(132)이 스킵되지 않는다. 제3 반복에서, 상기 제3 픽셀(124) 및 상기 제6 픽셀(130)이 스킵되지만 상기 제1 픽셀(120), 상기 제2 픽셀(122), 상기 제4 픽셀(126), 상기 제5 픽셀(128), 상기 제7 픽셀(132) 및 상기 제8 픽셀은 스킵되지 않는다. 도 5의 사례에서는, 단지 소정 열(column)들의 픽셀들만이 이러한 예에서 특정 반복 동안 스캔되는 것이 관찰될 수 있는 경우에, 행 우선 배열(row-major order)로 저장되는 프레임 버퍼 상에 적용될 때 위에 설명된 동작의 효과가 예시된 것이다. 특정 프로세싱 반복 동안 횡단이 소정 행들의 픽셀들에 제한될 수 있는 것을 제외하고는, 위에 설명된 동작들이 열 우선 배열(column-major order)로 저장된 프레임 버퍼 상에 적용되는 경우에 유사한 효과가 관찰될 수 있다. p(x)의 값에 의존하여, 상기 원격 UI 서버(40)는 단지 지정된 열들/행들만을 스캐닝할 수 있고 상기 프레임 버퍼 복사본과의 차이들을 나타내는 해당하는 부분들을 업데이트할 수 있다. 그리고나서, 상기 원격 UI 서버(40)는 상기 원격 환경(80)에 변경이 이루어진 스크린 영역들을 나타내는 부분들(예컨대, 직사각형들)을 전송할 수 있다.
위에서 알 수 있는 바와 같이, 이러한 예에 의하면, 프레임 버퍼 업데이트 요구의 모든 차후 프로세싱에 대하여는, 상기 원격 UI 서버(40)가, 도 5의 예에 도시된 바와 같이, (프레임 버퍼의 행 우선 저장의 경우에) 미리 결정된 열 만큼, 또는 (프레임 버퍼의 열 우선 저장의 경우에) 하나의 행 만큼 이전 패턴으로부터 시프트되는 스캔 패턴을 따르도록 구성될 수 있다. 따라서, 전체 프레임 버퍼가 프레임 버퍼 업데이트의 1회 반복에서 완전히 횡단되는 최근의 방법들과는 대조적으로, 본 발명의 실시예들은 전체 프레임 버퍼가 프레임 버퍼 업데이트들의 p(x)+1 회의 반복들에서 완전히 횡단되는 기법을 제공할 수 있다. 이러한 개선을 위한 변경은 상기 프레임 버퍼를 횡단하고 상기 원격 환경(80)에 제공되는 프레임 버퍼 복사본과 비교하여 상기 원격 환경(80)에 제공되는 프레임 버퍼 복사본을 1/(p(x)+1)의 인자(factor) 만큼 업데이트하는 프로세싱 오버헤드를 감소시키는데, 이는 어떤 경우에 상기 원격 환경(80)에 전송되는 업데이트들의 응답 시간 및 속도가 상당히 빠르게 되는 결과를 초래시킬 수 있다.
한 전형적인 실시예에서는, 상기 원격 UI 서버(40)는 미리 정의된 환경들 하에서 프로세서 로딩을 결정하도록 구성될 수 있다. 이와 관련하여, 어떤 경우에는, 상기 원격 UI 서버(40)가 각각 수신된 프레임 버퍼 업데이트 요구에 대해 상기 CPU 모니터(88)에 질의하는 경우, 상기 프레임 버퍼(84)의 소정 부분들이 빠른 p(x) 값의 변동 때문에 결코 스캐닝되지 않는다. 이 때문에, 어떤 사례에서는 상기 원격 환경(80)이 상기 이동 단말기의 사용자 인터페이스 디스플레이의 왜곡된 뷰(view)를 수신할 수 있는 가능성도 있을 수 있다. 그러한 경우가 생길 수 있는 공산(公算; likelihood)을 제한하기 위해, 한 전형적인 실시예에서는, 상기 프레임 버퍼(84)의 적어도 1회의 완전한 횡단이 동일한 p(x) 값을 사용하여 달성될 때까지 상기 원격 UI 서버(40)가 p(x) 값(예컨대, 픽셀 스캔 주기)을 일정하게 유지하도록 구성된다. 다시 말하면, 스킵된 픽셀들의 분량은 모든 픽셀이 (예컨대, 총 k+1 회의 반복들에 대하여 (판독된 모든 픽셀에 대해) 'k'개의 픽셀들을 스킵함으로써) 결정된 스킵 주기를 사용하여 스캐닝될 때까지 일정하게 유지될 수 있다. 전체 프레임 버퍼가 소정 스킵 주기로 스캐닝된 후에, 차후 반복을 트리거(trigger)하라는 차후 업데이트 요구가 수신되면, 상기 원격 UI 서버는 다시금 상기 CPU 모니터(88)에 질의하여 새로운 p(x) 값(예컨대, '1' 값)을 결정할 수 있다. 그리고나서, (현재 1을 포함하는) 다음 1+1 회 반복들에 대하여, 상기 원격 UI 서버는 (판독된 모든 픽셀에 대해) '1'개의 픽셀을 스킵함으로써 상기 프레임 버퍼를 스캐닝하도록 구성될 수 있음으로써, 그러한 프로세스가 속행된다.
따라서, 한 전형적인 실시예의 원격 UI 서버(40)는 이동 단말기의 사용자 인터페이스를 스마트 환경에 내보냄과 관련해서 서버 역할을 맡는 이동 단말기의 성능에 있어서의 개선점들을 제공할 수 있다. 이 때문에, 사용자 경험은 개선될 수 있다. 이와 관련하여, 예를 들면, 사용자는 빠른 응답 시간을 경험할 수 있는데, 그 이유는 비교적 거의 없거나 심지어는 잠재적으로도 전혀 없는 지연(lag)이 경험될 수 있을 만큼의 초당 업데이트들의 개수가 존재할 수 있기 때문이다. 따라서, 예를 들면, 지능형 환경을 통해 이동 기기에 액세스하고 이동 기기를 제어하는 사용자는, 마치 사용자가 상기 이동 기기 자체와 물리적으로 상호작용하고 있었던 것과 같이 동일한 경험을 가질 수 있다. 본 발명의 몇몇 실시예들은 또한 프로세서가 호스트 추가 애플리케이션들과 같은 다른 태스크들을 수행할 정도로 자유롭게 되도록 프로세싱 오버헤드의 감소를 제공함으로써 또한 잠재적으로 사용자에게 풍부한 경험을 제공할 수 있다.
몇몇 전형적인 실시예들에 대한 성능 결과들은 기존의 기법들이 채용된 실시예들보다 초당 업데이트들과 관련해서 이득들 및 왕복 시간(Round-Trip-Time; RTT)의 감소들을 나타내었다. 이와 관련하여, 예를 들면, 고성능 유선 접속(예컨대, USB) 또는 무선 네트워크 접속이 제공되는 경우에, 변경들에 대해 상기 프레임 버퍼를 선택적으로 스캐닝하도록 채용되는 여러 가능한 스킵 주기들 중 어느 하나를 가지고 본 발명의 실시예를 사용한 증분 업데이트는 상기 프레임 버퍼의 전체 스캐닝이 채용되는 업데이트 경우들보다 상당한 이득들을 제시하였다. 더욱이, 각각의 반복 동안 상기 프레임 버퍼의 50 퍼센트 미만이 횡단되는 경우에서도 조차, 성능 결과들은 비록 전체 스캔에서 전개된 노력의 50 퍼센트 미만이 채용되더라도 상기 프레임 버퍼에서 변경이 이루어진 영역들의 좌표들이 비교적 정확하게 위치해 있는 것을 보여준다. 이러한 현상은 유효한 것이 전형적인데, 그 이유는 어떠한 사용자 인터페이스 변경이라도 동일한 영역에 다수 개의 픽셀들에 영향을 줄 수 있고, 따라서 일부 픽셀들을 스킵한다는 것이 변경을 검출할 수 없는 원인이 될 수가 없기 때문이다.
도 6은 본 발명의 전형적인 실시예들에 따른 시스템, 방법 및 프로그램 제품의 플로차트이다. 당업자라면 상기 플로차트의 각각의 블록 또는 단계, 및 상기 플로차트의 블록들의 조합들이 하드웨어, 펌웨어, 프로세서, 회로 및/또는 하나 이상의 컴퓨터 프로그램 명령어들을 포함하는 소프트웨어의 실행에 관련된 다른 기기와 같은 다양한 수단에 의해 구현될 수 있음을 이해할 것이다. 예를 들면, 위에 설명된 하나 이상의 절차들은 컴퓨터 프로그램 명령어들에 의해 구체화될 수 있다. 이와 관련하여, 위에 설명된 절차들을 구체화하는 컴퓨터 프로그램 명령어들은 본 발명의 실시예를 채용하는 장치의 메모리 기기에 의해 저장될 수 있으며 상기 장치의 프로세서에 의해 실행될 수 있다. 당업자라면 알 수 있겠지만, 그러한 어떤 컴퓨터 프로그램 명령어들도, 결과로 나타나는 컴퓨터 또는 다른 프로그램가능 장치가 플로차트 블록(들) 또는 단계(들)에서 특정된 기능들을 구현하는 수단을 구체화하도록 하는 기계를 생성하기 위해 컴퓨터 또는 다른 프로그램가능 장치(예컨대, 하드웨어) 상에 로드될 수 있다. 이러한 컴퓨터 프로그램 명령어들은 또한 특정 방식으로 컴퓨터 또는 다른 프로그램가능 장치가 기능을 수행할 수 있게 하는 컴퓨터-판독가능 메모리에 저장될 수 있기 때문에, 상기 컴퓨터-판독가능 메모리에 저장된 명령어들의 실행으로 플로차트 블록(들) 또는 단계(들)에서 특정된 기능을 구현하는 제조물품을 상기 컴퓨터-판독가능 메모리에 저장된 명령어들이 생성하게 된다. 상기 컴퓨터 프로그램 명령어들은 또한 컴퓨터 또는 다른 프로그램가능 장치상에서 실행하는 명령어들이 플로차트 블록(들) 또는 단계(들)에서 특정된 기능들을 구현하는 단계들을 제공하도록 하는 컴퓨터-구현 프로세스를 생성하기 위해 일련의 동작 단계들이 상기 컴퓨터 또는 다른 프로그램가능 장치상에서 수행되게 하도록 상기 컴퓨터 또는 다른 프로그램가능 장치상에 로드될 수 있다.
따라서, 플로차트의 블록들 또는 단계들은 특정된 기능들을 수행하는 수단들의 조합들, 특정된 기능들을 수행하는 단계들의 조합들 및 특정된 기능들을 수행하는 프로그램 명령어 수단을 지원한다. 또한 당업자라면 플로차트의 하나 이상의 블록들, 및 플로차트의 블록들 또는 단계들의 조합들이 특정된 기능들 또는 단계들을 수행하는 특수 목적용 하드웨어 기반 컴퓨터 시스템들 또는 특수 목적용 하드웨어 및 컴퓨터 명령어들의 조합들에 의해 구현될 수 있음을 이해할 것이다.
이와 관련하여, 도 6에 도시된 바와 같은 한 전형적인 실시예에 따른 이동 기기 상호운영성을 제공하는 방법의 한 실시예는 동작단계 200에서 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것;을 포함한다. 상기 방법은 동작단계 210에서 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 (예컨대, 이동 단말기의 프로세서를 통해) 결정하는 것;을 부가적으로 포함한다. 상기 방법은 동작단계 220에서 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지를 식별하는 것; 및 동작단계 230에서 상기 식별에 기반하여 상기 원격 환경에 대해 프레임 버퍼의 선택된 부분을 업데이트하는 것;을 부가적으로 포함할 수 있다.
몇몇 실시예들에서는, 상기 방법이 도 6에서 점선으로 도시된 추가적인 옵션 동작단계들을 포함할 수 있다. 이 때문에, 예를 들면, 상기 방법은 동작단계 202에서 리프레시 통지 이벤트가 상기 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하는 것;을 부가적으로 포함할 수 있다. 어떤 경우에, 상기 방법은 프로세서 로딩 정보에 액세스하는 것;을 부가적으로 포함할 수 있는데, 이 경우에 상기 스캔 주기를 결정하는 것은 동작단계 206에서 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함한다. 어떤 경우에, 상기 방법은 동작단계 204에서 상기 스캔 주기를 결정하는데 사용하기 위한 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하는 것;을 부가적으로 포함할 수 있다.
어떤 실시예에서, 상기 동작단계들 중 몇몇 동작단계들은 이하에서 설명되는 바와 같이 수정되거나 부가적으로 부연될 수 있다. 이와 관련하여, 어떤 경우에는, 상기 프로세서 로딩 정보에 액세스하는 것이 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 것을 포함할 수 있다. 어떤 경우에는, 상기 스캔 주기를 결정하는 것이 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 것을 포함할 수 있다. 어떤 경우에는, 상기 선택된 부분의 업데이트를 전달하는 것이 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별하는 것을 포함할 수 있다.
한 전형적인 실시예에서는, 위에 설명된 도 6의 방법을 수행하는 장치는 위에 설명된 동작단계들(200 내지 230) 중 일부 또는 각각을 수행하도록 구성된 프로세서(예컨대, 프로세서(70))를 포함할 수 있다. 상기 프로세서는 예를 들면 하드웨어 구현 논리 기능들을 수행함으로써, 저장된 명령어들을 실행함으로써, 또는 상기 동작단계들(200 내지 230) 각각을 수행하는 알고리즘들을 실행함으로써 상기 동작단계들을 수행하도록 구성될 수 있다. 변형적으로는, 상기 장치는 위에 설명된 동작단계들 각각을 수행하는 수단을 포함할 수 있다. 이와 관련하여, 한 전형적인 실시예에 의하면, 동작단계들(200-230)을 수행하는 수단들의 예들은 예를 들면 상기 프로세서(70), 상기 원격 UI 서버(40), 및/또는 위에서 설명된 바와 같이 명령어들을 실행하거나 정보를 프로세싱하는 알고리즘을 실행하는 기기 또는 회로를 포함할 수 있다. 이와 관련하여, 한 전형적인 실시예에 의하면, 동작단계들(200 내지 230)을 수행하는 수단들의 예들은 예를 들면 상기 프로세서(70), 상기 원격 UI 서버(40), 및/또는 위에 설명된 바와 같이 명령어들을 실행하거나 정보를 프로세싱하는 알고리즘을 실행하는 기기 또는 회로에 연관된 구조를 포함할 수 있다. 이 때문에, 몇몇 실시예들에서는, 도 6의 방법을 수행하는 장치는 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함할 수 있다. 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 프로세서와 함께, 상기 동작단계들(200 내지 230)을 수행하도록 구성될 수 있다.
본 발명의 한 실시예에 따른 한 전형적인 방법에서는, 상기 방법이 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를, 이동 단말기의 프로세서를 통해, 결정하는 것; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 것; 및 상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 것;을 포함할 수 있다. 어떤 경우에는, 상기 방법이 리프레시 통지 이벤트가 상기 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하는 것;을 부가적으로 포함할 수 있다. 어떤 경우에, 상기 방법은 프로세서 로딩 정보에 액세스하는 것;을 부가적으로 포함할 수 있는데, 이 경우에 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함한다. 어떤 경우에, 상기 프로세서 로딩 정보에 액세스하는 것은 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 것을 포함할 수 있다. 어떤 경우에는, 상기 스캔 주기를 결정하는 것이 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 것을 포함할 수 있다. 어떤 경우에, 상기 방법은 상기 스캔 주기를 결정하는데 사용하기 위해 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하는 것;을 부가적으로 포함할 수 있다. 어떤 경우에는, 상기 선택된 부분의 업데이트를 전달하는 것이 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별하는 것을 포함할 수 있다.
본 발명의 한 실시예에 따른 한 전형적인 장치는 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금 적어도, 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를, 이동 단말기의 프로세서를 통해, 결정하는 것; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 것; 및 상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 것;을 수행하게 하도록 구성된다. 어떤 경우에, 상기 장치는 리프레시 통지 이벤트가 상기 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하도록 부가적으로 구성될 수 있다. 어떤 경우에는, 상기 장치가 프로세서 로딩 정보에 액세스하도록 부가적으로 구성될 수 있는데, 이 경우에 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함한다. 어떤 경우에, 상기 프로세서 로딩 정보에 액세스하는 것은 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 것을 포함할 수 있다. 어떤 경우에는, 상기 스캔 주기를 결정하는 것이 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 것을 포함할 수 있다. 어떤 경우에, 상기 장치는 상기 스캔 주기를 결정하는데 사용하기 위해 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하도록 부가적으로 구성될 수 있다. 어떤 경우에는, 상기 선택된 부분의 업데이트를 전달하는 것이 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별하는 것을 포함할 수 있다. 어떤 경우에는, 상기 장치는 사용자 인터페이스를 포함할 수 있다.
한 전형적인 실시예에 따른 한 전형적인 컴퓨터 프로그램 제품은 컴퓨터-실행가능 프로그램 코드 부분들이 수록된 적어도 하나의 컴퓨터-판독가능 매체(예컨대, 일시적이지 않은(non-transitory) 저장 매체)를 포함할 수 있다. 상기 컴퓨터-실행가능 프로그램 코드 부분들은 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 프로그램 코드 명령어들; 데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 프로그램 코드 명령어들; 비교적 오래된 데이터와 비교적 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 프로그램 코드 명령어들; 및 상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 프로그램 코드 명령어들;을 포함할 수 있다. 어떤 경우에는, 상기 컴퓨터 프로그램 제품이 리프레시 통지 이벤트가 상기 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하는 명령어들;을 부가적으로 포함할 수 있다. 어떤 경우에, 상기 컴퓨터 프로그램 제품은 프로세서 로딩 정보에 액세스하는 명령어들;을 부가적으로 포함할 수 있는데, 이 경우에 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함한다. 어떤 경우에, 상기 프로세서 로딩 정보에 액세스하는 것은 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 것을 포함할 수 있다. 어떤 경우에는, 상기 스캔 주기를 결정하는 것이 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 것을 포함할 수 있다. 어떤 경우에, 상기 컴퓨터 프로그램 제품은 상기 스캔 주기를 결정하는데 사용하기 위해 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하는 명령어들;을 부가적으로 포함할 수 있다. 어떤 경우에는, 상기 선택된 부분의 업데이트를 전달하는 것이 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별하는 것을 포함할 수 있다.
본 명세서에 기재된 본 발명의 여러 수정예 및 다른 실시예들이 위의 설명들 및 관련 도면들에 제시된 교시들의 이점을 가지는 본 발명에 속하는 당업자에게 고려될 수 있을 것이다. 그러므로, 여기서 이해해야 할 점은 본 발명이 개시된 특정 실시예들에 국한되는 것이 아니고 수정예들 및 다른 실시예들이 첨부된 청구항들의 범위에 포함되는 것이라는 점이다. 더욱이, 위의 설명들 및 관련 도면들이 요소들 및/또는 기능들의 어떤 전형적인 조합들의 문맥으로 전형적인 실시예들을 보여주고 있지만, 여기서 알아야 할 점은 요소들 및/또는 기능들의 다른 조합들이 첨부된 청구항들의 범위로부터 벗어 않는 변형 실시예들에 의해 제공될 수 있다는 점이다. 이와 관련하여, 예를 들면, 위에 명시적으로 설명된 것들과는 다른 요소들 및/또는 기능들의 상이한 조합들도 또한 첨부된 청구항들 중 일부 청구항들에 기재될 수 있는 것으로 고려된다. 비록 특정 용어들이 본 명세서에 채용되어 있지만, 상기 특정 용어들은 일반적이고 설명의 의미로 사용된 것일 뿐이며 제한의 목적으로 사용된 것이 아니다.

Claims (20)

  1. 원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것과,
    데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를, 이동 단말기의 프로세서를 통해, 결정하는 것과,
    오래된 데이터와 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 것과,
    상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 것을 포함하는
    방법.
  2. 제1항에 있어서,
    상기 방법은,
    리프레시 통지 이벤트가 상기 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하는 것을 더 포함하는
    방법.
  3. 제1항에 있어서,
    상기 방법은,
    프로세서 로딩 정보에 액세스하는 것을 더 포함하며, 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함하는
    방법.
  4. 제3항에 있어서,
    상기 프로세서 로딩 정보에 액세스하는 것은 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 것을 포함하는
    방법.
  5. 제1항에 있어서,
    상기 스캔 주기를 결정하는 것은 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 것을 포함하는
    방법.
  6. 제1항에 있어서,
    상기 방법은,
    상기 스캔 주기를 결정하는데 사용하기 위해 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하는 것을 더 포함하는
    방법.
  7. 제1항에 있어서,
    상기 선택된 부분의 업데이트를 전달하는 것은 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별하는 것을 포함하는
    방법.
  8. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서와 함께, 상기 장치로 하여금 적어도,
    원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 것과,
    데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 것과,
    오래된 데이터와 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 것과,
    상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 것을 수행하게 하도록 구성되는
    장치.
  9. 제8항에 있어서,
    상기 장치는 리프레시 통지 이벤트가 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하도록 구성되는
    장치.
  10. 제8항에 있어서,
    상기 장치는 프로세서 로딩 정보에 액세스하도록 더 구성되며, 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함하는
    장치.
  11. 제10항에 있어서,
    상기 장치는 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스함으로써 상기 프로세서 로딩 정보에 액세스하도록 구성되는
    장치.
  12. 제8항에 있어서,
    상기 장치는 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정함으로써 상기 스캔 주기를 결정하도록 구성되는
    장치.
  13. 제8항에 있어서,
    상기 장치는 상기 스캔 주기를 결정하는데 사용하기 위해 프로세서 로딩 정보에 액세스해야 할 지의 여부를 판단하도록 더 구성되는
    장치.
  14. 제8항에 있어서,
    상기 장치는 상기 데이터 변경에 해당하는 프레임의 직사각형 부분의 좌표들을 식별함으로써 상기 선택된 부분의 업데이트를 전달하도록 구성되는
    장치.
  15. 제8항에 있어서,
    상기 장치는 사용자 인터페이스를 더 포함하는
    장치.
  16. 컴퓨터-실행가능 프로그램 코드 부분들이 저장된 적어도 하나의 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터-실행가능 프로그램 코드 부분들은,
    원격 환경으로부터 프레임 버퍼 업데이트 요구를 수신하는 프로그램 코드 명령어들과,
    데이터 변경들을 결정하는 스캐닝이 이루어지게 하는 프레임 버퍼의 제1 부분 및 데이터 변경들을 결정하는 스캐닝이 이루어지지 않게 하는 프레임 버퍼의 제2 부분을 정의하는 스캔 주기를 결정하는 프로그램 코드 명령어들과,
    오래된 데이터와 새로운 데이터를 비교함으로써 상기 프레임 버퍼의 제1 부분에서 데이터 변경이 이루어지는 지의 여부를 식별하는 프로그램 코드 명령어들과,
    상기 식별에 기반하여 상기 원격 환경에 대해 상기 프레임 버퍼의 선택된 부분을 업데이트하는 프로그램 코드 명령어들을 포함하는
    컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  17. 제16항에 있어서,
    상기 컴퓨터-실행가능 프로그램 코드 부분들은,
    리프레시 통지 이벤트가 이동 단말기의 디스플레이 드라이버로부터 수신되었는지를 판단하고 상기 리프레시 통지의 수신에 응답하여 스캔 주기를 결정하거나 상기 리프레시 통지의 수신이 없음에 응답하여 상기 원격 환경에 프레임 버퍼 업데이트가 없는 메시지 또는 빈 프레임 버퍼 업데이트 메시지 중의 하나를 전송하는 프로그램 코드 명령어들을 더 포함하는
    컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  18. 제16항에 있어서,
    상기 컴퓨터-실행가능 프로그램 코드 부분들은,
    프로세서 로딩 정보에 액세스하는 프로그램 코드 명령어들을 더 포함하며, 상기 스캔 주기를 결정하는 것은 프로세서 로딩 정보에 기반하여 상기 스캔 주기를 결정하는 것을 포함하는
    컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  19. 제18항에 있어서,
    상기 프로세서 로딩 정보에 액세스하는 프로그램 코드 명령어들은 단지 상기 식별의 초기 반복에 응답하여서만 또는 상기 프레임 버퍼가 사전 스캔 주기를 사용하여 전체적으로 횡단되었다라는 표시에 응답하여 프로세서 로딩 정보에 액세스하는 명령어들을 포함하는
    컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  20. 제16항에 있어서,
    상기 스캔 주기를 결정하는 프로그램 코드 명령어들은 상기 프레임 버퍼를 횡단하는 동안 하나의 픽셀을 스캐닝한 후에 스킵될 픽셀들의 고정 스킵 주기를 결정하는 명령어들을 포함하는
    컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020127002542A 2009-06-30 2010-06-30 이동 기기의 상호운영성을 제공하는 방법 및 장치 KR101367718B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22184509P 2009-06-30 2009-06-30
US61/221,845 2009-06-30
PCT/IB2010/001594 WO2011001259A1 (en) 2009-06-30 2010-06-30 Method and apparatus for providing mobile device interoperability

Publications (2)

Publication Number Publication Date
KR20120042883A KR20120042883A (ko) 2012-05-03
KR101367718B1 true KR101367718B1 (ko) 2014-02-26

Family

ID=43381953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002542A KR101367718B1 (ko) 2009-06-30 2010-06-30 이동 기기의 상호운영성을 제공하는 방법 및 장치

Country Status (5)

Country Link
US (1) US8255531B2 (ko)
EP (1) EP2449550B1 (ko)
KR (1) KR101367718B1 (ko)
CN (1) CN102460564B (ko)
WO (1) WO2011001259A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549418B2 (en) * 2009-12-23 2013-10-01 Intel Corporation Projected display to enhance computer device use
US20120229492A1 (en) * 2010-10-11 2012-09-13 Shang-Shian Chen Projecting Method and Mobile Device Thereof
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US8918453B2 (en) * 2012-01-03 2014-12-23 Qualcomm Incorporated Managing data representation for user equipments in a communication session
JP5962763B2 (ja) * 2012-09-24 2016-08-03 富士通株式会社 情報処理装置、端末装置、及び画像送信管理方法
CN103770729A (zh) * 2012-10-24 2014-05-07 广明光电股份有限公司 移动装置控制车载装置的方法
US8904444B2 (en) * 2012-11-15 2014-12-02 Motorola Mobility Llc Scalable data acquisition and accumulation in a resource constrained environment
US9235564B2 (en) * 2013-07-19 2016-01-12 International Business Machines Corporation Offloading projection of fixed and variable length database columns
US10311154B2 (en) * 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
US9722859B2 (en) * 2014-01-23 2017-08-01 International Business Machines Corporation Evaluation of field replaceable unit dependencies and connections
US10540136B2 (en) * 2016-05-24 2020-01-21 Dell Products, L.P. Faster frame buffer rendering over a network
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
EP4220076B1 (en) * 2017-11-30 2024-08-14 Leica Biosystems Imaging, Inc. Managing plural scanning devices in a high-throughput laboratory environment
EP3737595B1 (en) 2018-01-09 2023-12-27 TuSimple, Inc. Real-time remote control of vehicles with high redundancy
US10924053B2 (en) * 2018-03-28 2021-02-16 Abb Schweiz Ag Method for remote support of electric drive apparatus
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US11089356B2 (en) 2019-03-26 2021-08-10 Rovi Guides, Inc. Systems and methods for media content hand-off based on type of buffered data
CN111309420A (zh) * 2020-02-06 2020-06-19 Tcl移动通信科技(宁波)有限公司 开机画面显示方法及其系统、存储介质及终端设备
US11295801B1 (en) * 2020-09-21 2022-04-05 Silicon Motion, Inc. Method for managing flash memory module and associated flash memory controller and memory device
US12010365B2 (en) * 2022-03-31 2024-06-11 Comcast Cable Communications, Llc Methods and systems for content management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050012679A1 (en) 2003-07-18 2005-01-20 Karlov Donald David Systems and methods for updating a frame buffer based on arbitrary graphics calls
EP1262939B1 (en) * 2001-05-31 2012-02-01 Nokia Corporation Method and apparatus for updating a frame buffer with reduced power consumption

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134697A (en) * 1987-11-16 1992-07-28 Prime Computer Remote memory-mapped display with interactivity determination
US5606559A (en) * 1995-08-11 1997-02-25 International Business Machines Corporation System and method for an efficient ATM adapter/device driver interface
WO1999016044A1 (en) * 1997-09-23 1999-04-01 Microsoft Corporation Frame updating in interlaced animation systems
EP1248250A1 (en) * 2001-04-04 2002-10-09 Sun Microsystems, Inc. Optimized data access for drawing operations
US7109997B1 (en) * 2002-06-28 2006-09-19 Microsoft Corporation Systems and methods for direct storage of compressed scan converted data
US7260624B2 (en) 2002-09-20 2007-08-21 American Megatrends, Inc. Systems and methods for establishing interaction between a local computer and a remote computer
US20040093432A1 (en) 2002-11-07 2004-05-13 Eastman Kodak Company Method and system for conducting image processing from a mobile client device
US7248267B2 (en) * 2003-03-20 2007-07-24 International Business Machines Corporation Method and apparatus for simulated direct frame buffer access for graphics adapters
US20050132055A1 (en) 2003-12-12 2005-06-16 Raja Neogi System and method to control appliances using adaptive interfaces
CN101103326B (zh) * 2004-11-24 2012-02-15 高通股份有限公司 用于在通信链路上同步执行命令的方法
EP2317688A3 (en) * 2004-11-24 2012-03-21 QUALCOMM Incorporated System and methods for implementing cyclic redundancy checks
JP4405419B2 (ja) * 2005-03-31 2010-01-27 株式会社東芝 画面送信装置
JP4779756B2 (ja) 2006-03-29 2011-09-28 カシオ計算機株式会社 コンピュータシステムにおけるサーバ装置及びサーバ制御プログラム
US20070279389A1 (en) 2006-05-31 2007-12-06 Samsung Electronics Co., Ltd. Method of task-oriented universal remote control user interface
US7869824B2 (en) 2006-09-06 2011-01-11 Byung Woo Min Cell phone with remote control system
JP4176122B2 (ja) * 2006-10-24 2008-11-05 株式会社東芝 サーバ端末、画面共有方法およびプログラム
WO2009032708A2 (en) 2007-09-04 2009-03-12 Apple Inc. Protocol for remote user interface for portable media device
CN101472236A (zh) * 2007-12-26 2009-07-01 北京华夏未来信息技术有限公司 一种应用系统发布的方法和装置
CN101247568A (zh) * 2008-03-12 2008-08-20 中兴通讯股份有限公司 数据容灾系统和方法及中间设备
US20090033669A1 (en) 2008-10-06 2009-02-05 Hochmuth Roland M System And Method For Communicating Graphics Image Data Over A Communication Network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1262939B1 (en) * 2001-05-31 2012-02-01 Nokia Corporation Method and apparatus for updating a frame buffer with reduced power consumption
US20050012679A1 (en) 2003-07-18 2005-01-20 Karlov Donald David Systems and methods for updating a frame buffer based on arbitrary graphics calls

Also Published As

Publication number Publication date
EP2449550B1 (en) 2020-03-25
EP2449550A4 (en) 2014-11-26
CN102460564A (zh) 2012-05-16
EP2449550A1 (en) 2012-05-09
US20100332654A1 (en) 2010-12-30
WO2011001259A1 (en) 2011-01-06
CN102460564B (zh) 2015-02-11
KR20120042883A (ko) 2012-05-03
US8255531B2 (en) 2012-08-28

Similar Documents

Publication Publication Date Title
KR101367718B1 (ko) 이동 기기의 상호운영성을 제공하는 방법 및 장치
US8375304B2 (en) Maintaining state of a web page
US8630512B2 (en) Dynamic client-server video tiling streaming
JP5451397B2 (ja) リモートインターラクションに応答してビデオコンテンツを配信するためのアーキテクチャー
US8671435B2 (en) Method and system for visualizing an adaptive screen according to a terminal
US9177009B2 (en) Generation based update system
US20240187656A1 (en) Interface loading method, terminal device, server and storage medium
US20090006977A1 (en) Method and System of Computer Remote Control that Optimized for Low Bandwidth Network and Low Level Personal Communication Terminal Device
CN106658064B (zh) 虚拟礼物展示方法及装置
KR101325026B1 (ko) 스마트 단말을 이용한 안드로이드 플랫폼 기반의 애플리케이션 실행 단말 제어방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
CN102750067A (zh) 一种基于手持设备的大屏幕交互方法
CN113368492A (zh) 渲染的方法、装置
JP2023522914A (ja) 情報の切り替え・共有方法、装置、電子デバイス及び記憶媒体
EP3460656B1 (en) Method and apparatus for determining decoding task
US20160155429A1 (en) Information processing apparatus and terminal device
US20230276079A1 (en) Live streaming room page jump method and apparatus, live streaming room page return method and apparatus, and electronic device
TWI427531B (zh) 遠端管理系統及其方法
US9571600B2 (en) Relay device, relay method and thin client system
US8688799B2 (en) Methods, apparatuses and computer program products for reducing memory copy overhead by indicating a location of requested data for direct access
KR101415249B1 (ko) 어플리케이션의 제작 및 실행을 지원하는 방법 및 장치
KR101892952B1 (ko) 클라우드 스트리밍 서비스 시스템, 이벤트 기반 프레임 레이트 조절 방법 및 이를 위한 장치
KR20240144413A (ko) 페이지 표시 방법 및 장치, 전자 디바이스, 저장 매체 및 프로그램 제품

Legal Events

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

Payment date: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 6