KR101963917B1 - 가장 최근에 사용된 문서 목록들의 자동 동기화 기법 - Google Patents

가장 최근에 사용된 문서 목록들의 자동 동기화 기법 Download PDF

Info

Publication number
KR101963917B1
KR101963917B1 KR1020137033840A KR20137033840A KR101963917B1 KR 101963917 B1 KR101963917 B1 KR 101963917B1 KR 1020137033840 A KR1020137033840 A KR 1020137033840A KR 20137033840 A KR20137033840 A KR 20137033840A KR 101963917 B1 KR101963917 B1 KR 101963917B1
Authority
KR
South Korea
Prior art keywords
list
document
user
entry
mru
Prior art date
Application number
KR1020137033840A
Other languages
English (en)
Other versions
KR20140038991A (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 KR20140038991A publication Critical patent/KR20140038991A/ko
Application granted granted Critical
Publication of KR101963917B1 publication Critical patent/KR101963917B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

가장 최근에 사용된 (most recently used, MRU) 클라이언트 동기화 엔진이 클라이언트 머신과 연관된 사용자의 가장 최근에 사용된 (MRU) 문서 목록을 파일 호스팅 서버의 MRU 문서 목록과 동기화하기 위해 제공된다. 파일 호스팅 서버의 MRU 문서 목록은 파일 호스팅 서버 상에 저장된 사용자의 가장 최근에 사용된 문서들의 목록을 포함한다. 파일 호스팅 서버 상에 저장된 사용자의 문서는 하나 이상의 웹-가능(web-enabled) 클라이언트 머신 상에서 사용자에 의해 액세스가능하다. MRU 클라이언트 동기화 엔진은 사용자의 가장 최근에 사용된 문서인지 여부를 판단하기 위해 사용자가 클라이언트 머신 상에서 사용하는 문서와 관계된 레지스트리 데이터를 파일 호스팅 서버의 MRU 문서 목록과 함께 분석할 수 있다.

Description

가장 최근에 사용된 문서 목록들의 자동 동기화 기법{AUTOMATIC SYNCHRONIZATION OF MOST RECENTLY USED DOCUMENT LISTS}
가장 최근에 사용된 (most recently used, MRU) 문서 목록은 사용자가 최근에 열거나 저장한 문서들의 링크를 포함한다. MRU 문서 목록은 최근에 사용된 문서들에 액세스하는 편리한 메커니즘이다. MRU 문서 목록의 링크들을 저장함으로써, 사용자는 문서를 열기 위해 그 문서의 위치를 찾을 필요가 없다. 사용자는 MRU 문서 목록의 링크를 클릭하여 그 문서의 위치를 알 필요 없이 빠르게 문서에 액세스할 수 있다.
사용자의 문서는 웹 브라우저를 통해 액세스 가능한 파일 호스팅 서버 상에 원격으로 저장될 수 있다. 사용자는 웹-가능(web-enabled) 컴퓨팅 장치를 통해 파일 호스팅 서버 상에 저장된 문서들에 액세스할 수 있다. 각각의 컴퓨팅 장치는 파일 호스팅 서버 또는 그 컴퓨팅 장치에 로그인 되어 있는 동안 다른 위치에서 사용자가 최근에 사용한 문서들을 포함하는 MRU 문서 목록을 가진다. 그러나, 컴퓨팅 장치의 MRU 문서 목록은 사용자가 다른 컴퓨팅 장치에서 사용하였을 수 있는 파일 호스팅 서버 상에 저장된 가장 최근에 사용된 문서들을 정확하게 반영하지 못할 수 있다.
본 요약은 이하의 상세한 설명에서 더 자세히 설명될 선택된 개념들을 단순화된 형태로 소개하기 위하여 제공된다. 본 요약은 청구대상의 주요 특징 또는 필수적 특징을 식별하려고 의도되거나 청구대상의 범위를 제한하는데 사용되려고 의도된 것이 아니다.
사용자는 문서를 웹에서 액세스 가능한 파일 호스팅 서버에 저장하고 임의의 웹에서 액세스 가능한 클라이언트 머신을 사용하여 액세스할 수 있다. 파일 호스팅 서버는 각각의 사용자에 대해 파일 호스팅 서버 상에 저장된 그 사용자의 가장 최근에 사용된 문서를 열거하는 MRU-서버 문서 목록을 포함한다. 클라이언트 머신은 파일 호스팅 서버 및/또는 클라이언트 머신 상에 저장된 사용자의 가장 최근에 사용된 문서들을 포함하는 MRU-클라이언트 문서 목록을 포함한다. 각각의 클라이언트 머신은 사용자가 다른 클라이언트 머신들에서 파일 호스팅 서버 상에 저장된 사용자의 문서에 대해 사용자가 행한 액세스를 알지 못할 수 있다. 그런 식으로, 특정 클라이언트 머신 상의 MRU 문서 목록은 사용자의 가장 최근에 사용된 문서들을 정확하게 반영하지 못할 수 있다. 복수의 웹-가능 컴퓨팅 장치들 간에 사용자의 가장 최근에 사용된 문서들의 통합된 관점을 유지하기 위해, MRU 동기화 엔진이 MRU 문서 목록들을 동기화하기 위해 제공된다.
일 실시예에서, MRU 동기화 엔진은 파일 호스팅 서버로부터 설정 리스트를 획득하고 그것을 클라이언트 머신의 레지스트리에 저장된 문서 엔트리들과 비교한다. 구성 목록은 파일 호스팅 서버 상에 기록된 사용자의 가장 최근에 사용된 문서들과 관계된 설정 데이터를 포함한다. 레지스트리는 클라이언트 머신에서 사용자에 의해 사용된 문서들과 관계된 데이터를 저장하는 클라이언트 머신 상의 데이터베이스이다. MRU 동기화 엔진은 어느 문서가 더 최근에 사용되었는지를 결정하기 위해 구성 목록과 레지스트리 목록 둘 다의 정보를 분석한다. 이에 더하여, MRU 동기화 엔진은 파일 호스팅 서버에 MRU-서버 문서 목록을 최신으로 유지하기 위해 필요한 갱신을 통지한다.
이하의 상세한 설명 및 관련된 도면으로부터 다른 특징 및 장점들이 명백해질 것이다. 전술한 일반적인 설명 및 이하의 상세한 설명은 예시적인 것이며 청구대상을 제한하는 것으로 이해되어서는 안된다.
도 1은 MRU-클라이언트 문서 목록을 MRU-서버 문서 목록과 자동으로 동기화하는 예시적인 시스템을 도시한다.
도 2는 MRU-클라이언트 문서 목록을 MRU-서버 문서 목록과 자동으로 동기화하는 다른 예시적인 시스템을 도시한다.
도 3은 MRU 문서 목록들을 자동으로 동기화하는 예시적인 방법을 도시하는 흐름도이다.
도 4는 MRU 문서 목록들을 동기화하는 동작을 수행하는 예시적인 방법을 도시한 흐름도이다.
도 5는 레지스트리 목록 내의 엔트리의 예시적인 레이아웃이다.
도 6은 구성 목록 내의 엔트리의 예시적인 레이아웃이다.
도 7은 레지스트리 목록과 구성 목록 내의 엔트리들을 분석하는 예시적인 방법을 도시한 흐름도이다.
도 8은 병합된 목록을 분석하는 예시적인 방법을 도시하는 흐름도이다.
도 9는 갱신된 MRU-클라이언트 문서 목록을 생성하는 예시적인 방법을 도시하는 흐름도이다.
도 10은 예시적인 운영 체제를 도시하는 블록도이다.
도 11은 예시적인 클라이언트 머신을 도시하는 블록도이다.
도 12는 예시적인 파일 호스팅 서버를 도시하는 블록도이다.
다양한 실시예가 공통된 문서들의 집합을 참조하는 복수의 MRU 문서 목록들을 자동으로 동기화하는 기법에 관한 것이다. MRU 문서 목록은 사용자가 더 최근에 사용된 문서들의 목록이다. 사용자는 사용자가 임의의 웹-가능(web-enabled) 클라이언트 머신에서 액세스 할 수 있는 웹에서 액세스 가능한 파일 호스팅 서버 내에 문서들을 저장할 수 있다. 파일 호스팅 서버와 웹-가능 컴퓨팅 장치 각각은 사용자가 가장 최근에 사용한 파일 호스팅 서버 상에 저장된 사용자의 문서들의 목록을 열거하는 MRU 문서 목록을 포함한다. 사용자는 여러 클라이언트 머신을 사용하여 파일 호스팅 서버로부터 사용자의 문서를 액세스할 수 있다. 각각의 클라이언트 머신은 다른 클라이언트 머신들에서 사용자가 이들 문서들에 액세스하는 것을 알지 못할 수 있다. 그런 식으로, 특정 클라이언트 머신 상의 MRU 문서 목록은 사용자의 가장 최근에 사용된 문서들을 정확하게 반영하지 못할 수 있다. 복수의 웹-가능 컴퓨팅 장치들 간에 파일 호스팅 서버 상에 저장된 가장 최근에 사용된 문서들의 통합된 관점을 유지하기 위해, 이 장치들 간에 사용자의 MRU 문서 목록들을 동기화하기 위한 메커니즘이 제공된다.
MRU 동기화 엔진은 MRU-클라이언트 문서 목록을 MRU-서버 문서 목록과 동기화하기 위해 클라이언트 머신에서 활용될 수 있다. MRU-클라이언트 문서 목록은 그 클라이언트 머신에서 사용자에 의해 사용된 가장 최근에 사용된 문서들로의 링크들을 포함할 수 있다. MRU-서버 문서 목록은 임의의 클라이언트 머신을 통해 액세스된 파일 호스팅 서버에 저장된 사용자의 가장 최근에 사용된 문서들로의 링크들을 포함할 수 있다.
MRU 동기화 엔진은 파일 호스팅 서버로부터 구성 목록을 획득하고 이를 클라이언트 머신의 레지스트리 목록과 비교한다. 구성 목록은 MRU-서버 문서 목록 내의 각 문서와 관계된 설정 데이터를 포함한다. 레지스트리 목록은 클라이언트 머신 상에서 사용자에 의해 사용되는 각 문서와 관계된 설정 데이터를 포함한다. MRU 동기화 엔진은 두 파일의 정보를 분석하여 어느 문서가 사용자의 가장 최근에 사용된 문서들인지를 결정한다. 이에 더하여, MRU 동기화 엔진은 클라이언트 머신에서 사용자의 사용에 기인할 수 있는 MRU-서버 문서 목록에 필요한 갱신을 파일 호스팅 서버에 통지한다. 이제 이 동기화를 수행하는 기법의 상세한 설명에 주의를 기울여 보도록 한다.
도 1은 MRU 문서 목록들을 자동으로 동기화하는 예시적인 시스템(100)을 도시한다. 시스템(100)은 통신 네트워크(104)를 통해 파일 호스팅 서버(106)에 결합되는 (102로 통칭되는) 하나 이상의 클라이언트 머신 (102a), (102b)을 포함한다. 클라이언트 머신(102)는 개인용 컴퓨터, 서버, 노트북 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터, 개인용 정보 단말기(personal digital assistant), 스마트폰, 셀룰러폰, 무선 호출기, 메시지 장치, 태블릿 컴퓨터, 휴대용 컴퓨터 등의 임의의 유형의 컴퓨팅 장치일 수 있다.
파일 호스팅 서버(106)는 서버, 웹 서버, 네트워크 서버, 스토리지 서버, 파일 공유 서버 등의 임의의 유형의 웹에서 액세스 가능한 파일 저장 시스템일 수 있다. 파일 호스팅 서버(106)의 예시로는 Windows Live Sky Drive, Google Docs, Box.net 등이 있다. 통신 네트워크(104)는 클라이언트 머신(102)과 파일 호스팅 서버(106) 간의 통신을 용이하게 한다. 통신 네트워크(104)는 유선 또는 무선 네트워크와 같은 임의의 통신 프로토콜을 활용하는 임의의 유형의 통신 매체를 구현할 수 있다.
각각의 클라이언트 머신(102)는 레지스트리(108), 레지스트리 목록(109), MRU 동기화 엔진(110), MRU-클라이언트 문서 목록(112), 및 문서 폴더(114)를 포함할 수 있다. 파일 호스팅 서버(106)는 MRU 애플리케이션 프로그래밍 인터페이스(API) 핸들러 프로시저(116), 구성 목록(117), 및 파일 시스템(118)을 포함할 수 있다. 파일 시스템(118)은 파일 호스팅 서버 내에 저장된 사용자의 문서들을 포함하는 각각의 사용자에 대한 폴더(120)와 사용자의 가장 최근에 사용된 문서들로의 링크들을 포함하는 MRU-서버 문서 목록(132)을 포함할 수 있다.
각각의 클라이언트 머신(102)은 운영 체제에 의해 사용되는 설정들과 설정 데이터를 저장하는 중앙 저장소인 레지스트리(108)를 포함할 수 있다. 일부 실시예들에서, 레지스트리(108)는 파일들의 각각의 부분집합들이 레지스트리 하이브(registry hive)로 지칭되는 파일의 계층적인 폴더형 구조로서 구성될 수 있다. 각각의 레지스트리 하이브는 파일 시스템에서의 폴더와 유사한 레지스트리 키와 연관된다.
파일이 액세스되거나 재구성될 때마다, 엔트리가 문서 유형과 연관된 레지스트리 키에 배치된다. 예를 들어, 레지스트리 키 "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\File MRU"는 워드 문서들과 관계된 엔트리들을 저장하고, 레지스트리 키 "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Power Point\File MRU"는 파워포인트 문서들과 관계된 엔트리들을 저장하고, 레지스트리 키 "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\File MRU"는 엑셀 문서들과 관계된 엔트리들을 저장한다.
비록 용어 "레지스트리"가 통상적으로 Windows® 기반 운영 체제의 맥락에서 사용되지만, 본 명세서에 설명된 기법은 어떠한 특정 운영체제나 레지스트리 설정에 한정되지 않는다. 비슷한 기능을 제공하는 다른 기법들, 예컨대, 리눅스(Linux)나 유닉스(Unix) 기반 운영 체제 등에서 사용되는 설정 파일들 또한 제한 없이 이용될 수 있다.
레지스트리 목록(109)은 사용자가 클라이언트 머신(102)에서 사용하거나 액세스하는 모든 문서들과 관계된 설정 데이터를 포함한다. 레지스트리 목록(109)은 클라이언트 머신, 파일 호스팅 서버 및 다른 원격 저장 위치 상에 저장된 문서들의 엔트리들을 포함할 수 있다.
MRU 동기화 엔진(110)은 특정 MRU-클라이언트 문서 목록을 MRU-서버 문서 목록과 동기화하는 애플리케이션일 수 있다. MRU 동기화 엔진(110)은 소프트웨어로 구현되고 소프트웨어 컴포넌트, 프로그램, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시져, 소프트웨어 인터페이스, 명령어 집합, 컴퓨팅 코드, 코드 세그먼트, 프로세스, 쓰레드 및 이들의 조합으로 구현될 수 있다. 대안으로서, MRU 동기화 엔진(110)은 다른 애플리케이션의 부분이고 개별적인 실행 스레드 또는 프로세스로 구현될 수 있다. 실시예들은 MRU 동기화 엔진에 대한 특정한 유형의 소프트웨어 구현으로 제한되지 않는다.
MRU-클라이언트 문서 목록(112)은 사용자가 가장 최근에 사용한 가장 최근에 사용한(most recently used) 문서들의 목록이다. MRU-클라이언트 문서 목록의 각 문서의 이름은 그 문서 파일의 위치에 대한 바로가기(shortcut)이다. MRU-클라이언트 문서 목록(112)은 클라이언트 머신(102) 상에 로컬로 저장된 문서들과 파일 호스팅 서버(106) 상에 저장된 문서들을 열거할 수 있다. 하나 이상의 실시예에서, 문서는 워드 문서, 파워포인트 문서, 및/또는 엑셀 문서일 수 있다. 각각의 문서는 파일로 구성되고 용어 "문서" 및 "파일"은 여기에서 상호대체가능하게 사용된다. MRU-클라이언트 문서 목록(112)은 몇몇 운영 체제들에서 "최근에 사용된(Recently Used)" 폴더, "나의 최근 문서들(My Recent Documents)" 폴더, "최근 항목들(Recent Items)" 폴더 등으로 지칭될 수 있다.
MRU-클라이언트 문서 목록(112)은 사용자가 사용하는 문서들을 추적하는 애플리케이션에 의해 유지될 수 있다. 애플리케이션은 사용자가 문서에 마지막으로 액세스한 시간을 표시하는 타임스탬프에 기초하여 MRU-클라이언트 문서 목록에 문서들을 추가할 수 있다. 사용자의 액세스는 문서를 열고 문서를 저장하는 것으로 구성될 수 있다. 애플리케이션은 문서의 상태(예컨대, 삭제됨, 핀 됨(pinned))를 재구성하기 위하여 MRU 변화들을 추적할 수 있다. 사용자는 문서를 "핀하기(pinning)" 함으로써 그 문서가 최근에 액세스된 적이 없는 경우라 하더라도 문서를 MRU-클라이언트 문서 목록 상에 유지하도록 선택할 수 있다. 문서를 "핀하기" 함으로서, 사용자는 그 사용에 관계없이 그 문서를 MRU-클라이언트 문서 목록 상에 유지하려는 선호를 표시할 수 있다. 사용자는 한 번 핀되었던 문서를 "언핀(unpin)"하도록 선택함으로서 그 액세스 시간에 따라 MRU-클라이언트 문서 목록 상에 (그 문서를) 둘지 여부를 판단하도록 할 수 있다. 사용자는 문서가 액세스 가능하게 남아있는 경우라도 MRU-클라이어트 문서 목록에서 문서를 "삭제"하도록 선택할 수 있다. 차후에 삭제된 문서에 액세스하는 것은 그 문서를 MRU-클라이언트 문서 목록에 복귀시킬 수 있다.
MRU-클라이언트 문서 목록(112)에 열거된 문서들은 그 문서의 실제 위치로의 링크에 의해 대표될 수 있다. 링크들은 그 실제 위치에서 문서를 열지 않고 빠르게 문서에 액세스하기 위해 사용된다.
문서 폴더(114) 목록은 클라이언트 머신(102) 상에 로컬로 저장된 문서들 뿐만 아니라 파일 호스팅 서버(106)에 저장된 사용자의 문서들을 개별적인 바로가기 폴더(142) 내에 열거한다. 비록 도 1의 문서 폴더가 각 문서의 이름을 보여주지만, 문서 이름은 사실 바로가기로 지칭되었을 문서의 위치로의 링크이다.
클라이언트 머신(102A)으로 도시되듯이 사용자 A는, 문서들, 클라이언트 머신(102A) 상에 로컬로 저장된 worddoc1.doc(138)를 포함하는 문서 폴더(114A)를 가진다. 문서 폴더(114A)는 파일 호스팅 서버(106) 상에 저장된 사용자 문서, presentation1.ppt(124)로의 링크를 포함하는 서브폴더, 파일 호스팅 서버 바로가기(142)를 포함한다. 클라이언트 머신(102A) 상의 사용자 A에 대한 MRU-클라이언트 문서 목록(112A)은 worddoc1.doc(138) 및 presentation1.ppt(124)를 포함한다.
클라이언트 머신(102B)에서 보여지듯이, 사용자 A는 클라이언트 머신(102B) 상에 로컬로 저장된 문서, worddoc3.doc(144)를 포함하는 문서 폴더(114B)를 가진다. 문서 폴더(114B)는 파일 호스팅 서버(106) 상에 저장된 사용자 문서들, presentation1.ppt(124) 및 worddoc2.doc(128)로의 링크들을 포함하는 서브폴더, 파일 호스팅 서버 바로가기(148)을 포함한다. 클라이언트 머신(102B) 상의 사용자 A에 대한 MRU-클라이언트 문서 목록(112B)은 presentation1.ppt(124), worddoc2.doc(128) 및 worddoc3.doc(144)를 포함한다.
파일 호스팅 서버(106)는 하나 이상의 MRU 애플리케이션 프로그래밍 인터페이스(API) 핸들러 프로시져(116), 구성 목록(117) 및 파일 시스템(118)을 포함한다. MRU 동기화 엔진(110)은 하나 이상의 API를 통해 파일 호스팅 서버(106)와 상호작용한다. API는 원격 프로시져 호출로서 구현될 수 있다. 원격 프로시져 호출은 송신자가 지정된 파라미터로 로컬 프로시져를 실행하거나 호출하는 메시징의 형태이다. 원격 프로시져 호출의 핸들러는 별개의 주소 공간에서 실행된다. MRU 동기화 엔진(110)은 하나 이상의 API를 사용하여 파일 호스팅 서버(106)에 MRU-서버 문서 목록(132)에 필요한 갱신들을 통지한다. MRU API 핸들러 프로시져(116)는 MRU 동기화 엔진(110)으로부터 API 프로시져 호출에 사용되는 지정된 파라미터들을 수신하고 그에 따라 이를 처리한다. MRU API 핸들러 프로시져들(116)은 파일 호스팅 서버(106)에 위치한다.
구성 목록(117)은 MRU-서버 문서 목록(132)에 열거된 각 문서에 대한 엔트리를 포함하는 파일이다. 각각의 엔트리는 모든 클라이언트 머신들(102) 상의 문서의 사용을 포함하는 문서의 구성에 관계된 구성 데이터를 포함한다.
파일 호스팅 서버(106) 상의 파일 시스템(118)은 각각의 사용자에 대한 파일 폴더를 포함할 수 있다. 도 1에서 보이는 바와 같이, 파일 호스팅 서버(106)는 사용자의 문서들과 MRU-서버 문서 목록(132)을 저장하는 서브폴더(122)를 포함하는 사용자 A(120)에 대한 파일 폴더를 가진다. MRU-서버 문서 목록(132)은 파일 호스팅 서버(106) 상에 저장된 문서들로부터 사용자의 가장 최근에 사용된 문서들을 열거하는 폴더이다. MRU-서버 문서 목록(132)은 presentation1.ppt(124)와 worddoc2.doc(128)을 포함한다. 사용자는 MRU-클라이언트 문서 목록에 관하여 상술한 것과 동일한 방식으로 MRU-서버 문서 목록(132) 상에 문서를 유지하도록 선택할 수 있다. 즉, 사용자는 상술한 것과 같은 방식으로 MRU-서버 문서 목록(132)으로부터 문서를 "핀", "언핀" 및 "삭제"할 수 있다.
도 1에 보여지듯이, 파일 호스팅 서버(File Hosting Server)(122)라는 이름의 서브폴더는 사용자 A의 문서들 presentation1.ppt(124)와 worddoc2.doc(128)을 저장한다. 이 문서들((124), (128))을 파일 호스팅 서버(106) 상에 저장함으로서, 사용자 A는 클라이언트 머신과 별개의 웹 인터페이스를 통해 이들 문서들에 액세스할 수 있다. 사용자 A는 파일 호스팅 서버(106) 상에 저장된 파일 presentation1.ppt를 열기 위해 클라이언트 머신(102A) 상의 MRU-클라이언트 문서 목록을 사용할 수 있다. 클라이언트 머신 A 상의 MRU-클라이언트 문서 목록(112A)을 통해 presentation1.ppt(124)에 액세싱함으로써, 사용자 A는 웹 브라우저를 통해 presentation1.ppt(124)에 액세싱하는 것을 피할 수 있다. 마찬가지로, 사용자 A는 각각 파일 호스팅 서버(106) 상에 저장된 문서 presentation1.ppt와 worddoc2.doc를 열기 위해 클라이언트 머신(120B) 상의 MRU-클라이언트 문서 목록(112B)를 사용할 수 있다.
사용자의 MRU-서버 문서 목록(132)은 파일 호스팅 서버(106) 상에 저장된 문서들에 대해 사용자의 가장 최근에 사용된 문서들을 반영해야 한다. MRU-클라이언트 문서 목록(112)은 특히 문서들이 사용자에 의해 다른 클라이언트 머신 상에서 사용된 경우 그 문서들의 가장 최근의 사용을 반영하지 못할 수 있다. 이런 이유로, 각각의 클라이언트 머신(102)은 MRU-서버 문서 목록(132)을 특정 클라이언트 머신(102)과 연관된 사용자의 MRU-클라이언트 문서 목록(112)과 동기화한다.
예를 들어, 도 1에 보여지듯이, MRU-클라이언트 문서 목록(112A)는 클라이언트 머신(102A) 상의 사용자 A의 가장 최근에 사용된 문서들이 worddoc1.doc(138)와 presentation1.ppt(124)임을 보여준다. presentation1.ppt(124)는 파일 호스팅 서버(106) 상에 저장된다. 그러나, MRU-클라이언트 목록(112B)은 사용자 A의 클라이언트 머신(102B) 상에서 가장 최근에 사용된 문서들이 둘 다 파일 호스팅 서버(106)에 저장된 presentation1.ppt(124)와 worddoc2.doc(128) 임을 보여준다. 사용자 A에 대한 MRU-서버 문서 목록(132A)은 presentation1.ppt(124)와 worddoc2.doc(128) 모두가 사용자 A에 의해 더 최근에 사용되었음을 보여준다. MRU-클라이언트 문서 목록(112A)은 파일 호스팅 서버(106) 상에 저장된 사용자 A의 문서들의 더 최근의 액세스에 의해 동기화에서 벗어난 것으로 보인다.
도 2를 참조하면, 클라이언트 머신(102A) 상의 사용자 A의 MRU-클라이언트 문서 목록(112A)이 클라이언트 머신(102B) 상에서 더 최근에 사용된 파일 호스팅 서버(106) 상에 저장된 사용자 A의 문서들에 관하여 동기화되는 시스템이 도시된다. 클라이언트 머신(102A)은 MRU 동기화 엔진(110A)를 활용하여 MRU-클라이언트 문서 목록(112A)을 MRU-서버 문서 목록(132)과 동기화한다. 클라이언트 머신(102A)은 갱신된 MRU-클라이언트 문서 목록(112A)를 생성하기 위해 레지스트리 목록(109)과 구성 목록(117)으로부터 엔트리들을 병합하는데 사용되는 임시 파일인 병합된 목록(111A)을 포함한다. 도 2에 보이는 것과 같이, MRU-클라이언트 문서 목록(112A)은 이제 worddoc2.doc(128)를 포함하며 모든 사용자 A의 MRU-클라이언트 문서 목록들((112A), (112B))이 파일 호스팅 서버(106) 상에 저장된 사용자 A의 가장 최근에 사용된 문서들과 동기화되어 있다.
MRU-서버 문서 목록이 사용자의 가장 최근의 사용을 반영하지 않는 결과를 낳는 다른 상황들이 일어날 수 있음을 알아야 한다. 예컨대, 한 문서가 MRU-서버 문서 목록(132)에서 삭제되었는데 나중에 클라이언트 머신(102) 상에서 다시 열린 경우, 그 문서는 MRU-서버 문서 목록(132) 상의 고려대상이 될 자격이 있다. 게다가, 한 문서의 핀 상태(pin state)가 클라이언트 머신(102) 상에서 변경되었다면, 이것은 MRU-서버 문서 목록(132) 상의 그 문서의 배치에 영향을 줄 수 있다.
이제 다양한 예시적인 방법들을 참고하여 실시예들에 대한 동작의 더 상세한 논의에 주의를 기울이기로 한다. 별도의 표시가 없는 한 대표적인 방법들이 반드시 제시된 순서 또는 특정 순서대로 실행되어야 하는 것은 아님을 이해해야 한다. 게다가, 방법들과 관련하여 설명된 다양한 행위들이 직렬이나 병렬, 또는 직렬과 병렬 동작의 임의의 조합으로 실행될 수 있다. 방법들은 주어진 설계 또는 수행 상의 제한의 집합에 대해 원하는 대로 설명된 실시예들 또는 대체적인 실시예들의 하나 이상의 하드웨어 요소 및/또는 소프트웨어 요소들을 사용하여 구현될 수 있다. 예를 들어, 방법은 논리 장치(예컨대, 범용 또는 특수목적 컴퓨터)에 의한 실행에 대한 논리(예컨대 컴퓨터 프로그램 명령어)로서 구현될 수 있다.
도 3은 MRU 문서 목록들을 자동으로 동기화하는 예시적인 방법의 흐름도이다. 방법(200)은 여기에 설명된 하나 이상의 실시예들에 의해 실행되는 동작의 일부 또는 전부를 대표하는 것이며 방법이 도 3에 설명된 것보다 더 많은 또는 더 적은 동작들을 포함할 수 있음을 알아야 한다. 일 실시예에서, 방법은 MRU 동기화 엔진(110)에 대한 동작들을 도시할 수 있다.
여러 실시예에서, MRU 동기화 엔진(110)은 사용자가 클라이언트 머신(102)에서 사용자 계정에 처음 로그인하였을 때 자동으로 활성화 될 수 있다(블록 202). 대안적인 실시예들에서, MRU 동기화 엔진(110)은 사용자에 의해 직접 활성화될 수 있다(블록 202). 활성화되면서, MRU 동기화 엔진(110)은 사용자가 파일 호스팅 서버(106) 상의 사용자 계정에 로그인하면 동기화 동작을 개시한다(블록 202).
MRU 동기화 엔진(110)은 동기화 동작이 수행될 빈도를 결정한다(블록 204). 일 실시예에서, 동기화 동작은 풀링 빈도(polling frequency)에 따라 수행된다. 풀링 빈도는 기본값, 사용자 구성 입력, 또는 그들의 결합일 수 있고 동기화 동작이 최초의 동기화 이후에 수행될 시간 간격을 결정하는 데 사용될 수 있다.
MRU 동기화 엔진(110)은 MRU 동기화 엔진(110)의 활성화에 따라 최초로 동기화 동작을 수행할 수 있다(블록 206). 그런 후에, 추가적인 동기화가 풀링 빈도에 따라 수행될 수 있다. 갱신을 수행할 시간이고(블록 208 - yes) 추가적인 갱신이 수행될 때(블록 210 - no), MRU 동기화 엔진(110)은 MRU 클라이언트와 MRU 서버 문서 목록들을 동기화할 수 있다(블록 206). 아니면 갱신을 수행할 시간이 아니면(블록 208 - no), 방법은 갱신이 발생하는 다음 시간까지 풀링한다. 동기화 갱신들은 사용자가 클라이언트 머신(102)에서 로그오프하거나 풀링 빈도가 만족할 때(블록 210 - yes) 종료된다.
다른 실시예에서, MRU 동기화 엔진(110)은 MRU-서버 문서 목록(132)이 갱신되었을 때 파일 호스팅 서버(106)로부터 통지를 수신할 수 있다. MRU 동기화 엔진(110)은 풀링 빈도에 따라 동기화를 수행하는 대신 구성 목록(117)의 수령에 따라 동기화 동작을 수행할 수 있다. 다른 실시예에서, MRU 동기화 엔진(110)은 새로운 엔트리가 MRU-서버 문서 목록(132)에 배치되었을 때 파일 호스팅 서버(106)로부터 통지를 수신할 수 있다. 파일 호스팅 서버(106)는 새로운 엔트리를 MRU 동기화 엔진(110)에 포워딩하여 그런 후에 MRU-클라이언트 문서 목록(112)을 수령하면서 갱신할 수 있다. 이제 다양한 클라이언트와 서버 MRU 문서 목록들의 동기화를 수행하는 방법에 대한 논의에 주의를 기울이기로 한다.
도 4를 참조하면, MRU 문서 목록들을 동기화하는 방법을 도시하는 흐름도가 보여진다. 레지스트리(108) 내의 문서 엔트리들의 스냅샷 또는 복사가 레지스트리 목록(109)에서 만들어져 저장될 수 있다(블록 302). 레지스트리(109)에 저장된 문서 엔트리들은 도 5에 보이는 데이터 필드들을 포함하는 포맷을 가질 수 있다. 도 5로 돌아가서, 레지스트리(109) 내의 문서 엔트리는 항목 번호(404), 엔트리 유형(404), 핀 상태(406), 마지막으로 수정된 타임스탬프(408), 플래그 필드(410) 및 주소 필드(412)를 포함할 수 있다. 항목 번호(402)는 레지스트리 키 내에 엔트리의 배치를 표시하는 참조이다. 엔트리 유형은 엔트리의 유형을 표시한다. 예를 들어, 문자열 "REG_SZ"는 문서가 오피스 문서이며 메타데이터가 아님을 표시한다. 핀 상태(406)는 문서가 MRU 문서 목록에 남아있을지 여부를 표시한다. 문서가 "핀 되어있음(pinned)"이면, 문서는 최근에 사용되었는지 여부에 상관없이 MRU 문서 목록에 남아있게 된다. 마지막으로 수정된 타임스탬프(408)는 파일이 사용된 마지막 시간을 표시하고 플래그(410)는 운영 체제의 사용을 위한 것이다. 주소(412)는 주소에 대한 위치이며 URL, 물리적 주소, 네트워크 주소 또는 DAV 주소일 수 있다.
도 4로 돌아가면, MRU 동기화 엔진(110)은 파일 호스팅 서버(106)로부터 구성 목록(117)을 요청한다(블록 304). 하나 이상의 실시예에서, 요청은 API를 통해 만들어질 수 있다. 대안으로서, 메시지는 클라이언트 머신(102)과 파일 호스팅 서버(106) 사이에 전송될 수 있다. 사용자의 구성 목록(117)은 XML(확장성 마크업 언어) 파일 또는 JSON(JavaScript Object Notation) 파일의 형태로 구축될 수 있다.
구성 목록(117) 내의 예시적인 문서 엔트리의 데이터 포맷이 도 5에 보인 것과 같이 구성될 수 있다. 도 6을 참조하면, DAV 주소(502), 마지막으로 수정된 타임스탬프(504), 핀 상태(506), 핀 타임스탬프(508), 삭제 플래그(510) 및 삭제 타임스탬프(512)를 포함하는 구성 목록(117) 내의 엔트리가 보여진다. DAV 주소(502)는 MRU-클라이언트 문서 목록들에 의해 사용되는 것과 동일한 주소이며 파일 호스팅 서버 상의 고유한 식별자이다. 마지막으로 수정된 타임스탬프(605)는 파일이 열리거나 저장된 마지막 시간을 표시한다. 핀 상태(506)는 문서가 MRU 문서 목록에 남아있을지 여부를 표시한다. 핀 타임스탬프(508)는 문서가 핀된 시간을 표시한다. 삭제 플래그(510)는 문서가 MRU-서버 문서 목록에서 삭제되었는지 여부를 표시하며 삭제 타임스탬프(512)는 삭제된 시간을 표시한다.
도 4로 되돌아가서, 구성 목록(117)은 사용자가 클라이언트 머신(102)을 사용하는 동안 문서에 만들어진 최근의 사용이나 변경을 반영하도록 갱신되어있지 못할 수 있다. MRU 동기화 엔진은 이 변경들을 발견하고 파일 호스팅 서버(106)에 통지하여 MRU-서버 문서 목록(132)이 그에 따라 갱신되도록 한다(블록 306). 특히, MRU 동기화 엔진(110)은 MRU-서버 문서 목록(132)에서 삭제되었지만 그 후 클라이언트 머신(102) 상에서 다시 열리거나 다시 저장된 문서들을 발견할 수 있다. MRU 동기화 엔진(110)은 또한 클라이언트 머신(102)을 사용하는 동안 사용자에 의해 언핀되거나 그 후 다시 핀 된 문서를 탐지할 수도 있다. 두 경우에, 이 문서들은 MRU-서버 문서 목록(132)으로 재배치된다.
도 7을 보면, MRU 동기화 엔진(110)이 클라이언트 레지스트리 목록(블록 602) 내의 각각의 엔트리를 판독하고(블록 602) 레지스트리 목록의 엔트리의 주소 필드(412)를 구성 목록(117) 내의 DAV 주소(502)와 매칭시킨다(블록 604). 사용자가 MRU-서버 문서 목록(132)의 문서를 삭제할 때 구성 목록(117)의 삭제 플래그(510)가 올라가고 삭제 타임스탬프(512)는 그 삭제가 발생한 시간을 표시한다. 레지스트리 목록의 대응되는 엔트리의 마지막으로 수정된 타임스탬프(408)는 그 문서가 사용된 마지막 시간을 표시한다. 삭제 플래그(510)가 올라가고 레지스트리 엔트리의 마지막으로 수정된 타임스탬프(408)가 삭제 타임스탬프(512) 보다 뒤이면, 그 문서가 MRU-서버 문서 목록(132)에서 삭제된 후에 문서가 클라이언트 머신(102) 상에 다시 열린다(블록 606). 이 경우, MRU 동기화 엔진(110)은 API 프로시져 호출을 통해 이 조건의 파일 호스팅 서버(106)를 통지한다.
다음으로, MRU 동기화 엔진(110)은 클라이언트 머신(102)이 동작하는 동안 이전에 언핀되었던 문서가 사용자에 의해 핀되었는지를 판단한다. 이 조건을 탐지하기 위해, MRU 동기화 엔진(110)은 레지스트리 목록의 문서 엔트리의 핀 상태(406)를 구성 목록(117)의 대응되는 엔트리와 비교한다(블록 608). 구성 목록(117)의 핀 상태(506)가 문서가 핀되지 않았다고 표시하고 구성 목록(117)의 핀 타임스탬프(508)가 레지스트리 목록의 대응하는 엔트리의 마지막으로 수정된 타임스탬프(408)보다 이전이면, MRU 동기화 엔진(110)은 API 프로시져 호출을 통해 문서 엔트리가 핀되었음을 파일 호스팅 서버(106)에 통지한다(블록 608).
도 4를 다시 참조하면, MRU 동기화 엔진(110)은 레지스트리 목록(109)와 구성 목록(117)을 병합하여 문제된 문서와 관계된 레지스트리 목록으로부터의 모든 엔트리들과 구성 목록(117)으로부터의 모든 엔트리들을 포함하는 병합된 목록(111)을 만든다(블록 308). 그리고 나서 병합된 목록(111)은 클라이언트 머신(102) 상에서 더 최근에 열리고, 수정되고, 저장되거나 핀된 문서에 대해 분석될 수 있다(블록 310).
도 8을 참조하면, MRU 동기화 엔진(110)은 주소에 의해 병합된 목록(111)을 소팅(sorting)하는 것으로 나아간다. 특히, 레지스트리 목록의 주소 필드(412)와 MRU 서버 문서 목록(132)의 DAV 주소(502)는 소팅 기준으로 사용될 수 있다(블록 702). 병합된 목록 엔트리들이 주소에 의해 소팅될 때, 공통된 주소를 갖는 엔트리들은 잇따라 위치할 것이다. 그런 방식으로, 레지스트리 목록의 문서 엔트리를 구성 목록(117)의 대응되는 엔트리와 매칭하는 것이 더 쉽다.
MRU 동기화 엔진(110)은 레지스트리 목록의 문서의 엔트리를 구성 목록(117)의 대응되는 엔트리(즉, 엔트리 쌍)와 비교한다(블록 704). 그런 각각의 엔트리 쌍에 대해(블록 704), MRU 동기화 엔진(110)은 사용자가 구성 목록(117)에 반영되지 않은 클라이언트 머신(102)를 사용하는 동안 문서에 만들어진 더 최근의 사용에 대한 엔트리 쌍을 분석한다.
MRU 동기화 엔진(110)은 레지스트리 목록 엔트리의 마지막으로 수정된 타임스탬프(408)를 마지막으로 수정된 타임스탬프(504)와 비교한다(블록 706). 레지스트리 엔트리의 마지막으로 수정된 타임스탬프(408)가 덜 최신이면, 파일 호스팅 서버(132) 상의 문서의 마지막 사용보다 늦게 클라이언트 머신(102) 상에서 문서가 액세스되었던 것이다. 이 경우에, MRU 동기화 엔진(110)은 API 프로시져 호출을 통해 이 이벤트를 파일 호스팅 서버(106)에 통지한다(블록 706).
이에 더하여, MRU 동기화 엔진(110)은 클라이언트 머신(102)을 동작한 사용자에 의해서 문서의 핀 상태가 수정되었는지를 판단하기 위해 레지스트리 목록(109)과 구성 목록(117) 양쪽에서 문서에 대한 핀 상태 및 핀 타임스탬프를 비교한다. 만약 레지스트리 목록의 문서의 엔트리의 핀 상태(406)와 핀 타임스탬프(408)가 구성 목록(117)의 대응되는 엔트리 상의 핀 타임스탬프(508)보다 덜 최근이라면, 문서의 핀 상태는 클라이언트 머신(102)을 사용하는 동안 사용자에 의해 수정된다. MRU 동기화 엔진(110)은 API 프로시져 호출을 통해 이 상황을 파일 호스팅 서버(106)에 통지한다(블록 708). 마지막으로, 각각의 엔트리 쌍에 대해, 덜 최신의 마지막으로 수정된 타임스탬프를 가진 엔트리가 삭제된다(블록 710).
도 4로 되돌아가면, 그 후 새로운 MRU 클라이언트 문서 목록이 병합된 목록(111)로부터 생성된다(블록 312). 도 9를 참조하면, 핀 된 문서들을 병합된 목록(111)의 상단에 두도록 하기 위하여 핀 상태에 따라 병합된 목록(111)이 소팅된다(블록 802). 다음으로, 언핀된 문서들은 최신의 타임스탬프를 가진 언핀된 문서들이 더 이전의 타임스탬프를 가진 언핀된 문서들 앞에 배치되도록 하기 위하여 마지막으로 수정된 타임스탬프에 의해 소팅된다(블록 804). 그런 다음, 병합된 목록(111)은 MRU-클라이언트 문서 목록에 허용된 최대한의 엔트리만을 포함하도록 잘라낼 수 있다(블록 806). 먼저 사용된 문서들이 병합된 목록(111)의 하단에 있는 반면 더 최근에 사용된 문서들은 목록의 상단에 있다. 만약 병합된 목록(111)의 엔트리의 숫자가 MRU-클라이언트 문서 목록에 허용된 엔트리의 최대 숫자를 초과할 경우, 병합된 목록(111)은 병합된 목록(111)의 상단에서부터 최대 숫자만큼만을 취하게 된다(블록 806).
이 지점에서 병합된 목록(111)은 갱신된 MRU 클라이언트이다. 갱신된 MRU 클라이언트 문서 목록의 각각의 엔트리는 레지스트리(108)에 기입되고(블록 808) 새로운 MRU 클라이언트 문서 목록이 기존의 MRU 클라이언트 문서 목록을 대체한다(블록 810). 도 4로 되돌아가면, MRU 동기화 엔진(110)은 파일 호스팅 서버 문서에 대한 문서 폴더를 갱신된 MRU 클라이언트 문서 목록에 포함된 주소나 바로가기로 교체한다(블록 314). 이제 운영 체제에 대한 논의에 주의를 기울이기로 한다.
이제 도 10을 참조하면, 예시적인 운영 환경(920)의 도식화된 블록도가 보여진다. 운영 체제(920)는 하나 이상의 서버(들)(926)과 통신 프레임워크(924)를 통해 통신하는 하나 이상의 클라이언트(들)(922)를 포함할 수 있다. 일 실시예에서, 클라이언트(922)는 서버(926)에 저장된 문서나 데이터를 사용하도록 구성될 수 있고 클라이언트(922)는 클라이언트 머신(102)으로 구현될 수 있다. 일 실시예에서, 서버(926)는 하나 이상의 클라이언트로부터 거기에 저장된 문서들이나 데이터에 액세스하려는 요청을 수신할 수 있다. 일 실시예에서, 서버(926)는 파일 호스팅 서버(106)로서 구현될 수 있다.
클라이언트(922)는 하드웨어 장치, 소프트웨어 모듈 또는 이들의 조합으로 구현될 수 있다. 그러한 하드웨어 장치의 예로는, 컴퓨터(예컨대, 서버, 개인용 컴퓨터, 랩탑 등), 셀룰러폰, 개인용 정보 단말기(personal digital assistant), 또는 임의의 종류의 컴퓨터 장치 등을 포함하며, 이에 제한되지 않는다. 클라이언트(922)는 또한 단일 실행 경로, 복수 동시 실행 경로(예컨대, 쓰레드, 프로세스 등) 또는 임의의 다른 방식으로 실행되는 명령어들을 가진 소프트웨어 모듈로서 구현될 수 있다.
서버(926)는 하드웨어 장치, 소프트웨어 모듈, 또는 이들의 조합으로 구현될 수 있다. 그런 하드웨어 장치들의 예로는, 컴퓨터(예컨대, 서버, 개인용 컴퓨터, 랩탑 등), 셀룰러폰, 개인용 정보 단말기(personal digital assistant), 또는 임의의 종류의 컴퓨터 장치 등을 포함하며, 이에 제한되지 않는다. 서버(926)는 또한 단일 실행 경로, 복수 동시 실행 경로(예컨대, 쓰레드, 프로세스 등) 또는 임의의 다른 방식으로 실행되는 명령어들을 가진 소프트웨어 모듈로서 구현될 수 있다.
통신 프레임워크(924)는 클라이언트(922)와 서버(926) 간의 통신을 용이하게 한다. 통신 프레임워크(924)는 통신 프로토콜을 활용하는 유선 또는 무선과 같은 임의의 유형의 통신 매체를 포함할 수 있다.
도 11을 참조하면, 클라이언트 머신(102)은 프로세서(934), 메모리(936) 및 네트워크 인터페이스(938)를 가진다. 프로세서(934)는 임의의 상업적으로 사용가능한 프로세서일 수 있고 듀얼 마이크로프로세서와 멀티-프로세서 아키텍쳐를 포함할 수 있다. 네트워크 인터페이스(938)는 클라이언트 머신(102)과 파일 호스팅 서버(106) 간의 통신 경로를 제공하기 위해 클라이언트 머신(102)과 통신 네트워크(104) 간의 유무선 통신들을 용이하게 한다.
메모리(936)는 프로세서에서 실행가능한 명령어, 절차, 애플리케이션 및 데이터를 저장하는 임의의 컴퓨터 판독가능 저장 매체 또는 컴퓨터 판독가능 매체일 수 있다. 컴퓨터 판독가능 매체는 반송파를 통해 전송되는 모듈화된 데이터 신호와 같은 전파된 신호에 속하지 않는다. 메모리는 임의의 유형의 메모리 장치(예컨대, 랜덤 액세스 메모리, 판독 전용 메모리 등), 자기 저장장치, 휘발성 저장장치, 비휘발성 저장장치, 광학 저장장치, DVD, CD, 플로피 드라이브, 디스크 드라이브, 플래시 메모리 등일 수 있다. 메모리(936)는 또한 하나 이상의 외장 저장장치나 원격에 위치한 저장 장치를 포함할 수 있다. 메모리(936)는 아래와 같은 명령어 및 데이터를 포함할 수 있다:
ㆍ운영 체제(940)
ㆍ레지스트리(108)
ㆍMRU 동기화 엔진(110)
ㆍMRU-클라이언트 문서 목록(112)
ㆍ문서 폴더(114)
ㆍ레지스트리 목록(109)
ㆍ병합된 목록(111) 및
ㆍ다양한 다른 애플리케이션들과 데이터(944)
도 12를 참조하면, 파일 호스팅 서버(106)는 프로세서(954), 메모리(956) 및 네트워크 인터페이스(958)를 포함할 수 있다. 프로세서(954)는 임의의 상업적으로 사용가능한 프로세서일 수 있고 듀얼 마이크로프로세서와 멀티-프로세서 아키텍쳐를 포함할 수 있다. 네트워크 인터페이스(958)는 클라이언트 머신(102)와 파일 호스팅 서버(106) 간의 통신 경로를 제공하기 위해 파일 호스팅 서버(106)와 통신 네트워크(104) 간의 유무선 통신들을 용이하게 한다.
메모리(956)는 프로세서에서 실행가능한 명령어, 절차, 애플리케이션 및 데이터를 저장하는 임의의 컴퓨터 판독가능 저장 매체 또는 컴퓨터 판독가능 매체일 수 있다. 컴퓨터 판독가능 매체는 반송파를 통해 전송되는 모듈화된 데이터 신호와 같은 전파된 신호에 속하지 않는다. 메모리는 임의의 유형의 메모리 장치(예컨대, 랜덤 액세스 메모리, 판독 전용 메모리 등), 자기 저장장치, 휘발성 저장장치, 비휘발성 저장장치, 광학 저장장치, DVD, CD, 플로피 드라이브, 디스크 드라이브, 플래시 메모리 등일 수 있다. 메모리(956)는 또한 하나 이상의 외장 저장장치나 원격에 위치한 저장 장치를 포함할 수 있다. 메모리(956)는 아래와 같은 명령어 및 데이터를 포함할 수 있다:
ㆍ운영 체제(960)
ㆍMRU API 핸들러 프로시져(116)
ㆍ문서(120) 및 MRU-서버 문서 목록(132)을 포함하는 파일 시스템(964)
ㆍ구성 목록(117) 및
ㆍ다른 애플리케이션 및 데이터(972)
비록 청구 대상이 구조적 특징 및/또는 방법적 행동에 특정된 언어로서 기술되었지만, 첨부된 청구범위에서 정의된 청구대상은 상술한 특정 특징 또는 행동에 필수적으로 제한되는 것이 아님을 이해하여야 한다. 오히려, 상술한 특정 특징 및 행동은 청구범위를 구현하는 예시적인 형태로서 개시된 것이다.
예를 들어, 시스템(100)의 다양한 실시예들이 하드웨어 요소, 소프트웨어 요소 및 둘 다의 결합으로 구현될 수 있다. 하드웨어 요소의 예로는 장치, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 회로 요소, 집적 회로, 애플리케이션 특화 집적 회로, 프로그래머블 논리 장치, 디지털 신호 프로세서, 필드 프로그래머블 게이트 어레이(FPGA), 메모리 유닛, 논리 게이트 등을 포함할 수 있다. 소프트웨어 요소의 예로는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그래밍 인터페이스, 명령어 집합, 컴퓨팅 코드, 코드 세그먼트, 및 이들의 임의의 결합을 포함할 수 있다. 어떤 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지 여부의 판단은 주어진 구현에 대해 원하는 대로 원하는 계산률, 전력 수준, 대역폭, 계산 시간, 로드 밸런스, 메모리 자원, 데이터 버스 스피드 및 다른 디자인 또는 수행 제한들과 같은 임의의 숫자의 팩터들에 따라 변할 수 있다.
일부 실시예들은 명령어나 논리를 저장하기 위한 저장 매체를 포함할 수 있다. 저장 매체의 예로는 휘발성 메모리 또는 비휘발성 메모리, 이동식 또는 고정식 메모리, 삭제가능 또는 삭제불가능한 메모리, 기록가능 혹은 재-기록가능 메모리 등을 포함하는 전기적 데이터를 저장할 수 있는 하나 이상의 유형의 컴퓨터 판독가능 저장매체를 포함한다. 논리의 예로는 프로그램, 프로시져, 모듈, 애플리케이션, 코드 세그먼트, 프로그래매 스택, 미들웨어, 펌웨어, 메소드, 루틴 등과 같은 다양한 소프트웨어 컴포넌트들을 포함할 수 있다. 예를 들어 일 실시예에서, 컴퓨터 판독가능 저장 매체가 프로세서에 의해 실행될 경우, 프로세서로 하여금 설명된 실시예들에 따른 방법 및/또는 동작을 수행하도록 하는 실행가능한 컴퓨터 프로그램 명령어들 저장할 수 있다. 실행가능한 컴퓨터 프로그램 명령어들은 컴퓨터로 하여금 몇몇 동작을 수행하기 위한 미리 정의된 컴퓨터 언어, 방식 또는 문법에 따라 구현될 수 있다. 명령어들은 임의의 적절한 고레벨, 저레벨, 객체 지향, 비주얼, 컴파일된 및/또는 해석된 프로그래밍 언어를 사용하여 구현될 수 있다.
다양한 실시예에서, 본 명세서에 설명된 시스템은 복수의 컴포넌트, 프로그램, 프로시저, 모듈을 갖는 컴퓨터로 구현되는 시스템을 포함한다. 본 명세서에서 사용되는 것과 같이 이 용어들은 컴퓨터가 관련된 개체들을 지칭하려고 의도되며, 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어를 포함한다. 예를 들어, 컴포넌트는 프로세서, 하드 디스크 드라이브, (광학 및/또는 자기 저장 매체의) 복수의 저장 드라이브, 객체, 실행가능(executable), 실행, 프로그램 및/또는 컴퓨터의 실행의 쓰레드 상에서 실행되는 프로세스로 구현될 수 있다. 예로서 서버 상에서 실행되는 애플리케이션과 서버가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행의 쓰레드 내에 존재할 수 있고, 컴포넌트는 주어진 구현에서 원하는 대로 하나의 컴퓨터에 로컬화되거나 및/또는 둘 이상의 컴퓨터에 분산될 수 있다. 실시예들은 이 방식으로 제한되지 않는다.

Claims (20)

  1. 시스템으로서,
    적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서에 접속된 적어도 하나의 메모리와,
    적어도 하나의 모듈
    을 포함하고,
    상기 적어도 하나의 모듈은, 상기 메모리에 로딩될 때 상기 적어도 하나의 프로세서로 하여금,
    클라이언트 머신으로부터 사용자가 액세스하는 복수의 사용자 문서와 관계된 구성 데이터를 포함하는 레지스트리 목록을 획득하게 하고,
    원격 파일 호스팅 서버에 저장된 구성 목록에 대한 요청을 송신하게 하며 - 상기 구성 목록은 상기 사용자의 가장 최근에 사용된(most recently used, MRU) 서버 문서와 관계된 구성 데이터를 포함함 - ,
    상기 구성 목록에 대한 상기 요청을 송신하는 것에 응답해서, 상기 클라이언트 머신에서 상기 구성 목록을 수신하게 하고,
    상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 병합된 목록을 상기 레지스트리 목록의 주소 필드 및 상기 구성 목록의 주소에 의해 소팅해서 - 상기 구성 목록의 상기 주소는 상기 파일 호스팅 서버 상의 고유한 식별자임 - , 상기 레지스트리 목록으로부터의 문서 엔트리 및 상기 구성 목록으로부터의 대응하는 문서 엔트리를 포함하는 문서 엔트리 쌍을 생성하게 하며,
    상기 소팅된 병합된 목록 내의 각각의 문서 엔트리 쌍에 대해서, 상기 레지스트리 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를, 상기 구성 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를 비교해서, 상기 레지스트리 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 상기 클라이언트 머신으로부터 상기 사용자에 의해 수정되었는지 판정하게 하고,
    상기 레지스트리 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 상기 클라이언트 머신으로부터 상기 사용자에 의해 수정되었다고 판정되면, 상기 원격 파일 호스팅 서버에 핀 상태 수정 통지를 송신하게 하며,
    상기 소팅된 병합된 목록으로부터, 상기 사용자의 가장 최근에 사용된 문서에 대한 링크의 폴더를 포함하는 MRU 클라이언트 문서 목록을 형성하게 하는
    시스템.
  2. 제 1 항에 있어서,
    상기 메모리에 로딩될 때 상기 적어도 하나의 프로세서로 하여금,
    상기 MRU 클라이언트 문서 목록을 갱신하기 이전에, 마지막 수정된 타임스탬프 상에서 상기 소팅된 병합된 목록에서 핀되지 않은(non-pinned) 엔트리를 소팅하게 하는 모듈
    을 더 포함하는
    시스템.
  3. 제 2 항에 있어서,
    상기 모듈은, 상기 적어도 하나의 프로세서로 하여금,
    상기 소팅된 병합된 목록을 임계수의 엔트리까지 감소하게 하는
    시스템.
  4. 제 1 항에 있어서,
    상기 메모리에 로딩될 때 상기 적어도 하나의 프로세서로 하여금,
    상기 원격 파일 호스팅 서버에, 상기 구성 목록에 열거된 사용자 문서에 대해서 상기 클라이언트 머신으로부터 행해진 갱신을 통지하게 하는 모듈
    을 더 포함하는
    시스템.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 모듈은 상기 적어도 하나의 프로세서로 하여금, 상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 적어도 하나의 프로세서로 하여금 또한,
    상기 레지스트리 목록 내의 엔트리를 상기 구성 목록 내의 대응하는 엔트리와 매칭하게 하고,
    상기 엔트리가 상기 구성 목록으로부터 삭제되었고 상기 클라이언트 머신에서 다시 열렸다(reopened)는 것을 식별하게 하며,
    상기 파일 호스팅 서버에 상기 엔트리와 관련된 상기 사용자 문서를 통지하게 하는
    시스템.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 모듈은 상기 적어도 하나의 프로세서로 하여금, 상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 적어도 하나의 프로세서로 하여금 또한,
    상기 레지스트리 목록 내의 엔트리를 상기 구성 목록 내의 대응하는 엔트리와 매칭하게 하고,
    상기 엔트리가 상기 클라이언트 머신에서 다시 핀되었다(repinned)고 판정하게 하며,
    상기 파일 호스팅 서버에 상기 엔트리와 관련된 상기 사용자 문서를 통지하게 하는
    시스템.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 모듈은 상기 적어도 하나의 프로세서로 하여금, 상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 적어도 하나의 프로세서로 하여금 또한,
    상기 레지스트리 목록 내의 엔트리를 상기 구성 목록 내의 대응하는 엔트리와 매칭하게 하고,
    상기 엔트리가 상기 클라이언트 머신에서 수정되었다고 판정하게 하며,
    상기 파일 호스팅 서버에 상기 엔트리와 관련된 상기 사용자 문서를 통지하게 하는
    시스템.
  8. 제 1 항에 있어서,
    상기 메모리에 로딩될 때 상기 적어도 하나의 프로세서로 하여금,
    상기 MRU 클라이언트 문서 목록을 소정의 시간 간격으로 갱신하게 하는 모듈
    을 더 포함하는
    시스템.
  9. 제 1 항에 있어서,
    상기 메모리에 로딩될 때 상기 적어도 하나의 프로세서로 하여금,
    상기 원격 파일 호스팅 서버로부터 상기 구성 목록을 수신했을 때 상기 MRU 클라이언트 문서 목록을 갱신하게 하는 모듈
    을 더 포함하는
    시스템.
  10. 제 1 항에 있어서,
    상기 적어도 하나의 모듈은 상기 적어도 하나의 프로세서로 하여금, 상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 적어도 하나의 프로세서로 하여금 또한,
    상기 레지스트리 목록 내의 엔트리를 상기 구성 목록 내의 대응하는 엔트리와 매칭하게 하고,
    상기 레지스트리 목록 내의 상기 엔트리가 더 최근의 타임스탬프를 갖는다고 판정하게 하며,
    상기 파일 호스팅 서버에 상기 더 최근의 타임스탬프를 가진 엔트리를 통지하게 하는
    시스템.
  11. 제 1 항에 있어서,
    상기 적어도 하나의 모듈은 상기 적어도 하나의 프로세서로 하여금, 상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하게 하고,
    상기 적어도 하나의 프로세서로 하여금 또한,
    상기 레지스트리 목록 내의 엔트리를 상기 구성 목록 내의 대응하는 엔트리와 매칭하게 하고,
    상기 레지스트리 목록 내의 상기 엔트리가 상기 구성 목록 내의 대응하는 엔트리와는 다른 핀 상태(pin state) 및 상기 구성 목록 내의 상기 대응하는 엔트리보다 더 최근의 핀 타임스탬프를 갖는다고 판정하게 하며,
    상기 파일 호스팅 서버에 상기 엔트리의 상기 더 최근의 타임스탬프 및 핀 상태를 통지하게 하는
    시스템.
  12. 방법으로서,
    클라이언트 머신으로부터 사용자가 액세스하는 복수의 사용자 문서와 관계된 구성 데이터를 포함하는 레지스트리 목록을 획득하는 단계와,
    원격 파일 호스팅 서버에 저장된 구성 목록에 대한 요청을 송신하는 단계 - 상기 구성 목록은 상기 사용자의 가장 최근에 사용된(MRU) 서버 문서와 관계된 구성 데이터를 포함함 - ,
    상기 구성 목록에 대한 상기 요청을 송신하는 것에 응답해서, 상기 클라이언트 머신에서 상기 구성 목록을 수신하는 단계와,
    상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하는 단계와,
    상기 병합된 목록을 상기 레지스트리 목록의 주소 필드 및 상기 구성 목록의 주소에 의해 소팅해서 - 상기 구성 목록의 상기 주소는 상기 파일 호스팅 서버 상의 고유한 식별자임 - , 상기 레지스트리 목록으로부터의 문서 엔트리 및 상기 구성 목록으로부터의 대응하는 문서 엔트리를 포함하는 문서 엔트리 쌍을 생성하는 단계와,
    상기 소팅된 병합된 목록 내의 각각의 문서 엔트리 쌍에 대해서, 상기 레지스트리 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를, 상기 구성 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를 비교해서, 상기 레지스트리 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 상기 클라이언트 머신으로부터 상기 사용자에 의해 수정되었는지 판정하는 단계와,
    상기 레지스트리 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 상기 클라이언트 머신으로부터 상기 사용자에 의해 수정되었다고 판정되면, 상기 원격 파일 호스팅 서버에 핀 상태 수정 통지를 송신하는 단계와
    상기 소팅된 병합된 목록으로부터, 상기 사용자의 가장 최근에 사용된 문서에 대한 링크의 폴더를 포함하는 MRU 클라이언트 문서 목록을 형성하는 단계
    를 포함하고,
    상기 폴더는 파일 시스템 구조인
    방법.
  13. 제 12 항에 있어서,
    엔트리의 제 1 그룹은 핀 상태를 포함하고, 엔트리의 제 2 그룹은 핀 상태를 포함하지 않는
    방법.
  14. 제 12 항에 있어서,
    상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하는 단계는,
    상기 레지스트리 목록 내의 사용자 목록을 상기 구성 목록 내의 대응하는 엔트리와 매칭시키는 단계와,
    상기 원격 파일 호스팅 서버에, 상기 구성 목록과는 다른 상기 레지스트리 목록 내의 사용자 문서에 대해서 행해진 갱신을 통지하는 단계
    를 포함하는
    방법.
  15. 제 12 항에 있어서,
    상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하는 단계 이전에, 상기 원격 파일 호스팅 서버에, 상기 클라이언트 머신에서 핀되거나 혹은 다시 열린 사용자 문서를 통지하는 단계
    를 더 포함하는
    방법.
  16. 제 12 항에 있어서,
    상기 레지스트리 목록을 상기 구성 목록과 결합해서 병합된 목록을 생성하는 단계 이후에,
    상기 레지스트리 목록 내의 사용자 목록을 상기 구성 목록 내의 대응하는 엔트리와 매칭시키는 단계와,
    상기 레지스트리 목록 및 상기 구성 목록으로부터, 상기 클라이언트 머신에서 상기 사용자 문서가 열렸거나, 수정되었거나 혹은 최근 핀되었다는 것을 식별하는 단계와,
    상기 원격 파일 호스팅 서버에 통지하는 단계
    를 더 포함하는
    방법.
  17. 적어도 하나의 프로세서와,
    메모리
    를 포함하고,
    상기 메모리는,
    사용자가 액세스하는 사용자 문서의 제 1 목록과,
    원격 파일 호스팅 서버에 저장된 상기 사용자의 가장 최근에 사용된(MRU) 사용자 문서를 나타내는 사용자 문서의 제 2 목록과,
    프로세서 실행 가능 명령어를 포함하는 MRU 동기화 엔진
    을 포함하고,
    상기 명령어는, 적어도 하나의 프로세서에서 실행될 때,
    상기 제 1 목록 및 상기 제 2 목록으로부터 사용자 문서의 병합된 목록을 생성하고,
    상기 병합된 목록을 상기 제 1 목록의 주소 필드 및 상기 제 2 목록의 주소에 의해 소팅해서 - 상기 제 2 목록의 상기 주소는 상기 파일 호스팅 서버 상의 고유한 식별자임 - , 상기 제 1 목록으로부터의 문서 엔트리 및 상기 제 2 목록으로부터의 대응하는 문서 엔트리를 포함하는 문서 엔트리 쌍을 생성하며,
    상기 소팅된 병합된 목록 내의 각각의 문서 엔트리 쌍에 대해서, 상기 제 1 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를, 상기 제 2 목록으로부터의 상기 문서 엔트리의 핀 상태 및 핀 타임스탬프를 비교해서, 상기 제 1 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 클라이언트 머신으로부터 상기 사용자에 의해 수정되었는지 판정하고,
    상기 제 1 목록으로부터의 상기 문서 엔트리의 상기 핀 상태가 상기 클라이언트 머신으로부터 상기 사용자에 의해 수정되었다고 판정되면, 상기 원격 파일 호스팅 서버에 핀 상태 수정 통지를 송신하며,
    상기 소팅된 병합된 목록으로부터 사용자 문서의 MRU 목록을 생성함으로써,
    상기 클라이언트 머신 및 상기 원격 파일 호스팅 서버로부터 상기 사용자 문서의 MRU 목록을 생성하게 하는
    시스템.
  18. 제 17 항에 있어서,
    상기 MRU 동기화 엔진은, 더 최근에 액세스되었거나 혹은 다시 핀되었지만 상기 제 2 목록에는 포함되지 않은, 상기 제 1 목록 내의 사용자 문서를, 상기 원격 파일 호스팅 서버로 통지하는
    시스템.
  19. 제 17 항에 있어서,
    상기 MRU 동기화 엔진은, 더 최근에 액세스되거나, 수정되거나 혹은 핀된, 상기 병합된 목록 내의 사용자 문서를, 상기 원격 파일 호스팅 서버로 통지하는
    시스템.
  20. 제 17 항에 있어서,
    상기 병합된 목록을 상기 제 1 목록의 주소 필드 및 상기 제 2 목록의 주소에 의해 소팅하는 것은,
    마지막으로 수정된 타임스탬프에 의해 핀 되지 않은 사용자 문서를 소팅하는 것을 포함하는
    시스템.
KR1020137033840A 2011-06-20 2012-06-13 가장 최근에 사용된 문서 목록들의 자동 동기화 기법 KR101963917B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/163,742 US9501490B2 (en) 2011-06-20 2011-06-20 Automatic synchronization of most recently used document lists
US13/163,742 2011-06-20
PCT/US2012/042108 WO2012177446A2 (en) 2011-06-20 2012-06-13 Automatic synchronization of most recently used document lists

Publications (2)

Publication Number Publication Date
KR20140038991A KR20140038991A (ko) 2014-03-31
KR101963917B1 true KR101963917B1 (ko) 2019-03-29

Family

ID=47354569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033840A KR101963917B1 (ko) 2011-06-20 2012-06-13 가장 최근에 사용된 문서 목록들의 자동 동기화 기법

Country Status (6)

Country Link
US (1) US9501490B2 (ko)
EP (1) EP2727014B1 (ko)
JP (1) JP6050343B2 (ko)
KR (1) KR101963917B1 (ko)
CN (1) CN103649945B (ko)
WO (1) WO2012177446A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365882A (zh) * 2012-03-30 2013-10-23 网秦无限(北京)科技有限公司 一种移动终端上垃圾文件清理的方法和系统
CN103369003A (zh) * 2012-03-30 2013-10-23 网秦无限(北京)科技有限公司 一种利用云计算扫描移动设备的冗余文件的方法和系统
US9170701B2 (en) * 2012-04-04 2015-10-27 Sap Portals Israel Ltd Suggesting contextually-relevant content objects
CN104424162A (zh) * 2013-08-21 2015-03-18 鸿合科技有限公司 一种生成最近使用的文档记录的方法及装置
US9235328B1 (en) * 2014-09-23 2016-01-12 Allscripts Software, Llc Big data selector system and method
US9832149B2 (en) 2014-09-30 2017-11-28 Microsoft Technology Licensing, Llc Treatment of cloud-based and local attachments in communication applications
US9141709B1 (en) 2014-11-20 2015-09-22 Microsoft Technology Licensing, Llc Relevant file identification using automated queries to disparate data storage locations
CN104462296B (zh) * 2014-11-28 2020-12-04 小米科技有限责任公司 文件的管理方法、装置及终端
CN105824827A (zh) * 2015-01-06 2016-08-03 阿里巴巴集团控股有限公司 一种文件路径的存储和本地文件的访问方法及装置
JP6217669B2 (ja) * 2015-02-27 2017-10-25 コニカミノルタ株式会社 プリンタードライバープログラム
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN110018761B (zh) * 2018-01-10 2022-02-25 腾讯科技(深圳)有限公司 对最近使用文件进行管理的方法、装置及终端
CN108228894B (zh) * 2018-02-05 2023-07-04 腾讯科技(深圳)有限公司 查看最近使用文件的方法、装置及终端
US11829723B2 (en) 2019-10-17 2023-11-28 Microsoft Technology Licensing, Llc System for predicting document reuse
WO2022164547A1 (en) 2021-01-26 2022-08-04 Microsoft Technology Licensing, Llc Collaborative content recommendation platform
US11790165B2 (en) 2021-01-26 2023-10-17 Microsoft Technology Licensing, Llc Content element recommendation system
US11947993B2 (en) * 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs
CN115129677B (zh) * 2022-08-30 2022-11-22 睿云奇智(青岛)科技有限公司 一种算子文档的同步方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149459A (ja) 2000-11-10 2002-05-24 Mitsubishi Electric Corp 冗長化データベース管理・検索システム
US20050177580A1 (en) 2004-02-11 2005-08-11 Hilbert David M. System and method for customized document selection
US20050192966A1 (en) 2004-03-01 2005-09-01 Hilbert David M. Remote file management
US20060112150A1 (en) 2001-03-16 2006-05-25 Brown David K Server for synchronization of files
US20080059454A1 (en) 2006-08-29 2008-03-06 Switchbook, Inc. Search document generation and use to provide recommendations
US20090144283A1 (en) 2007-11-30 2009-06-04 Clark Bryan William Systems and methods for generating file usage information
US20110010379A1 (en) 2009-07-09 2011-01-13 Xeround Systems Ltd. Database system with query interception and redirection

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3584540B2 (ja) 1995-04-20 2004-11-04 富士ゼロックス株式会社 文書複写関係管理システム
JP3648051B2 (ja) * 1998-02-02 2005-05-18 富士通株式会社 関連情報検索装置及びプログラム記録媒体
US7587411B2 (en) * 2003-03-27 2009-09-08 Microsoft Corporation System and method for filtering and organizing items based on common elements
US20050165935A1 (en) 2004-01-22 2005-07-28 Moody Paul B. Method and system for providing information regarding recently accessed documents of a remote user through an awareness client program
US20050278280A1 (en) * 2004-05-28 2005-12-15 Semerdzhiev Krasimir P Self update mechanism for update module
US7340686B2 (en) * 2005-03-22 2008-03-04 Microsoft Corporation Operating system program launch menu search
US8645376B2 (en) 2008-05-02 2014-02-04 Salesforce.Com, Inc. Method and system for managing recent data in a mobile device linked to an on-demand service
US20080005685A1 (en) 2006-06-30 2008-01-03 Clemens Drews Interface mechanism for quickly accessing recently used artifacts in a computer desktop environment
US8738651B2 (en) * 2008-03-06 2014-05-27 Lenovo (Singapore) Pte Ltd Techniques for updating a relevant document list associated with a software application within a computer system
US9710443B2 (en) 2008-07-21 2017-07-18 Oracle International Corporation Simplifying access to documents accessed recently in a remote system
WO2010081742A1 (en) 2009-01-19 2010-07-22 University College Dublin, National Univerity Of Ireland, Dublin Method and system for analysing most recently used (mru) registry keys
KR101672454B1 (ko) * 2009-10-30 2016-11-04 삼성전자 주식회사 컨텐트 이용 이력에 기반한 네트워크 컨텐트 서비스 관리 방법 및 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149459A (ja) 2000-11-10 2002-05-24 Mitsubishi Electric Corp 冗長化データベース管理・検索システム
US20060112150A1 (en) 2001-03-16 2006-05-25 Brown David K Server for synchronization of files
US20050177580A1 (en) 2004-02-11 2005-08-11 Hilbert David M. System and method for customized document selection
US20050192966A1 (en) 2004-03-01 2005-09-01 Hilbert David M. Remote file management
US20080059454A1 (en) 2006-08-29 2008-03-06 Switchbook, Inc. Search document generation and use to provide recommendations
US20090144283A1 (en) 2007-11-30 2009-06-04 Clark Bryan William Systems and methods for generating file usage information
US20110010379A1 (en) 2009-07-09 2011-01-13 Xeround Systems Ltd. Database system with query interception and redirection

Also Published As

Publication number Publication date
US9501490B2 (en) 2016-11-22
EP2727014A4 (en) 2015-06-03
WO2012177446A3 (en) 2013-02-28
JP6050343B2 (ja) 2016-12-21
JP2014523577A (ja) 2014-09-11
EP2727014B1 (en) 2022-02-23
EP2727014A2 (en) 2014-05-07
CN103649945B (zh) 2017-04-12
WO2012177446A2 (en) 2012-12-27
CN103649945A (zh) 2014-03-19
US20120323935A1 (en) 2012-12-20
KR20140038991A (ko) 2014-03-31

Similar Documents

Publication Publication Date Title
KR101963917B1 (ko) 가장 최근에 사용된 문서 목록들의 자동 동기화 기법
AU2021203706B2 (en) Updating a local tree for a client synchronization service
US9787706B1 (en) Modular architecture for analysis database
US11212175B2 (en) Configuration management for cloud storage system and method
US20170139909A1 (en) Value-based differential data
US10747643B2 (en) System for debugging a client synchronization service
US8812612B1 (en) Versioned coalescer
US10970193B2 (en) Debugging a client synchronization service
US20200341956A1 (en) Processing time series metrics data
US10606805B2 (en) Object-level image query and retrieval
US10437813B2 (en) Self-healing of layer metadata within a layering system
US20150089018A1 (en) Centralized management of webservice resources in an enterprise
US9418097B1 (en) Listener event consistency points
US20160182605A1 (en) Dynamic Content Aggregation
US20170091253A1 (en) Interrupted synchronization detection and recovery
US11409716B2 (en) File conflict detection

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant