KR20140027332A - 상이한 파일 호스트를 이용한 파일 액세스 기법 - Google Patents

상이한 파일 호스트를 이용한 파일 액세스 기법 Download PDF

Info

Publication number
KR20140027332A
KR20140027332A KR1020137031297A KR20137031297A KR20140027332A KR 20140027332 A KR20140027332 A KR 20140027332A KR 1020137031297 A KR1020137031297 A KR 1020137031297A KR 20137031297 A KR20137031297 A KR 20137031297A KR 20140027332 A KR20140027332 A KR 20140027332A
Authority
KR
South Korea
Prior art keywords
file
host
application
user interface
files
Prior art date
Application number
KR1020137031297A
Other languages
English (en)
Other versions
KR101798697B1 (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 KR20140027332A publication Critical patent/KR20140027332A/ko
Application granted granted Critical
Publication of KR101798697B1 publication Critical patent/KR101798697B1/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/44Arrangements for executing specific 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/13File access structures, e.g. distributed indices
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Operations Research (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Algebra (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

파일 액세스 요청은 애플리케이션으로부터 수신된다. 파일 액세스 요청에 대한 하나 이상의 파일 타입이 식별되며, 식별된 하나 이상의 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트가 또한 식별된다. 사용자 인터페이스가 디스플레이되며, 사용자 인터페이스는 호스트 영역을 포함한다. 호스트 영역 내에서, 하나 이상의 파일 호스트 중 적어도 하나는 검색을 위해 선택될 수 있는 적어도 하나의 파일 호스트의 하나 이상의 파일, 또는 어느 하나 이상의 파일이 저장되는지에 대해 선택될 수 있는 하나 이상의 위치를 식별하는 사용자 인터페이스의 일부를 디스플레이한다.

Description

상이한 파일 호스트를 이용한 파일 액세스 기법{FILE ACCESS WITH DIFFERENT FILE HOSTS}
사용자는 종종 문서 파일, 이미지 파일, 음악 파일, 비디오 파일 등과 같은 그들에게 관심을 끄는 여러 가지 상이한 파일을 가진다. 이들 파일은 사용자 컴퓨터의 하드 드라이브 또는 네트워크를 통한 서버와 같은 다양한 저장 장치에 저장될 수 있다. 그러나, 그러한 저장 장치에 걸쳐 그러한 파일을 추적하는 것은 사용자에게 번거로울 수 있고, 종종 사용자가 파일을 사용하고자 하는데 이용하는 각각의 애플리케이션으로부터 이들 다양한 저장 장치에 사용자가 액세스할 것을 요구하며 어느 저장 장치가 어느 파일을 갖는지를 추적할 것을 요구한다.
본 요약은 이하 상세한 설명에 더 설명되는 개념의 선택을 간략한 형 태로 소개하기 위해 제공된다. 본 요약은 청구된 발명 대상의 중요 특징 또는 본질적 특징을 식별하도록 의도되지 않으며, 청구된 발명 대상의 범위를 제한하는데 사용되도록 의도되지 않는다.
하나 이상의 측면에 따르면, 파일 액세스 요청이 애플리케이션으로부터 수신된다. 파일 액세스 요청에 대한 하나 이상의 파일 타입이 식별되며, 식별된 하나 이상의 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트가 또한 식별된다. 사용자 인터페이스가 디스플레이되며, 사용자 인터페이스는 호스트 영역을 포함한다. 호스트 영역 내에서, 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트는 검색을 위해 선택될 수 있는 적어도 하나의 파일 호스트의 하나 이상의 파일을 식별하는 사용자 인터페이스의 일부를 디스플레이한다.
하나 이상의 측면에 따르면, 파일 액세스 요청은 애플리케이션으로부터 수신된다. 애플리케이션에 의해 저장될 파일의 파일 타입이 식별되며, 식별된 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트가 또한 식별된다. 사용자 인터페이스가 디스플레이되며, 사용자 인터페이스는 호스트 영역을 포함한다. 호스트 영역 내에서, 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트는 파일이 적어도 하나의 파일 호스트에 의해 저장되는 것을 허용하는 사용자 인터페이스의 일부를 디스플레이한다.
상세한 설명은 첨부 도면을 참조하여 설명된다. 도면에서, 참조 번호의 가장 좌측 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다. 설명 및 도면에서 상이한 예에 동일한 참조 번호를 사용하는 것은 동일 또는 유사한 항목을 나타낼 수 있다.
도 1은 하나 이상의 실시예에 따른 본 명세서에서 논의되는 상이한 파일 호스트 기술을 사용하여 파일 액세스를 구현하는 예시적 시스템을 예시한다.
도 2는 하나 이상의 실시예에 따른 본 명세서에서 논의되는 상이한 파일 호스트 기술을 사용하여 파일 액세스를 구현하는 다른 예시적 시스템을 예시한다.
도 3, 도 4, 도 5, 및 도 6은 하나 이상의 실시예에 따른 본 명세서에서 논의되는 상이한 호스트 기술에 의한 파일 액세스를 사용하여 디스플레이되는 예시적 사용자 인터페이스를 각각 도시한다.
도 7은 하나 이상의 실시예에 따른 상이한 파일 호스트를 사용해서 파일 액세스를 구현하기 위한 예시적 절차를 도시한다.
도 8은 하나 이상의 실시예에 따른 상이한 파일 호스트를 사용해서 파일 액세스를 구현하는 다른 예시적 절차를 도시한다.
개요
상이한 파일 호스트를 사용한 파일 액세스가 본 명세서에서 논의된다. 애플리케이션을 사용할 때, 사용자는 파일 시스템, 다른 애플리케이션, 서비스 제공자 등과 같은 다양한 파일 호스트에 의해 유지되는 파일을 검색할 수 있다. 유사하게, 사용자는 파일을 다양한 파일 호스트에 저장할 수 있다. 호스트 영역을 갖는 사용자 인터페이스(UI)가 디스플레이되며, 다양한 파일 호스트는 사용자 인터페이스를 호스트 영역 내에 디스플레이할 수 있다. 각각의 파일 호스트는 파일 호스트가 원하는 대로 호스트 영역 내에서 디스플레이를 조정할 수 있다. 이 호스트 영역 내에 디스플레이되는 사용자 인터페이스와 상호 작용함으로써, 사용자는 자신이 사용하고 있는 애플리케이션에 인출할 다양한 파일 호스트로부터의 파일을 선택하며/하거나, 파일이 저장될 목적지 파일 호스트를 선택할 수 있다.
이하의 논의에서, 본 명세서에 설명되는 기술을 수행하도록 동작 가능한 예시적 시스템이 먼저 설명된다. 그 후, 예시적 절차가 설명되며, 절차는 예시적 시스템뿐만 아니라 다른 시스템에서 동작 가능하다. 마찬가지로, 예시적 시스템은 예시적 절차의 수행에 한정되지 않는다.
예시적 시스템
도 1은 하나 이상의 실시예에 따른 본 명세서에서 논의되는 상이한 파일 호스트 기술을 사용하여 파일 액세스를 구현하는 예시적 시스템(100)을 예시한다. 예시된 시스템(100)은 컴퓨팅 장치(102)를 포함하며, 컴퓨팅 장치는 다양한 방식으로 구성될 수 있다. 예를 들어, 컴퓨팅 장치(102)는 데스크톱 컴퓨터, 태블릿 또는 노트패드 컴퓨터, 이동국, 엔터테인먼트 기기, 디스플레이 장치에 통신 가능하게 결합되는 셋톱 박스, 텔레비전 또는 다른 디스플레이 장치, 셀룰러 또는 다른 무선 전화, 게임 콘솔 등과 같은 네트워크(104)를 통해 통신할 수 있는 컴퓨터로 구성될 수 있다.
컴퓨팅 장치(102)는 그 범위가 실질적 메모리 및 프로세서 자원을 갖는 최고 자원 장치(full resource device)(예를 들어, 개인용 컴퓨터, 게임 콘솔)로부터 제한된 메모리 및/또는 처리 자원을 갖는 저 자원 장치(low-resource device)(예를 들어, 종래의 셋톱 박스, 핸드헬드 게임 콘솔)까지 걸쳐있을 수 있다. 게다가, 단일 컴퓨팅 장치(102)가 도시되지만, 컴퓨팅 장치(102)는 동작을 수행하도록 업무에 의해 이용되는 다수의 서버, 리모트 컨트롤 및 셋톱 박스 결합, 이미지 캡쳐 장치(예를 들어, 카메라) 및 제스처를 캡쳐하도록 구성되는 게임 콘솔 등과 같은 다수의 상이한 장치를 나타낼 수 있다.
컴퓨팅 장치(102)는 또한 컴퓨팅 장치(102)의 하드웨어가 동작을 수행하게 하는, 예를 들어 프로세서, 기능 블록 등을 구성하는 엔티티(예를 들어, 소프트웨어)를 포함할 수 있다. 예를 들어, 컴퓨팅 장치(102)는 컴퓨팅 장치 특히 컴퓨팅 장치(102)의 하드웨어가 동작을 수행하게 하는 명령어를 유지하도록 구성될 수 있는 컴퓨터 판독 가능 매체를 포함할 수 있다. 따라서, 명령어는 동작을 수행하도록 하드웨어를 구성하며, 이러한 방식으로 동작을 수행하도록 하드웨어의 변환을 야기하는 기능을 한다. 명령어는 컴퓨터 판독 가능 매체에 의해 여러 가지 상이한 구성을 통해 컴퓨팅 장치(102)에 제공될 수 있다.
컴퓨터 판독 가능 매체의 하나의 그러한 구성은 신호 전달 매체(signal bearing medium)이며 따라서 명령어(예를 들어, 반송파로서의)를 네트워크(104)를 통해서와 같이 컴퓨팅 장치의 하드웨어에 송신하도록 구성된다. 컴퓨터 판독 가능 매체는 또한 컴퓨터 판독 가능 저장 매체로 구성될 수 있으므로 신호 전달 매체가 아니다. 컴퓨터 판독 가능 저장 매체의 예는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 광 디스크(예를 들어, DVD 또는 CD), 플래시 메모리, 하드 디스크 메모리, 및 자기, 광, 및 다른 기술을 사용하여 명령어 및 다른 데이터를 저장할 수 있는 다른 메모리 장치를 포함한다.
네트워크(104)는 여러 가지 상이한 구성을 취할 수 있다. 예를 들어, 네트워크(104)는 인터넷, 광역 통신망(WAN), 근거리 통신망(LAN), 개인 영역 네트워크(PAN), 무선 네트워크, 공중 전화망, 인트라넷, 이들의 조합 등을 포함할 수 있다. 게다가, 단일 네트워크(104)가 도시되지만, 네트워크(104)는 다수의 네트워크를 포함하도록 구성될 수 있다.
컴퓨팅 장치(102)는 파일 관리 모듈(106)을 포함하는 것으로 예시된다. 파일 관리 모듈(106)은 파일 시스템(108) 내의 파일을 포함하는 하나 이상의 파일에 대한 액세스를 관리하는 기능을 나타낸다. 파일 관리 모듈(106)은 독립형 애플리케이션, 컴퓨팅 장치(102)의 운영 체제의 일부, 운영 체제와 함께 실행하는 애플리케이션 등과 같은 다양한 방식으로 구현될 수 있다.
파일 시스템(108)은 컴퓨팅 장치(102)에 의해 파일(110)을 조직하며 저장하기 위한 기법을 이용한다. 예를 들어, 파일 시스템(108)은 파일(110)(예를 들어, 실행 가능 및/또는 라이브러리 파일)을 스토리지에서 관리하기 위해 폴더의 계층을 이용한다. 파일 관리 모듈(106) 및 파일 시스템(108)에 의해 이용될 수 있는 여러 가지 다른 파일 관리 기술이 고려된다. 게다가, 여러 가지 상이한 타입의 파일(110)이 파일 관리 모듈(106)을 사용하여 관리될 수 있다. 예를 들어, 파일(110)은 텍스트(문서) 파일, 이미지 파일, 비디오 파일, 오디오 파일, 이들의 조합 등일 수 있다.
애플리케이션(112)은 하나 이상의 프로그램, 스크립트, 또는 컴퓨팅 장치(102) 상에서 실행되는 다른 명령어 집합이다. 애플리케이션(112)은 엔터테인먼트 애플리케이션(예를 들어, 게임 또는 오디오/비디오 플레이어), 유틸리티 애플리케이션(예를 들어, 워드 프로세서 또는 웹 브라우저), 참조 애플리케이션(예를 들어, 사전 또는 백과사전) 등과 같은 여러 가지 상이한 구성을 취할 수 있다. 애플리케이션(112)은 하나 이상의 프로그램, 스크립트, 또는 컴퓨팅 장치(102) 상에서 실행되는 다른 명령어 집합일 수 있으며 파일(110)로 저장될 수 있다. 대안으로, 애플리케이션(112)은 파일(110)로 저장되지 않으면서 하나 이상의 프로그램, 스크립트, 또는 원격 서비스로부터(예를 들어, 네트워크(104)를 통해) 다운로드되며 컴퓨팅 장치(102) 상에서 실행되는 다른 명령어 집합일 수 있다. 또는, 애플리케이션(112)은 원격 서비스 상에서 실행되는 하나 이상의 프로그램, 스크립트, 또는 다른 명령어 집합일 수 있으며, 이 경우 사용자 인터페이스가 원격 서비스에 의해 생성되어 디스플레이를 위해 컴퓨팅 장치(102)에 (예를 들어, 네트워크(104)를 통해) 제공되며 컴퓨팅 장치(102)에서 수신되는 입력이 처리를 위해 원격 서비스에(예를 들어,네트워크(104)를 통해) 리턴된다.
하나 이상의 실시예에서, 애플리케이션(112)은 격리된 애플리케이션이며, 컴퓨팅 장치(102)의 자원(예를 들어, 네트워크 컴퓨터, 인터넷, 모듈, 장치, 메모리, 다른 애플리케이션)에 액세스하는 애플리케이션(112)의 능력이 제한되는 방식으로 실행된다. 컴퓨팅 장치(102)의 운영 체제(및/또는 다른 소프트웨어, 펌웨어, 및/또는 하드웨어)는 격리된 애플리케이션이, 격리된 애플리케이션에 할당되었거나 그렇지 않으면 이용가능했던 컴퓨팅 장치(102)의 메모리 및 다른 자원에 액세스하는 것을 허용하지만, 격리된 애플리케이션이 컴퓨팅 장치(102)의 다른 메모리, 컴퓨팅 장치의 자원, 및/또는 컴퓨팅 장치 상에서 실행되는 애플리케이션에 액세스하는 것을 금지한다. 이것은 컴퓨팅 장치(102) 상에서 실행되는 다른 애플리케이션을 격리된 애플리케이션에 의해 방해되는 것으로부터 보호할 뿐만 아니라, 격리된 애플리케이션을 컴퓨팅 장치(102) 상에서 실행되는 다른 애플리케이션에 의해 방해되는 것으로부터 보호하며, 따라서 컴퓨팅 장치(102) 상의 다른 애플리케이션으로부터 애플리케이션을 분리한다.
하나 이상의 실시예에서, 애플리케이션(112)은 샌드박스에서 실행됨으로써 제한된 방식으로 실행된다. 단일 애플리케이션(112)이 컴퓨팅 장치(102)내에 도시되어 있지만, 복수의 애플리케이션이 컴퓨팅 장치(102)에서 동시에 실행(각각의 애플리케이션이 그 자체의 샌드박스에서 실행)될 수 있다는 점이 주목되어야 한다.
파일 관리 모듈(106)은 브로커 모듈(114) 및 피커 모듈(116)을 포함하는 것으로 더 예시된다. 브로커 모듈(114)은 파일 시스템(108), 다른 애플리케이션, 서비스 제공자 등과 같은 다양한 파일 호스트에 대한 애플리케이션(112)의 액세스를 관리하기 위해 파일 관리 모듈(106)의 기능을 나타낸다. 브로커 모듈(114)은 예를 들어 애플리케이션(112)에 의해 요청되는 파일을 위치시키며 그 파일을 애플리케이션(112)에 다시 제공하기 위해 중개자로서의 역할을 한다. 게다가, 그러한 파일은 애플리케이션(112)에 제공될 수 있으며 애플리케이션(112)은 파일이 획득된 곳(예를 들어, 파일 시스템(108), 호스트 등에 의해 사용되는 명칭 공간)을 인식할 필요가 없다. 예를 들어, 브로커 모듈(114)은 다양한 파일 호스트 및 그 파일 호스트가 파일을 저장하는 방식에 관한 특정 상세로부터 애플리케이션(112)을 분리하는 추상화 계층으로서 동작할 수 있다.
게다가, 브로커 모듈(114)은 사용자가 다양한 파일 호스트로부터 파일을 선택할 수 있도록 피커 모듈(116)을 이용하여 사용자 인터페이스를 구성할 수 있다. 피커 모듈(116)은 (예를 들어, 네트워크(104)를 통해 서비스 제공자(120)와) 원격 액세스를 관리하는 것을 포함하여 파일 호스트와의 통신을 적절히 관리하는 UI 모듈(122)을 포함한다. UI 모듈(122)은 또한 다른 파일 호스트와의 통신에 기초하여 사용자 인터페이스의 적어도 일부를 관리한다. 예를 들어, UI 모듈(122)은 사용자가 네트워크(104)에 의해 서비스 제공자(120)를 통해 액세스 가능한(예를 들어, 하나 이상의 컴퓨팅 장치를 사용하여 구현되는) 원격 파일을 선택하고, 서비스 제공자(120)의 애플리케이션에 의해 관리되는 원격 파일을 선택하며, 컴퓨팅 장치(102) 상의 다른 애플리케이션에 의해 관리되는 파일을 선택하는 것 등을 할 수 있도록 사용자 인터페이스의 일부를 구성할 수 있다.
애플리케이션(112) 및 피커 모듈(116)과 같은 컴퓨팅 장치(102)의 다양한 모듈 및 애플리케이션은 컴퓨팅 장치(102)의 사용자로부터 사용자 입력을 수신할 수 있다. 이 사용자 입력은 데이터, 사용자 선택 등을 제공할 수 있다. 사용자 입력은 장치(102)의 키패드 또는 키보드의 하나 이상의 키를 누르고, 장치(102)의 컨트롤러(예를 들어, 원격 제어 장치, 마우스, 트랙패드 등)의 하나 이상의 키를 누르고, 장치(102)의 터치패드 또는 터치스크린의 특정 부분을 누르고, 특정 제스처를 장치(102)의 터치패드 또는 터치스크린 상에 구성하며/하거나, 특정 제스처를 장치(102)의 컨트롤러(예를 들어, 원격 제어 장치, 마우스, 트랙패드 등) 상에 구성하는 것과 같이, 여러 가지 상이한 방식으로 제공될 수 있다. 사용자 입력은 장치(102)의 어느 부분, 장치(102)의 모션 검출 구성요소에 인식될 수 있는 동작을 태핑(tapping)하는 것 등과 같은(장치(102)를 흔드는 것, 장치(102)를 회전시키는 등과 같이) 다른 물리적 피드백 입력을 통해 장치(102)에 제공될 수도 있다. 사용자 입력은 마이크로폰에 대한 가청 입력을 통해, 이미지 캡쳐 장치에 의해 관찰되는 손 또는 다른 신체 부분의 움직임을 통하는 등과 같이, 다른 방식으로 제공될 수도 있다.
일반적으로, 본 명세서에 설명되는 기능 중 어느 하나는 소프트웨어, 펌웨어, 하드웨어(예를 들어, 고정 로직 회로), 수동 처리, 또는 이 구현의 결합을 사용하여 구현될 수 있다. 본 명세서에 사용되는 바와 같은 용어 "모듈" 및 "기능"은 일반적으로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 나타낸다. 소프트웨어 구현의 경우에, 하드웨어, 예를 들어 하나 이상의 프로세서 및/또는 기능 블록에 의해 지정되는 동작을 수행하는 모듈, 기능, 또는 로직은 명령어 및 하드웨어를 나타낸다.
도 2는 하나 이상의 실시예에 따른 본 명세서에서 논의되는 상이한 파일 호스트 기술을 사용하여 파일 액세스를 구현하는 예시적 시스템(200)을 도시한다. 예시된 바와 같은 시스템(200)은 도 1의 컴퓨팅 장치(102)의 파일 관리 모듈(106)에 의해 부분적으로 구현되어 파일 관리 기술을 수행할 수 있다.
예시된 바와 같은 시스템(200)은 애플리케이션(202)(예를 들어 도 1의 애플리케이션(112)일 수 있는), 브로커 모듈(114), 피커 모듈(116), 및 하나 이상의 파일 호스트(204)를 포함한다. 이 예에서, 애플리케이션(202)은 브로커 모듈(114)에 의해 노출되는 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)를 통해 브로커 모듈(114)과 통신하여 파일 호스트(204)에 액세스한다. 단일 애플리케이션(202) 및 특정 파일 호스트(204)가 도 2에 예시되지만, 시스템(200)은 임의의 수의 파일 호스트(204)에 액세스하는 임의의 수의 애플리케이션(202)을 포함할 수 있다는 점에 주의해야 한다.
하나 이상의 실시예에서, 애플리케이션(202)은 어디에서 및/또는 어떻게 특정 파일이 파일 호스트(204)에 의해 배열되고, 조직되고, 유지되는지 등을 알지 못하면서 파일 호스트(204)에 액세스하도록 허용된다. 애플리케이션(202)은 예를 들어 파일 호스트(204)에 의해 파일에 액세스하기 위해 사용되는 명칭 공간(namespace) 또는 데이터 모델을 알지 못할 수 있다. 그러므로, 브로커 모듈(114)은 API를 통해 수신되는 애플리케이션(202)으로부터의 요청을 관심 있는 파일을 위치시키기 위해 이해 가능한 형태로 변환할 수 있다.
다른 실시예에서, 애플리케이션(202)은 파일이 특정 파일 호스트(204) 내 어디에 및/또는 어떻게 배열되고 위치되지를 알 수 있다. 예를 들어, 애플리케이션(202)은 요청의 변환이 브로커 모듈(114)에 의해 수행되지 않도록 로컬 파일 시스템(212)에 의해 지원하는 명칭 공간을 사용하도록 구성될 수 있다. 특정 애플리케이션에 대한 브로커 모듈(114)과 상호 작용하지 않으면서 로컬 파일 시스템(212)에 직접 액세스를 가능하게 하는 것과 같은 여러 가지 다른 예가 또한 고려된다(어느 경우에 파일은 아래에 논의되는 사용자 인터페이스(206)와 상이한 다른 사용자 인터페이스를 통해 액세스될 수 있음).
피커 모듈(116)은 파일을 저장하는 목적지 및/또는 검색을 위해 파일의 사용자 선택을 용이하게 하는 사용자 인터페이스(206)를 제공한다. 사용자 인터페이스(206)는 파일이 다양한 파일 호스트로부터 검색되며/되거나 다양한 파일 호스트에 저장되는 것을 허용한다. 예를 들어, 사용자 인터페이스(206)는 파일 호스트(204)에 의해 생성되는 사용자 인터페이스가 디스플레이되는 호스트 영역을 포함할 수 있다.
브로커 모듈(114) 및 피커 모듈(116)은 애플리케이션(202)과 파일 호스트(204) 사이의 중개자로서의 역할을 한다. 애플리케이션(202)은 파일 호스트(204)를 모를 수 있고, 파일 호스트는 애플리케이션(202)을 모를 수 있다. 게다가, 파일 호스트(204)가 사용자 인터페이스의 일부를 디스플레이할 수 있는 호스트 영역을 포함하는 사용자 인터페이스(206)는 피커 모듈(116)에 의해 제공된다. 따라서, 애플리케이션(202)은 사용자 인터페이스를 임의의 주어진 시간에 호스트된 부분 내에 디스플레이하는 특정 파일 호스트를 알지 못할 뿐만 아니라, 파일이 액세스되는 특정 파일 호스트(204)(예를 들어, 파일이 검색되거나 저장되는 어느 파일 호스트(204))를 모를 수도 있다.
브로커 모듈(114) 및/또는 피커 모듈(116)은 로컬 파일 시스템(212), 애플리케이션(214), 원격 파일 시스템(216), 및 서비스 제공자(218)와 같은 여러 가지 상이한 파일 호스트(204)와 통신할 수 있다. 브로커 모듈(114) 및/또는 피커 모듈(116)은 상이한 방식으로 파일 호스트(204)와 통신할 수 있으며, 하나 이상의 실시예에서 모듈(114 및/또는 116)은 파일 호스트(204) 각각과 통신하는 법을 표시하는 정보에 의해 구성된다(또는 그러한 정보를 획득할 수 있다).
파일 호스트(204)는 파일을 조직하고, 관리하며/하거나, 저장하는 시스템, 서비스, 애플리케이션 등을 지칭한다. 파일 호스트(204)는 사용자 인터페이스를 호스트 영역 내에 디스플레이하여, 파일 호스트의 파일(파일 호스트가 조직하고, 관리하며/하거나, 저장하는 파일)이 액세스되는(예를 들어, 검색되고, 저장되는 등 되는) 것을 허용할 수 있다. 파일 호스트(204)는 파일을 저장 장치 상의 개별 파일, 데이터베이스 또는 다른 기록 내의 파일, 그룹화 또는 파일 집합(예를 들어, 집(zip) 또는 캐비넷 파일의 일부) 등으로서 저장하는 것과 같이, 여러 가지 상이한 데이터 모델(파일을 저장하는데 사용되는 포맷 및/또는 프로토콜)을 사용하여 파일을 여러 가지 상이한 방식으로 조직하며 저장할 수 있다. 파일 호스트(204)에 의해 사용되는 데이터 모델에 관계없이, 각각의 파일 호스트(204)는 그 파일 호스트(204)가 조직하고, 관리하며/하거나, 저장하는 파일에 액세스하는(예를 들어, 파일을 식별, 저장, 검색, 수정하는) 방법을 알고 있다.
로컬 파일 시스템(212)은 제거식 저장 장치를 포함하는 컴퓨팅 장치 실행 애플리케이션(202)의 일부이거나 컴퓨팅 장치 실행 애플리케이션에 연결되는 로컬 저장 장치 상의 하나 이상의 폴더에 파일(222)을 저장하는 파일 호스트이다. 로컬 파일 시스템(212)은 예를 들어 파일(222)을 로컬 하드 디스크, 광 디스크, 플래시 메모리 장치, 또는 다른 컴퓨터 판독 가능 저장 매체 상에 저장할 수 있다.
원격 파일 시스템(216)은 애플리케이션(202)을 실행하고 있는 것과 동일한 컴퓨팅 장치가 아닌 원격 저장 장치 상의 하나 이상의 폴더에 파일(226)을 저장하는 파일 호스트이다. 예를 들어, 원격 저장 장치는 도 1의 네트워크(104)를 통해 컴퓨팅 장치 실행 애플리케이션(202)에 결합될 수 있다. 원격 파일 시스템(216)은 파일을 로컬 파일 시스템(212)과 유사한 여러 가지 상이한 컴퓨터 판독 가능 저장 매체 상에 저장할 수 있다.
도 1의 애플리케이션(112)과 유사하게, 애플리케이션(214)은 여러 가지 상이한 구성을 취할 수 있으며, 하나 이상의 프로그램, 스크립트, 또는 다양한 장치 상에서 실행되는 다른 명령어 집합일 수 있다. 애플리케이션(214)은 도 1의 애플리케이션(112)과 유사한 격리된 애플리케이션일 수도 있다. 애플리케이션(214)은 전형적으로 애플리케이션(202)과 동일한 컴퓨팅 장치 상에서 실행될 수 있지만, 대안으로 다른 컴퓨팅 장치 상에서 실행될 수 있다. 애플리케이션(214)은 파일(224)을 다양한 방식으로 저장하는 파일 호스트이다. 애플리케이션(214)은 로컬 파일 시스템(212) 및/또는 원격 파일 시스템(216)을 이용(leverage)하여 파일(224)을 저장할 수 있지만, 파일(224)은 전형적으로 애플리케이션(214)을 통해서만 액세스 가능하다.
서비스 제공자(218)는 여러 가지 상이한 구성을 취할 수 있는 하나 이상의 애플리케이션이며, 다양한 서비스를 사진 관리 서비스, 소셜 네트워킹 서비스, 메시징 또는 다른 통신 서비스, 문서 편집 서비스 등과 같은 애플리케이션(202)에 제공한다. 서비스 제공자(218)는 전형적으로 도 1의 네트워크(104)를 통해 애플리케이션(202)을 실행하는 컴퓨팅 장치에 결합되는 하나 이상의 컴퓨팅 장치와 같이, 하나 이상의 컴퓨팅 장치 상에 실행되고 있는 애플리케이션(202)과 상이한 하나 이상의 애플리케이션을 포함한다. 서비스 제공자(218)는 파일(228)을 다양한 방식으로 저장하는 파일 호스트이다. 서비스 제공자(218)는 로컬 파일 시스템(212) 및/또는 원격 파일 시스템(216)을 이용하여 파일(228)을 저장할 수 있지만, 파일(228)은 전형적으로 서비스 제공자(218)를 통해서만 액세스 가능하다.
애플리케이션(202)의 사용자가 애플리케이션(202)에 인출할 하나 이상의 파일을 선택하거나 애플리케이션(202)으로부터 하나 이상의 파일을 저장하는 것을 허용하는 것과 같이, 애플리케이션(202)이 파일 호스트에 액세스하기를 원할 때, 애플리케이션(202)은 파일 액세스 요청을 브로커 모듈(114)에 전달한다. 애플리케이션(202)이 파일 액세스 요청을 이루고 있기 때문에, 애플리케이션(202)은 또한 호출 애플리케이션으로 지칭된다. 파일 액세스 요청은 예를 들어 브로커 모듈(114)의 API를 호출함으로써 전달된다. 파일 액세스 요청에 대응하여, 브로커 모듈(114)은 피커 모듈(116)을 호출하며, 피커 모듈은 사용자 인터페이스(206)를 디스플레이한다. 대안으로, 애플리케이션(202)은 브로커 모듈(114)을 우회시키며 파일 액세스 요청을 피커 모듈(116)에 전달할 수 있어, 브로커 모듈(114)을 통과하지 않으면서 사용자 인터페이스(206)를 디스플레이하기 위해 피커 모듈(116)을 직접 호출할 수 있다.
사용자 인터페이스(206)는 호스트 영역을 포함하는데, 호스트 영역은 하나 이상의 파일 호스트(204)가 사용자 인터페이스를 디스플레이할 수 있는 사용자 인터페이스의 일부이다. 호스트 영역 내에 디스플레이되는 사용자 인터페이스는 파일 호스트(204)에 의해 생성된다. 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 애플리케이션(214) 또는 서비스 제공자(218)는 또한 호스팅 애플리케이션으로 지칭될 수 있다. 각각의 파일 호스트(204)는 그 파일 호스트(204)가 요구할 때 디스플레이를 호스트 영역 내에서 조정할 수 있어, 그 파일 호스트(204)가 요구할 때 시간에 따라 그 디스플레이를 선택적으로 수정하며 변경한다. 애플리케이션(202)은 호스트 영역 내에 디스플레이되는 사용자 인터페이스가 생성되는 방식, 파일 호스트(204)에 의해 사용되는 데이터 모델 또는 명칭 공간 등을 모를 수 있다(아무런 정보를 갖고 있지 않을 수 있다). 유사하게, 피커 모듈 피커 모듈(116)은 호스트 영역 내에 디스플레이되는 사용자 인터페이스가 생성되는 방식, 파일 호스트(204)에 의해 사용되는 데이터 모델 또는 명칭 공간 등을 모를 수 있다(아무런 정보를 갖고 있지 않을 수 있다).
피커 모듈(116)(예를 들어, 피커 모듈(116)의 UI 모듈(122))은 하나 이상의 파일 호스트(204)가 사용자 인터페이스를 디스플레이할 수 있는 호스트 영역을 제공한다. 호스트 영역은 예를 들어 파일 호스트(204)의 사용자 인터페이스가 디스플레이되거나 그렇지 않으면 제공될 수 있는 윈도우일 수 있다. 사용자 인터페이스는 상이한 방식으로 호스트 영역 내에 디스플레이될 수 있다. 예를 들어, 호스트 영역 내에 디스플레이될 사용자 인터페이스는 파일 호스트(204)로부터 수신되며 피커 모듈(116)에 의해 디스플레이될 수 있다. 다른 예로서, 파일 호스트(204)는 사용자 인터페이스를 호스트 영역 내에(예를 들어, 특정 윈도우 내에) 직접 디스플레이하도록 허용될 수 있다. 그러나, 사용자 인터페이스가 호스트 영역 내에 디스플레이되는 방식에 관계없이, 파일 호스트의 사용자 인터페이스는 호스트 영역에 제한된다. 파일 호스트의 사용자 인터페이스는 호스트 영역 내가 아닌 UI의 다른 영역을 중복 기재하도록 허용되지 않으며, 컴퓨팅 장치의 운영 체제에 의해 제공되는 UI 또는 컴퓨팅 장치 상에서 실행되는 다른 애플리케이션을 선취하도록 허용되지 않는다.
피커 모듈(116)은 하나 이상의 파일 호스트(204)가 사용자 인터페이스를 디스플레이할 수 있는 호스트 영역을 제공하므로, 호스트 영역은 애플리케이션(202)에 통합되는 플러그 인 또는 확장 코드에 의해 제공되지 않는다는 점에 유의하라. 호스트 영역 내에 디스플레이되는 사용자 인터페이스가 생성되는 방식을 모르는(아무런 정보가 없는) 것에 더하여, 애플리케이션(202)은 호스트 영역 내에 디스플레이되는 사용자 인터페이스를 생성하는 특정 파일 호스트를 모를 수 있다. 호스트 영역 내에 디스플레이되는 사용자 인터페이스를 생성하는 특정 파일 호스트 뿐만 아니라, 호스트 영역 내에 디스플레이되는 사용자 인터페이스를 생성하기 위해 이용가능한 파일 호스트(204)는 변경을 인식하는 애플리케이션(202) 없이 변경될 수 있다.
사용자 인터페이스(206)는 단일 파일 호스트(204)가 사용자 인터페이스를 한 번에 디스플레이할 수 있는 단일 호스트 영역을 디스플레이할 수 있으며, 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)는 시간에 따라 변경될 수 있다. 대안으로, 사용자 인터페이스(206)는 다수의 호스트 영역을 동시에 디스플레이할 수 있어서, 다수의 파일 호스트(204)가 사용자 인터페이스를 동시에 디스플레이하는 것을 허용한다.
피커 모듈(116)은 파일 호스트(204)를 식별하여 사용자 인터페이스를 상이한 방식으로 호스트 영역 내에 디스플레이할 수 있다. 하나 이상의 실시예에서, 다양한 파일 호스트(204)의 식별자는 사용자 인터페이스(206)의 파일 호스트 식별 부분에서와 같이, 사용자 인터페이스(206)의 일부로서 제공된다. 식별자 중 하나를 선택하는 사용자 입력이 수신되며, 피커 모듈(116)은 사용자 인터페이스를 호스트 영역 내에 디스플레이하기 위해 선택된 식별자를 갖는 파일 호스트(204)를 호출한다. 대안으로, 피커 모듈(116)은 디폴트 파일 호스트(예를 들어, 피커 모듈(116)이 구성되거나 그렇지 않으면 식별할 수 있는)를 식별하고, 파일 호스트를 랜덤하게 또는 다른 규칙 또는 기준에 따라 선택하며, 시스템(200)의 사용자로부터 수신되는 선호도 또는 구성 설정에 기초하여 파일 호스트를 식별하는 것 등에 의해서와 같이, 파일 호스트(204)를 식별하여 사용자 인터페이스를 다른 방식으로 호스트 영역 내에 디스플레이할 수 있다.
시스템(200)에서 이용가능한 파일 호스트(204)는 상이한 방식으로 결정될 수 있다. 하나 이상의 실시예에서, 각각의 파일 호스트(204)는 피커 모듈(116)에 대한 파일 호스트(204)인 것으로 등록된다. 등록 프로세스의 일부로서, 파일 호스트(204)를 활성화시키는 법, 파일 호스트에 의해 지원되는 파일 타입 등과 같은 파일 호스트(204)에 관한 다양한 정보가 제공된다. 이 등록은 파일 호스트가 피커 모듈(116)을 구현하는 컴퓨팅 장치 상에 설치될 때, 파일 호스트가 피커 모듈(116)을 구현하는 컴퓨팅 장치에 액세스할 때, 사용자 요청에 대응하는 등과 같이 다양한 시간에 수행될 수 있다. 시스템(200)에 이용가능한 파일 호스트(204)(예를 들어, 및 따라서 식별자가 사용자 인터페이스(206)의 파일 호스트 식별 부분 내에 디스플레이될 파일 호스트(204))를 결정할 때, 피커 모듈(116)은 피커 모듈(116)에 대한 파일 호스트(204)인 것으로 등록된 그 파일 호스트만을 식별할 수 있다.
대안으로, 시스템(200)에 이용가능한 파일 호스트(204)는 상이한 방식으로 식별될 수 있다. 예를 들어, 원격 서비스는 컴퓨팅 장치 실행 애플리케이션(202)에 의해 현재 액세스 가능한 서비스를 식별하기 위해 (예를 들어, 도 1의 네트워크(104)를 통해) 액세스될 수 있으며, 그 식별된 서비스는 파일 호스트(204)일 수 있다. 다른 예로서, 컴퓨팅 장치 실행 애플리케이션(202)의 판매 회사 또는 관리자로부터의 파일 호스트의 리스트는 시스템(200)에 이용가능한 파일 호스트(204)를 결정하기 위해 액세스될 수 있다.
게다가, 하나 이상의 실시예에서 파일 호스트(204)는 상이한 파일 타입을 지원할 수 있다. 파일 타입은 파일에 저장되는 특정 타입의 데이터 및/또는 데이터가 파일에 저장되는 포맷을 지칭한다. 예를 들어, 파일 타입은 이미지 파일, 오디오 파일, 비디오 파일, 텍스트 파일 등일 수 있다. 다른 예로서, 파일 타입은 JPEG(Joint Photographic Experts Group) 파일, PDF(Portable Document Format) 파일 등일 수 있다. 파일 타입이 파일 호스트(204)에 의해 지원되는 것은 파일 호스트(204)가 그 파일 타입을 갖는 파일을 조직하고, 관리하며/하거나, 저장하는 것을 지칭한다. 각각의 파일 호스트(204)에 의해 지원되는 파일 타입은, 예컨대 상기 논의된 등록 프로세스 동안 식별된다. 파일 액세스 요청의 일부로서, 애플리케이션(202)은 애플리케이션(202)이 그 파일 액세스 요청을 위해 요구하는 하나 이상의 파일 타입을 식별할 수 있다. 피커 모듈(116)은 애플리케이션(202)에 의해 요청되는 파일 타입을 지원하는 그 파일 호스트만을 (예를 들어, 식별자가 사용자 인터페이스(206)의 파일 호스트 식별 부분 내에 디스플레이될 파일 호스트(204)로서) 식별한다. 따라서, 애플리케이션(202)에 의해 요청되는 파일 타입을 지원하지 않는 파일 호스트(204)는 사용자 인터페이스를 호스트 영역 내에 디스플레이할 수 있는 파일 호스트로 식별되지 않는다. 그러나, 애플리케이션(202)으로부터의 후속 액세스 요청이 파일 호스트(204)에 의해 지원되는 다른 파일 타입에 대해 수신되면, 이 때 그 파일 호스트(204)는 사용자 인터페이스를 호스트 영역 내에 디스플레이할 수 있는 파일 호스트로 식별된다.
파일 호스트(204)가 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)로 식별될 때, 식별된 파일 호스트(204)는 피커 모듈(116)에 의해 활성화되거나 그렇지 않으면 호출된다. 피커 모듈(116)은 파일 호스트(204)를 활성화하거나 호출하는 법을 표시하는 정보를 인식하거나 정보를 획득할 수 있다. 이 정보는 예를 들어 상기 논의된 등록 프로세스의 일부로서 획득될 수 있다. 파일 호스트(204)가 이미 실행되고 있지 않으면, 이 때 피커 모듈(116)은 파일 호스트(204)를 활성화하거나 론칭하여, 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)를 호출한다. 파일 호스트(204)가 이미 실행되고 있으면, 이 때 피커 모듈(116)은 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)를 호출한다.
활성화되거나 호출된 파일 호스트(204)는 사용자 인터페이스를 파일 호스트(204) 자체에 의해 결정되는 바와 같은 다양한 방식으로 호스트 영역 내에 디스플레이한다. 파일은 아이콘, 비디오 시퀀스, 텍스트 묘사 등과 같은 상이한 표현에 의해 디스플레이될 수 있다. 데이터는 텍스트 엔트리 필드를 통해, 제스처를 통해, 가청적으로 등과 같이, 상이한 방식으로 사용자에 의해 입력될 수 있다.
호스트 영역 내에 파일 호스트(204)에 의해 디스플레이되는 사용자 인터페이스는 파일 호스트(204)에 의해 관리되는 파일에 다양한 액세스를 허용할 수 있다. 예를 들어, 사용자 인터페이스는 폴더 또는 다른 파일 그룹화를 통해 내비게이션하는 것, 검색을 위한 하나 이상의 파일을 선택하는 것, 파일을 저장하는 하나 이상의 위치를 선택하는 것 등을 허용할 수 있다.
애플리케이션(202)으로부터의 파일 액세스 요청이 하나 이상의 파일의 검색을 요청하고 있는 상황에서, 파일 호스트(204)에 의해 디스플레이되는 사용자 인터페이스는 애플리케이션(202)의 사용자가 선택할 수 있는 이상의 파일 호스트(204) 각각의 하나 이상의 파일을 식별한다(예를 들어, 하나 이상의 파일을 나타내는 아이콘 또는 섬네일을 디스플레이함). 선택은 상기 논의된 여러 가지 상이한 입력을 제공하는 사용자에 의해 이루어질 수 있다. 하나 이상의 파일을 (하나 이상의 파일 호스트(204)로부터) 선택하면, 하나 이상의 파일 호스트(204)는 선택된 하나 이상의 파일(또는 선택된 하나 이상의 파일을 어디에서 및/또는 어떻게 검색하는 지의 표시)을 피커 모듈(116)에 제공한다. 피커 모듈(116)은 선택된 하나 이상의 파일(또는 선택된 하나 이상의 파일을 어디에서 및/또는 어떻게 검색하는 지의 표시)을 브로커 모듈(114)에 제공한다. 브로커 모듈(114)은 선택된 하나 이상의 파일(또는 대안으로 애플리케이션(202)이 선택된 하나 이상의 파일 또는 하나 이상의 파일의 콘텐츠를 어디에서 및/또는 어떻게 검색할 수 있는 지의 표시)을 애플리케이션(202)으로 리턴시킨다.
애플리케이션(202)으로부터의 파일 액세스 요청이 하나 이상의 파일의 세이브 또는 저장을 요청하고 있는 상황에서, 파일 호스트(204)에 의해 디스플레이되는 사용자 인터페이스는 애플리케이션(202)의 사용자가 선택할 수 있는 파일 호스트(204)의 하나 이상의 위치를 식별한다(하나 이상의 위치를 나타내는 아이콘 또는 섬네일을 디스플레이함). 파일 호스트(204)에 의해 디스플레이되는 사용자 인터페이스는 사용자가 하나 이상의 파일에 관한 다양한 정보(예를 들어, 하나 이상의 파일의 명칭, 하나 이상의 파일의 묘사)를 제공하는 것을 허용하는 사용자 입력 부분을 제공할 수도 있다. 파일을 세이브하거나 저장하는 파일 액세스 요청의 일부로서, 애플리케이션(202)은 선택적으로 파일을 식별하는 정보를 제공할 수 있다. 이 정보는 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)에 제공될 수 있어, 파일 호스트(204)가 호스트 영역 내의 사용자 인터페이스 내에 저장될 파일에 관한 정보를 통합하는 것을 허용한다. 예를 들어, 애플리케이션(202)은 저장될 파일을 나타내는 섬네일 또는 아이콘을 파일 호스트(204)에 (브로커 모듈(114) 및 피커 모듈(116)을 통해) 제공할 수 있다. 파일 호스트(204)는 이 섬네일 또는 아이콘을 호스트 영역 내의 사용자 인터페이스의 일부로서 디스플레이할 수 있다.
애플리케이션(202)은 저장될 하나 이상의 파일(또는 저장될 하나 이상의 파일을 어디에서 및/또는 어떻게 획득하는 지의 표시)을 브로커 모듈(114)에 제공한다. 브로커 모듈(114)은 저장될 하나 이상의 파일(또는 저장될 하나 이상의 파일을 어디에서 및/또는 어떻게 획득하는 지의 표시)을 피커 모듈(116)에 제공하며, 피커 모듈은 저장될 하나 이상의 파일(또는 저장될 하나 이상의 파일을 어디에서 및/또는 어떻게 획득하는 지의 표시)을 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)에 제공한다. 위치의 사용자 선택을 수신하여 하나 이상의 파일을 저장하면, 사용자 인터페이스를 호스트 영역 내에 디스플레이하는 파일 호스트(204)는 하나 이상의 파일을 선택된 위치에(및 선택적으로 하나 이상의 파일에 관한 부가 제공 정보와 함께) 저장한다. 애플리케이션(202)은 저장될 하나 이상의 파일(또는 저장될 하나 이상의 파일을 획득하는 곳 및/또는 법의 표시)을 파일 액세스 요청의 일부로서, 또는 대안으로 다른 시간에(예를 들어, 피커 모듈(116)로부터의 하나 이상의 파일에 대한 요청에 대응하여, 요청은 하나 이상의 파일이 저장될 위치의 사용자 선택에 대응하여 피커 모듈(116)에 의해 제공됨) 제공할 수 있다.
시스템(200)에서, 애플리케이션(202)은 요청을 브로커 모듈(114)에 제공하는 호출 애플리케이션이며, 애플리케이션(214)은 사용자 인터페이스를 사용자 인터페이스(206)의 호스트 영역에 제공할 수 있는 호스팅 영역이다. 그러나, 애플리케이션은 동일 및/또는 상이한 시간에서의 호스팅 애플리케이션 및/또는 호출 애플리케이션일 수 있다는 점이 주목되어야 한다. 예를 들어, 애플리케이션(202)은 소셜 네트워킹 애플리케이션일 수 있으며 애플리케이션(214)은 사진 편집 애플리케이션일 수 있다. 소셜 네트워킹 애플리케이션은 호스트 애플리케이션일 수 있고 사진 편집 애플리케이션은 이미지가 소셜 네트워킹 애플리케이션으로부터 사진 편집 애플리케이션으로 검색되는 것을 허용하는 일 시점에서의 호출 애플리케이션일 수 있으며, 나중의 시점에서 사진 편집 애플리케이션은 호스트 애플리케이션일 수 있고 소셜 네트워킹 애플리케이션은 이미지가 사진 편집 애플리케이션으로부터 소셜 네트워킹 애플리케이션으로 검색되는 것을 허용하는 호출 애플리케이션일 수 있다. 이 예에 계속해서, 사진 편집 애플리케이션이 소셜 네트워킹 애플리케이션에 대한 호출 애플리케이션이지만, 워드 프로세싱 애플리케이션은 호출 애플리케이션일 수 있고 사진 편집 애플리케이션은 워드 프로세싱 애플리케이션에 대한 호스트 애플리케이션일 수 있으며, 따라서 이미지가 소셜 네트워킹 애플리케이션으로부터 사진 편집 애플리케이션으로 검색되는 것을 허용하는 것과 동시에 이미지가 사진 편집 애플리케이션으로부터 워드 프로세싱 애플리케이션으로 검색되는 것을 허용한다.
본 명세서에서 논의되는 상이한 파일 호스트 기술에 의한 파일 액세스는 다양한 사용 시나리오를 지원한다. 예를 들어, 특정 애플리케이션을 사용하지만, 사용자는 특정 타입(예를 들어, 그림)의 파일이 그 하나의 애플리케이션으로 검색되는 것을 요청할 수 있다. 그 특정 타입의 파일을 지원하는 여러 가지 다른 애플리케이션 또는 서비스 제공자가 식별되며 사용자 인터페이스를 사용자에게 디스플레이할 수 있다. 사용자는 어느 선택된 하나 이상의 파일이 사용자가 사용하고 있는 특정 애플리케이션으로 검색되는지에 대응하여, 여러 가지 다른 애플리케이션으로부터 하나 이상의 파일을 선택할 수 있다. 따라서, 사용자는 다른 애플리케이션으로부터의 파일을 저장 장치 상에 개별적으로 저장해야 하지 않으면서 다른 애플리케이션으로부터 특정 애플리케이션 타입을 용이하게 검색하고, 그 다음에 그의 저장된 파일을 특정 애플리케이션으로 검색할 수 있다. 더욱이, 사용자는 파일이 검색되고 있는 특정 애플리케이션이 다른 애플리케이션에 의해 사용되는 데이터 모델을 인식하지 못하는(및 다른 애플리케이션 자체를 인식하지 못하는) 동안 다른 애플리케이션으로부터 그러한 파일을 검색할 수 있다.
예시적 사용자 인터페이스
이하의 부분은 전술된 시스템 및 장치를 사용하여 구현될 수 있는 예시적 사용자 인터페이스를 설명한다. 컴퓨팅 장치(102)는 예를 들어 컴퓨팅 장치(102)의 하드웨어, 예를 들어, 하나 이상의 프로세서 및/또는 동작을 명령어에 의해 수행하도록 구성되는 기능 블록 상에 명령어의 실행을 통해 사용자 인터페이스(206)를 출력할 수 있다. 이 기술이 피커 모듈(116)의 사용자 인터페이스(206)에 의한 출력에 대해 설명되지만, 이 기술은 그의 사상 및 범위로부터 벗어나지 않으면서 여러가지 상이한 사용자 인터페이스에 의해 이용될 수 있다.
도 3은 이동 통신 장치로서 그리고 사용자 인터페이스(302)를 출력하는 것으로 구성되는 도 1의 컴퓨팅 장치(102)의 예시적 구현(300)을 도시한다. 사용자 인터페이스(302)는 상기 논의된 바와 같이, 다양한 파일 호스트(204)의 파일에 액세스를 제공하기 위해 출력될 수 있다. 따라서, 사용자 인터페이스(302)는 사용자가 이 액세스가 어떻게 수행되는지를 관리할 수 있도록 내비게이션을 다양한 파일 호스트(204)의 파일을 통해 사용자 입력에 대응하여 지원하도록 구성될 수 있다.
사용자 인터페이스(302)는 이 예에서 그림 파일 타입을 개방하는 파일 액세스 요청이 수신되었다는 표시를 포함하는 내비게이션 부분(304)을 포함하는 것으로 예시된다. 사용자 인터페이스(302)는 또한 호스트 식별 부분(306)을 포함하며, 호스트 식별 부분은 예를 들어 내비게이션 부분(304) 내의 "점프 투" 옵션의 사용자 선택에 대응하여 디스플레이될 수 있다. 호스트 식별 부분(306)은 다양한 파일 호스트(204)의 식별자를 디스플레이한다. 예시된 예에서, 호스트 식별 부분(306)은 "컴퓨터", "데스크톱", "다운로드", "음악", "그림", "사진 갤러리 앱", 및 "소셜 앱"의 식별자를 디스플레이한다. "컴퓨터", "데스크톱", "다운로드", "음악", "그림"의 식별자는 상이한 파일 호스트 또는 동일한 파일 호스트의 상이한 위치(예를 들어, 로컬 파일 시스템 내의 상이한 폴더 또는 라이브러리)를 지칭할 수 있다. 식별자 "사진 갤러리 앱"은 애플리케이션(예를 들어, 사진 갤러리 앱)인 파일 호스트를 식별하며, 식별자 "소셜 앱"은 또한 애플리케이션(예를 들어, 소셜 네트워킹 애플리케이션)인 파일 호스트를 식별한다. 식별자는 텍스트 표현으로 리스트되지만, 이미지, 아이콘, 비디오 시퀀스 등과 같은 여러 가지 다른 표현이 또한 고려된다.
사용자는 입력을 상기 논의된 여러 가지 상이한 방식으로 사용자 인터페이스(302)를 통해 제공할 수 있다. 예를 들어, 사용자는 자신의 손(308)을 사용하여 내비게이션 부분(304) 내의 "점프 투" 옵션을 터치해서 선택하여 호스트 식별 부분(306)을 디스플레이하거나, 또는 호스트 식별 부분(306) 내의 식별자 중 하나를 터치해서 선택하여 호스트 영역 내에 디스플레이되는 선택된 식별자에 의해 식별되는 파일 호스트의 파일을 가질 수 있다.
따라서, 사용자 인터페이스(302)는 다양한 요인에 대응하여 출력될 수 있다. 예를 들어, 브로커 모듈(114)은 애플리케이션(112)으로부터 파일 액세스 요청을 수신할 수 있다. 이에 대응하여, 브로커 모듈(114) 및/또는 피커 모듈(116)은 사용자 인터페이스(302)를 출력할 수 있다. 여러 가지 다른 예가 또한 고려된다.
도 4는 이동 통신 장치로 및 사용자 인터페이스(402)를 출력하는 것으로 구성되는 도 1의 컴퓨팅 장치(102)의 예시적 구현(400)을 도시한다. 사용자 인터페이스(402)는 상기 논의된 바와 같이, 사용자에 의해 선택될 수 있는 파일 호스트(204)의 파일을 식별하기 위해 출력될 수 있다. 사용자 인터페이스(402)는 사용자 인터페이스(302)의 호스트 식별 부분(306) 내의 "사진 갤러리 앱" 식별자가 선택된 것을 가정한다. 따라서, 사용자 인터페이스(302)는 사용자가 이 액세스가 어떻게 수행되는지를 관리할 수 있도록 내비게이션을 사진 갤러리 앱의 파일을 통해 사용자 입력에 대응하여 지원하도록 구성될 수 있다.
사용자 인터페이스(402)는 사진 갤러리 앱(예를 들어, "사진 갤러리 앱")의 식별자 및 사용자에 의해 선택되어 이전 화면(예를 들어, 사용자 인터페이스(302))으로 리턴할 수 있는 상방향 화살표를 예시하는 내비게이션 부분(304)을 포함한다.
사용자 인터페이스(402)는 또한 사진 갤러리 앱이 사용자 인터페이스를 생성하는 호스트 영역(404)을 포함한다. 예시된 예에서, 사진 갤러리 앱은 호스트 영역(404)의 좌측 상에 큰 이미지, 및 호스트 영역(404)의 우측 상에 사진 갤러리 앱의 다른 이미지의 섬네일을 갖는 사용자 인터페이스를 생성한다. 사용자는 큰 이미지로 디스플레이되는 선택된 이미지를 갖기 위해 섬네일을 호스트 영역(404)의 우측 상에서 (예를 들어, 사용자의 손(308)으로 터치함으로써) 선택할 수 있다. 사용자는 큰 이미지를 포함하는 파일을 호출 애플리케이션으로 리턴되는 호스트 영역(404)의 좌측 상에 갖기 위해 임포트 버튼(406)을 (예를 들어, 사용자의 손(308)으로 터치함으로써) 선택할 수 있다. 여러 가지 다른 사용자 입력은 또한 큰 이미지를 더블 클릭하거나 더블 태핑하는 것, 적어도 임계량의 시간 동안 이미지의 섬네일을 누르며 유지하는 것 등과 같이, 파일이 호출 애플리케이션으로 리턴되는 것을 표현하는 바와 같이 큰 이미지를 호스트 영역(404)의 좌측 상에서 선택하기 위해 제공될 수 있다.
도 5는 이동 통신 장치로서 그리고 사용자 인터페이스(502)를 출력하는 것으로 구성되는 도 1의 컴퓨팅 장치(102)의 예시적 구현(400)을 도시한다. 사용자 인터페이스(502)는 사용자 인터페이스(402)와 유사하지만, 하나 이상의 상이한 파일 호스트로부터 다수의 파일을 선택하는 것을 용이하게 하는 수집 부분(504)을 포함한다. 수집 부분(504)은 예를 들어 피커 모듈(116)에 의해 제공될 수 있다. 파일은 더블 클릭되거나 더블 태핑되는 것, 호스트 영역(404)의 우측으로부터 수집 부분(504)으로 드래그되며 드롭되는 것 등과 같이, 상이한 방식으로 선택될 수 있다. 파일이 선택되므로, 파일의 섬네일은 수집 부분(504)에 디스플레이된다. 사용자는, 예컨대 선택적으로 내비게이션 부분(304) 내의 상방향 화살표를 선택하여 사용자 인터페이스(302)로 리턴함으로써, 다수의 파일 호스트로부터 파일을 선택할 수 있다. 그 다음, 사용자는 호스트 영역(404) 내에 디스플레이되는 어느 사용자 인터페이스가 소셜 네트워킹 애플리케이션에 의해 제공되는지에 대응하여, 다른 파일 소스(예를 들어, 호스트 식별 부분(306) 내의 "소셜 앱"에 의해 표현되는 소셜 네트워킹 애플리케이션)의 식별자를 선택할 수 있다. 소셜 네트워킹 애플리케이션으로부터의 하나 이상의 부가 파일이 선택되어 수집 부분(504)에 (수집 부분(504) 내에 이미 디스플레이된 사진 갤러리 앱으로부터 선택되는 파일의 섬네일에 더하여) 부가될 수 있다.
사용자가 선택된 하나 이상의 파일을 가진 후에, 사용자는 호출 애플리케이션으로 리턴되는 선택된 하나 이상의 파일(섬네일이 수집 부분(504) 내에 디스플레이되는)을 갖기 위해 임포트 버튼(506)을 (예를 들어, 그 또는 그녀의 손(308)으로 터치함으로써) 선택할 수 있다. 여러 가지 다른 사용자 입력은 또한 호출 애플리케이션으로 리턴되는 선택된 하나 이상의 파일을 갖기 위해 제공될 수 있다.
도 6은 파일을 파일 호스트에 저장하도록 구성되는 사용자 인터페이스를 디스플레이하는 것으로 도 1의 컴퓨팅 장치(102)의 예시적 구현(600)을 도시한다. 이 예에서, 사용자 인터페이스(602)는 파일을 사진 갤러리 앱 파일 호스트에 저장하도록 컴퓨팅 장치(102)에 의해 구성된다. 사용자 인터페이스(602)는 사진 갤러리 앱이 사용자 인터페이스를 생성하는 호스트 영역(604)을 포함하고 파일의 표현을 포함하며, 파일은 이 경우에 이미지이다. 산의 표현은 파일 호스트에 저장하도록 선택되는 것으로 예시된다.
호스트 영역(604)은 또한 저장될 파일에 관한 정보를 지정하도록 구성되는 저장 부분(606)을 포함하며, 파일은 이 경우에 명칭 "휴가" 및 파일 타입(JPEG 파일)이다. 소프트 키보드(608)는 호스트 영역(604)의 일부로서 더 디스플레이되며, 터치 입력을 수신하여 데이터를 저장 부분(606)에 입력하도록 구성된다. 이러한 방법으로, 사용자는 사용자 인터페이스를 내비게이션하고, 저장될 파일을 지정하고, 파일(예를 들어, 파일 타입)을 저장하기 위해 사용될 정보를 입력하며, 사용자 인터페이스(602)와의 상호 작용을 통해 저장되는 파일을 가질 수 있다.
예시적 절차
이하의 논의는 전술된 시스템 및 장치를 사용하여 구현될 수 있는 상이한 파일 호스트 기술에 의한 파일 액세스를 설명한다. 절차 각각의 측면은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 절차는 하나 이상의 장치에 의해 수행되는 작동을 지정하는 동작 세트로 도시되며 반드시 동작을 각각의 동작에 의해 수신하기 위해 도시되는 순서에 제한되는 것은 아니다. 이하의 논의의 부분에서, 도 1 및 도 2의 요소가 참조될 것이다.
도 7은 하나 이상의 실시예에 따른 상이한 파일 호스트를 사용해서 파일 액세스를 구현하는 예시적 절차(700)를 도시한다. 절차(700)는 파일 관리 모듈(106)과 같은 파일 관리 모듈에 의해 구현된다. 절차(700)에서, 파일 액세스 요청은 애플리케이션으로부터 수신된다(동작 702). 요청은 상기 논의된 바와 같이, 파일 관리 모듈의 브로커 모듈에 의해 노출되는 API를 호출하는 애플리케이션에 의해 수신될 수 있으며, 하나 이상의 파일을 검색하는 요청일 수 있다.
파일 액세스 요청에 대한 하나 이상의 파일 타입이 식별된다(동작 704). 이 하나 이상의 파일 타입은 상기 논의된 바와 같이, 파일 액세스 요청의 일부로서 식별될 수 있다. 이 하나 이상의 파일 타입은 전형적으로 애플리케이션이 검색을 요청하고 있는 파일 타입이다.
식별된 하나 이상의 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트가 식별된다(동작 706). 이 하나 이상의 파일 호스트는 다른 애플리케이션과 같은, 상기 논의된 바와 같은 다양한 타입의 파일 호스트일 수 있다. 파일 호스트에 의해 지원되는 파일 타입은 상기 논의된 바와 같은 등록 프로세스 동안과 같이, 상이한 방식으로 식별될 수 있다.
호스트 영역을 사용자 인터페이스가 디스플레이된다(동작 708). 호스트 영역 내에서, 하나 이상의 파일 호스트 중 적어도 하나는 검색을 위해 선택될 수 있는 하나 이상의 파일을 식별하는 사용자 인터페이스의 일부를 디스플레이한다. 사용자 인터페이스의 일부를 디스플레이하는 파일 호스트는 상기 논의된 바와 같이 변경될 수 있다. 게다가, 상기 논의된 바와 같이, 애플리케이션은 어느 파일 호스트가 사용자 인터페이스를 호스트 영역 내에 디스플레이하고 있는지를 모를 수 있으며, 파일 호스트는 그 파일 호스트가 요구할 때 사용자 인터페이스를 호스트 영역 내에서 조정할 수 있다.
적어도 하나의 파일 호스트의 하나 이상의 파일의 사용자 선택이 수신된다(동작 710). 파일 호스트 중 하나 이상 각각으로부터의 하나 이상의 파일의 사용자 선택은 상기 논의된 바와 같이 수신될 수 있다.
사용자 선택된 하나 이상의 파일은 애플리케이션으로 리턴된다(동작 712). 상기 논의된 바와 같이, 애플리케이션은 하나 이상의 파일 호스트 중 어느 것으로부터 하나 이상의 파일이 선택되는지를 모를 수 있다.
도 8은 하나 이상의 실시예에 따른 상이한 파일 호스트를 사용해서 파일 액세스를 구현하는 다른 예시적 절차(800)를 도시한다. 절차(800)는 파일 관리 모듈(106)과 같은 파일 관리 모듈에 의해 구현된다. 절차(800)에서, 파일 액세스 요청이 애플리케이션으로부터 수신된다(동작 802). 요청은 상기 논의된 바와 같이, 파일 관리 모듈의 브로커 모듈에 의해 노출되는 API를 호출하는 애플리케이션에 의해 수신될 수 있으며, 하나 이상의 파일을 저장하는 요청일 수 있다.
애플리케이션에 의해 저장될 파일의 파일 타입이 식별된다(동작 804). 이 파일 타입은 파일 액세스 요청의 일부로 포함되는 것, 사용자 입력에 의해 제공되는 것, 파일(예를 들어, 파일 명칭의 일부인 확장에 의해 식별되며, 파일과 연관되는 메타데이터로 식별되는)에 내재하는 것 등과 같이, 상이한 방식으로 식별될 수 있다.
식별된 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트가 식별된다(동작 806). 이 하나 이상의 파일 호스트는 다른 애플리케이션과 같이 상기 논의된 바와 같은 다양한 타입의 파일 호스트일 수 있다. 파일 호스트에 의해 지원되는 파일 타입은 상기 논의된 바와 같은 등록 프로세스 동안과 같이 상이한 방식으로 식별될 수 있다.
호스트 영역을 포함하는 사용자 인터페이스가 디스플레이된다(동작 808). 호스트 영역 내에서, 하나 이상의 파일 호스트 중 적어도 하나는 파일이 적어도 하나의 파일 호스트에 의해 저장되는 것을 허용하는 사용자 인터페이스의 일부를 디스플레이한다. 파일이 저장될 위치는 상기 논의된 바와 같이, 호스트 영역에 디스플레이되는 사용자 인터페이스를 통해 사용자에 의해 선택될 수 있다. 사용자 인터페이스의 일부를 디스플레이하는 파일 호스트는 상기 논의된 바와 같이 변경될 수 있다. 게다가, 상기 논의된 바와 같이, 애플리케이션은 어느 파일 호스트가 사용자 인터페이스를 호스트 영역 내에 디스플레이하는지를 모를 수 있으며, 파일 호스트는 그 파일 호스트가 요구할 때 사용자 인터페이스를 호스트 영역 내에서 조정할 수 있다.
결론
다양한 모듈에 의해 수행되는 통신, 수신, 송신, 저장, 생성, 획득 등과 같은 다양한 동작이 본 명세서에서 논의된다. 다양한 모듈은 그러한 동작이 수행되게 할 수 있다는 점이 주목되어야 한다. 특정 모듈이 동작이 수행되게 하는 것은 그 특정 모듈 자체가 동작을 수행하는 것, 또는 대안으로 그 특정 모듈이 동작을 수행하는(또는 그 특정 모듈과 함께 동작을 수행하는) 다른 구성요소 또는 모듈을 호출하거나 그렇지 않으면 액세스하는 것을 포함한다.
발명 대상이 구조적 특징 및/또는 방법론적 동작에 특정된 언어로 설명되었지만, 첨부된 청구범위에 정의되는 발명 대상이 반드시 상술한 특정 특징 또는 동작에 제한되지 않는다는 점이 이해되어야 한다. 오히려, 상술한 특정 특징 및 동작은 청구범위를 구현하는 예시적 형태로 개시된다.

Claims (10)

  1. 컴퓨팅 장치에서의 방법으로서,
    애플리케이션으로부터 파일 액세스 요청을 수신하는 단계,
    상기 파일 액세스 요청에 대한 하나 이상의 파일 타입을 식별하는 단계,
    상기 식별된 하나 이상의 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트를 식별하는 단계, 및
    상기 적어도 하나의 파일 호스트 중 인출(retrieval)을 위해 선택될 수 있는 하나 이상의 파일을 식별하는 상기 사용자 인터페이스의 일부를 상기 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트가 디스플레이하는 호스트 영역(hosted area)을 포함하는 사용자 인터페이스를 디스플레이하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 하나 이상의 파일 호스트는 상기 컴퓨팅 장치 상에서 실행되는 하나 이상의 다른 애플리케이션을 포함하는
    방법.

  3. 제 2 항에 있어서,
    상기 애플리케이션은 상기 애플리케이션이 상기 하나 이상의 다른 애플리케이션을 방해하는 것을 방지하며 상기 하나 이상의 다른 애플리케이션이 상기 애플리케이션을 방해하는 것을 방지하는 제한된 방식으로 상기 컴퓨팅 장치 상에서 실행되는
    방법.
  4. 제 1 항에 있어서,
    상기 하나 이상의 파일 호스트는 상기 컴퓨팅 장치와 다른 하나 이상의 장치 상에서 실행되는 서비스 제공자의 하나 이상의 다른 애플리케이션을 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 애플리케이션은 상기 하나 이상의 파일 호스트 각각에 의해 사용되는 데이터 모델을 모르는
    방법.
  6. 제 1 항에 있어서,
    상기 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트의 하나 이상의 파일에 대한 사용자 선택을 수신하는 단계, 및
    상기 하나 이상의 사용자 선택 파일을 상기 애플리케이션으로 리턴시키는 단계를 더 포함하는
    방법.
  7. 컴퓨팅 장치로서,
    파일 관리 모듈을 포함하고,
    상기 파일 관리 모듈은
    애플리케이션으로부터 파일 액세스 요청을 수신하는 동작,
    상기 애플리케이션에 의해 저장될 파일의 파일 타입을 식별하는 동작,
    상기 식별된 파일 타입의 파일을 지원하는 하나 이상의 파일 호스트를 식별하는 동작, 및
    상기 파일이 상기 적어도 하나의 파일 호스트에 의해 저장되는 것을 허용하는 사용자 인터페이스의 일부를 상기 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트가 디스플레이하는 호스트 영역을 포함하는 사용자 인터페이스를 디스플레이하는 동작을 포함하는 동작을 구현하는
    컴퓨팅 장치.
  8. 제 7 항에 있어서,
    상기 파일 관리 모듈은
    상기 동작은 상기 사용자 인터페이스의 일부를 상기 호스트 영역 내에 디스플레이하기 위해 상기 하나 이상의 파일 호스트 중 적어도 하나의 파일 호스트를 제한하는 동작을 더 구현하는
    컴퓨팅 장치.
  9. 제 7 항에 있어서,
    상기 디스플레이하는 동작은 상기 파일이 저장될 수 있는 상기 적어도 하나의 파일 호스트의 하나 이상의 위치의 식별자를 디스플레이하는 동작을 포함하며,
    상기 방법은
    상기 하나 이상의 위치 중 하나의 위치에 대한 사용자 선택을 수신하는 단계, 및
    상기 파일을 상기 적어도 하나의 파일 호스트에 제공하여 상기 파일을 상기 사용자 선택 위치에 저장하는 단계를 더 포함하는
    컴퓨팅 장치.
  10. 제 7 항에 있어서,
    상기 애플리케이션은 상기 하나 이상의 파일 호스트의 어느 것이 상기 호스트 영역 내에 상기 사용자 인터페이스의 일부를 디스플레이하고 있는지를 모르는
    컴퓨팅 장치.
KR1020137031297A 2011-05-27 2011-10-09 상이한 파일 호스트를 이용한 파일 액세스 기법 KR101798697B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/117,598 US8819586B2 (en) 2011-05-27 2011-05-27 File access with different file hosts
US13/117,598 2011-05-27
PCT/US2011/055528 WO2012166186A1 (en) 2011-05-27 2011-10-09 File access with different file hosts

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031981A Division KR101895185B1 (ko) 2011-05-27 2011-10-09 상이한 파일 호스트를 이용한 파일 액세스 기법

Publications (2)

Publication Number Publication Date
KR20140027332A true KR20140027332A (ko) 2014-03-06
KR101798697B1 KR101798697B1 (ko) 2017-11-16

Family

ID=47220145

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177031981A KR101895185B1 (ko) 2011-05-27 2011-10-09 상이한 파일 호스트를 이용한 파일 액세스 기법
KR1020137031297A KR101798697B1 (ko) 2011-05-27 2011-10-09 상이한 파일 호스트를 이용한 파일 액세스 기법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177031981A KR101895185B1 (ko) 2011-05-27 2011-10-09 상이한 파일 호스트를 이용한 파일 액세스 기법

Country Status (6)

Country Link
US (4) US8819586B2 (ko)
EP (1) EP2715532B1 (ko)
JP (1) JP5932982B2 (ko)
KR (2) KR101895185B1 (ko)
CN (1) CN103562908B (ko)
WO (1) WO2012166186A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547694B1 (en) 2002-05-25 2017-01-17 hopTo Inc. Aggregated search
US8418257B2 (en) 2010-11-16 2013-04-09 Microsoft Corporation Collection user interface
US8819586B2 (en) * 2011-05-27 2014-08-26 Microsoft Corporation File access with different file hosts
US20130060842A1 (en) * 2011-08-21 2013-03-07 World Software Corporation Remote desktop and data management system
US9965134B2 (en) * 2012-09-14 2018-05-08 Advanced Micro Devices, Inc. Method and apparatus for providing a user interface for a file system
CN104137073B (zh) * 2012-12-31 2017-11-21 华为技术有限公司 一种获取文件的方法和装置
US9473562B2 (en) * 2013-09-12 2016-10-18 Apple Inc. Mediated data exchange for sandboxed applications
CN104461709B (zh) * 2014-12-12 2018-07-17 北京国双科技有限公司 任务计划的控制方法和装置
US10187446B2 (en) * 2015-03-23 2019-01-22 Sonicwall Inc. Firewall multi-level security dynamic host-based sandbox generation for embedded URL links
JP7559463B2 (ja) * 2020-09-23 2024-10-02 富士フイルムビジネスイノベーション株式会社 ファイル管理装置およびプログラム

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6407752B1 (en) 1997-04-29 2002-06-18 International Business Machines Corporation Method and system for a user interface for remote FTP hosts
US6266682B1 (en) 1998-08-31 2001-07-24 Xerox Corporation Tagging related files in a document management system
JP2001075998A (ja) * 1999-09-08 2001-03-23 Toshiba Corp 電子ファイリングシステム及びファイル一覧表示方法
US8781940B2 (en) * 2000-01-26 2014-07-15 Ebay Inc. Method and apparatus for facilitating user selection of a category item in a transaction
US7707505B1 (en) 2000-03-23 2010-04-27 Insweb Corporation Dynamic tabs for a graphical user interface
US7188319B2 (en) * 2000-04-21 2007-03-06 Microsoft Corporation Displaying graphical information and user selected properties on a computer interface
US20020099944A1 (en) 2001-01-19 2002-07-25 Bowlin Bradley Allen Method and apparatus which enable a computer user to prevent unauthorized access to files stored on a computer
US6765596B2 (en) 2001-02-27 2004-07-20 International Business Machines Corporation Multi-functional application launcher with integrated status
US20030013483A1 (en) 2001-07-06 2003-01-16 Ausems Michiel R. User interface for handheld communication device
US20040153445A1 (en) 2003-02-04 2004-08-05 Horvitz Eric J. Systems and methods for constructing and using models of memorability in computing and communications applications
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7421438B2 (en) * 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7409644B2 (en) * 2003-05-16 2008-08-05 Microsoft Corporation File system shell
US7234114B2 (en) * 2003-03-24 2007-06-19 Microsoft Corporation Extensible object previewer in a shell browser
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7240292B2 (en) * 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
WO2004090722A1 (en) 2003-04-11 2004-10-21 Star Softcomm Pte Ltd Data isolation system and method
US7539631B1 (en) * 2003-10-06 2009-05-26 Microsoft Corporation Method, system and program for providing subscription-based virtual computing services
US7480655B2 (en) 2004-01-09 2009-01-20 Webroor Software, Inc. System and method for protecting files on a computer from access by unauthorized applications
US8707209B2 (en) * 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
KR20070061555A (ko) * 2004-09-30 2007-06-13 사이트릭스 시스템스, 인크. 네트워크형 콘텐츠 파일에 대한 액세스를 제공하는 데에있어서 액세스 제어 레벨을 할당하는 방법 및 장치
US7647559B2 (en) 2004-09-30 2010-01-12 Microsoft Corporation Method and computer-readable medium for navigating between attachments to electronic mail messages
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7444360B2 (en) 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US8522154B2 (en) * 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US20060242122A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8365063B2 (en) 2005-06-28 2013-01-29 International Business Machines Corporation Accessible list navigation
WO2007005072A1 (en) * 2005-06-29 2007-01-11 William Parrish Site plan tool
US20070006321A1 (en) 2005-07-01 2007-01-04 International Business Machines Corporation Methods and apparatus for implementing context-dependent file security
CN101310285B (zh) 2005-11-17 2011-09-07 皇家飞利浦电子股份有限公司 用于管理访问控制的系统
US20100153671A1 (en) 2005-12-01 2010-06-17 Drive Sentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US7664924B2 (en) 2005-12-01 2010-02-16 Drive Sentry, Inc. System and method to secure a computer system by selective control of write access to a data storage medium
US7503009B2 (en) 2005-12-29 2009-03-10 Sap Ag Multifunctional icon in icon-driven computer system
US20070162857A1 (en) 2006-01-06 2007-07-12 Ralf Weber Automated multimedia authoring
KR100714709B1 (ko) 2006-01-11 2007-05-04 삼성전자주식회사 숨김 영역 관리 장치 및 방법
US7496576B2 (en) 2006-03-30 2009-02-24 Microsoft Corporation Isolated access to named resources
US8515826B2 (en) * 2006-05-18 2013-08-20 Bryan C. Norman Made-to-order direct digital manufacturing enterprise
US20080127354A1 (en) 2006-11-28 2008-05-29 Microsoft Corporation Condition based authorization model for data access
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
EP1970824A1 (en) * 2007-03-15 2008-09-17 Magix Ag System and method for creation of automated content dependent procedures in an online environment
US20080320397A1 (en) 2007-06-19 2008-12-25 Microsoft Corporation Integrated sharing of electronic documents
US20090158181A1 (en) 2007-12-18 2009-06-18 Mellmo Llc User interface method and apparatus to navigate a document file
US20090166098A1 (en) 2007-12-31 2009-07-02 Apple Inc. Non-visual control of multi-touch device
US20090282332A1 (en) 2008-05-12 2009-11-12 Nokia Corporation Apparatus, method and computer program product for selecting multiple items using multi-touch
US20090309847A1 (en) 2008-06-12 2009-12-17 You I Labs, Inc. Apparatus and method for providing multi-touch interface capability
US20100107085A1 (en) 2008-10-29 2010-04-29 The Go Daddy Group, Inc. Control panel for managing multiple online data management solutions
US8904004B2 (en) 2009-04-10 2014-12-02 Open Invention Network, Llc System and method for maintaining mappings between application resources inside and outside isolated environments
US8291069B1 (en) * 2008-12-23 2012-10-16 At&T Intellectual Property I, L.P. Systems, devices, and/or methods for managing sample selection bias
US8686952B2 (en) 2008-12-23 2014-04-01 Apple Inc. Multi touch with multi haptics
US8473862B1 (en) * 2009-05-21 2013-06-25 Perceptive Pixel Inc. Organizational tools on a multi-touch display device
KR101626117B1 (ko) 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US8407613B2 (en) 2009-07-13 2013-03-26 Apple Inc. Directory management on a portable multifunction device
US8601363B2 (en) * 2009-07-20 2013-12-03 Facebook, Inc. Communicating information about a local machine to a browser application
US8417705B2 (en) * 2009-10-30 2013-04-09 International Business Machines Corporation Graphically displaying a file system
US20110246941A1 (en) 2009-11-05 2011-10-06 Gonzalez George E Visual Interface Direct Alphanumeric Navigation Through Displayed Items
US8850572B2 (en) * 2010-01-15 2014-09-30 Apple Inc. Methods for handling a file associated with a program in a restricted program environment
US20110213971A1 (en) 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
JP5797382B2 (ja) 2010-06-09 2015-10-21 株式会社リコー ファイル交換システム、ファイル交換方法、モバイル機器及びプログラム
US20120124091A1 (en) 2010-11-12 2012-05-17 Microsoft Corporation Application file system access
US8819593B2 (en) * 2010-11-12 2014-08-26 Microsoft Corporation File management user interface
US8418257B2 (en) 2010-11-16 2013-04-09 Microsoft Corporation Collection user interface
US20120236201A1 (en) * 2011-01-27 2012-09-20 In The Telling, Inc. Digital asset management, authoring, and presentation techniques
US8819586B2 (en) * 2011-05-27 2014-08-26 Microsoft Corporation File access with different file hosts
US20130179414A1 (en) * 2012-01-06 2013-07-11 Microsoft Corporation Mechanisms for connecting files between applications
US9262535B2 (en) * 2012-06-19 2016-02-16 Bublup Technologies, Inc. Systems and methods for semantic overlay for a searchable space
US9965134B2 (en) * 2012-09-14 2018-05-08 Advanced Micro Devices, Inc. Method and apparatus for providing a user interface for a file system
US9323855B2 (en) * 2013-02-05 2016-04-26 Facebook, Inc. Processing media items in location-based groups
US9473562B2 (en) * 2013-09-12 2016-10-18 Apple Inc. Mediated data exchange for sandboxed applications
US10365798B1 (en) * 2016-01-08 2019-07-30 Microsoft Technology Licensing, Llc Feedback manager for integration with an application
JP6899510B2 (ja) * 2016-04-14 2021-07-07 Line株式会社 表示制御方法、端末、及びプログラム
US10838920B2 (en) * 2017-05-05 2020-11-17 Esoptra NV Plug-in function platform and methods
US11503015B2 (en) * 2017-10-12 2022-11-15 Mx Technologies, Inc. Aggregation platform portal for displaying and updating data for third-party service providers
US11461385B2 (en) * 2018-01-12 2022-10-04 40 North Labs LLC Event-based methods and systems for managing photographic content

