KR20140110728A - 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법 - Google Patents

컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법 Download PDF

Info

Publication number
KR20140110728A
KR20140110728A KR1020140014441A KR20140014441A KR20140110728A KR 20140110728 A KR20140110728 A KR 20140110728A KR 1020140014441 A KR1020140014441 A KR 1020140014441A KR 20140014441 A KR20140014441 A KR 20140014441A KR 20140110728 A KR20140110728 A KR 20140110728A
Authority
KR
South Korea
Prior art keywords
application
module
executable file
user
context
Prior art date
Application number
KR1020140014441A
Other languages
English (en)
Other versions
KR102173108B1 (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 KR20140110728A publication Critical patent/KR20140110728A/ko
Application granted granted Critical
Publication of KR102173108B1 publication Critical patent/KR102173108B1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Abstract

컴퓨팅 시스템의 작동 방법은 사용자 개시 활동을 실행하기 위한 컨텍스트 결정단계, 사용자 개시 활동을 실행을 위하여 컨텍스트를 기초로 작동 지시 결정 단계, 어플리케이션 순서에 따라 실행 파일과 추가 실행 파일을 실행하기 위하여 작동 지시를 기초로 어플리케이션 순서를 생성하여 장치 상 디스플레이를 통해 사용자 개시 활동을 실행하는 단계를 포함한다.

Description

컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법{COMPUTING SYSTEM WITH CONTEXTUAL INTERACTION MECHANISM AND METHOD OF OPERATION THEREOF}
본 발명의 실시예는 일반적으로 컴퓨팅 시스템, 보다 구체적으로 컨텍스트적인 사용자와의 상호작용을 위한 시스템에 대한 것이다.
현대 소비재와 산업 전자 제품들, 특히 도식 컴퓨팅 시스템(graphical computing system), 텔레비전, 휴대 전화, PDA 그리고 복합기와 같은 장치들은 사용자의 어플리케이션에 접근하는 것을 포함, 보다 높은 수준의 기능을 제공하여 현대의 삶을 지원하고 있다. 종래 기술에 있어 연구 개발은 무수히 많은 다른 방향으로 이루어질 수 있다.
그러나 소프트웨어 어플리케이션의 빠른 증가는 소비자들에게 다른 무엇보다 중요한 관심사가 되었다. 가용 소프트웨어 어플리케이션과 다양한 기능의 양은 사용자들에게 새로운 도전을 선사하였다.
편리성의 증대를 위하여 사용자와의 컨텍스트적인 상호작용을 갖춘 컴퓨팅 시스템에 대한 필요는 여전히 남아있다. 지속적으로 증가하는 상업 경쟁의 압박이라는 측면에서, 증가하는 소비자의 요구와 함께 시장에서 의미 있는 제품 차별화의 기회는 줄어들고 있고, 이러한 문제에 대한 답을 찾는 것은 더욱 어렵다. 또한, 원가 절감의 필요, 효율과 퍼포먼스(performance)의 개선, 그리고 경쟁력 강화를 위해서 이러한 문제에 대한 해결책 모색의 필요성은 훨씬 더 급박해 졌다.
이러한 문제들에 대한 해결책은 오랫동안 모색되어 왔지만 선행 개발은 어떠한 해결책도 가르치거나 제시하지 않았고, 이러한 문제에 대한 해결책은 당업자들에게서 오랫동안 회피되어 왔다.
본 발명의 실시예는 실행되는 작업의 컨텍스트를 결정하는 단계, 실행 작업의 컨텍스트를 기초로 작동 지시를 결정하는 단계, 어플리케이션 순서에 따라 실행 파일과 추가 실행 파일을 실행하기 위하여 작동 지시를 기초로 어플리케이션 순서를 생성하여 장치상 디스플레이를 통하여 작업을 실행하는 단계를 포함하는, 컴퓨팅 시스템의 작동 방법을 제공한다.
본 발명의 실시예는 사용자 프로파일(profile)을 결정하는 단계, 사용자가 개시 활동(user-initiated action)을 실행하기 위하여 조절 유닛을 가지고 사용자 프로파일을 기초로 컨텍스트를 결정하는 단계, 사용자가 개시 활동을 실행하기 위하여 컨텍스트에 기초하여 작동 지시를 결정하는 단계, 어플리케이션 순서에 따른 실행 파일과 추가 실행 파일을 실행하기 위하여 작동 지시를 기초로 어플리케이션 순서를 생성하여 사용자가 개시 활동을 실행하는 단계, 그리고 사용자가 개시 활동을 실행하고 장치상에 디스플레이 하기 위하여 어플리케이션 순서에 따른 실행 파일이나 추가 실행파일 또는 그들의 조합을 사전 로딩하는 단계를 포함하는, 컴퓨팅 시스템의 작동 방법을 제공한다.
본 발명의 실시예는 작업을 실행하기 위하여 컨텍스트를 결정하도록 구성된 컨텍스트 결정 모듈, 컨텍스트 결정 모듈과 연결되고 작업을 실행하기 위하여 컨텍스트를 기초로 작동 지시를 결정하도록 구성된 작동 지시 모듈, 작업 지시 모듈과 연결되고 어플리케이션 순서에 따라 실행 파일과 추가 실행 파일을 실행하기 위하여 작동 지시를 기초로 어플리케이션 순서를 생성하여 장치상 디스플레이를 통하여 작업을 실행하도록 구성된 어플리케이션 순서 모듈을 포함하는, 컴퓨팅 시스템을 제공한다.
상기 발명의 어떤 실시예들은 전술한 실시예에 추가되는 혹은 전술한 실시예를 대체하는 다른 단계나 구성요소를 가진다. 그 단계나 구성요소들은 다음의 상세한 설명을 읽고 첨부된 도면을 참조함으로써 당업자들에게 명백해 질 것이다.
도1은 본 발명의 일 실시예에서 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템이다.
도2는 도1에 있는 제1 장치의 디스플레이 인터페이스에 대한 제1 예이다.
도3은 도1에 있는 제1 장치의 디스플레이 인터페이스에 대한 제2 예이다.
도4는 컴퓨팅 시스템의 블록 다이어그램의 예이다.
도5는 컴퓨팅 시스템의 제어 흐름도이다.
도6은 본 발명의 추가 실시예에서의 컴퓨팅 시스템에 대한 작동 방법의 흐름도이다.
다음의 실시예들은 당업자가 본 발명을 실시하고 사용할 수 있게 하기 위하여 충분히 자세하게 설명된다. 다른 실시예들도 본 공개를 기초로 분명해질 것이고, 시스템적, 프로세스적 또는 기계적 변화가 본 발명의 실시예 범위 내에서 이루어 질 수 있다.
다음의 설명에서는 수많은 구체적인 설명이 본 발명의 전체적인 이해를 돕기 위하여 제공될 것이다. 그러나 이러한 구체적 설명 없이도 발명이 실시될 수 있음은 명백할 것이다. 본 발명의 실시예를 이해하기 힘들게 하지 않기 위하여, 주지의 서큇(circuits), 시스템 컨피그레이션(system configurations), 그리고 과정 단계는 자세히 공개되지 않는다.
시스템의 실시예들을 도시하는 도면은 간이도표이고, 특히 어떤 치수는 표현의 명확성을 위하여 비율에 따라 제공(scale)되지 않고, 도면에서 과장되어 도시된다. 이와 유사하게, 비록 설명의 용이를 위하여 도면의 도시는 일반적으로 비슷한 방향을 보여주지만, 도면에서의 묘사는 대부분의 경우에 임의적이다. 일반적으로 상기 발명은 어떤 방향에서도 작동될 수 있다.
여기서 인용된 "모듈"이라는 용어는 본 발명에서 그 용어가 사용된 문장에 따라 소프트웨어, 하드웨어 또는 그들의 조합을 포함할 수 있다. 예를 들어, 소프트웨어는 기계어, 펌웨어, 임베디드 코드(embedded code) 그리고 응용 소프트웨어일 수 있다. 또한 하드웨어는 전기회로망, 프로세서, 컴퓨터, 집적회로, 집적회로코어, 압력 센서, 관성 센서, 미소 전자 기계 시스템(MEMS), 수동 장치 또는 그들의 조합일 수 있다.
이제 도1을 보면, 도1은 본 발명의 일 실시예에서 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템(100)을 도시한다. 컴퓨팅 시스템(100)은 클라이언트나 서버와 같은, 제2 장치(106)에 연결된 제1 장치(102)를 포함한다. 제1 장치(102)는 유무선 네트워크와 같은 통신망(104)를 통하여 제2 장치(106)와 통신할 수 있다.
예를 들어, 제1 장치(102)는 휴대 전화, PDA, 노트북, 스마트 폰, 컴퓨터 또는 다른 다기능 디스플레이나 오락 기기와 같은 다양한 디스플레이 장치 중의 어느 것일 수 있다. 제1 장치(102)는 직접, 혹은 간접적으로 통신망(104)과 연결되어 제2 장치(106)와 통신하거나 독립적 장치로 존재할 수 있다.
컴퓨팅 시스템(100)은, 제1 장치(102)가 다른 형태의 장치일 수도 있지만, 이해를 위하여 디스플레이 장치로서의 제1 장치(102)를 갖춘 것으로 설명된다. 예를 들어, 제1 장치(102)는 또한 이미지나 멀티미디어 프리젠테이션을 표현하는 장치일 수도 있다.
제2 장치(106)는 다양한 집중 혹은 분산 계산 장치 또는 비디오 전송 장치일 수 있다. 예를 들어, 제2 장치(106)는 서버, 멀티미디어 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터, 그리드 컴퓨팅 자원(grid-computing resource), 가상 컴퓨터 자원(virtualized computer resource), 클라우드 컴퓨터 자원(cloud computing resource), 라우터(routers), 스위치(switches), P2P 분산 계산 장치(peer-to-peer distributed computing devices) 또는 그들의 조합일 수 있다.
다른 예에서, 제2 장치(106)는 메인프레임(mainframe), 서버, 클러스터 서버(cluster server), 랙 마운티드 서버(rack mounted server) 또는 블레이드 서버(blade server)와 같은 특별한 기계일 수 있고, 더 구체적 예로는 IBM 시스템 z100 비즈니스 클래스 메인프레임이나 HP ProLiant ML 서버 일 수도 있다. 그러나 다른 예에서 제2 장치(106)는 휴대용 계산 장치, 씬 클라이언트(thin client), 노트북, 넷북, 스마트폰, PDA 또는 휴대 전화와 같은 특별한 기계일 수 있고, 더 구체적 예로는 애플 아이폰, 팜 센트로(Palm Centro), Moto Q Global일 수도 있다.
제2 장치(106)은 동일 룸(room)에 집중될 수도 있고, 다른 룸에 분산될 수도 있으며, 다른 지리적 장소에 분산될 수도 있고, 통신망에 내장될 수도 있다. 제2 장치(106)은 통신망(104)에 연결되어 제1 장치(102)와 통신할 수 있다.
네비게이션 시스템(100)의 제2 장치(106)는 다른 형태의 컴퓨팅 장치가 될 수도 있지만, 설명을 위하여 모바일이 아닌 컴퓨팅 장치로서 제2 장치(106)로 설명된다. 예를 들어, 제2 장치(106)은 노트북 컴퓨터나 다른 클라이언트 장치 또는 다른 형태의 클라이언트 장치와 같이 모바일 컴퓨팅 장치가 될 수도 있다. 제2 장치(106)은 독립형의 장치가 될 수도 있고, 승용차, 트럭, 버스나 기차 같은 자동차와 통합될 수도 있다.
컴퓨팅 시스템(100)은, 제2 장치(106)가 다른 형태의 장치일 수도 있지만, 설명을 위하여 컴퓨팅 장치인 제2 장치(106)로 설명된다. 컴퓨팅 시스템(100)은 또한, 컴퓨팅 시스템(100)이 제1 장치(102)와 제2 장치(106) 또는 통신망(104)과 사이에 다른 배열을 가질 수도 있지만, 설명을 위하여 제2 장치(106)와 제1 장치(102)가 통신망(104)의 끝 점인 배열로 도시한다. 예를 들어, 제1 장치(102)와 제2 장치(106) 또는 그들의 조합은 통신망(104)의 일부로서 기능할 수도 있다.
통신망(104)은 확장하여 다양한 네트워크를 표현할 수 있다. 예를 들어, 통신망(104)은 무선 통신망, 유선 통신망, 광 통신망, 초음파 통신망 또는 그들의 조합을 포함할 수 있다. 위성 통신, 무선 통신, 블루투스, lrDA(Infrared Data Association standard), 와이파이, 그리고 WiMAX(worldwide interoperability for microwave access)는 통신망(104)에 포함될 수 있는 무선 통신망의 예이다. 이더넷(Ethernet), DSL(digital subscriber line), FTTH(fiber to the home), POTS(plain old telephone service)는 통신망(104)에 포함될 수 있는 유선 통신망의 예이다. 또한 통신망(104)은 수많은 통신 토폴로지(topologies)와 거리를 아우를 수 있다. 예를 들어, 통신망(104)은 직접 연결, PAN(personal area network), LAN(local area network), MAN(metropolitan area network), WAN(wide area network) 또는 그들의 조합을 포함할 수 있다.
이제 도2를 살펴보면, 도2에서는 도1에 있는 제1 장치(102)용 디스플레이 인터페이스(202)의 예를 도시한다. 디스플레이 인터페이스는 사용자 개시 활동(user-initiated action )(204)을 보여줄 수 있다. 사용자 개시 활동(204)은 그 목적 달성을 위하여 도1에 있는 컴퓨팅 시스템(100)에 의해 수행되고 완료되는 단일 활동 또는 그룹 활동이 될 수 있다. 예를 들어, 사용자 개시 활동(204)은 여행 계획, 문서 또는 이미지 생성, 활동 관련된 교제(entertainment)에의 참가, 정보 찾기, 다른 사용자나 단체와의 통신, 스케줄 관리, 물건이나 장소, 서비스의 예약 또는 그들의 조합일 수 있다.
사용자 개시 활동(204)은 사용자 개시 활동(204)을 실현하거나 수행하기 위하여 그와 관련된 하나 혹은 그 이상의 활동을 가질 수 있다. 사용자 개시 활동(204)은 다중 활동을 위하여 작동 지시(206)를 가질 수 있다. 작동 지시(206)는 다중 활동을 수행하는 순서로 정의된다. 작동 지시(206)는 사용자 개시 활동(204)을 실현하거나 수행하기 위한 중간 항목들의 순서일 수 있다. 작동 지시(206)는 사용자 개시 활동(204)과 관련된 중간 항목들(207)을 조직할 수 있다.
중간 항목들(207)은 여러 활동들을 수행하는 데 사용될 수 있는 단계, 활동, 목적 이나 목표 또는 그들의 조합으로 정의된다. 중간 항목들(207)은 사용자 개시 활동(204)을 수행하는데 사용될 수 있다. 예를 들어, 중간 항목들(207)은 사용자 개시 활동(204)을 수행하기 위하여 결합될 수 있는 키워드, 카테고리 식별장치, 핵심 동사 또는 그들의 조합일 수 있다.
더 구체적으로 예를 들면, 중간 항목들(207)은 "날짜 확인", "전자 메일과 업무 스케줄의 크로스 체크(cross-check)", "호텔 예약", "항공권 예약", "회의 등록", "정보의 확인" 또는 그들의 조합일 수 있다. 중간 항목들(207)은 차례로 배열되어 "숙소 준비"라는 사용자 개시 활동(204)을 수행할 수 있다. 또한 예를 들어, 중간 항목들(207)은 "누가", "언제", "어디서", "무엇을", "어떻게" 또는 그들의 조합을 포함하는 개념을 가진 기본 정보에 의해 "예약", "숙소"와 같은 키워드나 개념을 사용하여 분류되거나 조직될 수 있다.
작업을 위한 작동 지시(206)는 사용자 개시 활동(204)을 둘러싼 환경에 따라 달라질 수 있다. 예를 들어, 휴가 예약을 위한 사용자 개시 활동(204)은 출장 예약을 위한 사용자 개시 활동(206)과는 다른 작동 지시(206)의 인스턴스를 가질 수 있다. 휴가를 위한 작동 지시(206)는 가격과 위치를 검색하는 단계, 가능 일자를 알기 위해 개인 정보(concepts) 검색 단계, 그리고 경제적으로 가능한 일자와 장소를 알기 위하여 항공권과 호텔을 찾고 예약하기 위하여 위 두 가지 정보를 비교하는 단계를 포함할 수 있다. 작동 지시(206)는 식당 검색 또는 사용자와 사회적으로 연결된 다른 사람 또는 휴가 날짜를 정하거나 변경함에 있어 컴퓨팅 시스템(100) 내의 사용자와 유사점을 가진 다른 사용자로부터의 추천 활동을 포함할 수 있다.
계속해서 예를 들면, 업무 출장을 위한 작동 지시(206)는 가격과 위치를 검색하는 단계나 일자가 지정되어 있으므로 그것들과 스케줄을 비교하는 단계 없이 항공권과 호텔을 예약하는 단계를 포함할 수 있다. 작동 지시(206)는 식당 검색 단계 또는 사용자 정보에 기초한 추천 활동 단계, 예약 일자를 결정하거나 변경하는 단계 대신 항공권과 호텔 예약 후, 잠재적 고객 또는 잠재적 계약자, 업무 출장을 위한 동료 참석자 또는 그들의 조합과 같은 잠재적 사업 접촉 단계를 포함할 수 있다.
디스플레이 인터페이스(202)는 컨텍스트(context)(208)을 보여줄 수 있다. 컨텍스트(208)은 사건이 발생하는 환경으로 정의된다. 컨텍스트(208)은 사용자 개시 활동(204)와 관련될 수 있다. 예를 들어, 컨텍스트(208)은 사용자 개시 활동(204)을 위한 동기, 이유, 영향 또는 그들의 조합일 수 있다.
컨텍스트(208)은 특징의 활성화나 비활성화, 특징이나 상태, 가치 또는 그들의 조합에 대한 사전 로딩 또는 그 사이의 링크(link)와 같은 기능들 사이의 상관관계를 포함하는 키워드, 카테고리, 기능적 한계로 표현될 수 있다. 컨텍스트(208)은 컴퓨팅 시스템(100)에 의해 결정될 수 있다. 컨텍스트(208)은 또한 사용자 개시 활동(204)을 위한 작동 지시(206)를 결정하는데 사용될 수도 있다. 결정과 관련된 자세한 사항과 컨텍스트(208)의 사용은 아래에서 논의될 것이다.
디스플레이 인터페이스(202)는 또한 실행 파일(212)와 추가 실행 파일(214)와 같은 어플리케이션(210)을 보일 수도 있다. 어플리케이션(210)은 특정한 활동을 수행하기 위한 일련의 개별적 지시로 정의된다. 어플리케이션(210)은 사용자 개시 활동(204) 또는 그 일부를 실현하거나 완료하는데 사용될 수 있다. 어플리케이션(210)은 사용자가 사용자 개시 활동(204)의 특정한 예를 실행하는 것을 돕기 위하여 디자인되었다. 어플리케이션(210)은 소프트웨어 어플리케이션, 실행 가능한 하드웨어 엑셀레이터, 하드웨어 장치 또는 그들의 조합일 수 있다.
실행 파일(212)과 추가 실행 파일(214)은 다른 활동을 수행하기 위한 다른 일련의 지시일 수 있다. 컴퓨팅 시스템(100)은 사용자 개시 활동(204)을 실현하거나 완료하기 위하여 특정한 지시의 실행 파일(212)과 추가 실행 파일(214)을 사용할 수 있다. 실행 파일(212)과 추가 실행 파일(214)의 지시와 관련한 자세한 사항은 아래에서 설명될 것이다.
어플리케이션(210)은 제목(216), 설명(218), 입력(220), 그리고 출력(222)을 각각 가질 수 있다. 제목(216)은 개인적 인스턴스 어플리케이션(210)을 식별하는 문자, 상징, 숫자 또는 그들의 조합일 수 있다. 설명(218)은 각 어플리케이션(210)에 의해 실행될 수 있는 구체적인 활동을 설명하는 일련의 문자, 상징, 숫자 또는 그들의 조합일 수 있다. 예를 들어, 설명(218)은 블로그 상의 사용자 설명, 소프트웨어의 제작 설명, 특정 활동과 관련한 일련의 키워드 또는 그들의 조합일 수 있다.
입력(220)은 각 어플리케이션(210)에 의해 사용되어 특정 활동을 수행하는 정보일 수 있다. 출력(222)은 각 어플리케이션(210)에 의해 생성되고, 합성되고, 디스플레이 되고, 접근되거나 또는 그들의 조합인 활동을 하는 정보일 수 있다.
디스플레이 인터페이스(202)는 어플리케이션 집합(set)(224)과 다운로드 집합(226)을 보여줄 수 있다. 어플리케이션 집합(224)은 이미 제1 장치(102)와 도1에 있는 제2 장치(106) 또는 그들의 조합에게 이용 가능한 어플리케이션으로 정의된다. 어플리케이션 집합(224)은 제1 장치(102), 제2 장치(106) 또는 그들의 집합에 저장된 어플리케이션(210)을 위한 제목(216), 설명(218), 주소, 포인터 또는 그들의 조합의 집합일 수 있다. 어플리케이션 집합(224)은 또한 제1 장치(102)가 어플리케이션(210)을 사용하기 전에 구매 요청이나 어플리케이션(210)의 다운로드 없이 즉시 접근할 수 있는 어플리케이션(210)의 집합일 수도 있다.
다운로드 집합(226)은 제1 장치(102), 제2 장치(106) 또는 그들의 조합에서 사용되기 위하여 제1 장치(102), 제2 장치(106) 또는 그들의 조합으로 전송될 수 있는 어플리케이션(210)으로 정의된다. 다운로드 집합(226)은 제1 장치(102), 제2 장치(106) 또는 그들의 조합상에 존재하지 않는 어플리케이션(210)을 위한 제목(216), 설명(218), 어플리케이션 다운로드 소스 또는 그들의 조합의 집합일 수 있다. 다운로드 집합(226)은 어플리케이션(210)을 구매하거나 다운로드 하는 것과 같이 어플리케이션을 사용하기 위한 권리나 능력을 요구하는 추가 활동을 필요로 하는 어플리케이션(210)일 수 있다.
예를 들어, 다운로드 집합(226)은 제1 장치(102)에 존재하지 않지만 제2 장치(106)나 다른 외부 서버, 다른 외부 메모리 장치 또는 그들의 조합으로부터 제1 장치(102)로 전송될 수 있는 어플리케이션(210)을 위한 제목, 설명, 링크, 주소 또는 그들의 집합일 수 있다. 또한 예를 들어, 다운로드 집합(226)은 제1 장치(102)상에 존재하지 않지만 다른 외부 서버나 다른 외부 메모리로부터 제1 장치(102)나 제2 장치(106)로 다운로드 될 수 있는 어플리케이션(210)을 위한 제목, 설명, 링크, 주소 또는 그들의 조합일 수 있다.
디스플레이 인터페이스(202)는 또한 어플리케이션 제안(228)과 다운로드 제안(230)을 보여줄 수도 있다. 어플리케이션 제안(228)은 사용자 개시 활동(204)를 실현하거나 완료하기 위하여 하나 혹은 그 이상의 활동을 수행하는데 사용될 수 있는 제1 장치(102)가 이용할 수 있는 어플리케이션(210)의 예시일 수 있다. 어플리케이션 제안(228)은 이미 제1 장치(102)나 제2 장치(106)상에 설치된 어플리케이션(210)의 예시일 수 있다. 어플리케이션 어플리케이션(210)의 해당 예시를 위하여 제안(228)은 제목(216), 설명(218), 주소, 포인터 또는 그들의 조합으로 표현될 수 있다.
다운로드 제안(230)은 제1 장치(102)로 사용자 개시 활동(204)을 실현하거나 완료하기 위한 하나 혹은 그 이상의 활동을 수행하기 위하여 제1 장치(102)로 다운로드 될 수 있는 제1 장치(102)가 이용할 수 없는 어플리케이션(210)의 예시일 수 있다. 다운로드 제안(230)은 어플리케이션(210)의 해당 예시를 위하여 제목(216), 설명(218), 링크, 주소 또는 그들의 조합으로 표현될 수 있다.
디스플레이 인터페이스(202)는 또한 어플리케이션 순서(232)를 보여줄 수 있다. 어플리케이션 순서(232)는 사용자 개시 활동(204)를 실현하거나 완료하기 위한 어플리케이션(210)의 실행 순서로 정의된다. 어플리케이션 순서(232)는 어플리케이션 집합(224), 다운로드 집합(226), 어플리케이션 제안(228), 다운로드 제안(230), 또는 그들의 집합으로부터의 어플리케이션(210) 지시일 수 있다. 어플리케이션 순서(232)는 작동 지시(206)을 기초로 할 수 있다. 어플리케이션 순서(232)의 결정과 사용은 아래에서 자세히 논의될 것이다.
이제 도3을 살펴보면, 도3에서는 도1에 있는 제1 장치(102)의 디스플레이 인터페이스(202)에 대한 제2 예시가 도시된다. 디스플레이 인터페이스(202)는 사용자 프로파일(profile)(302), 외부 프로파일(304), 현재 위치(306), 현재 시각(308) 그리고 컨텍스트 기반의 제안(310)을 보여줄 수 있다.
사용자 프로파일(302)은 도1에 있는 컴퓨팅 시스템(100)의 컨텍스트에서 사용자를 설명하는 일련의 정보로 정의된다. 사용자 프로파일(302)은 사용자에 관한 개인 정보, 작업 또는 사용자와 관련된 컨텍스트, 도2에 있는 어플리케이션(210)의 접근 가능한 예시, 사용자가 최근 접속한 어플리케이션, 사용자와 관련된 사람 또는 단체 또는 그들의 집합을 포함할 수 있다.
사용자 프로파일(302)은 사용 이력(312), 최근 접근 집합(314), 통신 집합(316) 또는 그들의 집합을 가질 수 있다. 사용 이력(312)은 컴퓨팅 시스템(100)에 접근하는 사용자의 기록으로 정의될 수 있다. 사용 이력(312)은 사용자와 관련되거나 제1 장치(102)를 통하여 접근한 도2에 있는 사용자 개시 활동(204)의 예시, 도2에 있는 컨텍스트(208)의 예시, 어플리케이션(210)의 표현, 도2에 있는 어플리케이션 제안(228)의 예시 또는 도2에 있는 다운로드 제안(230) 또는 그들의 집합을 포함할 수 있다.
최근의 접근 집합(314)은 사용자가 한계 기간(328)내에 접근한 어플리케이션(210)의 기록으로 정의된다. 최근의 접근 집합(314)은 도2에 있는 제목(216), 도2에 있는 설명(218), 링크, 주소, 포인터 또는 그들의 집합의 기록일 수 있다.
컴퓨팅 시스템(100)은 제1 장치(102)상에 있는 어플리케이션(210)의 각 예시를 위한 경과 시간(318)을 추적할 수 있다. 경과 시간(318)은 사용자가 어플리케이션(210)의 해당 예시를 접근한 지속 시간 일 수 있다. 예를 들어, 경과 시간(318)은 키보드나 터치 스크린을 통한 최종 사용자 인터페이스 활동과 현재 시각(308) 사이에 또는 어플리케이션(210)의 예시가 닫힌 시간과 현재 시간(308)사이에 차이가 있을 수 있다.
컴퓨팅 시스템(100)은 경과 시간(318)을 사용하여 최근의 접근 집합(314)를 결정할 수 있다. 컴퓨팅 시스템(100)은 경과 시간(318)과, 컴퓨팅 시스템(100), 소프트웨어 개발자, 하드웨어 디자이너 또는 제작자 또는 그들의 조합에 의해 정해지는, 한계 기간(328)을 비교할 수 있다. 컴퓨팅 시스템(100)은 최근의 접근 집합(314)를 결정하여 한계 기간(328)보다 작거나 같은 경과 시간(318)을 가지는 어플리케이션(210)을 포함하거나 참조할 수 있다.
사용자 프로파일(302)은 제1 장치(102)에 의하여 자주 실행되는 어플리케이션(210)의 특정 예시를 식별하는 기본 어플리케이션 집합(324)를 가질 수도 있다. 기본 어플리케이션 집합(324)은 통신하고, 스케줄을 조정하고, 워드 프로세싱이나 숫자 계산, 데이터 조작과 접근 또는 그들의 조합과 같은 기본 컴퓨팅 작업을 수행하는 데 사용되는 어플리케이션(210)의 예시일 수 있다.
예를 들어, 기본 어플리케이션 집합(324)는 개인적인 또는 공유의 캘린더나 스케줄링 어플리케이션과 같은 스케줄 캘린더, 전자 메일 어플리케이션이나 웹 페이지, SMS, MMS(multimedia messaging service ), 온라인 메신저 서비스 또는 그들의 조합과 같은 전자 메시지 인터페이스(322)를 포함할 수 있다. 또한 예를 들어, 기본 어플리케이션 집합(324)은 워드 프로세싱 어플리케이션, 스프레드 쉬트 어플리케이션, 데이터베이스 어플리케이션, 웹 브라우저, 검색 어플리케이션 또는 그들의 조합을 포함할 수도 있다.
기본 어플리케이션 집합(324)은 사용자에게 중요하거나 사용자에 의해 가장 자주 사용되는 어플리케이션(210)을 표현할 수 있다. 기본 어플리케이션 집합(324)은 컴퓨팅 시스템(100), 사용자, 소프트웨어 개발자, 하드웨어 제작자 또는 그들의 조합에 의해 미리 선택될 수 있다. 기본 어플리케이션 집합(324)은 또한 빈도나 사용량을 기초로 선정되거나 업데이트될 수 있다.
통신 집합(316)은 다른 장치와 상호작용을 위한 어플리케이션(210)의 예시로 정의될 수 있다. 통신 집합(316)은 다른 사용자와 상호작용을 위한 어플리케이션을 포함할 수 있다. 예를 들어, 통신 집합(316)은 소셜 미디어 어플리케이션이나 웹사이트, 공유 캘린더 또는 그들의 집합을 포함할 수 있다. 통신 집합(316)은 전자 메시지 인터페이스(322)를 포함할 수 있다.
외부 프로파일(304)는 사용자보다 다른 사람이나 단체와 관련된 일련의 정보로 정의된다. 외부 프로파일(304)은 다른 사람이나 단체가 그들 자신을 설명하도록 구성된 정보일 수 있다. 외부 프로파일(304)은 또한 제1 장치(102), 제2 장치(106) 또는 그들의 집합이 다른 사람이나 단체에 대하여 결정한 정보일 수도 있다.
예를 들어, 외부 프로파일(304)은 다른 사람이나 단체가 그들의 소셜 미디어 매체나 공유 캘린더에 포함한 정보를 포함할 수 있다. 외부 프로파일(304)은 통신 집합(316)에서 어플리케이션(210)을 통하여 접근될 수 있다. 또한 예를 들어, 외부 프로파일(304)은 최근의 접근 집합(314) 또는 다른 사람이나 단체의 사용 이력(312), 식별 정보 또는 그들의 집합을 포함할 수 있다.
현재 위치(306)는 제1 장치(102)의 물리적 위치를 표현할 수 있다. 현재 위치(306)는 또한 사용자의 물리적 위치를 표현할 수도 있다. 현재 위치(306)는 주소, 위도, 경도와 같은 일련의 좌표 또는 GPS 좌표, 랜드마크 정보, 교차 도로 또는 관심 지역의 이름이나 그들의 집합일 수 있다. 현재 위치(306)는 또한 직장이나 집과 같은 컨텍스트적 표현일 수도 있다.
현재 시각(308)은 현재 예시에 해당하는 일자, 시각 또는 둘 다를 표현할 수 있다. 현재 시각(308)은 연도, 월, 일, 시간, 분, 초 또는 그들의 조합을 포함할 수 있다.
컨텍스트를 기초로 한 제안(310)은 사용자 개시 활동(204)의 일부가 아닌 컨텍스트(208)과 관련된 활동으로 정의된다. 예를 들어, 컨텍스트를 기초로 한 제안(310)은 세미나에 참석하는 사용자 개시 활동(204) 이후에 클라이언트와 저녁을 먹도록 할 수 있다. 또한 예를 들어, 컨텍스트를 기초로 한 제안(310)은 여행을 떠나는 사용자 개시 활동(204)에 앞서 음식과 음료를 사도록 할 수도 있다. 더 예를 들면, 컨텍스트를 기초로 한 제안(310)은 컨텍스트(208)을 기초로 사용자 개시 활동(204)의 현재 예시와 관련된 사용자 개시 활동(204)의 별개의 다른 예시일 수 있다.
컴퓨팅 시스템(100)은 컨텍스트(208)을 사용한 컨텍스트를 기초로 한 제안(310)을 결정하고 제안할 수 있다. 컨텍스트를 기초로 한 제안(310)의 결정과 사용은 아래에서 자세히 논의될 것이다.
디스플레이 인터페이스(202)는 또한 사전 로딩 상태(326)을 보여줄 수도 있다. 사전 로딩 상태(326)는 쉽게 접근 가능한 위치에서 어플리케이션(210) 하나 혹은 그 이상의 저장을 위한 과정의 지시로 정의된다. 사전 로딩 상태(326)는 제1 장치(102) 내부의 쉽게 접근 가능한 위치에서 어플리케이션(210) 하나 혹은 그 이상을 저장하기 위한 과정을 지시할 수 있다. 사전 로딩 상태(326)는 어플리케이션(210)의 사용자 인터페이스 부분을 시작하기 전에 단계의 상태를 지시하는 상징, 그림, 숫자, 문자 또는 그들의 조합일 수 있다.
예를 들어, 사전 로딩 상태(326)는 채움 색상이나 외형을 어둡게 하는 것과 같이 어플리케이션(210)의 하나 혹은 그 이상을 표현하는 그림에서 변화를 사용하도록 지시하여, 설치 과정의 상태나 단계를 지시할 수 있다. 또한 예를 들어, 사전 로딩 상태(326)는 색으로 채워지는 바(bar), 퍼센트 증분(incrementing percentage), 단어들 또는 그들의 조합으로 표현될 수 있다.
컴퓨팅 시스템(100)은 어플리케이션(210)이 사용자와 상호작용을 시작하기 전에 어플리케이션(210)에 대응하는 지시를 수행함으로써 어플리케이션(210)을 사전 로딩할 수 있다. 컴퓨팅 시스템(100)은 또한 저속 메모리와 비소멸성 메모리로부터 고속 메모리나 접근 용이 메모리로 어플리케이션(210)과 관련된 지시 저장, 데이터 입력, 컴퓨터를 사용한 결과, 주소, 포맷 또는 그들의 조합에 의해 어플리케이션(210)을 사전 로딩할 수 있다. 예를 들어, 컴퓨팅 시스템(100)은 하드 드라이브나 외부 저장 장치로부터 RAM, 캐쉬 메모리, 프리 캐쉬 메모리(pre cache memory), SD 카드(secure digital card) 또는 그들의 조합으로 정보를 전송할 수 있다.
이제 도4를 살펴보면, 도4에서는 컴퓨팅 시스템(100)의 블록 다이어그램의 예시를 도시한다. 컴퓨팅 시스템(100)은 제1 장치(102), 통신망(104), 제2 장치(106)을 포함할 수 있다. 제1 장치(102)는 제1 장치 전송기(408)에서 통신망(104)을 통하여 제2 장치(106)로 정보를 전송할 수 있다. 제2 장치(106)는 제2 장치 전송기(410)에서 통신망(104)를 통하여 제1 장치(102)로 정보를 전송할 수 있다.
컴퓨팅 시스템(100)은, 컴퓨팅 시스템(100)이 다른 형태의 장치로서 제1 장치(102)를 가질 수도 있지만, 설명을 위하여 클라이언트 장치로 제1 장치를 도시한다. 예를 들어, 제1 장치(102)는 디스플레이 인터페이스를 갖는 서버일 수 있다.
또한 컴퓨팅 시스템(100)은, 컴퓨팅 시스템(100)이 다른 형태의 장치로서 제2 장치(106)를 가질 수도 있지만, 설명을 위하여 서버로서 제2 장치(!06)을 도시한다. 예를 들어, 제2 장치(106)는 클라이언트 장치일 수 있다.
본 발명 일 실시예의 간결한 설명을 위하여, 제1 장치(102)는 클라이언트 장치로 그리고 제2 장치는 서버 장치로 설명될 것이다. 본 발명의 실시예는 이러한 장치 형태의 선정에 한정되지 않는다. 선정은 본 발명 실시예의 예시이다.
제1 장치(102)는 제1 컨트롤 유닛(412), 제1 저장 유닛(414), 제1 통신 유닛(416), 제1 사용자 인터페이스(418)를 포함할 수 있다. 제1 컨트롤 유닛(412)은 제1 컨트롤 인터페이스(422)를 포함할 수 있다. 제1 컨트롤 유닛(412)은 제1 소프트웨어(426)을 실행하여 컴퓨팅 시스템(100)의 지능을 제공할 수 있다.
제1 컨트롤 유닛(412)은 수많은 형태로 실행될 수 있다. 예를 들면, 제1 컨트롤 유닛(412)은 프로세서, ASIC(application specific integrated circuit), 임베디드 프로세서, 마이크로프로세서, 하드웨어 조절 로직, 하드웨어 FSM(finite state machine), DSP(digital signal processor) 또는 그들의 조합일 수 있다. 제1 컨트롤 인터페이스(422)는 제1 컨트롤 유닛(412)와 제1 장치(102)에 있는 다른 기능 유닛 사이의 통신을 위하여 사용될 수 있다.
제1 컨트롤 인터페이스(422)는 다른 기능 유닛이나 외부 소스로부터 정보를 수신할 수 있거나 다른 기능 유닛이나 외부 목적지로 정보를 전송할 수 있다. 외부 소스 및 외부 목적지는 제1 장치(102) 외부의 소스와 목적지를 말한다.
제1 컨트롤 인터페이스(422)는 다른 방식으로 실행될 수 있고, 제1 컨트롤 인터페이스(422)와 인터페이스 되는 기능 유닛이나 외부 유닛에 따라 다른 실행을 포함할 수 있다. 예를 들어, 제1 컨트롤 인터페이스(422)는 압력 센서, 관성 센서, MEMS(microelectromechanical system), 광 회로망(optical circuitry), 도파관(waveguides), 무선 회로망, 유선 회로망 또는 그들의 조합과 함께 실행될 수 있다.
제1 저장 유닛(414)은 제1 소프트웨어(426)를 저장할 수 있다. 제1 저장 유닛(414)은 또한 입력되는 이미지를 표현하는 데이터, 이미 표출된 이미지를 표현하는 데이터, 음향 파일 또는 그들의 조합을 저장할 수 있다.
제1 저장 유닛(414)은 휘발성 메모리, 비휘발성 메모리, 내부 메모리, 외부 메모리 또는 그들의 조합일 수 있다. 예를 들어, 제1 저장 유닛(414)은 NVRAM (non-volatile random access memory ), 플래쉬 메모리, 디스크 저장장치와 같은 비휘발성 메모리이거나 SRAM(static random access memory )과 같은 휘발성 메모리일 수 있다.
제1 저장 유닛(414)은 제1 저장 인터페이스(424)를 포함할 수 있다. 제1 저장 인터페이스(424)는 제1 장치(102) 내부의 다른 기능 유닛과 사이에 통신을 위하여 사용될 수 있다. 제1 저장 인터페이스(424)는 또한 외부의 제1 장치(102)로의 통신을 위하여 사용될 수도 있다.
제1 저장 인터페이스(424)는 다른 기능 유닛이나 외부 소스로부터 정보를 수신하거나 다른 기능 유닛이나 외부 목적지로 정보를 전송할 수 있다. 외부 소스 및 외부 목적지는 제1 장치(102) 외부에 있는 소스와 목적지를 말한다.
제1 저장 인터페이스(424)는 제1 저장 유닛(414)와 함께 인터페이스 되는 기능 유닛이나 외부 유닛에 따라 다른 실행을 포함할 수 있다. 제1 저장 인터페이스(424)는 제1 컨트롤 인터페이스(422)의 실행과 유사한 테크놀로지와 테크닉으로 실행될 수 있다.
제1 통신 유닛(416)은 제1 장치(102)와의 외부 통신을 가능하게 할 수 있다. 예를 들어, 제1 통신 유닛(416)은 제1 장치(102)가 도1에 있는 제2 장치(106), 주변 장치나 데스크 탑 컴퓨터와 같은 부착물, 통신망(104)와 통신하도록 할 수 있다.
제1 통신 유닛(416)은 또한 제1 장치(102)가 통신망(104)의 일부로서 기능하도록 하는 통신 허브로서 기능할 수 있고, 통신망(104)의 끝 점이나 종료 유닛으로 한정되지 않게 할 수 있다. 제1 통신 유닛(416)은 통신망(104)과 상호작용을 위하여 마이크로일렉트로닉스(microelectronics )나 안테나와 같은 활성, 비활성 컴포넌트(components)를 포함할 수 있다.
제1 통신 유닛(416)은 제1 통신 인터페이스(428)을 포함할 수 있다. 제1 통신 인터페이스(428)는 제1 통신 유닛(416)과 제1 장치(102) 내부의 다른 기능 유닛과의 통신을 위하여 사용될 수 있다. 제1 통신 인터페이스(428)는 다른 기능 유닛으로부터 정보를 수신하거나 다른 기능 유닛으로 정보를 전송할 수 있다.
제1 통신 인터페이스(428)은 제1 통신 유닛(416)과 인터페이스 되는 기능 유닛에 따라 다른 실행을 포함할 수 있다. 제1 통신 인터페이스(428)은 제1 컨트롤 인터페이스(422)의 실행과 유사한 테크놀로지와 테크닉으로 실행될 수 있다.
제1 사용자 인터페이스(418)은 사용자가 제1 장치(102)와 인터페이스하고, 상호작용 할 수 있게 해준다. 제1 사용자 인터페이스(418)는 입력 장치와 출력 장치를 포함할 수 있다. 제1 사용자 인터페이스(418)의 입력 장치 예들은 데이터를 제공하고 통신 입력을 위해서 키패드, 터치 패드, 소프트 키, 키보드, 마이크, 원거리 신호를 수신하기 위한 적외선 센서 또는 그들의 조합을 포함할 수 있다.
제1 사용자 인터페이스(418)는 제1 디스플레이 인터페이스(430)를 포함할 수 있다. 제1 디스플레이 인터페이스(430)는 디스플레이, 프로젝터, 비디오 스크린 또는 그들의 조합을 포함할 수 있다.
제1 컨트롤 유닛(412)은 제1 사용자 인터페이스(418)를 작동하여 컴퓨팅 시스템(100)에 의해 생성된 정보를 디스플레이 할 수 있다. 제1 컨트롤 유닛(412)은 컴퓨팅 시스템(100)의 다른 기능을 위하여 또한 제1 소프트웨어(426)를 실행할 수 있다. 제1 컨트롤 유닛(412)은 통신망(104)을 경유하여 제1 통신 유닛(416)과 상호작용을 위하여 제1 소프트웨어(426)를 더 실행할 수 있다.
제2 장치(106)는 제1 장치(102)와 함께 다중 장치 실시예에서 본 발명의 실시예를 실행하기 위하여 최적화 될 수 있다. 제2 장치(106)는 제1 장치(102)와 비교하여 전원을 처리하는 데 추가적인 혹은 더 높은 퍼포먼스를 제공할 수 있다. 제2 장치(106)는 제2 조절 유닛(434), 제2 통신 유닛(436), 제2 유저 인터페이스(438)를 포함할 수 있다.
제2 사용자 인터페이스(438)는 사용자가 제2 장치(106)와 인터페이스 하고 상호작용 할 수 있게 한다. 제2 사용자 인터페이스(438)는 입력 장치, 출력 장치를 포함할 수 있다. 제2 사용자 인터페이스(438)의 입력 장치 예는 키패드, 터치패드, 소프트 키, 키보드 또는 그들의 조합이 있다. 제2 사용자 인터페이스(438)의 출력 장치 예로는 제2 디스플레이 인터페이스(440)을 들 수 있다. 제2 디스플레이 인터페이스(440)는 디스플레이, 프로젝터, 비디오 스크린, 스피커 또는 그들의 조합을 포함할 수 있다.
제2 조절 유닛(434)은 제2 소프트웨어(442)를 수행하여 컴퓨팅 시스템(100)의 제2 장치(106)에 지능을 제공할 수 있다. 제2 소프트웨어(442)는 제2 소프트웨어(426)와 함께 작동할 수 있다. 제2 조절 유닛(434)은 제1 컨트롤 유닛(412)과 비교하여 추가적인 퍼포먼스를 제공할 수 있다.
제2 조절 유닛(434)는 제1 사용자 인터페이스(438)를 작동하여 정보를 디스플레이 할 수 있다. 제2 조절 유닛(434)은 통신망(104)를 통하여 제1 장치(102)와 통신하기 위하여 제2 통신 유닛(436)을 작동하는 단계를 포함하는, 컴퓨팅 시스템(100)의 다른 기능을 위하여 제2 소프트웨어(442)를 더 실행할 수 있다.
제2 조절 유닛(434)는 수많은 다른 방식으로 실행될 수 있다. 예를 들어, 제2 조절 유닛(434)은 프로세서, 임베디드 프로세서, 마이크로 프로세서, 하드웨어 조절 로직, 하드웨어 FSM(finite state machine), DSP(digital signal processor) 또는 그들의 조합일 수 있다.
제2 조절 유닛(434)은 제2 컨트롤 인터페이스(444)를 포함할 수 있다. 제2 컨트롤 인터페이스(444)는 제2 조절 유닛(434)와 제2 장치(106)에 있는 다른 기능 유닛과 사이에 통신을 위하여 사용될 수 있다. 제2 컨트롤 인터페이스(444)는 제2 장치(106)의 외부와 통신하기 위하여 사용될 수도 있다.
제2 컨트롤 인터페이스(444)는 다른 기능 유닛이나 외부 소스로부터 정보를 수신하거나 다른 기능 유닛이나 외부 목적지로 정보를 전송할 수 있다. 외부 소스 및 목적지는 제2 장치(106) 외부의 소스와 목적지를 말한다.
제2 컨트롤 인터페이스(444)는 다른 방식으로 실행될 수 있고, 제2 컨트롤 인터페이스(444)와 함께 인터페이스 되는 기능 유닛이나 외부 유닛에 따라 다르게 실행될 수도 있다. 예를 들어, 제2 컨트롤 인터페이스(444)는 압력 센서, 관성 센서, MEMS(microelectromechanical system), 광 회로망(optical circuitry), 도파관(waveguides), 무선 회로망, 유선 회로망 또는 그들의 조합과 함께 실행될 수 있다.
제2 저장 유닛(446)은 제2 소프트웨어(442)를 저장할 수 있다. 제2 저장 유닛(446)은 또한 입력되는 이미지를 표현하는 데이터, 이미 표출된 이미지를 표현하는 데이터, 음향 파일 또는 그들의 조합을 저장할 수 있다. 제2 저장 유닛(446)은 제1 저장 유닛(414)를 보충하기 위하여 추가 저장 공간을 제공할 수 있는 크기이다.
제2 저장 유닛(446)은 제2 저장 유닛(446)이 저장 요소의 분포일 수도 있지만, 설명을 위하여 단일 요소로 도시한다. 또한 컴퓨팅 시스템(100)도 다른 구성인 제2 저장 유닛(446)을 가질 수도 있지만, 설명을 위하여 제2 저장 유닛(446)이 단층(single hierarchy) 저장 시스템인 것으로 도시한다. 예를 들어, 제2 저장 유닛(446)은 다른 수준의 캐싱, 메인 메모리, 회전담체(rotating media ) 또는 오프라인 저장 매체를 포함하는 메모리 계층 시스템을 이루는 다른 저장 기술로 형성될 수 있다.
제2 저장 유닛(446)은 휘발성 메모리, 비휘발성 메모리, 내부 메모리, 외부 메모리 또는 그들의 조합일 수 있다. 예를 들어, 제2 저장 유닛(446)은 NVRAM (non-volatile random access memory ), 플래쉬 메모리, 디스크 저장장치와 같은 비휘발성 메모리이거나 SRAM(static random access memory )과 같은 휘발성 메모리일 수 있다.
제2 저장 유닛(446)은 제2 저장 인터페이스(448)를 포함할 수 있다. 제2 저장 인터페이스(448)는 제2 장치(106) 상의 다른 기능 유닛과 사이에 통신을 위하여 사용될 수 있다. 제2 저장 인터페이스(448)는 또한 제2 장치(106) 외부와의 통신을 위하여 사용될 수도 있다.
제2 저장 인터페이스(448)는 다른 기능 유닛이나 외부 소스로부터 정보를 수신하거나 다른 기능 유닛이나 외부 목적지로 정보를 전송할 수 있다. 외부 소스 및 외부 목적지는 제2 장치(106) 외부의 소스와 목적지를 말한다.
제2 저장 인터페이스(448)는 제2 저장 유닛(446)과 인터페이스 되는 기능 유닛이나 외부 유닛에 따라 다른 실행을 포함할 수 있다. 제2 저장 인터페이스(448)는 제2 컨트롤 인터페이스(444)의 실행과 비슷한 테크놀로지와 테크닉으로 실행될 수 있다.
제2 통신 유닛(436)은 제2 장치(106)으로부터 외부로의 통신을 가능하게 한다. 예를 들어, 제2 통신 유닛(436)은 제2 장치(106)이 통신망(104)를 통하여 제1 장치(102)와 통신할 수 있게 한다.
제2 통신 유닛(436)은 또한 제2 장치(106)가 통신망(104)의 일부로 기능할 수 있도록 하고, 통신망(104)의 끝점이나 종료 유닛으로 한정되지 않는 통신허브로서 기능할 수 있다. 제2 통신 유닛(436)은 통신망(104)와 상호작용을 위하여 마이크로일렉트로닉스나 안테나와 같은 활성, 비활성 구성요소를 포함할 수 있다.
제2 통신 유닛(436)은 제2 통신 인터페이스(450)을 포함할 수 있다. 제2 통신 인터페이스(450)은 제2 통신 유닛(436)과 제2 장치(106)상의 다른 기능 유닛과 사이에 통신을 위하여 사용될 수 있다. 제2 통신 인터페이스(450)은 다른 기능 유닛으로부터 정보를 수신하거나 다른 기능 유닛으로 정보를 송신할 수 있다.
제2 통신 인터페이스(450)는 제2 통신 유닛(436)과 인터페이스 되는 기능 유닛에 따라 다른 실행을 포함할 수 있다. 제2 통신 인터페이스(450)는 제2 컨트롤 인터페이스(444)의 실행과 유사한 테크놀로지와 테크닉으로 실행될 수 있다.
제1 통신 유닛(416)은 통신망(104)과 연결되어 제1 장치 전송기(408)에서 제2 장치(106)로 정보를 전송할 수 있다. 제2 장치(106)은 통신망(104)의 제1 장치 전송기(408)로부터 제2 통신 유닛(436)에 있는 정보를 수신할 수 있다.
제2 통신 유닛(436)은 통신망(104)와 연결되어 제2 장치 전송기(410)에서 제1 장치(102)로 정보를 전송할 수 있다. 제1 장치(102)는 통신망(104)의 제2 장치 전송기(410)로부터 제1 통신 유닛(416)에서 정보를 수신할 수 있다. 컴퓨팅 시스템(100)은 제1 컨트롤 유닛(412), 제2 조절 유닛(434) 또는 그들의 조합에 의해 실행될 수 있다. 제2 장치(106)는, 다른 배열(partition)을 가질 수도 있지만, 설명을 위하여 제2 사용자 인터페이스(438), 제2 저장 유닛(446), 제2 조절 유닛(434) 그리고 제2 통신 유닛(436)을 갖춘 배열로 도시된다. 예를 들어, 제2 소프트웨어(442)는 그 일부 또는 모든 기능이 제2 조절 유닛(434)과 제2 통신 유닛(436)에 있을 수 있는 것과 같이 다르게 배열될 수 있다. 또한 제2 장치(106)는 명확성을 위하여 도4에서 도시하지 않은 다른 기능 유닛을 포함할 수 있다.
제1 장치(102)에 있는 기능 유닛은 다른 기능 유닛과 개별적, 독립적으로 작동할 수 있다. 제1 장치(102)는 제2 장치(106)와 통신망(104)로부터 개별적, 독립적으로 작동할 수 있다.
제2 장치(106)에 있는 기능 유닛은 다른 기능 유닛과 개별적, 독립적으로 작동할 수 있다. 제2 장치(106)는 제1 장치(102)와 통신망(104)로부터 개별적, 독립적으로 작동할 수 있다.
컴퓨팅 시스템(100)은 제1 장치(102)와 제2 장치(106)의 작동으로 설명된다. 제1 장치(102)와 제2 장치(106)는 컴퓨팅 시스템(100)의 어떠한 모듈이나 기능도 작동할 수 있다.
이제 도5를 살펴보면, 도5에서는 컴퓨팅 시스템(100)의 제어 흐름도를 도시한다. 컴퓨팅 시스템(100)은 프로파일 모듈(502), 실행 지시 모듈(504), 어플리케이션 계획 모듈(506), 그리고 작업 실행 모듈(508)을 포함할 수 있다.
프로파일 모듈(502)는 실행 지시 모듈(504)와 연결될 수 있다. 실행 지시 모듈(504)는 어플리케이션 계획 모듈(506)과 연결될 수 있고, 어플리케이션 계획 모듈(506)은 또한 작업 실행 모듈(508)과 연결될 수 있다.
프로파일 모듈(502)은 도3에 있는 사용자 프로파일(302)를 결정하도록 구성된다. 프로파일 모듈(502)은 도4에 있는 제1 사용자 인터페이스(418), 도4에 있는 제2 상용자 인터페이스(438) 또는 그들의 조합을 통한 사용자와의 상호작용으로부터 사용자 프로파일(302)을 결정할 수 있다. 프로파일 모듈(502)은 사용자 프로파일(302)을 결정하기 위하여 장치 상태 모듈(510), 타이머 모듈(514), 연결 모듈(516)을 포함할 수 있다.
장치 상태 모듈(510)은 도2에 있는 어플리케이션(210)을 식별하고, 도1에 있는 제1 장치(102), 제2 장치(106)상의 사용자에게 접근하거나 또는 그들의 조합을 식별하도록 구성되었다. 장치 상태 모듈(510)은 즉시 상용자에게 접근 가능한 어플리케이션(210), 사용자에 의해 접근되기 전에 다운로드를 요청하는 도구 또는 그들의 조합을 식별할 수 있다. 장치 상태 모듈(510)은 도2에 있는 어플리케이션 집합(224), 도2에 있는 다운로드 집합(226) 또는 그들의 조합을 결정할 수 있다.
예를 들어, 장치 상태 모듈(510)은 도4에 있는 제1 컨트롤 유닛(412), 제2 조절 유닛(434) 또는 그들의 조합을 사용하여, 도4에 있는 제1 저장 유닛(414), 제2 저장 유닛 또는 그들의 조합에 이미 로드 되고 사용자에게 접근할 준비가 된, 도2에 있는 실행 파일(212)와 추가 실행 파일(214) 같은 어플리케이션(210)을 식별할 수 있다. 장치 상태 모듈(510)은 어플리케이션 집합(224)와 같은 어플리케이션(210)을 위하여 도2에 있는 제목(216)과 설명(218), 주소, 포인터 또는 그들의 조합을 설정할 수 있다.
또한 예를 들어, 장치 상태 모듈(510)은 도4에 있는 제1 통신 유닛(416)고 제2 통신 유닛(436) 또는 그들의 조합을 사용하여 사용자에게 접근할 준비가 되지 않은 어플리케이션(210)의 다른 예시를 식별할 수 있다. 더 구체적인 예를 들면, 장치 상태 모듈(510)은 제1 장치(102)에 저장되지 않고, 제2 장치(106)에도 저장되지 않았으며, 다른 곳 어디에도 저장되지 않은 어플리케이션(210)의 예시를 다운로드하기 위하여 제목(216), 설명(218), 다운로드 주소 또는 그들의 조합을 설정할 수 있다.
장치 상태 모듈(510)은 도3에 있는 기본 어플리케이션 집합(324)을 식별할 수 있다. 장치 상태 모듈(510)은 사용 횟수나 접근 횟수를 통하여 기본 어플리케이션 집합(324)를 식별할 수 있다. 기본 어플리케이션 집합(324)은 미리 정의된 임계치 보다 더 많이 접근된 어플리케이션(210)을 포함할 수 있다.
예를 들어, 임계치가 1주에 14회 접근 또는 사용이라면, 장치 상태 모듈(510)은 기본 어플리케이션 집합(324)에 있는 어플리케이션(210)의 해당 예시를 포함할 수 있다. 임계 시간과 횟수는 컴퓨팅 시스템(100), 소프트웨어 개발자, 하드웨어 제작자나 디자이너 또는 그들의 조합에 의하여 미리 정해질 수 있다.
장치 상태 모듈(510)은 또한 미리 정의된 목록에 매칭되는 제목(216), 형태, 설명(218) 또는 그들의 조합을 가진 예시를 위하여 어플리케이션 집합(224)을 검색함으로써 기본 어플리케이션 집합(324)을 식별할 수 있다. 미리 정의된 목록은 컴퓨팅 시스템(100), 소프트웨어 개발자, 하드웨어 제작자나 디자이너 또는 그들의 조합에 의하여 정해질 수 있다.
장치 상태 모듈(510)은 사용자가 이용 가능한 어플리케이션(210)을 위하여 접근 포인트(518)을 더 식별할 수 있다. 접근 포인트(518)는 사용자에 의해 접근 가능한 어플리케이션(210) 내의 구체적인 지시나 단계로 정의된다. 예를 들어, 접근 포인트(518)는 사용자로부터 정보를 수신할 수 있거나, 다음 지시나 단계를 이행하기 전에 사용자에게 입력을 요청할 수 있는 어플리케이션 내의 페이지, 스크린, 기능 또는 그들의 조합일 수 있다.
장치 상태 모듈(510)은 사용자 입력을 수신할 수 있는 어플리케이션(210) 내의 사용자 인터페이스를 식별함으로써 접근 포인트(518)를 식별할 수 있다. 장치 상태 모듈(510)은 사용자가 어플리케이션(210)에 접근할 때 사용자 인터페이스를 위하여 단계, 상대적인 시간, 디자인, 사용자와의 상호작용 또는 그들의 조합을 식별할 수 있다. 장치 상태 모듈(510)은 또한 컴퓨팅 시스템(100), 소프트웨어 개발자, 하드웨어 제작자나 디자이너 또는 그들의 조합에 의하여 미리 정의된 사용자 인터페이스를 위하여 단계, 상대적인 시간, 디자인, 사용자와의 상호작용 또는 그들의 조합과 관련된 정보를 수신함으로써 사용자 인터페이스를 식별할 수 있다.
장치 상태 모듈(510)은 다른 주변 정보를 더 추적할 수 있다. 장치 상태 모듈(510)은 도3에 있는 현재 위치와 현재 시간(308), 사용자와 사용자에게 존재하는 정보 또는 그들의 조합으로부터 수신된 정보를 추적할 수 있다.
장치 상태 모듈(510)은 기록 모듈(512)에 연결될 수 있다. 예를 들어, 어플리케이션 집합(224)와 같은 장치 상태 모듈(510)의 출력은 기록 모듈(512)를 위한 입력으로 기록 모듈(512)에 전달될 수 있다.
기록 모듈(512)은 도3에 있는 사용 이력(312)와 현재 접근 집합(314)을 결정하도록 구성된다. 기록 모듈(512)은 제1 장치(102)를 통하여 사용자가 관련되거나 접근한 도2에 있는 사용자 개시 활동(204), 컨텍스트(208), 어플리케이션 제안(228), 다운로드 제안(230), 어플리케이션(210)의 표현 또는 그들의 조합에 대한 예시를 기록함으로써 사용 이력(312)과 현재 접근 집합(314)을 결정할 수 있다.
기록 모듈(512)은 장치 상태 모듈(510)로부터 어플리케이션 집합(224)를 사용하여 사용 이력(312)과 최근 접근 집합(314)를 결정할 수 있다. 기록 모듈(512)은 사용 이력(312)와 최근 접근 집합(314) 또는 그들의 집합을 위하여 어플리케이션 집합(224)에 있는 어플리케이션(210)의 제목(216)에 대한 모든 예시를 목록화함으로써 사용 이력(312)과 최근 접근 집합(314)을 결정할 수 있다.
기록 모듈(512)은 사용자 개시 활동(204)의 예시, 컨텍스트(208), 어플리케이션(210), 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 조합과 관련되거나 이에 접근한 정보를 사용 이력(312)으로 저장할 수 있다. 기록 모듈(512)은 어플리케이션(210)의 예시와 관련되거나 이를 접근한 정보를 최근 접근 집합(314)으로 저장할 수 있다. 기록 모듈(512)은 또한 최근 접근 집합(314)에 있는 기본 어플리케이션 집합과만 관련된 접근 정보를 저장할 수도 있다.
기록 모듈(512)은 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합을 위하여 접근이나 연계와 관련된 시간을 더 저장할 수 있다. 기록 모듈(512)은 사용자 개시 활동(204), 컨텍스트(208), 어플리케이션(210), 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 조합이 관련되거나 접근될 때 그 시간, 일자 또는 그들의 조합을 저장할 수 있다.
기록 모듈(512)과 타이머 모듈(514)은 연결될 수 있다. 기록 모듈(512)은 타이머 모듈(514)의 입력에 연결된 그들의 출력을 가질 수 있다. 예를 들어, 기록 모듈(512)은 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합을 타이머 모듈(514)로 넘길 수 있다. 또 예를 들면, 기록 모듈(512)은 사용 이력(312)의 저장 장소, 최근 접근 집합(314) 또는 그들의 조합에 대한 주소를 타이머 모듈(514)로 넘길 수 있다.
타이머 모듈(514)은 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합을 유지하도록 구성된다. 타이머 모듈(514)은 도3의 임계 시간(328)을 초과하는 도3의 경과 시간(318)을 가지는 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합 내부의 기록된 예시를 삭제함으로써 사용 이력(312)을 유지할 수 있다.
타이머 모듈(514)은 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합에 있는 예시를 위하여 도3의 경과 시간(318)을 계산할 수 있다. 타이머 모듈(514)은 사용 이력(312) 최근 접근 집합(314) 또는 그들의 조합에 있는 각 예시와 관련된 시간 사이에 차이점을 계산함으로써 경과 시간을 계산할 수 있다.
타이머 모듈(514)은 경과 시간(318)과 임계 시간(328)을 비교할 수 있다. 타이머 모듈(514)은 경과 시간(318)이 임계 시간(328) 보다 클 때 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합에 있는 기록된 예시를 삭제할 수 있다. 타이머 모듈(514)은 제목(216), 시간과 관련된 정보 또는 제1 장치(102)에 의해 접근된 어플리케이션(210)의 식별 또는 그들의 조합을 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합으로부터 삭제함으로써 기록된 예시를 삭제할 수 있다.
연결 모듈(516)은 사용자와 다른 사람이나 단체 사이에 관계를 식별하도록 구성된다. 연결 모듈(516)은 도3에 있는 통신 집합(316)을 결정함으로써 관계를 식별할 수 있다.
연결 모듈(516)은 소셜 네트워킹 웹 사이트나 어플리케이션에 있는 사용자의 그것과 도3에 있는 외부 프로파일(304)의 예시를 식별함으로써 통신 집합(316)을 결정할 수 있다. 연결 모듈(516)은 또한 사용자의 통신을 식별함으로써 통신 집합(316)을 결정할 수 있다. 예를 들어, 연결 모듈(516)은 전자 메일 주소, 전화 번호, 우편 주소, 이름 또는 그것들과 관련된 제목이나 통신을 위하여 사용자에 의해 사용되는 그것들의 조합을 식별함으로써 통신 집합(316)을 결정할 수 있다.
연결 모듈(516)은 통신 집합(316)이 사용자가 가진 각 관계의 속성을 포함하도록 더 결정할 수 있다. 연결 모듈(516)은 외부 프로파일(304), 사용자, 사용자 입력 또는 그들의 조합과의 통신을 사용하여 관계의 속성을 결정할 수 있다.
예를 들어, 연결 모듈(516)은 외부 프로파일(304)나 사용자와의 통신에서의 어떤 키워드를 검색하고, 거기서 찾은 그 키워드를 가족, 친구, 직장동료, 상사 또는 그들의 조합과 같은 미리 결정된 카테고리와 비교할 수 있다. 또한 예를 들어, 연결 모듈(516)은 사용자의 주소록에서 찾은 정보로부터 사회적 관계를 결정할 수 있다.
사용자 프로파일(302)을 결정한 후에, 제어 흐름도는 실행 지시 모듈(504)을 진행할 수 있다. 실행 지시 모듈(504)은 작업의 실현이나 수행을 위한 일련의 활동을 식별하도록 구성된다.
실행 지시 모듈(504)은 작업 식별 모듈(520), 컨텍스트 결정 모듈(522), 작동 식별 모듈(524) 그리고 작동 지시 모듈(526)을 포함할 수 있다. 작업 식별 모듈(520)은 사용자 개시 활동(204)을 결정하도록 구성된다.
작업 식별 모듈(520)은 사용자 프로파일(302)을 기초로 사용자 개시 활동(204)을 결정할 수 있다. 작업 식별 모듈(520)은 기본 어플리케이션 집합(324), 최근 접근 집합(314), 사용 이력(312), 외부 프로파일(304)에서의 갱신 또는 그들의 조합에 있는 정보로부터 사용자 개시 활동(204)을 결정할 수 있다. 예를 들면, 작업 식별 모듈(520)은 도3에 있는 스케줄 캘린더(320)에 스케줄 된 사건, 통신 어플리케이션에 사용된 키워드, 미리 예정된 시간 내에 접근된 어플리케이션의 목록, 상태 업데이트 또는 친구의 소셜 네트워크 페이지에 업데이트 된 정보 또는 그들의 조합으로부터 사용자 개시 활동(204)을 결정할 수 있다.
작업 식별 모듈(520)은 사용자 프로파일(302)에서 찾은 다른 활동이나 목표를 위하여 요청된 하나 혹은 그 이상의 활동을 결정함으로써 사용자 개시 활동(204)을 결정할 수 있다. 작업 식별 모듈(520)은 사용자 프로파일(302)에서 찾은 사용자 입력과 작업 어소시에이션(task-association)(542)을 매칭함으로써 사용자 개시 활동(204)을 결정할 수 있다. 작업 어소시에이션(542)은 사용자 개시 활동(204)을 결정하기 위한 개념이나 규칙의 집단으로 정의된다.
작업 어소시에이션(542)은 개념들을 표현하기 위한 키워드의 그룹을 가질 수 있다. 예를 들면, 작업 어소시에이션(542)은 "숙소 예약", "쇼핑"과 같은 가능한 작업의 각 예시를 가질 수 있고, "숙소 예약"을 위한 "호텔", "비행기", "여행", "사업", "휴가", "여행" 또는 그들의 조합 또는 "쇼핑"을 위한 "의복", "구매", "판매", "할인", "구매" 또는 그들의 조합과 같은 관련된 키워드의 그룹을 가질 수 있다.
작업 어소시에이션(542)은 또한 사용자 개시 활동(204)을 결정하기 위한 규칙을 가질 수 있다. 예를 들어, 작업 어소시에이션(542)은 사용자 개시 활동(204)의 예시를 항상 지시하거나 결코 지시하지 않는 일자, 위치, 키워드 또는 그들의 조합을 가질 수 있다. 또한 예를 들어, 작업 어소시에이션(542)는 일자, 위치, 키워드, 최근에 사용된 어플리케이션 또는 그들의 조합과 같은 다른 조건을 기초로 작업 어소시에이션(542)의 어떤 부분 집합으로부터 사용자 개시 활동(204) 결정을 위한 규칙을 가질 수 있다.
작업 어소시에이션(542)은 개념, 규칙 또는 그들의 조합과 관련된 점수나 개연성을 더 가질 수 있다. 예를 들어, 작업 어소시에이션(542)은 사용자가 "예약"을 시도하고 있는 가능성을 표현하기 위하여 "업무 출장"과 관련하여 임의적으로 점수 또는 개연성을 증가시킬 수 있다.
작업 식별 모듈(520)은 키워드 매칭이나 적용 가능한 규칙을 기초로 점수를 합산하거나 전체 가능성을 계산할 수 있다. 작업 식별 모듈(520)은 사용자 개시 활동(204)을 가장 높은 점수나 가능성을 가진 카테고리나 예시 또는 관련된 점수나 가능성이 임계 치 이상인 것 또는 그들의 조합으로 결정한다.
작업 식별 모듈(520)은 사용자 입력과 사용자 프로파일(302) 또는 그들의 조합을 작업 어소시에이션(542)와 비교함으로써 사용자 개시 활동(204)을 결정할 수 있다. 작업 식별 모듈(520)은 사용자 입력, 사용자 프로파일(302) 또는 그들의 조합을 위하여 사용자 개시 활동(204)을 규칙에 부합하는 키워드를 가진 카테고리나 예시 또는 그들의 조합으로 결정할 수 있다.
예들 들면, 작업 식별 모듈(520)은 일 주 이내에 50마일 이상 떨어진 곳에서 일어나는 스케줄 캘린더(320) 상의 무역 박람회"를 식별할 수 있다. 작업 식별 모듈(520)은 작업 어소시에이션(542)에 있는 "예약" 카테고리를 위하여 거리와 상대적 타이밍 또는 그들의 조합을 위한 규칙을 사용하여 사용자 개시 활동(204)을 "무역 박람회"매칭을 기초로 "무역 박람회"에 참석하기 위해 요청되는 "예약"으로 결정할 수 있다.
또 예를 들면, 작업 식별 모듈(520)은 사용자가 동일 제품에 대하여 반복적인 검색을 수행한 사실을 식별할 수 있다. 작업 식별 모듈(520)은 검색된 제품이나 웹 사이트 또는 제품 검색을 위하여 사용자가 접근한 어플리케이션 또는 작업 어소시에이션에 있는 양자를 비교할 수 있다. 작업 식별 모듈(520)은 키워드 매칭이나 검색된 제품이나 웹사이트, 어플리케이션 또는 그들의 조합에 해당하는 작업 어소시에이션(542)에 있는 적용 가능한 규칙 또는 그들의 조합을 기초로 "쇼핑", "인터넷 쇼핑", "검색" 또는 그들의 조합을 사용자 개시 활동(204)으로 결정할 수 있다.
작업 식별 모듈(520)은 제1 사용자 인터페이스(418)을 통하여 자연스럽게 사용자와 상호작용하여 사용자 개시 활동(204)을 식별하도록 실행될 수 있다. 작업 식별 모듈(520)은 음성으로 스피커, 마이크를 통하여, 시각적으로 스크린, 사용자 선정 방법 또는 그들의 조합을 통하여 사용자와 통신할 수 있다. 작업 식별 모듈(520)은 사용자 본래의 말투를 인식하도록 실행될 수 있다. 작업 식별 모듈(520)은 제1 장치(102)를 위한 명령과 입력 정보에 해당하는 사용자의 본래 담화에서 키워드를 식별하도록 실행될 수 있다.
작업 식별 모듈(520)은 컨텍스트 결정 모듈(522)과 연결될 수 있다. 작업 식별 모듈(520)은 사용자 개시 활동(204)을 식별한 후에 신호를 컨텍스트 결정 모듈(522)로 보낼 수 있다. 사용자 개시 활동(204)은 컨텍스트 결정 모듈(522)를 작동하기 위한 기본이 될 수 있다. 작업 식별 모듈(520)은 또한 그들의 출력을 컨텍스트 결정 모듈(522)의 입력으로 보낼 수 있다.
컨텍스트 결정 모듈(522)은 제1 장치(102)와 사용자의 상호작용을 위하여 컨텍스트를 결정하여 사용자 개시 활동(204)을 수행하도록 구성된다. 컨텍스트 결정 모듈(522)은 사용자 개시 활동(204)의 결정과 관련된 정보를 식별함으로써 사용자 개시 활동(204)을 수행하기 위한 컨텍스트(208)을 결정할 수 있다.
컨텍스트 결정 모듈(522)은 사용자 프로파일(302)를 기초로, 그리고 작업 식별 모듈(520)과 유사한 프로세스를 사용하여 컨텍스트(208)을 결정할 수 있다. 컨텍스트 결정 모듈(522)은 사용자 프로파일(302)나 사용자 입력을 컨텍스트 어소시에이션(544)와 비교함으로써 컨텍스트(208)을 결정할 수 있다.
컨텍스트 어소시에이션(544)은 컨텍스트(208)을 결정하기 위한 개념이나 규칙의 집단으로 정의된다. 컨텍스트 어소시에이션(544)은 매치 결정을 위하여 검색 분야나 조건의 조절과 같은 비교 개념을 위한 개념, 규칙 또는 그들의 조합을 표현하는 키워드의 집단을 포함한다.
예를 들어, 컨텍스트 결정 모듈(522)은 작업 식별 모듈(52)을 위하여 위에 설명한 바와 같이 사용자 입력, 사용자 프로파일(302) 또는 그들의 조합을 컨텍스트 어소시에이션(544)에 있는 키워드, 규칙, 다른 작업이나 컨텍스트 또는 그들의 조합으로 매칭함으로써 컨텍스트(208)을 결정할 수 있다. 또한 예를 들어, 컨텍스트 결정 모듈(522)은 작업 식별 모듈(520)을 위하여 위에서 설명한 바와 같이 점수나 가능성을 이용하여 컨텍스트(208)을 결정할 수 있다.
더 구체적으로 예를 들면, 사용자가 통신 집합(316)에서 식별된 대로 "친구" 로부터 "휴가"는 키워드를 가진 메시지를 수신하고 사용자 개시 활동(204)이 "예약하기"인 경우, 컨텍스트 결정 모듈(522)은 컨텍스트(208)이 "개인적인", "휴가" 그리고 "집단"을 포함하도록 결정할 수 있다. 더 구체적으로 예를 들면, 컨텍스트 결정 모듈(522)은 사용자 개시 활동(204)이 정보 검색일 때, 사용자가 시청하고 있는 텔레비전 쇼 프로그램의 이름을 포함할 수 있다.
컨텍스트 결정 모듈(522)은 현재 위치(306), 현재 시간(308), 스케줄 캘린더(320), 도3에 있는 전자 메시지 인터페이스(322) 또는 그들의 조합을 더 사용하여 컨텍스트(208)을 결정할 수 있다. 예를 들면, 현재 위치(306)와 현재 시간(308)은 제1 장치(102)가 작업 중인지를 결정하는 데 사용될 수 있다. 또 예를 들면, 스케줄 캘린더(320)와 전자 메시지 인터페이스(322)는 업무 출장의 세부사항과 관련하여 스케줄 상의 약속이나 주고 받은 전자 메일을 기초로 업무 출장의 컨텍스트(208)을 결정할 수 있다.
컨텍스트 결정 모듈(522)은 작동 식별 모듈(524)에 연결될 수 있다. 컨텍스트 결정 모듈(522)은 사용자 개시 활동(204)과 컨텍스트(208)을 작동 식별 모듈(524)의 입력으로 출력할 수 있다.
작동 식별 모듈(524)은 사용자 개시 활동(204)을 완료하기 위하여 도2의 중간 항목(207)을 결정하도록 구성된다. 작동 식별 모듈(524)은 중간 항목(207)과 관련된 관련 단어를 가지는 활동 어소시에이션(546)을 가질 수 있다.
활동 어소시에이션(546)은 사용자 개시 활동(204)을 완료하기 위하여 중간 항목(207)의 집단을 결정하는 개념이나 규칙의 집단으로 정의된다. 활동 어소시에이션(546)은 사용자 개시 활동(204), 컨텍스트(208) 또는 그들의 집합에 해당하는 활동이나 단계, 키워드, 규칙 또는 그들의 조합을 표현하는 다양한 키워드나 식별자를 가질 수 있다.
작동 식별 모듈(524)은 컨텍스트 결정 모듈(522)와 작업 식별 모듈(520)과 유사할 수 있다. 작동 식별 모듈(524)은 제1 컨트롤 유닛(412), 제2 조절 유닛(434) 또는 그들의 조합을 사용하여 사용자 개시 활동(204)을 위한 중간 항목(207)을 결정하여 사용자 개시 활동(204)의 키워드와 관련된 키워드나 카테고리를 가진 중간 항목(207)을 결정할 수 있다.
예를 들어, 제1 저장 유닛(414), 제2 저장 유닛(446) 또는 그들의 조합은 활동 어소시에이션(546)에서 각자와 관련된 "예약", "일자", "위치" 그리고 "가격"을 가질 수 있다. 예약을 하는 사용자 개시 활동(204)에 있어서, 작동 식별 모듈(524)은 예약을 위한 일자, 위치, 가격을 결정하는 것과 같이 요구되는 중간 항목(207)의 예시를 결정할 수 있다.
작동 식별 모듈(524)은 또한 사용자 개시 활동(204)의 다른 예시나 사용자 개시 활동(204) 카테고리와 직접 관련된 일련의 중간 항목(207)을 가질 수 있다. 작동 식별 모듈(524)은 사용자 개시 활동(204)의 현재 예시와 직접 관련된 일련의 활동이나 단계를 식별함으로써 사용자 개시 활동(204)을 완료하기 위한 중간 항목(207)을 결정할 수 있다. 작동 식별 모듈(524)은 활동 어소시에이션(546)에서 사용자 개시 활동(204), 컨텍스트(208) 또는 그들의 조합에 해당하는 활동이나 단계를 식별함으로써 중간 항목(207)을 식별할 수 있다.
작동 식별 모듈(524)은 작동 지시 모듈(526)에 연결될 수 있다. 예를 들어, 사용자 개시 활동(204)을 완료하기 위한 중간 항목(207)의 결정된 예시는 입력된 대로 작동 지시 모듈(526)로 넘겨질 수 있다. 또한 예를 들어, 결정된 활동이나 단계들은 제1 저장 유닛(414), 제2 저장 유닛(446) 또는 그들의 조합에 작동 지시 모듈(526)이 접근 가능한 지정된 위치에 저장될 수 있다.
작동 지시 모듈(526)은 중간 항목(207)의 논리적 순서를 결정하도록 구성된다. 작동 지시 모듈(526)은 중간 항목(207)을 배열하기 위하여 사용자 개시 활동(204)을 위한 도2의 작동 지시(206)를 결정함으로써 논리적 순서를 결정하여 사용자 개시 활동(204)을 실행할 수 있다.
작동 지시 모듈(206)은 작동 지시(206)를 결정하기 위하여 순서 어소시에이션(548)을 가질 수 있다. 순서 어소시에이션(548)은 작동 지시(206) 결정을 위한 개념이나 규칙의 집단으로 정의된다. 순서 어소시에이션(548)은 규칙, 가이드라인, 논리, 식별자, 키워드, 순서, 점수, 가능성 또는 그들의 집합의 집단일 수 있다.
작동 지시 모듈(526)은 작동 식별 모듈(524)에 의해 결정된 중간 항목(207)을 위하여 순서 있는 지시를 내림으로써 작동 지시(206)을 결정할 수 있다. 작동 지시 모듈(526)은 순서 어소시에이션(548) 상의 규칙이나 가이드라인을 따라 순서 있는 지시를 내릴 수 있다.
예를 들면, 제1 저장 유닛(414), 제2 저장 유닛(446) 또는 그들의 조합은 다른 목적이나 카테고리 사이의 우선 순위를 결정하기 위하여 순서 어소시에이션(548)에 있는 일련의 규칙이나 가이드라인을 가질 수 있다. 어떤 예에서는, "언제", "어디서"는 "어떻게", "비용"보다 높은 우선 순위를 가질 수 있다. 다른 예에서는, "비용"이 "언제", "어디서", "정지(stay)"보다 높은 우선 순위를 가질 수도 있다.
순서 어소시에이션(548)은 컨텍스트(208)을 기초로 할 수 있다. 규칙이나 가이드라인은 컨텍스트(208)을 기초로 또는 컨텍스트(208)과 사용자 개시 활동(204) 둘 모두를 기초로 조직될 수 있다.
예를 들어, 예약에 대한 사용자 개시 활동(204)의 경우에, 업무 출장은 무역업무회의 또는 고객과의 미팅처럼 정해진 일자를 요구하는 컨텍스트를 가지는 경향이 있으므로 출장의 컨텍스트(208)은 "언제", "어디서"를 우선시 할 수 있고, 가격 결정을 위한 "비용"보다 일자와 장소를 우선으로 결정할 수 있다.
이와 반대로, 개인 휴가의 컨텍스트(208)은 개인 휴가가 일자와 위치에 더 유연한 경향이 있기 때문에 일자나 위치를 정하기 위한 "언제", "어디서"보다 가격을 결정하기 위한 "비용"을 우선시할 수 있다.
작동 지시 모듈(526)은 사용자 개시 활동(204), 컨텍스트(208) 또는 그들의 조합에 해당하는 순서 어소시에이션(548)에 있는 규칙이나 우선 순위를 작동 지시(206)로 설정할 수 있다. 작동 지시 모듈(526)은 또한 관련된 카테고리나 키워드를 기초로 작동 지시(206)를 중간 항목(207)을 위한 순서로 결정할 수도 있다. 계속해서 예를 들면, 위치 결정 단계는 컨텍스트(208)이 업무 출장일 때, 비용 고려 전에 올 수 있는 일자 결정 전에도 올 수 있다.
작동 지시 모듈(526)은 또한 작동 지시(206)를 결정하기 위한 채점 시스템을 사용할 수도 있다. 작동 지시 모듈(526)은 컨텍스트(208)을 기초로 순서 어소시에이션(548)에 따라서 사용자 개시 활동(204)와 관련된 중간 항목(207)에 다른 점수를 줄 수 있다. 작동 지시 모듈(526)은 관련 점수 순서대로 혹은 그 역순대로 중간 항목(207)의 순서를 정할 수 있다.
컨텍스트(208)과 작동 지시(206)는 컴퓨팅 시스템(100)을 위하여 향상된 효율성과 정확성을 제공한다. 컨텍스트(208)과 작동 지시(206)는 중간 항목(207)의 순서를 정하기 위한 주위의 상황을 허락함으로써 향상된 효율성과 정확성을 제공할 수 있다. 작동 지시(206)에서 반영된 순서를 기초로 컨텍스트(208)은 반복된 단계를 제거하고 사용자 개시 활동(204)을 완료하기 위한 사용자와의 상호작용을 감소시킬 수 있다. 뿐만 아니라, 사용자 상호작용의 감소는 사용자 실수 가능성을 감소시킬 수 있다.
사용자 개시 활동(204)과 컨텍스트(208)은 사용자 개시 활동(204)과 컨텍스트(208)의 결정된 예시를 포함하기 위하여 사용 이력(312)을 업데이트한 프로파일 모듈(502)로 돌려 보내 질 수 있다. 사용자 개시 활동(204)과 컨텍스트(208)에 따라 작동 지시(206)를 결정한 후에, 제어 흐름도는 어플리케이션 계획 모듈(506)로 진행될 수 있다.
어플리케이션 계획 모듈(506)은 어플리케이션(210)을 조직하도록 구성되어 사용자 개시 활동(204)을 실현하거나 완료할 수 있다. 어플리케이션 계획 모듈(506)은 제1 장치(102)를 통한 사용자 개시 활동(204)의 실행을 위하여 어플리케이션(210)의 예시와 그들의 순서를 결정할 수 있다.
어플리케이션 계획 모듈(506)은 어플리케이션(210)의 특별한 예시와 그들의순서를 결정하기 위하여 추천 모듈(528), 어플리케이션 순서 모듈(530), 관련 활동 모듈(532)를 가질 수 있다. 추천 모듈(528)은 가용 매치 모듈(available match)(534)와 다운로드 매치 모듈(536), 그리고 지기 조정 모듈(538)을 더 가질 수 있는 관련 활동 모듈(532)을 더 가질 수 있다.
추천 모듈(528)은 사용자 개시 활동(204)을 수행하기 위하여 어플리케이션(210)의 특별한 예시를 결정하도록 구성된다. 추천 모듈(528)은 사용자 개시 활동(204)의 완료와 관련된 하나 혹은 그 이상의 중간 항목(207) 수행을 위한 어플리케이션(210)의 예시를 결정할 수 있다. 추천 모듈(528)은 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 조합을 결정할 수 있다.
가용 매치 모듈(534)은 어플리케이션 제안(228)을 결정하도록 구성된다. 가용 매치 모듈(534)은 개인적인 활동이나 작동 지시(206)에서 식별된 사용자 개시 활동(204)의 작동을 어플리케이션 집합(224)와 비교할 수 있다. 가용 매치 모듈(534)은 하나 혹은 그 이상의 개인적인 활동이나 사용자 개시 활동(204)의 작동과 매칭되는 어플리케이션(210)의 예시를 어플리케이션 제안(228)으로 결정할 수 있다.
가용 매치 모듈(534)은 카테고리 혹은 키워드 매칭을 수행하여 어플리케이션 제안(228)을 결정할 수 있다. 가용 매치 모듈(534)은 어플리케이션 집합(224)에 있는 어플리케이션(210)을 위하여 제목(216), 설명(218) 또는 그들의 집합을 개인적인 활동이나 사용자 개시 활동(204)의 작동과 관련된 카테고리나 키워드와 비교할 수 있다. 가용 매치 모듈(534)은 개인적인 활동이나 사용자 개시 활동(204)을 매칭하는 실행 파일(212)이나 추가 실행 파일(214)과 같은 어플리케이션(210)을 위하여 제목(216), 주소, 링크 또는 그들의 조합을 어플리케이션 제안(228)으로 설정할 수 있다.
가용 매치 모듈(534)은 또한 작동 지시(206)에서 식별된 각 중간 항목(207)을 위하여 어플리케이션(210)을 채점하거나 랭킹을 매김으로써 어플리케이션 제안(228)을 결정할 수 있다. 어플리케이션(210)에 대한 채점과 랭킹 결정은, 어플리케이션(210)의 예시가 설명(218), 중간 항목(207)의 예시에 대한 비중이나 중요도, 작동 지시(206)에 있는 중간 항목(207)의 상대적인 순서 또는 그들의 조합에 따라 수행할 수 있는, 작동 지시(206)에 있는 중간 항목(207)의 수많은 예시를 기초로 할 수 있다. 가용 매치 모듈(534)은 채점이나 랭킹을 결정하는 매칭 결과를 사용할 수 있다.
가용 매치 모듈(534)은 어플리케이션 제안(228)을 결정하는 데에 사용자 프로파일(302)로부터의 이용 행태 정보를 더 사용할 수 있다. 가용 매치 모듈(534)은 사용 이력(312), 최근 접근 집합(314) 또는 그들의 집합을 검색하여 컨텍스트(208), 사용자 개시 활동(204), 그들과 관련된 중간 항목(207)의 개별적인 예시 또는 그들의 집합과 유사한 예시를 위하여 사용자가 사용한 어플리케이션(210)의 구체적인 예시를 결정할 수 있다.
가용 매치 모듈(534)은 이전에 사용된 어플리케이션(210)의 예시를 위한 점수나 랭킹을 증가시킬 수 있다. 가용 매치 모듈(534)은 또한 이전에 접근한 어플리케이션(210)의 예시를 어플리케이션 제안(228)으로 결정할 수 있다.
다운로드 매치 모듈(536)은 다운로드 제안(230)을 결정하도록 구성된다. 다운로드 매치 모듈(536)은 개별적인 활동이나 작동 지시에서 식별된 사용자 개시 활동(204)을 다운로드 집합(226)과 비교할 수 있다. 다운로드 매치 모듈(536)은 하나 혹은 그 이상의 개별적인 활동이나 사용자 개시활동(204)의 작동을 매칭하는 어플리케이션(210)의 예시를 다운로드 제안(230)으로 결정할 수 있다.
다운로드 매치 모듈(536)은 가용 매치 모듈(534)의 작동과 유사하게 다운로드 제안(230)을 결정할 수 있다. 예를 들어, 다운로드 매치 모듈(536)은 카테고리 혹은 키워드 매칭, 개인적인 활동이나 사용자 개시활동(204), 다운로드 집합(226), 사용 이력(312), 최근 접근 집합(314) 또는 그들의 조합을 사용하는 어플리케이션의 채점 혹은 랭킹 결정 또는 그들의 조합을 수행할 수 있다.
가용 매치 모듈(534)과 다운로드 매치 모듈(536)은 어플리케이션(210)의 한예시가 하나 혹은 그 이상의 개인적인 활동이나 사용자 개시 활동(204)의 작동을 수행할 때, 어플리케이션 제안(228)과 다운로드 제안(230)으로 각각 진행될 수 있다. 가용 매치 모듈(534)과 다운로드 매치 모듈(536)은 하나 혹은 그 이상의 어플리케이션(210) 예시가 하나 혹은 그 이상의 개인적인 활동이나 사용자 개시 활동(204)의 작동을 만족할 때, 가장 높은 점수나 랭킹을 가지는 어플리케이션(210)을 어플리케이션 제안(228)이나 다운로드 제안(210)으로 보낼 수 있다.
가용 매치 모듈(534)과 다운로드 매치 모듈(536)은 개인적인 활동이나 사용자 개시 활동(204)의 작동을 수행하는 어플리케이션(210)의 모든 예시와 그들과 관련된 점수와 랭킹을 식별할 수 있다. 추천 모듈(528)은 어플리케이션 집합(224), 다운로드 집합(226) 또는 그들의 집합이 작동지시(206)의 일부에 해당하는 내용의 다중 예시를 포함할 때, 도2에 있는 어플리케이션 순서(232)를 위하여 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 집합을 결정할 수 있다.
추천 모듈(528)은 가장 높은 점수나 랭킹을 가지는 해당 어플리케이션의 예시를 선정함으로써 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 조합을 결정할 수 있다. 예를 들어, 추천 모듈(528)은 어플리케이션 제안(228)이나 다운로드 제안(230)으로부터 다른 가용 어플리케이션 중에서 사용자 개시 활동(204)에 의해 요구된 대로 가장 많은 중간 항목(207)의 예시를 실행하는 어플리케이션을 선택할 수 있다. 또한 예를 들어, 추천 모듈(528)은 사용자와 유사한 프로파일을 가지는 다른 사용자에 의해 가장 높은 비율로 자주 사용된 어플리케이션을 선택하라 수도 있다.
추천 모듈(528)은 또한 다운로드 제안(230)을 사용자에게 제출할 것인지 여부를 결정할 수 있다. 예를 들어, 추천 모듈(208)은 어플리케이션 집합(224)이 사용자 개시 활동(204)의 일부를 수행하기 위하여 어플리케이션(210)의 어떠한 예시도 포함하지 않을 때, 다운로드 제시(230)을 디스플레이 하기만 하는 가이드라인을 가질 수 있다. 또한 예를 들어, 추천 모듈(528)은 중복된 어플리케이션이 컨텍스트(208)에 맞지 않아 자주 사용되지 않는 경우, 다운로드 제안(230)과 비교하여 미리 예정된 양보다 더 적은 점수나 랭킹을 가지는 경우 또는 둘 다 해당하는 경우에 다운로드 제안(230)의 사용자를 알려주는 규칙을 가질 수 있다.
더 예를 들면, 추천 모듈(528)은 다양한 랭킹과, 자주 방문되는 블로그나 비슷한 프로파일이나 사용 패턴을 가진 다른 사용자의 외부 프로파일과 같이 사용자 프로파일(320)을 사용하는 중복된 어플리케이션의 사용 상태를 검색할 수 있다. 추천 모듈(528)은 검색이 최소한 미리 예정된 점수나 호의적인 언급을 리턴하는 경우에 다운로드 제안(230)에 있는 새로운 혹은 최근에 업데이트된 어플리케이션(210)의 예시를 포함할 수 있다.
추천 모듈(528)은 어플리케이션 순서 모듈(530)에 연결될 수 있다. 추천 모듈(528)은 어플리케이션(228), 다운로드 제안(230) 또는 그들의 집합을 어플리케이션 순서 모듈(530)의 입력으로 보낼 수 있다. 추천 모듈(528)은 또한 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 집합에 대한 포인터나 주소를 어플리케이션 순서 모듈(530)로 보낼 수 있다.
어플리케이션 순서 모듈(530)은 작동 지시(206)에 따라 어플리케이션(210)의 순서를 정하도록 구성된다. 어플리케이션 순서 모듈(530)은 작동 지시(206)를 기초로 어플리케이션 순서(232)를 생성함으로써 어플리케이션의 순서를 정할 수 있다. 어플리케이션 순서(232)는 실행 파일(212)와 추가 실행 파일(214)를 포함하는 어플리케이션(210)의 실행을 위하여 사용되어 사용자 개시 활동(204), 제1 장치(102)에 디스플레이 될 수 있는 활동을 실행할 수 있다.
어플리케이션 순서 모듈(530)은 제1 컨트롤 유닛(412), 제2 조절 유닛(434) 또는 그들의 조합을 사용함으로써 어플리케이션 순서(232)를 생성하여 추천 모듈(528)에 의해 작동 지시(206)에 있는 중간 항목(207)으로 결정되는 어플리케이션(201) 예시를 매치할 수 있다. 어플리케이션 순서 모듈(530)은 작동 지시(206)에 있는 중간 항목(207)의 개별적인 예시와 매칭되거나 관련된 키워드, 형태, 카테고리, 가치 또는 그들의 조합을 사용하여 어플리케이션(210)을 위하여 제목(216), 설명(218), 도2에 있는 입력(220)과 출력(222) 또는 그들의 조합을 검색할 수 있다.
예를 들면, 제목(216)이나 설명(218)에 호텔이나 공항과 같이 위치와 관련된 단어를 가지는 어플리케이션(210)은 "어디서", "목적지 결정", "숙박" 또는 그들의 조합과 관련될 수 있다. 또 예를 들어, 비행기나 호텔 예약 확인을 가지는 어플리케이션(210)도 "어디서", "목적지 결정", "숙박" 또는 그들의 조합과 관련될 수 있다.
더 구체적인 예를 들면, 추천 모듈(528)은 업무 출장의 컨텍스트(208)을 위하여 예약을 하는 사용자 개시 활동(204)에 해당하는 작동 지시(206)로 식별된 "누가", "언제", "경로", "숙박"을 만족하는 실행 파일을 결정할 수 있다. 추천 모듈(528)은 소셜 미디어 연결로부터 "식당추천"을 만족하는 추가 실행 파일(214)을 결정할 수 있다.
어플리케이션 순서 모듈(230)은 작동 지시(206)에 따라 어플리케이션의 순서를 정하는 어플리케이션 순서(232)를 생성할 수 있다. 계속해서 예를 들면, 어플리케이션 순서 모듈(530)은 추가 실행 파일(214) 전에 개시된 실행 파일(212)를 지정함으로써 어플리케이션 순서(232)를 생성할 수 있다. 어플리케이션 순서 모듈(530)은 추가 실행 파일(214) 이전에 실행 파일(212)를 위하여 제목(216), 주소, 포인터 또는 그들의 조합에 대한 순서를 정함으로써 어플리케이션 순서(232)를 생성할 수 있다.
어플리케이션 순서 모듈(530)은 사용자 프로파일(302)를 기초로 어플리케이션 순서를 생성할 수 있다. 어플리케이션 순서(232)는 어플리케이션 순서(232)를 생성하기 위한 사용자 프로파일(302) 사용을 결정하는 어플리케이션 제안(228), 다운로드 제안(230) 또는 그들의 조합을 사용함으로써 생성될 수 있다.
어플리케이션 순서 모듈(530)은 사용자 프로파일(302)을 기초로 어플리케이션 순서(232)의 초기 인스턴스를 조절함으로써 어플리케이션 순서(232)를 더 생성할 수 있다. 계속해서 예를 들면, 사용 이력(312), 최근 접근 집합(314) 또는 그들의 집합은 사용자가 사용자 개시 활동(204), 컨텍스트(208) 또는 그들의 집합의 예시를 매칭하거나 연관시키기 위하여 실행 파일(212) 이전에 추가 실행 파일(214)를 사용하였음을 가리킬 수 있다. 사용자의 과거 사용이나 개인적인 선호를 기초로, 어플리케이션 순서 모듈(530)은 실행 파일(212) 이전에 추가 실행 파일(214)이 초기화되도록 어플리케이션 순서(232)를 조절할 수 있다.
어플리케이션 순서 모듈(530)은 다운로드 제안(230)을 기초로 어플리케이션 순서(232)를 생성할 수 있다. 어플리케이션 순서 모듈(530)은 어플리케이션 순서(232)안에 다운로드 제안(230)을 포함할 수 있다.
어플리케이션 순서 모듈(530)은 추천 모듈(528)에 의해 지시된 대로 사용자 개시 활동(204)의 일부를 실행하기 위한 어떠한 어플리케이션도 어플리케이션 집합(224)에 없을 때 다운로드 제안(230)을 포함할 수 있다. 어플리케이션 순서 모듈(530)은 또한 다운로드 할 수 있는 어플리케이션이 추천 모듈(528)에 의해 지시된 최소한의 임계 값에 의해 어플리케이션 집합(224)에 있는 어플리케이션(210)의 점수나 랭킹을 초과하는 점수나 랭킹을 가질 때, 다운로드 제안(230)을 포함할 수 있다.
어플리케이션 순서 모듈(530)은 사용자에게 다운로드 제안(230)에 대한 다운로드를 시작하거나 승인하라고 요청할 수 있다. 예를 들어, 어플리케이션 순서 모듈(530)은 제1 사용자 인터페이스(418)을 사용하는 다운로드 제안의 사용자를 공지할 수 있다. 어플리케이션 순서 모듈(530)은 사용자가 다운로드 제안(230)의 다운로드를 시작하거나 승인한 때, 어플리케이션 순서(232)에서 다운로드 제안(230)을 포함할 수 있다.
어플리케이션 순서 모듈(530)은 어플리케이션 순서(232)에 있는 어플리케이션(210)의 접근 포인트(518)에 접근하기 위하여 어플리케이션 순서(232)를 더 생성할 수 있다. 어플리케이션 순서 모듈(530)은 어플리케이션(210)의 다중 예시의 처리를 반복함으로써 접근 포인트(518)에 접근을 위한 어플리케이션 순서(232)를 생성할 수 있다.
예를 들면, 어플리케이션 순서 모듈(530)은 실행 파일(212)이 접근 포인트(518)의 제1 예시에 도착할 때, 실행 파일(212)과 추가 실행 파일(214)을 가지는 어플리케이션 순서(232)를 생성할 수 있다. 또 예를 들면, 어플리케이션 순서 모듈(530)은 동시에 실행 파일(212)과 추가 실행 파일(214)을 가질 뿐 아니라, 사용자가 어플리케이션(210)에 접근하거나 상호작용할 수 있는 지시도 조절하는 어플리케이션 순서(232)를 생성할 수 있다. 어플리케이션 순서(232)는 숨겨지거나 사용자가 실행 파일(212)과 처음으로 상호작용을 시작할 때까지 비활성화된 사용자 인터페이스 부분을 가지는 추가 실행 파일(214)을 지정할 수 있다.
어플리케이션 순서 모듈(530)은 어플리케이션 순서(232)를 생성하여 병렬 처리를 조절할 수 있다. 어플리케이션 순서 모듈(530)은 어플리케이션(210)의 다른 예시가 다른 프로세서에 의해 처리될 것을 지시하는 어플리케이션 순서(232)를 생성할 수 있다. 예를 들어, 어플리케이션 순서 모듈(530)은 제1 컨트롤 유닛(412)과 함께 실행 파일(212)을, 제2 조절 유닛(434)과 함께 추가 실행 파일(214)을 처리하는 어플리케이션 순서(232)를 생성할 수 있다. 또한 예를 들면, 어플리케이션 순서(232)는 제1 컨트롤 유닛(412)이 다른 프로세서나 코어(cores)와 같이 그 안에서 다른 부분을 사용하여 실행 파일(212)과 추가 실행 파일(214)을 처리하도록 지시할 수 있다.
어플리케이션 순서 모듈(530)은 어플리케이션(210)의 입력(220)과 출력(222)를 연결하는 어플리케이션 순서(232)를 더 생성할 수 있다. 어플리케이션 순서 모듈(530)은 다음 어플리케이션의 어떤 입력(220)의 예시로 선행 어플리케이션의 어떤 출력(222)의 예시를 가지는 어플리케이션 순서(232)를 생성할 수 있다.
예를 들어, 어플리케이션 순서(232)는 호텔 방을 예약하는 추가 실행 파일(214)을 위하여 체크인 일자를 위한 입력(220)을 위하여 실행 파일(212)로부터 비행기 예약 확인에 따라 도착 일자와 시간을 지정할 수 있다. 더 예를 들면, 어플리케이션 순서(232)는 전화 어플리케이션이나 네비게이션 어플리케이션과 같은 어플리케이션의 입력으로 주소, 전화 번호와 같은 상점 연락 정보의 출력(222)을 지정할 수 있다.
어플리케이션 순서 모듈(530)은 어플리케이션(210)의 입력(220)을 연결하는 어플리케이션 순서(232)를 더 생성할 수 있다. 어플리케이션 순서 모듈(530)은 사용자 개시 활동(204)을 처리함에 있어서 어떠한 접근 포인트(518)에서 입력(220) 공간을 지정하는 어플리케이션 순서(232)를 가질 수 있다. 어플리케이션 순서(232)는 어플리케이션 순서(232)에 저장된 입력이나, 어플리케이션 순서(232)에 있는 다른 어플리케이션과 중복이 발생하는 곳에서 사용자의 성격이나 연락 정보와 같은 사용자 프로파일(302)로부터의 어떠한 정보를 사용할 수 있다.
어플리케이션 순서(232)는 컴퓨팅 시스템(100)의 효율성과 정확성을 증가시켰다. 어플리케이션 순서(232)는 사용자 개시 활동(204)을 수행하는 가용 자원을 관리함으로써 병행 처리를 가능하게 하여 효율성을 증가시켰다. 어플리케이션 순서(232)는 어플리케이션 사이의 입력(220)과 출력(222)를 연결함으로써 사용자 오류의 원인이 될 수 있는 동일한 정보 재입력의 수고를 줄임으로써 효율성과 정확성을 증가시켰다.
또한 어플리케이션 순서(232), 작동 지시(206), 컨텍스트(208)은 컴퓨팅 시스템(100)이 사용자 친화적인 상호작용을 할 수 있게 하였다. 어플리케이션(232), 작동 지시(206), 컨텍스트(208)은 어플리케이션(210)의 사용을 통하여 컨텍스트(208)에 맞는 사용자 개시 활동(204)을 실행하는 논리적인 지시를 모델링함으로써 사용자 친화적인 상호작용을 가능하게 하였다.
게다가, 어플리케이션 순서(232)와 다운로드 제안(230)은 컴퓨팅 시스템(100)의 기능성을 극대화하였다. 어플리케이션 순서(232)와 다운로드 제안(230)은 사용자에게 알려지지 않은 어플리케이션을 포함하여 많은 가능한 어플리케이션 중에 적절한 어플리케이션을 완전히 이용할 수 있게 함으로써 기능성을 극대화 하였다.
어플리케이션 순서(232), 작동 지시(206) 또는 그들의 조합은 사용자에게 보이지 않을 수 있다. 컴퓨팅 시스템(100)은 사용자에게 알려지지 않은 어플리케이션 순서(232), 작동 지시(206) 또는 그들의 조합의 내용을 가진 작동 지시(206)을 기초로 어플리케이션 순서(232)에 따라 어플리케이션(210)을 실행할 수 있다. 사용자 상호작용은 사용자 프로파일(302)에 저장되어 그 안의 내용을 공개하지 않고도 어플리케이션 순서(232), 작동 지시(206) 또는 그들의 조합의 다음 결정을 향상시킬 수 있다.
관련 활동 모듈(532)은 컨텍스트(208)을 기초로 사용자 개시 활동(204)와 관련된 도3의 컨텍스트에 기반한 제안(310)을 결정하도록 구성된다. 관련 활동 모듈(532)은 사용자 프로파일(302)를 기초로 컨텍스트에 기반한 제안(310)을 결정할 수 있다. 예를 들어, 만일 사용자가 현재 사용된 사용자 개시 활동(204)과 동일하거나 유사한 예시, 컨텍스트(208), 어플리케이션(210) 또는 이들의 집합을 따르는 다른 활동, 어플리케이션, 작업, 컨텍스트 또는 이들의 집합을 시작한다면, 관련 활동 모듈(532)은 이전의 다른 활동, 어플리케이션, 작업, 컨텍스트 또는 그들의 집합을 컨텍스트에 기반한 제안(310)으로 설정할 수 있다.
관련 활동 모듈(532)은 사용자 개시 활동(204)과 컨텍스트(208) 사이에 키워드나 카테고리를 비교함으로써 컨텍스트에 기반한 제안(310)을 결정할 수도 있다. 관련 활동 모듈(532)은 컨텍스트에 기반한 제안(310)을 사용자 개시 활동(204)에 의해 커버되지 않는 키워드나 컨텍스트(208)의 카테고리로 설정할 수 있다. 예를 들어, 만일 컨텍스트(208)이 "상사"와 함께 "업무 출장"을 포함하고, 사용자 개시 활동(204)이 컨텍스트(208)의 "상사"부분을 커버하지 않는다면, 컨텍스트에 기반한 제안(310)은 "상사"와 관련된 사용자 개시 활동(204)의 추가 예시를 위해 "상사"가 될 수 있다.
지시 조정 모듈(538)은 컨텍스트에 기반한 제안(310)을 포함하도록 어플리케이션 순서(232)를 조정하도록 구성된다. 지시 조정 모듈(538)은 추가 어플리케이션을 포함하거나 적당한 어플리케이션을 제거하고 어플리케이션의 순서를 재조정하거나 이들을 같이 수행하도록 어플리케이션 순서(232)를 조정하여 어플리케이션 순서(232)가 컨텍스트에 기반한 제안(310)을 포함하도록 할 수 있다. 어플리케이션 순서(232)의 조정을 위한 프로세스는 전술한 어플리케이션 순서 모듈(530)의 프로세스와 유사할 수 있다.
컨텍스트에 기반한 제안(310)은 사용자에게 컨텍스트적으로 적합한 기능성을 제공한다. 컨텍스트에 기반한 제안(310)은 컨텍스트(208)이 사용자에 의해 완전히 커버되도록 해줌으로써 컨텍스트적으로 적합한 기능성을 제공할 수 있다.
어플리케이션(210)의 작동을 위한 지시를 결정한 후에, 다운로드 어플리케이션과 관련된 정보가 어플리케이션 집합(224)의 갱신을 위하여 프로파일 모듈(502)로 보내질 수 있고, 제어 흐름도는 작업 실행 모듈(508)로 진행될 수 있다. 작업 실행 모듈(508)은 어플리케이션지시(232)에 따라 어플리케이션(210)을 사용하여 사용자 개시 활동(204)를 수행하도록 구성된다. 작업 실행 모듈(508)은 사전 로딩 모듈(540)을 가질 수 있다.
사전 로딩 모듈(540)은 사용자 개시 활동(204)을 실행하기 위하여 어플리케이션(210)을 사전에 로딩하도록 구성된다. 예를 들어, 사전 로딩 모듈(540)은 사용자 개시 활동(204)를 실행하기 위하여 어플리케이션(232)에 따라 실행 파일(212), 추가 실행 파일(214) 또는 그들의 조합을 사전에 로딩할 수 있다.
사전 로딩 모듈(540)은 저속 영구 메모리로부터 어플리케이션(210)과 관련된 지시, 입력 데이터, 계산 결과, 주소, 포맷 또는 그들의 조합을 고속의 접근 용이한 메모리로 저장함으로써 어플리케이션(210)을 미리 로딩할 수 있다. 예를 들어, 컴퓨팅 시스템(100)은 하드드라이브나 외부 저장 매체로부터 필요 정보를 RAM, 캐쉬 메모리, 프리 캐쉬 메모리, SD 카드 또는 그들의 조합으로 전송할 수 있다.
사전 로딩 모듈(540)은 또한 사용자 입력이나 상호작용 없이 독자적으로 어플리케이션(210)을 시작함으로써 어플리케이션(210)을 사전 로딩 할 수도 있다. 사전 로딩 모듈(540)은 어플리케이션(210)과 그 안의 접근 포인트(518)로의 처리 실행을 개시할 수 있다. 사전 로딩 모듈(540)은 또한 어플리케이션 순서(232)에 따라 접근 포인트(518)에 입력(220)을 설정할 수 있다.
예를 들어, 사전 로딩 모듈(540)은 추가 실행 파일(214)에 선행되는 실행 파일(212)의 출력(222)과 같은 추가 실행 파일(214)의 입력(220)을 설정할 수 있다. 사전 로딩 모듈(540)은 접근 포인트(518)의 다음 적절한 예시까지 입력(220)으로 추가 실행 파일(214)을 처리할 수 있다. 또한 예를 들어, 사전 로딩 모듈(540)은 실행 파일(212)의 입력(220)을 기초로 추가 실행 파일(214)를 위한 입력을 설정할 수 있다.
사전 로딩 모듈(540)은 또한 어플리케이션(210)의 처리를 중복함으로써 어플리케이션(210)을 사전 로딩 할 수 있다. 예를 들어, 사전 로딩 모듈(540)은 어플리케이션 순서(232)에 따라 실행 파일(212)와 추가 실행 파일(214)을 중복하기 위하여 실행 파일(212)와 추가 실행 파일(214) 또는 그들의 집합이 실행되는 동안에 실행 파일(212)와 추가 실행 파일(214) 또는 그들의 집합을 사전 로딩할 수 있다.
계속해서 예를 들면, 사전 로딩 모듈(540)은 추가 실행 파일(214)을 고속 메모리나 병렬 처리 실행으로 저장하고, 실행 파일(212)가 실행되는 동안에 추가 실행 파일(214)에 있는 지시를 수행할 수 있다. 사전 로딩 모듈(540)은 또한 추가 실행 파일(214)이 실행되는 동안에 실행 파일(212)을 사전 로딩할 수 있다.
사전 로딩 모듈(540)은 어플리케이션(210)의 사전 로딩 처리 진행이나 상태를 디스플레이 할 수 있다. 사전 로딩 모듈(540)은 제1 사용자 인터페이스(418)을 사용하여 도3에 있는 사전 로드 상태를 디스플레이 할 수 있다.
어플리케이션의 사용과 접근 정보는 사용 이력(312), 최근 접근 집합(314), 경과 시간(318) 또는 그들의 조합을 업데이트하기 위해 프로파일 모듈(502)로 보내질 수 있다. 작업 실행 모듈(508)은 사용자 개시 활동(204)가 완료되면 제어 흐름도를 프로파일 모듈(502)로 보낼 수 있다.
어플리케이션 순서(232)에 따라 어플리케이션(210)을 사전 로딩하는 사전 로딩 모듈(540)은 사용자 개시 활동(204)을 수행하는 컴퓨팅 시스템(100)의 효율성과 정확성을 향상시킨다. 어플리케이션 순서(232)에 따라 어플리케이션(210)을 사전 로딩하는 사전 로딩 모듈(540)은 병렬 처리를 가능하게 하고 다른 어플리케이션에 접근하는 사용자의 대기 시간을 감소시킴으로써 효율성을 향상시킨다. 컴퓨팅 시스템(100)은 또한 사용자 오류의 원인이 될 수 있는 불필요한 정보 입력을 줄임으로써 효율성과 정확성을 증가시킨다.
컴퓨팅 시스템(100)은 모듈 기능이나 지시를 가지는 것으로 예를 들어 설명되었다. 컴퓨팅 시스템(100)은 모듈을 다르게 배열하거나 모듈을 다르게 지시할 수도 있다. 예를 들어, 기록 모듈(512)와 타이머 모듈(514)이 하나의 모듈로 합쳐지거나 작업 식별 모듈(520)의 기능성과 컨텍스트 결정 모듈(522)가 합쳐질 수도 있다. 또한 예를 들어, 다운로드 집합(226)은 사용자 개시 활동(204), 컨텍스트(208), 작동 지시(206) 또는 그들의 조합을 결정한 후에 결정될 수도 있다.
이 어플리케이션에서 설명된 모듈들은 도4 상의 제1 조절 유닛(416)이나 제2 조절 유닛(438)에 있는 하드웨어 실행이나 하드웨어 가속 장치일 수 있다. 모듈들은 또한 각각 제1 장치(102)나 제2 장치(106) 내부에 있는 그러나 제1 조절 모듈(416)이나 제2 조절 모듈(418)의 외부에 있는 하드웨어 실행이나 하드웨어 가속 장치일 수도 있다.
작동 지시(206)로부터 어플리케이션 순서(232)로의 물리적 전송은 사용자 개시 활동(204)을 실행하기 위한 어플리케이션(210)과의 사용자 인터페이싱과 같은 물리적 세계에서의 이동을 야기한다. 물리적 세계에서의 이동은 사용자 프로파일 (302)에 있는 어플리케이션(210)을 위한 입력(220)을 저장, 사용함으로써 사용자 개시 활동(204)과 어플리케이션 순서(232) 결정을 위한 컨텍스트의 변화를 야기하여 사용자 개시 활동(204)과 컨텍스트(208)의 정확성을 개선한다.
이제 도6을 살펴보면, 도6에서는 본 발명의 추가 실시예에서 컴퓨팅 시스템(100)의 작동에 대한 방법(500)의 제어 흐름도를 도시한다. 방법(500)은 블록 602에서의 작업 수행을 위한 컨텍스트 결정 단계, 블록 604에서의 작업 수행을 위하여 컨텍스트를 기초로 작동 지시를 결정하는 단계, 블록 606에 있는 장치에 디스플레이 하는 작업 수행을 위하여 어플리케이션 순서에 따라 실행 파일과 추가 실행 파일을 실행하기 위하여 작동 지시를 기초로 어플리케이션 순서를 생성하는 단계를 포함한다.
결과적 방법, 과정, 기계, 장치, 제품 및/또는 시스템은 쉽고, 비용이 절감되며, 복잡하기 않고, 다용도로 쓰이며 정확하고 민감하며 효율적이고, 이미 알려진 구성요소를 이용하여 실행될 수 있으며, 능률적이고, 경제적인 제조, 어플리케이션, 이용이 가능하다. 본 발명 실시예의 다른 중요한 특징은 원가 절감, 시스템 간소화, 퍼포먼스 증가라는 시대적 요청에 잘 부합한다는 것이다.
본 발명 실시예의 이러한 특징 및 다른 가치 있는 특징들은 최소한 다음 단계로의 기술 발전을 의미한다.
발명이 바람직한 실시예와 함께 설명되는 동안에 많은 특징, 수정, 변수가 전술의 설명으로 당업자에게 명백해 졌을 것이다. 따라서, 그러한 대체, 수정, 변화는 청구 범위의 범위 내에 포함된다. 여기와 첨부된 도면에서 설명되고 도시된 모든 것들은 범위를 한정하기 위한 것이 아니라 설명을 위한 것으로 이해된다.

Claims (20)

  1. 사용자 개시 동작을 수행하기 위하여 제어부로 컨텍스트를 결정하는 단계;
    사용자 개시 동작을 수행하기 위한 중간 항목들의 실행 순서를 정하기 위하여 컨텍스트를 기초로 작동 순서를 결정하는 단계; 및
    어플리케이션 순서에 따라 실행 파일 및 추가 실행 파일을 실행하고 장치 상에 상기 사용자 개시 활동의 수행 상태를 디스플레이 하기 위하여, 상기 작동 순서를 기초로 상기 어플리케이션 순서를 생성하는 단계
    를 포함하는 컴퓨팅 시스템 작동 방법.
  2. 제1항에 있어서,
    상기 사용자 개시 활동을 실행하기 위하여 상기 어플리케이션 순서에 따라 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 사전 로딩하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    사용자 프로파일을 결정하는 단계를 더 포함하고,
    상기 어플리케이션 순서 생성 단계는 사용자 프로파일을 기초로 어플리케이션 순서를 생성하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 어플리케이션 순서 생성 단계는
    다운로드 집합을 식별하는 단계;
    작동 순서의 일부를 매칭하는 다운로드 제안을 결정하는 단계; 및
    상기 다운로드 제안을 기초로 상기 어플리케이션 순서를 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 컨텍스트를 기초로 상기 사용자 개시 활동과 관련된 컨텍스트 기반 제안을 결정하는 단계; 및
    상기 컨텍스트 기반 제안을 포함하도록 어플리케이션 순서를 조절하는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  6. 사용자 프로파일을 결정하는 단계;
    사용자 개시 동작을 수행하기 위하여 제어부로 사용자 프로파일에 기초한 컨텍스트를 결정하는 단계;
    상기 사용자 개시 활동을 실행하기 위하여 상기 컨텍스트에 기초에 기초한 작동 순서를 결정하는 단계;
    상기 사용자 개시 동작을 수행하기 위하여, 어플리케이션 순서에 따라 실행 파일과 추가 실행 파일을 실행하기 위한 상기 어플리케이션 순서를 작동 순서에 기초하여 생성하는 단계; 및
    상기 사용자 개시 활동을 수행하고 장치 상에 디스플레이하기 위하여 어플리케이션 순서에 따라 실행 파일, 추가 실행 파일 또는 그들의 조합을 사전 로딩하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨팅 시스템 작동 방법.
  7. 제6항에 있어서,
    상기 사전 로딩하는 단계는, 상기 실행 파일과 상기 추가 실행 파일을 중복하기 위하여 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 실행하는 동안에 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 사전 로딩하는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 사전 로딩하는 단계는, 상기 추가 실행 파일의 입력을 상기 실행 파일의 출력과 동일하게 설정하는 것을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 어플리케이션 순서를 생성하는 단계는
    상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합의 접근 포인트에 접근하기 위하여 어플리케이션 순서를 생성하고,
    상기 사전 로딩 단계는
    상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 상기 접근 포인트로 사전 생성하는 것
    을 특징으로 하는 방법.
  10. 제6항에 있어서,
    상기 어플리케이션 순서를 생성하는 단계는
    어플리케이션 집합, 다운로드 집합 또는 그들의 조합이 상기 작동 순서의 일부에 대응되는 어플리케이션의 복수개의 인스턴스를 포함할 때 어플리케이션 순서를 생성하는 것을 특징으로 하는 방법.
  11. 사용자 개시 동작의 수행을 위하여 제어부로 컨텍스트를 결정하도록 구성된 컨텍스트 결정 모듈;
    상기 컨텍스트 결정 모듈과 연결되고, 중간 항목들의 순서를 결정하기 위하여 상기 컨텍스트를 기초로 작동 순서를 결정하여 상기 사용자 개시 동작을 실행하도록 구성된 작동 지시 모듈; 및
    상기 작동 지시 모듈과 연결되고, 어플리케이션 순서에 따라 실행 파일 및 추가 실행 파일을 실행하고 장치상에 상기 사용자 개시 활동의 수행상태를 디스플레이 하기 위하여 상기 작동 순서를 기초로 한 상기 어플리케이션 순서를 생성하도록 구성된 작동 지시 모듈
    을 포함하는 컴퓨팅 시스템.
  12. 제11항에 있어서,
    상기 어플리케이션 순서 모듈과 연결되고, 상기 사용자 개시 활동을 수행하기 위하여 상기 어플리케이션 순서에 따라서 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 사전 로딩하도록 구성된 사전 로딩 모듈
    을 더 포함하는 것을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 컨텍스트 결정 모듈과 연결되고, 사용자 프로파일을 결정하도록 구성된 프로파일 모듈을 더 포함하고,
    상기 어플리케이션 순서 모듈은 사용자 프로파일을 기초로 어플리케이션 순서를 생성하도록 구성된 것을 특징으로 하는 시스템.
  14. 제11항에 있어서,
    상기 컨텍스트 결정 모듈과 연결되고, 다운로드 집합을 식별하도록 구성된 장치 상태 모듈;
    상기 작동 지시 모듈과 연결되고, 작동 지시의 일부를 매칭하는 다운로드 제안을 결정하는 다운로드 매치 모듈을 더 포함하고,
    상기 어플리케이션 순서 모듈은 상기 다운로드 제안을 기초로 어플리케이션 순서를 생성하도록 구성된 것을 특징으로 하는 시스템.
  15. 제11항에 있어서,
    상기 작동 지시 모듈과 연결되고, 상기 컨텍스트를 기초로 상기 사용자 개시 활동과 관련된 컨텍스트를 기반으로 한 제안을 결정하는 관련 동작 모듈; 및
    상기 관련 동작 모듈과 연결되고, 상기 컨텍스트를 기반으로 한 제안을 포함하기 위하여 상기 어플리케이션을 적용하도록 구성된 순서 적용 모듈
    을 더 포함하는 것을 특징으로 하는 시스템.
  16. 제11항에 있어서,
    상기 컨텍스트 결정 모듈과 연결되고, 사용자 프로파일을 결정하도록 구성된 프로파일 모듈;
    상기 어플리케이션 순서 모듈과 연결되고, 상기 사용자 개시 활동을 실행하기 위하여 상기 어플리케이션 순서에 따라 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 미리 로딩하도록 구성된 사전 로딩 모듈
    을 더 포함하고,
    상기 컨텍스트 결정 모듈은 상기 사용자 개시 활동을 수행하기 위하여 상기 사용자 프로파일을 기초로 컨텍스트를 결정하는 것을 특징으로 하는 시스템.
  17. 제16항에 있어서,
    상기 사전 로딩 모듈은 상기 실행 파일과 상기 추가 실행 파일을 중복하기 위하여 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 실행하는 동안에 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 사전 로딩하는 것을 특징으로 하는 시스템.
  18. 제16항에 있어서,
    상기 사전 로딩 모듈은 상기 실행 파일의 출력을 상기 추가 실행 파일의 입력으로 설정하도록 구성된 것을 특징으로 하는 시스템.
  19. 제16항에 있어서,
    상기 어플리케이션 순서 모듈은 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합에 대한 접근 포인트에 접근하기 위하여 어플리케이션 순서를 생성하도록 구성되고; 그리고
    상기 사전 로딩 모듈은 상기 접근 포인트로 상기 실행 파일, 상기 추가 실행 파일 또는 그들의 조합을 사전 로딩하도록 구성된 것을 특징으로 하는 시스템.
  20. 제16항에 있어서,
    상기 어플리케이션 순서 모듈과 연결되고, 어플리케이션 집합, 다운로드 집합 또는 그들의 조합이 작동 순서의 일부에 해당하는 어플리케이션의 다중 예시를 포함할 때, 어플리케이션 순서를 위하여 어플리케이션 제안, 다운로드 제안 또는 그들의 집합을 결정하도록 구성된 추천 모듈
    을 더 포함하는 것을 특징으로 하는 시스템.
KR1020140014441A 2013-03-07 2014-02-07 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법 KR102173108B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/789,349 2013-03-07
US13/789,349 US9799005B2 (en) 2013-03-07 2013-03-07 Computing system with contextual interaction mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
KR20140110728A true KR20140110728A (ko) 2014-09-17
KR102173108B1 KR102173108B1 (ko) 2020-11-02

Family

ID=51489567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140014441A KR102173108B1 (ko) 2013-03-07 2014-02-07 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법

Country Status (5)

Country Link
US (1) US9799005B2 (ko)
EP (1) EP2965183A4 (ko)
KR (1) KR102173108B1 (ko)
CN (1) CN105027061B (ko)
WO (1) WO2014137075A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036226A (ko) * 2018-09-28 2020-04-07 에스케이텔레콤 주식회사 서비스 사용 통계 데이터를 이용한 vmi 서비스 제공방법 및 장치
KR20200039301A (ko) * 2018-10-05 2020-04-16 에스케이텔레콤 주식회사 Vmi 서비스 영상 품질변경 방법 및 장치

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140354680A1 (en) * 2013-05-31 2014-12-04 Blackberry Limited Methods and Devices for Generating Display Data
US10585927B1 (en) * 2013-06-26 2020-03-10 Google Llc Determining a set of steps responsive to a how-to query
US9324067B2 (en) 2014-05-29 2016-04-26 Apple Inc. User interface for payments
US10318338B2 (en) * 2015-01-08 2019-06-11 International Business Machines Corporation Re-launching contextually related application sets
US10684866B2 (en) * 2015-02-17 2020-06-16 Amazon Technologies, Inc. Context sensitive framework for providing data from relevant applications
US9740467B2 (en) 2015-02-17 2017-08-22 Amazon Technologies, Inc. Context sensitive framework for providing data from relevant applications
US11263617B2 (en) 2015-12-04 2022-03-01 Apple Inc. Method, non-transitory computer-readable medium, and mobile device for location-based graphical user interfaces
CN106101982B (zh) * 2016-05-27 2019-11-29 广东小天才科技有限公司 一种应用程序下载方法及系统
CN106775231A (zh) * 2016-12-11 2017-05-31 东莞桐石网络科技有限公司 基于地理位置的应用图标排列方法、装置、终端及系统
CN106802752A (zh) * 2016-12-11 2017-06-06 东莞桐石网络科技有限公司 应用图标排列方法和装置
US10258295B2 (en) 2017-05-09 2019-04-16 LifePod Solutions, Inc. Voice controlled assistance for monitoring adverse events of a user and/or coordinating emergency actions such as caregiver communication
US20200175058A1 (en) * 2018-12-03 2020-06-04 Rovi Guides, Inc. Methods and systems generating curated playlists
US10922101B2 (en) * 2019-06-26 2021-02-16 International Business Machines Corporation User interface widget recommendation
DK180985B1 (da) 2020-04-10 2022-09-02 Apple Inc Brugergrænseflader for muliggørelse af en aktivitet
AU2020239747B2 (en) * 2020-04-10 2021-11-04 Apple Inc. User interfaces for enabling an activity
US11886448B2 (en) * 2021-05-21 2024-01-30 Airbnb, Inc. Flexible listings searches
US11404062B1 (en) * 2021-07-26 2022-08-02 LifePod Solutions, Inc. Systems and methods for managing voice environments and voice routines
US11410655B1 (en) 2021-07-26 2022-08-09 LifePod Solutions, Inc. Systems and methods for managing voice environments and voice routines
CN115774595B (zh) * 2023-02-10 2023-05-16 广东远景信息科技有限公司 应急任务展示的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080024114A (ko) * 2005-07-01 2008-03-17 마이크로소프트 코포레이션 컨텍스트 기반 작업 환경
KR20080059561A (ko) * 2005-10-06 2008-06-30 마이크로소프트 코포레이션 오브젝트 구성을 위한 방법 및 확장가능 프레임워크
KR20090069300A (ko) * 2006-09-15 2009-06-30 엑스비블리오 비.브이. 페이퍼 및 전자 문서내의 주석의 캡처 및 디스플레이
JP2009201809A (ja) * 2008-02-28 2009-09-10 Internatl Business Mach Corp <Ibm> 操作支援サーバ装置、操作支援方法およびコンピュータ・プログラム
KR20130010051A (ko) * 2010-05-11 2013-01-24 알까뗄 루슨트 통신 장치를 위한 다운로드 가능한 어플리케이션들의 동적 관리를 위한 디바이스

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917863B2 (en) * 2000-06-13 2011-03-29 National Instruments Corporation System and method for graphically creating a sequence of motion control operations
US6803929B2 (en) * 2001-07-05 2004-10-12 International Business Machines Corporation Method, apparatus and computer program product for moving or copying information
US7155678B2 (en) * 2001-08-31 2006-12-26 Gxs, Inc. Method, system, and software for generating and displaying custom views for accessing multiple applications
US8271882B2 (en) 2002-04-24 2012-09-18 Sap Ag Processing life and work events
US7168064B2 (en) * 2003-03-25 2007-01-23 Electric Cloud, Inc. System and method for supplementing program builds with file usage information
US20070067373A1 (en) * 2003-11-03 2007-03-22 Steven Higgins Methods and apparatuses to provide mobile applications
US20050147946A1 (en) 2003-12-31 2005-07-07 Shankar Ramamurthy Automatic object generation and user interface identification
US7428535B1 (en) 2004-06-25 2008-09-23 Apple Inc. Automatic relevance filtering
US7398523B2 (en) * 2004-08-19 2008-07-08 International Business Machines Corporation Adaptive class loading
US8510737B2 (en) * 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
US8069422B2 (en) * 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
US8700439B2 (en) * 2005-09-27 2014-04-15 Morgan Stanley Action console framework
US20070088583A1 (en) * 2005-10-14 2007-04-19 Synergy Business Solutions Inc. Autonomic workflow application program generator and method thereof
US8661343B2 (en) * 2006-02-22 2014-02-25 Sas Institute Inc. Computer-implemented systems and methods for an automated application interface
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8296731B2 (en) * 2007-03-05 2012-10-23 Microsoft Corporation Dynamic method selection based on declarative requirements of interaction scope
CN101334865A (zh) * 2007-06-28 2008-12-31 国际商业机器公司 工作流用户界面生成方法及生成器
US8447859B2 (en) * 2007-12-28 2013-05-21 International Business Machines Corporation Adaptive business resiliency computer system for information technology environments
EP2178279B1 (en) * 2008-10-14 2013-08-28 Huawei Device Co., Ltd. Generation method and mobile terminal for optimizing mobile terminal operation sequence
US20100185630A1 (en) 2008-12-30 2010-07-22 Microsoft Corporation Morphing social networks based on user context
WO2010105245A2 (en) 2009-03-12 2010-09-16 Exbiblio B.V. Automatically providing content associated with captured information, such as information captured in real-time
US9936333B2 (en) * 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US9405848B2 (en) 2010-09-15 2016-08-02 Vcvc Iii Llc Recommending mobile device activities
US20120117558A1 (en) * 2010-11-04 2012-05-10 Microsoft Corporation Mobile application migration service
US8478306B2 (en) * 2010-11-10 2013-07-02 Google Inc. Self-aware profile switching on a mobile computing device
EP2641145A4 (en) * 2010-11-20 2017-05-03 Nuance Communications, Inc. Systems and methods for using entered text to access and process contextual information
US10365911B2 (en) * 2011-12-18 2019-07-30 International Business Machines Corporation Determining optimal update frequency for software application updates
US9135445B2 (en) * 2012-03-19 2015-09-15 Google Inc. Providing information about a web application or extension offered by website based on information about the application or extension gathered from a trusted site
US8745617B1 (en) * 2013-02-11 2014-06-03 Google Inc. Managing applications on a client device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080024114A (ko) * 2005-07-01 2008-03-17 마이크로소프트 코포레이션 컨텍스트 기반 작업 환경
KR20080059561A (ko) * 2005-10-06 2008-06-30 마이크로소프트 코포레이션 오브젝트 구성을 위한 방법 및 확장가능 프레임워크
KR20090069300A (ko) * 2006-09-15 2009-06-30 엑스비블리오 비.브이. 페이퍼 및 전자 문서내의 주석의 캡처 및 디스플레이
JP2009201809A (ja) * 2008-02-28 2009-09-10 Internatl Business Mach Corp <Ibm> 操作支援サーバ装置、操作支援方法およびコンピュータ・プログラム
KR20130010051A (ko) * 2010-05-11 2013-01-24 알까뗄 루슨트 통신 장치를 위한 다운로드 가능한 어플리케이션들의 동적 관리를 위한 디바이스

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036226A (ko) * 2018-09-28 2020-04-07 에스케이텔레콤 주식회사 서비스 사용 통계 데이터를 이용한 vmi 서비스 제공방법 및 장치
KR20200039301A (ko) * 2018-10-05 2020-04-16 에스케이텔레콤 주식회사 Vmi 서비스 영상 품질변경 방법 및 장치

Also Published As

Publication number Publication date
KR102173108B1 (ko) 2020-11-02
CN105027061B (zh) 2018-05-11
US20140259017A1 (en) 2014-09-11
CN105027061A (zh) 2015-11-04
EP2965183A1 (en) 2016-01-13
EP2965183A4 (en) 2016-10-12
WO2014137075A1 (en) 2014-09-12
US9799005B2 (en) 2017-10-24

Similar Documents

Publication Publication Date Title
KR102173108B1 (ko) 컨텍스트적 상호작용 메커니즘을 갖춘 컴퓨팅 시스템 및 그 작동 방법
US9269098B2 (en) Push-based recommendations
US11250067B2 (en) Presenting anticipated user search query results prompted by a trigger
US20190171339A1 (en) Method, system, and apparatus for executing an action related to user selection
US9710546B2 (en) Explicit signals personalized search
US20170293610A1 (en) Voice assistant
US20140365513A1 (en) Providing information to users based on context
WO2016176588A1 (en) Semantic locations prediction
TW201341760A (zh) 用於待辦清單為主之導航的方法、系統與裝置
US8751234B2 (en) Communication device for determining contextual information
US20200334641A1 (en) Smart event suggestions based on current location, calendar and time preferences
CN109074548B (zh) 对内容的自动丰富
WO2017200590A1 (en) Incorporating selectable application links into conversations with personal assistant modules
US9773209B1 (en) Determining supervised training data including features pertaining to a class/type of physical location and time location was visited
US11734780B2 (en) Optimally ranking accommodation listings based on constraints
JP7396293B2 (ja) 情報処理装置、情報処理方法及びプログラム
EP2518643A1 (en) Communication device for determining contextual information

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