KR20140100909A - 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법 - Google Patents

안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR20140100909A
KR20140100909A KR1020140013849A KR20140013849A KR20140100909A KR 20140100909 A KR20140100909 A KR 20140100909A KR 1020140013849 A KR1020140013849 A KR 1020140013849A KR 20140013849 A KR20140013849 A KR 20140013849A KR 20140100909 A KR20140100909 A KR 20140100909A
Authority
KR
South Korea
Prior art keywords
application
transition
mobile computing
computing device
confluence
Prior art date
Application number
KR1020140013849A
Other languages
English (en)
Inventor
반다 구리나스
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140100909A publication Critical patent/KR20140100909A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)

Abstract

이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법을 개시한다. 그를 위해, 본 발명에 따라 시스템(들)이 개시된 방법(들)을 구현하되, 본 방법(들)은 프라이머리 애플리케이션과 세컨더리 애플리케이션 사이의 애플리케이션 전환을 판단하는 단계를 포함한다. 또한, 본 방법은 프라이머리 애플리케이션과 세컨더리 애플리케이션을 기반으로 하여 애플리케이션 전환이 이동 컴퓨팅 장치의 비 사용자(non-user)에 의해 일어난 애플리케이션 전환에 해당하는 NUTA 전환인 것을 식별하는 단계를 포함한다. 또한, 본 방법은 NUTA 전환 이후에 제공되는 사용자 인터랙션을 캡처하는 단계를 포함할 수 있다. 다양한 실시예가 가능하다.

Description

