KR20140113415A - 작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법 - Google Patents

작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR20140113415A
KR20140113415A KR1020140028848A KR20140028848A KR20140113415A KR 20140113415 A KR20140113415 A KR 20140113415A KR 1020140028848 A KR1020140028848 A KR 1020140028848A KR 20140028848 A KR20140028848 A KR 20140028848A KR 20140113415 A KR20140113415 A KR 20140113415A
Authority
KR
South Korea
Prior art keywords
trigger
module
task
host
combination
Prior art date
Application number
KR1020140028848A
Other languages
English (en)
Other versions
KR102200944B1 (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 KR20140113415A publication Critical patent/KR20140113415A/ko
Application granted granted Critical
Publication of KR102200944B1 publication Critical patent/KR102200944B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법이 개시된다. 컴퓨팅 시스템은 작업의 프로세싱에서 일시 정지 포인트(pause point)를 캡처(capture)하기 위한 프로세스 프로파일을 결정하도록 구성된 상태 모듈(status module); 상태 모듈에 연결되고, 일시 정지 포인트를 캡처하기 위한 프로세스 콘텐트를 식별하도록 구성된 콘텐트 모듈(content module); 콘텐트 모듈에 연결되고, 프로세스 프로파일과 프로세스 콘텐트를 저장하도록 구성된 업로드 모듈(upload module); 및 업로드 모듈에 연결되고, 일시 정지 포인트(pause point)로부터 작업을 재개하고 디바이스 상에 표시하기 위하여, 프로세스 프로파일과 프로세스 콘텐트를 저장할 경우, 재개 트리거(resumption trigger)를 생성하도록 구성된 트리거 합성 모듈(trigger synthesis module)을 포함한다.

Description

작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법 {COMPUTING SYSTEM WITH TASK TRANSFER MECHANISM AND METHOD OF OPERATION THEREOF}
본 발명의 실시 예는 대개 컴퓨팅 시스템과 관련되어 있지만, 보다 구체적으로 작업을 전송하는 시스템과 관련되어 있다.
현대의 소비자와 산업 전자기기들 (예로 컴퓨터 시스템, 텔레비전, 핸드폰, 휴대용 정보 단말기, 프로젝터 및 이들의 결합 장치들)은 현대적 삶을 영위하기 위한 기능적인 측면의 향상에 도움을 주고 있다. 현존하는 기술에 대한 조사와 개발들로도 수많은 다른 방향으로 나아갈 수 있도록 할 수 있다.
현대 사회에서 정보에 대한 수요의 급증은 사용자로 하여금 하루 전반에 걸쳐 언제든 얼마 동안이든 이러한 정보에 접근을 요구하게 하고, 다양한 소비자 디바이스들은 증가된 기능성을 허용하게 한다. 그러나, 소비자 디바이스들 간의 상호작용은 한계가 있고, 사용자에게 완전히 활용되기 어렵다.
그래서, 정보를 전송하는 기술을 향상시키기 위해 작업 전송 매커니즘을 구현하는 컴퓨팅 시스템이 여전히 필요하다. 소비자의 기대치가 상승하고, 시장에서 의미 있는 상품 차별화의 기회가 감소하는 경향으로 인하여 판매 경쟁으로 인한 압력이 계속하여 증가하고 있다는 점을 고려할 때, 역시 해답을 찾는 것은 매우 중요하다. 게다가 원가 절감, 효율성 및 경쟁력 확보에 대한 측면에서도 이러한 문제에 대한 해결책이 강력히 요구되고 있다.
이러한 문제에 대한 해결 방안은 오랫동안 연구되어 있지만, 이전 선행 연구는 어떠한 해결 방안도 암시하거나 교시하지 않았다. 그러므로 당업자에게 있어서 이 문제에 대한 해결 방안은 명백하지 않다.
본 발명의 일 실시예는, 작업의 프로세싱에서 일시 정지 포인트(pause point)를 캡처(capture)하기 위한 프로세스 프로파일을 결정하도록 구성된 상태 모듈(status module); 상태 모듈에 연결되고, 일시 정지 포인트를 캡처하기 위한 프로세스 콘텐트를 식별하도록 구성된 콘텐트 모듈(content module); 콘텐트 모듈에 연결되고, 프로세스 프로파일과 프로세스 콘텐트를 저장하도록 구성된 업로드 모듈(upload module); 및 업로드 모듈에 연결되고, 일시 정지 포인트(pause point)로부터 작업을 재개하고 디바이스 상에 표시하기 위하여, 프로세스 프로파일과 프로세스 콘텐트를 저장할 경우, 재개 트리거(resumption trigger)를 생성하도록 구성된 트리거 합성 모듈(trigger synthesis module)을 포함하는 컴퓨팅 시스템을 제공한다.
본 발명의 일 실시예는, 작업의 프로세싱에서 일시 정지 포인트를 캡처하기 위하여 프로세스 프로파일을 결정하는 단계; 일시 정지 포인트를 캡처하기 위하여 프로세스 콘텐트를 인식 하는 단계; 프로세스 콘텐트와 프로세스 프로파일을 저장하는 단계; 일시 정지 포인트로부터 작업을 재개하고 디바이스상에 표시하기 위하여 프로세스 프로파일과 프로세스 콘텐트를 저장할 경우, 재개 트리거를 생성하는 단계를 포함하는 방법을 제공한다.
본 발명의 일 실시예는, 작업의 프로세싱에서 일시 정지 포인트를 캡처하기 위하여 프로세스 프로파일을 결정하는 단계; 일시 정지 포인트를 캡처하기 위하여 프로세스 콘텐트를 인식 하는 단계; 프로세스 콘텐트와 프로세스 프로파일을 저장하는 단계; 일시 정지 포인트로부터 작업을 재개하고 디바이스상에 표시하기 위하여 프로세스 프로파일과 프로세스 콘텐트를 저장할 경우, 재개 트리거를 생성하는 단계를 포함하는 방법을 실행 가능하게 하는 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 제공한다.
본 발명의 어떠한 실시 예는 상기 언급된 것 외에도 다른 단계나 구성요소를 가질 수 있다. 이러한 단계나 구성요소는 발명의 상세한 설명과 도면을 참조한다면 당업자가 보기에 명백할 것이다.
정보를 전송하는 기술을 향상시키기 위한 작업 전송 매커니즘을 제공한다.
도 1은 본 발명의 일 실시 예로써 작업 전송 매커니즘이 구현된 컴퓨팅 시스템이다.
도 2는 제 1 디바이스의 예시 화면과 제 2 디바이스의 예시 화면이다.
도 3은 화면 인터페이스의 예시이다.
도 4는 또 다른 화면 인터페이스의 예시이다.
도 5는 또 다른 화면 인터페이스의 예시이다.
도 6은 또 다른 화면 인터페이스의 예시이다.
도 7은 컴퓨팅 시스템의 예시적인 블록도이다.
도 8은 또 다른 컴퓨팅 시스템의 예시적인 블록도이다.
도 9는 컴퓨팅 시스템의 제어 흐름도이다.
도 10은 본 발명의 일 실시 예로써 컴퓨팅 시스템의 동작 방법의 절차도이다.
다음 실시 예는 작업을 일시 중지하고, 다른 장치를 사용하여 나중에 작업을 계속 할 수 있게끔 사용될 수 있다. 작업을 일시 중지하는 프로세스는 업로드 트리거(upload-trigger)와 프로세스를 사용하여 개시될 수 있다. 작업의 진행을 특징짓는 일시 중지 포인트는 프로세스 프로파일과 프로세스 콘텐트를 사용하여 캡쳐되고, 저장되고, 전송되고, 이에 대한 조합이 될 수 있다.
다음 실시 예에서, 예를 들면, 작업을 계속하기 위한 조건, 상황, 또는 이에 대한 조합을 제어하기 위한 재개 트리거(resumption-trigger)는 일시 정지 포인트와 관련된 캡처, 저장, 전송과 동시에 생성될 수 있다. 작업이 작업 큐(task queue)를 사용하여 화면에 표시될 수 있고, 조직화 될 수 있고, 검색될 수 있고, 요청될 수 있고, 여과될 수 있고, 일정화될 수 있고, 또는 이에 대한 조합이 될 수 있다. 작업이 작업 큐에 기초하여 재개 될 수 있고, 상황, 조건 또는 이에 대한 조합이 재개 트리거와 일치할 때 재개 될 수 있다.
다음 실시 예에서, 예를 들어, 프로세스 프로파일, 프로세스 콘텐트, 작업 공유 그룹, 그리고 전송 트리거(transfer trigger)는 다수의 사용자, 다수의 디바이스, 또는 이에 대한 조합들 간에 치밀한 통합을 허용하게 할 수 있다. 작업 공유 그룹은 특정화된 그룹에 한해 접속이 허용되게 하고, 프로세스 프로파일, 프로세스 콘텐트, 및 전송 트리거는 전송 트리거에 의해 허용되는 어떠한 디바이스로부터의 작업의 접속, 지속, 업데이트를 허용해 준다.
또한, 작업 큐는 일상 활동을 추적하고 사용자를 위한 미완성 활동을 관리하는 능력을 제공할 수 있다. 작업 큐는 작업이 마지막으로 접속되고 일시 정지될 때를 추적할 수 있고, 현재 접속하고 있거나 작업의 일부를 실행하기 위해 이전에 접속하였던 어떤 디바이스든지 관계없이 이전 세션 동안 멈췄던 곳을 사용자에게 보여줄 수 있다. 작업 큐는 작업의 미완성 인스턴스를 위해 작업의 스케줄화, 검색, 필터, 또는 이들의 조합을 위해 사용될 수 있다.
다음의 실시 예는 당업자가 본 발명을 만들고 사용할 수 있도록 충분히 상세하게 설명하고 있다. 다른 실시 예들은 본 개시 내용에 기초하여 명백할 것이며, 그 시스템, 프로세스 또는 기계적 변화가 본 발명의 실시 형태의 범위를 벗어나지 않고 이루어질 수 있다.
다음의 설명에서 수많은 특정 세부 사항은 본 발명의 완전한 이해를 제공하기 위해 주어질 것이다. 그러나 본 발명이 이들 특정 세부 사항 없이도 실시 될 수 있음은 자명할 것이다. 본 발명의 실시 예를 모호하게 하는 것을 피하기 위하여, 몇몇 잘 알려진 회로, 시스템 구성 및 공정 단계 는 상세하게 개시하지 않는다.
시스템의 실시 예에 관한 도면은 반 도식화되어 있고 반드시 비율에 따라 확대 또는 축소되지 않으며, 차원의 일부는 설명의 명확성을 위해 과장하여 표시되었다. 마찬가지로 설명의 편의를 위해 도면의 시점을 일반적으로 비슷한 방향으로 표시하였지만 도면의 묘사는 대부분의 경우 임의적이다. 일반적으로, 본 발명은 임의의 방향으로 동작할 수 있다. 실시 예는 설명이 편의상 등 제 1 실시 예, 제 2 실시 예로 번호를 붙였지만, 이는 발명의 다른 의미를 부여하거나 본 발명의 실시 예에 대한 제한을 하는 것은 아니다.
본원에서 언급된 “모듈”은 이 용어가 사용된 문맥에 따라 소프트웨에, 하드웨어 또는 이들의 조합을 포함한다. 예를 들어 소프트웨어는 기계어(machine code), 펌웨어(firmware), 임베디드 코드(embedded code) 그리고 응용 소프트웨어(application software)를 의미할 수 있다. 또한 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어, 압력 센서, 관성 센서, MEMS, 수동 소자 또는 이들의 조합을 의미할 수 있다.
도 1을 보면, 본 발명의 일 실시 예로서 작업 전송 매커니즘을 구현한 컴퓨팅 시스템(100)이 나타나 있다. 컴퓨팅 시스템(100)은 클라이언트 또는 서버로서의 제 1 디바이스(102)와 이에 연결된, 클라이언트 또는 서버로서의 제 2 디바이스(106)를 포함한다. 컴퓨팅 시스템(100)은 또한, 클라이언트 또는 서버로서의 호스트 디바이스(108)와 이에 연결된 제 1 디바이스(102), 제 2 디바이스(106), 또는 이들의 조합을 포함한다. 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합은 유선 또는 무선과 같은 통신 경로(104)를 사용하여 통신한다.
예를 들어, 제 1 디바이스(102), 제 2 디바이스(106), 또는 이들의 조합은 휴대폰, PDA(personal digital assistant), 노트북, 차량용 테레매틱스 네비게이션(automotive telematics navigation system), 또는 다른 다기능 모바일 통신, 엔터테인먼트 디바이스와 같은 다양한 디바이스들의 어떤 것이 될 수 있다. 제 1 디바이스(102), 제 2 디바이스(106), 또는 이들의 조합은 서로 또는 호스트 디바이스(108)와 통신하기 위해 직접 또는 간접으로 통신 경로(104)와 연결될 수 있고, 독립적인 디바이스가 될 수도 있다. 제 1 디바이스(102), 제 2 디바이스(106), 또는 이들의 조합은은 독립적인 장치가 될 수 있다.
설명을 위해, 컴퓨팅 시스템(100)은 휴대 가능한 컴퓨팅 디바이스로서의 제 1 디바이스(102)를 가질 수 있지만, 제 1 디바이스(102)는 다른 유형의 디바이스가 될 수도 있다. 예로, 제 1 디바이스(102)는 이미지를 나타내거나, 멀티미디어 프레젠테이션을 위한 디바이스 또는 서버가 될 수 있다. 멀티미디어 프레젠테이션은 소리, 스트리밍 이미지의 시퀀스, 비디오 피드(video feed), 또는 이들의 조합을 포함하는 프레젠테이션이 될 수 있다. 한 예로, 제 1 디바이스(102)는 고화질 또는 삼차원 텔레비전, 컴퓨터 모니터, 또는 멀티미디어 세트가 될 수 있다.
또한, 설명을 위해, 컴퓨팅 시스템(100)은 비 모바일 컴퓨팅 디바이스로써 제 2 디바이스(106)를 가질 수 있지만, 제 2 디바이스(106)는 다른 유형의 디바이스가 될 수도 있다. 예를 들어, 제 2 디바이스(106)는 랩톱 컴퓨터, 스마트 폰, 태플릿 컴퓨터와 같은 서버 또는 휴대 가능한 컴퓨팅 디바이스가 될 수도 있다.
호스트 디바이스(108)는 다양한 유형의 중앙 집중적 또는 분산 컴퓨팅 디바이스, 또는 비디오 전송 디바이스 중 어떤 것이든 될 수 있다. 예를 들어, 호스트 디바이스(108)는 멀티미디어 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 비디오 게임 콘솔, 그리드 컴퓨팅 리소스, 가상화된 컴퓨터 리소스, 클라우드 컴퓨팅 리소스, 라우터, 스위치, 피어 투 피어(peer-to-peer) 분산 컴퓨팅 시스템, 또는 이들의 조합이 될 수 있다.
호스트 디바이스(108)는 단일 공간에 집중화 될 수 있고, 상이한 공간에 분산화 될 수 있고, 서로 다른 지리적 위치에 걸쳐 분산화 되거나, 통신(telecommunication) 네트워크에 내장화 될 수 있다. 호스트 디바이스(108)는 제 1 디바이스(102), 제 2 디바이스(106)와 통신하기 위해 통신 경로(104)와 결합 할 수 있다. 호스트 디바이스(108)는 제 1 디바이스(102)에서 설명한 바와 같이 클라이언트 유형의 디바이스가 될 수 있다.
설명을 위해, 호스트 디바이스(108)는 다양한 유형의 디바이스가 될 수 있지만, 통신 시스템(100)은 컴퓨팅 디바이스로써의 호스트 디바이스(108)와 함께 설명된다. 또 다른 예시적 목적을 위해, 컴퓨팅 시스템(100)은 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108)가 통신 경로(104)의 양 끝으로 연결 된 것으로 볼 수 있지만, 컴퓨팅 시스템(100)은 제 1 디바이스(102)와 제 2 디바이스(106)와 호스트 디바이스(108)와 통신 경로(104) 사이의 다른 파티션(partition)을 가질 수 있다고 볼 수 있다. 예를 들어, 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합은 또한 통신 경로(104)의 일부로서 기능 할 수 있다.
통신 경로(104)는 다양한 유형의 네트워크 및 네트워크 토폴로지로 나타낼 수 있고 확장(span)할 수 있다. 예를 들어, 통신 경로(104)는 무선통신, 유선통신, 광학, 초음파, 또는 이들의 조합을 포함할 수 있다. 위성통신, 셀룰러 통신(cellular communication), 블루 투스, 적외선 데이터 협회 표준(IrDA), 와이 파이(WiFi), 와이 맥스(WiMAX)는 통신 경로(104)에 포함될 수 있는 무선통신의 예시들이다. 이더넷(Ethernet), 디지털 가입자 회선(DSL), 광 가입자 망(FTTH), 기존 전화서비스(POTS)는 통신경로(104)에 포함될 수 있는 유선통신의 예시들이다. 또한, 통신 경로(104)는 많은 네트워크 토폴로지와 거리를 통과(traverse)할 수 있다. 예를 들어, 통신 경로(104)는 직접접속, 개인영역네트워크(PAN), 근거리통신망(LAN), 도시권 통신망(MAN), 광역 통신망(WAN) 또는 이들의 조합을 포함할 수 있다.
도 2를 보면, 제 1 디바이스(102)의 화면 인터페이스(202)의 예시도와 제 2 디바이스(106)의 추가 화면(204)이 나타난다. 화면 인터페이스(202), 추가 화면(204), 또는 이들의 조합은 작업(206)을 보여준다. 작업(206)은 도시되지 않은 사용자에 의해 수행 또는 시도 될 예정인 일 또는 활동의 일부분이다. 작업(206)은 컴퓨팅 시스템(100)을 포함하는 다양한 활동이 될 수 있다. 예를 들어, 작업(206)은 이 메일을 전송하거나 받는 것, 비디오 클립을 보는 것, 사진을 촬영하거나 보는 것, 전화를 거는 것, 저장된 데이터에 접속하는 것, 인터넷을 보는 것, 새로운 데이터를 검색하는 것, 문서를 편집하거나 만드는 것, 실행 가능한 소프트웨어를 실행하는 것, 또는 이들의 조합을 포함할 수 있다.
사용자는 작업(206)을 실행하기 위해 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합을 이용할 수 있다. 예를 들어, 사용자는 작업(206)을 실행하기 위해 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에 저장되어 있는 애플리케이션(208)에 접속할 수 있다.
애플리케이션(208)은 특정한 동작을 실행하기 위한 명령어들의 개별적인 세트, 각각의 세트가 될 수 있다. 애플리케이션(208)은 작업(206), 또는 작업(206)의 부분을 실현시키거나 완수하기 위해 사용될 수 있다. 애플리케이션(208)은 소프트웨어 애플리케이션 또는 실행 가능한 파일, 하드웨어 가속기, 하드웨어 디바이스, 또는 이들의 조합이 될 수 있다. 애플리케이션(208)은 작업(206), 또는 그 부분을 완료하기 위한 입력, 출력, 및 중간 데이터를 처리하는 데 사용될 수 있다.
화면 인터페이스(202)는 일시 정지 포인트(210)를 보여줄 수 있다. 일시 정지 포인트(210)는 작업(206)을 수행하는 것에 대한 상태나 진행 상태이다. 일시 정지 포인트(210)는 작업의 시작과 완료 사이에 위치할 수 있다. 일시 정지 포인트(210)는 사용자가 작업(206)을 수행하는 것을 나중에 다시 개시하거나, 다른 디바이스에서 수행할 의도로 멈춘 것에 대한 애플리케이션(208)의 상대적인 부분 또는 상태가 될 수 있다.
일시 정지 포인트(210)는 작업(206)을 수행하기 위해 애플리케이션(208)과 연관된 프로세스, 데이터, 또는 그들의 조합에 의해 나타날 수 있다. 사용자 또는 컴퓨팅 시스템(100)이 작업(206)이 곧 중단될 것이라고 결정할 경우, 일시 정지 포인트(210)는 애플리케이션(208)과 연관된 프로세스, 데이터가 될 수 있다.
컴퓨팅 시스템(100)은 프로세스 프로파일(212), 프로세스 콘텐트(214), 또는 이들의 조합을 이용하여 일시 정지 포인트(210)를 캡처할 수 있다. 프로세스 프로파일(212)은 작업(206)의 수행과 관련된 상태, 위치, 또는 이들의 조합에 대한 설명이다.
예를 들어, 프로세스 프로파일(212)은 명령 또는 단계의 인식(identification), 진행 중 또는 이미 진행 중인 프로세스를 가지는 메모리의 위치, 애플리케이션(208)에 의해 나타나고 접근되는 특정 웹 페이지 또는 스크린을 포함할 수 있다. 또한 예를 들면, 프로세스 프로파일(212)은 일시 정지 포인트(210)에서 실행하는 애플리케이션(208)의 인스턴스 또는 프로세스와 연관된 입력 데이터, 지역 변수, 전역 변수, 출력 데이터, 중간 데이터의 위치 또는 주소에 대응되는 메모리의 위치를 포함할 수 있다.
프로세스 콘텐트(214)는 작업(206)과 관련된 입력, 출력, 중간 데이터이다. 프로세스 콘텐트(214)는 일시 정지 포인트(210)에서 실행하는 애플리케이션(208)의 인스턴스 또는 프로세스와 연관된 입력 데이터, 출력 데이터, 중간 데이터, 지역 또는 전역 변수의 값, 또는 이들의 조합이 될 수 있다. 프로세스 콘텐트(214)는 프로세스 프로파일(212)에 포함되는 부분에 위치한 값 또는 데이터의 인스턴스가 될 수 있다.
예를 들어, 사용자가 스마트 폰에서 이 메일 어플리케이션을 열 수 있다. 컴퓨팅 시스템(100)은 현재 상황 또는 조건(예로 다른 유형의 사용 가능한 디바이스 또는 접속을 위한 콘텐트), 주제어, 메일 함에 들어있는 이 메일의 수에 기반하여, 더 큰 화면, 더욱 접속 가능한 입력 디바이스, 또는 이들의 조합이 사용가능하고 더 적합할 것이라는 것을 인식할 수 있다. 컴퓨팅 시스템(100)은 스마트 폰에서 일시 정지 포인트(210)를 캡처할 수 있고, 사용자의 랩톱 컴퓨터에서 사용자가 작업(206)을 계속하게 끔 일시 정지 포인트(210)를 재생할 수 있다.
예를 계속 하면, 컴퓨팅 시스템(100)은 제 1 디바이스(102)에서 이 메일에 접속하는 작업(206)과 관련된 개인 화면 환경 설정을 저장하는 메모리의 주소, 이 메일의 현재 상태, 서버 주소, 지속되는 명령 단계의 위치 또는 식별을 포함하기 위해 프로세스 프로파일(212)을 결정할 수 있다. 프로세스 프로파일(212)에 대응하는 값은 명령 단계, 서버와의 연결과 관련된 키 또는 세션 식별, 사용 가능한 이 메일에 상응하는 상태 값, 개인 화면 환경 설정, 또는 이들의 조합을 포함할 수 있다.
컴퓨팅 시스템(100)은 다양한 디바이스들을 사용하여 사용자가 작업(206)을 시작하고, 지속하고, 끝내게 할 수 있다. 컴퓨팅 시스템(100)은 나중에 사용자가 작업(206)을 지속하고, 끝내게 할 수 있다. 일시 정지 포인트(210)를 캡처하는 것과 관련된 자세한 사항은 후술에 의한다.
화면 인터페이스(202), 추가 화면(204), 또는 이들의 조합은 사용 가능한 디바이스 인식(available-device identification)(216), 사용 가능한 디바이스 타입(218), 또는 이들의 조합을 화면에 표시할 수 있다. 사용 가능한 디바이스 인식(216)은 특정 디바이스를 인식하기 위해 사용되는 문자, 숫자, 심볼, 또는 이들의 조합이 될 수 있다. 예를 들어, 사용 가능한 디바이스 인식(216)은 제품 명칭, 시리얼 넘버, 사용자 지정 이름, 또는 이들의 조합이 될 수 있다.
사용 가능한 디바이스 타입(218)은 디바이스에 대한 분류가 될 수 있다. 사용 가능한 디바이스 타입(218)은 디바이스에 대한 기능, 특징, 구성 요소, 또는 그들의 조합에 기초할 수 있다.
예를 들어, 사용 가능한 디바이스 타입(218)은 보안 기능이나 소유권과 같이 자격을 만족시키는 디바이스에 대한 데스크탑, 서버, 스마트 폰, 태블릿, 노트북, 텔레비전, 또는 다른 분류가 될 수 있다. 또 다른 예로, 사용 가능한 디바이스 타입(218)은 고화질(HD) 화면 또는 32인치 화면과 같은 화면 인터페이스의 사양을 포함하는, 터치 스크린 또는 키보드와 같은 사용 가능한 입력 매커니즘을 포함하는, 멀티 코어 또는 비즈니스 클래스 머신과 같은 클래스를 처리하는 것을 포함하는 디바이스의 특징 또는 구성 요소를 포함할 수 있다.
도 3을 보면, 화면 인터페이스(202)의 또 다른 예를 볼 수 있다. 화면 인터페이스(202)는 전송 트리거(transfer trigger)(302)를 보여준다. 전송 트리거(302)는 작업(206)을 재개하거나 멈추는 것과 같은 도 2의 작업(206)의 행동에 대한 상태 변화를 개시시키기 위한 조건, 상황, 또는 이들의 조합이다. 전송 트리거(302)는 컴퓨팅 시스템(100)의 다양한 디바이스를 이용하여 멈추거나 지속하거나 하는 등의 행동을 위해 주변 요인이나 상황의 다양한 측면을 포함한다.
전송 트리거(302)는 작업(206)의 수행을 제어하기 위해 업로드 트리거(304), 재개 트리거(306), 트리거 제한(308), 작업 공유 그룹(310), 또는 이들의 조합을 포함할 수 있다. 업로드 트리거(304)는 작업(206)의 수행을 멈추거나 일시 정지하거나 작업의 수행과 연관된 데이터를 저장하는 것을 제어하는 조건, 상황, 또는 이들의 조합이다.
예를 들어, 업로드 트리거(304)는 제 1 디바이스(102)에서 평균 10단어 이상을 사용자가 타이핑할 것을 요구하는 도 2의 어플리케이션(208)의 인스턴스, 제 1 디바이스(102)보다 더 큰 스크린과 키보드를 갖는 제 2 디바이스(106)의 이용 가능성, 두 디바이스 간의 근접성, 또는 이들의 조합을 작업(206)의 수행을 멈추기 위한 필수 조건으로서 가질 수 있다. 업로드 트리거(304)는 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108)에서 작업(206)에 관한 정보를 저장하는 명령, 또는 도 2의 프로세스 프로파일(212), 프로세스 콘텐트(214)와 같은 어플리케이션(208)을 포함할 수 있다.
재개 트리거(306)는 작업(206)을 위한 프로세싱의 지속을 제어하기 위한 조건, 상황, 또는 이들의 조합이다. 재개 트리거(306)는 컴퓨팅 시스템(100)이 저장된 데이터에 접속하게 할 수 있고 컴퓨팅 시스템(100)의 디바이스가 접속된 데이터를 처리하게 할 수 있다. 재개 트리거(306)는 업로드 트리거(304)에 뒤 따를 수 있다.
예를 들어, 업로드 트리거(304)는 제 1 디바이스(102)의 배터리 한계 또는 사용자의 눈의 긴장을 고려하여, 그래픽 관련 애플리케이션을 이용하여 제 1 디바이스(102)에 대한 액세스 지속 시간을 제한할 수 있다. 재개 트리거(306)는 긴 배터리 시간 또는 더 넓은 스크린을 갖는 제 2 디바이스(106)의 이용 가능성이 될 수 있다.
재개 트리거(306)는 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108)상에 작업, 프로세스 콘텐트(214) 또는 프로세스 프로파일(212)과 같은 어플리케이션(208), 또는 이들의 조합에 관한 관련 저장 정보를 액세스하기 위한 명령어를 포함할 수 있다. 재개 트리거(306)는 작업(206)의 수행을 재개하기 위해 도 2의 일시 정지 포인트(210)를 복원하기 위한 명령어를 포함할 수 있다.
트리거 제한(308)은 전송 트리거(302)를 제어하는 상황, 조건, 또는 이들의 조합이다. 트리거 제한(306)은 전송 트리거(302)의 경계가 될 수 있다. 예를 들어, 트리거 제한(308)은 애플리케이션(208)을 위한 임시 라이선스 상태의 남아 있는 기간, 사용자에게 할당된 애플리케이션(208)에 접속할 수 있는 남아 있는 일수, 우선 순위 레벨, 사용자의 스케줄, 기한, 또는 이들의 조합이 될 수 있다. 트리거 제한(308)은 업로드 트리거(304), 재개 트리거(306), 또는 이들의 조합을 조정하기 위해 사용될 수 있다.
작업 공유 그룹(310)은 작업(206)에 접속할 수 있는 개인, 기업, 또는 이들의 조합이다. 예를 들어, 작업 공유 그룹(310)은 작업(206)의 진행에 관한 동작을 멈추거나 지속시키거나 바꾸거나 삭제할 수 있는 친척 또는 동료와 같은 개인, 회사 또는 사회적 그룹과 같은 기업, 또는 이들의 조합이 될 수 있다.
작업 공유 그룹(310), 전송 트리거(302), 프로세스 프로파일(212), 프로세스 콘텐트(214)는 다양한 디바이스에서 사람들 그룹에의 추적과 접근성을 제공한다. 작업 공유 그룹(310)은 인식된 사람들이 작업(206)에 접근하게 끔 허용해주고, 전송 트리거(302), 프로세스 프로파일(212), 프로세스 콘텐트(214)는 전송 트리거(302)에 의해 허용된 디바이스를 사용하여 가장 최신의 진행상태를 추적하게 하고 작업(206)의 지속을 가능하게 한다.
컴퓨팅 시스템(100)은 디바이스 세트(312)로부터의 선택을 사용하여 전송 트리거(302)를 결정할 수 있다. 디바이스 세트(312)는 작업(206), 또는 그 부분을 수행하는 데에 사용 가능한 컴퓨팅 시스템(100)에서의 디바이스 모음이다. 디바이스 세트(312)는 사용자 또는 작업 공유 그룹(310)에 의해 접근 가능하거나 속해 있는 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 다른 디바이스를 포함할 수 있다.
디바이스 세트(312)는 개인 디바이스 그룹(314), 일반 디바이스 그룹(316), 또는 이들의 조합을 포함할 수 있다. 개인 디바이스 그룹(314)은 디바이스 모음에 접속하기 위해 배타적인 제어를 가지는 디바이스 모음이다. 개인 디바이스 그룹(314)은 사용자가 소유하는 디바이스의 모음이다.
일반 디바이스 그룹(316)은 디바이스 모음에 접속하기 위해 배타적인 제어를 갖지 못하는 디바이스 모음이다. 일반 디바이스 그룹(316)은 사용자가 접속할 수는 있지만 배타적인 권위를 갖지 못하는 디바이스 모음이다.
화면 인터페이스(202)는 전송 트리거(302)를 결정하기 위해 트리거 지정 패널(318)을 보여줄 수 있다. 트리거 지정 패널(318)은 전송 트리거(302)의 세부사항 또는 그 구성요소를 결정하기 위한 사용자 상호작용을 위한 인터페이스이다.
예를 들어, 컴퓨팅 시스템(100)은 디바이스 세트(312), 사용 가능한 연락처, 상황적 한계 또는 조건적 한계, 문맥적 한계, 명령 정의 또는 설명, 또는 이들의 조합으로부터의 선택을 수신하기 위해 트리거 지정 패널(318)을 사용할 수 있다. 컴퓨팅 시스템(100)은 트리거 지정 패널(318)을 사용하여 수신한 선택들에 기초하여 전송 트리거(302), 또는 업로드 트리거(304), 재개 트리거(306)와 같은 그 구성요소를 결정할 수 있다. 전송 트리거(302)의 결정에 관한 세부사항은 후술에 의할 것이다.
도 4를 보면, 화면 인터페이스(202)의 또 다른 예시를 볼 수 있다. 화면 인터페이스(202)는 현재 관측(402)를 보여줄 수 있다. 현재 관측(402)은 컴퓨팅 시스템(100)에 의해 결정되는 상황적 또는 환경적 요인이다. 현재 관측(402)은 현재 사용자의 특성을 나타내는, 또는 현재 사용자와 연관된 상황 또는 조건을 나타내는 컴퓨팅 시스템(100)에 의해 인지되고 탐색되는 파라미터가 될 수 있다. 현재 관측(402)은 사용자의 몸통 또는 손과 같은 움직임 방향 또는 패턴, 사용자로부터의 입력 또는 상호작용, 주변 환경의 이미지, 위치 또는 인식 정보와 같은 다른 디바이스로부터의 데이터를 포함할 수 있다.
현재 관측(402)은 현재 시간(404), 현재 위치(406), 활동 유형(408), 활동 참가자(410), 또는 이들의 조합을 포함할 수 있다. 현재 시간(404)은 요일, 날짜, 주, 달, 년, 또는 이들의 조합의 시간을 사용하여 나타낼 수 있다.
현재 위치(406)는 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에 대한 위치이다. 현재 위치(406)는 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108)를 사용하여 사용자의 지리적 위치를 나타낼 수 있다. 현재 위치(406)는 지리적 좌표를 나타내는 X, Y, Z를 이용하여 (X, Y) 또는 (X, Y, Z)의 형식으로 표현할 수 있다. 예를 들어, 현재 위치(406)은 GPS(global position system) 좌표이거나 위도, 경도 좌표일 수 있다.
활동 유형(408)은 사용자, 작업(206), 또는 이들의 조합과 연관된 활동의 분류이다. 활동 유형(408)은 사용자, 작업(206), 또는 이들의 조합의 현재 참여하고 있는 활동에 대한 사용자의 활동, 동기, 목적, 또는 이들의 조합의 설명이 될 수 있다. 예를 들어, 사용자의 스케줄 또는 일정은 “점심식사”의 활동 유형(408)인 현재 시간(404)에 예정된 활동을 가질 수 있다. 또 다른 예로, “집”으로 인식되는 위치에서 사용자가 참여하는 활동과 일과 시간 이후의 활동은 “개인” 활동 유형(408)을 가질 수 있다.
활동 참가자(410)는 콘텍스트(412)에 기초한 작업(206)과 연관된 사람 또는 사람들이다. 예를 계속하면, 활동 참가자(410)는 점심식사에 사용자와 동반하는 또는 집에서 활동에 참가하는 가족의 일원으로써 어떤 이가 될 수 있다. 컴퓨팅 시스템(100)은 사회적 미디어 연결, 이 메일, 개인 프로파일, 계정 정보, 또는 이들의 조합과 같은 사용자의 개인적 정보에 기반한 활동 참가자(410)를 결정할 수 있다.
컴퓨팅 시스템(100)은 통신 프로토콜, 기기간의 접근 지속시간, 디바이스의 소유권 또는 인식, 문맥적 결정, 또는 이들의 조합을 이용하여 컴퓨팅 시스템(100)에 의해 미리 결정된 세트 거리 내의 디바이스 관찰에 기초하여 활동 참가자(410)를 결정할 수 있다. 현재 관측(402)은 세트 거리 내의 관찰되는 디바이스를 위해 도 2의 사용 가능한 디바이스 인식(216), 사용 가능한 디바이스 타입(218), 또는 이들의 조합을 포함할 수 있다.
컴퓨팅 시스템(100)은 콘텍스트(412)를 결정하기 위해 현재 관측(402)을 사용할 수 있다. 콘텍스트(412)는 사용자, 작업(206), 또는 이들의 조합과 연관된 사실 또는 환경에 대한 추상적 분류이다. 콘텍스트(412)는 현재 관측(402)에 대한 요약과 사용자에 대한 추론을 포함할 수 있다.
예를 들어, 콘텍스트(412)는 위치에 대해 “집”, “일”의 분류, 또는 연락처에 대해 “가족”, “동료”의 분류, 또는 활동에 대해 “전문”, “여가”의 분류, 또는 사용자의 어떤 측면에 대한 어떤 다른 분류가 될 수 있다. 또 예를 들어, 콘텍스트(412)는 현재 관측(402), 사용자의 이전 행동, 사용자의 프로파일 또는 사회적 네트워킹 데이터에 의해 결정되는 사용자의 사회적 연결, 또는 이들의 조합에 기초한 “사회적”, “식사”, “동료”, 또는 이들의 조합의 분류가 될 수 있다.
도 5를 보면, 화면 인터페이스(202)의 또 다른 예시화면을 볼 수 있다. 화면 인터페이스(202)는 작업 큐(502)와 큐 설정 패널(504)를 보여줄 수 있다. 작업 큐(502)는 캡처된 상태의 조직화된 저장소가 될 수 있다. 컴퓨팅 시스템(100)은 작업(206)에 관한 정보를 저장하고 관리하고 작업(206)의 수행을 일정화하기 위해 작업 큐(502)를 사용할 수 있다. 작업 큐(502)는 도 2의 프로세스 프로파일(212), 프로세스 콘텐트(214), 또는 이들의 조합을 포함할 수 있다.
작업 큐(502)는 안에 들어 있는 콘텐트를 배열하고 보여줄 수 있다. 예를 들어, 작업 큐(502)는 전송 트리거(302), 요일, 날짜, 컴퓨팅 시스템(100)에 의해 결정되는 중요도 또는 우선순위, 컴퓨팅 시스템(100)에 의해 결정되는 주문 또는 추천, 또는 이들의 조합에 근거하여 더 많은 프로세싱이 필요한 것으로 여겨지는 작업(206)의 인스턴스를 보여줄 수 있다. 작업 큐(502)는 작업(206)의 지속 또는 성능을 조정하고 배열하기 위해 사용될 수 있다.
작업 큐(502)는 통신할 다양한 시각적 표시, 상황적 또는 조건적 한계에 기반한 접근성, 작업(206) 또는 작업(206)과 연관된 전송 트리거(302)에 대한 분류, 우선 순위와 같은 콘텐트 관련 다양한 정보, 사용자 또는 디바이스에 의한 접근성, 또는 이들의 조합을 사용할 수 있다. 작업 큐(502)는 라벨, 주문, 색상, 화질에 대한 선명도와 같은 이미지 세기, 또는 이들의 조합을 이용하여 콘텐트에 관련된 정보를 통신할 수 있다.
큐 설정 패널(504)은 작업 큐(502)의 조직 또는 화면을 결정하기 위한 인터페이스이다. 큐 설정 패널(504)는 사용자와 상호작용하기 위하여 사용되고, 작업 큐(502)를 위해 작업(206)의 인스턴스를 조직하거나 보여주기 위해 선택을 받을 수 있다.
큐 설정 패널(504)은, 이전에 사용된 장치 또는 사용되기로 지정되었거나 예정된 장치, 이전에 작업(206)에 접근하였거나 작업(206)을 지속하기로 예정되어 있는 사람, 프로세스 콘텐트(214)의 분류, 또는 이들의 조합에 기초하여, 스케줄 시간 또는 작업(206)을 정지하고 지속하는 것에 대한 예정된 시간 또는 이전에 로그인 한 시간에 기초하여, 작업(206)의 인스턴스들을 조직하거나 디스플레이 할 수 있다. 큐 설정 패널(504)은 사용자, 작업(206), 또는 이들의 조합에 대한 프로파일, 작업(206) 또는 사용자 또는 도 3의 작업 공유 그룹(310), 또는 이들의 조합에 대한 보안 등급을 사용할 수 있다.
큐 설정 패널(504)은 위에서 열거된 다양한 파라미터에 기초한 작업(206)의 특정 인스턴스를 위한 검색을 위하여 사용자에 의해 사용될 수 있다. 큐 설정 패널(504)은 위에서 열거된 다양한 파라미터에 기초하여 사용자에 의하여, 작업 큐(502)상의 작업(206)의 인스턴스를 필터링 하는 데에 사용될 수 있다.
도 6을 보면, 화면 인터페이스(202)의 다른 예시를 볼 수 있다. 화면 인터페이스(202)는 인지 마커(recognition marker)(602), 움직임 패턴(604), 명령 모션 프로파일(606)을 보여줄 수 있다. 인지 마커(602)는 컴퓨팅 시스템(100)에 의해 미리 정의된 것으로써 사용자의 물리적 특징이 될 수 있다. 예를 들어, 인지 마커(602)는 손가락, 손, 팔, 눈, 코, 입술, 얼굴, 어깨, 엉덩이, 사용자의 어떤 신체적 특징, 어떤 부분 또는 방향, 또는 이들의 조합에 대응하는 픽셀의 패턴이 될 수 있다.
움직임 패턴(604)은 일정 기간에 걸쳐 인지 마커에 대한 위치들의 세트가 될 수 있다. 움직임 패턴(604)은 명령을 지정하기 위한 사용자의 움직임 또는 모션을 나타낼 수 있다.
명령 모션 프로파일(606)은 지정된 사용자 입력 명령을 정의하는 임계 값, 범위, 기간, 또는 이들의 조합이 될 수 있다. 명령 모션 프로파일(606)은 사용자의 물리적 움직임과 컴퓨팅 시스템(100)과의 상호작용에 해당할 수 있다. 명령 모션 프로파일(606)은 마우스, 키보드, 터치 스크린에 접촉하는 것 없이 물리적 움직임을 이용하여 도 2의 작업(206)을 멈추고, 업로드하고, 다운로드하고, 지속하는 것과 같은 컴퓨팅 시스템(100)의 기능들을 사용하기 위해 사용자가 입력과 이슈 명령들을 제공하는 것을 가능하게끔 하기 위해 사용된다.
예를 들어, 명령 모션 프로파일(606)은 화면 인터페이스(202)에 수직으로 엄지손가락이 위로 보는 방향으로 된 사용자의 손을 나타내는 인지 마커(602)의 인스턴스를 포함할 수 있다. 명령 모션 프로파일(606)은 오른쪽에서 왼쪽 방향으로의 일정 범위 내에서 인지 마커(602)의 인스턴스가 움직이는 움직임 패턴(604)을 포함할 수 있다. 명령 모션 프로파일(606)은 작업(206)을 멈추는 명령어에 대응하는 인지 마커(602)의 인스턴스에 대한 패턴, 움직임 패턴(604)에 대한 범위 및 방향, 또는 이에 대한 조합을 가질 수 있고, 나중에 다른 디바이스에서 작업(206)을 재개시키기 위해 일시 정지 포인트(210)를 저장시킬 수 있다.
또 다른 예로, 명령 모션 프로파일(606)은 컴퓨팅 시스템(100)에서 디바이스에 대해 사용자가 손가락으로 두드리는 것, 일정 시간 누르고 있는 것에 대응하는 인지 마커(602), 움직임 패턴(604), 그들의 패턴 또는 시퀀스, 또는 이들의 조합을 포함할 수 있다. 컴퓨팅 시스템(100)은 작업(206)을 멈추고 일시 정지 포인트(210)를 캡처하는 명령어로서 표시되는 큐 탭에서 두드리는 모션으로 연관 지을 수 있다. 컴퓨팅 시스템(100)은 작업에 대한 정지, 일시 정지 포인트(210)에 대한 캡처, 도 3의 트리거 지정 패널(318)을 표시하는 것, 또는 이에 대한 조합을 개시시키기 위해 누르고 유지하는 것을 연관 지을 수 있다.
도 7를 보면, 컴퓨팅 시스템(100)의 예시적인 블록도를 볼 수 있다. 컴퓨팅 시스템(100)은 제 1 디바이스(102), 통신 경로(104), 제 2 디바이스(106)를 포함할 수 있다. 제 1 디바이스(102)는 통신 경로(104)에 속하는 제 1 디바이스 전송로(708)를 통하여 제 2 디바이스(102)에 정보를 전달할 수 있다. 제 2 디바이스(106)는 통신 경로(104)에 속하는 제2디바이스 전송로(710)를 통하여 제 1 디바이스(102)에 정보를 전달할 수 있다.
설명을 위해, 비록 컴퓨팅 시스템(100)은 다른 유형의 장치로서 제 1 디바이스(102), 제 2 디바이스(106)를 가질 수 있다는 것으로 이해되지만, 컴퓨팅 시스템(100)은 클라이언트 디바이스로서의 제 1 디바이스(102), 제 2 디바이스(106)와 같이 설명 될 수 있다. 예를 들면, 제 1 디바이스(102), 제 2 디바이스(106)는 디스플레이 인터페이스(display interface)를 가지는 서버가 될 수 있다.
본 발명의 실시 예에서 설명의 간략화를 위해, 제 1 디바이스(102), 제 2 디바이스(106)는 클라이언트 디바이스로서 설명될 것이다. 본 발명의 실시 예는 디바이스의 종류에 있어서 선택에 제한되지 않는다. 본 예시는 본 발명의 일례일 뿐이다.
제 1 디바이스(102)는 제 1 제어부(712), 제 1 저장부(714), 제 1 통신부(716), 제 1 사용자 인터페이스(718), 위치부(720)를 포함할 수 있다. 제 1 제어부(712)는 컴퓨팅 시스템(100)의 지능을 제공하기 위해 제 1 소프트웨어(726)를 실행할 수 있다.
제 1 제어부(712)는 다수의 다른 방식으로 구현 될 수 있다. 예를 들면, 제 1 제어부(712)는 프로세서, 특수 용도의 집적회로(ASIC), 임베디드 프로세서, ASIC(application specific integrated circuit), 마이크로 프로세서, 하드웨어 제어 로직(hardware control logic), 유한 상태 머신(FSM), 디지털 신호 프로세서(DSP), 또는 이들의 조합이 될 수 있다. 제 1 제어 인터페이스(722)는 제 1 제어부(712)와 제 1 디바이스(102)에서의 다른 기능적 유닛들과의 통신에 사용될 수 있다. 제 1 제어 인터페이스(722)는 제 1 디바이스(102)의 외부와도 통신하는데 또한 쓰일 수 있다.
제 1 제어 인터페이스(722)는 다른 기능적 유닛이나 외부적 소스로부터 정보를 받을 수 있고, 다른 기능적 유닛이나 외부적 목적지에게 정보를 전송 할 수 있다. 외부적 소스와 외부적 목적지는 제 1 디바이스(102)로부터의 외부 소스와 목적지를 말한다.
제 1 제어 인터페이스(722)는 서로 다른 방식으로 구현될 수 있으며, 어떤 기능적 유닛 또는 외부적 유닛이 제 1 제어 인터페이스(722)와 접속되고 있는지에 따라 다른 방식의 구현들을 포함할 수 있다. 예로 들면, 제 1 제어 인터페이스(722)는 압력센서, 관성센서, 마이크로 전자기계시스템(MEMS), 광학회로, 도파관, 무선 회로, 유선회로, 또는 이들의 조합으로 구현 될 수 있다.
제 1 저장부(714)는 제 1 소프트웨어(726)를 저장 할 수 있다. 제 1 저장부(714)는 수신하는 이미지를 나타내는 정보나 이전에 존재하는 이미지를 나타내는 정보나 사운드파일이나 이에 대한 조합과 같은 관련 정보들을 또한 저장 할 수 있다.
제 1 저장부(714)는 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리나 이에 대한 조합이 될 수 있다. 예를 들면, 제 1 저장부(714)는 비 휘발성 랜덤 엑세스 메모리(NVRAM), 플래쉬 메모리(flash memory), 디스크 저장장치와 같은 비 휘발성 저장장치가 될 수 있고, 정적 랜덤 액세스 메모리(SRAM)과 같은 휘발성 저장장치가 될 수 있다.
제 1 저장부(714)는 제 1 저장 인터페이스(724)를 포함 할 수 있다. 제 1 저장 인터페이스(724)는 제 1 위치부(720)와 제 1 디바이스(102)안에 다른 기능적 유닛들과의 통신을 위해 사용될 수 있다. 제 1 저장 인터페이스(724)는 제 1 디바이스(102) 외부와의 통신을 위해 또한 사용될 수 있다.
제 1 저장 인터페이스(724)는 다른 기능적 유닛들 또는 외부의 소스로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부의 목적지에게 정보를 송신할 수 있다. 외부 소스 및 목적지는 제 1 디바이스의 외부 소스와 목적지를 말한다.
제 1 저장 인터페이스(724)는 어떤 기능적 유닛 또는 외부적 유닛이 제 1 저장부(714)와 접속되고 있는 지에 따라 서로 다른 구현을 포함할 수 있다. 제 1 저장 인터페이스(724)는 제 1 제어 인터페이스(722)의 구현과 유사한 기술과 방법으로 구현 될 수 있다.
제 1 통신부(716)는 제 1 디바이스(102)가 외부와 통신하는 것을 가능하게 할 수 있다. 예를 들면, 제 1 통신부(716)는 제 1 디바이스(102)가 첨부되어 있는 도 1 의 제 2 디바이스(106), 호스트 디바이스(108)(예를 들어 주변 기기 나 데스크톱 컴퓨터)와 통신하는 것을 허용 가능하게 하고 통신 경로(104)와 통신하는 것을 허용 가능하게 한다.
제 1 통신부(716)는 제 1 디바이스(102)가 통신 경로(104)의 일부로서 기능하게 하는 통신 허브로서 기능하고 통신경로(104)의 종점(end point) 또는 말단부로 한정되지 않게 한다. 제 1 통신부(716)는 통신 경로(104)와의 상호작용을 위하여 안테나 또는 마이크로일렉트로닉스(microelectronics)와 같은 능동 또는 수동 소자를 포함 할 수 있다.
제 1 통신부(716)는 제 1 통신 인터페이스(728)를 포함 할 수 있다. 제 1 통신 인터페이스(728)는 제 1 통신부(416)와 제 1 디바이스(102)안의 다른 기능적 유닛들과의 통신을 위해 사용될 수 있다. 제 1 통신 인터페이스(728)는 다른 기능적 유닛들로부터 정보를 수신 할 수 있고, 다른 유닛들에게 정보를 전송할 수 있다.
제 1 통신 인터페이스(728)는 어떤 기능적 유닛들이 제 1 통신부(716)와 접속되는지에 따라 서로 다른 구현을 포함 할 수 있다. 제 1 통신 인터페이스(728)는 제 1 제어 인터페이스(722)와 유사한 기술 또는 방법으로 구현 될 수 있다.
제 1 사용자 인터페이스(718)는 도시되지 않은 사용자가 제 1 디바이스(102)와 상호작용하고 접속하게 허용해준다. 제 1 사용자 인터페이스(718)는 입력 장치와 출력 장치를 포함 할 수 있다. 제 1 사용자 인터페이스(718)의 입력장치의 예시는 데이터와 입력 신호를 제공하기 위해 키 패드, 터치 패드, 소프트 키, 키보드, 마이크로폰, 원격 신호를 수신하기 위한 적외선 센서, 또는 이들의 조합을 포함할 수 있다.
제 1 사용자 인터페이스(718)는 제 1 화면 인터페이스(730)와 GPU(graphic processing unit)를 포함 할 수 있다. 제 1 화면 인터페이스(730)는 디스플레이, 프로젝터, 비디오 스크린, 스피커, 또는 이들의 조합을 포함 할 수 있다. 제 1 화면 인터페이스(730)는 도 2의 화면 인터페이스(202)를 포함 할 수 있다.
제 1 제어부(712)는 컴퓨팅 시스템(100)에 의해 생성된 정보를 표시하기 위해 제 1 사용자 인터페이스(718)를 작동시킬 수 있다. 제 1 제어부(712)는 위치부(720)으로부터 위치 정보를 받는 것을 포함하는 컴퓨팅 시스템(100)의 다른 기능들을 위해 제 1 소프트웨어(726)를 또한 실행시킬 수 있다. 제 1 제어부(712)는 제 1 통신부(716)를 경유하여 통신 경로(104)와 상호 작용하기 위해 제 1 소프트웨어(726)를 더 실행시킬 수 있다.
위치부(720)는 예로써 위치 정보, 현재 방향, 현재 가속도, 제 1 디바이스(102)의 현재 속도를 생성할 수 있다. 위치부(720)는 많은 방식으로 실행될 수 있다. 예를 들면, 위치부(720)는 글로벌 포지셔닝 시스템(global positioning system), 관성 컴퓨팅 시스템, 셀룰러 타워 위치 시스템(cellular-tower location system), 압력 위치 시스템, 또는 이들의 조합으로써의 적어도 일부로서 기능 할 수 있다. 또 다른 예로써, 위치부(720)는 가속도계 또는 GPS 수신기와 같은 요소를 이용할 수 있다.
위치부(720) 위치 인터페이스(732)를 포함 할 수 있다. 위치 인터페이스(732)는 제 1 디바이스(102)에서의 다른 기능적인 유닛들과 위치부(720)사이의 통신을 위해 사용될 수 있다. 위치 인터페이스(732)는 제 1 디바이스(102)의 외부와 통신을 위해 사용 될 수도 있다.
위치 인터페이스(732)는 다른 기능적 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부 목적지로 정보를 송신할 수 있다. 외부 소스들과 외부 목적지들은 제 1 디바이스(102) 외부의 소스들과 목적지들을 의미한다.
위치 인터페이스(732)는 어떤 기능적 유닛 또는 외부적 유닛이 위치부(720)와 접속되고 있는 지에 따라 서로 다른 구현을 포함할 수 있다. 위치 인터페이스(732)는 제 1 제어 인터페이스(722)의 구현과 유사한 기술과 방법으로 구현 될 수 있다.
제 2 디바이스(106)는 제 1 디바이스(102)와의 다양한 디바이스 실시 예 중에서의 본 발명의 실시 예를 실행하기 위해 최적화 될 수 있다. 제 2 디바이스(106)는 제 1 디바이스(102)에 비해 추가 또는 고성능의 처리 능력을 제공할 수 있다. 제 2 디바이스(106)는 또한 제 1 디바이스에 비해 최적화 된 화면 인터페이스(예로, 더 넓은 화면, 더 높은 화질)를 제공할 수 있다. 제 2 디바이스(106)는 제 2 제어부(734), 제 2 통신부(736), 제 2 사용자 인터페이스(738)를 포함 할 수 있다.
제 2 사용자 인터페이스(738)는 도시되지 않는 사용자가 제 2 디바이스(106)와 상호작용하고 접속하게 허용한다. 제 2 사용자 인터페이스(738)는 입력장치와 출력장치를 포함할 수 있다. 제 2 사용자 인터페이스(738)의 입력장치의 예들은 통신 입력과 데이터를 제공하기 위해 키 패드, 터치패드, 소프트키, 키보드, 마이크(microphone), 또는 이들의 조합을 포함 할 수 있다. 제 2 사용자 인터페이스(738)의 출력장치의 예들로는 제 2 화면 인터페이스(740)와 제 2 GPU를 포함 할 수 있다. 제 2 화면 인터페이스(740)는 화면, 프로젝터, 비디오 스크린, 스피커, 또는 이들의 조합을 포함 할 수 있다. 제 2 화면 인터페이스(740)는 도 2의 추가 화면(204)을 포함할 수 있다.
제 2 제어부(734)는 컴퓨팅 시스템(100)에서 제 2 디바이스(106)의 지능을 제공하기 위해 제 2 소프트웨어(742)를 실행시킬 수 있다. 제 2 소프트웨어(742)는 제 1 소프트웨어(726)와 결합하여 작동할 수 있다. 제 2 제어부(734)는 제 1 제어부(712)와 비교하여 추가적인 기능을 제공할 수 있다.
제 2 제어부(734)는 정보를 표시하게 위해 제 2 사용자 인터페이스(738)를 작동시킬 수 있다. 제 2 제어부(734)는 컴퓨팅 시스템(100)의 다른 기능을 위해 제 2 소프트웨어(742)를 또한 실행 시킬 수 있고, 이러한 다른 기능은 통신 경로(104)를 통해 제 1 디바이스(102), 호스트 디바이스(108)와 통신하기 위해 제 2 통신부(736)를 작용시키는 기능을 포함한다.
제 2 제어부(734)는 다수의 다른 방식으로 구현이 가능하다. 예를 들어, 제 2 제어부(734)는 프로세서, ASIC(application specific integrated circuit), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 제어 로직(hardware control logic), 유한 상태 머신(FSM), 디지털 신호 프로세서(DSP), 또는 이들의 조합이 될 수 있다.
제 2 제어부(734)는 제 2 제어 인터페이스(744)를 포함 할 수 있다. 제 2 제어 인터페이스(744)는 제 2 제어부(734)와 제 2 디바이스(106)의 다른 기능적인 유닛들 사이의 통신을 위해 사용될 수 있다. 제 2 제어 인터페이스(744)는 또한 제 2 디바이스(106) 외부와의 통신을 위해 또한 사용될 수 있다.
제 2 제어 인터페이스(744)는 다른 기능적 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부 목적지로 정보를 송신할 수 있다. 외부 소스들과 외부 목적지들은 제 2 디바이스(106) 외부의 소스들과 목적지를 의미한다.
제 2 제어 인터페이스(744)는 다른 방식들로 실행될 수 있고 어떤 기능적 유닛들과 외부적 유닛들이 제 2 제어 인터페이스(744)와 접속되는지에 따라 다양한 방식의 구현이 가능하다. 예를 들면, 제 2 제어 인터페이스(744)는 압력센서, 관성센서, 마이크로 전기 기계 시스템(MEMS), 광학회로(optical circuitry), 도파관, 무선회로, 유선회로, 또는 이들의 조합으로 구현될 수 있다.
제 2 저장부(746)는 제 2 소프트웨어(742)를 저장할 수 있다. 제 2 저장부(746)는 수신되는 이미지나 과거 수신한 이미지를 표시하는 데이터, 사운드 파일, 또는 이들의 조합과 같은 정보를 저장 할 수 있다. 제 2 저장부(746)는 제 1 저장부(714)를 보충하기 위한 추가적 저장 공간을 제공하도록 크기 조정될 수 있다.
설명을 목적으로, 제 2 저장부(746)는 단일 요소로 설명되었지만, 제 2 저장부(746)가 분배된 형태의 저장요소가 될 수 있음은 자명하다. 또한, 컴퓨팅 시스템(100)은 서로 다른 구성으로 제 2 저장부(746)를 갖는 것으로 이해되지만, 설명을 위해, 컴퓨팅 시스템(100)은 단일 계층 저장 시스템으로서의 제 2 저장부(746)와 같이 도시된다. 예를 들어, 제 2 저장부(746)는 메모리 계층 시스템을 형성하는 서로 다른 저장 기술들에 의해 형성되고, 이러한 시스템은 서로 다른 레벨의 캐싱(caching), 메인 메모리, 회전 매체(rotating media), 오프라인 스토리지(off-line storage)을 포함한다.
제 2 저장부(746)는 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리 또는 이들의 조합이 될 수 있다. 예를 들면, 제 2 저장부(746)는 비 휘발성 랜덤 액세스 메모리(NVRAM), 플래쉬 메모리, 디스크 저장 장치와 같은 비 휘발성 메모리가 될 수 있고, 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 저장 장치가 될 수 있다.
제 2 저장부(746)는 제 2 저장 인터페이스(748)를 포함 할 수 있다. 제 2 저장 인터페이스(748)는 제 2 디바이스(106)내의 다른 기능적 유닛들과의 통신을 위해 사용될 수 있다. 제 2 저장 인터페이스(448)는 제 2 디바이스(106) 외부와의 통신을 위해서도 사용될 수 있다.
제 2 저장 인터페이스(748)는 다른 기능적 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부 목적지에게 정보를 송신할 수 있다. 외부 소스들 또는 외부 목적지들은 제 2 디바이스(106)의 외부 소스들과 목적지들을 의미한다.
제 2 저장 인터페이스(748)는 어떤 기능적 유닛들 또는 외부 유닛들이 제 2 저장부(746)와 접속되는 지에 따라 서로 다른 구현을 포함 할 수 있다. 제 2 저장 인터페이스(748)는 제 2 제어 인터페이스(744)의 구현과 유사한 기술과 방법으로 구현될 수 있다.
제 2 통신부(736)는 제 2 디바이스(106)가 외부 통신을 하는 것을 가능 하게 할 수 있다. 예를 들어, 제 2 통신부(736)는 제 2 디바이스(106)가 제 1 디바이스(102)와 통신 경로(104)를 통해 통신하는 것을 허용하게 해준다.
제 2 통신부(736)는 제 2 디바이스(106)가 통신 경로(104)의 부분으로서 기능하게끔 하는 통신 허브로서 기능하고, 통신 경로(104)의 말단부 또는 종점(end point)으로 한정되지 않게 한다. 제 2 통신부(736)는 통신 경로(104)와의 상호작용을 위해 수동 또는 능동 소자를 포함하고, 이러한 소자는 마이크로일렉트로닉스, 안테나와 같다.
제 2 통신부(736)는 제 2 통신 인터페이스(750)를 포함 할 수 있다. 제 2 통신 인터페이스(750)는 제 2 통신부(736)와 제 2 디바이스(106)안의 다른 기능적 유닛들과의 통신을 위해 사용될 수 있다. 제 2 통신 인터페이스(750)는 다른 기능적 유닛들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들에게 정보를 송신할 수 있다.
제 2 통신 인터페이스(750)는 어떤 기능적 유닛들이 제 2 통신부(736)와 접속되는지에 따라 서로 다른 구현을 포함 할 수 있다. 제 2 통신 인터페이스(750)는 제 2 제어 인터페이스(744)의 구현과 유사한 방법과 기술로 구현될 수 있다.
제 1 통신부(716)는 제 1 디바이스 전송로(708)를 통해 제 2 디바이스(106)에게 정보를 전송하기 위해 통신 경로(104)와 연결 될 수 있다. 제 2 디바이스(106)는 통신 경로(104)의 제 1 디바이스 전송로(708)로부터 전달되는 정보를 제 2 통신부(736)에서 수신할 수 있다.
제 2 통신부(736)는 제 2 디바이스 전송로(710)를 통해 제 1 디바이스(102)에게 정보를 전송하기 위해 통신 경로(104)와 연결 될 수 있다. 제 1 디바이스(102)는 통신 경로(104)의 제 2 디바이스 전송로(710)로부터 전달되는 정보를 제 1 통신부(716)에서 수신 할 수 있다. 컴퓨팅 시스템(100)은 제 1 제어부(712), 제 2 제어부(734), 또는 이들의 조합에 의해 실행 될 수 있다
제 1 디바이스(102), 제 2 디바이스(106), 또는 이들의 조합은 호스트 디바이스(108)와 유사하게 통신하고 상호작용할 수 있다. 호스트 디바이스(108)에 관한 세부 사항은 후술에 의한다.
제 2 디바이스(106)는 다른 분할로 이루어 질 수 있지만, 설명을 위해, 제 2 사용자 인터페이스(738), 제 2 저장부(746), 제 2 제어부(734), 제 2 통신부(736)로 분할되어 보여진다. 예를 들어, 제 2 소프트웨어(742)는 그것의 기능의 전부 또는 일부가 제 2 제어부(734)와 제 2 통신부(736)안에 있을 수 있도록 다르게 분할 되어질 수 있다. 또한, 제 2 디바이스(106)는 도 7에 도시되지 않은 다른 기능적 유닛들을 포함할 수 있다.
제 1 디바이스(102)안의 기능적 유닛들은 다른 기능적 유닛들과는 독립적이고 개별적으로 작동할 수 있다. 제 1 디바이스(102)는 제 2 디바이스(106)와 호스트 디바이스(108)와 통신 경로(104)와는 독립적이고 개별적이게 작동 할 수 있다.
제 2 디바이스(106)안의 기능적 유닛들은 다른 기능적 유닛들과는 독립적이고 개별적으로 작동할 수 있다. 제 2 디바이스(106)는 제 1 디바이스(102)와 호스트 디바이스(108)와 통신 경로(104)와는 독립적이고 개별적이게 작동 할 수 있다.
설명을 위해, 컴퓨팅 시스템(100)은 제 1 디바이스(102)와 제 2 디바이스(106)의 작동에 의해 설명될 수 있다. 제 1 디바이스(102)와 제 2 디바이스(106)와 호스트 디바이스(108)는 컴퓨팅 시스템(100)의 어떠한 모듈이나 기능들을 작동시킬 수 있다고 여겨진다.
도 8을 보면, 컴퓨팅 시스템(100)의 또 다른 예시적인 블록도를 볼 수 있다. 도 7의 제 1 디바이스(102), 제 2 디바이스(106)외에도, 컴퓨팅 시스템(100)은 호스트 디바이스(108)를 포함할 수 있다. 제 1 디바이스(102)는 통신 경로(104)위의 제 1 디바이스 전송로(708)를 통해 정보를 호스트 디바이스(108)로 전송할 수 있다. 호스트 디바이스(108)는 통신 경로(104)위의 호스트 디바이스 전송로(810)를 통해 정보를 제 1 디바이스(102)로 전송할 수 있다.
비록 컴퓨팅 시스템(100)은 다른 유형의 장치로서 제 2 디바이스(106)를 가질 수 있다는 것으로 이해되지만, 설명의 편의를 위해, 컴퓨팅 시스템(100)은 서버로서의 호스트 디바이스(108)와 같이 설명될 수 있다. 예를 들면, 호스트 디바이스(108)는 클라이언트 디바이스가 될 수 있다.
또한, 컴퓨팅 시스템(100)은 호스트 디바이스(108)와 통신하는 제 1 디바이스(102)와 같이 보여진다. 그러나, 제 2 디바이스(106)는 제 1 디바이스와 호스트 디바이스(108) 사이, 제 1 디바이스(102)와 제 2 디바이스(106) 사이와 비슷한 방법으로 호스트 디바이스(108)와 통신할 수 있다.
본 발명의 실시 예에서 설명의 간략화를 위해, 호스트 디바이스(108)는 서버 디바이스로서 설명될 것이다. 본 발명의 실시 예는 디바이스의 종류에 있어서 선택에 제한되지 않는다. 본 예시는 본 발명의 일례일 뿐이다.
호스트 디바이스(108)는 제 1 디바이스(102)와의 다양한 디바이스 실시 예 중에서의 본 발명의 실시 예를 실행하기 위해 최적화 될 수 있다. 호스트 디바이스(108)는 제 1 디바이스(102), 제 2 디바이스(106)에 비해 추가 또는 고성능의 처리 능력을 제공할 수 있다. 호스트 디바이스(108)는 호스트 제어부(834), 호스트 통신부(836), 호스트 사용자 인터페이스(838)를 포함 할 수 있다.
호스트 사용자 인터페이스(838)는 도시되지 않는 사용자가 호스트 디바이스(108)와 상호작용하고 접속하게 해준다. 호스트 사용자 인터페이스(838)는 입력장치와 출력장치를 포함할 수 있다. 호스트 사용자 인터페이스(838)의 입력장치의 예들은 통신 입력과 데이터를 제공하기 위해 키 패드, 터치패드, 소프트키, 키보드, 마이크(microphone), 또는 이들의 조합을 포함 할 수 있다. 호스트 사용자 인터페이스(438)의 출력장치의 예들로는 호스트 화면 인터페이스(840)를 포함 할 수 있다. 호스트 화면 인터페이스(840)는 화면, 프로젝터, 비디오 스크린, 스피커, 또는 이들의 조합을 포함 할 수 있다.
호스트 제어부(834)는 컴퓨팅 시스템(100)의 호스트 디바이스(108)의 지능을 제공하기 위해 호스트 소프트웨어(842)를 실행시킬 수 있다. 호스트 소프트웨어(842)는 제 1 소프트웨어(726), 제 2 소프트웨어(742)와 결합하여 작동할 수 있다. 호스트 제어부(834)는 제 1 제어부(712)와 비교하여 추가적인 기능을 제공할 수 있다.
호스트 제어부(834)는 정보를 표시하게 위해 호스트 사용자 인터페이스(838)를 작동시킬 수 있다. 호스트 제어부(834)는 컴퓨팅 시스템(100)의 다른 기능을 위해 호스트 소프트웨어(842)를 또한 실행 시킬 수 있고, 이러한 다른 기능은 통신 경로(104)를 통해 제 1 디바이스(102), 제 2 디바이스(106)와 통신하기 위해 호스트 통신부(836)를 작용시키는 기능을 포함한다.
호스트 제어부(834)는 다수의 다른 방식으로 구현이 가능하다. 예를 들어, 호스트 제어부(834)는 프로세서, ASIC(application specific integrated circuit), 임베디드 프로세서, 마이크로 프로세서, 하드웨어 제어 로직(hardware control logic), 유한 상태 머신(FSM), 디지털 신호 프로세서(DSP), 또는 이들의 조합이 될 수 있다.
호스트 제어부(834)는 호스트 제어 인터페이스(844)를 포함 할 수 있다. 호스트 제어 인터페이스(844)는 호스트 제어부(834)와 호스트 디바이스(108)의 다른 기능적인 유닛들 사이의 통신을 위해 사용될 수 있다. 호스트 제어 인터페이스(844)는 또한 호스트 디바이스(108) 외부와의 통신을 위해 또한 사용될 수 있다.
호스트 제어 인터페이스(844)는 다른 기능적 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부 목적지로 정보를 송신할 수 있다. 외부 소스들과 외부 목적지들은 호스트 디바이스(108) 외부의 소스들과 목적지를 의미한다.
호스트 제어 인터페이스(844)는 다른 방식들로 실행될 수 있고 어떤 기능적 유닛들과 외부적 유닛들이 호스트 제어 인터페이스(844)와 접속되는지에 따라 다양한 방식의 구현이 가능하다. 예를 들면, 호스트 제어 인터페이스(844)는 압력센서, 관성센서, 마이크로 전기 기계 시스템(MEMS), 광학회로(optical circuitry), 도파관, 무선회로, 유선회로, 또는 이들의 조합으로 구현될 수 있다.
호스트 저장부(846)는 호스트 소프트웨어(842)를 저장할 수 있다. 호스트 저장부(846)는 수신되는 이미지나 과거 수신한 이미지를 표시하는 데이터, 사운드 파일, 또는 이들의 조합과 같은 정보를 저장 할 수 있다. 호스트 저장부(846)는 제 1 저장부(714)를 보충하기 위한 추가적 저장 공간을 제공하도록 크기 조정될 수 있다.
설명을 목적으로, 호스트 저장부(846)는 단일 요소로 설명되었지만, 호스트 저장부(846)가 분배된 형태의 저장요소가 될 수 있음은 자명하다. 또한, 컴퓨팅 시스템(100)은 서로 다른 구성으로 호스트 저장부(846)를 갖는 것으로 이해되지만, 설명을 위해, 컴퓨팅 시스템(100)은 단일 계층 저장 시스템으로써의 호스트 저장부(846)와 같이 도시된다. 예를 들어, 호스트 저장부(846)는 메모리 계층 시스템을 형성하는 서로 다른 저장 기술들에 의해 형성되고, 이러한 시스템은 서로 다른 레벨의 캐싱(caching), 메인 메모리, 회전 매체(rotating media), 오프라인 스토리지(off-line storage)을 포함한다.
호스트 저장부(846)는 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리 또는 이들의 조합이 될 수 있다. 예를 들면, 호스트 저장부(846)는 비 휘발성 랜덤 액세스 메모리(NVRAM), 플래쉬 메모리, 디스크 저장 장치와 같은 비 휘발성 메모리가 될 수 있고, 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 저장 장치가 될 수 있다.
호스트 저장부(846)는 호스트 저장 인터페이스(848)를 포함 할 수 있다. 호스트 저장 인터페이스(848)는 호스트 디바이스(108)내의 다른 기능적 유닛들 과의 통신을 위해 사용될 수 있다. 호스트 저장 인터페이스(848)는 호스트 디바이스(108) 외부와의 통신을 위해서도 사용될 수 있다.
호스트 저장 인터페이스(848)는 다른 기능적 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들 또는 외부 목적지에게 정보를 송신할 수 있다. 외부 소스들 또는 외부 목적지들은 호스트 디바이스(108)의 외부 소스들과 목적지들을 의미한다.
호스트 저장 인터페이스(848)는 어떤 기능적 유닛들 또는 외부 유닛들이 호스트 저장부(846)와 접속되는 지에 따라 서로 다른 구현을 포함 할 수 있다. 호스트 저장 인터페이스(848)는 호스트 제어 인터페이스(844)의 구현과 유사한 기술과 방법으로 구현될 수 있다.
호스트 통신부(836)는 호스트 디바이스(108)가 외부 통신을 하는 것을 가능 하게 할 수 있다. 예를 들어, 호스트 통신부(836)는 호스트 디바이스(108)가 제 1 디바이스(102), 제 2 디바이스(106)와 통신 경로(104)를 통해 통신하는 것을 허용하게 해준다.
호스트 통신부(836)는 호스트 디바이스(108)가 통신 경로(104)의 부분으로써 기능하게끔 하는 통신 허브로써 기능하고, 통신 경로(104)의 말단부 또는 종점(end point)으로 한정되지 않게 한다. 호스트 통신부(836)는 통신 경로(104)와의 상호작용을 위해 수동 또는 능동 소자를 포함하고, 이러한 소자는 마이크로일렉트로닉스, 안테나와 같다.
호스트 통신부(836)는 호스트 통신 인터페이스(850)를 포함 할 수 있다. 호스트 통신 인터페이스(850)는 호스트 통신부(836)와 호스트 디바이스(108)안의 다른 기능적 유닛들 과의 통신을 위해 사용될 수 있다. 호스트 통신 인터페이스(850)는 다른 기능적 유닛들로부터 정보를 수신할 수 있고, 다른 기능적 유닛들에게 정보를 전송할 수 있다.
호스트 통신 인터페이스(850)는 어떤 기능적 유닛들이 호스트 통신부(836)와 접속되는지에 따라 서로 다른 구현을 포함 할 수 있다. 호스트 통신 인터페이스(850)는 호스트 제어 인터페이스(844)의 구현과 유사한 방법과 기술로 구현될 수 있다.
제 1 통신부(716)는 제 1 디바이스 전송로(708)를 통해 호스트 디바이스(108)에게 정보를 전송하기 위해 통신 경로(104)와 연결 될 수 있다. 호스트 디바이스(108)는 통신 경로(104)의 제 1 디바이스 전송로(708)로부터 전달되는 정보를 호스트 통신로(836)에서 수신할 수 있다.
호스트 통신부(836)는 제 2 디바이스 전송로(710)를 통해 제 1 디바이스(102)에게 정보를 전송하기 위해 통신 경로(104)와 연결 될 수 있다. 제 1 디바이스(102)는 통신 경로(104)의 호스트 디바이스 전송로(810)로부터 전달되는 정보를 제 1 통신부(716)에서 수신 할 수 있다. 컴퓨팅 시스템(100)은 제 1 제어부(712), 호스트 제어부(834), 또는 이들의 조합에 의해 실행 될 수 있다. 제 2 디바이스(106)는 대응하는 유닛과 기능을 사용하여 호스트 디바이스(108)와 유사하게 상호작용하거나 통신할 수 있다.
호스트 디바이스(108)는 다른 분할로 이루어 질 수 있지만, 설명을 위해, 호스트 사용자 인터페이스(838), 호스트 저장부(846), 호스트 제어부(834), 호스트 통신부(836)로 분할되어 보여진다. 예를 들어, 호스트 소프트웨어(842)는 그것의 기능의 전부 또는 일부가 호스트 제어부(834)와 호스트 통신부(836)안에 있을 수 있도록 다르게 분할 되어질 수 있다. 또한, 호스트 디바이스(108)는 도 8에 도시되지 않은 다른 기능적 유닛들을 포함할 수 있다.
호스트 디바이스(108)안의 기능적 유닛들은 다른 기능적 유닛들과는 독립적이고 개별적으로 작동할 수 있다. 호스트 디바이스(108)는 제 1 디바이스(102)와 제 2 디바이스(106)와 통신 경로(104)와는 독립적이고 개별적이게 작동 할 수 있다.
설명을 위해, 컴퓨팅 시스템(100)은 제 1 디바이스(102)와 호스트 디바이스(108)의 작동에 의해 설명될 수 있다. 제 1 디바이스(102)와 제 2 디바이스(106)와 호스트 디바이스(108)는 컴퓨팅 시스템(100)의 어떠한 모듈이나 기능들을 작동시킬 수 있다고 보여진다.
도 9를 보면, 컴퓨팅 시스템(100)의 제어 흐름도를 볼 수 있다. 컴퓨팅 시스템(100)은 트리거 인지 모듈(trigger recognition module)(902), 프로세스 인지 모듈(904), 트리거 합성 모듈(trigger synthesis module)(906), 업로드 모듈(908), 스케줄 모듈(910), 다운로드 모듈(912), 및 복원 모듈(restoration module)(914)을 포함할 수 있다.
트리거 인지 모듈(902)은 무선 또는 유선 연결을 이용하여 한 모듈의 입력이 다른 모듈의 출력을 갖게끔, 한 모듈의 동작이 다른 모듈의 동작에 영향을 주게끔, 프로세스 인지 모듈(904)와 연결될 수 있다. 유사하게, 프로세스 인지 모듈(904)은 트리거 합성 모듈(906)과 연결될 수 있고, 트리거 합성 모듈(906)은 업로드 모듈(908)과 연결될 수 있다. 업로드 모듈(908)은 유사하게 스케줄 모듈(910)과 연결될 수 있다.
트리거 인지 모듈(902)은 프로세스 인지 모듈(904)의 연결 방법과 유사하게 다운로드 모듈(912)과 연결될 수 있다. 다운로드 모듈(912)은 상기 설명된 바와 같이 복원 모듈(914)와 연결될 수 있고, 복원 모듈(914)는 스케줄 모듈(910)과 연결될 수 있다.
트리거 인지 모듈(902)은 도 2의 작업(206)의 정지 또는 재개를 개시하도록 구성된다. 트리거 인지 모듈(902)은 도 3의 전송 트리거(302)와 일치하는 조건 또는 상황을 탐색함으로써 작업(206)을 재개 또는 정지를 위한 프로세스를 개시할 수 있다.
예를 들어, 트리거 인지 모듈(902)은 작업(206) 또는 사용자와 연관된 콘텍스트(412), 현재 시간(404), 현재 위치(406), 활동 유형(408), 활동 참가자(410)에 기반한 콘텍스트(412)의 다양한 측면을 결정하도록 구성된다. 또 다른 예로, 트리거 인지 모듈(902)은 사용 가능한 디바이스 타입(218), 사용 가능한 디바이스 인식(216), 또는 이들의 조합을 탐색하고 인식할 수 있다.
트리거 인지 모듈(902)은 전송 트리거(302)와 일치하는 조건 또는 상황을 탐색하는 관찰 모듈(916), 마커 모듈(marker module)(918), 명령 모듈(920)을 가질 수 있다. 관찰 모듈(916)은 사용자에 대한 상황, 조건을 탐색하도록 구성된다. 관찰 모듈(916)은 제 1 디바이스(102), 또는 제 2 디바이스(106)를 사용함으로써 조건 또는 상황을 탐색할 수 있다.
관찰 모듈(916)은 도 4의 현재 관찰(402)를 탐색함으로써 상황 또는 조건을 탐색할 수 있다. 예를 들어, 관찰 모듈(916)은 현재 관찰(402)을 사용자의 몸통, 손을 포함하는 것과 같은 사용자의 패턴 또는 움직임으로써, 사용자로부터 입력 또는 상호작용으로써, 주변 환경의 이미지로써 설정하기 위해 제 1 사용자 인터페이스(718), 제 2 사용자 인터페이스(738), 호스트 사용자 인터페이스(838), 또는 이들의 조합을 이용할 수 있다. 더 상세한 예로, 관찰 모듈(916)은 사용자 또는 주변 환경을 관찰하기 위해 카메라 또는 마이크를 사용할 수 있고, 사용자로부터 입력 또는 상호작용을 받기 위해 키보드 또는 터치 스크린과 같은 입력 디바이스를 사용할 수 있다.
또 다른 예로, 관찰 모듈(916)은 도 7의 위치부(720)로부터 네비게이션 정보를 이용하여 현재 위치(406)을 검색할 수 있다. 관찰 모듈(916)은 제 1 통신부(716), 제 2 통신부(736), 호스트 통신부(836), 또는 이들의 조합을 통해 클락 신호(clock signal)를 수신함으로써, 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 이용함으로써, 현재 시간(404)를 탐색하고 결정할 수 있다.
다른 예로, 관찰 모듈(916)은 위치부(720), 제 1 통신부(716), 제 2 통신부(736), 호스트 통신부(836), 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 이용하여 사용자의 활동을 결정할 수 있다. 더 상세한 예로, 관찰 모듈(916)은 사용자의 현재 행동과 연관된 활동 유형(408), 활동 참가자(410), 또는 이들의 조합을 결정하기 위해 사용자의 일정, 사회적 네트워크, 사용자의 연락처, 사용자 프로파일로부터의 위치 정보, 스케줄링 정보를 이용할 수 있다.
또 다른 예로, 관찰 모듈(916)은 사용 가능한 디바이스 타입(218), 사용 가능한 디바이스 인식(216), 또는 이들의 조합을 결정하기 위해 위치부(720) 제 1 통신부(716), 제 2 통신부(736), 호스트 통신부(836), 또는 이들의 조합을 이용할 수 있다. 더 상세한 예로, 디바이스들이 세트 거리 내에 있을 경우, 관찰 모듈(916)은 제 1 디바이스(102), 제 2 디바이스(106)와 같은 다양한 디바이스를 탐색하고, 인식하고, 통신하기 위해 컴퓨팅 시스템(100)에 의해 미리 결정될 수 있다. 관찰 모듈(916)은 인식 정보를 사용 가능한 디바이스 인식(216)으로 설정할 수 있고, 사용 가능한 디바이스 타입(218)을 결정하기 위해 인식 정보를 이용할 수 있다.
트리거 인지 모듈(902)은 콘텍스트(412)에 대한 추론을 결정하기 위해 현재 관찰(402), 현재 시간(404), 현재 위치(406), 활동 유형(408), 활동 참가자(410), 사용 가능한 디바이스 타입(218), 사용 가능한 디바이스 인식(216), 또는 이들의 조합을 이용할 수 있다. 트리거 인지 모듈(902)은 컴퓨팅 시스템(100)에 의해 미리 결정된 방법을 사용함으로써, 테이블(table)에 맞서는 상기 설명된 데이터를 비교함으로써 콘텍스트에 대한 추론을 결정할 수 있다.
마커 모듈(918)은 사용자의 움직임을 결정하기 위해 구성된다. 마커 모듈(918)은 도면 6의 인지 마커(602)를 인식함으로써 사용자의 움직임을 결정할 수 있다.
마커 모듈(918)은 컴퓨팅 시스템(100)에 의해 이미 정의된 것으로tj 사용자의 특징을 인식함으로써 인지 마커(602)를 인식할 수 있다. 예를 들어, 마커 모듈(918)은 제 1 사용자 인터페이스(718)로부터의 이미지속의 픽셀 패턴을 컴퓨팅 시스템(100)에 의해 정의된 눈, 코, 얼굴, 어깨, 엉덩이, 사용자의 신체적 특징에 대한 패턴과 일치시킬 수 있다.
명령 모듈(920)은 사용자와 연관된 조건 또는 상황에 기초한 작업(206)을 정지시키거나 재개시키기는 것에 대한 프로세스를 개시하도록 구성된다. 콘텍스트(412), 또는 현재 위치(406), 활동 참가자(410), 현재 관찰(402), 사용 가능한 디바이스 인식(216), 사용 가능한 디바이스 타입(218), 또는 이들의 조합과 같은 콘텍스트(412)의 양상이 도 3의 업로드 트리거(304)와 일치될 경우, 명령 모듈(920)은 작업(206), 또는 작업(206)과 연관된 도 2의 애플리케이션(208)을 정지시키는 프로세스를 개시할 수 있다.
예를 들어, 업로드 트리거(304)는 제 2 디바이스(106)보다 더 용량이 작은 배터리와 더 작은 화면 인터페이스를 갖는 제 1 디바이스(102)를 사용하여 사용자를 대신하여 콘텍스트(412), 현재 관찰(402), 또는 이들의 조합을 지정할 수 있다. 업로드 트리거(304)는 이 메일에 접속하거나 보내는 것과 같이 읽고 쓰기를 포함하는 것으로 특정된 애플리케이션(208)을 사용하여 사용자를 나타내는 임계 값과 제한 사항을 가질 수 있다. 업로드 트리거(304)는 제 1 디바이스(102)와 제 2 디바이스(106)가 공동 소유권을 가지거나, 사전에 설정된 거리 이내에 위치하거나, 콘텍스트(412)의 특정 인스턴스와 관련이 있거나 또는 이들의 조합 등을 요구하는 임계값 또는 제한 사항을 더 가질 수 있다.
또 예를 들면, 업로드 트리거(304)는 사용자가 작업(206)의 정지를 명령하는 상황을 지정할 수 있다. 더 상세한 예로, 업로드 트리거(304)는 사용자가 보여지고 있는 비디오 클립을 멈추고, 제 1 디바이스를 방치된 상태로 떠나는 중에, 디바이스는 수면 모드로 들어가는 작업을 수행하는 상황 또는 조건을 포함할 수 있다.
명령 모듈(920)은 콘텍스트(412), 현재 관찰(402), 또는 이들의 조합을 업로드 트리거(304)와 비교할 수 있다. 콘텍스트(412), 현재 관찰(402), 또는 이들의 조합이 업로드 트리거(304)에 의해 나타나는 상황, 조건, 또는 이들의 조합과 일치할 경우, 명령 모듈(920)은 작업을 멈추고, 일시 정지 포인트(210)를 캡처하는 프로세스를 개시할 수 있다.
명령 모듈(920)은 제스처를 통해 사용자에 의해 주어진 명령에 기초한 작업을 멈추는 프로세스를 개시할 수 있다. 명령 모듈(920)은 인지 마커(602)를 사용하여 움직임 패턴(604)을 탐색함으로써 몸 움직임을 통해 주어진 명령을 인지할 수 있다. 명령 모듈(920)은 지속 기간 동안 인지 마커(602)의 하나 이상의 인스턴스를 추적함으로써 움직임 패턴(604)을 탐색할 수 있다.
예를 들면, 명령 모듈(920)은 한 이미지에서의 인지 마커(602)와 다음 이미지에서의 인지 마커(602)사이의 벡터 또는 벡터의 시리즈를 결정하기 위해 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 사용할 수 있다. 명령 모듈(920)은 움직임 패턴(604)을 인지 마커(602)의 하나 이상의 인스턴스에 채응하는 하나 이상의 벡터, 일정 시간 동안에 연속적인 이미지를 통해 인지 마커(602)의 하나 이상의 인스턴스에 대응하는 벡터의 시퀀스로서 설정할 수 있다.
명령 모듈(920)은 움직임 패턴(604), 인지 마커(602), 또는 이들의 조합을 도 6의 명령 모션 프로파일(606)와 비교할 수 있다. 움직임 패턴(604), 인지 마커(602), 또는 이들의 조합이 명령 모션 프로파일(606)에서 이에 대응하는 부분과 일치할 경우, 명령 모듈(920)은 작업을 멈추는 프로세스를 개시하기 위해 움직임 패턴(604), 인지 마커(602), 또는 이들의 조합을 사용자로부터의 명령으로서 인식할 수 있다.
명령 모듈(920)은 제어 흐름이 다른 모듈로 지나감에 따라 프로세스를 개시할 수 있다. 명령 모듈(920)은 제어 흐름이 프로세스 인지 모듈(904)로 지나감에 따라 정지를 개시할 수 있다. 명령 모듈(920)은 제어 흐름이 다운로드 모듈(912)로 지나감에 따라 지속(continuance)을 개시할 수 있다. 지속에 관한 세부 사항은 후술에 의한다.
사용자와 관련된 상황 또는 조건을 검색한 후에, 제어 흐름은 작업(206)을 멈추기 위해 트리거 인지 모듈(902)에서 프로세스 인지 모듈(904)로 옮겨간다. 제어 흐름은, 플래그(flag), 인터럽트(interrupt), 상태 신호, 또는 이들의 조합, 또는 이들 프로세스의 조합을 사용하여 프로세스 인지 모듈(904)에 알림으로써, 콘텍스트(412), 사용 가능한 디바이스 인식(216), 사용 가능한 디바이스 타입(218), 또는 이들의 조합을 트리거 인지 모듈(902)로부터 프로세스 인지 모듈(904)의 출력으로 가짐으로써, 콘텍스트(412), 사용 가능한 디바이스 인식(216), 사용 가능한 디바이스 타입(218), 또는 이들의 조합을 프로세스 인지 모듈(904)에 접근 가능하고 알려진 위치에 저장함으로써 이동할 수 있다.
프로세스 인지 모듈(904)은 작업(206)의 현재 상태를 결정하도록 구성된다. 프로세스 인지 모듈(904)은 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에 대하여 작업(206)과 연관된 상태, 프로세스, 데이터, 또는 이들의 조합을 결정할 수 있다. 프로세스 인지 모듈(904)은 작업(206)의 현재 상태를 결정하기 위해 상태 모듈(922), 콘텐트 모듈(924)를 가질 수 있다.
상태 모듈(922)은 작업(206)을 수행하기 위해 진행하는 프로세스의 현재 상태를 결정하도록 구성된다. 상태 모듈(922)은 작업(206)을 처리 중 일시 정지 포인트(210)을 캡처함으로써 프로세스의 현재 상태를 결정할 수 있다. 상태 모듈(922)은 일시 정지 포인트(210)에 대응하는 상태, 또는 프로세스와 연관된 프로세스 프로파일(212)을 결정함으로써 일시 정지 포인트(210)를 캡처할 수 있다.
상태 모듈(922)은 현재 관찰(402), 콘텍스트(412), 사용 가능한 디바이스 타입(218), 또는 이들의 조합에 대응하는 업로드 트리거(304)에 기초한 프로세스 프로파일(212)을 결정하도록 구성될 수 있다. 현재 관찰(402), 콘텍스트(412), 사용 가능한 디바이스 타입(218), 또는 이들의 조합이 트리거 인지 모듈(902)에 의해 결정된 것으로써 업로드 트리거(304)와 일치할 때, 상태 모듈(922)은 프로세스 프로파일(212)을 결정할 수 있다.
상태 모듈(922)은 다양한 프로세스에 대한 식별 또는 상태 정보, 애플리케이션(208)의 하나 이상의 인스턴스, 또는 이들의 조합을 프로세스 프로파일(212)에 할당함으로써 프로세스 프로파일(212)을 결정할 수 있다. 상태 모듈(922)은 일시 정지 포인트(210)를 캡처하기 위해 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에 대해 현재 상태인 프로세스 파라미터를 사용하여 프로세스 프로파일(212)을 결정할 수 있다. 상태 모듈(922)은 작업(206), 콘텍스트(412), 업로드 트리거(304), 또는 이들의 조합과 연관된 프로세스 파라미터를 이용하여 프로세스 프로파일(212)을 결정할 수 있다.
상태 모듈(922)은 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에서 현재 실행되고 있는 애플리케이션(208)의 인스턴스 또는 프로세스에 대응하는 메모리 주소 또는 위치 지정자를 포함하기 위해 프로세스 프로파일(212)을 결정할 수 있다. 예를 들어, 프로세스 프로파일(212)은 현재 프로세스 또는 애플리케이션을 수행하기 위한 지침의 소스로서 제공되는 코드 또는 파일의 주소 또는 위치를 포함할 수 있다.
상태 모듈(922)은 다양한 프로세스, 애플리케이션(208)의 인스턴스, 또는 이들의 조합과 연관된 접속 가능한 할당된 또는 접근 가능한 메모리 위치, 동적 할당된 메모리 위치, 또는 이들의 조합을 포함하기 위해 프로세스 프로파일(212)을 결정할 수 있다. 예를 들어, 프로세스 프로파일(212)은 일시 정지 포인트(210)에서 실행되고 있는 애플리케이션(208)의 인스턴스 또는 프로세스와 연관된 입력 데이터, 전역 변수, 지역 변수, 출력 데이터, 중간 데이터, 또는 이들의 조합을 포함할 수 있다.
상태 모듈(922)은 프로세스 프로파일(212)을 결정하기 위해 도 7의 제 1 제어 인터페이스(722), 제 1 저장 인터페이스(724), 제 2 제어 인터페이스(744), 제 2 저장 인터페이스(748), 호스트 제어 인터페이스(844), 호스트 저장 인터페이스(848), 또는 이들의 조합을 사용할 수 있다. 상태 모듈(922)은 프로세스 프로파일(212)을 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장할 수 있다.
예를 들어, 상태 모듈(922)은 사용자가 제 1 디바이스(102)에서 접속하는 애플리케이션(208)의 하나 이상의 인스턴스, 다양한 프로세스를 포함하기 위해 프로세스 프로파일(212)을 결정함으로써 일시 정지 포인트(210)를 캡처할 수 있다. 상태 모듈(922)은 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합과 상호작용하는 애플리케이션(208)의 부분 또는 프로세스를 포함할 수 있다. 상태 모듈(922)은 제 1 디바이스(102)내에 프로세스 프로파일(212)을 저장할 수 있다.
콘텐트 모듈(924)은 일시 정지 포인트(210)를 캡처하기 위해 프로세스 프로파일(212)에 대응하는 데이터를 인식하도록 구성된다. 콘텐트 모듈(924)은 일시 정지 포인트(210)를 캡처하기 위해 도 2의 프로세스 콘텐트(214)를 인식함으로써 프로세스 프로파일(214)에 대응하는 데이터를 인식할 수 있다. 콘텐트 모듈(924)은 트리거 인지 모듈(902)에 의해 결정된 콘텍스트(412), 사용 가능한 디바이스 타입(218), 또는 이들의 조합에 기초한 프로세스 콘텐트(214)를 인식하도록 구성된다.
콘텐트 모듈(924)은 프로세스 프로파일(212)에 대응되는 하나 이상의 메모리에 저장된 값을 결정함으로써 프로세스 콘텐트(214)를 인식할 수 있다. 콘텐트 모듈(924)은 프로세스 프로파일(214)에 의해 특정된, 접속 가능한 또는 할당된 메모리 위치, 동적 할당된 메모리 위치, 또는 이들의 조합에 저장된 값을 프로세스 콘텐트(214)로서 지정할 수 있다. 콘텐트 모듈(924)은 데이터에 대응되는 주소 또는 위치와 같이 프로세스 프로파일(212) 내의 일부분에 대응되는 구조 또는 링크를 포함하는 것으로 프로세스 콘텐트(214)를 인식할 수 있다.
예를 들어, 콘텐트 모듈(924)은 프로세스 프로파일(212)에 의해 특정된 주소 또는 위치에서 입력 데이터, 전역 변수, 지역 변수, 출력 데이터, 중간 데이터, 또는 이들의 조합을 나타내는 값을 프로세스 콘텐트(214)로서 지정할 수 있다. 또한 예로, 콘텐트 모듈(924)은 프로세스 콘텐트(214)안에서 인식된 데이터, 결정된 데이터, 수신된 데이터, 계산된 데이터, 생성된 데이터, 표시된 데이터, 또는 이들의 조합을 포함할 수 있다. 다른 예로, 콘텐트 모듈(924)은 프로세스 콘텐트(214)안에서 작업(206)을 수행하는 것과 관련된 지시 데이터, 방법 데이터, 또는 이들의 조합을 제외할 수 있다.
콘텐트 모듈(924)은 프로세스 콘텐트(214)를 인식하기 위해 제 1 제어 인터페이스(722), 제 1 저장 인터페이스(724), 제 2 제어 인터페이스(744), 제 2 저장 인터페이스(748), 호스트 제어 인터페이스(844), 호스트 저장 인터페이스(848), 또는 이들의 조합을 사용할 수 있다. 콘텐트 모듈(924)은 프로세스 콘텐트(214)를 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장하도록 구성될 수 있다.
프로세스 프로파일(212)을 결정하고 프로세스 콘텐트(214)을 인식한 후에 제어 흐름은 프로세스 인지 모듈(904)에서 트리거 합성 모듈(906)로 옮겨갈 수 있다. 제어 흐름은 트리거 인지 모듈(802)과 프로세스 인지 모듈(904)사이에서와 유사하게 흘러갈 수 있다.
트리거 합성 모듈(906)은 작업(206)을 재개하게 위해 조건, 상황 또는 이들의 조합을 결정하도록 구성된다. 트리거 합성 모듈(906)은 도 3의 재개 트리거(306)을 생성함으로써 작업(206)을 재개하기 위해 조건, 상황, 또는 이들의 조합을 결정할 수 있다.
트리거 합성 모듈(906)은 트리거 인지 모듈(902)에 의해 결정된 것으로써 콘텍스트(412), 사용 가능한 디바이스 타입(218), 현재 관찰(402), 또는 이들의 조합과 일치하는 업로드 트리거(304)에 기초한 재개 트리거(306)를 생성할 수 있다. 예를 들어, 트리거 합성 모듈(906)은 명령 모션 프로파일(606)을 재개 트리거(306)과 일치하거나 비교하는 것을 기초하여 재개 트리거(306)를 생성할 수 있다. 또 예를 들어, 트리거 합성 모듈(906)은 제 1 디바이스(102) 보다 더 넓은 화면, 더 강한 프로세싱 파워를 가지는 사용 가능한 디바이스 타입(218)을 기초하여 재개 트리거(306)를 생성할 수 있다.
트리거 인지 모듈(902)이 작업(206)의 진행을 멈추고 저장하기 위한 조건을 결정할 경우, 트리거 합성 모듈(906)은 재개 트리거(306)를 생성할 수 있다. 트리거 합성 모듈(906)은 일시 정지 포인트(210)를 캡처하기 위하여, 프로세스 콘텐트(214), 프로세스 프로파일(212)와 같은 작업(206)의 진행을 저장할 경우, 특히 동시에 재개 트리거(306)를 생성할 수 있다. 컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)내에 디바이스들을 이용하여 나중에 작업(206)을 재개하기 위해 재개 트리거(306)를 사용할 수 있다.
예를 들어, 사용자는 이 메일을 전송하는 작업(206)을 수행하기 위해 제 1 디바이스(102)를 사용할 수 있다. 업로드 트리거(304)는 이 메일을 작성하는 콘텍스트(412)와 제 1 디바이스(102)의 화면 인터페이스 보다 더 큰 화면 인터페이스, 키보드와 같은 더 큰 입력 메커니즘을 포함할 수 있다. 업로드 트리거(304)는 제 1 디바이스(102)가 제 2 디바이스(106)으로부터 세트 거리 내에 있도록 요구할 수 있다.
예를 계속하여, 트리거 인지 모듈(902)이 업로드 트리거(304)안의 상황, 조건이 충족한다는 것을 인지 했을 경우, 트리거 합성 모듈(906)은 재개 트리거(306)를 생성하기 위해 필요한 정보를 처리할 수 있다. 트리거 합성 모듈(906)은 제 2 디바이스(106)에서 작업(206)을 지속하기 위해, 사용자에게 더 큰 화면 스크린, 편리한 입력 매커니즘을 제공하기 위해 재개 트리거(306)를 생성할 수 있다.
프로세스 프로파일(212) 또는 프로세스 콘텐트(214)와 같은 일시 정지 포인트(210)의 캡처를 나타내는 데이터는 컴퓨팅 시스템(100)안의 디바이스를 이용하여 나중에 작업(206)을 재개 하기 위해 재개 트리거(306)의 생성과 동시에 저장될 수 있다.
업로드 트리거(304)를 기초로 한 일시 정지 포인트(210)를 캡처 하는 것과 저장하는 것과 동시에 생성된 재개 트리거(306)는 증가된 유용성과 관련 기능성을 제공한다. 일시 정지 포인트(210)를 저장, 캡처 하는 것과 동시에 생성된 재개 트리거(306)는 사용자가, 사전 설정된 파라미터에 한정되는 대신에 상황 또는 필요성에 기초한 작업(206)의 재개를 세밀하게 조정할 수 있도록 향상된 유용성과 관련 기능성을 제공한다.
트리거 합성 모듈(906)은 도 3의 트리거 지정 패널(318)을 사용하여 재개 트리거(306)을 생성할 수 있다. 트리거 합성 모듈(906)은 재개 트리거(306)를 생성하기 위해 업로드 트리거(304), 현재 관찰(402), 콘텍스트(412), 디바이스 세트(312), 작업(206)에 접속하기 위해 지정된 사람들의 그룹을 사용할 수 있다.
예를 들어, 업로드 트리거(304)가 제 2 디바이스(106)에서 사용 가능한 더 큰 화면 또는 편리한 입력 디바이스에 대응하는 상황을 명시할 경우, 트리거 합성 모듈(906)은 제 2 디바이스(106)에서 작업(206)을 즉시 지속하기 위해 재개 트리거(306)를 생성할 수 있다. 트리거 합성 모듈(906)은 제 2 디바이스(106)를 활동시키고 해제하기 위한, 제 1 디바이스(102)에서 제 2 디바이스로 직접 또는 지연 없이, 작업 큐(502)에서 작업(206)의 처리 없이, 호스트 디바이스(108)를 통해 일시 정지 포인트(210)와 관련된 정보를 전송하기 위한 값 또는 지시를 포함하기 위해 재개 트리거(306)을 생성할 수 있다.
또 예를 들어, 트리거 합성 모듈(906)은 사용자와 상호작용을 위해 트리거 지정 패널(318)을 사용할 수 있고, 재개 트리거(306)를 위해 콘텍스트(412), 현재 관찰(402), 개인 환경 설정, 제한, 또는 이들의 조합을 지정하는 선택을 받을 수 있다. 트리거 합성 모듈(906)은 작업(206)의 지속을 개시하기 위해 수신된 데이터를 콘텍스트(412), 현재 관찰(402), 또는 다양한 다른 요인들에 대응하는 재개 트리거(306)로서 설정할 수 있다.
예를 계속하여, 트리거 합성 모듈(906)은 재개 트리거(306)안에서 수신된 선택들을 나타내고 그것들을 포함하는 파라미터 또는 요소들을 인식하기 위해 재개 트리거(306)를 생성할 수 있다. 트리거 합성 모듈(906)은 “AND” 또는 “IF-THEN”과 같은 논리 연산자를 사용하여 다양한 파라미터 또는 요소들을 조인(join)할 수 있다.
다른 예로, 트리거 합성 모듈(906)은 라이센스 만료 날짜, 사용자의 일정에서의 마감일 또는 우선일, 다른 예정된 이벤트, 또는 이들의 조합에 기초한 재개 트리거(306)를 생성할 수 있다. 트리거 합성 모듈(906)은 작업(206)을 완수하는 것에 대한 또는 이에 대응하는 우선 순위에 대한 시간 제한 또는 지속 기간인 트리거 제한(308)을 정해진 스케줄링 제한으로서 설정할 수 있다.
현재 시간(404), 활동 유형(408), 활동 참가자(410), 또는 이들의 조합을 갖는 콘텍스트(412)를 포함하는 재개 트리거(306)는 증가된 유용성과 융통성을 제공한다. 사용 가능한 디바이스 인식(216) 또는 사용 가능한 디바이스 타입(218)을 포함하는 재개 트리거(306)는 증가된 유용성과 융통성을 제공한다. 콘텍스트(412)와 디바이스 정보를 포함하는 재개 트리거(306)는 작업(206)을 지속하거나 멈추는 것에 대한 현재 제한에 의존하기 보다는 사용자의 상황 또는 필요성에 따라 조정될 수 있다.
일시 정지 포인트(210)를 캡처하고 저장하는 것과 동시에 생성된 재개 트리거(306)는 작업(206)을 지속하는 것에 대한 상세하고 관련성 있는 제한을 제공한다. 재개 트리거(306)는 사용자, 컴퓨팅 시스템(100), 또는 이들의 조합에게 알려진 업데이트된 현재 데이터에 기초할 수 있다.
트리거 합성 모듈(906)은 전송 트리거(302)를 생성하기 위해 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 제 1 사용자 인터페이스(718), 제 2 사용자 인터페이스(738), 호스트 사용자 인터페이스(848), 또는 이들의 조합을 사용할 수 있다. 트리거 합성 모듈(906)은 전송 트리거(302)를 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장할 수 있다.
전송 트리거(302)를 생성한 후에, 제어 흐름은 트리거 합성 모듈(906)에서 업로드 트리거(908)로 흘러갈 수 있다. 제어 흐름은 상기에서 서술된 트리거 인지 모듈(902)과 프로세스 인지 모듈(904)사이에서와 마찬가지로 흘러갈 수 있다.
업로드 모듈(908)은 다른 디바이스를 사용하여 나중에 작업(206)을 지속하기 위한 일시 정지 포인트(210)를 전송하기 위해 구성된다. 업로드 모듈(908)은 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108) 또는 이들의 조합과 관련하여, 이들간에 일시 정지 포인트(210)를 통신하거나, 이들 내에 저장하거나, 또는 이러한 프로세스의 조합을 수행함으로써 일시 정지 포인트(210)를 전송할 수 있다.
업로드 모듈(908)은 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302), 사용 또는 접속 데이터, 또는 이들의 조합을 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장할 수 있도록 구성된다. 업로드 모듈(908)은 디바이스들간에 있어서 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302), 사용 또는 접속 데이터, 또는 이들의 조합을 사용하여 일시 정지 포인트(210)를 전송할 수 있다.
업로드 모듈(908)은 업로드 트리거(304)를 만족시키는 것에 기초하여 일시 정지 포인트(210)의 캡처된 인스턴스를 전송 트리거(302)의 생성과 동시에 보낼 수 있다. 그래서, 업로드 모듈(908)은 현재 관찰(402), 콘텍스트(412), 사용자 상호작용, 또는 이들의 조합을 기초하여 일시 정지 포인트(210)의 캡처된 인스턴스를 전송할 수 있다.
만약 작업(206)의 동일한 인스턴스가 이전에 멈춰진 적이 있다면, 업로드 모듈(908)은 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302), 사용 또는 접속 데이터, 또는 이들의 조합을 업데이트 할 수 있다. 업로드 모듈(908)은 이전에 저장된 데이터의 인스턴스와 관련하여, 정보를 순서대로 저장하거나, 덮어씀으로써, 가장 최신의 정보의 구별된 것으로 업데이트 할 수 있다.
프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302), 사용 또는 접속 데이터, 또는 이들의 조합을 전송한 후에, 제어 흐름은 업로드 모듈(908)에서 스케줄 모듈(910)으로 흘러갈 수 있다. 제어 흐름은 상기에서 서술된 바와 같이 트리거 인지 모듈(802)와 프로세스 인지 모듈(904)사이와 유사하게 흘러갈 수 있다.
스케줄 모듈(210)은 일시 정지 포인트(210)으로부터의 작업(206)을 재개하기 위해 작업(206)을 포함하는 작업 큐(502)를 관리하기 위해 구성된다. 스케줄 모듈(910)은 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장된 작업(206)의 모든 인스턴스를 접속할 수 있다. 스케줄 모듈(910)은 제 1 사용자 인터페이스(718), 제 2 사용자 인터페이스(738), 호스트 사용자 인터페이스(838), 또는 이들의조합을 사용하여 작업(206)의 다양한 인스턴스를 표시하기 위해 작업 큐(502)를 관리할 수 있다.
스케줄 모듈(910)은 콘텍스트(412), 관련 요청, 우선 순위, 또는 이들의 조합에 기초하여 작업(206)의 인스턴스를 표시할 수 있다. 예를 들어, 사용자의 콘텍스트(412)가 일과 연관될 때, 스케줄 모듈(910)은 일과 연관된 작업(206)의 인스턴스만을 표시할 수 있다. 또 예를 들면, 작업(206)은 작업(206)을 재개하기 위해 예정되거나 이전에 작업(206)에 접속한 디바이스에 의해, 우선 순위에 의해 멈추는 시간, 재개를 위해 예정된 시간에 기초하여 조직화되고 배열될 수 있다.
스케줄 모듈(910)은 작업 큐(502)를 관리하기 위해 색상, 강도, 형상, 선명도, 크기 또는 이들의 조합을 사용할 수 있다. 예를 들어, 스케줄 모듈(910)은 작업의 시각적 표시와 연관된 색상 체계를 사용하여 작업의 우선 순위를 지시할 수 있다. 또 다른 예로, 스케줄 모듈(910)은 작업 큐(502)에서, 프라이버시 또는 콘텍스트 이슈 등에 기초하여, 작업(206)의 인스턴스를 부적절하거나 사용할 수 없는 것으로 구별하기 위해 작업(206)의 디스플레이된 표시가 희미하게, 흐리게, 수축하게, 진동하게, 또는 이들 프로세스의 조합의 방식대로 표시되게 할 수 있다.
스케줄 모듈(910)은 사용자에게 알림으로써 작업 큐(502)를 관리할 수 있다. 예를 들어, 스케줄 모듈(910)은 작업(206)과 관련된 작업 큐(502), 트리거 제한(302)에 따라 작업(206)의 예정된 시간을 기초하여 사용자에게 알림 또는 통지를 생성할 수 있다.
스케줄 모듈(910)은 작업 큐(502)에서 작업(206)을 일정화 하기 위해 사용자와 상호작용할 수 있다. 스케줄 모듈(910)은 작업 큐(502)의 일정 표시에서 작업(206)을 다른 날로 옮긴다는 것과 같이, 또는 우선순위의 변경과 같이 사용자로부터 입력을 수신할 수 있고, 해당하는 작업(206)을 위해 재개 트리거(306)를 조정할 수 있다. 스케줄 모듈(910)은 재개 트리거(306)를 조정하기 위해 상기 설명된 재개 트리거(306)를 생성하는 것과 유사한 프로세스를 이용할 수 있다.
스케줄 모듈(910)은 도 5의 큐 설정 패널(504)을 사용하여 작업 큐(502)를 관리할 수 있다. 스케줄 모듈(910)은 제 1 화면 인터페이스(718), 제 2 화면 인터페이스(738), 호스트 화면 인터페이스(838), 또는 이들의 조합을 사용하여 큐 설정 패널(504)을 통해 사용자와 상호작용하고 표시할 수 있다. 스케줄 모듈(910)은 작업 큐(502)에 대하여 선택, 필터, 검색, 정렬, 표시, 조정, 스케줄, 또는 이들 프로세스의 조합을 수신할 수 있다.
스케줄 모듈(910)은 작업 큐(502)를 관리하기 위해 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 이용할 수 있다. 스케줄 모듈(910)은 작업 큐(502)를 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장할 수 있다.
작업 큐(502)는 사용자를 위해 끝나지 않은 활동을 관리하고 매일의 활동을 추적하는 능력을 제공한다. 작업 큐(502)는 작업(206)이 마지막으로 접속되고 정지되고 나서, 어떤 디바이스에 사용자가 현재 접속하고 있거나 작업의 일부를 수행하기 위해 이전에 사용되었든 관계없이 사용자에게 이전 기간 동안에 멈췄던 부분을 보여준다. 작업 큐(502)는 작업(206)의 끝나지 않은 인스턴스를 위한 스케줄, 검색, 필터, 또는 이들의 조합을 위해 사용될 수 있다.
작업 큐(502)를 관리한 후에, 제어 흐름은 스케줄 모듈(910)로부터 트리거 인지 모듈(902)로 흘러갈 수 있다. 제어 흐름은 상기에서 서술된 바와 같이 트리거 인지 모듈(902)과 프로세스 인지 모듈(904) 사이와 유사하게 흘러갈 수 있다.
트리거 인지 모듈(902)은 작업(206)을 재개하기 위해 프로세스를 개시할 수 있다. 트리거 인지 모듈(902)은 관찰 모듈(916), 마커 모듈(918), 명령 모듈(920), 또는 이들의 조합을 사용할 수 있고, 현재 관찰(402), 콘텍스트(412), 작업 큐(502), 인지 마커(602), 움직임 패턴(604), 명령 모션 프로파일(606), 또는 이들의 조합을 재개 트리거(306), 트리거 제한(308), 작업 공유 그룹(310), 또는 이들의 조합과 비교하기 위해 상기 설명된 처리를 할 수 있다. 명령 모듈(920)은 제어 흐름이 다운로드 모듈(912)로 흘러감에 따라 지속(continuation)을 개시할 수 있다.
재개 트리거(306)에 대한 일치를 결정한 후에, 제어 흐름은 트리거 인지 모듈(902)에서 프로세스 인지 모듈(904) 대신에 다운로드 모듈(912)로 흘러갈 수 있다. 제어 흐름은 상기 서술된 바와 같이 트리거 인지 모듈(802)과 프로세스 인지 모듈(904) 사이에서와 유사하게 흘러갈 수 있다.
다운로드 모듈(912)은 작업(206)을 재개하기 위해 일시 정지 포인트(210)에 관한 정보에 접속하도록 구성된다. 다운로드 모듈(912)은 프로세스 프로파일(212), 프로세스 콘텐트(214), 또는 이들의 조합의 저장된 인스턴스에 접속하기 위해 제 1 제어 인터페이스(722), 제 2 제어 인터페이스(744), 호스트 제어 인터페이스(844), 또는 이들의 조합을 이용할 수 있다.
다운로드 모듈(912)은 디바이스 간에 프로세스 프로파일(212), 프로세스 콘텐트(214), 또는 이들의 조합을 전송하기 위해 제 1 통신부(716), 제 2 통신부(736), 호스트 통신부(836), 또는 이들의 조합을 이용할 수 있다. 예를 들어, 다운로드 모듈(912)은 핸드폰 또는 노트북으로부터의 작업(206)을 지속하기 위해 핸드폰 또는 노트북으로부터의 서버에서 저장된 일시 정지 포인트(210)에 관한 정보에 접속할 수 있다. 또한 예를 들어, 다운로드 모듈(912)은 태블릿으로부터의 작업(206)을 지속하기 위해 태블릿으로부터의 워크 스테이션에서 저장된 일시 정지 포인트(210)에 관한 정보에 접속할 수 있다.
다운로드 모듈(912)은 사용자가 사용하고 있거나 사용 예정된 디바이스에서 일시 정지 포인트(210)에 관한 정보를 저장할 수 있다. 다운로드 모듈(912)는 프로세스 프로파일(212), 프로세스 콘텐트(214), 또는 이들의 조합을 작업 큐(502)에 기초한 사용을 위해 사용자에 의해 사용되거나 사용 예정된 디바이스에 대응하는 제 1 저장부(714), 제 2 저장부(746), 호스트 저장부(846), 또는 이들의 조합에 저장할 수 있다.
일시 정지 포인트(210)에 관한 정보를 저장하고 접속한 후에, 제어 흐름은 다운로드 모듈(912)에서 복원 모듈(914)로 흘러갈 수 있다. 제어흐름은 상기 서술한 바와 같이 트리거 인지 모듈(902)와 프로세스 인지 모듈(904)사이와 유사하게 흘러갈 수 있다.
복원 모듈(914)은 작업(206)을 재개하기 위해 사용자가 사용하는 디바이스에서 일시 정지 포인트(210)을 복원하도록 구성된다. 복원 모듈(914)은 트리거 인지 모듈(902)에 의해 결정된 것으로써 재개 트리거(306)에 기초할 수 있다. 복원 모듈(914)은 작업(206)에 접속하기 위해 이전에 사용된 어떤 디바이스에 상관없이 사용자가 사용하는 디바이스에서 일시 정지 포인트(210)를 복원할 수 있다.
예를 들어, 비디오 클립을 보는 작업(206)은 개시될 수 있고, 사용자의 상급자 또는 미팅에 대한 발표자에 의해 사용되는 프로젝터 또는 워크스테이션과 같은 디바이스로부터 사용자의 작업 큐(502)로 직접적으로 보내질 수 있다. 사용자는 사용자의 핸드폰으로부터 비디오 클립을 보는 작업(206)을 볼 수 있고, 작업 큐(502)를 통해 나중에 작업(206)을 수행하기 위해 다른 디바이스를 지정할 수 있다. 복원 모듈(914)은 나중에 지정되는 시간 이전에, 다른 디바이스에서 사용자가 보는 것을 중단한 위치 또는 발표자가 참조된 위치에 로드 된 비디오의 콘텐트, 비디오 세팅, 또는 이들의 조합을 저장할 수 있다.
또 다른 예로, 사용자는 느린 통신 속도 때문에 스마트 폰을 사용하여 인터넷에서 사진을 보는 작업(206)을 중단 할 수 있다. 일시 정지 포인트(210)는 웹 서버, 서비스 제공자, 스마트 폰, 또는 이들의 조합에 저장될 수 있고, 작업 큐(502)에 나타내 질 수 있다. 사용자는 나중에 집 안 컴퓨터에서 작업 큐(502) 또는 이전의 웹 사이트에 접속할 수 있다. 복원 모듈(914)은 작업(206)을 재개하기 위해 집 컴퓨터에서 일시 정지 포인트(210)를 다시 시작하기 위해 웹 페이지, 보기 기록, 사용자 로그 정보, 또는 이들의 조합을 로드 할 수 있다.
복원 모듈(914)은 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 이용하여, 프로세스 명령을 로드하거나, 메모리 위치를 획득하거나, 데이터 구조를 형성하거나 또는 이들의 조합을 수행하여, 사용자에 의하여 이용되는 디바이스 내에 프로세스 프로파일(212)을 로드하거나 재생성하고 작업(206)을 지속하도록 할 수 있다. 복원 모듈(914)은 작업(206)을 지속하기 위해 프로세스 콘텐트(214)를 처리하고 접속하기 위해 제 1 제어부(712), 제 2 제어부(734), 호스트 제어부(834), 또는 이들의 조합을 이용할 수 있다.
예를 들어, 사용자는 물건을 사기 전 고려하기 위해 물건의 사진을 찍을 수 있다. 사용자는 집에서 사용자의 텔레비전에서 사진을 표시하기 위해 재개 트리거(306)를 설정할 수 있다. 사용자가 집에 도착하고 텔레비전을 켤 때, 복원 모듈(914)은 사진을 표시하고 로드할 수 있다. 복원 모듈(914)은 작업(206)을 지속하기 위해 물건을 사기 위한 웹 사이트를 로드할 수 있다.
일시 정지 포인트(210)를 복원하고, 작업(206)을 재개한 후에, 제어 흐름은 복원 모듈(914)에서 스케줄 모듈(910)로 흘러갈 수 있다. 제어 흐름은 상기에서 서술하였듯이 트리거 인지 모듈(802)과 프로세스 인지 모듈(904)사이에서 유사하게 흘러갈 수 있다.
스케줄 모듈(910)은 상기에서 설명하였듯이 작업(206)을 업데이트하고 액세스를 반영하기 위해 작업 큐(502)를 업데이트할 수 있다. 스케줄 모듈(910)은 제 1 디바이스(102), 제 2 디바이스(106), 호스트 디바이스(108), 또는 이들의 조합에 업데이트된 작업 큐(502)를 저장할 수 있다.
프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302)는 사용자에 있어 증가된 유용성과 간편성을 허용할 수 있다. 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302)를 사용함으로써, 수동적으로 중간 저장부를 지정하는 것과 중간 저장 정보를 재생하고 접속하는 것을 하지 않을 수 있다.
프로세스 프로파일(212), 프로세스 콘텐트(214), 작업 공유 그룹(310), 전송 트리거(302)는 다양한 사용자와 디바이스간의 원활한 통합을 허용할 수 있다. 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302)가 전송 트리거(302)에 의해 허용된 디바이스로부터의 작업(206)의 업데이트, 지속, 액세스를 허용하는 반면, 작업 공유 그룹(310)은 지정된 그룹의 사람들에게 접속을 허용할 수 있다.
컴퓨팅 시스템(100)은 예로써 모듈 기능과 순서로 설명되어 있다. 컴퓨팅 시스템(100)은 상이하게 모듈들이 분할될 수 있고, 다른 순서로 구성될 수 있다. 예를 들어, 트리거 합성 모듈(906)과 업로드 모듈(908)의 기능 또는 트리거 인지 모듈(902)과 스케줄 모듈(910)의 기능은 결합될 수 있다. 또 다른 예로, 프로세스 인지 모듈(904)은 트리거 합성 모듈(906) 후에 또는 평행하게 실행될 수 있다.
이 애플리케이션에 의해 설명된 모듈들은 도 7의 제 1 제어부(716), 또는 제 2 제어부(738)에서 능동 회로, 수동 회로를 갖는 하드웨어 실행 또는 하드웨어 가속기가 될 수 있다. 모듈들은 또한 제 1 제어부(716), 제 2 제어부(738)외의 제 1 디바이스(102), 제 2 디바이스(106)내에서 능동 회로, 수동 회로를 갖는 하드웨어 가속기 또는 하드웨어 실행이 될 수 있다.
프로세스 프로파일(212)과 프로세스 콘텐트(214)에 의하여 캡처된 일시 정지 포인트(210)로부터의 물리적 변형은 사용자가 작업(206)의 다른 인스턴스를 실행하는 것과 같은 물리적 세계에서의 움직임을 가져온다. 물리적 세계에서의 움직임은 사용자가 작업(206)의 다른 인스턴스를 실행함에 의하여 작업 큐(502)의 변화를 가져온다.
또한, 전송 트리거(302)로부터의 물리적 변형은 사용자에 있어 작업(206)의 처리를 지속하거나 멈추는 디바이스와 같은 물리적 세계의 움직임을 가져온다. 물리적 세계에서의 움직임은 일시 정지 포인트(210), 콘텍스트(412), 현재 관찰(402)에서의 변화를 가져오고, 이는 전송 트리거(302)에 업데이트에 의하여 캡처될 수 있다.
도 10을 보면, 본 발명의 일 실시 예로써 컴퓨팅 시스템(100)의 동작 방법(1000)의 흐름도를 볼 수 있다. 방법(1000)은 다음의 단계를 포함한다. 블록(1002)에서 작업을 처리 중에 일시 정지 포인트를 캡처하기 위한 프로세스 프로파일을 결정하는 단계; 블록(1004)에서 일시 정지를 캡쳐하기 위해 프로세스 콘텐트를 인식하는 단계; 블록(1006)에서 프로세스 콘텐트와 프로세스 프로파일을 저장하는 단계; 블록(1008)에서 일시 정지로부터의 작업을 재개하고 디바이스상에 표시하기 위해 프로세스 콘텐트와 프로세스 프로파일을 저장할 경우, 제어부를 이용하여 재개 트리거를 생성하는 단계.
프로세스 프로파일(212), 프로세스 콘텐트(214), 작업 공유 그룹(310), 전송 트리거(302)는 다수의 사용자와 디바이스 간에 원활한 통합을 허용한다. 프로세스 프로파일(212), 프로세스 콘텐트(214), 전송 트리거(302)가 전송 트리거(302)에 의해 허용된 디바이스로부터 작업(206)의 업데이트, 액세스, 지속을 허용하는 반면, 작업 공유 그룹(310)은 지정된 그룹의 사람들에게 접속을 허용해 준다.
도 5의 작업 큐(502)는 일상 활동을 추적하고 사용자를 위한 미완성 활동을 관리하는 능력을 제공할 수 있다. 작업 큐(502)는 작업(206)이 마지막으로 접속되고 일시 정지될 때를 추적할 수 있고, 현재 접속하고 있거나 작업의 일부를 실행하기 위해 이전에 접속하였던 어떤 디바이스든지 관계없이 이전 세션 동안 멈췄던 곳을 사용자에게 보여줄 수 있다. 작업 큐(502)는 작업(206)의 미완성 인스턴스를 위해 작업의 스케줄화, 검색, 필터, 또는 이들의 조합을 위해 사용될 수 있다.
본 발명에 의한 방법, 프로세스, 장치, 제품 및 시스템은 간단하고, 비용적으로 효과적이며, 복잡하지 않으면서 매우 다양하고 정확하다. 또한 본 발명에 의한, 프로세스, 장치, 제품 및 시스템에 알려진 성분을 적용함으로써 즉시 이용할 수 있으면서 효율적이고 경제적인 제조, 응용 및 활용을 구현할 수 있다. 본 발명의 또 다른 중요한 측면은 비용 절감, 시스템 단순화, 성능 증가를 요구하는 현 추세에 부합한다는 것이다.
이러한 본 발명의 실시 예에서 볼 수 있는 유용한 양상은 결과적으로 적어도 현 기술의 수준을 높일 수 있을 것이다.
본 발명은 특정한 최상의 실시 예와 관련하여 설명되었지만, 이외에 본 발명에 대체, 변형 및 수정이 적용된 발명들은 전술한 설명에 비추어 당업자에게 명백할 것이다. 즉, 청구범위는 이러한 모든 대체, 변형 및 수정된 발명을 포함하도록 해석한다. 그러므로 이 명세서 및 도면에서 설명한 모든 내용은 예시적이고 비제한적인 의미로 해석해야 한다.

