KR20120090794A - 저장할 필요없는 문서 - Google Patents

저장할 필요없는 문서 Download PDF

Info

Publication number
KR20120090794A
KR20120090794A KR1020120004463A KR20120004463A KR20120090794A KR 20120090794 A KR20120090794 A KR 20120090794A KR 1020120004463 A KR1020120004463 A KR 1020120004463A KR 20120004463 A KR20120004463 A KR 20120004463A KR 20120090794 A KR20120090794 A KR 20120090794A
Authority
KR
South Korea
Prior art keywords
document
version
previous version
user interface
content
Prior art date
Application number
KR1020120004463A
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 KR20120090794A publication Critical patent/KR20120090794A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)

Abstract

저장할 필요없는 문서가 개시된다. 일부 구현에 따르면, 하나의 방법은, 컴퓨팅 디바이스의 제1 사용자 인터페이스에 문서의 현재 버전을 디스플레이하는 단계, 문서의 이전에 저장된 버전들을 디스플레이하라는 명령어를 수신하는 단계, 및 명령어의 수신에 응답하여, 제2 사용자 인터페이스의 제1 부분에는 현재 버전이 디스플레이되고, 제2 사용자 인터페이스의 제2 부분에서 문서의 이전 버전들의 시퀀스에는 문서의 특정한 이전 버전이 디스플레이되는 제2 사용자 인터페이스를 디스플레이하는 단계를 포함할 수 있다. 방법들은 문서들을 자동으로 저장하고 문서들의 버전들을 자동으로 작성하는 단계를 포함할 수 있다. 하나의 방법은 디스플레이 상에 문서들의 레이아웃을 자동으로 복구하는 단계를 포함할 수 있다. 상기 방법들을 수행하기 위한 컴퓨터-판독가능 저장 매체 및 시스템 또한 개시된다.

Description