안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법{SYSTEMS AND METHODS FOR PROVIDING SAFE CONFLUENCE MODALITY}
본 발명의 다양한 실시예는 컴퓨팅 장치(computing device)에 관한 것으로, 예를 들어, 멀티태스킹(multi-tasking)을 지원하는 이동 컴퓨팅 장치(mobile computing device)에 관한 것이다.
랩톱, 컴퓨터, 태블릿, 및 이동 전화와 같은 이동 컴퓨팅 장치는 오늘날의 생활 양식의 유비쿼터스한(ubiquitous) 일부가 되었다. 보다 나은 처리 능력 및 부가 기능에 대한 사용자의 요구가 증가함에 따라, 이동 컴퓨팅 장치는 현재 그러한 요구를 충족시키고 뛰어난 사용자 경험(user experience)을 제공하기 위해 듀얼 프로세서 및 다중 프로세서와 같은 최신의 기술들로 구성되고 있다.
더욱 효율적이고 개선된 하드웨어에 의해 이동 컴퓨팅 장치에 제공되는 지원과 더불어, 정교하고 복잡한 애플리케이션들의 사용에 의해서도 뛰어난 사용자 경험이 가능하게 된다. 그러한 애플리케이션들 중의 많은 애플리케이션들이 이동 통신 장치의 제조업체에 의해 제공되는 한편, 많은 다른 애플리케이션들은 자신의 이동 컴퓨팅 장치를 커스터마이즈(customize)하는 사용자들에 의해 나중에 설치된다.
이동 컴퓨팅 장치에서의 애플리케이션들의 설치 및 실행은 흔히 컴퓨팅 장치의 능력들에 대한 인터페이스를 제공함으로써 하드웨어를 추상화하는 운영 체제(operating system)에 의해 지원된다. 오늘날의 운영 체제는 복수의 애플리케이션들이 그들 사이의 간섭이 최소로 되면서도 안전한 데이터 공유를 위한 지원을 받으면서 동시에 실행될 수 있는 환경을 제공한다.
본 발명의 다양한 실시예는 안전한 컨플루언스 모달리티(confluence modality)를 제공하는 시스템 및 방법을 제공할 수 있다.
아래의 설명은 안전한 컨플루언스 모달리티(safe confluence modality)를 제공하는 시스템 및 방법과 관련된 개념을 소개하기 위해 제공되는 것이다. 아래의 설명은 청구된 본 발명의 필수적인 특징들을 확인하기 위해 의도된 것도 아니고, 청구된 본 발명의 범위를 결정하거나 한정하는데 사용하기 위해 의도된 것도 아니다.
일 구현에 있어서, 이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티를 제공하는 시스템(들) 및 방법(들)이 본 명세서에 개시된다. 그를 위해, 본 발명에 따라 시스템(들)이 개시된 방법(들)을 구현하는데, 본 방법(들)은 포어그라운드 애플리케이션(foreground application)에서 백그라운드 애플리케이션(background application)으로 전환되는 프라이머리 애플리케이션(primary application)과, 백그라운드 어플리케이션에서 포어그라운드 애플리케이션으로 전환되는 세컨더리 애플리케이션(secondary application) 사이의 애플리케이션 전환(application switch)을 판단하는 단계를 포함한다. 또한, 본 방법은 상기 프라이머리 애플리케이션과 상기 세컨더리 애플리케이션을 기반으로 하여 애플리케이션 전환이 이동 컴퓨팅 장치의 비 사용자(non-user)에 의해 일어난 애플리케이션 전환에 해당하는 NUTA(non-user triggered application) 전환인 것을 식별하는 단계를 포함한다. 또한, 본 방법은 상기 NUTA 전환 후에 제공되는 사용자 인터랙션(interaction)을 캡처(capture)하는 단계를 포함할 수 있다.
한 실시예에 따른, 본 방법은 이동 컴퓨팅 장치에서 비-사용자에 의해 일어난 이벤트로 인해 발생하는 전환 이벤트를 인식하는 단계를 포함할 수 있다. 또한, 본 방법은 상기 전환 이벤트를 기반으로, 상기 이동 컴퓨팅 장치의 포어 그라운드에서 구동중인 제1어플리케이션을 백그라운드로 전환하고, 상기 이동 컴퓨팅 장치의 백그라운드에서 구동중인 제2어플리케이션을 포어 그라운드로 전환하는 단계를 포함할 수 있다. 또한, 본 방법은 상기 제1어플리케이션 및 상기 제2어플리케이션 사이의 관계에 의해 결정되는 시간 구간 동안 상기 이동 컴퓨팅 장치의 사용자 인터렉션을 캡쳐하는 단계를 포함할 수 있다.
한 실시예에 따른, 본 시스템은 프로세서를 포함한다. 또한, 본 시스템은 상기 프로세서와 연결되고, 포어그라운드 애플리케이션(foreground application)에서 백그라운드 애플리케이션(background application)으로 전환되는 프라이머리 애플리케이션(primary application)과, 백그라운드 어플리케이션에서 포어그라운드 애플리케이션으로 전환되는 세컨더리 애플리케이션(secondary application) 사이의 애플리케이션 전환을 판단하고, 상기 애플리케이션 전환이 상기 이동 컴퓨팅 장치의 비 사용자에 의해 일어난 애플리케이션 전환에 해당하는 NUTA(non-user triggered application) 전환인 것을 식별하도록 구성되는 전환 식별 모듈을 포함할 수 있다. 또한, 본 시스템은 상기 프로세서(104)와 연결되고, 사용자 인터랙션(interaction)들이 OOSI(out-of-sync interaction)로서 식별되는 동안의 시간을 나타내며, 상기 애플리케이션 전환과 관련된 컨플루언스 타임(confluence time)을 결정하도록 구성되는 시간 결정 모듈을 포함할 수 있다. 또한, 본 시스템은 상기 프로세서와 연결되고, 상기 NUTA 전환 후에 제공되는 사용자 인터랙션을 캡처하도록 구성되는 인터랙션 캡처 모듈을 포함할 수 있다.
첨부 도면들을 참조하여 상세한 설명을 기술하기로 한다. 첨부 도면들에서, 도면 참조 부호의 가장 왼쪽의 자릿수(들)는 그 도면 참조 부호가 처음으로 나온 도면을 식별한다. 동일한 도면 참조 부호들은 첨부 도면의 전체에 걸쳐 유사한 특징들 및 구성 요소들을 참조하는데 사용된다. 이제, 본 발명의 실시예들에 따른 시스템들 및/또는 방법들의 몇몇 실시예들을 첨부 도면들을 참조하여 단지 예로서 설명하기로 한다.
첨부 도면들 중에서,
도 1은 본 발명의 한 실시예에 따른, 안전한 컨플루언스 모달리티를 제공하는 이동 컴퓨팅 장치용 시스템을 개략적으로 나타낸 도면이고,
도 2a는 본 발명의 한 실시예에 따른, 사용자 트리거 애플리케이션(user triggered application) 전환 예를 나타낸 도면이고,
도 2b는 본 발명의 한 실시예에 따른, 비 사용자 트리거 애플리케이션(NUTA) 전환 예를 나타낸 도면이며,
도 3은 본 발명의 한 실시예에 따른, 이동 컴퓨팅 장치의 사용자에게 안전한 컨플루언스 모달리티를 제공하는 방법을 나타낸 도면이다.
당해 기술 분야의 당업자라면, 본 명세서의 모든 블록도들이 본 발명의 원리들을 구현하는 예시적 시스템들의 개념도들을 나타내고 있다는 것을 이해하여야 할 것이다. 마찬가지로, 모든 순서도들, 흐름도들, 상태 전이도(state transition diagram)들, 의사 코드(pseudo code) 등이 실제로 컴퓨터 판독 가능 매체에 표현되어 컴퓨터 또는 프로세서가 명시적으로 도시되어 있든 아니든 그러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스들을 나타내는 것임을 이해할 것이다.
이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법을 본 명세서에서 설명하기로 한다. 본 방법은 멀티태스킹 기능들을 제공할 수 있는 다양한 이동 컴퓨팅 장치들에서 구현될 수 있다. 본 명세서의 설명이 스마트폰에 관한 것이기는 하지만, 당해 기술 분야의 당업자라면 이해할 바와 같이, 본 방법 및 시스템은 비록 약간의 변경들이 있기는 하지만 다른 이동 컴퓨팅 장치들에서 실행될 수도 있다.
스마트폰, 태블릿 PC, 및 다른 핸드헬드 장치들과 같은 이동 컴퓨팅 장치가 대중화되어 많은 사용자의 일상 활동에 중요한 것이 되었다. 오늘날, 사용자들은 광범위한 개인 업무들과 직장 관련 업무들의 수행을 위한 통합 도구로서 그러한 이동 컴퓨팅 장치에 점점 더 의존하고 있다. 그에 응하여, 스마트폰과 같은 이동 컴퓨팅 장치는 똑같이 복잡한 컴퓨터 하드웨어와 소프트웨어를 갖춘 복잡한 컴퓨팅 장치로 진화하였다.
이동 컴퓨팅 장치는 웹사이트에 액세스하고 웹사이트를 디스플레이하는 기능, 이메일을 송수신하는 기능, 사진 및 비디오를 촬영하고 디스플레이하는 기능, 음악 및 다른 형태의 오디오들을 재생하는 기능 등을 비롯한 각종의 기능들을 제공한다. 그러한 기능들과 다수의 다른 기능들은 일반적으로 이동 컴퓨터 장치의 운영 체제 위에서 실행되는 애플리케이션들에 의해 수행된다.
전형적으로, 이동 컴퓨팅 장치의 운영 체제가 다수의 애플리케이션들을 실행하는 동안, 주어진 어떤 경우든 기본적으로 컴퓨팅 장치의 디스플레이 및 키들과 같은 주변 하드웨어 컴포넌트들을 컨트롤하고 있는 하나의 선택된 애플리케이션이 있게 된다. 그러한 애플리케이션들을 일반적으로 포어그라운드 애플리케이션이라 하고, 주변 하드웨어 컴포넌트들을 컨트롤함이 없이 이동 컴퓨팅 장치의 운영 체제상에서 동시에 실행되고 있는 다른 애플리케이션들을 백그라운드 애플리케이션들이라 한다. 일반적으로, 백그라운드 애플리케이션들은 낮은 실행 우선 순위와 관련되고, 사용자에 의해 또는 운영 체제에 의해 호출될 때에 동작한다.
이동 컴퓨팅 장치의 운영 체제상에서 실행되고 있는 다수의 백그라운드 애플리케이션들이 있는 동안, 사용자 또는 운영 체제 또는 백그라운드 애플리케이션들 중의 하나가 백그라운드 애플리케이션들 중의 하나와 포어그라운드 애플리케이션 사이의 전환을 일으킬 수 있다. 어떤 상황들에서는, 운영 체제가 자발적으로 백그라운드 애플리케이션들 중의 하나를 호출하여 포어그라운드 애플리케이션이 되게 하고, 그럼으로써 이전의 포어그라운드 애플리케이션을 강제로 백그라운드 애플리케이션들 중의 하나가 되게 할 수 있다. 또한, 몇몇 상황들에서는, 운영 체제가 애플리케이션을 시작하여 그 애플리케이션에 포어그라운드 지위를 부여하는 한편, 이전의 포어그라운드 애플리케이션을 강제로 백그라운드 애플리케이션들 중의 하나가 되게 할 수도 있다. 예컨대, 스마트폰에서, 사용자가 웹 브라우징 애플리케이션을 통해 인터넷을 브라우징하는 동안, 운영 체제가 착신 통화를 사용자에게 간접적으로 알리기 위해 콜러 애플리케이션(caller application)을 호출하고. 웹 브라우징 애플리케이션을 강제로 백그라운드 애플리케이션이 되게 할 수 있다.
몇몇 다른 상황들에서는, 백그라운드 애플리케이션들 중의 하나가 다른 애플리케이션을 포어그라운드 애플리케이션으로 호출하는 한편, 이전의 포어그라운드 애플리케이션을 강제로 백그라운드 애플리케이션들 중의 하나가 되게 할 수도 있다. 또한, 특정 시나리오들에서는, 포어그라운드 애플리케이션이 예기치 않은 장애로 인해 멈추거나 종료되어 백그라운드 애플리케이션들 중의 하나가 포어그라운드 애플리케이션이 되게 하고, 그럼으로써 애플리케이션들 사이의 전환을 일으킬 수도 있다.
일반적으로, 백그라운드 애플리케이션들 중의 하나로부터 포어그라운드 애플리케이션으로의 및 그 반대로의 애플리케이션들 사이의 전환은 수분의 1초 내에 순식간에 일어난다. 또한, 애플리케이션의 전환과 함께, 주변 장치들에 대한 컨트롤 사이의 전환이 순식간에 일어난다. 애플리케이션들 사이의 전환이 일어나는 동안, 애플리케이션들 사이의 전환에 걸리는 시간은 사용자의 응답 시간보다 훨씬 짧다. 또한, 이동 컴퓨팅 장치의 하드웨어 컴포넌트들의 처리 능력이 증진됨에 따라, 애플리케이션들의 전환 시간과 사용자들의 응답 시간 사이의 차이가 증가하고 있다.
애플리케이션들의 전환과 사용자들의 응답 시간 사이의 차이가 있는 동안, 사용자 응답에 지연(latency) 또는 지연 편차(jitter)가 있어 결국 그것이 OOSI(out-of-sync interaction)로 이어지게 되는 일이 자주 있다. 환언하면, 사용자들은 포어그라운드 애플리케이션으로서 실행되고 있을 수 있는 프라이머리 애플리케이션(primary application)에 대해 응답을 제공할 수 있다. 그러나 사용자들의 지연된 응답 시간으로 인해, 이동 컴퓨팅 장치가 실제로 응답을 받을 수 있을 때쯤에는 운영 체제가 어떤 다른 세컨더리 애플리케이션(secondary application)을 강제로 포어그라운드 애플리케이션이 되게 하였을 수 있다. 따라서 응답이 실제로 의도하였던 프라이머리 애플리케이션에 대해 실행되는 것이 아니라 세컨더리 애플리케이션에 대해 실행될 수도 있다. 그러므로 사용자에 의한 OOSI는 의도치 않은 동작들 및 원치 않는 기능들의 우발적인 실행을 가져올 수 있다.
본 발명의 구현에 따라, 이동 컴퓨팅 장치에서 애플리케이션의 전환 동안 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법이 본 명세서에 개시된다. 개시된 방법은 한편으로 OOSI 및 의도치 않은 동작들을 피하기 위해 안전한 컨플루언스 모달리티를 제공하고, 다른 한편으로 이동 컴퓨팅 장치에서 실행되고 있는 애플리케이션들 사이의 의도치 않은 전환 동안 단절 없는 경험(seamless experience)을 제공한다. 개시된 본 발명의 구현에 따라, 컴퓨팅 장치가 안전한 컨플루언스 모달리티를 제공하기 위해 의도치 않은 전환 또는 시스템에 의해 일어난 전환을 판단하도록 애플리케이션들 사이의 전환을 모니터할 수 있다. 애플리케이션들은 그에 한정되는 것은 아니지만, 이동 컴퓨팅 장치의 제조업체에 의해 설치된 네이티브 애플리케이션(native application)들 및 사용자에 의해 이동 컴퓨팅 장치에 설치된 논-네이티브 애플리케이션(non-native application)들을 포함할 수 있다는 것을 이해할 것이다.
동작 중에, 애플리케이션들 사이의 전환을 모니터하여 포어그라운드 애플리케이션과 백그라운드 애플리케이션들 중의 하나 사이의 전환을 식별하여 그 전환이 NUTA(non-user triggered application) 전환에 의거한 것인지 여부를 판단한다. NUTA 전환은 이동 컴퓨팅 장치의 사용자가 일으키지 않은 애플리케이션들 사이의 전환을 의미하는 것으로 이해될 수 있다. NUTA 전환이 이동 컴퓨팅 장치의 운영 체제에 의해 일어나든지 애플리케이션 전환 권한을 가진 다른 백그라운드 애플리케이션에 의해 일어나든지 크래시(crash) 또는 예기치 않은 장애로 인한 포어그라운드 애플리케이션의 강제적인 닫힘에 의해 일어날 수 있다는 것을 이해할 것이다.
NUTA 전환이 일어난 것으로 판단되면, NUTA 전환 동안에 일어난 OOSI와 같은 사용자의 모든 인터랙션을 캡처함으로써 안전한 컨플루언스 모달리티가 사용자들에게 제공될 수 있다. 그 경우, 캡처된 인터랙션들은 강제로 백그라운드 애플리케이션들 중의 하나가 된 애플리케이션에 관한 것일 수 있다. 다른 구현에서는, NUTA 전환이 포어그라운드 애플리케이션의 강제적인 닫힘으로 인해 일어난 것으로 판단되면, 캡처된 OOSI는 무시되고 어떠한 애플리케이션에도 아예 제공되지 않을 수도 있다. NUTA 전환을 식별하고 OOSI를 캡처하는 것에 의거하여, 의도치 않은 동작을 회피할 수 있고, 사용자들에게 단절 없는 경험을 제공할 수 있게 된다.
따라서 전술한 방법은 애플리케이션들의 전환 동안 사용자 인터랙션들을 보존하면서 이동 컴퓨팅 장치의 애플리케이션들을 전환하는 것을 가능하게 한다. 또한, 전술한 방법의 구현들은 데이터의 손실 또는 의도치 않은 애플리케이션에 대한 인터랙션의 부적절한 실행이 없도록 하는 것을 보장한다.
본 설명은 단지 본 발명의 원리들을 예시하는 것에 지나지 않는다는 것을 알아야 할 것이다. 따라서 비록 본 명세서에서 명시적으로 설명하지는 않지만, 본 발명의 원리들을 구현하고 그 사상과 범위 내에 포함되는 다양한 구성들이 채용될 수도 있다는 것을 이해할 것이다. 또한, 본 명세서에서 열거되는 모든 예들은 주로 읽는 사람이 본 발명의 원리들을 이해하는데 도움을 주기 위해 단지 설명의 목적으로만 의도된 것이 명백하고, 그러한 특별히 열거된 예들 및 조건에 한정됨이 없는 것으로 해석되어야 할 것이다. 아울러, 본 발명의 원리들, 양태들, 및 실시예들은 물론 그 특정의 예들을 기술하는 모든 진술들은 그 균등물들을 포함하는 것으로 의도된 것들이다. 다양한 시스템들에 대해 본 방법을 구현하려는 방식을 도 1 내지 도 3을 참조하여 구체적으로 설명하기로 한다. 개시된 시스템 및 방법이 임의의 다수의 상이한 컴퓨팅 시스템들, 전송 환경들, 및/또는 구성들에서 구현될 수 있지만, 다음의 시스템(들)과 관련하여 실시예들을 설명하기로 한다.
도 1은 본 발명의 한 실시예에 따른, 이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티를 제공하는 시스템을 도시하고 있다. 도 2a 및 도 2b는 본 발명의 한 실시예에 따른, 이동 컴퓨팅 장치의 애플리케이션 전환 인스턴스(instance)들을 각각 도시하고 있다.
본 명세서에 개시된 시스템(102)은 그에 한정되는 것은 아니지만 핸드헬드 장치, 랩톱 또는 다른 휴대용 컴퓨터들, 태블릿 컴퓨터, 패블릿(phablet), 이동 전화, PDA, 스마트폰 등을 비롯한 다양한 장치들을 포함하는 임의의 이동 컴퓨팅 장치(100)에서 구현될 수 있다. 본 시스템(102)은 이동 컴퓨팅 장치(100)의 운영 체제를 통해 이동 컴퓨팅 장치(100)에서 실행되는 다수의 애플리케이션들과 인터페이스로 연결될 수 있다.
본 시스템(102)은 이동 컴퓨팅 장치(100)의 운영 체제가 멀티태스킹 능력을 제공할 수 있는 이동 컴퓨팅 장치(100)에서 구현될 수 있다. 또한, 운영 체제는 또한 애플리케이션들의 우선 순위에 의거하여 하나의 애플리케이션과 다른 애플리케이션 사이에서 주변 하드웨어 컴포넌트들에 대한 컨트롤을 전환할 수도 있다.
일 구현에 있어서, 본 시스템(102)은 프로세서(들)(104)를 포함한다. 프로세서들(104)은 동작 명령어들을 기반으로 하여 신호들을 처리하는 하나 이상의 마이크로프로세서들, 마이크로컴퓨터들, 마이크로컨트롤러들, 디지털 신호 프로세서들, CPU(central processing unit)들, 상태 기계(state machine)들, 논리 회로들, 및/또는 임의의 다른 장치들로서 구현될 수 있다. 여러 능력들 중에서 특히, 프로세서(들)는 메모리에 저장된 컴퓨터 판독 가능 명령어들을 불러내어 실행하도록 구성된다.
또한, 본 시스템(102)은 인터페이스(들)(106)를 포함할 수 있다. 인터페이스들(106)은 상이한 애플리케이션들 및 이동 컴퓨팅 장치(100)의 주변 하드웨어 컴포넌트들과 상호 작용할 수 있게 하는 다양한 소프트웨어 및 하드웨어 인터페이스들을 포함할 수 있다. 인터페이스들(106)은 운영 체제 대 애플리케이션 통신, 프로세스간 통신(inter process communication) 등을 비롯한 광범위한 각종 프로토콜 타입들 내에서의 다수의 통신들을 용이하게 할 수 있다.
본 발명의 다른 실시예에 있어서, 본 시스템(102)은 메모리(108)도 또한 포함할 수 있다. 메모리(108)는 프로세서(104)와 연결될 수 있다. 메모리(108)는 예컨대 SRAM(static random access memory) 및 DRAM(dynamic random access memory)과 같은 휘발성 메모리 및/또는 ROM(read only memory), EPROM(erasable programmable ROM), 플래시 메모리, 하드디스크, 광디스크, 및 자기 테이프와 같은 비휘발성 메모리를 비롯한, 당해 기술 분야에 공지된 임의의 컴퓨터 판독 가능 매체를 포함할 수 있다.
또한, 본 시스템(102)은 모듈(들)(110) 및 데이터(112)를 포함할 수 있다. 모듈들(110) 및 데이터(112)는 프로세서들(104)과 연결될 수 있다. 모듈들(110)은 다른 무엇보다도 특히 특정의 태스크들을 수행하거나 특정의 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 모듈들(110)은 동작 명령어들을 기반으로 하여 신호들을 처리하는 신호 프로세서(들), 상태 기계(들), 논리 회로들, 및/또는 임의의 다른 장치들 또는 컴포넌트들로서 구현될 수도 있다.
본 발명의 다른 양태에 있어서, 모듈들(110)은 프로세서/처리유닛에 의해 실행될 때에 개시된 기능들 중의 임의의 것을 수행하는 컴퓨터 판독 가능 명령어들일 수 있다. 기계 판독 가능 명령어들은 전자 메모리 장치, 하드디스크, 광디스크, 또는 다른 기계 판독 가능 저장 매체 또는 비일시적 매체(non-transitory medium)에 저장될 수 있다. 일 구현에 있어서, 컴퓨터 판독 가능 명령어들은 네트워크 연결을 통해 저장 매체에 다운로드될 수도 있다.
일 구현에 있어서, 모듈(들)(110)은 전환 식별 모듈(switch identification module)(114), 인터랙션 캡처 모듈(interaction capturing module)(116), 컨플루언스 맵핑 모듈(confluence mapping module)(118), 시간 결정 모듈(time determination module)(120), 및 기타 모듈(들)(122)을 포함한다. 기타 모듈(들)(122)은 시스템(102)에 의해 수행되는 애플리케이션들 또는 기능들을 보조하는 프로그램들 또는 코드화된 명령어들을 포함할 수 있다. 그러한 구현에 있어서, 데이터(112)는 NUTA 전환 레코드(124), 컨플루언스 타임 레코드(126), 애플리케이션 전환 데이터(128), 및 기타 데이터(130)를 포함한다. 기타 데이터(130)는 다른 무엇보다도 특히 모듈(들)(110) 내의 하나 이상의 모듈들의 실행의 결과로 처리되거나 수신되거나 생성된 데이터를 저장하는 저장소로서의 역할을 할 수 있다. 데이터(112)가 시스템(102)에 내재하는 것으로 도시되어 있지만, 데이터(112)는 시스템(102)과 연결된 외부 저장소(도면에 도시되지 않음)에 상주할 수 있다. 본 시스템(102)은 인터페이스(들)(106)를 통해 외부저장소와 통신하여 데이터(112)로부터 정보를 얻을 수 있다.
전술한 바와 같이, 본 시스템(102)은 이동 컴퓨팅 장치(100)에 안전한 컨플루언스 모달리티를 제공하도록 구성된다. 본 발명에 따라, 컨플루언스는 포어그라운드 애플리케이션과 백그라운드 애플리케이션 사이의 전환이 있는 상황들에서 발생한다. 앞서 언급한 바와 같이, 전환은 이동 컴퓨팅 장치(100)의 사용자에 의해, 이동 컴퓨팅 장치(100)의 운영 체제에 의해, 백그라운드 애플리케이션들 중의 하나에 의해, 또는 포어그라운드 애플리케이션의 강제적인 닫힘으로 인해 일어날 수 있다. 전술한 구현에 있어서, 본 시스템(102)은 전환 식별 모듈(114)을 포함한다. 전환 식별 모듈(114)은 이동 컴퓨팅 장치(100)의 2개의 애플리케이션들 사이의 모든 전환을 식별하도록 구성된다.
사용자 입력에 의거한 애플리케이션 전환은 UTA(user triggered application) 전환일 수 있다. 예컨대, 이동 컴퓨팅 장치(100)의 사용자가 메시징 애플리케이션과 같은, SMS(short service messages)를 작성하여 전송하는 애플리케이션을 사용하고 있을 수 있다. 그러한 애플리케이션의 사용 중에, 사용자가 SMS의 내용을 타이핑하면서 음악을 듣고 싶어할 수 있다. 그러한 시나리오에서, 사용자는 일반적으로 음악 재생을 위한 다른 애플리케이션을 시작할 것이다. 도 2a는 사용자가 메시징 애플리케이션(204)으로부터 음악 재생을 가능하게 하는 애플리케이션(208)으로 전환하는 UTA 전환 시나리오를 도시하고 있다. 도 2a에는, 이동 컴퓨팅 장치(100)의 3가지 상이한 인스턴스들이 "202-1", "202-2", 및 "202-3"으로서 도시되어 있다. 이동 컴퓨팅 장치(100)의 인스턴스 "202-1"은 메시징 애플리케이션(204)이 실행되고 있는 것을 도시하고 있다. 이동 컴퓨팅 장치(100)의 인스턴스 "202-2"는 사용자가 백그라운드 애플리케이션들 중의 임의의 것으로 전환할 것을 선택할 수 있는, 사용자에 의해 일어나는 전환 시나리오를 도시하고 있다. 사용자의 선택에 의거하여, 사용자는 애플리케이션들의 리스트(206)로부터 선택을 할 수 있다. "206"에 도시된 애플리케이션들의 리스트로부터, 사용자는 음악을 재생할 음악 재생 애플리케이션(208)을 선택할 수 있다. 마지막으로, 이동 컴퓨팅 장치(100)의 인스턴스 "202-3"은 사용자 선택에 의거하여 전환된 애플리케이션이 실행되고 있는 것을 도시하고 있다. 따라서 사용자 입력을 기반으로 하여, 이동 컴퓨팅 장치(100)는 메시징 애플리케이션(204)으로부터 음악 재생 애플리케이션(208)으로 전환할 수 있다.
예를 들어, 사용자가 음악 재생 어플리케이션(208)을 초기화하고, 재생되기 위한 음악을 선택하는 동안, 메시징 애플리케이션(204)은 백그라운드 애플리케이션들 중의 하나가 되도록 전환될 수 있다. 당해 기술 분야의 당업자라면, 다수의 애플리케이션들이 동시에 실행될 수 있고 이동 컴퓨팅 장치(100)의 프로세싱 자원을 이용할 수 있는 멀티태스킹 능력을 이동 컴퓨팅 장치(100)의 운영 체제가 허용할 수 있기 때문에, 그러한 과정 동안 메시징 애플리케이션(204)이 닫히지 않아도 된다는 것을 이해할 것이다. 또한, 그러한 메시징 애플리케이션(204)과 음악 재생 애플리케이션(208) 사이의 전환 과정 동안, 이동 컴퓨팅 장치(100)의 주변 하드웨어 컴포넌트들에 대한 컨트롤도 또한 애플리케이션들 사이에서 전환될 수 있다.
본 발명의 일 구현에 있어서, 전환 식별 모듈(114)은 그러한 2개의 애플리케이션들 사이의 모든 전환들을 식별하도록 구성된다. 동작 중에, 전환 식별 모듈(114)은 이동 컴퓨팅 장치(100)의 운영 체제와의 인터랙션에 의거하여 또는 주변 하드웨어 컴포넌트들의 기능에 있어서의 변화를 식별한 것에 의거하여 애플리케이션 전환을 판단할 수 있다.
당해 기술 분야의 당업자라면 이해할 바와 같이, 이동 컴퓨팅 장치(100)의 주변 컴포넌트들은 포어그라운드 애플리케이션의 사용자 인터페이스가 요구하는 특정의 인터랙션 기능과 관련되어 있다. 포어그라운드 애플리케이션이 임의의 다른 애플리케이션으로 전환되는 즉시, 주변 하드웨어 컴포넌트들과 관련된 기능도 또한 전환되고, 주변 하드웨어 컴포넌트들이 새로운 포어그라운드 애플리케이션의 인터랙션 기능을 나타내게 된다. 따라서 이동 컴퓨팅 장치(100)에서 실행될 수 있는 각각의 애플리케이션은 이용 가능한 주변 하드웨어 컴포넌트들에 대응하는 그 자신의 기능들의 세트를 갖고, 그러한 세트는 포어그라운드 애플리케이션의 전환에 따라 바뀌게 된다.
사용자가 메시징 애플리케이션(204)과 음악 재생 기능을 제공하는 애플리케이션(208) 사이에서 전환을 하는 전술한 시나리오에서, 전환 식별 모듈(114)은 주변 하드웨어 컴포넌트들의 기능에 있어서의 변화에 의거하여 전환을 판단할 수 있다. 전환 식별 모듈(114)은 컴퓨팅 장치의 운영 체제와의 인터랙션에 의거하여 전환을 판단할 수도 있다는 것을 이해할 것이다. 본 발명의 일 구현에 있어서, 이동 컴퓨팅 장치(100)의 운영 체제는 애플리케이션들 사이의 전환이 일어날 때마다 주변 하드웨어 컴포넌트들의 기능에 있어서의 변화를 플래그(flag)하는 입력을 전환 식별 모듈(114)에 제공할 수 있다.
애플리케이션들 사이의 UTA 전환 이외에도, 애플리케이션 전환이 NUTA(non-user triggered application) 전환인 인스턴스들이 있을 수 있다. 애플리케이션 전환이 NUTA 전환인 경우, 애플리케이션들 사이의 전환은 다른 애플리케이션의 우선하는 우선 순위에 기안하여 이동 컴퓨팅 장치(100)의 운영 체제에 의해 일어나는 것, 이동 컴퓨팅 장치(100)에서 실행되고 있는 백그라운드 애플리케이션들 중의 하나에 의해 일어나는 것, 및 포어그라운드 애플리케이션의 강제적인 닫힘에 기인하여 이동 컴퓨팅 장치(100)의 운영 체제에 의해 일어나는 것 중의 하나에 의해 일어날 수 있다. UTA 전환에 대해 설명한 바와 같이, NUTA 전환이 일어난 상황에서도, 주변 하드웨어 컴포넌트들에 대한 컨트롤이 포어그라운드 애플리케이션으로부터 새로운 포어그라운드 애플리케이션으로 전환된다. 또한, 주변 하드웨어 컴포넌트들에 대한 컨트롤에 있어서의 전환과 더불어, 주변 하드웨어 컴포넌트들과 관련된 기능도 역시 전환되고, 주변 하드웨어 컴포넌트들이 새로운 포어그라운드 애플리케이션의 인터랙션 기능을 나타내게 된다.
운영 체제가 일으킨 애플리케이션들 사이의 전환을 나타내는 도 2b에 NUTA 전환이 도시되어 있다. 도 2b는 이동 컴퓨팅 장치(100)의 2개의 인스턴스들을 "252-1" 및 "252-2"로서 도시하고 있다. 인스턴스 "252-1"은 사용자가 메시징 애플리케이션(254)을 사용하고 있는 것을 도시하고 있다. 그러한 메시징 애플리케이션(254)의 사용 중에, 이동 컴퓨팅 장치(100)의 운영 체제는 착신 통화의 알림을 사용자에 제공하기 위해 애플리케이션 전환을 일으킬 수 있다. 그를 위해, 이동 컴퓨팅 장치(100)의 운영 체제는 콜러 애플리케이션(256)을 호출할 수 있다. 애플리케이션 전환이 사용자에 의해 일어난 것이 아니기 때문에, 도 2b에 도시된 그러한 애플리케이션 전환은 NUTA 전환의 일부를 이루는 것이다.
본 발명의 일 구현에 있어서, 전환 식별 모듈(114)은 애플리케이션 전환을 식별하면 애플리케이션 전환이 NUTA 전환인지 여부를 판단하도록 또한 구성된다. 본 구현에 있어서, 전환 식별 모듈(114)은 NUTA 전환 레코드(124)를 기반으로 하여 애플리케이션 전환이 NUTA 전환인 것을 판단할 수 있다. 본 구현에 있어서, NUTA 전환 레코드(124)는 애플리케이션들 사이의 NUTA 전환이 일어날 수 있는 가능성들의 빠짐없는 조합들을 포함할 수 있다. 즉, NUTA 전환 레코드(124)는 전환이 사용자에 의해 일어나지 않는 가능한 애플리케이션 전환들의 빠짐없는 조합들을 포함할 수 있다. NUTA 전환 레코드(124) 내의 각각의 조합은 프라이머리 애플리케이션과 대응하는 세컨더리 애플리케이션을 포함할 수 있다. 프라이머리 애플리케이션은 세컨더리 애플리케이션과 교체되어 세컨더리 애플리케이션을 새로운 포어그라운드 애플리케이션이 되게 할 수 있는 포어그라운드 애플리케이션을 말하는 것일 수 있다. 본 발명의 일 구현에 있어서, NUTA 전환 레코드(124)는 표 1에 나타낸 바와 같이 기술될 수 있다.
레코드 Id 프라이머리 애플리케이션 세컨더리 애플리케이션
1 Appi Appj
2 Appk Appl
3 Appa Appb
N Appp Appq
위에 나타낸 표 1에서, 각각의 조합이 레코드 Id 1, 레코드 Id 2, 레코드 Id 3, …, 레코드 Id N과 같은 레코드 Id에 대해 기재되어 있다. 설명한 바와 같이, 각각의 레코드는 프라이머리 애플리케이션과 세컨더리 애플리케이션의 2개의 애플리케이션들의 조합을 갖는다. 예컨대, 레코드 Id 1에 대해, 애플리케이션 "i"는 프라이머리 애플리케이션이고, 애플리케이션 "j"는 세컨더리 애플리케이션이다. 그러한 애플리케이션들 "i"와 "j"의 조합은 애플리케이션 "i"로부터 애플리케이션 "j"의 애플리케이션 전환이 있는 NUTA 전환인 것으로 정의된다. 따라서 NUTA 전환 레코드(124)를 기반으로 하여, 전환 식별 모듈(114)은 프라이머리 애플리케이션으로부터 세컨더리 애플리케이션으로의 애플리케이션 전환이 NUTA 전환인지 여부를 판단할 수 있다.
동작 중에, 전환 식별 모듈(114)은 포어그라운드 애플리케이션으로서 실행되고 있는 애플리케이션이 프라이머리 애플리케이션의 하나이고, 포어그라운드 애플리케이션을 대체하여 새로운 포어그라운드 애플리케이션이 된 애플리케이션이 세컨더리 애플리케이션의 하나인 것을 판단할 수 있다. 프라이머리 애플리케이션과 세컨더리 애플리케이션을 식별하면, 전환 식별 모듈(114)은 NUTA 전환 레코드(124)에서 싱글 레코드 Id에 대해 그들 애플리케이션들의 정확한 조합을 찾을 수 있다. 프라이머리 애플리케이션과 세컨더리 애플리케이션의 조합이 NUTA 전환 레코드(124)의 어떤 해당 레코드 Id에 존재하는 것으로 식별되면, 전환 식별 모듈(114)은 프라이머리 애플리케이션으로부터 세컨더리 애플리케이션으로의 애플리케이션 전환이 NUTA 전환인 것으로 판단할 수 있다. 예컨대, 도 2b에 도시된 바와 같이, 메시징 애플리케이션(254)으로부터 콜러 애플리케이션(256)으로 애플리케이션 전환이 일어나는 동안, 전환 식별 모듈(114)은 레코드 Id에 대해 프라이머리 애플리케이션이 메시징 애플리케이션인 것으로 정의되고 세컨더리 애플리케이션이 콜러 애플리케이션인 것으로 정의된 시나리오에 해당하는 엔트리를 찾을 수 있다. 일 구현에 있어서, 애플리케이션 전환이 NUTA 전환인 것으로 판단되면, 전환 식별 모듈(114)은 프라이머리 애플리케이션과 세컨더리 애플리케이션과 함께 레코드 Id를 애플리케이션 전환의 세부사항으로서 애플리케이션 전환 데이터(128)에 저장할 수 있다.
전환 식별 모듈(114)이 NUTA 전환 레코드(124)를 기반으로 하여 애플리케이션 전환이 NUTA 전환인 것을 판단하는 것을 설명하였지만, 전환 식별 모듈(114)이 이동 컴퓨팅 장치(100)의 운영 체제로부터의 입력을 기반으로 하여 애플리케이션 전환이 NUTA 전환인 것을 판단할 수도 있다는 것을 이해할 것이다. 그러한 상황에서는, 이동 컴퓨팅 장치(100)의 운영 체제가 사용자 트리거(user trigger) 없는 애플리케이션 전환을 수행할 때마다, 애플리케이션 전환이 NUTA 전환인 것을 식별하는 지시(indication)가 전환 식별 모듈(114)에 제공될 수 있다.
본 발명의 구현에 따라, 전환 식별 모듈(114)이 애플리케이션 전환을 NUTA 전환인 것으로 판단하면, 시간 결정 모듈(120)은 애플리케이션 전환과 관련된 컨플루언스 타임(confluence time)을 결정할 수 있다. 컨플루언스 타임은 사용자로부터의 인터랙션을 OOSI(out-of-sync interaction)로서 간주할 수 있는, 애플리케이션 전환의 타임 인스턴스(time instance)로부터 계산된 시간 구간(time duration)으로서 정의될 수 있다. 환언하면, 컨플루언스 타임의 시간은 애플리케이션 전환 이후의 어떠한 사용자 인터랙션도 프라이머리 애플리케이션에 제공되는 인터랙션으로서 간주할 최대 시간 구간을 정의한다.
본 발명의 일 구현에 있어서, 각각의 애플리케이션 전환에 대한 컨플루언스 타임은 그 사이에서 애플리케이션 전환이 일어난 프라이머리 애플리케이션과 세컨더리 애플리케이션을 기반으로 한다. 이동 컴퓨팅 장치(100)가 애플리케이션들 사이의 전환을 하는데 걸리는 시간은 관여된 애플리케이션들에 의존하여 달라질 수 있다는 것을 이해할 것이다. 몇몇 애플리케이션들에 있어서는 애플리케이션 전환이 시간을 덜 소요할 수 있지만, 다른 애플리케이션들에 있어서는 애플리케이션 전환이 시간을 조금 더 소요할 수 있다. 그러한 상황들에서는, 컨플루언스 타임도 역시 관여된 애플리케이션들에 의존하여 달라질 수 있다. 그를 위해, 본 시스템(102)은 컨플루언스 타임 레코드(126)를 포함할 수 있는데, 컨플루언스 타임 레코드(126)는 NUTA 전환의 각각의 가능한 조합에 대한 컨플루언스 타임의 값을 포함할 수 있다. 전술한 바와 같이, 애플리케이션들 사이의 NUTA 전환의 각각의 가능한 조합은 NUTA 전환 레코드(124)에 특정의 레코드 Id에 대해 정의될 수 있다. 컨플루언스 타임은 그 사이에서 애플리케이션 전환이 일어난 애플리케이션들에 의존하기 때문에, 컨플루언스 타임 레코드(126)도 역시 NUTA 전한 레코드(124)에 정의되어 있는 각각의 레코드에 대한 컨플루언스 타임의 값을 포함할 수 있다. 본 발명의 일 구현에 있어서, 컨플루언스 타임 레코드(126)는 표 2에 나타낸 바와 같이 기술될 수 있다.
레코드 Id 컨플루언스 타임
1 T(i,j)
2 T(k,l)
3 T(a,b)
N T(p,q)
NUTA 전환 레코드를 나타낸 표 1에서 설명한 바와 같이, 표 2는 NUTA 전환 레코드(124)에 정의되어 있는 각각의 레코드 Id에 대한 컨플루언스 타임을 예시하고 있다. 예컨대, 레코드 Id 1에 대해, NUTA 전환 레코드는 애플리케이션 "i"와 애플리케이션 "j" 사이의 애플리케이션 전환을 정의하였다. 마찬가지로, 표 2도 그 레코드 Id에 대한 컨플루언스 타임을 정의한다. 즉, 애플리케이션 "i"와 애플리케이션 "j" 사이의 애플리케이션 전환 이후의 어떠한 사용자 인터랙션도 OOSI로서 간주할 시간을 정의한다. 따라서 일 구현에 있어서, 시간 결정 모듈(120)은 컨플루언스 타임 레코드(126)를 기반으로 하여 2개의 애플리케이션들 사이의 NUTA 전환에 대한 컨플루언스 타임을 결정할 수 있다.
NUTA 전환 레코드(124) 및 컨플루언스 타임 레코드(126)가 별개의 엔티티들로서 정의되는 것을 설명하였지만, 각각의 레코드에 대한 프라이머리 애플리케이션, 세컨더리 애플리케이션, 및 컨플루언스 타임을 정의하는 단일 레코드가 존재할 수 있다는 것을 이해할 것이다. 표 3은 그러한 레코드를 나타낸 것으로, 그 레코드를 기반으로 하여 전환 식별 모듈(114)이 애플리케이션 전환을 NUTA 전환인 것으로 판단하는 것과 시간 결정 모듈(120)이 그 애플리케이션 전환에 대응하는 컨플루언스 타임을 결정하는 것의 양자가 모두 이뤄질 수 있다.
레코드 Id 프라이머리 애플리케이션 세컨더리 애플리케이션 컨플루언스 타임
1 Appi Appj T(i,j)
2 Appk Appl T(k,l)
3 Appa Appb T(a,b)
N Appp Appq T(p,q)
본 발명의 다른 구현에 있어서, 시간 결정 모듈(120)은 2개의 애플리케이션들 사이의 실시간 전환 시간을 기반으로 하여 컨플루언스 타임을 결정하도록 구성된다. 본 구현에 있어서, 시간 결정 모듈(120)은 이동 컴퓨팅 장치(100)의 운영 체제가 NUTA 전환에서 2개의 애플리케이션들 사이의 전환을 하는데 걸리는 시간을 결정하여 해당 컨플루언스 타임을 결정할 수 있다.
NUTA 전환에 대한 컨플루언스 타임은 관여된 애플리케이션들과는 상관없이 모든 애플리케이션 전환들에 대해 고정될 수도 있다. 그러한 시나리오에서, 시간 결정 모듈(120)은 정해진 소정의 시간을 각각의 애플리케이션 전환에 대한 컨플루언스 타임으로서 결정할 수 있다.
컨플루언스 타임 레코드들 기반으로 하든 실시간 전환 시간을 기반으로 하든 고정 값을 기반으로 하든 시간 결정 모듈(120)에 의해 결정된 컨플루언스 타임은 애플리케이션 전환 데이터(128)에 저장될 수 있다.
본 발명의 일 구현에 있어서, 시간 결정 모듈(120)에 의해 애플리케이션 전환에 대한 컨플루언스 타임이 결정되면, 인터랙션 캡처 모듈(116)은 컨플루언스 타임의 시간 동안 사용자에 의한 모든 인터랙션을 캡처할 수 있다. 환언하면, 애플리케이션 전환이 NUTA 전환인 것으로 판단되고 그 애플리케이션 전환에 대한 컨플루언스 타임이 결정되고 나면, 결정된 컨플루언스 타임 동안 사용자에 의해 제공된 모든 인터랙션은 현재 활성화된 포어그라운드 세컨더리 애플리케이션이 아닌 프라이머리 애플리케이션에 대한 인터랙션으로 간주된다.
예컨대, 도 2b에 도시된 NUTA 전환 상황에서, 이제 막 NUTA 전환이 일어났을 때에 사용자가 메시징 애플리케이션(254)에서 작성된 문자를 지우기 위해 백 버튼(258)을 눌렀을 경우, 그 사용자 인터랙션을 메시징 애플리케이션 대신에 콜러 애플리케이션(256)이 수신하였을 것이다. 또한, 그 경우에 통화 끊기 인터페이스(260)가 마침 동일한 입력 위치에 나타나기 때문에, 통화 끊기가 대신에 일어났을 것인데, 그것은 사용자의 의도가 아니었을 수 있다. 그러나 그러한 상황을 회피하기 위해, 인터랙션 캡처 모듈(116)이 NUTA 전환의 발생의 컨플루언스 타임의 시간 내에 일어난 사용자 인터랙션을 캡처하도록 구성된다.
일 구현에 있어서, 인터랙션 캡처 모듈(116)은 애플리케이션 전환이 NUTA 전환인 것으로 판단되면 워치독 타이머(watchdog timer)를 동작시키도록 구성된다. 워치독 타이머의 시간은 시간 결정 모듈(120)이 애플리케이션 전환에 대해 결정한 컨플루언스 타임의 시간을 기반으로 할 수 있다. 본 구현에 있어서, 워치독 타이머가 여전히 동작 중인 동안 인터랙션 캡처 모듈(116)에 의해 식별된 모든 사용자 인터랙션이 캡처되어 OOSI로서 식별된다. 일 구현에 있어서, 캡처된 사용자 인터랙션은 인터랙션 캡처 모듈(116)에 의해 세컨더리 애플리케이션들에 제공되지 않는다.
본 발명의 다른 구현에 있어서, 본 시스템(102)의 컨플루언스 맵핑 모듈(118)은 인터랙션 캡처 모듈(116)에 의해 캡처된 OOSI를 애플리케이션 전환의 프라이머리 애플리케이션에 맵핑하도록 구성된다. 예컨대, 전술한 도 2b의 상황에서, 인터랙션 캡처 모듈(116)에 의해 캡처된, 백 버튼(258)을 누른 사용자 인터랙션은 콜러 애플리케이션(256)이 아닌 메시징 애플리케이션(254)에 맵핑된다. 일 구현에 있어서, 컨플루언스 맵핑 모듈(118)은 전환 식별 모듈(114)에 의해 애플리케이션 전환 데이터(128)에 저장된 NUTA 전환 레코드 Id를 기반으로 하여 애플리케이션 전환에 대응하는 프라이머리 애플리케이션을 결정할 수 있다. NUTA 전환 레코드 Id를 기반으로 하여, 컨플루언스 맵핑 모듈(118)은 현재 새로운 포어그라운드 애플리케이션으로서 실행되고 있는 세컨더리 애플리케이션에 대해 대응하는 프라이머리 애플리케이션을 결정할 수 있다.
본 발명의 구현에 따라, 컨플루언스 맵핑 모듈(118)은 NUTA 전환 동안 안전한 컨플루언스 모달리티를 사용자들에게 제공할 수 있다. 당해 기술 분야의 당업자라면 이해할 바와 같이, 인터랙션 캡처 모듈(116)에 의해 구현되는 워치독 타이머가 만료되고 나면, 사용자 인터랙션들은 캡처되지 않고 프라이머리 애플리케이션에 제공되지 않을 수 있다. 오히려, 워치독 타이머의 만료 이후의 사용자 인터랙션들은 세컨더리 애플리케이션에 직접 제공될 수 있다.
전술한 시스템(102) 및 언급한 방법을 기반으로 하여, NUTA 전환 동안 일어난 OOSI들을 취급하는 안전한 컨플루언스 모달리티가 사용자들에게 제공될 수 있다. 그러한 구현은 OOSI들로 인한 데이터 손실의 방지를 가능하게 할 수 있고, 사용자에게는 단절 없는 애플리케이션 전환 경험을 증진시킬 수도 있다.
도 3은 본 발명의 한 실시예에 따른, 이동 컴퓨팅 장치에서 NUTA 전환 동안 안전한 컨플루언스 모달리티를 사용자들에게 제공하는 방법을 도시하고 있다. 본 방법(300)을 설명하는 순서는 한정으로서 해석되는 것을 의도한 것이 아니고, 개시된 임의의 다수의 방법 블록들은 본 방법 또는 임의의 대안적 방법들을 구현하도록 임의의 순서로 조합될 수 있다. 또한, 개개의 블록들은 본 명세서에 개시된 본 발명의 사상 및 범위를 벗어남이 없이 본 방법으로부터 생략될 수도 있다. 또한, 본 방법은 임의의 적절한 하드웨어, 소프트웨어, 펌웨어, 또는 그들의 조합에 구현될 수 있다.
본 방법은 컴퓨터 실행 가능 명령어들과 일반적으로 관련하여 설명될 수 있다. 일반적으로, 컴퓨터 실행 가능 명령어들은 특정의 기능들을 수행하거나 특정의 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들, 프로시저들, 모듈들, 펑션(functions) 등을 포함할 수 있다. 본 방법은 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 기능들이 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서는, 컴퓨터 실행 가능 명령어들이 메모리 저장 장치들을 비롯한 로컬 컴퓨터 저장 매체와 원격 컴퓨터 저장 매체 모두에 위치할 수 있다.
당해 기술 분야의 당업자라면, 본 방법의 단계들이 프로그램된 컴퓨터들 및 통신 장치들에 의해 수행될 수 있다는 것을 쉽게 인식할 것이다. 본 명세서에서, 일부 실시예들은 또한 기계 또는 컴퓨터 판독 가능하고 개시된 방법의 일부 또는 모든 단계들을 수행하는 명령어들의 기계 실행 가능 프로그램들 또는 컴퓨터 판독 가능 프로그램들을 인코딩하는 프로그램 저장 장치들, 예컨대 디지털 데이터 저장 매체에 적용되도록 의도된 것이다. 프로그램 저장 장치들은 예컨대 디지털 메모리들, 자기 디스크 및 자기 테이프와 같은 자기 저장 매체들, 하드드라이브들, 또는 광학 판독 가능 디지털 데이터 저장 매체들일 수 있다. 실시예들은 또한 예시적인 방법의 상기 단계들을 수행하도록 구성된 통신 네트워크와 통신 장치들에도 적용되도록 의도된 것이다.
도 3을 참조하면, 블록 302에서, 이동 컴퓨팅 장치(100)의 프라이머리 애플리케이션과 세컨더리 애플리케이션 사이의 애플리케이션 전환을 판단한다. 일 구현에 있어서, 프라이머리 애플리케이션은 포어그라운드 애플리케이션에서 백그라운드 애플리케이션들 중의 하나로 전환되고, 세컨더리 애플리케이션은 백그라운드 애플리케이션들 중의 하나에서 포어그라운드 애플리케이션으로 전환된다. 또한, 애플리케이션 전환은 사용자 트리거에 의거하여, 아니면 비 사용자 트리거에 의거하여 일어날 수 있다. 본 구현에 있어서, 프라이머리 애플리케이션과 세컨더리 애플리케이션은 이동 컴퓨팅 장치(100)에서 실행되고 있는 네이티브 애플리케이션, 아니면 논-네이티브 애플리케이션일 수 있다.
블록 304에서, 애플리케이션 전환이 NUTA(non-user triggered application) 전환인지 여부를 판단한다. NUTA 전환은 이동 컴퓨팅 장치(100)의 운영 체제가 다른 애플리케이션을 호출하여 포어그라운드 애플리케이션으로서 실행하거나, 이미 실행 중인 포어그라운드 애플리케이션이 크래시 또는 예기치 않은 장애로 인해 강제적으로 닫혔을 때에 운영 체제가 백그라운드 애플리케이션들 중의 하나를 포어그라운드 애플리케이션으로 전환하거나, 백그라운드 애플리케이션들 중의 하나가 애플리케이션을 호출하여 포어그라운드 애플리케이션이 되게 하는 상황들에서 일어날 수 있다. 일 구현에 있어서, NUTA 전환의 발생은 이동 컴퓨팅 장치(100)의 애플리케이션들 사이의 가능한 NUTA 전환들의 빠짐없이 미리 정해진 리스트를 기반으로 하여 판단될 수 있다. 블록 304에서의 판단이 긍정인 경우에는 컨트롤 흐름이 블록 306으로 가고("예(YES)" 브랜치), 그렇지 않고 블록 304에서의 판단이 부정인 경우에는 컨트롤 흐름이 블록 302로 되돌아 간다("아니오(NO)" 브랜치).
블록 306에서, 애플리케이션 전환에 관여된 프라이머리 애플리케이션과 세컨더리 애플리케이션을 기반으로 한 컨플루언스 타임을 결정한다. 컨플루언스 타임은 모든 사용자 인터랙션을 OOSI(out-of-sync interaction)로서 식별하는, 애플리케이션 전환 이후의 시간을 나타낸다. 일 구현에 있어서, 컨플루언스 타임은 각각의 대응하는 애플리케이션들의 쌍에 대해 컨플루언스 타임이 미리 정해져 있는 애플리케이션 전환에 관여된 애플리케이션들을 기반으로 할 수 있다.
블록 308에서, 애플리케이션 전환 이후에 컨플루언스 타임 동안 식별된 OOSI를 캡처한다. 일 구현에 있어서, 캡처된 OOSI는 이동 컴퓨팅 장치(100)의 사용자에 의해 보내진 프라이머리 애플리케이션에 대한 인터랙션이다. 본 구현에 있어서, 워치독 타이머에 의거하여 컨플루언스 타임의 만료를 감시할 수 있는데, 워치독 타이머의 한계는 컨플루언스 타임의 값을 기반으로 한다.
블록 310에서, 캡처된 OOSI를 백그라운드 애플리케이션들 중의 하나로서 실행되고 있는 프라이머리 애플리케이션에 제공한다. OOSI를 프라이머리 애플리케이션에 제공함으로써, NUTA 전환 동안 안전한 컨플루언스 모달리티가 사용자에게 제공된다.
이동 컴퓨팅 장치에서 NUTA 전환 동안 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법에 대한 실시예들을 구조적 특징들 및/또는 방법들에 특정된 문체로 설명하였지만, 본 발명은 그러한 설명된 특징들 및/또는 방법들에 필수적으로 한정되는 것이 아니라는 것을 이해하여야 할 것이다. 오히려, 그러한 특정의 특징들 및/또는 방법들은 안전한 컨플루언스 모달리티를 제공하는 예시적 실시예들로서 개시된 것이다.
102: 시스템 104: 프로세서
106: 인터페이스 108: 메모리
110: 모듈들 114: 전환 식별 모듈
116: 인터랙션 캡처 모듈 118: 컨플루언스 맵핑 모듈
120: 시간 결정 모듈 122: 기타 모듈
112: 데이터 124: NUTA 전환 레코드
126: 컨플루언스 타임 레코드 128: 애플리케이션 전환 데이터
130: 기타 데이터

