KR20150013706A - 네트워크 네비게이션을 관리하기 위한 시스템 및 방법 - Google Patents

네트워크 네비게이션을 관리하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20150013706A
KR20150013706A KR1020147034212A KR20147034212A KR20150013706A KR 20150013706 A KR20150013706 A KR 20150013706A KR 1020147034212 A KR1020147034212 A KR 1020147034212A KR 20147034212 A KR20147034212 A KR 20147034212A KR 20150013706 A KR20150013706 A KR 20150013706A
Authority
KR
South Korea
Prior art keywords
memory
application
file
user
user device
Prior art date
Application number
KR1020147034212A
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 KR20150013706A publication Critical patent/KR20150013706A/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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

애플리케이션과, 특정 시간에서 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일이 사용자 디바이스의 제 1 메모리에 유지되며, 제 1 메모리는 영구 스토리지를 포함한다. 애플리케이션은 예를 들어, 소프트웨어 애플리케이션일 수 있다. 요청에 응답하여, 파일은 디바이스의 제 2 메모리로 전송되며, 제 2 메모리는 랜덤 액세스 메모리를 포함한다. 파일은 실행 애플리케이션으로서 기동 또는 셋업된다. 사용자 디바이스는 셀 폰, 무선 전화, 개인 휴대 정보 단말기, 퍼스널 컴퓨터, 랩톱 컴퓨터, 워크스테이션 및 메인프레임 컴퓨터 등일 수 있다. 일 실시예에서, 파일은 사용자 디바이스의 포어그라운드로 옮겨진다.

Description