저장할 필요없는 문서{SAVELESS DOCUMENTS}
본 출원은, 발명의 명칭이 "저장할 필요없는 문서(Saveless Documents)"이고, 2011년 1월 14일자로 제출되었으며, 그 전체 내용이 여기에 참고로 포함된, 미국 가 출원 일련 번호 61/433,182에 대한 우선권을 주장한다.
본 개시물은 전반적으로 문서 관리에 관한 것이다.
종래의 컴퓨팅 시스템은 사용자가 여러 가지 문서를 작성 및 편집하는 것을 허용한다. 예를 들어, 워드 프로세싱 응용 프로그램은 사용자가 텍스트 문서를 작성 및 편집하는 것을 허용한다. 이미지 편집 응용 프로그램은 사용자가 이미지 문서를 작성 및 편집하는 것을 허용한다. 스프레드시트 응용 프로그램은 사용자가 스프레드시트 문서를 작성하고 편집하는 것을 허용한다. 그러나, 사용자가 충분히 빈번하게 혹은 적절한 시간에 문서를 저장하지 않을 수 있다. 따라서, 예를 들어 컴퓨팅 시스템에 의해 문서가 예기치 않게 닫힌 경우, 문서에 대한 편집 내용 혹은 변경 사항이 손실될 수 있다.
저장할 필요없는 문서가 개시된다. 일부 구현에 따르면, 하나의 방법은, 컴퓨팅 디바이스의 제1 사용자 인터페이스에 문서의 현재 버전을 디스플레이하는 단계, 문서의 이전에 저장된 버전들을 디스플레이하라는 지시를 수신하는 단계, 및 지시의 수신에 응답하여, 제2 사용자 인터페이스의 제1 부분에는 현재 버전이 디스플레이되고, 제2 사용자 인터페이스의 제2 부분에는 문서의 이전 버전들의 시퀀스 중에서 문서의 특정한 이전 버전이 디스플레이되는, 제2 사용자 인터페이스를 디스플레이하는 단계를 포함할 수 있다. 상기 방법은 문서의 특정한 이전 버전에서의 내용(content)의 선택을 수신하는 단계, 선택된 내용을 복사하는 단계 및 선택된 내용을 문서의 현재 버전에 붙여 넣는 단계를 포함할 수 있다.
일부 구현에 따르면, 상기 방법은 제2 사용자 인터페이스의 제1 부분에 현재 버전의 내용을 디스플레이하는 단계 및 제2 사용자 인터페이스의 제2 부분에 특정한 이전 버전의 내용을 디스플레이하는 단계를 포함할 수 있다. 상기 방법은 특정한 이전 버전의 내용을 스크롤하는 단계 및 내용을 스크롤하는 동안 특정한 이전 버전의 내용을 디스플레이하는 단계를 포함할 수 있다.
일부 구현에 따르면, 상기 방법은 문서의 현재 버전을 특정한 이전 버전으로 교체하라는 지시를 수신하는 단계, 그 명령어에 응답하여, 문서의 특정한 이전 버전을 복사하는 단계, 현재 버전을 이전 버전으로서 마크하는 단계, 및 특정한 이전 버전의 사본(copy)을 현재 버전으로서 저장하는 단계를 포함할 수 있다. 상기 방법은 특정한 문서가 디스플레이될 때까지 문서의 이전 버전들의 시퀀스를 스크롤하는 단계를 포함할 수 있다. 상기 방법은, 문서의 이전 버전들의 시퀀스가 제2 사용자 인터페이스의 제2 부분에 디스플레이되는 동안 문서의 이전 버전의 시퀀스에 문서의 새로운 이전 버전을 추가하는 단계, 및 디스플레이된 문서의 이전 버전의 시퀀스에 새로운 이전 버전을 디스플레이하는 단계를 포함할 수 있다.
일부 구현에 따르면, 하나의 방법은 문서와 연관된 버저닝 이벤트(versioning event)를 컴퓨팅 디바이스에서 검출하는 단계, 버저닝 이벤트의 검출에 응답하여, 문서를 복사하는 단계, 및 그 사본을 문서의 이전 버전으로서 지속적으로(persistently) 저장하는 단계를 포함할 수 있다. 일부 구현에 따르면, 버저닝 이벤트는 문서의 버전을 작성하라는 사용자로부터의 명시적 지시(explicit indication)와 연관되지 않는다. 버저닝 이벤트는 문서 열기, 문서 닫기, 문서를 이메일로 보내기, 문서 인쇄, 문서 삭제, 문서에 대한 사용자 입력의 긴 일시 정지(long pause), 또는 잠긴 문서를 편집하려는 시도일 수 있다. 상기 방법은 버저닝 이벤트를 나타내는 이전 버전에 대한 라벨을 생성하는 단계 및 그 라벨을 문서의 이전 버전과 연관시키는 단계를 포함할 수 있다.
일부 구현에 따르면, 하나의 방법은 문서와 연관된 저장 이벤트를 컴퓨팅 디바이스에서 검출하는 단계, 및 저장 이벤트의 검출에 응답하여, 문서를 저장하는 단계를 포함할 수 있다. 일부 구현에 따르면, 저장 이벤트는 문서를 저장하라는 사용자로부터의 명시적 지시와 연관되지 않는다. 저장 이벤트는 경과된 시간 간격, 사용자 입력에 있어서의 일시 정지, 포커스를 그 문서에서 떠나도록 이동, 문서 닫기, 문서 인쇄, 문서에 내용을 붙여넣기, 문서로부터 내용 삭제, 또는 문서 포맷일 수 있다.
일부 구현에 따르면, 하나의 방법은 컴퓨팅 디바이스의 디스플레이 상의 하나 이상의 대응 위치에 하나 이상의 문서를 디스플레이하는 단계, 및 하나 이상의 문서에 대응하는 하나 이상의 식별자 및 하나 이상의 대응 위치를 포함하는 문서 레이아웃 정보를 저장하는 단계를 포함할 수 있다.
하나의 방법은 또한 컴퓨팅 디바이스 상에 디스플레이된 하나 이상의 문서의 비정상적인 닫힘을 검출하는 단계, 하나 이상의 문서에 대응하는 하나 이상의 식별자와 하나 이상의 문서에 대한 하나 이상의 위치를 포함하는 문서 레이아웃 정보를 획득하는 단계, 및 문서 레이아웃 정보에 따라 하나 이상의 문서를 디스플레이하는 단계를 포함할 수 있다.
상기 방법들을 수행하기 위한 명령어들을 저장하는 비-일시적(non-transitory) 컴퓨터-판독가능 매체 및 상기 방법들을 수행하도록 구성된 시스템 또한 개시된다.
여기 기재된 대상(subject matter)의 다양한 구현은 하나 이상의 후속하는 장점들을 제공할 수 있다. 저장할 필요없는 문서는, 문서에 대한 변경사항을 자동으로 저장함으로써, 응용 프로그램의 비정상적인 종료 시에 저장할 필요없는 인식 응용 프로그램에서 열린 문서에 대해 행해진 변경사항의 손실을 막을 수 있다. 일부 구현은 사용자가 문서의 현재 버전을 보면서 문서의 이전 버전을 보고, 비교하고, 상호작용하는(interact) 것을 허용한다. 일부 구현은 사용자가 문서의 특정한 버전을 문서의 이전 버전으로 되돌리고(revert) 그리고 나서 문서의 특정한 버전으로 다시 되돌리는 것을 허용한다.
다른 장점들은 사용자가 과거의 어느 시점에 관심 있는 것으로 여겼던 구 버전들(old versions)을 검색할 수 있도록 그들의 문서 파일들의 다수의 사본들을 수동으로 관리하는 부담을 덜어주는 것을 포함한다. 추가로, 사용자는 문서들을 닫거나 응용 프로그램들을 종료할 때 저장되지 않은 문서 변경 사항들을 어떻게 할지에 대해 질문하는 경고(alerts)를 신경 쓰지 않아도 된다. 사용자는 문서들이 또 다른 응용 프로그램에 의해 판독되기 전에 문서 변경 사항들을 의식하고 그것을 저장하도록 주의할 필요가 없다. 예를 들어, 사용자가 첨부물을 만들기 위해 폴더로부터 문서 아이콘을 드래그하여 이메일 메시지 편집 창에 드롭한다면, 그 첨부물은 그때까지 사용자가 문서에 행한 변경 사항들 모두를 항상 포함할 것이다. 다시 말해, 사용자의 입장에서 보면, 응용 프로그램 창에 제시된 문서는 단순히 폴더에 디스플레이된 문서와 동일한 것이고, 그 반대도 마찬가지이다.
하나 이상의 구현의 세부 사항은 첨부 도면 및 아래 설명에서 제시된다. 다른 특징들, 양상들, 및 잠재적인 장점들은 설명과 도면 그리고 청구범위로부터 자명할 것이다.
도 1은 "저장할 필요없는 인식(saveless aware)" 응용 프로그램을 위한 GUI(graphical user interface)의 일례를 도시한다.
도 2는 자동 문서 저장 시스템의 일례의 블록도이다.
도 3은 자동 문서 버저닝 시스템의 일례의 블록도이다.
도 4는 문서를 자동으로 저장하기 위한 프로세스의 일례의 흐름도이다.
도 5는 문서 버전을 자동으로 작성하기 위한 프로세서의 일례의 흐름도이다.
도 6은 문서 버전들을 디스플레이하고 상호작용하기 위한 GUI의 일례를 도시한다.
도 7은 문서 버전들을 디스플레이하기 위한 프로세스의 일례의 흐름도이다.
도 8은 문서 레이아웃들을 복구하기 위한 프로세스의 일례의 흐름도이다.
도 9는 도 1-8의 특징들 및 프로세스들을 구현하는 시스템 아키텍처의 일례의 블록도이다.
여러 도면에서 동일한 참조 번호는 동일한 요소를 나타낸다.
저장할 필요없는 인식 응용 프로그램들( Saveless Aware Applications )
저장할 필요없는 문서들이 개시된다. 일부 구현에 따르면, 문서들 또는 다른 컨텐츠를 작성, 편집, 디스플레이하거나 그렇지 않으면 조작 혹은 수정하는 하나 이상의 응용 프로그램이 "저장할 필요없는 인식"을 행할 수 있다. 저장할 필요없는 인식(예컨대, 자동 저장) 응용 프로그램들은 저장할 필요없는 인식 응용 프로그램이 문서들을 자동으로 저장하는 것을 허용하는 API(application programming interface) 또는 응용 프로그램 프레임워크를 사용하거나 구현할 수 있다. 저장할 필요없는 인식 응용 프로그램들은 또한 문서들의 버전들을 자동으로 작성하고 저장할 수 있으므로 사용자는 문서의 이전 버전들을 나중에 열고, 그들을 디스플레이하고/하거나 그들과 상호작용할 수 있다. 저장할 필요없는 인식 응용 프로그램들은 또한 사용자로 하여금 저장할 필요없는 인식 응용 프로그램에 현재 열려있는 문서의 하나 이상의 이전 버전에 액세스하고, 그것을 보고/보거나 그와 상호작용하는 것을 허용하는 사용자 인터페이스 요소들(예컨대, 풀-다운 메뉴 아이템들 혹은 버튼들)을 제공할 수 있다.
게다가, 일부 구현에서, 저장할 필요없는 인식 응용 프로그램은 디스플레이 상에서 열린 문서들의 위치들을 자동으로 저장하고, 예를 들어, 그 문서들의 비정상적 닫힘 이후에, 그 문서들을 그들의 저장된 위치들로 복구시킨다. 이들 및 추가적인 특징들은 아래에서 더욱 상세하게 개시된다.
도 1은 "저장할 필요없는 인식" 응용 프로그램을 위한 GUI(graphical user interface; 100)의 일례를 도시한다. GUI(100)는 문서 디스플레이 구역(102)을 포함한다. 예를 들어, 문서 디스플레이 구역(102)은 특정한 저장할 필요없는 인식 응용 프로그램과 연관된 유형의 문서들을 디스플레이할 수 있다. 예를 들어, 저장할 필요없는 인식 응용 프로그램이 텍스트 에디터라면, 문서 디스플레이 구역(102)은 텍스트 문서를 디스플레이할 수 있다. 저장할 필요없는 인식 응용 프로그램이 이미지 편집 응용 프로그램이라면, 문서 디스플레이 구역(102)은 이미지를 디스플레이할 수 있다. 다른 유형의 응용 프로그램들이 저장할 필요없는 인식을 행할 수도 있다. 따라서, 다른 유형의 문서들이 문서 디스플레이 구역(102)에 디스플레이될 수도 있다.
GUI(100)는 또한 문서 현황 구역(document status area; 104)을 포함한다. 문서 현황 구역(104)은 문서 디스플레이 구역(102)에 디스플레이된 현재 열린 문서의 상태 혹은 현황(status)을 디스플레이한다. 예를 들어, 디스플레이된 문서가 수정되었으나 저장되지 않았다면, 문서 현황 구역(104)은 수정된 현황의 텍스트 표시자(textual indicator)(이를테면 "편집됨(Edited)" 혹은 "수정됨(Modified)")를 디스플레이할 수 있다.
일부 구현에서, 문서 현황 구역(104)은 "잠긴(Locked)" 현황을 디스플레이할 수 있다. 예를 들어, 디스플레이 구역(102)에 디스플레이된 열린 문서가 지정된 시간 기간 동안(이를테면, 1시간, 1일, 1년 혹은 그 이상) 편집되지 않았다면, 문서는 저장할 필요없는 인식 응용 프로그램에 의해 "잠긴" 상태에 놓일 수 있고 저장할 필요없는 인식 응용 프로그램은 문서 현황 구역(104)에 "잠김"이라는 단어를 디스플레이할 수 있다. 예를 들어, 문서의 잠김을 먼저 해제하거나 문서의 복제본(duplicate)을 생성하지 않고는 잠긴 문서의 편집이 사용자에게 허용되지 않을 수 있다. 문서 디스플레이 구역(102)에 디스플레이된 문서가 잠겨 있지 않거나 편집되지 않는다면, 문서 현황 구역(104)은 비어 있을 것이다. 예를 들어, 문서가 잠겨있지 않고 편집되지 않는다면 문서 현황 구역(104)은 어떠한 현황 텍스트도 디스플레이하지 않을 수 있다.
GUI(100)는 또한 메뉴(108)에 액세스하기 위한 사용자 인터페이스 요소(106)를 포함한다. 메뉴(108)는 잠긴 문서의 잠김을 해제하기 위한 메뉴 아이템을 포함할 수 있다. 예를 들어, 디스플레이된 문서가 잠긴 상태에 있다면, 사용자는 인터페이스 요소(106)를 사용하여 메뉴(108)에 액세스하고 "잠김 해제(Unlock)" 메뉴 아이템을 선택하여, 잠김이 해제되고 잠긴 문서의 편집이 허용될 수 있다.
잠긴 문서는 복제되면 복제 문서의 편집이 허용될 수 있다. 예를 들어, 사용자는 잠긴 문서를 편집하기를 원할 수 있고 또한 문서의 현재 잠긴 버전을 저장하기를 원할 수도 있다. 문서의 현재 잠긴 버전에 대한 편집 및 저장 둘 다를 행하기 위해, 사용자는 인터페이스 요소(106)를 사용하여 메뉴(108)에 액세스하고 "복제(Duplicate)" 메뉴 아이템을 선택할 수 있다. "복제" 메뉴 아이템이 선택될 때, 저장할 필요없는 인식 응용 프로그램은 잠긴 버전을 복사하고 그 사본을 사용자에게 제시하여 사용자는 그 사본을 편집할 수 있다. 일부 구현에서, 사용자가 잠긴 문서를 편집하려고 시도할 때, 사용자는 잠긴 문서의 잠김을 해제하거나 잠긴 문서를 복제하도록 자동으로 프롬프트된다. 예를 들어, 사용자가 잠긴 문서를 편집하려고 시도한다면, 사용자가 문서의 현재 잠긴 버전의 잠김을 해제하거나 복제하기를 프롬프트하는 팝-업 메뉴가 디스플레이될 수 있다.
문서는 사용자에 의해 잠길 수도 있다. 예를 들어, 사용자는 "잠금(Lock)" 사용자 인터페이스 요소를 선택하여 문서가 잠기도록 할 수 있다. 문서가 저장된 위치가 더 이상 액세스될 수 없는 경우에도 문서는 잠길 수 있다. 예를 들어, 문서가 네트워크 저장 디바이스에 저장되고 네트워크 저장 디바이스가 더 이상 액세스될 수 없는 경우에, 문서는 잠긴 상태에 놓일 수 있다. 사용자가 잠긴 문서를 편집하려고 시도하는 경우, 사용자는 문서의 잠김을 해제하도록 프롬프트되고 문서를 위한 대안적인 저장 위치를 제공할 수 있다. 사용자에 의해 대안적인 저장 위치가 제공되면, 잠긴 문서는 복제되어 대안적인 위치에 저장될 수 있고, 잠긴 문서의 복제본을 사용자가 편집하는 것을 진행하도록 허용될 수 있다.
메뉴(108)는 현재 디스플레이된 문서의 이전 버전에 사용자가 액세스하는 것을 허용할 수 있다. 예를 들어, 현재 디스플레이된 문서의 이전 버전들에 액세스하기 위해, 사용자는 인터페이스 요소(106)를 사용하여 메뉴(108)에 액세스하고 "버전들(Versions)" 또는 "개정들(Revisions)" 메뉴 아이템을 선택할 수 있다. 도 6 및 도 7을 참조하여 아래에서 상세히 개시되는 바와 같이, 사용자가 "개정들" 메뉴 아이템을 선택하는 것에 응답하여, 버전 관리 인터페이스가 디스플레이될 수 있다.
자동 문서 저장( Automatic Document Saving )
도 2는 자동 문서 저장의 일례를 도시하는 블록도(200)이다. 컴퓨터 시스템에 의해 실행된 "저장할 필요없는 인식" 응용 프로그램은 시스템 상의 하나 이상의 저장 이벤트를 검출하는 것에 응답하여 응용 프로그램에서 열린 문서를 자동으로 저장하도록 구성될 수 있다. 블록도(200)의 단계(204)에서, 문서(202)는 컴퓨터 시스템상의 저장할 필요없는 인식 응용 프로그램에서 열릴 수 있다.
블록(206)에서, 저장 이벤트는 시스템에서 실행되는 저장할 필요없는 인식 응용 프로그램에 의해 검출될 수 있다. 저장 이벤트는, 예를 들어, 경과된 시간 간격, 사용자 입력에 있어서의 일시 정지, 포커스를 문서에서 떠나도록 이동, 문서 닫음, 문서 인쇄, 문서에 내용을 붙여넣기, 문서로부터 내용 삭제, 또는 문서 포맷을 포함할 수 있다. 예를 들어, 저장할 필요없는 인식 응용 프로그램은 5분마다 문서를 자동으로 저장하도록 구성될 수 있다.
사용자가 텍스트 문서를 타이핑하다가 (예컨대, 생각하거나, 커피 한 잔 하거나, 교정하기 위해) 일시 정지한다면, 저장할 필요없는 인식 응용 프로그램은 사용자 입력에서 일시 정지를 검출하여 그 문서를 자동으로 저장할 수 있다. 사용자가 문서 창과 상호작용하는 것을 중단하고 컴퓨터 시스템상에 열려 있는 또 다른 창이나 응용 프로그램과 상호작용하기 시작한다면, 저장할 필요없는 인식 응용 프로그램은 포커스에 있어서의 이동(혹은 그 문서에 대한 포커스의 손실)을 검출하고 그 문서를 저장할 수 있다. 사용자가 문서를 닫거나, 문서를 인쇄하거나, 문서에 내용을 붙여넣거나, 문서로부터 내용을 삭제하거나, 그 문서를 포맷할 때, 저장할 필요없는 인식 응용 프로그램은 문서에 대한 이러한 변경 사항들을 검출하고 그들을 저장 이벤트들로서 식별할 수 있다.
일부 구현에서, 저장할 필요없는 인식 응용 프로그램은 시간 간격에 기초하여 문서를 저장하도록 구성될 수 있다. 예를 들어, 시간 간격이 만료될 때, 문서는 저장될 수 있다. 사용자가 어떤 방식으로든, 예를 들어, 타이프하거나 스크롤함으로써 문서와 상호작용한다면, 그 시간 기간 동안은 자동 저장이 지연될 수 있어, 사용자가 문서와 상호작용하는 동안에는 저장 동작이 발생하지 않는다. 따라서, 사용자가 응용 프로그램 혹은 문서를 활발하게 사용 중인 동안에는 문서의 자동 저장이 방지될 수 있다.
일부 구현에서, 자동 저장을 지연하기 위한 시간 기간은 다음 알고리즘에 기초하여 판정될 수 있다. 변수 'x'는 응용 프로그램에 의해 지정된 자동 저장을 위해 대기해야 하는 시간 간격(초 단위)을 나타낸다. 시간 간격 값이 응용 프로그램에 대해 지정되지 않았다면, 디폴트 시간 간격이 사용될 수 있다(예컨대, 30초). 변수 'y'는 자동 저장들 사이의 최대 시간 양을 나타낸다. 예를 들어, 자동 저장들 사이의 최대 시간 양이 5분이고; 저장 없이 5분이 경과했다면, 자동 저장이 수행될 수 있다.
일부 구현에 따르면, 다음 알고리즘이 사용될 수 있다. 예를 들어, 문서에 있어서의 변경 사항이 검출될 때, 타이머는 x초 동안 실행(run)되기 시작할 수 있다. 사용자가 문서와 상호작용하면, 타이머는 x초 동안 지연될 수 있다. 자동 저장 이후의 시간이 y*(1/2)보다 크면, 타이머는 x/2초 동안 지연될 수 있다. 자동 저장 이후의 시간이 y*(7/8)보다 크면, 타이머는 x/8초 동안 지연될 수 있다. 계산된 시간이 이전 자동 저장 후에 y초보다 큰 다음 자동 저장을 둔다면, 이전 자동 저장 후에 y초가 넘지 않도록 시간을 클립(clip)할 것이다.
자동 저장은 다른 저장 이벤트들, 이를테면, 또 다른 응용 프로그램으로의 스위칭에 의해 트리거될 수도 있는데, 상기 또 다른 응용 프로그램은, 파일의 내용을 극적으로 변경(예컨대, 되돌리기(reverting))하는 동작 전에, 또는 예를 들어 사용자가 그들의 컴퓨터를 슬립 모드에 두기 전에, 그 파일의 최신 내용을 판독하기를 원한다는 것을 나타낸다.
일부 구현에서, 저장할 필요없는 인식 응용 프로그램은 저장할 필요없는 인식 응용 프로그램이 실행되는 컴퓨팅 디바이스의 전력 특성에 기초하여 문서를 자동으로 저장할 수도 있다. 일부 구현에서, 자동 저장의 주기는 전원이 배터리인지 벽에서 사용하는 전원(wall power)인지 여부에 기초할 수 있다. 예를 들어, 전원이 배터리인 경우, 배터리를 더 오래 지속시키기 위해, 전원이 벽에서 사용하는 전원인 경우에 비해 자동 저장을 덜 빈번하게 수행할 수 있다.
일부 구현에서, 자동 저장은 컴퓨팅 디바이스에 전력을 공급하는 배터리에 남아 있는 전력량에 기초할 수도 있다. 예를 들어, 저장할 필요없는 인식 응용 프로그램은, 컴퓨터의 배터리의 잔여 충전율(percent charge)이 작은 수(예컨대, 5% 또는 10%의 잔여 충전량)에 도달할 때 또는 저전력 알림(low battery notification)이 수신될 때 파일을 자동으로 저장하므로, 배터리의 수명이 끝난 경우에도 문서에 대한 변경 사항이 손실되지 않을 것이다. 일부 구현에서, 배터리에 남아 있는 전력이 감소함에 따라 자동 저장이 점점 덜 빈번하게 수행될 수 있다.
저장할 필요없는 인식 응용 프로그램은 또한 다른 디스크나 CPU 활동성을 보다 효율적으로 활용하기 위해 다른 시스템 이벤트들과 조화를 이룰 수 있다. 예를 들어, 저장할 필요없는 인식 응용 프로그램은 컴퓨터의 CPU 사용률이 어떤 작은 퍼센트(예컨대, 20%나 30%의 CPU 사용률)에 도달할 때를 인식하고 열린 문서를 자동으로 저장하기 위해 낮은 CPU 사용률을 활용할 수 있다. 일부 구현에서, 저장할 필요없는 인식 응용 프로그램은 전력 효율을 향상시키기 위해 문서 저장 세트를 그룹화하거나 활용되지 않는 시스템 리소스들(예컨대, 낮은 CPU, 메모리, 또는 배터리 사용률)을 활용할 수 있다.
블록 208에서, 문서(202)는 컴퓨터 시스템상에서 실행중인 저장할 필요없는 인식 응용 프로그램에 의해 저장되어 결과적으로 저장된 문서(210)가 된다. 예를 들어, 저장 이벤트가 검출되면, 저장할 필요없는 인식 응용 프로그램은 문서를 자동으로 저장하여, 그렇지 않으면 문서(202)에 대한 변경 사항들이 손실될 수도 있는, 문서 혹은 저장할 필요없는 인식 응용 프로그램이 비정상적인 종료 혹은 닫힘을 경험하는 경우에도, 사용자는 문서에 행했던 변경 사항들을 손실하지 않을 것이다. 저장된 문서(210)는 로컬 저장 디바이스(local storage device), 이를 테면, 회전 디스크나 솔리드-스테이트 매체에 저장(save, or store)될 수 있다. 저장된 문서(210)는 리모트 저장 디바이스, 이를 테면 네트워크 서버 혹은 다른 네트워크 저장장치(storage)에 저장(save, or store)될 수 있다. 일부 구현에서, 문서(202)는, 저장할 필요없는 인식 응용 프로그램이 마지막 저장 이후에 문서(202)에 대해 행해진 변경 사항들이 존재한다고 판정한 경우에만 저장된다. 일부 다른 구현에서, 저장할 필요없는 인식 응용 프로그램은 문서(202)에 대해 행해진 변경 사항들이 존재하는지의 여부에 무관하게 저장 이벤트가 검출될 때 문서(202)를 저장한다.
도 4는 문서들을 자동으로 저장하기 위한 프로세스(400)의 일례의 흐름도이다. 프로세스(400)는, 예를 들어, 하나 이상의 컴퓨팅 디바이스를 사용하여 수행될 수 있다. 단계 402에서, 문서가 열린다. 예를 들어, 도 1을 참조하여 설명된 바와 같이, 저장할 필요없는 인식 응용 프로그램이 문서를 열고 디스플레이할 수 있다. 단계 404에서, 저장 이벤트가 검출된다. 예를 들어, 도 2를 참조하여 설명된 바와 같은, 저장 이벤트가 검출될 수도 있다. 단계 406에서 저장 이벤트의 검출은 저장할 필요없는 인식 응용 프로그램을 트리거하여 열린 문서를 저장할 수 있다. 일부 구현에서, 문서가 저장된 마지막 시간 이후로 문서가 편집, 수정, 또는 변경된 경우에만 문서는 저장될 것이다. 일부 다른 구현에서, 문서가 저장된 마지막 시간 이후로 문서에 행해진 임의의 변경 사항들이 존재하는지의 여부에 무관하게 문서는 저장될 것이다.
자동 문서 버저닝( Automatic Document Versioning )
도 3은 자동 문서 버저닝의 일례를 도시하는 블록도이다. 컴퓨터 시스템에 의해 실행된 "저장할 필요없는 인식" 응용 프로그램은 시스템상의 하나 이상의 버저닝 이벤트를 검출하는 것에 응답하여 응용 프로그램에서 열려 있는 문서의 버전을 자동으로 작성 및 저장하도록 구성될 수 있다. 블록도(300)의 블록 304에서, 문서(302)가 열린다. 예를 들어, 문서(302)는 컴퓨터 시스템상의 저장할 필요없는 인식 응용 프로그램에서 열릴 수 있다.
블록 306에서, 버저닝 이벤트가 검출된다. 버저닝 이벤트는, 예를 들어, 문서 열기, 문서 닫기, 문서를 이메일로 보내기, 문서 인쇄, 문서 삭제, 문서에 대한 사용자 입력의 긴 일시 정지(예컨대, 1시간 이상의 일시 정지), 또는 잠긴 문서를 편집하려는 시도를 포함할 수 있다. 예를 들어, 사용자가 문서를 이메일로 보내는 경우, 이메일로 보낸 문서의 버전이 저장되어 사용자는 이메일로 보낸 문서의 버전을 볼 수 있다. 또 다른 예에서, 사용자는 문서 작업을 한 다음 1시간 동안 점심 먹으러 갈 수도 있다. 1시간 휴식은 문서의 버전이 생성되고 저장되도록 트리거할 수 있다. 버저닝 이벤트는 사용자 입력에 있어서의 더 긴 혹은 더 짧은 일시 정지에 의해 정의될 수 있다.
일부 구현에 따르면, 문서의 버전은 사용자가 잠긴 문서에 대해 편집을 시도하는 것에 응답하여 생성 및 저장된다. 예를 들어, 사용자가 지정된 시간 기간(하루, 일주일, 한 달 등) 동안 편집되지 않은 문서를 여는 경우, 문서는 잠긴 문서로서 열릴 수 있다. 사용자가 잠긴 문서를 편집하려고 시도한다면, 문서의 버전이 생성 및 저장되어 사용자는 문서의 이전 버전을 다시 볼 수 있다. 잠긴 문서의 버전은, 잠긴 문서를 편집하려는 사용자의 시도 또는 사용자가 문서의 복제본 버전을 작성하도록 프롬프트되는 것에 응답하여 자동으로 생성될 수 있다.
일부 구현에 따르면, 문서의 이전 버전으로 되돌리는 것은 문서의 하나의 버전이 생성되고 저장되도록 한다. 예를 들어, 사용자가 문서의 이전 버전으로 되돌린다면, 이전 버전으로 되돌리기 전에 문서의 현재 버전의 내용들은 문서의 하나의 버전으로 보존될 수 있다. 문서의 이름을 정하는 것 또는 문서의 이름을 다시 정하는 것이 문서의 하나의 버전이 생성되고 저장되도록 할 수 있다. 예를 들어, 처음으로 문서의 이름을 정하는 것에 응답하여 문서의 신 버전이 생성되고 저장될 수 있다. 문서를 잠그는 것은 문서의 하나의 버전이 생성되고 저장되도록 할 수 있다. 예를 들어, 사용자가 문서를 수동으로 잠그는 것에 응답하여, 잠긴 문서의 신 버전이 생성되고 저장될 수 있다.
일부 구현에 따르면, 저장 디바이스(하드 드라이브)로부터 문서를 삭제하는 것은 문서의 하나의 버전이 생성되고 저장되도록 한다. 예를 들어, (예컨대, 커널 후크(kernel hook)를 사용하여) 삭제 동작을 가로막고 삭제 동작을 완료하기 전에 생성된 문서를 복사할 수 있다.
버저닝 이벤트들은 설정 가능할 수 있다. 예를 들어, 사용자는 위에서 리스트된 버저닝 이벤트들의 서브셋에 기초하여 파일의 버전을 생성 및 저장하도록 저장할 필요없는 인식 응용 프로그램을 구성할 수 있다. 사용자는 제공된 사용자 기준에 기초하여 새로운 혹은 추가의 버저닝 이벤트들을 지정할 수 있다.
일부 구현에 따르면, 사용자는 문서의 버전을 명백하게 생성 및 저장할 수 있다. 예를 들어, 사용자는 사용자 인터페이스 요소를 선택하여 문서의 버전을 저장할 수 있다. 일부 구현에서, 사용자는 연관된 코멘트를 갖는 버전을 저장할 수 있다. 예를 들어, 사용자는 문서의 버전을 명백하게 저장하고 그 버전에 대한 코멘트를 제공할 수 있다. 일부 구현에서, 코멘트가 달린 문서의 버전은 사용자가 그것을 명백하게 삭제할 때까지 유지될 수 있다.
블록 308에서, 문서의 신 버전이 생성 및 저장된다. 예를 들어, 버저닝 이벤트를 삭제하는 것에 응답하여, 저장할 필요없는 인식 응용 프로그램은 문서의 사본을 자동으로 생성할 수 있고 그 사본을 문서의 이전 버전으로서 저장할 수 있다. 그 결과, 문서 버전(310)이 생성된다.
문서의 다수의 동일 버전들이 생성될 수 있다. 예를 들어, 그 사이에 편집없이 문서가 연속적으로 열려있는 경우, 문서의 다수의 동일 버전들을 생성할 수 있다. 대안적으로, 일부 구현에서, 이전 버전에 대해 행해진 일부 변경 사항이 존재하는 경우에만 신 버전들이 생성된다. 문서의 동일 버전들의 수에 대해서는 제한이 존재할 수 있다. 예를 들어, 시스템은 문서에 대해 최대 3개의 동일 버전들이 저장될 수 있도록 구성될 수 있다.
일부 구현에 따르면, 문서의 버전들은 버전 저장소(version store)로부터 신중하게 정리(prune)되거나 제거(purge)될 수 있다. 예를 들어, 버전 저장소는 문서 버전들의 집합(collection)이다. 버전 저장소는 문서의 가장 관심있는(예컨대, 가장 중요한) 버전들은 보관되고 문서의 덜 관심있는(예컨대, 덜 중요한) 버전들은 삭제되도록 정리될 수 있다. 문서의 버전은 제거가능(정리가능)한 것으로서 마크될 수 있다. 문서의 제거가능하거나 정리가능한 버전은 임의의 시간에 삭제될 수 있다.
어느 문서들이 제거가능하거나 정리가능한 지를 판정하기 위해 다음의 규칙들이 사용될 수 있다. 예를 들어, 코멘트들이 달린 버전들은 결코 자동으로 제거되지 않는다. 코멘트가 달린 버전들은 사용자가 원한다면 수동으로 삭제할 수 있다. 지난날(past day)에 대한 시간당(per hour) 적어도 하나의 문서 버전이 버전 저장소에 보유된다. 지난달(past month)에 대한 날짜당(per day) 적어도 하나의 문서 버전이 버전 저장소에 보유된다. 한 달보다 오래된 문서 버전들에 대한 주당(per week) 적어도 하나의 문서 버전이 버전 저장소에 보유된다. 마지막 두 번 열렸던 현재 작업중인 문서를 나타내는 버전들이 버전 저장소에 보유된다. 명시적 사용자 조작(예컨대, 되살리기, 다른 이름으로, 잠그기)을 나타내는 버전들은 자동으로 작성된 버전들 위에 보유될 수 있다. 상기 카테고리들 중 하나로 귀결되지 않는 문서의 버전들은 제거가능하거나 정리가능한 것으로서 마크될 수 있다.
도 5는 문서 버전을 자동으로 작성하기 위한 프로세스(500)의 일례의 흐름도이다. 단계 502에서, 문서가 열린다. 예를 들어, 문서는 저장할 필요없는 인식 응용 프로그램에서 열릴 수 있다. 단계 504에서, 버저닝 이벤트가 검출된다. 예를 들어, 버저닝 이벤트는 도 3을 참조하여 위에서 설명된 버저닝 이벤트들 중 하나일 수 있다. 단계 506에서, 문서의 사본이 생성된다. 예를 들어, 버저닝 이벤트를 검출하는 것에 응답하여, 문서의 사본이 생성될 수 있다. 문서의 사본은 전체 문서의 사본일 수도 있다. 대안적으로, 문서의 사본은 문서와 그 문서의 이전 버전 사이의 차이점들을 저장하는 것만 지칭하는 것일 수도 있다. 단계 508에서, 사본은 문서의 이전 버전으로서 저장된다. 예를 들어, 사본은 문서의 하나의 버전으로서 저장될 수 있고 사용자는 현재 열리고 디스플레이된 문서의 버전을 계속해서 편집할 수 있다. 문서의 이전 버전은, 예를 들어, 아래 개시된 버전 관리 인터페이스를 사용하여 사용자가 나중에 검색해서 볼 수 있다. 단지 문서 버전들 간의 차이점들만 저장되는 곳에서, 문서의 특정한 버전은 저장된 차이점들에 기초하여 재현될 수 있다.
버전 관리 인터페이스( Version Management Interface )
도 6은 문서 버전들을 디스플레이하고 그들과 상호작용하기 위한 GUI(graphical user interface; 600)의 일례를 도시한다. 예를 들어, 사용자 인터페이스(600)는 사용자가, 예를 들어, 도 1의 메뉴(108) 혹은 또 다른 메뉴로부터 "개정들(Revisions)" 또는 "버전들(Versions)" 메뉴 아이템을 선택하는 것에 응답하여 디스플레이될 수 있다.
현재 작업중인 문서(602)(예컨대, 저장할 필요없는 인식 응용 프로그램에 현재 열려있는 문서)는 사용자 인터페이스(600)의 구역(614)에 나타나 있다. 예를 들어, 구역(614)은 사용자 인터페이스(600)에서 인터페이스(600)의 오른쪽, 왼쪽, 맨 위 또는 맨 아래에 위치할 수 있다. 인터페이스(600)가 작동되면(invoke)(예컨대, 메뉴(108)에서의 사용자 선택을 통해), 현재 작업중인 문서(602)는 그것의 디스플레이 상의 현재 위치로부터 구역(614)으로 이동하도록 활성화(animate)될 수 있다. 라벨(624)은 구역(614) 및 현재 작업중인 문서(602)에 근접하게 디스플레이될 수 있다. 라벨(624)은 현재 작업중인 문서(602)와 연관된 식별 정보를 디스플레이할 수 있다(예컨대, 문서(602)가 그 문서의 현재 버전인 것으로 라벨을 붙임).
현재 작업중인 문서(602)로의 개정들, 또는 버전들이 구역(616)에 디스플레이된다. 예를 들어, 도 2 및 도 4를 참조하여 설명된 바와 같이 자동으로 생성된 현재 작업중인 문서(602)의 버전들은 구역(616)에 디스플레이될 수 있다. 문서 버전들, 또는 개정들(604-612)은 사용자가 현재 작업중인 문서(602)의 버전들을 편집하고 저장하도록 허용하는 단일 응용 프로그램 또는 다수의 서로 다른 응용 프로그램들에 의해 생성될 수 있다.
문서 개정들은 로컬 저장 디바이스나 네트워크 저장 디바이스로부터 검색될 수 있다. 문서 개정들은 문서 기록 보관소(document archive)나 파일 백업 위치로부터 획득될 수 있다. 사용자 인터페이스(600)는 하나 이상의 기록 보관 혹은 파일 백업 응용 프로그램들 및/또는 저장 위치들(예컨대, 네트워크 파일 서버 혹은 로컬 저장 디바이스)로부터 문서 버전들을 획득할 수 있다.
사용자 인터페이스(600)가 작동될 때, 문서 버전들(604-612)은 사용자 인터페이스 구역(616)으로 시야(view)를 끌고 가도록(shuffle into) 애니메이트될 수 있다. 문서 개정들(604-612)은 발생 순서(chronological order)로 혹은 발생 반대 순서(reverse chronological order)로 구역(616)에 디스플레이될 수 있다. 예를 들어, 개정들(604-612)은 특정한 개정 혹은 버전이 생성된 시간에 기초하여 차례로 디스플레이될 수 있다. 문서들(604-612)은 시퀀스로서 디스플레이될 수 있다. 예를 들어, 문서들(604-612)의 시퀀스는 도 6에 디스플레이된 바와 같이 스택으로 된 응용 프로그램들의 시퀀스로서 디스플레이될 수 있다.
문서 버전들(604-612)의 시퀀스가 디스플레이되는 동안, 새롭게 생성된 문서 버전들이 디스플레이된 시퀀스에 추가될 수 있다. 예를 들어, 또 다른 응용 프로그램이 현재 작업중인 문서(602)와 연관된 신 버전을 생성한다면, 그 신 버전은 디스플레이된 문서 버전들(604-612)의 시퀀스에 추가될 수 있다. 대안적으로, 또 다른 예에서, 사용자가 문서의 현재 버전을 문서의 이전 버전으로 교체한다면, 교체된 문서의 현재 버전은, 나중의 참조를 위해, 디스플레이된 문서의 이전 버전들의 시퀀스에 추가될 수 있다.
라벨(622)은 구역(616) 및 문서 버전들(604-612)에 근접하여 디스플레이될 수 있다. 라벨(622)은 문서 버전 시퀀스(604-612)의 맨앞쪽에 디스플레이된 선택된 문서 버전(예컨대, 문서 버전(604))과 연관된 식별 정보를 디스플레이할 수 있다. 예를 들어, 버전 라벨은 선택된 버전이 생성된 날짜나 버전 생성 이벤트(예컨대, 이메일로 보내진 문서, 인쇄된 문서 등)를 나타낼 수 있다.
문서 버전(604-612)은 조작가능한 것이다. 예를 들어, 사용자는 디스플레이된 문서 버전들(604-612)의 시퀀스를 스크롤할 수 있다. 사용자는 문서들을 이동시켜 문서들이 디스플레이의 전경 및 배경으로 이동하여 나타나도록 한다. 예를 들어, 도 6에서, 문서 버전(604)은 문서 버전들의 시퀀스의 선두에 있고 그 내용을 눈으로 볼 수 있으므로 현재 선택된 문서 버전이다. 사용자가 또 다른 문서 버전, 이를테면 버전(608)을 선택해서 보고/보거나 조작하기를 원한다면, 사용자는 버전(608)이 시퀀스의 맨앞쪽에 있고 그 내용을 눈으로 볼 수 있을 때까지 문서 버전들의 시퀀스를 따라 스크롤할 수 있다.
버전(608)으로 다시 스크롤함으로써, 문서 버전들(604 및 606)은 디스플레이의 전경(사용자 쪽으로)에 나타났다가 사라질 수 있다. 문서 버전(608)이 선택되어 문서들(604-612)의 시퀀스의 맨앞쪽에 디스플레이되고(608이 선택될 때 버전(608-612)만이 디스플레이될 수 있다) 사용자가 더 이상 볼 수 없는 버전(606)을 보기를 원한다면, 사용자는 리스트를 다시(back) 스크롤할 수 있다. 예를 들어, 문서 버전(606)을 보기 위해, 시퀀스(604-616)는 사용자 인터페이스(600)의 배경으로 이동하도록 애니메이트될 수 있다. 문서 버전들(608-612)은 사용자 인터페이스(600)의 배경으로 이동할 수 있고 버전(606)은 디스플레이된 문서 버전들의 시퀀스의 맨앞쪽에 추가될 수 있다.
문서들의 시퀀스를 따라 스크롤하는 것은 입력 디바이스(예컨대, 키보드 화살표 키들 혹은 마우스 휠)로부터의 직접적인 입력에 의해 혹은 타임라인(618)이나 타임라인 위치 표시자(620)를 조작함으로써 실시될 수 있다. 예를 들어, 사용자는 커서를 사용하여 타임라인(610) 상에서의 위치를 나타낼 수 있다(예컨대, 타임라인(616) 상의 하나의 위치를 클릭함으로써). 타임라인(610) 상의 커서 입력에 응답하여, 나타난 위치에 대응하는 문서 버전이 선택되어 구역(616)에 디스플레이된 버전들의 시퀀스의 맨앞쪽에 디스플레이될 수 있다. 예를 들어, 사용자가 문서 버전(610)에 대응하는 타임라인(618) 상의 위치를 나타낸다면, 문서 버전(610)이 선택되어 버전들(604-612)의 시퀀스의 맨앞쪽에 디스플레이될 수 있다.
사용자는 타임라인 위치 표시자(620)를 사용하여 타임라인(618) 상의 위치를 나타낼 수 있다. 예를 들어, 사용자가 위치 표시자(620)를 버전(612)에 대응하는 타임라인 상의 위치로 타임라인(618)을 따라 이동(예컨대, 마우스 혹은 키보드 입력을 사용하여)하게 함으로써 문서 버전(612)이 선택되어 문서 버전 시퀀스의 맨앞쪽에 디스플레이되도록 할 수 있다. 일부 구현에서, 위치 표시자의 사용자 선택은 타임라인의 확대(예컨대, 많은 수의 버전이 존재할 때 개개의 버전을 나타내는 개개의 해시들(hashes)을 갖는)를 야기할 수 있다.
현재 선택된 문서 버전(예컨대, 문서 버전(604))의 내용은 보여지고 조작될 수 있다. 예를 들어, 선택된 문서 버전(현재 작업중인 문서의 이전 버전)의 내용들은 디스플레이되고 스크롤될 수 있어 사용자는 현재 작업중인 문서의 이전 버전들의 내용들을 다시 볼 수 있다. 현재 작업중인 문서의 이전 버전들은 편집될 수 없지만 특정한 내용은 선택되어 현재 작업중인 문서(602) 내에 있는 한 위치로 복사될 수 있다.
예를 들어, 사용자는 문서에 대한 편집을 행한 다음 문서의 이전 버전으로 되돌리는 것을 결정할 수도 있다. 그렇게 하기 위해, 사용자는 버전들(604-612)의 시퀀스를 스크롤함으로써 문서의 이전 버전을 선택할 수 있다. 이전 버전(예컨대, 버전(610))이 선택되어 버전들의 시퀀스의 맨앞쪽에 디스플레이되면, 사용자는 이전 버전(610)을 복제하여 이전 버전(610)을 문서의 현재 작업중인 버전으로 만든다. 예를 들어, 사용자가 사용자 인터페이스 요소(626)를 선택하여 선택된 문서의 이전 버전을 현재 작업중인 버전으로 만들 수 있다. 예를 들어, 사용자 인터페이스 요소(626)의 선택은 문서의 이전 버전(610)을 문서의 현재 작업중인 버전으로 복구할 수 있다. 그 다음 사용자는 이전 버전(610)에서 복구된 현재 작업중인 문서(602)를 편집할 수 있다. 현재 작업중인 문서(602)는 복제 버전(610)에 의해 현재 작업중인 문서로 교체되기 전에 이전 버전으로 저장될 수 있다. 따라서, 사용자는 문서의 현재 작업중인 버전을 문서의 이전 버전으로 다시(back) 되돌릴 수 있고 문서의 현재 작업중인 버전으로 다시(back)(또는 전방으로(forward)) 되돌릴 수 있는데, 그 이유는 문서의 버전은 그 문서와 연관된 각각의 중대한 변화 혹은 이벤트 시에 저장되기 때문이다.
사용자는 현재 작업중인 문서(602)의 선택된 이전 버전(예컨대, 버전(604))과 상호작용할 수 있다. 예를 들어, 사용자는 이전의 문서 버전(604)으로부터 내용을 선택하고 복사하며 그 내용을 현재 작업중인 문서(602)에 붙여넣을 수 있다. 예를 들어, 텍스트 문서 버전에 대해, 사용자는 텍스트의 특정한 부분(예컨대, 문장 혹은 단락)을 선택하고 그 선택부분을 현재 작업중인 문서(602) 내의 지정 위치에 복사할 수 있다. 사용자는 선택된 이전 버전과 상호작용할 수 있고, 문서의 이전 버전에 대해 변경을 야기하지 않는, 문서의 이전 버전의 내용에 대한 임의의 편집 동작들을 수행할 수 있다. 예를 들어, 문서의 이전 버전들은 읽기 전용일 수 있다.
사용자는 사용자 인터페이스 요소(628)를 선택함으로써 사용자 인터페이스(600)를 닫을 수 있다. 예를 들어, 사용자 인터페이스 요소(628)는 사용자 인터페이스(600)를 닫게 하고 도 1의 인터페이스(100)가 디스플레이되게 하는 닫기 혹은 취소 버튼일 수 있다. 일부 구현에서, 사용자 인터페이스 요소(626)의 사용자 선택은 사용자 인터페이스(600)를 닫게 할 수 있다. 예를 들어, 사용자 인터페이스 요소(626)는, 선택될 때, 문서의 현재 버전이 문서의 선택된 이전 버전으로 교체되도록 하고, 인터페이스(600)를 닫게 하고, 도 1의 인터페이스(100)가 디스플레이된 문서의 선택된 이전 버전으로 디스플레이되도록 하는 교체 버튼일 수 있다.
도 7은 문서 버전들을 디스플레이하기 위한 프로세스(700)의 일례의 흐름도이다. 단계 702에서, 문서의 현재 버전이 디스플레이된다. 예를 들어, 문서의 현재 작업중인 버전이 저장할 필요없는 인식 응용 프로그램의 인터페이스(예컨대, 도 1의 인터페이스(100))에 디스플레이될 수 있다. 단계 704에서, 문서의 이전 버전들을 디스플레이하라는 명령어가 수신된다. 예를 들어, 사용자는, 사용자가 문서의 현재 작업중인 버전의 이전 버전들을 보기를 원한다는 것을 나타내는 사용자 인터페이스 요소 혹은 메뉴 아이템을 선택할 수 있다.
단계 706에서, 문서의 현재 작업중인 버전 및 문서의 이전 버전들의 시퀀스가 디스플레이된다. 예를 들어, 문서의 현재 작업중인 버전과 문서의 이전 버전들 둘 다를 동시에 동일한 인터페이스상에 디스플레이함으로써, 사용자는 문서의 이전 버전들을 문서의 현재 작업중인 버전과 비교할 수 있다. 단계 708에서, 동작은 문서의 현재 작업중인 버전 및/또는 문서의 이전 버전들에 대해 수행될 수 있다. 예를 들어, 사용자는 문서의 이전 버전들로부터의 내용을 복사하여 그 복사된 내용을 현재 작업중인 버전에 붙여 넣을 수 있다.
자동 문서 레이아웃 복원( Automatic Document Layout Restoration )
도 8은 문서 레이아웃을 복원하기 위한 프로세스(800)의 일례의 흐름도이다. 단계 802에서, 하나 이상의 문서가 디스플레이된다. 예를 들어, 다수의 문서들이 컴퓨팅 디바이스의 디스플레이 상에 디스플레이될 수 있다. 문서들은 단일 응용 프로그램의 다수의 문서 창들에 디스플레이될 수도 있다. 대안적으로, 문서들은 다수의 응용 프로그램들의 다수의 문서 창들에 디스플레이될 수도 있다. 응용 프로그램들은 상술한 바와 같이 저장할 필요없는 인식 응용 프로그램들일 수 있다.
단계 804에서, 디스플레이된 문서들의 위치가 판정된다. 예를 들어, 디스플레이 상의 문서 창들의 좌표가 판정될 수 있다. 좌표는 데카르트 좌표계에 기초하여 판정될 수 있다. 예를 들어, 좌표는 디스플레이 상의 위치들을 정의하는 (x,y) 좌표들로 판정될 수 있다.
단계 806에서, 문서 레이아웃 정보가 저장된다. 예를 들어, 문서 레이아웃 정보는 디스플레이된 문서들에 대한 식별자들 및 문서들에 대한 대응 디스플레이 위치들(예컨대, x, y 좌표들)을 포함할 수 있다.
단계 808에서, 문서들 혹은 응용 프로그램들의 비정상적인 닫힘이 검출된다. 예를 들어, 응용 프로그램이 실행 중인 컴퓨팅 디바이스가 고장나거나(crash), 컴퓨터에 대한 전력 공급이 중단된다면, 컴퓨팅 디바이스는 기능을 정지할 수 있고 컴퓨팅 디바이스에서 실행중인 응용 프로그램들은 비정상적으로 종료될 수 있다. 또 다른 예로서, 사용자가 응용 프로그램상에서 하드-킬(hard-kill)을 실행한다면, 응용 프로그램은 비정상적으로 종료될 수 있다. 즉, 하드-킬 혹은 컴퓨팅 디바이스의 고장에 응답하여, 응용 프로그램은 정상적인 명령어들의 셧다운 시퀀스를 처리할 수 없고, 따라서, 비정상적으로 종료된다.
응용 프로그램의 비정상적인 종료는 다양한 방식으로 나타내고 검출될 수 있다. 예를 들어, 응용 프로그램은 컴퓨팅 디바이스에 저장된 연관 응용 프로그램 현황 파일(status file)을 가질 수 있다. 응용 프로그램 현황 파일은 처리중인 다양한 지점에서 응용 프로그램의 상태를 나타낼 수 있고 응용 프로그램의 정상적인 셧다운 시퀀스가 수행되지 않았음을 나타낼 수 있다. 현황 파일은 비정상적인 종료가 발생했는지 여부를 판정하기 위해 판독할 수 있다. 대안적으로, 응용 프로그램은 응용 프로그램이 실행 중일 때 컴퓨터 시스템상에서 단순히 파일을 작성하고 응용 프로그램의 정상적인 셧다운 동안 그 파일을 제거할 수 있다. 응용 프로그램이 시작될 때 그 파일이 컴퓨터 시스템상에 여전히 존재하면, 응용 프로그램은 정상적인 셧다운을 처리하지 않았고 비정상적인 종료가 검출될 수 있다.
단계 810에서, 문서 레이아웃 정보가 획득된다. 예를 들어, 단계 808에서 비정상적인 닫힘을 검출하면, 단계 806에서 저장된 문서 레이아웃 정보가 획득될 수 있다. 문서 레이아웃 정보는, 응용 프로그램이 저장소에서 이전에 디스플레이된 문서들의 위치를 지정하는 것을 허용하는 문서 식별자들을 포함할 수 있다. 문서 레이아웃 정보는 또한 응용 프로그램이 컴퓨팅 디바이스의 디스플레이 상에서 식별된 문서들을 그들의 이전 위치들에 디스플레이하는 것을 허용하는 위치 정보를 포함할 수 있다.
단계 812에서, 문서 디스플레이가 복원된다. 예를 들어, 단계 810에서 획득된 문서 레이아웃 정보에 기초하여, 이전에 디스플레이된 문서들이 컴퓨팅 디바이스의 디스플레이 상에서 그들의 이전 디스플레이 위치들에 복원될 수 있다.
구현들은 또한 여기 첨부된 첨부 A 및 첨부 B에서 설명된다.
예시적인 시스템 아키텍처( Example System Architecture )
도 9는 도 1-8의 특징들 및 프로세스들을 구현하기 위한 예시적인 시스템 아키텍처(900)의 블록도이다. 아키텍처(900)는 컴파일된 명령어들에서 파생된 소프트웨어 응용 프로그램들을 실행하는 임의의 전자 디바이스 - 개인용 컴퓨터, 서버, 스마트폰, 미디어 플레이어, 전자 태블릿, 게임 콘솔, 이메일 디바이스 등을 포함하지만 이에 한정되지 않음 - 상에서 구현될 수 있다. 일부 구현에서, 아키텍처(900)는 하나 이상의 프로세서(902), 하나 이상의 입력 디바이스(904), 하나 이상의 디스플레이 디바이스(906), 하나 이상의 네트워크 인터페이스(908) 및 하나 이상의 컴퓨터-판독가능 매체(910)를 포함한다. 이러한 구성요소들 각각은 버스(912)에 의해 연결될 수 있다.
디스플레이 디바이스(906)는 임의의 알려진 디스플레이 기술 - LCD(Liquid Crystal Display) 또는 LED(Light Emitting Diode) 기술을 사용하는 디스플레이 디바이스들을 포함하지만 이에 한정되지 않음 - 일 수 있다. 프로세서(들)(902)는 임의의 알려진 프로세서 기술 - 그래픽 프로세서 및 멀티-코어 프로세서를 포함하지만 이에 한정되지 않음 - 을 사용할 수 있다. 입력 디바이스(904)는 임의의 알려진 입력 디바이스 기술 - 키보드(가상 키보드를 포함함), 마우스, 트랙볼, 및 접촉식(touch-sensitive) 패드 혹은 디스플레이를 포함하지만 이에 한정되지 않음 - 일 수 있다. 버스(912)는 임의의 알려진 내부 혹은 외부 버스 기술 - ISA, EISA, PCI, PCI 익스프레스, 누버스(NuBus), USB, 직렬 ATA 또는 파이어와이어를 포함하지만 이에 한정되지 않음 - 일 수 있다. 컴퓨터-판독가능 매체(910)는 실행을 위해 프로세서(들)(902)에 명령어를 제공하는데 참여하는 임의의 매체 - 비-휘발성 저장 매체(예컨대, 광 디스크, 자기 디스크, 플래시 드라이브 등) 또는 휘발성 매체(예컨대, SDRAM, ROM 등)를 포함하지만 이에 한정되지 않음 - 일 수 있다.
컴퓨터-판독가능 매체(910)는 운영 체제(예컨대, Mac OS®, Windows®, 리눅스)를 구현하기 위한 다양한 명령어들(914)을 포함할 수 있다. 운영 체제는 멀티-유저, 멀티프로세싱, 멀티태스킹, 멀티스레딩, 실시간 등일 수 있다. 운영 체제는 기본 태스크들 - 입력 디바이스(904)로부터의 입력 인지; 디스플레이 디바이스(906)로의 출력 전송; 컴퓨터-판독가능 매체(910) 상의 파일들 및 디렉토리들의 트랙 유지; I/O 제어기를 통해 혹은 직접적으로 제어될 수 있는 주변 디바이스들(예컨대, 디스크 드라이브, 프린터 등)을 제어; 및 버스(912) 상의 트래픽 관리를 포함하지만 이에 한정되지 않음 - 을 수행한다. 네트워크 통신 명령어들(916)은 네트워크 접속들(예컨대, 통신 프로토콜을 구현하기 위한 소프트웨어, 이를테면, TCP/IP, HTTP, 이더넷 등)을 수립 및 유지할 수 있다.
그래픽 처리 시스템(918)은 그래픽 및 이미지 처리 능력을 제공하는 명령어들을 포함할 수 있다. 예를 들어, 그래픽 처리 시스템(918)은, 도 1-8을 참조하여 설명된 바와 같이, 리샘플링 프로세스들을 구현할 수 있다.
응용 프로그램(들)(920)은, 이미지 처리 응용 프로그램 또는 도 1-8을 참조하여 설명된 리샘플링 프로세스들을 사용하는 또 다른 응용 프로그램일 수 있다. 리샘플링 프로세스들은 또한 운영 체제(914)에서 구현될 수도 있다.
설명된 특징들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터, 데이터 및 명령을 수신하고, 그들로 데이터 및 명령을 송신하기 위해 연결된 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템에서 실행가능한 하나 이상의 컴퓨터 프로그램에서 유리하게 구현될 수 있다. 컴퓨터 프로그램은 어떤 활동을 수행하거나 어떤 결과를 초래하기 위해 컴퓨터에서 직접적으로 혹은 간접적으로 사용될 수 있는 명령어들의 세트이다. 컴퓨터 프로그램은 컴파일된 혹은 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어(예컨대, 오브젝티브-C, 자바)로 기재될 수 있고, 자립형 프로그램으로서 혹은 모듈로서, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있다.
명령어들의 프로그램의 실행을 위한 적절한 프로세서들은, 예로서, 일반 목적 및 특수 목적 마이크로프로세서 둘 다, 및 단 하나의 프로세서나 임의의 종류의 컴퓨터의 다수 프로세서나 코어 중 하나를 포함한다. 일반적으로, 프로세서는 판독-전용 메모리나 랜덤 액세스 메모리 혹은 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령어를 실행하기 위한 프로세서 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 컴퓨터는 또한 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 디바이스 - 그러한 디바이스는 자기 디스크, 이를테면, 내부 하드 디스크 및 이동가능 디스크; 광자기 디스크; 및 광 디스크를 포함함 - 를 포함하거나, 그와 통신하기 위해 동작가능하게 연결될 것이다. 컴퓨터 프로그램 명령어 및 데이터를 명백히(tangibly) 포함하기에 적합한 저장 디바이스는 모든 형태의 비-휘발성 메모리 - 예로서, 반도체 메모리 디바이스, 이를테면, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 이를테면, 내부 하드 디스크 및 이동가능 디스크; 광자기 디스크; 및 CD-ROM과 DVD-ROM 디스크를 포함함 - 를 포함한다. 프로세서 및 메모리는 ASIC(application-specific integrated circuits)에 의해 보충(supplement)되거나 거기에 포함(incorporate)될 수 있다.
사용자와의 상호작용을 제공하기 위해, 상기 특징들은 사용자에게 정보를 디스플레이하기 위한 CRT(cathod ray tube) 혹은 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 혹은 트랙볼과 같은 포인팅 디바이스와 키보드를 구비하는 컴퓨터에서 구현될 수 있다.
상기 특징들은 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 응용 프로그램 서버나 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, GUI 혹은 인터넷 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트를 포함하거나, 그들의 임의의 조합인 컴퓨터 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 디지털 데이터 통신의 매체 혹은 임의의 형태에 의해 접속될 수 있다. 통신 네트워크의 예는, 예컨대, LAN, WAN, 및 인터넷을 형성하는 컴퓨터들과 네트워크들을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있고 통상적으로 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행하고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
개시된 실시예들의 하나 이상의 특징들 혹은 단계들은 API를 사용하여 구현될 수 있다. API는 콜링 응용 프로그램(calling application) 및 서비스를 제공하거나, 데이터를 제공하거나, 연산 혹은 계산을 수행하는 다른 소프트웨어 코드(예컨대, 운영 체제, 라이브러리 루틴, 기능(function)) 사이를 넘나드는 하나 이상의 파라미터를 정의할 수 있다.
API는 API 명세 문서에 정의된 콜 컨벤션에 기초하여 파라미터 리스트 또는 다른 구조를 통해 하나 이상의 파라미터를 전송 또는 수신하는 프로그램 코드 내의 하나 이상의 콜로서 구현될 수 있다. 파라미터는 상수, 키, 데이터 구조, 개체(object), 객체 클래스(object class), 변수, 데이터 유형, 포인터, 어레이, 리스트, 또는 또 다른 콜일 수 있다. API 콜들 및 파라미터들은 임의의 프로그래밍 언어로 구현될 수 있다. 프로그래밍 언어는 프로그래머가 API를 지원하는 기능들에 액세스하기 위해 이용할 어휘(vocabulary) 및 콜링 컨벤션을 정의할 수 있다.
일부 구현에서, API 콜은 응용 프로그램에게 그 응용 프로그램을 실행하는 디바이스의 능력, 이를테면, 입력 용량, 출력 용량, 처리 용량, 전력 용량, 통신 용량 등을 보고할 수 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 다양한 변형이 행해질 수 있다는 것이 이해될 것이다. 예를 들어, 다른 단계들이 제공될 수 있고, 또는 설명된 플로우들로부터 단계들이 제거될 수도 있고, 다른 구성요소들이 설명된 시스템에 추가될 수 있고, 또는 설명된 시스템으로부터 제거될 수도 있다. 따라서, 다음 청구 범위들의 범위 내에는 다른 구현들이 존재한다.

Claims (29)

  1. 컴퓨팅 디바이스의 제1 사용자 인터페이스에 문서의 현재 버전을 디스플레이하는 단계;
    상기 문서의 이전에 저장된 버전들을 디스플레이하라는 지시를 수신하는 단계; 및
    상기 지시를 수신하는 것에 응답하여, 제1 부분과 제2 부분을 구비하는 제2 사용자 인터페이스를 디스플레이하는 단계 - 상기 제2 사용자 인터페이스의 상기 제1 부분에는 상기 문서의 상기 현재 버전이 디스플레이되고, 상기 제2 사용자 인터페이스의 상기 제2 부분에는 상기 문서의 이전 버전들의 시퀀스 중에서 상기 문서의 특정한 이전 버전이 디스플레이됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 문서의 상기 특정한 이전 버전에서의 내용의 선택을 수신하는 단계;
    상기 선택된 내용을 복사하는 단계; 및
    상기 선택된 내용을 상기 제2 사용자 인터페이스의 상기 제1 부분에 디스플레이된 상기 문서의 상기 현재 버전에 붙여 넣는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제2 사용자 인터페이스의 상기 제1 부분에 상기 문서의 상기 현재 버전의 내용을 디스플레이하는 단계; 및
    상기 제2 사용자 인터페이스의 상기 제2 부분에 상기 문서의 상기 특정한 이전 버전의 내용을 디스플레이하는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 특정한 이전 버전의 내용을 스크롤하는 단계; 및
    상기 내용을 스크롤하면서 상기 특정한 이전 버전의 내용을 디스플레이하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 문서의 상기 현재 버전을 상기 특정한 이전 버전으로 교체하라는 지시를 수신하는 단계; 및
    상기 지시에 응답하여, 상기 문서의 상기 특정한 이전 버전을 복사하고, 상기 현재 버전을 이전 버전으로서 마크하고, 상기 특정한 이전 버전의 사본을 현재 버전으로서 저장하는 단계
    를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 문서의 상기 특정한 이전 버전이 디스플레이될 때까지 상기 문서의 이전 버전들의 시퀀스를 스크롤하는 단계
    를 더 포함하는 방법.
  7. 제1항에 있어서, 상기 문서의 이전 버전들의 시퀀스는 문서들의 스택(stack)으로서 디스플레이되는 방법.
  8. 컴퓨팅 디바이스 상에서 문서와 연관된 버저닝 이벤트를 검출하는 단계; 및
    상기 버저닝 이벤트를 검출하는 것에 응답하여, 상기 문서를 복사하는 단계와 사본을 상기 문서의 이전 버전으로서 지속적으로 저장하는 단계
    를 포함하고,
    상기 버저닝 이벤트는 상기 문서의 버전을 작성하라는 사용자로부터의 명시적 지시(explicit indication)와 연관되지 않는 방법.
  9. 제8항에 있어서, 상기 버저닝 이벤트는 상기 문서를 열기, 상기 문서를 닫기, 상기 문서를 이메일로 보내기, 상기 문서를 인쇄, 상기 문서를 삭제, 상기 문서에 대한 사용자 입력에 있어서의 긴 일시 정지, 또는 잠긴 문서를 편집하려는 시도인 방법.
  10. 제8항에 있어서,
    상기 버저닝 이벤트를 나타내는 상기 이전 버전을 위한 라벨을 생성하는 단계; 및
    상기 라벨을 상기 문서의 상기 이전 버전과 연관시키는 단계
    를 더 포함하는 방법.
  11. 제8항에 있어서, 상기 문서를 복사하는 단계는 상기 문서와 상기 문서의 특정한 이전 버전 간의 차이점들을 복사하는 단계를 포함하고; 상기 사본을 상기 문서의 이전 버전으로서 지속적으로 저장하는 단계는 상기 문서와 상기 특정한 이전 버전 간의 상기 차이점들을 저장하는 단계를 포함하는 방법.
  12. 컴퓨팅 디바이스 상에서 문서와 연관된 저장 이벤트를 검출하는 단계; 및
    상기 저장 이벤트를 검출하는 것에 응답하여, 상기 문서를 저장하는 단계
    를 포함하고,
    상기 저장 이벤트는 상기 문서를 저장하라는 사용자로부터의 명시적 지시와 연관되지 않는 방법.
  13. 제12항에 있어서, 상기 저장 이벤트는 경과된 시간 간격, 사용자 입력에 있어서의 일시 정지, 상기 문서로부터의 포커스 이동, 상기 문서를 닫기, 상기 문서를 인쇄, 상기 문서에 내용을 붙여넣기, 상기 문서로부터 내용 삭제, 또는 상기 문서를 포맷팅하는 것인 방법.
  14. 컴퓨팅 디바이스의 디스플레이 상에서 하나 이상의 문서를 하나 이상의 대응 위치에 디스플레이하는 단계; 및
    상기 하나 이상의 문서에 대응하는 하나 이상의 식별자 및 상기 하나 이상의 대응 위치를 포함하는 문서 레이아웃 정보를 저장하는 단계
    를 포함하는 방법.
  15. 방법으로서,
    컴퓨팅 디바이스에 디스플레이된 하나 이상의 문서의 비정상적인 닫힘을 검출하는 단계;
    상기 하나 이상의 문서에 대응하는 하나 이상의 식별자 및 상기 하나 이상의 문서에 대한 하나 이상의 위치를 포함하는 문서 레이아웃 정보를 획득하는 단계; 및
    상기 문서 레이아웃 정보에 따라 상기 하나 이상의 문서를 디스플레이하는 단계
    를 포함하는 방법.
  16. 하나 이상의 명령어를 포함하는 컴퓨터-판독가능 저장 매체로서,
    상기 하나 이상의 명령어는, 적어도 하나의 프로세서에 의해 실행될 때,
    컴퓨팅 디바이스의 제1 사용자 인터페이스에 문서의 현재 버전을 디스플레이하게 하고,
    상기 문서의 이전에 저장된 버전들을 디스플레이하라는 지시를 수신하게 하고,
    상기 지시를 수신하는 것에 응답하여, 제1 부분과 제2 부분을 구비하는 제2 사용자 인터페이스를 디스플레이하게 하는 - 상기 제2 사용자 인터페이스의 상기 제1 부분에는 상기 문서의 상기 현재 버전이 디스플레이되고, 상기 제2 사용자 인터페이스의 상기 제2 부분에는 상기 문서의 이전 버전들의 시퀀스 중에서 상기 문서의 특정한 이전 버전이 디스플레이됨 -
    것인, 컴퓨터-판독가능 저장 매체.
  17. 제16항에 있어서, 상기 명령어들은,
    상기 문서의 상기 특정한 이전 버전에서의 내용의 선택을 수신하게 하고;
    상기 선택된 내용을 복사하게 하고;
    상기 선택된 내용을 상기 제2 사용자 인터페이스의 상기 제1 부분에 디스플레이된 상기 문서의 상기 현재 버전에 붙여 넣게 하는
    명령어들을 포함하는 컴퓨터-판독가능 저장 매체.
  18. 제16항에 있어서, 상기 명령어들은,
    상기 제2 사용자 인터페이스의 상기 제1 부분에 상기 문서의 상기 현재 버전의 내용을 디스플레이하게 하고;
    상기 제2 사용자 인터페이스의 상기 제2 부분에 상기 문서의 상기 특정한 이전 버전의 내용을 디스플레이하게 하는
    명령어들을 포함하는 컴퓨터-판독가능 저장 매체.
  19. 제16항에 있어서, 상기 명령어들은,
    상기 특정한 이전 버전의 내용을 스크롤하게 하고;
    상기 내용을 스크롤하면서 상기 특정한 이전 버전의 내용을 디스플레이하게 하는
    명령어들을 포함하는 컴퓨터-판독가능 저장 매체.
  20. 제16항에 있어서, 상기 명령어들은,
    상기 문서의 상기 현재 버전을 상기 특정한 이전 버전으로 교체하라는 지시를 수신하게 하고;
    상기 지시에 응답하여, 상기 문서의 상기 특정한 이전 버전을 복사하고, 상기 현재 버전을 이전 버전으로서 마크하고, 상기 특정한 이전 버전의 사본을 현재 버전으로서 저장하게 하는
    명령어들을 포함하는 컴퓨터-판독가능 저장 매체.
  21. 제16항에 있어서, 상기 명령어들은,
    상기 문서의 상기 특정한 이전 버전이 디스플레이될 때까지 상기 문서의 이전 버전들의 시퀀스를 스크롤하게 하는
    명령어들을 포함하는 컴퓨터-판독가능 저장 매체.
  22. 제16항에 있어서, 상기 문서의 이전 버전들의 시퀀스는 문서들의 스택으로서 디스플레이되는 컴퓨터-판독가능 저장 매체.
  23. 하나 이상의 프로세서; 및
    하나 이상의 명령어를 저장하는 컴퓨터-판독가능 저장 매체
    를 포함하고,
    상기 하나 이상의 명령어는, 상기 하나 이상의 프로세서에 의해 실행될 때,
    컴퓨팅 디바이스의 제1 사용자 인터페이스에 문서의 현재 버전을 디스플레이하게 하고,
    상기 문서의 이전에 저장된 버전들을 디스플레이하라는 지시를 수신하게 하고,
    상기 지시를 수신하는 것에 응답하여, 제1 부분과 제2 부분을 구비하는 제2 사용자 인터페이스를 디스플레이하게 하는 - 상기 제2 사용자 인터페이스의 상기 제1 부분에는 상기 문서의 상기 현재 버전이 디스플레이되고, 상기 제2 사용자 인터페이스의 상기 제2 부분에는 상기 문서의 이전 버전들의 시퀀스 중에서 상기 문서의 특정한 이전 버전이 디스플레이됨 - 시스템.
  24. 제23항에 있어서, 상기 명령어들은,
    상기 문서의 상기 특정한 이전 버전에서의 내용의 선택을 수신하게 하고;
    상기 선택된 내용을 복사하게 하고;
    상기 선택된 내용을 상기 제2 사용자 인터페이스의 상기 제1 부분에 디스플레이된 상기 문서의 상기 현재 버전에 붙여 넣게 하는
    명령어들을 포함하는 시스템.
  25. 제23항에 있어서, 상기 명령어들은,
    상기 제2 사용자 인터페이스의 상기 제1 부분에 상기 문서의 상기 현재 버전의 내용을 디스플레이하게 하고;
    상기 제2 사용자 인터페이스의 상기 제2 부분에 상기 문서의 상기 특정한 이전 버전의 내용을 디스플레이하게 하는
    명령어들을 포함하는 시스템.
  26. 제23항에 있어서, 상기 명령어들은,
    상기 특정한 이전 버전의 내용을 스크롤하게 하고;
    상기 내용을 스크롤하면서 상기 특정한 이전 버전의 내용을 디스플레이하게 하는
    명령어들을 포함하는 시스템.
  27. 제23항에 있어서, 상기 명령어들은,
    상기 문서의 상기 현재 버전을 상기 특정한 이전 버전으로 교체하라는 지시를 수신하게 하고;
    상기 지시에 응답하여, 상기 문서의 상기 특정한 이전 버전을 복사하고, 상기 현재 버전을 이전 버전으로서 마크하고, 상기 특정한 이전 버전의 사본을 상기 현재 버전으로서 저장하게 하는
    명령어들을 포함하는 시스템.
  28. 제23항에 있어서, 상기 명령어들은,
    상기 문서의 상기 특정한 이전 버전이 디스플레이될 때까지 상기 문서의 이전 버전들의 시퀀스를 스크롤하게 하는
    명령어들을 포함하는 시스템.
  29. 제24항에 있어서, 상기 문서의 이전 버전들의 시퀀스는 문서들의 스택으로서 디스플레이되는 시스템.