Claims (16)

  1. 이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티(confluence modality)를 제공하는 방법에 있어서,
    포어그라운드 애플리케이션(foreground application)에서 백그라운드 애플리케이션(background application)으로 전환되는 프라이머리 애플리케이션(primary application)과, 백그라운드 어플리케이션에서 포어그라운드 애플리케이션으로 전환되는 세컨더리 애플리케이션(secondary application) 사이의 애플리케이션 전환을 판단하는 단계;
    상기 애플리케이션 전환이 상기 이동 컴퓨팅 장치의 비 사용자에 의해 일어난 애플리케이션 전환에 해당하는 NUTA(non-user triggered application) 전환인 것을 식별하는 단계; 및
    상기 NUTA 전환 후에 제공되는 사용자 인터랙션(interaction)을 캡처(capture)하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 세컨더리 애플리케이션이 상기 포어그라운드 애플리케이션으로서 실행되고 있는 동안, 상기 캡처된 사용자 인터랙션을 상기 프라이머리 애플리케이션에 제공하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서, 상기 사용자 인터랙션을 캡처하는 단계는
    상기 이동 컴퓨팅 장치들의 주변 하드웨어 컴포넌트들의 기능들이 상기 포어그라운드 애플리케이션으로서 실행되고 있는 상기 세컨더리 애플리케이션에 맵핑된 상태에서 상기 백그라운드 애플리케이션으로서 실행되고 있는 상기 프라이머리 애플리케이션에 제공되는 사용자 인터랙션을 갭쳐하는 단계인 방법.
  4. 제 1 항에 있어서, 사용자 인터랙션을 캡처하는 단계는
    상기 애플리케이션 전환과 관련된 컨플루언스 타임(confluence time)을 기반으로 수행되되, 상기 컨플루언스 타임은 사용자 인터랙션들이 OOSI(out-of-sync interaction)로서 식별되는 동안의 시간인 방법.
  5. 제 4 항에 있어서, 상기 컨플루언스 타임은
    상기 프라이머리 애플리케이션과 상기 세컨더리 애플리케이션을 기반으로 설정되는 방법.
  6. 제 1 항에 있어서, 상기 NUTA 전환은
    상기 이동 컴퓨팅 장치의 운영 체제에 의해 발생하는 방법.
  7. 제 1 항에 있어서, 상기 애플리케이션 전환을 판단하는 단계는
    상기 이동 컴퓨팅 장치의 운영 체제로부터 받은 입력을 기반으로 판단하는 단계를 포함하는 방법.
  8. 제 1 항에 있어서, 상기 캡처된 사용자 인터랙션을 제공하는 단계는
    상기 애플리케이션 전환과 관련된 컨플루언스 타임을 기반으로 수행되되, 상기 컨플루언스 타임은 상기 프라이머리 애플리케이션과 상기 세컨더리 애플리케이션을 기반으로 설정되는 방법.
  9. 이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티(confluence modality)를 제공하는 시스템에 있어서,
    프로세서;
    상기 프로세서와 연결되고, 포어그라운드 애플리케이션(foreground application)에서 백그라운드 애플리케이션(background application)으로 전환되는 프라이머리 애플리케이션(primary application)과, 백그라운드 어플리케이션에서 포어그라운드 애플리케이션으로 전환되는 세컨더리 애플리케이션(secondary application) 사이의 애플리케이션 전환을 판단하고, 상기 애플리케이션 전환이 상기 이동 컴퓨팅 장치의 비 사용자에 의해 일어난 애플리케이션 전환에 해당하는 NUTA(non-user triggered application) 전환인 것을 식별하도록 구성되는 전환 식별 모듈;
    상기 프로세서(104)와 연결되고, 사용자 인터랙션(interaction)들이 OOSI(out-of-sync interaction)로서 식별되는 동안의 시간을 나타내며, 상기 애플리케이션 전환과 관련된 컨플루언스 타임(confluence time)을 결정하도록 구성되는 시간 결정 모듈; 및
    상기 프로세서와 연결되고, 상기 NUTA 전환 후에 제공되는 사용자 인터랙션을 캡처하도록 구성되는 인터랙션 캡처 모듈을 포함하는 시스템.
  10. 제 9 항에 있어서, 상기 세컨더리 애플리케이션이 상기 포어그라운드 애플리케이션으로서 실행되고 있는 동안, 상기 캡처된 사용자 인터랙션을 상기 프라이머리 애플리케이션에 제공하도록 구성되는 컨플루언스 맵핑 모듈을 더 포함하는 시스템.
  11. 제 9 항에 있어서, 상기 인터랙션 캡처 모듈은
    상기 NUTA 전환 후에 상기 이동 컴퓨팅 장치들의 주변 하드웨어 컴포넌트들의 기능들이 상기 포어그라운드 애플리케이션으로서 실행되고 있는 상기 세컨더리 애플리케이션에 맵핑된 상태에서, 상기 백그라운드 애플리케이션으로서 실행되고 있는 상기 프라이머리 애플리케이션에 제공되는 사용자 인터랙션을 갭쳐하는 시스템.
  12. 제 9 항에 있어서, 상기 시간 결정 모듈은
    상기 프라이머리 애플리케이션과 상기 세컨더리 애플리케이션 사이의 실시간 전환 시간을 기반으로 하여 컨플루언스 타임을 결정하도록 구성되는 시스템.
  13. 제 9 항에 있어서, 상기 인터랙션 캡처 모듈은
    상기 NUTA 전환이 감지되면, 컨플루언스 타임을 기반으로 하는 워치독 타이머(watchdog timer)를 동작시키는 시스템.
  14. 제 9 항에 있어서, 상기 NUTA 전환은
    상기 이동 컴퓨팅 장치의 운영 체제에 의해 발생하는 시스템.
  15. 이동 컴퓨팅 장치에서 안전한 컨플루언스 모달리티(confluence modality)를 제공하는 방법에 있어서,
    상기 이동 컴퓨팅 장치에서 비-사용자에 의해 일어난 이벤트로 인해 발생하는 전환 이벤트를 인식하는 단계;
    상기 전환 이벤트를 기반으로, 상기 이동 컴퓨팅 장치의 포어 그라운드에서 구동중인 제1어플리케이션을 백그라운드로 전환하고, 상기 이동 컴퓨팅 장치의 백그라운드에서 구동중인 제2어플리케이션을 포어 그라운드로 전환하는 단계; 및
    상기 제1어플리케이션 및 상기 제2어플리케이션 사이의 관계에 의해 결정되는 시간 구간 동안 상기 이동 컴퓨팅 장치의 사용자 인터렉션을 캡쳐하는 단계를 포함하는 방법.
  16. 제15 항에 있어서,
    상기 캡쳐된 사용자 인터렉션을 상기 백그라운드에서 구동중인 제1어플리케이션에 전송하는 단계를 더 포함하는 방법.
KR1020140013849A 2013-02-07 2014-02-06 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법 KR20140100909A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN359/DEL/2013 2013-02-07
IN359DE2013 IN2013DE00359A (ko) 2013-02-07 2013-02-07

Publications (1)

Publication Number Publication Date
KR20140100909A true KR20140100909A (ko) 2014-08-18

Family

ID=51260454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140013849A KR20140100909A (ko) 2013-02-07 2014-02-06 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법

Country Status (3)

Country Link
US (1) US9342354B2 (ko)
KR (1) KR20140100909A (ko)
IN (1) IN2013DE00359A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210038858A (ko) * 2020-05-15 2021-04-08 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 애플리케이션의 작동 방법, 장치, 기기 및 저장매체

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886773B2 (en) 2010-08-14 2014-11-11 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US10356579B2 (en) * 2013-03-15 2019-07-16 The Nielsen Company (Us), Llc Methods and apparatus to credit usage of mobile devices
US10275341B2 (en) * 2015-01-21 2019-04-30 Somo Innovations Ltd Mobile application usability testing
KR102303417B1 (ko) * 2015-06-19 2021-09-23 삼성전자주식회사 복수의 운영 체제를 지원하는 전자 장치 제어 방법
CN109348353B (zh) * 2018-09-07 2020-04-14 百度在线网络技术(北京)有限公司 智能音箱的服务处理方法、装置和智能音箱
US11941319B2 (en) 2020-07-20 2024-03-26 Apple Inc. Systems, methods, and graphical user interfaces for selecting audio output modes of wearable audio output devices
US11523243B2 (en) * 2020-09-25 2022-12-06 Apple Inc. Systems, methods, and graphical user interfaces for using spatialized audio during communication sessions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8483765B2 (en) * 2005-08-26 2013-07-09 Kt Corporation User terminal for performing a plurality of applications simultaneously
US8588849B2 (en) * 2010-07-09 2013-11-19 Blackberry Limited System and method for resuming media
JP2013084233A (ja) * 2011-09-28 2013-05-09 Kyocera Corp 装置、方法、及びプログラム
US8688038B2 (en) * 2012-01-27 2014-04-01 Blackberry Limited Mobile communications device providing enhanced near field communication (NFC) mode switching features and related methods
US20130210358A1 (en) * 2012-02-13 2013-08-15 Htc Corporation Application Control Method and Mobile Electronic Device thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210038858A (ko) * 2020-05-15 2021-04-08 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 애플리케이션의 작동 방법, 장치, 기기 및 저장매체