네트워크 네비게이션을 관리하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR MANAGING NETWORK NAVIGATION}
본 명세서는 일반적으로 네트워크를 통해 애플리케이션에 액세스하기 위한 시스템 및 방법에 관한 것으로, 더욱 구체적으로는 네트워크 내의 네비게이션을 관리하기 위한 시스템 및 방법에 관한 것이다.
인터넷 사용이 증가하면서, 웹사이트 간 네비게이팅을 위한 툴 및 방법이 점점 중요해지고 있다. 많은 인터넷 브라우저는, 사용자가 북마크의 리스트 또는 즐겨찾기 웹사이트의 리스트를 생성할 수 있게 한다. 이러한 리스트는 통상적으로 사용자가 선택한 다양한 웹사이트에 대한 링크를 포함한다. 이러한 링크는 예를 들어, URL(uniform resource locator)을 포함할 수 있다. 사용자가 후속적으로 북마크 또는 즐겨찾기 아이콘을 선택하는 경우, 브라우저는 연관 웹사이트에 액세스하기 위해 링크에 액세스한다.
실시예에 따르면, 애플리케이션과, 특정 시간의 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일이 사용자 디바이스의 제 1 메모리에 유지되며, 제 1 메모리는 영구 스토리지를 포함한다. 애플리케이션은 예를 들어, 소프트웨어 애플리케이션일 수 있다. 요청에 응답하여, 파일은 디바이스의 제 2 메모리에 전송되며, 제 2 메모리는 랜덤 액세스 메모리를 포함한다. 파일은 실행 애플리케이션으로서 기동되거나 셋업된다. 사용자 디바이스는, 셀 폰, 무선 전화, 개인 휴대 정보 단말기, 퍼스널 컴퓨터, 랩톱 컴퓨터, 워크스테이션, 메인프레임 컴퓨터 등일 수 있다. 일 실시예에서, 파일은 사용자 디바이스의 포어그라운드(foreground)에 옮겨진다.
일 실시예에서, 제 1 메모리는, 장기(long-term) 메모리를 포함하며, 제 2 메모리는 실행 메모리를 포함한다.
다른 실시예에서, 복수의 파일이 제 1 메모리에 유지되며, 각각의 개별 파일은 각각의 소프트웨어 애플리케이션과 각각의 애플리케이션의 상태에 대응하는 데이터를 포함한다. 복수의 파일에 각각 대응하는 복수의 옵션이 표시된다. 복수의 옵션 중 하나의 선택이 수신된다.
일 실시예에서, 제 1 메모리에 저장된 파일의 수가 미리 정해진 수를 초과하면, 복수의 파일 중 하나 이상이 제 1 메모리로부터 제거된다. 각각의 파일은, 파일이 저장되었을 때의 시간을 나타내는 타임스탬프를 포함할 수 있다. 복수의 파일 중 선택된 하나가 각각의 타임스탬프에 기초하여 제 1 메모리로부터 제거될 수 있다.
본 발명의 이러한 이점 및 다른 이점은 후술하는 상세한 설명과 첨부 도면에 대한 참조에 의해 본 기술분야의 당업자에게 명백할 것이다.
도 1은 실시예에 따른 통신 시스템을 나타낸다.
도 2a 내지 2d는 실시예에 따른 예시적인 사용자 디바이스의 기능 컴포넌트를 나타낸다.
도 3a 내지 3h는 실시예에 따른 각각의 네트워크 애플리케이션과 연관된 다양한 웹페이지를 나타낸다.
도 4는 실시예에 따라 브레드크럼(breadcrumb)을 검색 및 기동하는 방법을 나타내는 흐름도이다.
도 5a는 실시예에 다른 도 2a 내지 2d의 사용자 디바이스의 기능 컴포넌트를 나타낸다.
도 5b는 실시예에 따른 웹페이지를 나타낸다.
도 6은 본 발명의 특정 실시예를 구현하는 데 사용될 수 있는 예시적인 컴퓨터의 컴포넌트를 나타낸다.
도 1은 실시예에 따라 온라인 서비스를 제공하는 데 사용될 수 있는 통신 시스템(100)을 나타낸다. 통신 시스템(100)은 네트워크(105), 제 1 서버(141), 제 2 서버(151) 및 사용자 디바이스(160)를 포함한다. 도 1의 예시적인 실시예에서, 네트워크(105)는 인터넷이다. 다른 실시예에서, 네트워크(105)는 예를 들어, 인트라넷, LAN(local area network), WAN(wide area network), 무선 네트워크, 섬유 채널 기반 SAN(storage area network) 또는 이더넷과 같은 다수의 상이한 유형의 네트워크 중 하나 이상을 포함할 수 있다. 다른 네트워크가 사용될 수도 있다. 대안적으로, 네트워크(105)는 상이한 유형의 네트워크의 조합을 포함할 수 있다.
도 1의 예시적인 실시예에서, 서버(141)는 네트워크(105)를 통해 온라인 서비스를 제공하는 웹사이트(142)를 유지 및 동작시킨다. 웹사이트(142)는 서버(141)에 의해 호스팅되고 예를 들어, 통상적인 웹 브라우저를 사용하여 볼 수 있는 World Wide Web 페이지를 통해 액세스가능할 수 있다.
웹사이트(142)는 애플리케이션(145)을 포함하여, 서버(141)에 저장된 하나 이상의 소프트웨어 애플리케이션과 연관된다. 도 1의 예시적인 실시예에서, 애플리케이션(145)은 온라인 게임 애플리케이션이다. 예를 들어, 사용자는 웹사이트(142)에 액세스할 수 있고, 웹페이지 상에 표시된 적절한 아이콘을 선택함으로써 게임하기를 선택할 수 있다. 사용자가 아이콘을 선택하면, 애플리케이션(145)이 실행되어 사용자가 원하는 게임을 할 수 있게 한다. 다른 실시예에서, 애플리케이션(145)은, 온라인 정보 서비스, 온라인 문서 프로세싱 서비스, 오디오, 비디오를 재생하거나 텍스트, 또는 오디오, 비디오 및 텍스트의 임의의 조합을 보여주는 미디어 전달 서비스와 같은 임의의 다른 유형의 애플리케이션, 이메일 리더, 북 리더, 사진 또는 기술적 그림에 대한 뷰어를 포함하는 사진 또는 슬라이드쇼 뷰어, 소셜 네트워킹 웹사이트, 블로그, (도로 또는 날씨 맵과 같은) 맵, 온라인 화이트보드 또는 드로잉 툴, 또는 네트워크(105)를 통해 액세스 가능한 임의의 다른 유형의 서비스와 같은 통신 애플리케이션을 포함할 수 있다.
사용자 디바이스(160)를 사용하는 사용자가 웹사이트(142)에 액세스하고 애플리케이션(145)을 기동하면, 서버(141)는 사용자 디바이스(160)에 대하여 애플리케이션(145)의 전부 또는 일부를 서빙한다. 사용자 디바이스(160)는 애플리케이션(또는 그 일부)을 수신하고 실행 메모리에 애플리케이션(또는 그 일부)을 저장한다. 그 후 실행 메모리 내의 애플리케이션(145)의 버전이 사용자 디바이스(160) 상의 실행 애플리케이션으로서 기동 또는 셋업된다. 일 실시예에서, 애플리케이션 또는 프로그램이 액티브 메모리로 위치되고, 애플리케이션 또는 프로그램이 실행을 위해 준비되며, 디바이스의 운영 체제에 의해 통상적으로 수행되는 기능은 사용되는 특정 운영 체제의 컨텍스트에 의존한다.
마찬가지로, 서버(151)는 네트워크(105)를 통해 온라인 서비스를 제공하는 웹사이트(152)를 유지 및 동작시킨다. 웹사이트(152)는 서버(151)에 의해 호스팅되고 예를 들어, 통상적인 웹브라우저를 사용하여 볼 수 있는 World Wide Web 페이지를 통해 액세스가능할 수 있다.
웹사이트(152)는 애플리케이션(155)을 포함하여, 서버(151)에 저장된 하나 이상의 소프트웨어 애플리케이션과 연관된다. 도 1의 예시적인 실시예에서, 웹사이트(152)는 다양한 뉴스 기사에 대한 액세스를 제공하는 뉴스 웹사이트이고, 애플리케이션(155)은 선택된 뉴스 기사를 표시하는 애플리케이션이다. 예를 들어, 사용자는 웹사이트(152)에 액세스할 수 있고 웹페이지 상에 표시된 적절한 아이콘을 선택함으로써 기사 읽기를 선택할 수 있다. 사용자가 아이콘을 선택하면, 애플리케이션(155)이 실행되어 사용자가 원하는 기사를 읽을 수 있게 한다. 다른 실시예에서, 애플리케이션(155)은, 온라인 게임 애플리케이션, 온라인 정보 서비스, 온라인 문서 프로세싱 서비스, 오디오, 비디오를 재생하거나 텍스트, 또는 오디오, 비디오 및 텍스트의 임의의 조합을 보여주는 미디어 전달 서비스와 같은 임의의 다른 유형의 애플리케이션, 이메일 리더, 북 리더, 사진 또는 기술적 그림에 대한 뷰어를 포함하는 사진 또는 슬라이드쇼 뷰어, 소셜 네트워킹 웹사이트, 블로그, (도로 또는 날씨 맵과 같은) 맵, 온라인 화이트보드 또는 드로잉 툴, 또는 네트워크(105)를 통해 액세스가능한 임의의 다른 유형의 서비스와 같은 통신 애플리케이션을 포함할 수 있다.
사용자 디바이스(160)를 사용하는 사용자가 웹사이트(152)에 액세스하여 애플리케이션(155)을 기동시키면, 서버(151)는 사용자 디바이스(160)에 대하여 애플리케이션(155)의 전부 또는 일부를 서빙한다. 사용자 디바이스(160)는 애플리케이션(또는 그 일부)을 수신하고 실행 메모리에 애플리케이션(또는 그 일부)을 저장한다. 그 후, 실행 메모리 내의 애플리케이션(155)의 버전이 사용자 디바이스(160) 상의 실행 애플리케이션으로서 기동 및 셋업된다.
사용자 디바이스(160)는 네트워크(105)를 통해 사용자가 통신할 수 있게 하는 임의의 디바이스일 수 있다. 사용자 디바이스(160)는 직접의(유선의) 링크를 통해 또는 무선으로 네트워크(105)에 접속될 수 있다. 사용자 디바이스(160)는 정보를 표시하기 위한 디스플레이 스크린(미도시)을 가질 수 있다. 도 1의 예시적인 실시예에서, 사용자 디바이스(160)는 셀 폰, 또는 다른 무선 전화, 개인 휴대 정보 단말기 등과 같은 모바일 통신 디바이스를 포함한다. 대안적으로, 사용자 디바이스(160)는 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 메인프레임 컴퓨터 등일 수 있다. 다른 디바이스가 사용될 수도 있다.
도 2a는 실시예에 따른 사용자 디바이스(160)의 기능 컴포넌트를 나타낸다. 사용자 디바이스(160)는 웹브라우저(210) 및 디스플레이(270)를 포함한다. 웹브라우저(210)는 예를 들어, 인터넷을 통해 World Wide Web에 액세스하는 데 사용되는 통상적인 웹브라우저일 수 있다. 디스플레이(270)는 텍스트 문서, 스프레드시트 데이터, 웹페이지, 비디오 및 다른 정보를 사용자에게 표시한다. 예를 들어, 온라인 게임의 웹페이지가 디스플레이(270) 상에 표시될 수 있다.
사용자 디바이스(160)는 운영 체제(252)를 포함한다. 운영 체제(252)는 사용자 디바이스(160)의 다른 컴포넌트의 동작을 제어한다. 운영 체제(252)는 예를 들어, 소프트웨어를 포함할 수 있다.
또한, 사용자 디바이스(160)는 실행 메모리(225) 및 장기 스토리지(235)를 포함한다. 실행 메모리(225)는, 사용자 디바이스(160)가 동작하면서, 데이터 및 다른 정보를 일시적으로 저장하기 위해 사용자 디바이스(160)의 다른 컴포넌트에 의해 때때로 사용된다. 때때로, 소프트웨어 애플리케이션의 전부 또는 일부가, 애플리케이션이 사용자 디바이스(160) 상에서 실행되면서 실행 메모리(225)에 일시적으로 저장될 수 있다. 예를 들어, 온라인 애플리케이션이 네트워크(105)를 통해 액세스할 때, 애플리케이션이 실행되면서, 온라인 애플리케이션의 전부 또는 일부가 실행 메모리(225)에 일시적으로 저장 및 유지될 수 있다. 통상적으로, 온라인 애플리케이션의 사용자 로그 오프 후에, 또는 이로부터 멀리 네비게이팅한 후에, 실행 메모리(225)에 유지되었던 온라인 애플리케이션(또는 그 일부)은 실행 메모리(225)로부터 제거될 수 있다. 실행 메모리(225)는 예를 들어, RAM(random access memory) 또는 DRAM(dynamic random access memory)을 포함할 수 있다. 다른 실시예에서, 실행 메모리(225)는 다른 유형의 메모리 디바이스를 포함할 수 있다.
장기 스토리지(235)는 실행 메모리(225)보다 더욱 영구적인 장기의 방식으로 다양한 유형의 데이터를 저장한다. 장기 스토리지(235)는, 사용자 또는 애플리케이션이 검색을 위해 데이터의 논리 파티셔닝을 특정할 수 있는 비휘발성의 영구 스토리지를 포함할 수 있다. 일 실시예에서, 예를 들어, 장기 스토리지(235)는 코드의 실행을 위해 프로세서로 직접 전송되는 명령 및 데이터를 위해 사용되는 작업 메모리를 제외한 임의의 메모리를 포함할 수 있다. 다양한 실시예에서, 장기 메모리(235)는 하나 이상의 회전 디스크 드라이브, 솔리드 스테이트 디스크 드라이브, 광 디스크, 테이프 드라이브, SD 및 마이크로 SD 카드와 같은 제거가능 메모리 칩, USB 드라이브, 네트워크 스토리지, 클라우드 스토리지 메커니즘 등을 포함할 수 있으며, 이에 한정되지 않는다. 장기 스토리지(235)는 운영 체제에 의해 "마운팅"될 수 있으며, (시스템 메모리의 확장과 반대로) 어드레스가능한 "드라이브" 공간일 수 있다. 다른 유형의 메모리 디바이스가 사용될 수도 있다.
또한, 사용자 디바이스(160)는 브레드크럼 관리자(260)를 포함한다. 브레드크럼 관리자(260)는, 사용자 디바이스(160)가 현재 네트워크(105)를 통해 액세스하고 있는 (애플리케이션(145) 또는 애플리케이션(155)과 같은) 온라인 애플리케이션에 관한 정보를 저장하라는 요청을 때때로 수신한다. 응답으로, 브레드크럼 관리자(260)는, 사용자 디바이스가 현재 액세스하고 있는 애플리케이션에 관한 정보를 장기 스토리지(235)에 기록한다. 이 정보는 RAM에 저장된 애플리케이션 및 관련 데이터의 로컬 버전을 포함할 수 있다. 이러한 파일을 여기에서 "브레드크럼"이라 칭한다.
도 1의 실시예에 다르면, 사용자는 네트워크(105)를 통해 다양한 웹사이트에 액세스하기 위해 사용자 디바이스(160)를 사용할 수 있다. 예를 들어, 사용자는 웹사이트(142)에 액세스하고 애플리케이션(145)과 연관된 특정 게임을 하기 위해 사용자 디바이스(160)를 사용할 수 있다. 웹사이트(142) 및 애플리케이션(145)에 액세스하면서, 사용자는, 그 후에 사용자가 애플리케이션(145)과 연관된 선택된 웹페이지로 복귀할 수 있도록 애플리케이션(145)과 연관된 브레드크럼을 생성 및 저장할 수 있다. 사용자는 그 후에 다른 웹사이트로 네비게이팅할 수 있으며, 애플리케이션(145) 및 선택된 웹페이지로 복귀하기 위해 저장된 브레드크럼을 후속적으로 사용할 수 있다.
원하는 게임을 하기 위해, 사용자가 웹사이트(142)에 액세스하는 (사용자 디바이스(160)의) 브라우저(210)를 사용하는 것으로 상정한다. 공지의 방식으로, 사용자는 웹사이트에 액세스하기 위해 사용자 계정으로 로그하도록 요청받을 수 있다.
예를 들어, 사용자는 웹사이트(142)로 네비게이팅하기 위해 브라우저(210)를 채용할 수 있다. 사용자가 웹사이트(142)에 액세스하면, 웹사이트(142)는 브라우저(210)와 통신할 수 있고, 도 3a에 나타내어진 것과 같은 웹페이지가 디스플레이(270) 상에 표시되게 한다. 웹페이지(304)는 "환상적인 게임"이라는 제목의 웹페이지를 나타낸다. 또한, 브라우저(210)는 파일 옵션(317), 및 사용자가 페이지(304) 내에서 스크롤 업/다운할 수 있게 하는 스크롤 바(322)와 같은 하나 이상의 메뉴 옵션을 표시하는 메뉴 바(315)를 표시할 수 있다. 다른 실시예에서, 메뉴 바 및/또는 스크롤 바는 표시되지 않을 수 있다. 웹페이지(304)는 "게임 1000"이라는 제목의 특정 게임을 하도록 선택될 수 있는 아이콘(307)을 포함한다. 예시적인 실시예에서, 애플리케이션(145)은 "게임 1000"이라는 제목의 게임과 연관된다.
사용자가 "게임 1000"을 하기를 원하는 것으로 상정하면, 사용자는 커서(309)로 아이콘 상에서 클릭하거나 (예를 들어, 터치 스크린 상에서) 손가락으로 아이콘을 누름으로써 아이콘(307)을 선택한다. 사용자가 아이콘(307)을 선택하면, 웹사이트(142)는 애플리케이션(145)의 전부 또는 일부의 버전을 사용자 디바이스(160)에 제공함으로써 응답한다. 도 2a에 나타낸 바와 같이, 사용자 디바이스(160)는 이러한 버전의 애플리케이션(145)을 수신하고 로컬 버전(A)(280)으로서 이를 실행 메모리(225)에 저장한다.
예시적인 실시예에서, 로컬 버전(A)(280)은 사용자 디바이스(160) 상에서 실행되고(예를 들어, 수행 또는 론칭됨), 도 3b에 나타낸 것과 같은 웹페이지가 (사용자 디바이스(160)의) 디스플레이(270) 상에 나타나게 한다. 도 3b에 의해 나타낸 바와 같이, 웹페이지(330)는 원하는 게임의 페이지를 나타낸다. 사용자는 게임을 하기 시작한다. 사용자의 스코어, 획득된 레벨 등을 반영하기 위해, 사용자가 게임을 하면서, 로컬 버전(A)(280)이 갱신될 수 있다. 사용자가 게임을 하면서, 로컬 버전(A)(280)은 또한 게임, 웹페이지, 및/또는 사용자의 활동의 상태에 관한 데이터를 (실행 메모리(225) 내의 다른 위치에) 별개로 저장할 수 있다. 예를 들어, 입력에 대한 사용자 선호도, 세션 당 및 총 사용자 플레이 시간, (완료된 레벨, 레벨 당 스코어 및/또는 랭킹과 같은) 게임에서 획득된 하나 이상의 달성의 표시, (사용자명 및 패스워드, 또는 예를 들어 게임과 사용자의 액티브 세션을 트랙킹하기 위해 애플리케이션(145)에 의해 로컬 버전(A)(280)으로 전달된 1회의 크리덴셜과 같은) 사용자 인증 정보, 온라인 멀티-플레이어 게임의 다른 플레이어로부터의 관련 정보 등과 같은 관련 데이터가 실행 메모리(225)에 저장될 수 있다.
사용자가 수십분동안 게임을 한 후 전화 통화를 수신하는 것으로 상정한다. 추가로 사용자가 페이지(330)를 닫고 전화 통화를 받는 것을 원하지만, 사용자가 그 후에 (예를 들어, 전화 통화가 종료한 후에) 도 3b에 나타낸 바와 같이 사용자가 웹페이지(330)로 쉽게 복귀할 수 있도록 브레드크럼을 생성할 것을 원하는 것으로 상정한다. 실시예에 따르면, 사용자는, 사용자가 현재 액세스하고 있는 웹페이지(330)에 대한 정보를 포함하는 파일을 생성하고 장기 스토리지(235)에 저장할 수 있다.
일 실시예에서, 사용자는, 예를 들어, 컴퓨터 마우스 상의 버튼을 세번 클릭함으로써 "브레드크럼 저장" 옵션을 선택할 수 있다. 대안적으로, 사용자는 터치 스크린 상의 아이콘 또는 지정된 위치를 세번 클릭할 수 있다. 대안적으로, 도 3c에 나타낸 바와 같이, 사용자는 스크린 상에 표시된 메뉴(391)로부터 "브레드크럼 저장" 옵션(396)을 선택할 수 있다. 대안적으로, 운영 체제는 예를 들어, 게임 애플리케이션이 진행 중이고 전화가 수신되었을 때 자동으로 브레드크럼을 생성하도록 사전 구성될 수 있다. 브레드크럼을 저장하기 위한 옵션을 선택하는 다른 방법이 사용될 수도 있다. 브레드크럼 관리자(260)는 브레드크럼 저장 옵션의 사용자 선택을 수신한다.
브레드크럼 저장 옵션의 사용자 선택에 응답하여, 브레드크럼 관리자(260)는 도 2b에 나타낸 바와 같이, 실행 메모리(225)로부터 복사된 다른 관련 데이터와 함께 로컬 버전(A)(280)을 포함하는 파일이 브레드크럼 A(290)로서 장기 스토리지(235)에 저장되거나 전송되게 한다. 이러한 파일을 "브레드크럼"이라 칭한다.
일 실시예에서, 브레드크럼은 후술하는 정보의 전부 또는 일부를 포함한다. 이하의 설명은 JSON(JavaScript Object Notation) 및 안드로이드 운영 체제와 연관된 용어 및 표기를 설명한다. XML 또는 독점 포맷과 같은 다른 포맷과 다른 운영 체제가 사용될 수 있다.
애플리케이션의 로컬 버전과 연관된 브레드크럼은 후술하는 필드: id, appName, desc, timestamp, dex, ram을 포함한다. 필드 id는 브레드크럼을 조직화하기 위해 할당된 고유의 식별자이다. 필드 appName은 애플리케이션에 대한 사용자 디바이스의 이름을 포함하며, 이는 통상적으로 애플리케이션을 초기에 론칭하는 데 사용되는 실행자의 이름이다. "desc" 필드는 애플리케이션을 사용자에게 설명하기 위해 디바이스에 의해 사용되는 긴 애플리케이션 이름을 포함한다. 필드 "timestamp"는 브레드크럼이 초기에 저장되었을 때를 나타낸다. 일 실시예에서, 타임스탬프는 공지의 틱스 포맷(ticks format)을 사용하여 나타내어진다. 필드 "dex" 및 "ram"은 각각 길이로 다수의 메가바이트일 수 있다. 이러한 필드의 각각은 이진 데이터를 보유한다. 필드 "dex"는 애플리케이션을 위한 실제 파일을 포함한다. 필드 "ram"은 통상적으로 시스템 RAM에서 실행되면서 애플리케이션과 연관되는 모든 RAM(random access memory)의 컨텐츠를 포함한다. 따라서, 필드 "ram"은 브레드크럼이 취해진 시간에서 메모리 저장된 애플리케이션을 나타낸다. 이러한 데이터는 통상적으로 RAM에 있으며, 애플리케이션의 일부 또는 전부는 페이지 파일로 스와핑될 수 있다(이것은 운영 체제가 애플리케이션의 일부를 물리적 RAM으로부터 스토리지로 둘 때 발생함). 이러한 메모리 스와핑 기술은 본 기술분야의 당업자에게 잘 알려져 있다.
원래 바이너리를 지원하는 것을 포함하여, 다른 포맷이 dex 및 ram 컨텐츠 양쪽에 대해, 그리고 브레드크럼 자체에 대해서도 사용될 수 있다. 사용자 선호도, 시스템에 대한 고유 식별자와 같은 시스템 정보, NIC(network interface controller)와 같은 임의의 하드웨어 디바이스의 관련 상태, 또는 브레드크럼을 식별하고 이용하기 위해 유용한 임의의 다른 정보를 포함하여, 추가적인 정보가 브레드크럼과 함께 저장될 수 있다.
이하, 전화 통화를 완료한 후에, 사용자가 "게임 1000"으로 복귀하기 전에 몇몇 새로운 기사를 보기로 결정한 것을 상정한다. 사용자는 그에 따라 브라우저(210)를 사용하여 뉴스 웹사이트(152)로 네비게이팅한다. 사용자가 웹페이지(330) 상에 표시된 "게임 1000"으로부터 멀리 네비게이팅하면, 로컬 버전(280)이 도 2b에 나타낸 바와 같이 실행 메모리(225)로부터 제거될 수 있다.
사용자가 웹사이트(152)에 액세스하면, 웹사이트(152)는 도 2c에 나타낸 바와 같이, 애플리케이션(155)의 로컬 버전이 로컬 버전(B)(281)으로서 실행 메모리(225)에 저장되게 한다. 로컬 버전(B)(281)은 도 3d에 나타낸 것과 같은 뉴스 웹페이지가 디스플레이(270) 상에 표시되게 한다. "뉴스 웹사이트"라는 제목의 뉴스 웹페이지(334)는 "뉴스 스토리 A"에 대한 제 1 아이콘(398) 및 "뉴스 스토리 B"에 대한 제 2 아이콘(399)을 포함한다. 사용자가 아이콘(399)을 클릭하는 것으로 상정하면, 로컬 버전(B)(281)은 도 3e에 나타낸 바와 같이 "뉴스 스토리 B"라는 제목의 기사(383)를 나타내는 웹페이지(336)가 표시되게 한다.
사용자가 기사 읽기를 마치고 그 후의 시간에 웹페이지(336)로 쉽게 복귀할 수 있도록, 사용자가 기사(383)의 일부를 읽고 제 2 브레드크럼을 생성하기를 원하는 것으로 상정한다. 사용자는 그에 따라 웹페이지(336)에 관련된 정보를 포함하는 제 2 브레드크럼을 생성한다. 사용자는 상술한 방식으로 브레드크럼 저장 옵션을 선택한다. 브레드크럼 관리자(260)는 브레드크럼 저장 옵션의 사용자 선택을 수신하고, 이에 응답하여 로컬 버전(B)(281)과 연관된 브레드크럼이 장기 스토리지(235)에 저장되게 한다. 도 2d를 참조하면, 로컬 버전(B)(281)과 연관된 브레드크럼은 브레드크럼 B(291)로서 장기 스토리지(235)에 저장된다.
이제 사용자는 도 3f에 나타내어진 웹페이지(361)와 같이, 소셜 네트워킹 웹사이트에 있는 퍼스널 웹페이지를 방문하기 위해 웹페이지(336)로부터 멀리 네비게이팅한다. 사용자가 웹페이지(336)로부터 멀리 네비게이팅할 때, 로컬 버전(B)(281)는 도 2d에 나타내어진 바와 같이 실행 메모리(225)로부터 제거된다.
이하, 사용자가 전화 통화를 수신했을 때 사용자가 했던 "게임 1000"의 페이지로 사용자가 복귀하기를 원하는 것으로 상정한다. 도 4는 실시예에 따른 브레드크럼을 검색 및 기동시키기 위한 방법의 흐름도이다. 단계 410에서, 애플리케이션 및 특정 시간에서 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일이 장기 메모리에 유지된다. 상술한 바와 같이, 브레드크럼 A(290) 및 브레드크럼 B(291)는 사용자 디바이스(160)의 장기 스토리지(235)에 유지된다.
실시예에 따르면, 사용자는 브레드크럼을 검색하는 옵션을 선택할 수 있다. 예를 들어, 사용자는 도 3g에 나타낸 것과 같은 메뉴를 보이게 하기 위해 적절한 버튼을 클릭할 수 있다. 메뉴(372)는 브레드크럼 검색 옵션(377)을 포함한다. 예시적인 실시예에서, 사용자는 브레드크럼 검색 옵션(377)을 선택하고, 이에 응답하여 브레드크럼 관리자(260)는 스토리지에서 브레드크럼 A(290) 및 브레드크럼 B(291)를 식별한다.
복수의 저장된 브레드크럼에 각각 대응하는 복수의 옵션이 표시된다. 따라서, 브레드크럼 관리자(260)는 도 3h에 나타낸 바와 같이 하나 이상의 아이콘을 포함하는 제 2 메뉴가 디스플레이(270) 상에 표시되게 한다. 메뉴(394)는 브레드크럼 A(290)와 연관된 제 1 아이콘(396) 및 브레드크럼 B(291)와 연관된 제 2 아이콘(397)을 포함한다.
복수의 옵션 중 하나의 선택이 수신된다. 브레드크럼 A가 "게임 1000"과 연관되었다는 것을 기억하여, 사용자는 브레드크럼 A(290)와 연관된 아이콘(396)을 선택한다. 브레드크럼 관리자(260)는 사용자 선택을 수신한다.
단계 420에서, 사용자 요청에 응답하여, 파일이 실행 메모리로 전송된다. 따라서, 브레드크럼 검색 옵션(377) 및 아이콘(396)의 사용자 선택에 응답하여, 브레드크럼 관리자(260)는 장기 스토리지(235)로부터 브레드크럼 A(290)의 사본을 검색하고, 도 5a에 나타낸 바와 같이, 그 사본을 브레드크럼 A(290-R)로서 실행 메모리(225)에 저장한다.
단계 430에서, 파일이 실행 애플리케이션으로서 기동 또는 셋업된다. 일 실시예에서, 파일은 재론칭된다. 다른 실시예에서, 파일은 재실행된다. 다른 실시예에서, 파일의 일부는 운영 체제에 의해 이용가능한 것으로 게재된(또는 이용불능인 것으로 게재되지 않은) RAM 메모리의 섹션에 복사된다. 운영 체제의 메모리 트랙킹 테이블이 이러한 변화를 반영하기 위해 수정되고, 호스트 프로세서의 레지스터의 값은, 브레드크럼이 생성되었을 때 설정되었던 동일 오프셋에서 액티브 메모리 내의 메모리 위치로 설정된 운영 체제 명령 레지스터를 제외하고, 브레드크럼이 생성되었을 때 설정된 값으로 설정된다. 예를 들어, 브레드크럼이 생성되었을 때 명령이 액티브 메모리의 애플리케이션의 백번째 워드에 있었으면, 운영 체제 명령 레지스터는 작업 메모리의 애플리케이션의 백번째 워드로 설정된다(이는 물리적인 시스템 RAM 또는 운영 체제의 메모리 어드레스 공간에서 통상적으로 상이한 값임).
예시적인 실시예에서, 브레드크럼 관리자(260)는 이제는 실행 메모리(225)에 저장되어 있는 브레드크럼 A(290-R)의 버전을 실행 애플리케이션으로서 셋업한다. 실행 애플리케이션으로서 설정된 후에, 브레드크럼 A(290-R)는 도 5b에 나타낸 바와 같이, "게임 1000"의 웹페이지(330)가 디스플레이(270) 상에 보이게 한다. 이제 사용자는 그가 이전에 게임을 중지했던 지점에서 또는 그 부근에서 게임을 재개할 수 있다.
임의의 수의 브레드크럼이 스토리지(235)에 저장될 수 있다. 스토리지(235)에 저장된 브레드크럼은 임의의 적절한 길이의 시간으로 저장될 수 있다. 일 실시예에서, 브레드크럼 관리자(260)는 장기 스토리지(235)를 감시할 수 있고, 미리 정해진 수보다 많은 수의 브레드크럼이 저장되지 않도록 보장할 수 있다. 예를 들어, 일 실시예에서, 10개까지의 브레드크럼이 장기 스토리지(235)에 저장된다. 특히, 가장 최근의 10개 브레드크럼이 저장된다. 브레드크럼 관리자(260)는 저장된 브레드크럼의 수가 10을 초과하면 장기 스토리지(235)로부터 더 오래된 브레드크럼을 제거한다. 하나 이상의 브레드크럼의 제거가 예를 들어, 저장된 브레드크럼의 각각의 타임스탬프를 조사함으로써 수행될 수 있으며, 그 각각의 타임스탬프에 의해 나타내어진, 가장 오래된 그 브레드크럼을 제거한다.
다양한 실시예에서, 도 4에 설명한 방법 단계를 포함하여, 여기에 설명되는 방법 단계는 설명하거나 도시한 특정 순서와 다른 순서로 수행될 수 있다. 다른 실시예에서, 다른 단계들이 제공될 수 있거나 설명된 방법으로부터 단계들이 제거될 수도 있다.
여기에 설명한 시스템, 장치 및 방법은 디지털 회로를 사용하거나 공지의 컴퓨터 프로세서, 메모리 유닛, 스토리지 디바이스, 컴퓨터 소프트웨어 및 다른 컴포넌트를 사용하는 하나 이상의 컴퓨터를 사용하여 구현될 수 있다. 통상적으로, 컴퓨터는 명령을 실행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리를 포함한다. 또한, 컴퓨터는 하나 이상의 자기 디스크, 내부 하드 디스크 및 제거가능 디스크, 자기-광 디스크, 광 디스크 등과 같은 하나 이상의 대용량 저장 디바이스를 포함하거나 이에 연결될 수 있다.
여기에 설명한 시스템, 장치 및 방법은 클라이언트-서버 관계에서 동작하는 컴퓨터를 사용하여 구현될 수 있다. 통상적으로, 이러한 시스템에서, 클라이언트 컴퓨터는 서버 컴퓨터로부터 떨어져 위치되고 네트워크를 통해 상호작용한다. 클라이언트-서버 관계는 각각의 클라이언트 및 서버 컴퓨터 상에서 실행하는 컴퓨터 프로그램에 의해 정의 및 제어될 수 있다.
여기에 설명한 시스템, 장치 및 방법은 네트워크 기반 클라우드 컴퓨팅 시스템 내에서 사용될 수 있다. 이러한 네트워크 기반 클라우드 컴퓨팅 시스템에서, 네트워크로 접속되어 있는 서버 또는 다른 프로세서는 네트워크를 통해 하나 이상의 클라이언트 컴퓨터와 통신한다. 클라이언트 컴퓨터는 예를 들어, 클라이언트 컴퓨터 상에서 상주 및 동작하는 네트워크 브라우저 애플리케이션을 통해 서버와 통신한다. 클라이언트 컴퓨터는 서버 상에 데이터를 저장할 수 있고 네트워크를 통해 데이터에 액세스할 수 있다. 클라이언트 컴퓨터는 데이터에 대한 요청 또는 온라인 서비스에 대한 요청을 네트워크를 통해 서버로 송신할 수 있다. 서버는 요청된 서비스를 수행할 수 있고 클라이언트 컴퓨터(들)로 데이터를 제공할 수 있다. 또한, 서버는 클라이언트 컴퓨터가 예를 들어 계산을 수행하고, 스크린 상에 특정 데이터를 표시하는 등과 같은 특정 기능을 수행하게 하도록 개조된 데이터를 송신할 수 있다. 예를 들어, 서버는 도 4의 하나 이상의 단계를 포함하여, 여기에 설명한 방법 단계 중 하나 이상을 클라이언트 컴퓨터가 수행하도록 개조된 요청을 송신할 수 있다. 도 4의 하나 이상의 단계를 포함하여, 여기에 설명한 방법의 특정 단계는 서버 또는 네트워크 기반 클라우드 컴퓨팅 시스템 내의 다른 프로세서에 의해 수행될 수 있다. 도 4의 하나 이상의 단계를 포함하여, 여기에 설명한 방법의 특정 단계는 네트워크 기반 클라우드 컴퓨팅 시스템 내의 클라이언트 컴퓨터에 의해 수행될 수 있다. 도 4의 하나 이상의 단계를 포함하여, 여기에 설명한 방법의 단계는 임의의 조합에서 네트워크 기반 클라우드 컴퓨팅 시스템 내의 서버 및/또는 클라이언트 컴퓨터에 의해 수행될 수 있다.
여기에 설명한 시스템, 장치 및 방법은 프로그램가능 프로세서에 의한 실행을 위해 예를 들어, 비일시적 머신 판독가능 스토리지 디바이스에서 정보 캐리어에 실체적으로 구현된 컴퓨터 프로그램 제품을 사용하여 구현될 수 있으며, 도 4의 하나 이상의 단계를 포함하여, 여기에 설명한 방법 단계는 이러한 프로세서에 의해 실행가능한 하나 이상의 컴퓨터 프로그램을 사용하여 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 대략 특정 결과를 가져오기 위해 컴퓨터에서 직접 또는 간접으로 사용될 수 있는 컴퓨터 프로그램 명령의 세트이다. 컴퓨터 프로그램은 컴파일링되거나 인터프리팅된 언어를 포함하여, 임의의 유형의 프로그래밍 언어로 기재될 수 있으며, 독립형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서의 사용을 위해 적절한 다른 유닛으로서 포함하는 임의의 유형으로 사용될 수 있다.
여기에 설명한 시스템, 장치 및 방법을 구현하는 데 사용될 수 있는 예시적인 컴퓨터의 하이 레벨 블록도가 도 6에 나타내어진다. 컴퓨터(600)는 데이터 스토리지 디바이스(602) 및 메모리(603)에 동작가능하게 연결된 프로세서(601)를 포함한다. 프로세서(601)는 이러한 동작을 정의하는 컴퓨터 프로그램 명령을 실행함으로써 컴퓨터(600)의 전체 동작을 제어한다. 컴퓨터 프로그램 명령은 데이터 스토리지 디바이스(602) 또는 다른 컴퓨터 판독가능 매체에 저장될 수 있으며, 컴퓨터 프로그램 명령의 실행이 요망될 때 메모리(603)로 로딩될 수 있다. 따라서, 도 4의 방법 단계는 메모리(603) 및/또는 데이터 스토리지 디바이스(602)에 저장된 컴퓨터 프로그램 명령에 의해 정의될 수 있으며, 컴퓨터 프로그램 명령을 실행하는 프로세서(601)에 의해 제어될 수 있다. 예를 들어, 컴퓨터 프로그램 명령은 도 4의 방법 단계에 의해 정의되는 알고리즘을 수행하기 위해 본 기술분야의 당업자에 의해 프로그램된 컴퓨터 실행가능 코드로서 구현될 수 있다. 따라서, 컴퓨터 프로그램 명령을 실행함으로써, 프로세서(601)는 도 4의 방법 단계에 의해 정의된 알고리즘을 실행한다. 또한, 컴퓨터(600)는 네트워크를 통해 다른 디바이스와 통신하기 위한 하나 이상의 네트워크 인터페이스(604)를 포함한다. 또한, 컴퓨터(600)는, 사용자가 컴퓨터(600)와 상호작용할 수 있게 하는 하나 이상의 입력/출력 디바이스(605)를 포함한다(예를 들어, 디스플레이, 키보드, 마우스, 스피커, 버튼 등).
프로세서(601)는 범용 및 특수 목적 마이크로프로세서 양쪽을 포함할 수 있으며, 단일 프로세서 또는 컴퓨터(600)의 복수의 프로세서 중 하나일 수 있다. 프로세서(601)는 예를 들어 하나 이상의 CPU(central processing unit)를 포함할 수 있다. 프로세서(601), 데이터 스토리지 디바이스(602) 및/또는 메모리(603)는 하나 이상의 ASIC(application-specific integrated circuit) 및/또는 하나 이상의 FPGA(field programmable gate array)를 포함하거나 이에 의해 보조되거나 이에 통합될 수 있다.
데이터 스토리지 디바이스(602) 및 메모리(603)는 각각 실체적인 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 데이터 스토리지 디바이스(602) 및 메모리(603)는 각각 DRAM(dynamic random access memory), SRAM(static random access memory), DDR RAM(double data rate synchronous dynamic random access memory) 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스와 같은 고속의 랜덤 액세스 메모리를 포함할 수 있으며, 내부 하드 디스크 및 제거가능 디스크와 같은 하나 이상의 자기 디스크 스토리지 디바이스, 자기-광 디스크 스토리지 디바이스, 광 디스크 스토리지 디바이스, 플래시 메모리 디바이스와 같은 비휘발성 메모리와, EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM(compact disc read-only memory), DVD-ROM(digital versatile disc read-only memory) 디스크와 같은 반도체 메모리 디바이스, 또는 다른 비휘발성 솔리드 스테이트 스토리지 디바이스를 포함할 수 있다.
입력/출력 디바이스(605)는 프린터, 스캐너, 디스플레이 스크린 등과 같은 주변 장치를 포함할 수 있다. 예를 들어, 입력/출력 디바이스(605)는 사용자에게 정보를 표시하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스, 키보드, 사용자가 컴퓨터(600)로 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 디바이스를 포함할 수 있다.
사용자 디바이스(160)와, 웹브라우저(210), 디스플레이(270), 브레드크럼 관리자(260), 실행 메모리(225) 및 장기 스토리지(235)를 포함하는 그 컴포넌트를 포함하여, 여기에 설명한 시스템 및 장치의 어느 것 또는 전부는 컴퓨터(600)와 같은 컴퓨터를 사용하여 구현될 수 있다.
본 기술분야의 당업자는, 실제 컴퓨터 또는 컴퓨터의 시스템의 구현이 다른 구성을 가질 수 있고, 다른 컴포넌트도 포함할 수 있고, 도 6은 예시를 위해 이러한 컴퓨터의 컴포넌트의 일부를 하이 레벨로 나타낸 것이라는 것을 이해할 것이다.
상술한 상세한 설명은 모든 관점에서 예증적이고 예시적인 것으로 이해되어야하며, 한정적인 것으로 이해되어서는 안 되고, 여기에 개시된 본 발명의 범위는 상세한 설명으로부터 결정되는 것이 아니라 특허법에 의해 허용되는 전체 폭에 따라 해석되는 청구항으로부터 결정된다. 여기에 나타내어지거나 설명된 실시예는 본 발명의 원리를 단지 예시하는 것이며, 본 발명의 범주 및 사상을 벗어나지 않고도 본 기술분야의 당업자에 의해 다양한 변형이 구현될 수 있다는 것이 이해되어야 한다. 본 기술분야의 당업자는 본 발명의 범주 및 사상을 벗어나지 않고도 다양한 다른 특징의 조합을 구현할 수 있을 것이다.