KR1020120004463A 2011-01-14 2012-01-13 저장할 필요없는 문서 KR20120090794A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161433182P 2011-01-14 2011-01-14
US61/433,182 2011-01-14
US13/174,661 2011-06-30
US13/174,661 US20120185762A1 (en) 2011-01-14 2011-06-30 Saveless Documents

Publications (1)

Publication Number Publication Date
KR20120090794A true KR20120090794A (ko) 2012-08-17

Family

ID=45655137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120004463A KR20120090794A (ko) 2011-01-14 2012-01-13 저장할 필요없는 문서

Country Status (8)

Country Link
US (1) US20120185762A1 (ko)
EP (1) EP2477123A3 (ko)
JP (1) JP2012185805A (ko)
KR (1) KR20120090794A (ko)
CN (1) CN102681914A (ko)
AU (1) AU2012200088A1 (ko)
BR (1) BR102012000929A2 (ko)
MX (1) MX2012000673A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019199138A1 (ko) * 2018-04-13 2019-10-17 황영석 재생이 가능한 텍스트 편집기 및 그 편집 방법
KR20190135983A (ko) * 2019-12-02 2019-12-09 황영석 재생이 가능한 텍스트 편집기 및 그 편집 방법

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US9135312B2 (en) * 2009-11-02 2015-09-15 Google Inc. Timeslider
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US20130132870A1 (en) * 2011-11-23 2013-05-23 Salesforce.Com, Inc. System, method and computer program product for transient storage of user interface configurations
US9589541B2 (en) 2012-02-28 2017-03-07 Ebay Inc. Location-based display of pixel history
US9229919B1 (en) * 2012-03-19 2016-01-05 Apttex Corporation Reconciling smart fields
US20150205463A1 (en) * 2012-06-26 2015-07-23 Google Inc. Method for storing form data
US9582481B2 (en) * 2012-09-29 2017-02-28 Apple Inc. Mechanism for partial document restore
JP5898043B2 (ja) * 2012-10-19 2016-04-06 日本電信電話株式会社 履歴情報表示プログラム及び履歴情報表示装置
JP5947188B2 (ja) * 2012-10-19 2016-07-06 日本電信電話株式会社 履歴情報表示プログラム及び履歴情報表示装置
JP5898042B2 (ja) * 2012-10-19 2016-04-06 日本電信電話株式会社 履歴情報生成プログラム及び履歴情報生成装置
US20140123076A1 (en) * 2012-11-01 2014-05-01 Microsoft Corporation Navigating among edit instances of content
DK2954396T3 (da) * 2013-02-07 2019-08-05 Dizmo Ag System til at organisere og vise information på en visningsenhed
WO2015016921A1 (en) 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Comparing user interfaces
CN103593258A (zh) * 2013-09-23 2014-02-19 西安酷派软件科技有限公司 界面备份方法、备份信息处理方法、终端及服务器
US20150165323A1 (en) * 2013-12-17 2015-06-18 Microsoft Corporation Analog undo for reversing virtual world edits
US9740777B2 (en) 2013-12-20 2017-08-22 Ebay Inc. Systems and methods for saving and presenting a state of a communication session
US10635540B2 (en) 2014-04-02 2020-04-28 Microsoft Technology Licensing, Llc Modern document save and synchronization status
US10671275B2 (en) * 2014-09-04 2020-06-02 Apple Inc. User interfaces for improving single-handed operation of devices
CN104615360A (zh) * 2015-03-06 2015-05-13 庞迪 一种基于语音识别的历史个人桌面恢复方法及系统
US20160299656A1 (en) * 2015-04-08 2016-10-13 Thomas M. Isaacson System and method for saving an open file
CN104915603A (zh) * 2015-04-30 2015-09-16 努比亚技术有限公司 一种终端设备上数据的保存方法和终端设备
US11106645B1 (en) * 2015-09-29 2021-08-31 EMC IP Holding Company LLC Multi point in time object store
US10102190B2 (en) 2015-12-28 2018-10-16 Microsoft Technology Licensing, Llc. Memory conserving versioning of an electronic document
US10769365B2 (en) * 2015-12-29 2020-09-08 Microsoft Technology Licensing, Llc Document history interface
US10599526B2 (en) 2016-01-13 2020-03-24 Microsoft Technology Licensing, Llc Auto-save operation for collaborative editing of electronic documents
JP2017151727A (ja) * 2016-02-24 2017-08-31 富士通株式会社 カルテ表示プログラム、カルテ表示装置、およびカルテ表示方法
JP6203311B2 (ja) * 2016-03-12 2017-09-27 ヴェルク株式会社 見積管理システム
US11074112B2 (en) * 2017-01-13 2021-07-27 Microsoft Technology Licensing, Llc Maintaining the responsiveness of a user interface while performing a synchronous operation
US10802698B1 (en) * 2017-02-06 2020-10-13 Lucid Software, Inc. Diagrams for structured data
US20190005009A1 (en) * 2017-06-29 2019-01-03 Microsoft Technology Licensing, Llc Customized version labeling for electronic documents
CN107729108A (zh) * 2017-10-10 2018-02-23 天闻数媒科技(北京)有限公司 一种在线集体备课控制方法、装置、设备和存储介质
CN107885807B (zh) * 2017-11-03 2021-06-11 广州视源电子科技股份有限公司 一种文件保存方法、装置、智能平板和存储介质
US11270069B1 (en) * 2018-04-30 2022-03-08 InVisionApp Inc. Collaboration synchronization across devices
US10796086B2 (en) * 2018-08-25 2020-10-06 Microsoft Technology Licensing, Llc Selectively controlling modification states for user-defined subsets of objects within a digital document
JP7298133B2 (ja) * 2018-10-30 2023-06-27 セイコーエプソン株式会社 表示方法、および表示装置
US11240320B2 (en) 2018-11-16 2022-02-01 Microsoft Technology Licensing, Llc System and method for managing notifications of document modifications
CN109857999A (zh) * 2018-12-30 2019-06-07 广东一一五科技股份有限公司 一种文档草稿保存方法、装置、电子设备及存储介质
US10929814B2 (en) 2019-05-02 2021-02-23 Microsoft Technology Licensing, Llc In-context display of out-of-context contact activity
US11244100B2 (en) 2019-05-08 2022-02-08 Microsoft Technology Licensing, Llc Visualizing changes based on document scope
JP7443685B2 (ja) * 2019-07-19 2024-03-06 株式会社リコー 表示装置、表示方法、表示プログラム
US20210390647A1 (en) * 2020-06-16 2021-12-16 Prologis, L.P. Systems and methods for automated staging and capture of real estate negotiations

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701454B1 (en) * 2000-06-05 2004-03-02 Microsoft Corporation Method and system for recovering information during a program failure
US6825844B2 (en) * 2001-01-16 2004-11-30 Microsoft Corp System and method for optimizing a graphics intensive software program for the user's graphics hardware
US20020107886A1 (en) * 2001-02-07 2002-08-08 Gentner Donald R. Method and apparatus for automatic document electronic versioning system
US20040230892A1 (en) * 2003-03-17 2004-11-18 Libac Corporation Systems and methods for document project management
US20060224956A1 (en) * 2005-04-05 2006-10-05 International Business Machines Corporation Intelligent document saving
US7882072B1 (en) * 2005-12-30 2011-02-01 Google Inc. Autosave functionality for web browser
US8209308B2 (en) * 2006-05-01 2012-06-26 Rueben Steven L Method for presentation of revisions of an electronic document
US20080126442A1 (en) * 2006-08-04 2008-05-29 Pavel Cisler Architecture for back up and/or recovery of electronic data
US7856424B2 (en) * 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US7860839B2 (en) * 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US7739622B2 (en) * 2006-10-27 2010-06-15 Microsoft Corporation Dynamic thumbnails for document navigation
US7974948B2 (en) * 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US8607155B2 (en) * 2008-09-12 2013-12-10 9224-5489 Quebec Inc. Method of managing groups of arrays of documents
US8984390B2 (en) * 2008-09-15 2015-03-17 Palantir Technologies, Inc. One-click sharing for screenshots and related documents
US20110296351A1 (en) * 2010-05-26 2011-12-01 T-Mobile Usa, Inc. User Interface with Z-axis Interaction and Multiple Stacks
US20120185767A1 (en) * 2011-01-14 2012-07-19 Apple Inc. Modifying application behavior
US20120246565A1 (en) * 2011-03-24 2012-09-27 Konica Minolta Laboratory U.S.A., Inc. Graphical user interface for displaying thumbnail images with filtering and editing functions
US8533593B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc Hierarchical display and navigation of document revision histories

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019199138A1 (ko) * 2018-04-13 2019-10-17 황영석 재생이 가능한 텍스트 편집기 및 그 편집 방법
US11093696B2 (en) 2018-04-13 2021-08-17 Young Seok HWANG Playable text editor and editing method therefor
KR20190135983A (ko) * 2019-12-02 2019-12-09 황영석 재생이 가능한 텍스트 편집기 및 그 편집 방법