Also Published As

Publication number Publication date
US9342354B2 (en) 2016-05-17
US20140223441A1 (en) 2014-08-07
IN2013DE00359A (ko) 2015-06-19

Similar Documents

Publication Publication Date Title
KR20140100909A (ko) 안전한 컨플루언스 모달리티를 제공하는 시스템 및 방법
WO2020192311A1 (zh) 主从服务器切换方法、装置、电子设备及存储介质
US20140289415A1 (en) Continuous and concurrent device experience in a multi-device ecosystem
US9098109B2 (en) Adaptive device behavior in response to user interaction
US20160164810A1 (en) Multi-endpoint actionable notifications
KR20140002087A (ko) 멀티 코어 중앙 처리 장치에서의 코어 클록들을 비동기적으로 및 독립적으로 제어하는 시스템 및 방법
US20220239718A1 (en) Communication Protocol Switching Method, Apparatus, and System
JP2016528850A (ja) シームレスな通話移行
US12015733B2 (en) Do-not-disturb method and terminal
CN110933075B (zh) 服务调用方法、装置、电子设备及存储介质
KR102043641B1 (ko) 통신 기능 처리 방법 및 이를 지원하는 전자 장치
US20160041879A1 (en) Data backup to and restore from trusted devices
KR101400799B1 (ko) 사용자 단말기에 디바이스 제어 정보를 제공하는 방법 및 시스템과 이를 이용하여 어플리케이션을 실행하는 방법 및 사용자 단말기
US9363711B2 (en) User experiences during call handovers on a hybrid telecommunications network
US20200076938A1 (en) Method and system for managing accessory application of accessory device by companion device
JP2019536173A (ja) アプリケーションのリソース使用量の削減
US11606457B2 (en) Technology and method for selectively providing network function to application of device
CN107391128B (zh) 监控虚拟文件对象模型vdom的方法和装置
CN110716985B (zh) 一种节点信息处理方法、装置及介质
KR101638162B1 (ko) 모바일 단말의 어플리케이션의 실행을 지원하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
US9641597B2 (en) Managing an application on a computing system
CN116737404A (zh) 用于应用接续的方法及终端设备
CN115361699A (zh) 一种流量预警方法、装置、终端设备及介质
WO2015085453A1 (zh) 电话挂断方法和移动终端

Legal Events

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