Claims (10)

  1. 애플리케이션과 특정 시간에서 상기 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일을 영구 스토리지(persistent storage)를 포함하는 제 1 메모리에 유지하는 단계와,
    요청에 응답하여, 랜덤 액세스 메모리를 포함하는 제 2 메모리로 상기 파일을 전송하는 단계와,
    상기 파일을 실행 애플리케이션으로서 기동시키는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    애플리케이션과 특정 시간에서 상기 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일을, 사용자 디바이스에 의해, 상기 사용자 디바이스의, 영구 스토리지를 포함하는 제 1 메모리에 저장된 채로 유지하는 단계와,
    요청에 응답하여, 상기 사용자 디바이스의, 랜덤 액세스 메모리를 포함하는 제2 메모리로 상기 파일을 전송하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    복수의 파일을 상기 제 1 메모리에 유지하는 단계 - 각각의 개별 파일은 각각의 소프트웨어 애플리케이션과 각각의 애플리케이션의 상태에 대응하는 데이터를 포함함 - 와,
    상기 복수의 파일에 각각 대응하는 복수의 옵션을 표시하는 단계와,
    상기 복수의 옵션 중 하나의 선택을 수신하는 단계를 더 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 제 1 메모리에 저장된 파일의 수가 사전결정된 수를 초과하는 경우, 상기 제 1 메모리로부터 상기 복수의 파일 중 하나 이상을 제거하는 단계를 더 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 제 1 메모리는 장기(long-term) 메모리를 포함하고,
    상기 제 2 메모리는 실행(running) 메모리를 포함하는
    방법.
  6. 영구 스토리지를 포함하고, 제 1 데이터를 저장하도록 구성된 제 1 메모리와,
    랜덤 액세스 메모리를 포함하고, 제 2 데이터를 저장하도록 구성된 제 2 메모리와,
    프로세서를 포함하고,
    상기 프로세서는,
    애플리케이션과, 특정 시간에서 상기 애플리케이션의 상태에 대응하는 데이터를 포함하는 파일을 상기 제 1 메모리에 저장하고,
    요청에 응답하여, 상기 파일을 상기 제 2 메모리로 전송하고,
    상기 파일을 실행 애플리케이션으로서 기동시키도록 구성되는
    디바이스.
  7. 제 6 항에 있어서,
    상기 프로세서는,
    상기 파일을 상기 디바이스의 포어그라운드(foreground)로 가져오도록 더 구성되는
    디바이스.
  8. 제 6 항에 있어서,
    상기 프로세서는,
    복수의 파일을 상기 제 1 메모리에 유지하도록 더 구성되고, 각각의 개별 파일은 각각의 애플리케이션과, 각각의 파일이 생성되었을 때 각각의 애플리케이션의 상태에 대응하는 데이터를 포함하는
    디바이스.
  9. 제 6 항에 있어서,
    상기 프로세서는,
    상기 제 1 메모리에 저장된 파일의 수가 사전결정된 수를 초과하는 경우, 복수의 파일 중 하나 이상을 상기 제 1 메모리로부터 제거하도록 더 구성되는
    디바이스.
  10. 제 6 항에 있어서,
    상기 디바이스는, 셀 폰, 무선 전화, 개인 휴대 정보 단말기, 퍼스널 컴퓨터, 랩톱 컴퓨터, 워크스테이션 및 메인프레임 컴퓨터 중 하나를 포함하는
    디바이스.