Also Published As

Publication number Publication date
EP2477123A2 (en) 2012-07-18
CN102681914A (zh) 2012-09-19
MX2012000673A (es) 2012-07-13
BR102012000929A2 (pt) 2016-10-11
EP2477123A3 (en) 2012-11-14
US20120185762A1 (en) 2012-07-19
JP2012185805A (ja) 2012-09-27
AU2012200088A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
KR20120090794A (ko) 저장할 필요없는 문서
US11258842B2 (en) Systems and methods for notifying users of changes to files in cloud-based file-storage systems
US7447989B2 (en) Method and system for setting document-linked timed reminders
KR101331315B1 (ko) 리치 드래그 드롭 사용자 인터페이스
KR101149974B1 (ko) 다중-값 속성을 표시하고 편집하기 위한 시스템 및 방법
US7250955B1 (en) System for displaying a notification window from completely transparent to intermediate level of opacity as a function of time to indicate an event has occurred
US7353241B2 (en) Method, medium and system for recovering data using a timeline-based computing environment
KR101330491B1 (ko) 리치 드래그 드롭 사용자 인터페이스
US8631079B2 (en) Displaying a list of file attachments associated with a message thread
US8538927B2 (en) User interface for backup management
US8166415B2 (en) User interface for backup management
US10649864B1 (en) Framework to facilitate taking snapshots of web application on demand
TW201602889A (zh) 管理具有時間線的日曆的具有內容的事件
US20100070844A1 (en) Automatic creation and server push of drafts
WO2016081251A1 (en) Local representation of shared files in disparate locations
JP2005198064A (ja) ファイル管理プログラム
US10733054B2 (en) User engagement aware auto-restart
US7080103B2 (en) Personal information management system and method with audit functionality
McIntosh et al. Mac OS X in a Nutshell
Sanderson et al. AppleScript Amenities

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application