Also Published As

Publication number Publication date
CN103562908B (zh) 2017-03-22
WO2012166186A1 (en) 2012-12-06
JP5932982B2 (ja) 2016-06-08
EP2715532B1 (en) 2020-03-18
US20140325380A1 (en) 2014-10-30
US20200356527A1 (en) 2020-11-12
CN103562908A (zh) 2014-02-05
EP2715532A1 (en) 2014-04-09
JP2014522521A (ja) 2014-09-04
US10042851B2 (en) 2018-08-07
US8819586B2 (en) 2014-08-26
KR20170126015A (ko) 2017-11-15
KR101895185B1 (ko) 2018-09-04
US20180314709A1 (en) 2018-11-01
KR101798697B1 (ko) 2017-11-16
US11132333B2 (en) 2021-09-28
US20120304119A1 (en) 2012-11-29
EP2715532A4 (en) 2014-12-17

Similar Documents

Publication Publication Date Title
US11132333B2 (en) File access with different file hosts
US10554599B2 (en) Conversion of detected URL in text message
AU2012304710B2 (en) Facilitating interaction with system level search user interface
JP5075920B2 (ja) ウェブデータ使用のプラットフォーム
US11580088B2 (en) Creation, management, and transfer of interaction representation sets
US20190050378A1 (en) Serializable and serialized interaction representations
WO2018183063A1 (en) Collection and control of user activity set data and activity set user interface
KR20170054407A (ko) 콘텐츠를 현재 애플리케이션에 삽입하기 위한 개인화된 문맥 메뉴 제공 기법
CN107589888B (zh) 信息处理方法和信息处理装置
KR20150004817A (ko) 사용자 인터페이스 웹 서비스
US20130179414A1 (en) Mechanisms for connecting files between applications
JP5889325B2 (ja) アプリケーションのファイルシステムアクセス
JP7100637B2 (ja) レイヤード・コンテンツの選択
US20160150038A1 (en) Efficiently Discovering and Surfacing Content Attributes

Legal Events

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