Claims (16)

  1. 작업의 프로세싱에서 일시 정지 포인트(pause point)를 캡처(capture)하기 위한 프로세스 프로파일을 결정하도록 구성된 상태 모듈(status module);
    상기 상태 모듈에 연결되고, 상기 일시 정지 포인트를 캡처하기 위한 프로세스 콘텐트를 식별하도록 구성된 콘텐트 모듈(content module);
    상기 콘텐트 모듈에 연결되고, 상기 프로세스 프로파일과 상기 프로세스 콘텐트를 저장하도록 구성된 업로드 모듈(upload module); 및
    상기 업로드 모듈에 연결되고, 상기 일시 정지 포인트(pause point)로부터 상기 작업을 재개하고 디바이스 상에 표시하기 위하여, 상기 프로세스 프로파일과 상기 프로세스 콘텐트를 저장할 경우, 재개 트리거(resumption trigger)를 생성하도록 구성된 트리거 합성 모듈(trigger synthesis module)을 포함하는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 상태 모듈에 연결되고, 현재 시간, 활동 유형, 활동 참가자에 기초하여 상기 작업과 관련된 콘텍스트를 결정하도록 구성된 트리거 인지 모듈(trigger recognition module)을 더 포함하고,
    상기 상태 모듈은 상기 콘텍스트에 대응되는 업로드 트리거(upload-trigger)에 기초하여 상기 프로세스 프로파일을 결정하도록 구성된 것을 특징으로 하고,
    상기 트리거 합성 모듈은 상기 콘텍스트에 기초하여 상기 재개 트리거(resumption-trigger)를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 상태 모듈은 사용 가능한 디바이스 타입에 대응되는 업로드 트리거에 기초하여 상기 프로세스 프로파일을 결정하도록 구성된 것을 특징으로 하고,
    상기 트리거 합성 모듈은 상기 사용 가능한 디바이스 타입에 기초하여 상기 재개 트리거를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 트리거 합성 모듈은 상기 작업을 재개하기 위하여 트리거 제한(trigger-limitation)을 포함하는 상기 재개 트리거를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 트리거 합성 모듈에 연결되고, 사용자의 움직임을 인식하기(identify) 위하여 인지 마커(recognition marker)를 인식하도록 구성된 마커 모듈(marker module); 및
    상기 마커 모듈에 연결되고, 상기 인지 마커를 사용하여 움직임 패턴을 탐색하도록 구성된 명령 모듈(command module)을 더 포함하고,
    상기 트리거 합성 모듈은 상기 움직임 패턴과 명령 모션 프로파일을 비교하는 것에 기초하여 상기 재개 트리거를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  6. 제 1 항에 있어서,
    상기 업로드 모듈에 연결되어, 상기 일시 정지 포인트로부터 상기 작업을 재개하고 디바이스상에 표시하기 위하여 상기 작업을 포함하는 작업 큐(task queue)를 관리하도록 구성된 스케줄 모듈을 더 포함하는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 업로드 모듈은 상기 일시 정지 포인트의 이전 인스턴스로부터 상기 작업을 재개하는 것에 기초하여 이전 인스턴스로부터의 상기 프로세스 콘텐트와 상기 프로세스 프로파일을 업데이트 하는 것을 특징으로 하는 컴퓨팅 시스템.
  8. 제 1 항에 있어서,
    상기 트리거 합성 모듈은 현재 시간, 활동 유형, 활동 참가자 또는 이들의 조합에 기초한 콘텍스트에 대응되는 상기 재개 트리거를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  9. 제 1 항에 있어서,
    상기 트리거 합성 모듈은 사용 가능한 디바이스 타입에 대응되는 상기 재개 트리거를 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 시스템.
  10. 제 1 항에 있어서,
    상기 트리거 합성 모듈에 연결되고, 상기 디바이스에 의해 개시된 상기 작업을 지속하기 위하여 상기 재개 트리거에 기초하여 한 다른 디바이스에서 상기 일시 정지 포인트를 복원하도록 구성된 복원 모듈(restoration module)을 더 포함하는 컴퓨팅 시스템.
  11. 컴퓨팅 시스템을 작동하는 방법에 있어서,
    작업의 프로세싱에서 일시 정지 포인트를 캡처하기 위하여 프로세스 프로파일을 결정하는 단계;
    상기 일시 정지 포인트를 캡처하기 위하여 프로세스 콘텐트를 인식 하는 단계;
    상기 프로세스 콘텐트와 상기 프로세스 프로파일을 저장하는 단계;
    상기 일시 정지 포인트로부터 상기 작업을 재개하고 디바이스상에 표시하기 위하여 상기 프로세스 프로파일과 상기 프로세스 콘텐트를 저장할 경우, 재개 트리거를 생성하는 단계를 포함하는 방법.
  12. 제 11 항에 있어서,
    현재 시간, 활동 유형, 활동 참가자에 기초하여 상기 작업과 관련된 콘텍스트를 결정하는 단계를 더 포함하고,
    상기 프로세스 프로파일을 결정하는 단계는 상기 콘텍스트에 대응되는 업로드 트리거에 기초한 상기 프로세스 프로파일을 결정하는 것을 특징으로 하고,
    상기 재개 트리거를 생성하는 단계는 상기 콘텍스트에 기초한 상기 재개 트리거를 생성하는 것을 특징으로 하는 방법.
  13. 제 11 항에 있어서,
    상기 프로세스 프로파일을 결정하는 단계는 사용 가능한 디바이스 타입에 대응되는 업로드 트리거를 기초한 프로세스 프로파일을 결정하는 것을 특징으로 하고,
    상기 재개 트리거를 생성하는 단계는 상기 사용 가능한 디바이스 타입에 기초한 상기 재개 트리거를 생성하는 것을 특징으로 하는 방법.
  14. 제 11 항에 있어서,
    상기 재개 트리거를 생성하는 단계는 상기 작업을 재개하기 위하여 트리거 제한(trigger-limitation)을 포함하는 상기 재개 트리거를 생성하는 것을 특징으로 하는 방법.
  15. 제 11 항에 있어서,
    사용자의 움직임을 인식하기 위해 인지 마커를 인식하는 단계; 및
    상기 인지 마커를 사용하여 움직임 패턴을 탐색하는 단계를 더 포함하고,
    상기 재개 트리거를 생성하는 단계는 상기 움직임 패턴과 명령 모션 프로파일을 비교하는 것을 기초하여 상기 재개 트리거를 생성하는 것을 특징으로 하는 방법.
  16. 상기 제 11 항 내지 제 15 항 중 어느 한 항의 방법을 실행 가능하게 하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체.