KR1020147034212A 2012-06-08 2013-05-22 네트워크 네비게이션을 관리하기 위한 시스템 및 방법 KR20150013706A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/492,318 US9411639B2 (en) 2012-06-08 2012-06-08 System and method for managing network navigation
US13/492,318 2012-06-08
PCT/US2013/042211 WO2013184354A1 (en) 2012-06-08 2013-05-22 System and method for managing network navigation

Publications (1)

Publication Number Publication Date
KR20150013706A true KR20150013706A (ko) 2015-02-05

Family

ID=48579489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147034212A KR20150013706A (ko) 2012-06-08 2013-05-22 네트워크 네비게이션을 관리하기 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US9411639B2 (ko)
EP (1) EP2859445A1 (ko)
JP (1) JP6199961B2 (ko)
KR (1) KR20150013706A (ko)
CN (1) CN104350470B (ko)
TW (1) TW201413480A (ko)
WO (1) WO2013184354A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282218B2 (en) * 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
US10977209B2 (en) * 2017-10-23 2021-04-13 Spectra Logic Corporation Bread crumb directory with data migration

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6137485A (en) 1995-03-20 2000-10-24 Canon Kabushiki Kaisha Image transmission method and apparatus, and image transmission system including the apparatus
US5896128A (en) 1995-05-03 1999-04-20 Bell Communications Research, Inc. System and method for associating multimedia objects for use in a video conferencing system
JP3563889B2 (ja) 1996-10-15 2004-09-08 キヤノン株式会社 カメラ制御システムおよびカメラ制御システムの制御方法
US6209088B1 (en) * 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
JP2000215089A (ja) 1999-01-25 2000-08-04 Sony Corp ファイル管理方法およびファイル管理装置
WO2000060853A1 (en) 1999-04-08 2000-10-12 Internet Pictures Corporation Method and apparatus for providing virtual processing effects for wide-angle video images
US20040107199A1 (en) * 2002-08-22 2004-06-03 Mdt Inc. Computer application backup method and system
US20040189701A1 (en) 2003-03-25 2004-09-30 Badt Sig Harold System and method for facilitating interaction between an individual present at a physical location and a telecommuter
US7073052B2 (en) * 2003-05-22 2006-07-04 International Business Machines Corporation Method and system for storing active files and programs in a hibernation mode
US7484220B2 (en) * 2004-05-26 2009-01-27 Qualcomm Incorporated Method, software and apparatus for using application state history information when re-launching applications
US20060004785A1 (en) * 2004-06-03 2006-01-05 International Business Machines Corporation Saving multiple browser instances as a selectable web project
US20080063389A1 (en) 2006-09-13 2008-03-13 General Instrument Corporation Tracking a Focus Point by a Remote Camera
US8510743B2 (en) 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
US20110143739A1 (en) 2008-02-06 2011-06-16 Jan Rippingale Methods and Apparatus for Wireless Phone Optimizations of Battery Life, Web Page Reloads, User Input, User Time, Bandwidth Use and/or Application State Retention
US20090202114A1 (en) 2008-02-13 2009-08-13 Sebastien Morin Live-Action Image Capture
US8250477B1 (en) 2008-11-04 2012-08-21 Sensei, Inc. Mobile client application for managing user interface components
US8355040B2 (en) 2008-10-16 2013-01-15 Teliris, Inc. Telepresence conference room layout, dynamic scenario manager, diagnostics and control system and method
US8584026B2 (en) 2008-12-29 2013-11-12 Avaya Inc. User interface for orienting new users to a three dimensional computer-generated virtual environment
US9083791B2 (en) * 2009-01-22 2015-07-14 Yahoo ! Inc. Web-hosted framework for mobile applications
CN101887444B (zh) * 2009-05-15 2012-12-19 国际商业机器公司 用于网页的导航方法和系统
KR101657545B1 (ko) * 2010-05-11 2016-09-19 엘지전자 주식회사 휴대 단말기 및 그 동작 방법
US8688774B2 (en) 2010-08-09 2014-04-01 Eustace Prince Isidore Method, system, and devices for facilitating real-time social and business interactions/networking
US8261261B2 (en) 2010-09-01 2012-09-04 Google Inc. Installing a computer program
JP2012088940A (ja) 2010-10-20 2012-05-10 Nec System Technologies Ltd 情報処理装置、情報処理方法、及びプログラム
US20120154510A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Smart Camera for Virtual Conferences

Also Published As

Publication number Publication date
JP2015528932A (ja) 2015-10-01
TW201413480A (zh) 2014-04-01
US20130332664A1 (en) 2013-12-12
JP6199961B2 (ja) 2017-09-20
CN104350470A (zh) 2015-02-11
WO2013184354A1 (en) 2013-12-12
EP2859445A1 (en) 2015-04-15
CN104350470B (zh) 2018-06-26
US9411639B2 (en) 2016-08-09

Similar Documents

Publication Publication Date Title
US11799984B2 (en) Installable web applications
CN102132273B (zh) 注释网页内容
US8887085B1 (en) Dynamic content navigation
US10242045B2 (en) Filtering content using synchronization data
US8949739B2 (en) Creating and maintaining images of browsed documents
US9122767B2 (en) Method and apparatus for pre-rendering expected system response
US9836479B2 (en) Local storage linked to networked storage system
US9607332B1 (en) Embedded web application gallery
RU2598991C2 (ru) Восстановление данных клиента при перемещениях данных клиента
US20150205462A1 (en) Browser tab management
US10353721B2 (en) Systems and methods for guided live help
KR20170091142A (ko) 웹 콘텐츠 태깅 및 필터링
US9842091B2 (en) Switching to and from native web applications
US9529819B2 (en) Opening unsupported file types through remoting sessions
WO2013032743A1 (en) System and method for providing offline access in a hosted document service
US20170235706A1 (en) Effecting multi-step operations in an application in response to direct manipulation of a selected object
WO2016016734A1 (en) Managing web browser cache for offline browsing
US9645707B1 (en) Alternative view-based navigation
US20150381754A1 (en) Unifying cloud services for online sharing
CN108140037B (zh) 在后台预先实例化本原应用
US8386604B1 (en) Assigning blame to web browser extensions and applications
US20160188721A1 (en) Accessing Multi-State Search Results
US20120159376A1 (en) Editing data records associated with static images
US9411639B2 (en) System and method for managing network navigation
US9009158B2 (en) Computer capable of retrieving ambiguous information

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2017101000277; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20170118

Effective date: 20181119