KR1020140028848A 2013-03-14 2014-03-12 작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법 KR102200944B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/804,059 2013-03-14
US13/804,059 US9524489B2 (en) 2013-03-14 2013-03-14 Computing system with task transfer mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
KR20140113415A true KR20140113415A (ko) 2014-09-24
KR102200944B1 KR102200944B1 (ko) 2021-01-11

Family

ID=51534760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140028848A KR102200944B1 (ko) 2013-03-14 2014-03-12 작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법

Country Status (4)

Country Link
US (1) US9524489B2 (ko)
EP (1) EP2972966A4 (ko)
KR (1) KR102200944B1 (ko)
WO (1) WO2014142522A1 (ko)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
CN104123191A (zh) * 2014-07-31 2014-10-29 北京智谷睿拓技术服务有限公司 任务迁移控制方法、装置和系统
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10339081B2 (en) 2015-05-09 2019-07-02 Medtronic, Inc. Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10725826B1 (en) * 2017-06-21 2020-07-28 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10445140B1 (en) * 2017-06-21 2019-10-15 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US11216370B2 (en) * 2018-02-20 2022-01-04 Medtronic, Inc. Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11983563B2 (en) * 2019-05-08 2024-05-14 Bank Of America Corporation Contextual information extractor with model explainability calculator
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11061638B2 (en) * 2019-09-17 2021-07-13 The Toronto-Dominion Bank Dynamically determining an interface for presenting information to a user
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078949A (ja) * 2002-08-12 2004-03-11 Docomo Communications Laboratories Usa Inc アプリケーションの移送サービス
US8171137B1 (en) * 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2856386B2 (ja) 1994-10-26 1999-02-10 松下電器産業株式会社 色彩調整装置及びその方法
US5874988A (en) 1996-07-08 1999-02-23 Da Vinci Systems, Inc. System and methods for automated color correction
US6313823B1 (en) 1998-01-20 2001-11-06 Apple Computer, Inc. System and method for measuring the color output of a computer monitor
US7102648B1 (en) 2000-04-11 2006-09-05 Rah Color Technologies Llc Methods and apparatus for calibrating a color display
IL161884A0 (en) 2001-11-13 2005-11-20 Lockheed Corp Information aggregation, processing and distribution system
JP2003228658A (ja) 2002-02-05 2003-08-15 Akira Aoki インターネットによる商品の販売方法
US7693817B2 (en) 2005-06-29 2010-04-06 Microsoft Corporation Sensing, storing, indexing, and retrieving data leveraging measures of user activity, attention, and interest
EP1814295B1 (en) 2006-01-27 2014-04-16 Mitel Networks Corporation Communication handoff between telephone devices
US20070239726A1 (en) 2006-03-29 2007-10-11 Mathew Girard Weiss Systems and methods of transforming data for web communities and web applications
KR101080846B1 (ko) 2010-03-30 2011-11-07 중앙대학교 산학협력단 보정 행렬의 추정에 의한 영상의 색상 손상 보정장치 및 방법
US9177346B2 (en) 2010-07-01 2015-11-03 Facebook, Inc. Facilitating interaction among users of a social network
CN103180891B (zh) 2010-07-22 2015-09-02 杜比实验室特许公司 显示器管理服务器
WO2012107929A2 (en) * 2011-02-09 2012-08-16 Conduit Ltd Application synchronization among multiple computing devices
EP2691856A1 (en) * 2011-03-31 2014-02-05 AOL Inc. Systems and methods for transferring application state between devices based on gestural input
US9864632B2 (en) * 2011-08-17 2018-01-09 Open Invention Network, Llc System and method for transfer of an application state between devices
US10043022B2 (en) * 2012-03-05 2018-08-07 R.R. Donnelley & Sons Company Systems and methods for digital content delivery
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078949A (ja) * 2002-08-12 2004-03-11 Docomo Communications Laboratories Usa Inc アプリケーションの移送サービス
US8171137B1 (en) * 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices

Also Published As

Publication number Publication date
US9524489B2 (en) 2016-12-20
KR102200944B1 (ko) 2021-01-11
US20140282559A1 (en) 2014-09-18
EP2972966A1 (en) 2016-01-20
WO2014142522A1 (en) 2014-09-18
EP2972966A4 (en) 2016-11-23

Similar Documents

Publication Publication Date Title
KR102200944B1 (ko) 작업 전송 매커니즘을 구현한 컴퓨팅 시스템 및 그 동작 방법
US11388208B2 (en) Virtual agent communication for electronic device
US11169654B2 (en) Task completion across devices using a shared work space
US10524092B2 (en) Task automation using location-awareness of multiple devices
US20240073167A1 (en) Determining contextually relevant application templates associated with electronic message content
US9760399B1 (en) Dynamic process management
US9781594B2 (en) Context based mobile device
US9864974B2 (en) Serendipitous issue reminder system
US20160104094A1 (en) Future meeting evaluation using implicit device feedback
CN110337660B (zh) 针对用户生活事件的上下文应用组织器框架
US10778833B2 (en) Mobile computing device notification mode determination
JP6273033B2 (ja) ユーザの計画及び目標のコンテキスト理解に基づくリソースのプラットフォーム自己管理
KR20140112445A (ko) 리소스 관리 매커니즘을 구현한 컴퓨팅 시스템 및 그 작동 방법
US11157160B1 (en) Graphical user interface (GUI) for controlling virtual workspaces produced across information handling systems (IHSs)
EP4062345A1 (en) Enhanced views and notifications of location and calendar information
US20160173422A1 (en) Message delivery via preferred communications applications
US11150860B1 (en) Dynamic virtual workspace with contextual control of input/output (I/O) devices
US11928382B2 (en) Contextual intelligence for virtual workspaces produced across information handling systems (IHSs)
CA2822276A1 (en) Methods and devices for storing content based on classification options
KR20150020021A (ko) 에이전트 보조 매커니즘을 구비한 통신 시스템 및 그 동작 방법
US20170109033A1 (en) Method and apparatus for performing operation using intensity of gesture in electronic device

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