KR20120118038A - 휴대용 저장 인터페이스 - Google Patents

휴대용 저장 인터페이스 Download PDF

Info

Publication number
KR20120118038A
KR20120118038A KR1020127021349A KR20127021349A KR20120118038A KR 20120118038 A KR20120118038 A KR 20120118038A KR 1020127021349 A KR1020127021349 A KR 1020127021349A KR 20127021349 A KR20127021349 A KR 20127021349A KR 20120118038 A KR20120118038 A KR 20120118038A
Authority
KR
South Korea
Prior art keywords
portable storage
host
interface
storage device
link
Prior art date
Application number
KR1020127021349A
Other languages
English (en)
Other versions
KR101406426B1 (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 KR20120118038A publication Critical patent/KR20120118038A/ko
Application granted granted Critical
Publication of KR101406426B1 publication Critical patent/KR101406426B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

호스트에 테더링 및 휴대용 저장 서비스를 제공하는 휴대용 저장 디바이스의 장치 및 방법이 기술된다. 예시적인 방법에서, 휴대용 저장 디바이스는 호스트에 대한 테더링 및 휴대용 저장 서비스 인터페이스를 구성한다. 휴대용 저장 디바이스는 테더링 인터페이스를 통해 호스트에 네트워크로의 테더링 서비스를 제공한다. 추가로, 휴대용 저장 디바이스는 휴대용 저장 인터페이스를 통해 휴대용 저장 디바이스 상에 저장된 파일들을 공유한다.

Description

휴대용 저장 인터페이스{PORTABLE STORAGE INTERFACE}
본 출원인은 2010년 1월 15일에 출원되었으며, 그 전체 내용이 참조로 포함된, 이전 공동 계류 중인 가출원 일련 제61/295,660호의 우선권의 이익을 청구한다.
본 발명은 일반적으로 디바이스들을 커플링하는 것에 관한 것이고, 더 구체적으로는 휴대용 저장 디바이스와 호스트 사이의 저장 인터페이스를 생성하는 것에 관한 것이다.
휴대용 음악 플레이어, 스마트폰 등과 같은 휴대용 저장 디바이스는 유니버셜 직렬 버스(USB) 링크를 통해 개인용 컴퓨터 또는 랩톱과 같은 호스트와 접속될 수 있다. 이들 2개의 디바이스들이 접속되는 경우, 호스트와 휴대용 저장 디바이스 사이의 정보는 벤더-특정의 패킷-발신 멀티플렉싱 프로토콜을 사용하여 전달될 수 있다. 예를 들어, 멀티미디어 파일들, 애플리케이션들, 연락처 정보 등이 2개 디바이스들 사이에서 전송될 수 있다.
일 시나리오에서, 호스트 및 휴대용 저장 디바이스는 2개의 디바이스들을 커플링시키는 USB 링크를 통한 USB 및 전송 제어 프로토콜(TCP)/인터넷 프로토콜(IP) 통신을 멀티플렉싱할 수 있다. 이러한 시나리오에서, 네트워크 인터페이스는 USB 링크를 통한 TCP/IP-타입 통신을 인에이블하도록 USB 링크 상에서 구성된다. 이러한 네트워크 인터페이스는 이러한 링크 상에서 TCP/IP 패킷들을 전달하기 위해 사용될 수 있다. TCP/IP-타입 통신을 인에이블함으로써, 링크 내에서의 중단이 적절하게(gracefully) 핸들링될 수 있다. 예를 들어, 호스트 및 휴대용 저장소 각각 상의 애플리케이션은 2개의 애플리케이션들 사이에 TCP 세션을 설정할 수 있으며, 이는 2개 애플리케이션들 사이의 데이터를 전달하기 위해 사용될 수 있다. TCP 스택은, 아마도 기반 USB 링크에서의 접속해제에 의해 야기되는, 세션에서의 접속해제가 존재하는 경우 애플리케이션들에 통지한다. 호스트 및 휴대용 디바이스 애플리케이션들은 통신 중단으로부터 적절하게 복원하기 위해 통지를 사용할 수 있다.
호스트에 테더링 및 휴대용 저장 서비스를 제공하는 휴대용 저장 디바이스의 장치 및 방법이 기술된다. 예시적인 방법에서, 휴대용 저장 디바이스는 호스트에 대한 휴대용 저장 서비스 인터페이스 및 테더링을 구성한다. 휴대용 저장 디바이스는 테더링 인터페이스를 통해 호스트에 네트워크로의 테더링 서비스를 제공한다. 추가로, 휴대용 저장 디바이스는 휴대용 저장 인터페이스를 통해 휴대용 저장 디바이스 상에 저장된 파일들을 공유한다.
일 실시예에서, 휴대용 저장 디바이스는 링크 인터페이스 상에서 휴대용 저장 인터페이스 및 테더링 인터페이스를 인에이블시키도록 구성된다. 해당 링크에 커플링된 호스트를 검출하는 것에 응답하여, 방법은 네트워크에 대한 호스트 액세스를 허용하도록 테더링 인터페이스를 구성하고, 호스트 및 휴대용 저장 디바이스 사이에서 파일들을 공유하도록 휴대용 저장 인터페이스를 구성한다. 방법은 추가로, 테더링 인터페이스를 이용하여 호스트 및 네트워크 사이에서 데이터를 통신하고, 휴대용 저장 인터페이스를 통해 휴대용 저장 디바이스 상에 저장된 파일들을 호스트와 공유한다.
또다른 실시예에서, 휴대용 저장 디바이스는 휴대용 저장 디바이스 상에 상주하는 복수의 애플리케이션들의 리스트를 검색하고, 여기서 복수의 애플리케이션들 각각은 파일들의 개별 파일시스템을 가진다. 복수의 애플리케이션들 각각에 대해, 휴대용 저장 디바이스는 해당 애플리케이션이 휴대용 저장 디바이스의 공유된 파일시스템에 대한 개별 파일시스템을 공유할 것인지의 여부를 결정한다. 휴대용 저장 디바이스는 추가로, 개별 파일시스템이 공유가능한 경우 해당 애플리케이션의 개별 파일시스템에 대한 링크를 공유된 파일시스템에 추가한다. 또한, 휴대용 저장 디바이스는 휴대용 저장 디바이스에 커플링된 호스트에 휴대용 저장 디바이스의 공유된 파일시스템을 광고한다.
추가적인 실시예에서, 휴대용 저장 디바이스는 호스트로부터 공유된 파일시스템에 액세스하기 위한 요청을 수신하고, 여기서 공유된 파일시스템은, 복수의 애플리케이션들 중 하나가 복수의 애플리케이션들 중 또다른 하나 또는 다수에 대응하는 공유된 파일시스템 내의 파일에 액세스하는 것을 허용하지 않는 보안 정책 및 휴대용 저장 디바이스 상의 복수의 애플리케이션들에 대응하는 파일들을 포함한다. 추가로, 휴대용 저장 디바이스는 해당 요구를 실행한다.
또다른 실시예에서, 호스트는 호스트로부터 공유된 파일시스템에 액세스하기 위한 요청을 전송하고, 여기서 공유된 파일시스템은 복수의 애플리케이션들 중 하나가 복수의 애플리케이션들 중 또다른 하나 또는 다수에 대응하는 공유된 파일시스템 내의 파일에 액세스하는 것을 허용하지 않는 보안 정책 및 휴대용 저장 디바이스 상의 복수의 애플리케이션들에 대응하는 파일들을 포함한다. 추가로, 호스트는 요청의 결과의 표시를 수신한다.
일 실시예에서, 호스트는 공유된 파일시스템이 사용하기에 가용적이라는 광고를 휴대용 저장 서비스로부터 수신한다. 호스트는 광고된 휴대용 저장 서비스들에 대응하는 휴대용 저장 디바이스가 호스트에 공지되었는지의 여부를 결정한다. 휴대용 저장 디바이스가 호스트에 공지된 경우, 호스트는 호스트에 대한 휴대용 저장 인터페이스를 구성하기 위해 인터넷 프로토콜(IP) 어드레스를 수신한다. 이러한 인터페이스가 구성되면, 호스트는 호스트에 대한 휴대용 저장 서비스의 공유된 파일시스템을 탑재하기 위한 요청을 휴대용 저장 서비스에 전송한다. 호스트는 공유된 파일시스템이 탑재되었다는 통지를 수신하고, 호스트 상에 상주하는 애플리케이션들은 공유된 파일시스템 내의 파일들에 액세스할 수 있다.
본 발명은 첨부 도면들의 도면들 내에서 제한이 아닌 예시로서 예시되며, 여기서 동일한 참조번호들은 유사한 엘리먼트들을 나타낸다.
도 1은 호스트에 커플링하며 호스트에 휴대용 저장 서비스 및 테더링을 제공할 수 있는 휴대용 저장 디바이스의 일 실시예의 블록도이다.
도 2는 호스트와 휴대용 저장 디바이스 사이의 접속의 일 실시예의 블록도이다.
도 3은 휴대용 저장 디바이스-호스트 접속을 이용하는 시스템 컴포넌트들의 일 실시예의 블록도이다.
도 4는 휴대용 저장 디바이스 상의 휴대용 저장 서비스의 일 실시예의 블록도이다.
도 5는 휴대용 저장 디바이스 내의 공유된 파일시스템의 일 실시예의 블록도이다.
도 6은 호스트와 휴대용 저장 디바이스 사이의 듀얼 이더넷 채널 접속을 생성하기 위한 프로세스의 일 실시예의 흐름도이다.
도 7은 휴대용 저장 디바이스 상에 공유된 파일시스템을 구축하기 위한 프로세스의 일 실시예의 흐름도이다.
도 8은 휴대용 저장 디바이스 상의 공유된 파일시스템에 액세스할 수 있도록 호스트를 구성하기 위한 프로세스의 일 실시예의 흐름도이다.
도 9는 휴대용 저장 디바이스 상의 공유된 파일시스템에 대한 액세스 요청에 응답하기 위한 프로세스의 일 실시예의 흐름도이다.
도 10은 휴대용 저장 디바이스의 공유된 파일시스템에 액세스하기 위한 프로세스의 일 실시예의 흐름도이다.
도 11은 호스트와 휴대용 저장 디바이스 사이의 듀얼 이더넷 채널 접속을 생성하는 휴대용 저장 구성 모듈의 블록도이다.
도 12는 휴대용 저장 디바이스 상에 공유가능한 파일시스템을 생성하는 개시 휴대용 서비스 모듈의 블록도이다.
도 13은 휴대용 저장 디바이스 상의 공유된 파일시스템에 액세스할 수 있도록 호스트를 구성하는 호스트 구성 모듈의 블록도이다.
도 14a는 휴대용 저장 디바이스 상의 공유된 파일시스템에 대한 액세스들을 핸들링하는 파일 서버 모듈의 블록도이다.
도 14b는 휴대용 저장 디바이스 상의 공유된 파일시스템에 대한 액세스 요청들을 수행하는 파일 서버 모듈의 블록도이다.
도 15는 여기서 기술된 실시예들과 함께 사용될 수 있는 통상적인 컴퓨터 시스템의 일 예를 도시하는 도면이다.
도 16은 본 발명의 일 실시예와 함께 사용될 수 있는 데이터 프로세싱 시스템의 예를 도시하는 도면이다.
호스트에 테더링 및 휴대용 저장 서비스를 제공하는 휴대용 저장 디바이스의 방법 및 장치가 기술된다. 후속하는 기재에서, 다수의 특정 상세항목들이 본 발명의 실시예들의 완전한 설명을 제공하기 위해 설명된다. 그러나, 본 발명의 실시예들이 이들 특정 상세항목들 없이도 구현될 수 있다는 점이 당업자에게 명백할 것이다. 다른 경우들에서, 공지된 컴포넌트들, 구조들 및 기법들은 이러한 기재의 이해를 모호하게 하지 않기 위해 상세히 도시되지 않는다.
"일 실시예" 또는 "실시예"에 대한 명세서 내의 참조는 실시예와 관련하여 기술되는 특정한 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있음을 의미한다. 명세서 내의 다양한 위치들에서의 구문 "일 실시예에서"의 출현은 반드시 모두 동일한 실시예를 참조하지는 않는다.
후속하는 도면들에서 도시되는 프로세스들은 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(예를 들어, 범용 컴퓨터 시스템 또는 전용 머신 상에서 실행되는), 또는 이들 모두의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 프로세스들이 하기에서 일부 순차적 동작들의 견지에서 기술되지만, 기술된 동작들 중 일부가 상이한 순서로 수행될 수 있다는 점이 이해되어야 한다. 또한, 일부 동작들은 순차적이라기보다는 병렬로 수행될 수 있다.
용어 "호스트" 및 용어 "휴대용 저장 디바이스"는 구체적으로 호스트에 대한 특정 폼팩터 대 디바이스에 대한 폼팩터가 아닌 일반적으로 데이터 프로세싱 시스템들을 참조하도록 의도된다.
호스트에 테더링 및 휴대용 저장 서비스를 제공하는 휴대용 저장 디바이스의 장치 및 방법이 기술된다. 예시적인 방법에서, 휴대용 저장 디바이스는 호스트에 대한 휴대용 저장 서비스 인터페이스 및 테더링을 구성한다. 휴대용 저장 디바이스는 테더링 인터페이스를 통해 호스트에 네트워크로의 테더링 서비스를 제공한다. 추가로, 휴대용 저장 디바이스는 휴대용 저장 인터페이스를 통해 휴대용 저장 디바이스 상에 저장된 파일들을 공유한다.
도 1은 호스트(102)에 커플링하고 호스트(102)에 테더링을 제공할 수 있는 휴대용 저장 디바이스(104)의 일 실시예의 블록도이다. 당해 기술분야에 공지된 바와 같이, 테더링은 또다른 디바이스(예를 들어, 호스트)에 대해 네트워크 액세스를 공급하는 모바일 디바이스(예를 들어, 휴대용 저장 디바이스)의 사용이다. 도 1에서, 휴대용 저장 디바이스(104)는 호스트-디바이스 링크(106)를 통해 호스트(102)에 커플링한다. 호스트(102)는 개인용 컴퓨터, 스마트폰, 셀룰러폰, 음악 플레이어, 랩톱, 노트북, 태블릿, 개인용 디지털 정보 단말(PDA), 넷북, 팜톱 컴퓨터, 서버 등 중 하나이다. 휴대용 저장 디바이스(104)는 데이터를 저장할 수 있는 모바일 디바이스, 예를 들어, 스마트폰, 모바일 플레이어, 셀룰러폰, 태블릿, 랩톱, 노트북 등이다. 일 실시예에서, 호스트-디바이스 링크(106)는 유니버셜 직렬 버스(USB)이지만, 대안적인 실시예들에서, 호스트-디바이스 링크(106)는 호스트(102) 및 휴대용 저장 디바이스(104) 사이에 데이터를 통신할 수 있는 또다른 타입의 링크(파이어와이어, 이더넷, 무선, 직렬 접속, Bluetooth® 등)이다. 예를 들어, 그리고 일 실시예에서, 호스트(102)는 랩톱 또는 다른 타입의 개인용 컴퓨터이고, 휴대용 저장 디바이스(104)는 USB 링크를 사용하여 호스트(102)에 커플링되는 스마트폰 또는 태블릿이다.
일 실시예에서, 휴대용 저장 디바이스는 호스트-디바이스 링크(106)를 통해 호스트에 2개의 서비스들인 테더링 서비스(114) 및 휴대용 저장 서비스(112)를 제공한다. 테더링 서비스(114)는 휴대용 저장 디바이스(104)를 통해 호스트(102)에 네트워크(108)에 네트워크 액세스를 제공한다. 휴대용 저장 서비스(112)는 휴대용 저장 디바이스(104) 상에 저장된 파일로의 액세스를 호스트(102)에 제공한다.
일 실시예에서, 휴대용 저장 디바이스(104)는 디바이스-네트워크 링크(110)를 통해 네트워크(108)에 커플링된다. 일 실시예에서, 네트워크(108)는 호스트(102) 및/또는 휴대용 저장 디바이스(104)에 네트워크 서비스들을 제공하는 광역 네트워크이다. 예를 들어, 그리고 일 실시예에서, 네트워크(108)는 인터넷, 셀룰러 네트워크(3G 등), 또는 당해 기술분야에 공지된 다른 타입의 광역 네트워크이다. 디바이스-네트워크 링크(110)는 네트워크(108)의 타입에 대응하는 링크의 타입이다. 예를 들어, 그리고 일 실시예에서, 디바이스-네트워크 링크(110)는 3G 무선 링크, Wi-Fi 무선 링크, WIMAX 링크 등이다. 일 실시예에서, 네트워크(108)에 휴대용 저장 디바이스(104)를 커플링시킴으로써, 휴대용 저장 디바이스(104)는 네트워크(108)에 의해 지원되는 네트워크 서비스들에 대한 액세스를 제공하기 위해, 네트워크(108)에 테더링 서비스(114)를 통해 호스트(102)를 테더링할 수 있다. 이러한 실시예에서, 호스트-디바이스 링크(106)는 호스트(102) 및 네트워크(108) 사이에 데이터를 통신하는 데에 이용된다. 네트워크(108)에 호스트(102)를 테더링하도록 호스트-디바이스 링크(110)를 설정하는 것은 하기에 도 2, 3 및 6에서 추가로 논의된다.
또다른 실시예에서, 휴대용 저장 디바이스(104)는 휴대용 저장 서비스(112) 및 호스트-디바이스 링크(106) 저장을 통해 호스트(102)에 의해 액세스가능한 파일 저장소를 포함한다. 이러한 실시예에서, 휴대용 저장 디바이스(104) 상의 파일시스템에 대한 액세스를 허용할 수 있는 파일서버가 휴대용 저장 디바이스 상에 상주한다.
위에서 기술된 바와 같이, 호스트-디바이스 링크(106)는 호스트(102)가 휴대용 저장 디바이스(104)상의 파일시스템에 액세스하는 것을 그리고, 호스트(102)가 휴대용 저장 디바이스(104)를 통해 네트워크(108)에 액세스하는 것을 지원할 수 있다. 일 실시예에서, 이들 기능들을 지원하기 위해 2개의 통신 채널들이 호스트-디바이스 링크(106) 상에 생성된다. 도 2는 테더링 및 파일시스템 액세스를 지원하는 호스트(220) 및 휴대용 저장 디바이스(222) 사이의 접속(216)의 일 실시예의 블록도이다. 도 2에서, 호스트(220)는 청취자 인터페이스(202), 테더링 인터페이스(224), 이더넷 오버 USB 인터페이스(204), 및 USB 인터페이스(206)를 포함한다. 휴대용 저장 디바이스(222)는 휴대용 저장 인터페이스(212), 테더링 인터페이스(214), 이더넷 오버 USB 인터페이스(210) 및 USB 인터페이스(208)를 포함한다. 이러한 실시예에서, 호스트(220) 및 휴대용 저장 디바이스(222)는 이러한 2개의 이더넷 채널들(218A-B)을 포함하는 USB 링크에 의해 접속된다.
일 실시예에서, 이더넷 채널들 중 하나는 테더링 기능을 위해 사용되고, 다른 하나는 파일서버 기능성을 제공하기 위해 사용된다. 예를 들어, 그리고 일 실시예에서, 이더넷 채널(218A)은 호스트(220)에 테더링 서비스를 제공하기 위해 사용되고, 이더넷 채널(218B)은 호스트에 대한 파일서버 액세스를 제공하기 위해 사용된다. 이러한 실시예에서, 이더넷 채널(218A)은 호스트(220) 상의 테더링 인터페이스(224)와 휴대용 저장 디바이스(222) 상의 테더링 인터페이스(214)를 커플링시킨다. 추가로, 이더넷 채널(218B)은 호스트(220) 상의 파일 브라우저 청취자 인터페이스(202) 및 휴대용 저장 디바이스(222) 상의 휴대용 저장 인터페이스(212)를 커플링시킨다.
이러한 실시예에서, 인터넷 프로토콜(IP) 어드레스들은 데이터가 각각의 이더넷 채널을 통해 전달되도록 하기 위해 각각의 이더넷 인터페이스에 할당된다. 예를 들어, 그리고 일 실시예에서, IP 어드레스는 인터페이스들(202 및 224)에 할당된다. 일 실시예에서, 다른 네트워크 기능 인터페이스(224)에는, 이더넷 채널(218A)에 대응하며, 이더넷 채널(218A)을 통해 전달되는 데이터가 휴대용 저장 디바이스(222)에 대해 테더링되는 네트워크에 도달하도록 하는 IP 어드레스가 할당된다. 예를 들어, 그리고 일 실시예에서, 테더링 인터페이스(224)에는 공중 IP 어드레스 또는 네트워크(108)에 공지된 개인 어드레스가 할당된다. 또다른 실시예에서, 파일 브라우저 청취자 인터페이스(202)에는 이더넷 채널(218B)에 대응하며 호스트(220)로 하여금 휴대용 저장 디바이스(222) 상의 공유된 파일시스템에 액세스하도록 하는 IP 어드레스가 할당된다. 예를 들어, 그리고 일 실시예에서, 파일 브라우저 청취자 인터페이스(202)에는 공유된 파일시스템에 대해 사용되는 개인 IP 어드레스가 할당되지만, 호스트(220)가 이러한 인터페이스를 통해 다른 네트워크 서비스들에 액세스(예를 들어, 테더링)하도록 허용하지 않는다. 일 실시예에서, 2개의 이더넷 채널들 각각에 대한 이더넷 인터페이스들에는 2개의 상이한 네트워크들로부터 오는 IP 어드레스들이 할당된다. 예를 들어, 그리고 일 실시예에서, 테더링 네트워크는 호스트(102)로 하여금 네트워크(108)에 액세스하도록 하는 어드레스들을 가진다. 파일 공유 네트워크는 호스트(102) 및 휴대용 저장 디바이스(104) 사이에서 파일 공유를 위해 사용되는 개인 어드레스들을 가진다.
도 3은 휴대용 저장 디바이스-호스트 접속을 이용하는 시스템 컴포넌트들의 일 실시예의 블록도이다. 도 3에서, 호스트(314)는 USB(338)를 이용하여 휴대용 저장 디바이스(316)에 커플링된다. 일 실시예에서, 호스트(314)는 휴대용 저장 디바이스(104)의 휴대용 저장 서비스(112) 및 네트워크(108)에 액세스하기 위해 휴대용 저장 디바이스(104)와 커플링하는 도 1의 호스트(102)이다. 호스트(314)는 USB 인터페이스(308), 이더넷 입력/출력 인터페이스(344), 및 커널 공간(312) 내의 2개의 이더넷 인터페이스들(306A-B) 및 사용자 공간(310) 내의 컴포넌트들의 세트를 포함한다. 일 실시예에서, 이더넷 입력/출력(344)은 이더넷 오버 USB 인터페이스, 예를 들어, 위의 도 2에서 기술된 바와 같은 이더넷 오버 USB 인터페이스(204)이다. 개별 이더넷 인터페이스들(306A-B)은 이더넷 입력/출력(344)의 최상부 상에 정의된다. 일 실시예에서, 이러한 컴포넌트들의 세트는 테더링 컴포넌트(302), 청취자(304), 및 호스트 파일 브라우저(340)를 포함한다. 테더링 컴포넌트(302)는 도 1 및 2에서 전술된 바와 같이 휴대용 저장 디바이스(316)를 이용하여 테더링하기 위해 이더넷 인터페이스 eth1(306A)를 사용한다. 청취자(304)는 파일시스템 광고들을 청취한다. 청취자(304)가 파일시스템 광고를 수신하는 경우, 청취자(306)는 호스트(314) 상에서 공유된 볼륨으로서 파일시스템을 탑재한다. 예를 들어, 그리고 일 실시예에서, 청취자(304)는 휴대용 저장 디바이스(316) 상에 탑재되고 공유되는 새로운 파일시스템에 대해 청취한다. 파일 브라우저(340)는 휴대용 저장 디바이스(316) 상의 공유된 파일시스템에 대한 요청을 수행한다. 일 실시예에서, 사용자 공간은 메모리 및 동작 모드이며, 여기서, 사용자 프로그램들 및 애플리케이션들은 예를 들어, 워드 프로세싱 애플리케이션을 실행한다. 커널 공간은 운영 체제 자체 및 디바이스 드라이버들이 실행되는 곳이며, 여기서 하드웨어에 액세스하기 위한 전체 특권들을 가진다.
휴대용 저장 디바이스(316)는 USB 인터페이스(318), 이더넷 입력/출력(320), 및 커널 공간(334) 내의 2개의 이더넷 인터페이스들(322A-B) 및 사용자 공간(336) 내의 컴포넌트들의 세트를 포함한다. 일 실시예에서, 이더넷 입력/출력(320)은 이더넷 오버 USB 인터페이스, 예를 들어, 위에서 도 2에 기술된 바와 같은 이더넷 오버 USB 인터페이스(210)이다. 개별 이더넷 인터페이스들(322A-B)은 이더넷 입력/출력(320)의 최상부 상에서 정의된다. 일 실시예에서, 휴대용 저장 디바이스(316)는 호스트(314)에 테더링 및 휴대용 저장 서비스들을 제공하는 디바이스이다. 일 실시예에서, 휴대용 저장 디바이스(316) 상의 컴포넌트들의 세트는 테더링(326), 네트워크 파일 서버(328), 애플리케이션들의 세트(332), 및 구성 프로세스, configd(330)를 포함한다. 테더링 컴포넌트(326)는 호스트(314)에 테더링 서비스들을 제공하기 위해 이더넷 eth0 인터페이스(322A)를 사용한다. 일 실시예에서, 네트워크 파일 서버(332)는 호스트(314)에 의해 사용되는 휴대용 저장 디바이스(316)에 대한 공유된 파일시스템을 구축하고 내보낸다(export). 네트워크 파일 서버(328)는 애플리케이션들 중 어느 것이 해당 애플리케이션들(332)의 개인 파일시스템 내의 파일들을 공유할지를 결정함으로써 파일시스템을 구축하고, 해당 공유된 개인 파일시스템 각각에 링크들을 추가한다. 이러한 실시예에서, 휴대용 저장 디바이스(316) 상에 상주하는 각각의 애플리케이션은 휴대용 저장 디바이스(316) 상의 다른 애플리케이션들과 공유되지 않는 자신만의 개인 파일시스템을 가진다. 네트워크 파일 서버(328)가 공유된 파일시스템을 구축하고 내보내는 방법에 대한 추가적인 논의가 하기에 도 4 및 5에 존재한다.
휴대용 저장 디바이스(316)는 USB 구성 파일들의 세트(340) 및 이더넷 구성 파일(324)을 더 포함한다. 일 실시예에서, 상이한 USB 구성 파일들은 USB 링크의 상이한 구성들에 대해 사용된다. 예를 들어, 그리고 일 실시예에서, USB 링크 상의 2개의 이더넷 채널(예를 들어, 테더링 및 파일 서빙 이더넷 채널), USB 링크 상의 1개의 이더넷 채널(예를 들어, 테더링 또는 파일 서빙 이더넷 채널), 및 이더넷 채널들을 가지지 않는(예를 들어, 당해 기술분야에 공지된 바와 같은 USB 능력을 가지도록 구성되는 USB 링크) USB에 대한 구성이 존재한다. 일 실시예에서, USB 구성은 휴대용 저장 디바이스(예를 들어, 미디어 플레이어, 스마트폰 등)의 모델, 및 디바이스 상에서 실행되는 서비스들에 기초하여 선택된다. 예를 들어, 그리고 일 실시예에서, 테더링이 디바이스 상에서의 선호도를 통해 턴온되면, 이후 휴대용 디바이스 운영 체제는 테더링 인터페이스를 포함하는 USB 구성을 선택할 것이다. 일 실시예에서, 이더넷 구성 파일은 인터페이스들(322A-B) 중 어느 것이 테더링 인터페이스이고 어느 것이 휴대용 저장 인터페이스인지를 표시하기 위해 이더넷 인터페이스들(322A 및 322B) 각각에 특징을 부착하기 위해 사용된다. 이러한 특징은 이후 이것이 정확한 이더넷 인터페이스에 대해 휴대용 저장 사용자 공간 데몬을 부착할 수 있도록, configd(330)에 의해 검사된다.
일 실시예에서, 사용자 공간 구성 데몬 configd(330)는 USB 링크를 구성하기 위해 사용되는 USB 구성 파일들에 기초하여 네트워크 파일 서버를 구성한다. 일 실시예에서, configd(330)는 호스트(314)에 휴대용 저장 디바이스(316)를 커플링할 시에 네트워크 파일 서버(328)를 구성 및 시작한다. 대안적인 실시예에서, configd(330)는 휴대용 저장 디바이스(316)의 부트업 시에 네트워크 파일 서버를 구성 및 시작한다. 추가적인 실시예에서, configd(330)는 USB 링크가 파일 서빙을 위해 사용되는 이더넷 채널을 이용하여 구성되는(또는 구성될 예정인) 경우 네트워크 파일 서버를 구성 및 시작한다.
전술된 바와 같이, 휴대용 저장 디바이스는 휴대용 저장 디바이스 상에 상주하는 휴대용 저장 서비스를 포함할 수 있다. 일 실시예에서, 휴대용 저장 서비스는 네트워크 파일 서버이고, 휴대용 저장 서비스에 의해 사용되는 공유된 파일 시스템은 휴대용 저장 디바이스 상에 상주하는 애플리케이션들의 개인 파일시스템들로부터 구성된다. 도 4는 휴대용 저장 디바이스 상의 휴대용 저장 서비스(400)의 일 실시예의 블록도이다. 도 4에서, 휴대용 저장 서비스(400)는 애플리케이션들(404A-N), 애플리케이션 개인 저장소(406A-N), 애플리케이션 샌드박스들(410A-N)에 커플링된 네트워크 파일 서버(402) 및 공유된 파일시스템 및 공유된 파일시스템(408)에 액세스할 수 있는 호스트 애플리케이션(412)을 포함한다. 애플리케이션(404A-N)은 컴퓨터 또는 휴대용 저장 디바이스 상에서 실행될 수 있는 당해 기술분야에 공지된 임의의 타입의 애플리케이션(예를 들어, 이메일, 웹 브라우징, 멀티미디어 사용/조작, 노트 쓰기, 작업 프로세싱, 스프레드시트 등)일 수 있다. 일 실시예에서, 애플리케이션 개인 저장소(406A-N)는 애플리케이션에 의해 사용되는 파일들, 예를 들어, 사용자-생성 문서들, 라이브러리 파일들, 객체 파일들, 실행가능성들, 구성 파일들, 캐시 데이터, 데이터베이스 파일들, 애플리케이션에 의해 디스플레이되는 이미지들 등을 포함한다. 일 실시예에서, 각각의 애플리케이션(404A-N) 및 대응하는 개인 저장소(406A-N)는 애플리케이션이 또다른 애플리케이션에 의해 생성되는 파일들에 액세스하는 것을 방지하는 애플리케이션 샌드박스(410A-N) 내에 포함된다. 예를 들어, 그리고 일 실시예에서, 애플리케이션(404A)은 애플리케이션 개인 저장소(406A) 내의 파일들에 액세스하지만, 또다른 애플리케이션 개인 저장소(406B-N) 내의 파일들에 액세스할 수 없다.
일 실시예에서, 네트워크 파일 서버(402)는 애플리케이션들(404A-N) 및 대응하는 애플리케이션 개인 저장소(406A-N)로부터 공유된 파일시스템(408)을 구성한다. 일 실시예에서, 대응하는 개인 저장소(406A-N)에 액세스하도록 허용하는 각각의 애플리케이션(404A-N)에 대해, 네트워크 파일 서버(402)는 해당 액세스가능한 개인 저장소에 대한 공유된 파일시스템(408)에 링크를 추가한다. 예를 들어, 그리고 일 실시예에서, 네트워크 파일 서버(402)는 휴대용 저장 서비스(400)에 참여하는 각각의 애플리케이션(404A-N)에 대해 애플리케이션 개인 저장소(406A-N)에 링크시킨다. 이러한 추가된 링크는 애플리케이션의 개인 저장소(406A-N)의 일부 또는 전부에 대한 액세스를 허용할 수 있다. 일 실시예에서, 추가된 링크는 애플리케이션 개인 저장소 내의 사용자-생성 파일들에 대한 액세스를 허용한다. 예를 들어, 그리고 일 실시예에서, 휴대용 저장 디바이스 상의 노트 쓰기 애플리케이션은 해당 노트 쓰기 애플리케이션에 대한 개인 저장소 내의 파일들 내에 사용자 생성 노트들을 생성 및 저장한다. 노트 쓰기 애플리케이션이 사용자 생성 노트들을 공유하도록 구성되는 경우, 네트워크 파일 서버(402)는 사용자 생성 노트들을 저장하는 노트 쓰기 애플리케이션 개인 저장소 내의 디렉토리에 공유된 파일시스템(408)을 링크시킨다. 이러한 실시예에서, 사용자 생성 노트들은 호스트 애플리케이션(412)에 의해 액세스될 수 있다.
네트워크 파일 서버(402)가 공유된 파일시스템(408)을 구성하면, 네트워크 파일 서버(402)는 호스트에 공유된 파일시스템(408)의 존재를 광고한다. 일 실시예에서, 휴대용 저장 서비스는 호스트에 휴대용 저장 서비스(400)를 광고하기 위해 Bonjour 서비스 디스커버리 프로토콜을 사용한다. 이러한 실시예에서, 호스트는 광고들을 수신하고, 공유된 파일시스템(408)을 탑재하기 위한 요청을 네트워크 파일 서버(402)에 송신한다.
위에서 기술된 바와 같이, 휴대용 저장 서비스의 공유된 파일시스템은 휴대용 저장 서비스에 참여하는 애플리케이션들의 개인 저장소에 링크시킴으로써 구성된다. 도 5는 휴대용 저장 디바이스 상에 공유된 파일시스템(502)의 일 실시예의 블록도이다. 도 5에서, 공유된 파일시스템(502)은 애플리케이션 개인 파일시스템들(506A-N)에 링크한다. 링크들(504A-N) 각각은 공유된 파일시스템(502)을 구성하기 위해 사용된다. 일 실시예에서, 네트워크 파일 서버(502)는 클라이언트에 커플링된 호스트에 이러한 공유된 파일시스템(502)을 광고한다.
일 실시예에서, 네트워크 파일 서버(502)는 애플리케이션 개인 파일시스템(506A)의 일부분에 링크한다. 이러한 실시예에서, 애플리케이션 개인 파일시스템(506A)은 공유된 파일들(510A), 라이브러리 파일들(510B), 구성 파일들(510C), 및 다른 비-공유된 파일들(510D)을 포함한다. 일 실시예에서, 공유된 파일들(510A)은 클라이언트 상에서 대응하는 애플리케이션을 사용하여 생성된 사용자-생성 파일들이다. 대안적으로, 이러한 사용자-생성 파일들은 또다른 디바이스(예를 들어, 호스트 또는 일부 다른 디바이스 등) 상에서 생성되었으며, 애플리케이션 개인 파일시스템(506A)의 공유된 파일들(510A)에 공유된 파일시스템(502)을 통해 다운로드되었다. 일 실시예에서, 공유된 파일들(510A)은 애플리케이션 개인 파일시스템(506A) 내의 디렉토리이다. 공유된 파일들(510A)에 링크함으로써, 호스트는 공유된 볼륨(508)을 통해 공유된 파일들(510A) 내의 파일들에 액세스할 수 있다.
일 실시예에서, 호스트 상의 애플리케이션(514)은 공유된 파일시스템(502)을 통해 클라이언트 상의 파일들에 액세스할 수 있다. 이러한 실시예에서, 애플리케이션(514)은 당해 기술분야에 공지된 이들 파일들에 대한 동작들(예를 들어, 이들로부터의 판독, 이들로의 기록, 파일 특성들의 리스팅, 생성, 삭제 등) 중 임의의 동작을 수행할 수 있다. 또다른 실시예에서, 파일 동작들 중 일부는 당해 기술분야에 공지된 바와 같이 제한된다(예를 들어, 파일을 판독할 수 있지만, 파일에 기록하지 못함 등). 또다른 실시예에서, 상이한 타입의 호스트 애플리케이션은 상이한 타입의 애플리케이션과 연관된 공유된 파일 중 하나 상에서 파일 동작들을 수행할 수 있다. 예를 들어, 그리고 일 실시예에서, 호스트 상에서의 워드 프로세싱 애플리케이션은 클라이언트 상에 상주하는 노트 쓰기 애플리케이션과 연관된 공유된 파일시스템(502)을 통해 파일들에 액세스할 수 있다. 추가로, 일 실시예에서, 호스트 디바이스 상의 애플리케이션과 동일한 클라이언트 상에 상주하는 워드 프로세싱 애플리케이션은 클라이언트 상에 상주하는 애플리케이션들 각각을 둘러싸는 보안 샌드박스로 인해 해당 파일들에 액세스하지 못할 것이다. 또다른 실시예에서, 호스트 상의 애플리케이션의 한 가지 타입은 동일한 타입의 클라이언트와 연관된 클라이언트 상에서 애플리케이션 파일들(506A-N)에 액세스할 수 있다. 예를 들어, 그리고 일 실시예에서, 호스트 상의 노트 쓰기 애플리케이션은 클라이언트 상에 상주하는 노트 쓰기 애플리케이션과 연관된 공유된 파일시스템(502)을 통해 파일들에 액세스할 수 있다. 일 실시예에서, 동일한 타입의 애플리케이션은 2개의 애플리케이션들이 호스트 및 클라이언트 상에서 동일한 타입의 기능성을 가지지만, 이들 프로그램들이 하나 또는 2개 디바이스들 모두에 대해 특수화됨을 의미할 수 있다. 예를 들어, 그리고 일 실시예에서, 호스트 상의 포토 프로세싱 애플리케이션은 클라이언트 상에 상주하는 해당 포토 프로세싱 프로그램의 특수화된 버전의 파일들에 액세스할 수 있다.
도 6은 호스트와 휴대용 저장 디바이스 사이의 듀얼 이더넷 채널 접속을 생성하기 위한 프로세스(600)의 일 실시예의 흐름도이다. 도 6에서, 프로세스(600)는 블록(602)에서 휴대용 저장 디바이스 상에서 휴대용 저장소를 인에이블시킨다. 일 실시예에서, 구성 변수는 "참"으로 세팅된다. 블록(604)에서, 프로세스(600)는 저장 서버가 인에이블됨을 구성 데몬에 시그널링하는 휴대용 저장 키를 발행한다. 일 실시예에서, 휴대용 저장 디바이스가 부트업 하는 경우, 프로세스(600)는 해당 구성 변수를 검사하고 키를 발행한다.
프로세스(600)는 블록(606)에서 휴대용 저장 이더넷 인터페이스를 구성한다. 일 실시예에서, 프로세스(600)는 이더넷 프로파일을 포함하도록 휴대용 저장 디바이스의 USB 구성을 변경한다. 이러한 실시예에서, USB 구성 내에 이더넷 프로파일을 포함하는 것은 USB 인터페이스가 위의 도 1 및 2를 참조하여 설명된 바와 같이, USB 링크의 최상부 상에서 실행하는 이더넷을 이용하여 구성되도록 한다. 일 실시예에서, 이더넷 인터페이스는 그렇게 업 되어 실행되지 않지만, 호스트가 휴대용 저장 디바이스와 커플링할 때까지는 나타날 것이다.
블록(608)에서, 프로세스(600)는 휴대용 저장 디바이스(608)가 호스트에 커플링됨을 검출한다. 일 실시예에서, 프로세스(600)는 휴대용 저장 디바이스의 USB 인터페이스에 대해 물리적 USB 접속이 이루어짐을 검출함으로써 커플링을 검출한다. 또다른 실시예에서, 호스트는 디바이스가 WiFi 또는 이더넷 인터페이스들을 통해 네트워크 패킷들을 수신함으로써 로컬 영역 네트워크에 조인했음을 검출한다.
프로세스(600)는 블록(610)에서 테더링이 인에이블되는지의 여부를 결정한다. 일 실시예에서, 프로세스(600)는 테더링이 테더링을 위한 구성 파라미터 또는 키를 질의함으로써 인에이블되는지의 여부를 결정한다. 테더링이 인에이블되지 않는 경우, 실행은 블록(614)으로 진행한다. 테더링이 인에이블되는 경우, 프로세스(600)는 블록(612)에서 USB 링크 상에서 호스트에 테더링하기 위한 이더넷 인터페이스를 구성한다. 일 실시예에서, 프로세스(600)는 이러한 인터페이스를 가져오고, 테더링 기능성을 지원하기에 적합한 IP 어드레스를 할당한다. 일 실시예에서, 프로세스(600)는 테더링을 위해 사용되는 IP 어드레스 및 다른 구성 정보(예를 들어, 네임서버 어드레스, 게이트웨이 등)를 네트워크로부터 수신하고, 이 IP 어드레스를 테더링 이더넷 인터페이스에 할당한다. 실행은 블록(614)에 진행한다.
블록(614)에서, 프로세스(600)는 휴대용 저장 서비스에 대한 이더넷 인터페이스를 구성한다. 일 실시예에서, 파일 공유를 위해 호스트 및 휴대용 저장 디바이스 사이의 개인 네트워크 상에서 사용될 개인 IP 어드레스를 할당한다. 예를 들어, 그리고 일 실시예에서, 프로세스(600)는 192.168.20.1의 IP 어드레스를 할당한다.
프로세스(600)는 블록(616)에서 휴대용 저장 서버를 개시한다. 일 실시예에서, 프로세스(600)는 네트워크 파일 서버에 시작하도록 시그널링하는 파일을 생성한다. 이러한 파일이 존재하는 경우, 휴대용 저장 이더넷 인터페이스는 업되어 사용하기에 가용적이 된다. 추가로, 프로세스(600)는 네트워크 파일 서버를 개시하고 휴대용 저장 디바이스 상에서 동적 호스트 구성 프로토콜(DHCP) 서버를 턴 온한다. 일 실시예에서, 이러한 DHCP 서버는 위에서 도 2에 기술된 바와 같이, 파일 서빙을 위해 사용되는 호스트 이더넷 인터페이스에 개인 IP 어드레스를 할당하기 위해 사용된다. 추가로, 프로세스(600)는 휴대용 저장 서비스를 광고한다. 일 실시예에서, 휴대용 저장 서비스는 위에서 도 4를 참조하여 전술된 바와 같이 네트워크 파일 서버에 의해 서빙되는 공유된 파일시스템이다. 일 실시예에서, 프로세스(600)는 당해 기술분야에 공지된 서비스 디스커버리 프로토콜(예를 들어, Bonjour, Zeroconf, 유니버셜 플러그 앤 플레이(UPnP) 등)을 이용하여 휴대용 저장 서비스를 광고한다.
또한, 프로세스(600)는 블록(616)에서 네트워크 파일 서버에 의해 사용되는 공유가능한 파일시스템을 구축한다. 일 실시예에서, 휴대용 저장 서비스에 옵트인(opt-in)하기를 원하는 휴대용 저장 디바이스 상에 상주하는 각각의 애플리케이션에 대해, 네트워크 파일 서버는 해당 애플리케이션에 대해 공유된 파일들에 대한 링크를 생성한다. 공유된 파일시스템의 구축은 하기에 도 7에 추가로 기술된다.
블록(618)에서, 프로세스(600)는 공유된 파일시스템을 탑재하고 따라서 호스트는 차례로 호스트 상에 공유된 파일시스템을 탑재할 수 있다. 일 실시예에서, 호스트 상의 SMB 클라이언트는 호스트에 커플링된 각각의 휴대용 저장 디바이스 상에 공유된 볼륨으로부터 하나의 볼륨을 탑재한다. 일 실시예에서, 호스트가 휴대용 저장 디바이스와 커플링하면, 프로세스(600)는 블록(620)에서, USB 링크 및 대응하는 이더넷 채널들을 통해 테더링 및 휴대용 저장 서비스와 연관된 데이터를 호스트와 통신한다.
전술된 바와 같이, 프로세스(600)는 휴대용 저장 서비스에 대한 공유된 파일시스템을 구축한다. 도 7은 휴대용 저장 디바이스 상에 공유된 파일시스템을 구축하기 위한 프로세스(700)의 일 실시예의 흐름도이다. 일 실시예에서, 프로세스(700)는 위에서 도 6의 블록(616)에서 프로세스(600)에 의해 실행된다. 도 7에서, 프로세스(700)는 휴대용 저장 디바이스 상에 상주하는 애플리케이션들의 리스트를 검색한다. 일 실시예에서, 휴대용 저장 디바이스 상의 서버는 휴대용 저장 디바이스 운영 체제로 구축된 애플리케이션 설치 서비스로부터 리스트를 획득한다. 이는 애플리케이션이 휴대용 저장 서비스에 참여하는지의 여부를 말해주는 플래그를 포함하는, 각각의 애플리케이션에 관한 정보를 수신한다. 프로세스(700)는 애플리케이션 공유 파일들에 대한 링크들의 세트를 생성하기 위해 프로세싱 루프를 추가로 실행한다(블록들 704-712). 블록(706)에서, 프로세스(700)는 애플리케이션이 자신의 파일들을 공유할 것인지의 여부를 결정한다. 일 실시예에서, 자신의 파일들을 공유하는 애플리케이션은 애플리케이션 파일 공유가 턴온됨을 표시하기 위해 애플리케이션 구성 파일에 키를 추가한다. 이러한 실시예에서, 프로세스(700)는 이 애플리케이션이 해당 파일들을 공유하기를 원함을 표시하는 이러한 키를 판독한다. 키가 존재하는 경우, 실행은 블록(708)으로 진행한다. 이러한 키가 존재하지 않는 경우, 애플리케이션은 자신의 파일들을 공유하지 않고, 실행은 블록(712)으로 진행한다.
블록(708)에서, 프로세스(700)는 애플리케이션의 공유된 파일들의 디렉토리에 대한 링크를 생성한다. 일 실시예에서, 공유된 파일 디렉토리는 애플리케이션이 자신의 파일들이 공유가능함을 표시하는 키를 설정할 때 생성되는 디렉토리이다. 프로세스(700)는 블록(710)에서 공유된 파일시스템에 애플리케이션 저장 링크를 추가한다. 프로세싱 루프는 블록(712)에서 종료한다.
시작된 휴대용 저장 서비스 및 사용가능한 저장 이더넷 인터페이스를 통해, 호스트는 휴대용 저장 서비스를 사용하도록 스스로를 구성할 것이다. 도 8은 휴대용 저장 디바이스 상에서 공유된 파일시스템에 액세스할 수 있도록 호스트를 구성하기 위한 프로세스(800)의 일 실시예의 흐름도들이다. 일 실시예에서, 호스트 측에서, 청취자가 프로세스(800)를 실행한다. 블록(802)에서, 프로세스(800)는 청취 프로세스를 시작한다. 일 실시예에서, 청취 프로세스는 휴대용 저장 서비스의 서비스 디스커버리 프로토콜 광고들을 청취한다.
프로세스(800)는 블록(804)에서 휴대용 저장 서비스의 광고를 수신한다. 일 실시예에서, 광고는 당해 기술분야에 공지된 서비스 디스커버리 프로토콜(Bonjour, Zeroconf 등)을 사용하는 광고이다. 또다른 실시예에서, 광고는 휴대용 저장 디바이스의 식별자를 포함한다. 예를 들어, 그리고 일 실시예에서, 수신된 광고 식별자는 휴대용 저장 디바이스의 일련 번호이다.
블록(806)에서, 프로세스(800)는 휴대용 저장 디바이스가 프로세스(800)에 공지되었는지의 여부를 결정한다. 일 실시예에서, 프로세스는 광고 내에 수신된 휴대용 저장 디바이스 식별자를 공지된 디바이스들의 리스트와 비교한다. 예를 들어, 그리고 일 실시예에서, 프로세스(800)는 휴대용 저장 디바이스가 호스트와 쌍을 이루는지의 여부를 결정한다. 휴대용 저장 디바이스가 프로세스(800)에 공지되지 않은 경우, 프로세스(800)는 블록(818)에서 실패를 시그널링한다. 예를 들어, 그리고 일 실시예에서, 휴대용 저장 디바이스가 호스트와 쌍을 이루지 않는 경우, 디바이스 상의 네트워크 인터페이스는 configd에 의해 활성화되지 않을 것이며, 호스트로부터 어떠한 접속도 가능하지 않을 것이다.
휴대용 저장 디바이스가 프로세스(800)에 공지된 경우, 프로세스(800)는 블록(808)에서 휴대용 저장 이더넷 인터페이스를 구성하기 위해 사용될 수 있는 IP 어드레스를 수신하는 것을 대기한다. 프로세스(800)가 IP 어드레스를 수신하지 않는 경우, 프로세스(800)는 블록(818)에서 실패를 시그널링한다. 그러나, 프로세스(800)가 IP 어드레스를 수신하는 경우, 프로세스(800)는 블록(810)에서 휴대용 저장 이더넷 인터페이스를 구성한다. 일 실시예에서, 프로세스(800)는 도 3에서 전술된 바와 같이 해당 인터페이스에 대한 다른 구성 정보(네임서버 어드레스, 게이트웨이 등)와 함께 수신된 IP 어드레스를 적용한다.
블록(812)에서, 프로세스(800)는 호스트 상에서 공유된 파일시스템을 탑재하기 위한 탑재 요청을 휴대용 저장 서비스에 전송한다. 일 실시예에서, 프로세스(800)는 사용자명 "게스트" 및 패스워드 없음을 사용하여 요청을 송신한다. 이러한 실시예에서, 휴대용 저장 디바이스가 호스트에 공지되어 있으므로, 사용자명 및 패스워드 없음이 사용된다. 프로세스(800)는 블록(814)에서 공유된 파일시스템이 탑재되었다는 통지를 수신한다. 블록(816)에서, 프로세스(800)는 호스트 상에서 실행하는 파일 브라우저 애플리케이션에서 공유된 파일시스템을 디스플레이한다. 일 실시예에서, 공유된 파일시스템은 또한 호스트 상에서 실행하는 다른 애플리케이션들에 대해 사용가능하다.
도 9는 휴대용 저장 디바이스 상에서 공유된 파일시스템에 대한 액세스 요청에 응답하기 위한 프로세스(900)의 일 실시예의 흐름도들이다. 일 실시예에서, 프로세스(900)는 호스트 상의 애플리케이션으로부터 요청들을 수신한다. 이러한 실시예에서, 프로세스(900)는, 휴대용 저장 서비스가 휴대용 저장 디바이스 상에서 실행하는 애플리케이션들에 대해서가 아닌 호스트에 대해 사용가능해지므로 휴대용 저장 디바이스 상의 애플리케이션들로부터 파일시스템 요청을 수신하지 않는다. 도 9에서, 블록(902)에서, 프로세스(900)는 파일시스템 액세스 요청을 수신한다. 일 실시예에서, 파일시스템 요청은 공유가능한 파일시스템에 액세스하기 위한 SMB 요청이다. 당해 기술분야에 공지된 바와 같이, SMB 요청은 파일들을 열고, 닫고, 판독하고, 기록하고, 잠그고, 잠금해제 하는 것 등 뿐만 아니라 파일 특성들을 검색 또는 설정하기 위해 사용될 수 있다. 블록(904)에서, 프로세스(900)는 파일시스템 요청을 수행한다. 일 실시예에서, 프로세스(900)는 파일 동작(열기, 닫기, 판독하기, 기록하기, 잠그기, 잠금해제, 열거 등)을 수행하고, 호스트에 성공/실패를 표시하는 리턴 코드 및 요청(데이터 판독, 포인터, 잠그기 등)에 대한 다른 관련 데이터를 리턴시킨다.
도 10은 휴대용 저장 디바이스의 공유된 파일시스템에 액세스하기 위한 프로세스(1000)의 일 실시예의 흐름도이다. 도 10에서, 블록(1002)에서, 프로세스(1000)는 휴대용 저장 서비스에 대한 파일시스템 액세스 요청을 전송한다. 일 실시예에서, 파일시스템 요청은 공유가능한 파일시스템에 액세스하기 위한 SMB 요청이다. 당해 기술분야에 공지된 바와 같이, SMB 요청은 파일들을 열고, 닫고, 판독하고, 기록하고, 잠그고, 잠금해제 하는 것 등 뿐만 아니라 파일 특성들을 검색하거나 설정하기 위해 사용될 수 있다. 블록(1004)에서, 프로세스(1000)는 파일시스템 액세스의 결과를 수신한다. 일 실시예에서, 프로세스(1000)는 동작의 성공/실패를 표시하는 리턴 코드 및 요청에 대한 다른 관련 데이터(데이터 판독, 포인터, 잠금 등)를 수신한다.
도 11은 휴대용 저장 디바이스와 호스트 사이의 듀얼 이더넷 채널 접속을 생성하는 휴대용 저장 구성 모듈(1000)의 블록도이다. 일 실시예에서, 휴대용 저장 구성 모듈(1000)은 위의 도 3의 configd(330)이다. 도 11에서, 휴대용 저장 구성 모듈(1000)은 휴대용 저장 인에이블 모듈(1102), 휴대용 저장 키 발행(1104), 이더넷 인터페이스 구성 모듈(1106), 호스트 링크 검출 모듈(1108), 테더링 모듈(1110), 휴대용 저장 이더넷 모듈(1112), 휴대용 저장 서비스 개시 모듈(1114) 및 통신 모듈(1116)을 포함한다. 휴대용 저장 인에이블 모듈(1102)은 도 6의 블록(602)에서 기술된 바와 같은 휴대용 저장소를 인에이블시킨다. 휴대용 저장 키 발행(1104)은 도 6의 블록(604)에 기술된 바와 같은 휴대용 저장소를 인에이블시키는 휴대용 저장 키를 발행한다. 이더넷 인터페이스 구성 모듈(1106)은 도 6의 블록(606)에 기술된 바와 같은 휴대용 저장 이더넷 인터페이스를 구성한다. 호스트 링크 검출 모듈(1108)은 도 6의 블록(608)에 기술된 바와 같이 휴대용 저장 디바이스가 호스트에 커플링됨을 검출한다. 테더링 모듈(1110)은 도 6의 블록(612)에서 기술된 바와 같이 테더링 이더넷 인터페이스를 구성한다. 휴대용 저장 이더넷 모듈(1112)은 도 6의 블록(614)에 기술된 바와 같이 휴대용 저장소에 대한 이더넷 인터페이스를 구성한다. 휴대용 저장 서비스 개시 모듈(1114)은 도 6의 블록(616)에 기술된 바와 같이 휴대용 저장 서비스를 개시한다. 통신 모듈(1116)은 도 6의 블록(620)에 기술된 바와 같이 데이터를 전달한다.
도 12는 휴대용 저장 디바이스 상에서 휴대용 저장 서비스를 개시하는 휴대용 저장 개시 모듈(1114)의 블록도이다. 도 12에서, 휴대용 저장 개시 모듈(1114)은 애플리케이션 리스트 모듈(1202), 애플리케이션 저장 모듈(1204), 애플리케이션 링크 모듈(1206) 및 공유된 파일시스템(1208)을 포함한다. 애플리케이션 리스트 모듈(1202)은 도 7의 블록(702)에 기술된 바와 같이 휴대용 저장 디바이스 상에 상주하는 애플리케이션들의 리스트를 검색한다. 애플리케이션 저장 모듈(1204)은, 도 7의 블록(706)에서 기술된 바와 같이 애플리케이션 개인 저장소가 공유가능한지의 여부를 결정한다. 애플리케이션 링크 모듈(1206)은 도 7의 블록(708)에 기술된 바와 같이, 애플리케이션 저장 링크를 생성한다. 공유된 파일시스템(1208)은 도 7의 블록(710)에 기술된 바와 같이 공유된 파일시스템에 애플리케이션 저장 링크를 추가한다.
도 13은 휴대용 저장 디바이스 상에 공유된 파일시스템에 액세스할 수 있도록 호스트를 구성하는 호스트 구성 모듈(1300)의 블록도이다. 일 실시예에서, 호스트 구성 모듈은 위에서 도 3에서 기술된 바와 같은 호스트 구성 컴포넌트(342)이다. 도 13에서, 호스트 구성 모듈(1300)은 시작 청취자 모듈(1302), 광고 수신 모듈(1304), 휴대용 저장 디바이스 체크 모듈(1306), 이더넷 구성 수신 모듈(1308), 이더넷 인터페이스 구성 모듈(1310), 파일시스템 탑재 요청 모듈(1312), 파일시스템 탑재 수신 모듈(1314), 탑재된 파일시스템 디스플레이 모듈(1316), 및 실패 시그널링 모듈(1318)을 포함한다. 청취자 시작 모듈(1302)은 도 8의 블록(802)에 기술된 바와 같이 청취자를 시작한다. 광고 수신 모듈(1304)은 도 8의 블록(804)에서 기술된 바와 같이, 휴대용 저장 서비스 광고를 수신한다. 휴대용 저장 디바이스 체크 모듈(1306)은 도 8의 블록(806)에서 기술된 바와 같은 휴대용 저장 디바이스 식별자를 체크한다. 이더넷 구성 수신 모듈(1308)은 도 8의 블록(808)에 기술된 바와 같이 휴대용 저장 인터페이스에 대한 이더넷 구성을 수신한다. 이더넷 인터페이스 구성 모듈(1308)은 도 8의 블록(810)에 기술된 바와 같다. 파일시스템 탑재 요청 모듈(1312)은 도 8의 블록(812)에 기술된 바와 같이 휴대용 저장 디바이스에 파일시스템 탑재 요청을 전송한다. 파일시스템 탑재 수신 모듈(1314)은 도 8의 블록(814)에 기술된 바와 같이 요청된 파일시스템이 탑재되었다는 통지를 수신한다. 탑재된 파일시스템 디스플레이 모듈(1316)은 도 8의 블록(816)에 기술된 바와 같이 공유된 파일시스템을 디스플레이한다. 시그널링 실패 모듈(1318)은 도 8의 블록(818)에서 기술된 바와 같이 실패를 시그널링한다.
도 14a는 휴대용 저장 디바이스 상에 공유된 파일시스템에 대한 액세스들을 핸들링하는 네트워크 파일 서버(1400)의 블록도이다. 일 실시예에서, 네트워크 파일 서버(1400)는 위의 도 3-5에 기술된 바와 같은 휴대용 저장 서비스의 일부분인 네트워크 파일 서버이다. 네트워크 파일 서버는 파일시스템 요청 수신 모듈(1402) 및 파일시스템 실행 모듈(1404)을 포함한다. 파일시스템 요청 수신 모듈(1402)은 도 9의 블록(902)에 기술된 바와 같이 파일시스템 요청들을 수신한다. 파일시스템 수행 모듈(1404)은 도 9의 블록(904)에 기술된 바와 같이 해당 요청들을 수행한다.
도 14b는 휴대용 저장 디바이스 상에서 공유된 파일시스템에 대한 액세스 요청들을 수행하는 호스트 애플리케이션(1450)의 블록도이다. 일 실시예에서, 호스트 애플리케이션은 위의 도 3-5에서 기술된 바와 같이 파일 브라우징 애플리케이션 또는 다른 호스트 애플리케이션이다. 호스트 애플리케이션(1450)은 파일시스템 요청 전송 모듈(1452) 및 파일시스템 요청 통지 모듈(1454)을 포함한다. 파일시스템 요청 전송 모듈(1452)은 도 10의 블록(1002)에 기술된 바와 같이 휴대용 저장 디바이스의 공유된 파일시스템에 액세스하기 위한 요청을 전송한다. 파일시스템 요청 통지 모듈(1454)은 도 10의 블록(1002)에 기술된 바와 같이 파일시스템 액세스 요청에 대한 결과의 통지를 수신한다.
도 15는 본 발명의 일 실시예와 함께 사용될 수 있는 데이터 프로세싱 시스템(1500)의 일 예를 도시한다. 예를 들어, 도 1에 도시된 바와 같은 호스트를 포함하는 시스템(1500)이 구현될 수 있다. 도 15가 컴퓨터 시스템의 다양한 컴포넌트들을 예시하지만, 이것이 컴포넌트들을 상호접속시키는 임의의 특정 아키텍쳐 또는 방식을 나타내는 것으로 의도되는 것이 아니며, 따라서, 상세항목들이 본 발명에 밀접하게 관련되지 않는다는 점에 유의한다. 또한, 네트워크 컴퓨터들 및 다른 데이터 프로세싱 시스템들 또는 더 적은 컴포넌트들 또는 가능하게는 더 많은 컴포넌트들을 가지는 다른 가전 디바이스들이 또한 본 발명과 함께 사용될 수 있다는 점이 이해될 것이다.
도 15에 도시된 바와 같이, 데이터 프로세싱 시스템의 형태인 컴퓨터 시스템(1500)은 마이크로프로세서(들)(1505) 및 ROM(판독 전용 메모리)(1507) 및 휘발성 RAM(1509) 및 비휘발성 메모리(1511)에 커플링된 버스(1503)를 포함한다. 마이크로프로세서(1505)는 메모리들(1507, 1509, 1511)로부터 명령들을 검색하고, 전술된 동작들을 수행하기 위해 명령들을 실행할 수 있다. 버스(1503)는 이들 다양한 컴포넌트들을 함께 상호접속시키고, 또한 이들 컴포넌트들(1505, 1507, 1509, 및 1511)을 디스플레이 제어기 및 디스플레이 디바이스(1513)에, 그리고 예를 들어, 마우스, 키보드, 모뎀, 네트워크 인터페이스, 프린터일 수 있는 입력/출력(I/O) 디바이스들 및 당해 기술분야에 공지된 다른 디바이스들일 수 있는 주변 디바이스들에 상호접속시킨다. 통상적으로, 입력/출력 디바이스들(1515)은 입력/출력 제어기들(1517)을 통해 시스템에 커플링된다. 휘발성 RAM(랜덤 액세스 메모리)(1509)는 통상적으로 메모리에 데이터를 유지하거나 리프레시하기 위해 계속 전력을 요구하는 동적 RAM(DRAM)으로서 구현된다.
대용량 저장소(1511)는 통상적으로, 자기 하드 드라이브 또는 자기 광학 드라이브 또는 광학 드라이브 또는 DVD RAM 또는 플래시 메모리 또는 전력이 시스템으로부터 제거된 이후라도 데이터(예를 들어, 대용량 데이터)를 유지하는 다른 타입의 메모리 시스템들이다. 통상적으로, 대용량 저장소(1511)는 또한 랜덤 액세스 메모리일 수 있지만 이것이 요구되지는 않는다. 도 15가 대용량 저장소(1511)가 데이터 프로세싱 시스템 내의 컴포넌트들의 나머지에 직접 커플링되는 로컬 디바이스임을 도시하지만, 본 발명이 모뎀, 이더넷 인터페이스 또는 무선 네트워크와 같은 네트워크 인터페이스를 통해 데이터 프로세싱 시스템에 커플링되는 네트워크 저장 디바이스와 같은 시스템으로부터 원격에 있는 비휘발성 메모리를 이용할 수 있다는 점이 이해될 것이다. 버스(1503)는 당해 기술분야에 공지된 바와 같은 다양한 브리지들, 제어기들 및/또는 어댑터들을 통해 서로 접속되는 하나 이상의 버스들을 포함할 수 있다.
도 16은 본 발명의 일 실시예와 함께 사용될 수 있는 또다른 데이터 프로세싱 시스템(1600)의 예를 도시한다. 예를 들어, 시스템(1600)은 도 1에 도시된 바와 같은 휴대용 저장 디바이스로서 구현될 수 있다. 도 16에 도시된 데이터 프로세싱 시스템(1600)은 하나 이상의 마이크로프로세서들일 수 있거나, 또는 시스템 온 칩 집적 회로일 수 있는 프로세싱 시스템(1611)을 포함하고, 시스템은 또한 프로세싱 시스템에 의해 실행하기 위한 데이터 및 프로그램들을 저장하기 위한 메모리(1601)를 포함한다. 시스템(1600)은 또한 예를 들어, 음악을 재생하거나, 또는 스피커 및 마이크로폰을 통해 전화 기능성을 제공하기 위한 마이크로폰 및 스피커를 포함할 수 있는 오디오 입력/출력 서브시스템(1605)을 포함한다.
디스플레이 제어기 및 디스플레이 디바이스(1607)는 사용자에 대한 가시적 사용자 인터페이스를 제공하고, 이러한 디지털 인터페이스는 OS X 운영 체제 소프트웨어를 실행시킬 때 맥킨토시 컴퓨터 상에서 도시된 것과 유사한 그래픽 사용자 인터페이스를 포함할 수 있다. 시스템(1600)은 또한 도 16의 시스템(1600)과 같이, 또다른 데이터 프로세싱 시스템과 통신하기 위한 하나 이상의 무선 트랜시버(1603)를 포함한다. 무선 트랜시버는 WLAN 트랜시버, 적외선 트랜시버, 블루투스 트랜시버 및/또는 무선 셀룰러 텔레포니 트랜시버일 수 있다. 도시되지 않은 추가적인 컴포넌트들이 또한 특정 실시예들 내의 시스템(1600)의 일부분일 수 있으며, 특정 실시예들에서, 도 16에 도시된 것보다 더 적은 컴포넌트들이 또한 데이터 프로세싱 시스템에서 사용될 수 있다는 점이 이해될 것이다. 시스템(1600)은 도 15의 시스템(1500)과 같은 또다른 데이터 프로세싱 시스템과 통신하기 위한 하나 이상의 통신 포트들(1617)을 더 포함한다. 통신 포트는 USB 포트, 파이어와이어 포트, 블루투스 인터페이스 등일 수 있다.
데이터 프로세싱 시스템(1600)은 또한 사용자로 하여금 시스템에 입력을 제공하게 하도록 제공되는 하나 이상의 입력 디바이스들(1613)을 포함한다. 이들 입력 디바이스들은 키패드 또는 키보드 또는 터치 패널 또는 멀티 터치 패널일 수 있다. 데이터 프로세싱 시스템(1600)은 또한 도크에 대한 커넥터일 수 있는 선택적 입력/출력 디바이스(1615)를 포함한다. 도시되지 않은 하나 이상의 버스들이 당해 기술분야에 공지된 바와 같이 다양한 컴포넌트들을 상호접속시키기 위해 사용될 수 있다는 점이 이해될 것이다. 도 16에 도시된 데이터 프로세싱 시스템은 핸드헬드 컴퓨터 또는 개인용 디지털 정보 단말(PDA), 또는 PDA 유사 기능성을 가지는 셀룰러 전화, 또는 셀룰러 전화 또는 iPod과 같은 미디어 플레이어를 포함하는 핸드헬드 컴퓨터, 또는 하나의 디바이스 또는 내장형 디바이스 또는 다른 가전 디바이스들 내의 셀룰러 전화 및 PDA와 결합되는 미디어 플레이어와 같은 이러한 디바이스들의 기능들 또는 양상들을 결합시키는 디바이스들일 수 있다. 다른 실시예들에서, 데이터 프로세싱 시스템(1600)은 네트워크 컴퓨터 또는 또다른 디바이스 내의 내장형 프로세싱 디바이스, 또는 도 16에 도시된 것보다 더 적은 컴포넌트들 또는 가능하게는 더 많은 컴포넌트들을 가지는 다른 타입들의 데이터 프로세싱 시스템들일 수 있다.
본 발명의 적어도 특정 실시예들은 미디어를 나타내기 위한 미디어 프로세싱 시스템, 미디어를 저장하기 위한 저장 디바이스를 포함할 수 있고 안테나 시스템 및 미디어 프로세싱 시스템과 커플링된 무선 주파수(RF) 트랜시버(예를 들어, 셀룰러 전화에 대한 RF 트랜시버)를 더 포함할 수 있는 디지털 미디어 플레이어, 예를 들어, 휴대용 음악 및/또는 비디오 미디어 플레이어의 일부분일 수 있다. 특정 실시예들에서, 원격 저장 디바이스 상에 저장된 미디어는 RF 트랜시버를 통해 미디어 플레이어에 전송될 수 있다. 미디어는, 예를 들어, 음악 또는 다른 오디오, 스틸 픽쳐, 또는 모션 픽쳐 중 하나 이상일 수 있다.
휴대용 미디어 플레이어는 미디어 선택 디바이스, 예를 들어, CA주, 쿠퍼티노의 Apple사로부터의 iPod® 또는 iPod Nano® 미디어 플레이어 상의 클릭 휠 입력 디바이스, 터치 스크린 입력 디바이스, 푸시 버튼 디바이스, 이동식 포인팅 입력 디바이스 또는 다른 입력 디바이스를 포함할 수 있다. 미디어 선택 디바이스는 저장 디바이스 및/또는 원격 저장 디바이스 상에 저장된 미디어를 선택하기 위해 사용될 수 있다. 휴대용 미디어 플레이어는, 적어도 특정 실시예들에서, 스피커 또는 이어폰(들)을 통해, 또는 디스플레이 디바이스 상에, 또는 디스플레이 디바이스 및 스피커 또는 이어폰(들) 모두 상에서, 입력 디바이스를 통해 선택되고 표시되는 타이틀 또는 다른 미디어 표시자들을 디스플레이하기 위해 미디어 프로세싱 시스템에 커플링되는 디스플레이 디바이스를 포함할 수 있다. 휴대용 미디어 플레이어의 예들은 공개된 미국 특허 제7,345,671호 및 미국 공개 특허 제2004/0224638호에 기술되며, 이들 모두 여기에 참조로 포함된다.
전술된 것 중 일부분들은 전용 로직 회로와 같은 로직 회로를 이용하여, 또는 마이크로제어기 또는 프로그램 코드 명령들을 실행하는 다른 형태의 프로세싱 코어를 이용하여 구현될 수 있다. 따라서, 위의 논의에 의해 교시된 프로세스들은 이러한 명령들을 실행하는 머신으로 하여금 특정 기능들을 수행하게 하는 머신-실행가능한 명령들과 같은 프로그램 코드를 이용하여 수행될 수 있다. 이러한 상황에서, "머신"은 중간 형태(또는 "요약") 명령들을 프로세서 특정 명령들로 변환하는 머신(예를 들어, "가상 머신"(예를 들어, 자바 가상 머신)과 같은 요약 실행 환경, 번역기, 공통 언어 런타임, 하이-레벨 언어 가상 머신 등), 및/또는 특수 목적 프로세서 및/또는 범용 프로세서와 같은 명령들을 실행하기 위해 설계된 반도체 칩 상에 배치된 전자 회로(예를 들어, 트랜지스터를 이용하여 구현되는 "로직 회로")일 수 있다. 위의 논의에 의해 교시된 프로세스들은 또한 프로그램 코드의 실행 없이 프로세스들(또는 그 일부)을 수행하도록 설계된 전자 회로에 의해(머신에 대한 대안으로 또는 머신과 결합하여) 수행될 수 있다.
본 발명은 또한 여기서 기술된 동작들을 수행하기 위한 장치에 관한 것이다.이러한 장치는 요구되는 목적을 위해 특수하게 구성될 수 있거나, 또는 이는 선택적으로 활성화되거나 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 컴퓨터 판독가능한 저장 매체, 예를 들어, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM), RAM, EPROM, EEPROM, 자기 또는 광 카드, 또는 전자 명령들을 저장하기에 적절한 임의의 타입의 매체에 저장될 수 있지만, 이에 제한되지 않으며, 각각은 컴퓨터 시스템 버스에 커플링된다.
머신 판독가능한 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태인 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능한 매체는 판독 전용 메모리("ROM"); 랜덤 액세스 메모리("RAM"); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스들 등을 포함한다.
제조 물품이 프로그램 코드를 저장하기 위해 사용될 수 있다. 프로그램 코드를 저장하는 제조 물품은, 하나 이상의 메모리들(예를 들어, 하나 이상의 플래시 메모리들, 랜덤 액세스 메모리들(정적, 동적 등)), 광학 디스크들, CD-ROM들, DVD ROM들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령들을 저장하기에 적합한 다른 타입의 머신-판독가능한 매체로서 구현될 수 있지만, 이에 제한되지 않는다. 프로그램 코드는 또한 (예를 들어, 통신 링크(예를 들어, 네트워크 접속)를 통해) 전파 매체 내에 포함되는 데이터 신호들에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 다운로드될 수 있다.
이전 상세한 설명들은 컴퓨터 메모리 내에 데이터 비트들에 대한 동작들의 심볼 표현들 및 알고리즘들의 견지에서 제시된다. 이러한 알고리즘 설명들 및 표현들은 당업자에게 자신의 작업물을 가장 효과적으로 전달하기 위해 데이터 프로세싱 기술분야의 당업자에 의해 사용되는 툴이다. 알고리즘은 여기서, 그리고 일반적으로, 원하는 결과를 가져오는 동작들의 일관적인 시퀀스일 수 있다. 동작들은 물리적 양들에 대한 요구하는 물리적 조작들이다. 일반적으로, 그러나 필수적이지 않게, 이들 양들은 저장되고, 전달되고, 결합되고, 비교되고, 그렇지 않은 경우 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 이러한 신호들을 비트, 값, 엘리먼트, 심볼, 문자, 용어, 번호 등으로서 참조하는 것이, 원리상 공통적인 사용의 이유로, 때때로 편리한 것으로 증명되었다.
그러나, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관될 것이며, 단지 이들 양들에 적용되는 편리한 라벨들임을 염두에 두어야 한다. 위의 논의로부터 명백한 것으로서 달리 구체적으로 언급되지 않는 한, 명세서 전반에 걸쳐, "구성하는", "통신하는", "광고하는", "공유하는", "검출하는", "연관시키는", "개시하는", 할당하는", "수신하는", "검색하는", "인에이블시키는", "추가하는", "커플링시키는", "수행하는", "전송하는" 등과 같은 용어들을 이용하는 논의들이, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보의 저장, 전송 또는 디스플레이 디바이스들 내에 물리적 양들로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작 및 프로세스들을 참조하는 것이 이해된다.
여기서 프로세스들 및 디스플레이들은 임의의 특정 컴퓨터 또는 다른 장치에 본질적으로 관련되지 않는다. 다양한 범용 시스템들은 여기서의 교시들에 따라 프로그램들과 함께 사용될 수 있거나, 또는 기술된 동작들을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것이라고 증명될 수 있다. 다양한 이들 시스템들에 대해 요구되는 구조는 하기 기재로부터 명백할 것이다. 추가로, 본 발명은 임의의 특정 프로그래밍 언어를 참조하여 기술되지 않는다. 다양한 프로그래밍 언어들이 여기서 기술된 본 발명의 교시들을 구현하기 위해 사용될 수 있다는 점이 이해될 것이다.
이전 논의는 단지 본 발명의 일부 예시적인 실시예들을 기술한다. 당업자는 이러한 논의, 첨부 도면들 및 청구범위로부터, 다양한 수정들이 본 발명의 사상 및 범위로부터 벗어나지 않고 이루어질 수 있다는 점을 용이하게 인지할 것이다.

Claims (16)

  1. 컴퓨터화된 방법으로서,
    링크 인터페이스 상에서 테더링 인터페이스 및 휴대용 저장 인터페이스를 인에이블하도록 휴대용 저장 디바이스를 구성하는 단계;
    상기 링크 인터페이스에 대응하는 링크에 커플링되는 호스트를 검출하는 것에 응답하여,
    상기 휴대용 저장 디바이스에 커플링된 네트워크에 대한 호스트 액세스를 허용하도록 상기 테더링 인터페이스를 구성하는 단계, 및
    상기 호스트와 상기 휴대용 저장 디바이스 사이에서 파일들을 공유하도록 상기 휴대용 저장 인터페이스를 구성하는 단계;
    상기 테더링 인터페이스를 통해 상기 호스트와 상기 네트워크 사이에 데이터를 통신하는 단계; 및
    상기 휴대용 저장 인터페이스를 통해 상기 휴대용 저장 디바이스 상에 저장된 파일들을 상기 호스트와 공유하는 단계
    를 포함하는 컴퓨터화된 방법.
  2. 제1항에 있어서,
    상기 링크는 유니버셜 직렬 버스 링크, 파이어와이어 링크, 블루투스 링크 및 무선 링크로 구성된 그룹으로부터 선택되는 컴퓨터화된 방법.
  3. 제1항에 있어서,
    상기 테더링 인터페이스 및 상기 휴대용 저장 인터페이스는 이더넷 인터페이스들인 컴퓨터화된 방법.
  4. 제1항에 있어서,
    상기 네트워크는 셀룰러 네트워크인 컴퓨터화된 방법.
  5. 제1항에 있어서,
    상기 휴대용 저장 인터페이스를 구성하는 단계는 상기 휴대용 저장 인터페이스 상에서의 파일 공유 서비스를 광고하는 단계를 포함하는 컴퓨터화된 방법.
  6. 제5항에 있어서,
    상기 광고하는 단계는 상기 휴대용 저장 디바이스의 식별자를 포함하는 광고를 상기 호스트에 전송하는 단계를 포함하는 컴퓨터화된 방법.
  7. 제1항에 있어서,
    상기 휴대용 저장 인터페이스를 구성하는 단계는:
    상기 휴대용 저장 디바이스 상에서 호스트 제어 프로세스를 개시하는 단계 - 상기 호스트 제어 프로세스는 상기 휴대용 저장 인터페이스 상에서 실행됨 - ; 및
    상기 호스트로부터의 어드레스에 대한 요청에 응답하여, 상기 호스트에 어드레스를 할당하는 단계
    를 포함하는 컴퓨터화된 방법.
  8. 제7항에 있어서,
    상기 어드레스는 개인 인터넷 프로토콜 어드레스인 컴퓨터화된 방법.
  9. 하나 이상의 프로세싱 유닛들로 하여금 방법을 수행하도록 하는 실행가능한 명령어들을 가지는 비-일시적 머신-판독가능한 매체로서, 상기 방법은:
    링크 인터페이스 상에서 테더링 인터페이스 및 휴대용 저장 인터페이스를 인에이블하도록 휴대용 저장 디바이스를 구성하는 단계;
    상기 링크 인터페이스에 대응하는 링크에 커플링되는 호스트를 검출하는 것에 응답하여,
    상기 휴대용 저장 디바이스에 커플링된 네트워크에 대한 호스트 액세스를 허용하도록 상기 테더링 인터페이스를 구성하는 단계, 및
    상기 호스트와 상기 휴대용 저장 디바이스 사이에서 파일들을 공유하도록 상기 휴대용 저장 인터페이스를 구성하는 단계;
    상기 테더링 인터페이스를 통해 상기 호스트와 상기 네트워크 사이에 데이터를 통신하는 단계; 및
    상기 휴대용 저장 인터페이스를 통해 상기 휴대용 저장 디바이스 상에 저장된 파일들을 상기 호스트와 공유하는 단계
    를 포함하는 비-일시적 머신-판독가능한 매체.
  10. 제9항에 있어서,
    상기 링크는 유니버셜 직렬 버스 링크, 파이어와이어 링크, 블루투스 링크 및 무선 링크로 구성된 그룹으로부터 선택되는 비-일시적 머신-판독가능한 매체.
  11. 제9항에 있어서,
    상기 테더링 인터페이스 및 상기 휴대용 저장 인터페이스는 이더넷 인터페이스들인 비-일시적 머신-판독가능한 매체.
  12. 제9항에 있어서,
    상기 네트워크는 셀룰러 네트워크인 비-일시적 머신-판독가능한 매체.
  13. 제9항에 있어서,
    상기 휴대용 저장 인터페이스를 구성하는 단계는 상기 휴대용 저장 인터페이스 상에서의 파일 공유 서비스를 광고하는 단계를 포함하는 비-일시적 머신-판독가능한 매체.
  14. 제13항에 있어서,
    상기 광고하는 단계는 상기 휴대용 저장 디바이스의 식별자를 포함하는 광고를 상기 호스트에 전송하는 단계를 포함하는 비-일시적 머신-판독가능한 매체.
  15. 제9항에 있어서,
    상기 휴대용 저장 인터페이스를 구성하는 단계는:
    상기 휴대용 저장 디바이스 상에서 호스트 제어 프로세스를 개시하는 단계 - 상기 호스트 제어 프로세스는 상기 휴대용 저장 인터페이스 상에서 실행됨 - ; 및
    상기 호스트로부터의 어드레스에 대한 요청에 응답하여, 상기 호스트에 어드레스를 할당하는 단계
    를 포함하는 비-일시적 머신-판독가능한 매체.
  16. 링크 인터페이스 상에서 테더링 인터페이스 및 휴대용 저장 인터페이스를 인에이블하도록 휴대용 저장 디바이스를 구성하기 위한 수단;
    상기 링크 인터페이스에 대응하는 링크에 커플링되는 호스트를 검출하는 것에 응답하여,
    상기 휴대용 저장 디바이스에 커플링된 네트워크에 대한 호스트 액세스를 허용하도록 상기 테더링 인터페이스를 구성하기 위한 수단, 및
    상기 호스트와 상기 휴대용 저장 디바이스 사이에서 파일들을 공유하도록 상기 휴대용 저장 인터페이스를 구성하기 위한 수단;
    상기 테더링 인터페이스를 통해 상기 호스트와 상기 네트워크 사이에 데이터를 통신하기 위한 수단; 및
    상기 휴대용 저장 인터페이스를 통해 상기 휴대용 저장 디바이스 상에 저장된 파일들을 상기 호스트와 공유하기 위한 수단
    을 포함하는 장치.
KR1020127021349A 2010-01-15 2011-01-13 휴대용 저장 인터페이스 KR101406426B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29566010P 2010-01-15 2010-01-15
US61/295,660 2010-01-15
US12/895,477 US8307134B2 (en) 2010-01-15 2010-09-30 Multiple communication interfaces on a portable storage device
US12/895,477 2010-09-30
PCT/US2011/021195 WO2011088251A1 (en) 2010-01-15 2011-01-13 Portable storage interface

Publications (2)

Publication Number Publication Date
KR20120118038A true KR20120118038A (ko) 2012-10-25
KR101406426B1 KR101406426B1 (ko) 2014-06-13

Family

ID=44278330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021349A KR101406426B1 (ko) 2010-01-15 2011-01-13 휴대용 저장 인터페이스

Country Status (8)

Country Link
US (5) US9052919B2 (ko)
EP (2) EP2524335B1 (ko)
KR (1) KR101406426B1 (ko)
CN (2) CN102763095B (ko)
AU (2) AU2011205257B2 (ko)
CA (2) CA2786617C (ko)
TW (3) TWI485564B (ko)
WO (3) WO2011088251A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014070433A1 (en) * 2012-11-02 2014-05-08 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
KR20160055987A (ko) * 2014-11-11 2016-05-19 배재대학교 산학협력단 모바일 서버를 이용한 이기종간 파일 공유 방법
US9980304B2 (en) 2015-04-03 2018-05-22 Google Llc Adaptive on-demand tethering
KR20190018432A (ko) * 2016-06-19 2019-02-22 퀄컴 인코포레이티드 바이트-범위 파일 복구에 대해 어떤 버전 정보를 사용할지의 시그널링

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005026643D1 (de) 2004-04-30 2011-04-14 Research In Motion Ltd System und verfahren zur filterung von datentransfers in einem mobilgerät
EP1719056A4 (en) 2004-08-26 2009-04-08 Availigent Inc METHOD AND SYSTEM FOR PROVIDING HIGH AVAILABILITY TO COMPUTING APPLICATIONS
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US9052919B2 (en) 2010-01-15 2015-06-09 Apple Inc. Specialized network fileserver
US10453157B2 (en) 2010-01-22 2019-10-22 Deka Products Limited Partnership System, method, and apparatus for electronic patient care
US11881307B2 (en) 2012-05-24 2024-01-23 Deka Products Limited Partnership System, method, and apparatus for electronic patient care
US11210611B2 (en) 2011-12-21 2021-12-28 Deka Products Limited Partnership System, method, and apparatus for electronic patient care
US20110313789A1 (en) 2010-01-22 2011-12-22 Deka Products Limited Partnership Electronic patient monitoring system
US10911515B2 (en) 2012-05-24 2021-02-02 Deka Products Limited Partnership System, method, and apparatus for electronic patient care
US11244745B2 (en) 2010-01-22 2022-02-08 Deka Products Limited Partnership Computer-implemented method, system, and apparatus for electronic patient care
US11164672B2 (en) 2010-01-22 2021-11-02 Deka Products Limited Partnership System and apparatus for electronic patient care
US9461834B2 (en) * 2010-04-22 2016-10-04 Sharp Laboratories Of America, Inc. Electronic document provision to an online meeting
WO2012158765A2 (en) * 2011-05-16 2012-11-22 Avocent System and method for accessing operating system and hypervisors via a service processor of a server
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
US9497220B2 (en) * 2011-10-17 2016-11-15 Blackberry Limited Dynamically generating perimeters
US9373358B2 (en) 2011-11-08 2016-06-21 Adobe Systems Incorporated Collaborative media editing system
US8768924B2 (en) * 2011-11-08 2014-07-01 Adobe Systems Incorporated Conflict resolution in a media editing system
US9613219B2 (en) 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8799227B2 (en) 2011-11-11 2014-08-05 Blackberry Limited Presenting metadata from multiple perimeters
US9158559B2 (en) 2012-01-27 2015-10-13 Microsoft Technology Licensing, Llc Roaming of note-taking application features
US20130201519A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Bridging Non-Network Interfaces and Network Interfaces
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
KR102005315B1 (ko) * 2012-07-23 2019-07-30 삼성전자 주식회사 클라우드 서비스 지원 방법과 시스템 및 이를 지원하는 단말기
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
WO2014101208A1 (zh) * 2012-12-31 2014-07-03 华为技术有限公司 一种获取文件的方法和装置
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US9503835B2 (en) 2013-06-13 2016-11-22 Microsoft Technology Licensing, Llc Service provisioning through a smart personal gateway device
CN103957238A (zh) * 2014-04-04 2014-07-30 北京金山网络科技有限公司 一种信息更新方法及装置
US9775041B2 (en) 2014-12-12 2017-09-26 9S Llc System and method for tethering to a mobile communication device
US20170005938A1 (en) * 2015-06-30 2017-01-05 Konica Minolta Laboratory U.S.A., Inc. System and method of tcp/ip bypass over universal serial bus (usb)
CA3003683A1 (en) * 2015-11-25 2017-06-01 Sony Corporation Reception apparatus, transmission apparatus, and data processing method
JP6821301B2 (ja) * 2015-12-07 2021-01-27 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
CN107463524A (zh) * 2016-06-06 2017-12-12 华为终端(东莞)有限公司 一种访问数据的方法及相关设备
US11075897B2 (en) 2017-10-20 2021-07-27 Vertiv It Systems, Inc. System and method for communicating with a service processor
US11409716B2 (en) * 2019-01-30 2022-08-09 Citrix Systems, Inc. File conflict detection
US11681798B2 (en) * 2019-10-31 2023-06-20 Kyndryl, Inc. Security screening of a universal serial bus device
US11368991B2 (en) 2020-06-16 2022-06-21 At&T Intellectual Property I, L.P. Facilitation of prioritization of accessibility of media
US11233979B2 (en) 2020-06-18 2022-01-25 At&T Intellectual Property I, L.P. Facilitation of collaborative monitoring of an event
US11411757B2 (en) 2020-06-26 2022-08-09 At&T Intellectual Property I, L.P. Facilitation of predictive assisted access to content
US11037443B1 (en) 2020-06-26 2021-06-15 At&T Intellectual Property I, L.P. Facilitation of collaborative vehicle warnings
US11184517B1 (en) 2020-06-26 2021-11-23 At&T Intellectual Property I, L.P. Facilitation of collaborative camera field of view mapping
US11356349B2 (en) 2020-07-17 2022-06-07 At&T Intellectual Property I, L.P. Adaptive resource allocation to facilitate device mobility and management of uncertainty in communications
US11768082B2 (en) 2020-07-20 2023-09-26 At&T Intellectual Property I, L.P. Facilitation of predictive simulation of planned environment
KR102411028B1 (ko) * 2020-09-21 2022-06-20 한화솔루션 주식회사 에너지 저장 시스템의 초기 설정 방법 및 시스템
CN117063456A (zh) * 2021-03-29 2023-11-14 三星电子株式会社 用于无线通信的电子装置及其操作方法

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549007B1 (en) 1995-12-07 2009-06-16 Texas Instruments Incorporated Portable computer having an interface for direct connection to a mobile telephone
EP0932865B1 (en) 1996-10-25 2002-08-14 SCHLUMBERGER Systèmes Using a high level programming language with a microcontroller
US6246683B1 (en) 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6862617B1 (en) 1998-10-12 2005-03-01 Microsoft Corp. System and method for synchronizing objects between two devices
US6367022B1 (en) 1999-07-14 2002-04-02 Visteon Global Technologies, Inc. Power management fault strategy for automotive multimedia system
US6725238B1 (en) * 2000-01-06 2004-04-20 International Business Machines Corporation Method, system, and program for using a remotely accessed desktop interface and network drive to access a shared file system
US6754725B1 (en) * 2001-05-07 2004-06-22 Cypress Semiconductor Corp. USB peripheral containing its own device driver
KR100538659B1 (ko) 2001-08-13 2005-12-26 콸콤 인코포레이티드 컴퓨터 장치의 저장 영역에 대한 애플리케이션 레벨 액세스 특권을 부여하는 방법 및 장치
US7295532B2 (en) 2001-08-17 2007-11-13 Ixi Mobile (R & D), Ltd. System, device and computer readable medium for providing networking services on a mobile device
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
US7783665B1 (en) * 2002-03-27 2010-08-24 Parallels Holdings, Ltd. Effective file-sharing among virtual environments
US7309260B2 (en) 2002-04-15 2007-12-18 Lantronix, Inc. Wireless communication module
US7069312B2 (en) * 2002-12-06 2006-06-27 Microsoft Corporation Network location signature for disambiguating multicast messages in dual-IP stack and/or multi-homed network environments
US20040133797A1 (en) 2003-01-06 2004-07-08 International Business Machines Corporation Rights management enhanced storage
US7433712B2 (en) * 2003-02-06 2008-10-07 Modu Ltd. Multi-access solid state memory devices and a telephone utilizing such
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
BRPI0410999A (pt) 2003-06-05 2006-07-04 Intertrust Tech Corp sistemas e métodos interoperáveis para orquestração de serviço peer-to-peer
US20050015355A1 (en) 2003-07-16 2005-01-20 Apple Computer, Inc. Method and system for data sharing between application programs
TWI220963B (en) 2003-08-01 2004-09-11 Ene Technology Inc Method for multimedia application of media card
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
US7272606B2 (en) 2003-11-26 2007-09-18 Veritas Operating Corporation System and method for detecting and storing file content access information within a file system
FI118312B (fi) 2004-04-13 2007-09-28 Nokia Corp Tietojen jakaminen laitteiden välillä
JP4343760B2 (ja) 2004-04-28 2009-10-14 株式会社日立製作所 ネットワークプロトコル処理装置
TWI307046B (en) 2004-04-30 2009-03-01 Aimgene Technology Co Ltd Portable encrypted storage device with biometric identification and method for protecting the data therein
US20050289265A1 (en) * 2004-06-08 2005-12-29 Daniel Illowsky System method and model for social synchronization interoperability among intermittently connected interoperating devices
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4468252B2 (ja) * 2004-08-06 2010-05-26 キヤノン株式会社 ビデオ信号処理装置及び方法
US7644211B2 (en) * 2004-12-07 2010-01-05 Cisco Technology, Inc. Method and system for controlling transmission of USB messages over a data network between a USB device and a plurality of host computers
US7712086B2 (en) * 2004-12-15 2010-05-04 Microsoft Corporation Portable applications
US20060190238A1 (en) 2005-02-24 2006-08-24 Autor Jeffrey S Methods and systems for managing a device
US7688792B2 (en) 2005-04-21 2010-03-30 Qualcomm Incorporated Method and apparatus for supporting wireless data services on a TE2 device using an IP-based interface
US20060282571A1 (en) 2005-04-25 2006-12-14 Perception Digital Limited Multimedia devices with enhanced functionality
JP5103730B2 (ja) * 2005-06-03 2012-12-19 富士ゼロックス株式会社 表示方法、並びに、これを用いた表示媒体及び表示素子
US7617541B2 (en) * 2005-09-09 2009-11-10 Netapp, Inc. Method and/or system to authorize access to stored data
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
BRPI0617490A2 (pt) 2005-10-18 2010-03-23 Intertrust Tech Corp sistemas e mÉtodos de mÁquina de gerenciamento de direitos digitais
US20070118609A1 (en) 2005-11-23 2007-05-24 France Telecom Distributed computing architecture and associated method of providing a portable user environment
EP1969588A4 (en) 2005-12-20 2012-02-29 Creative Tech Ltd SIMULTANEOUS SHARING OF SYSTEM RESOURCES BY A PLURALITY OF ENTRY DEVICES
US8769127B2 (en) * 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US7685375B2 (en) * 2006-06-06 2010-03-23 International Business Machines Corporation Protecting confidential information on portable storage media
US7861005B2 (en) * 2006-06-12 2010-12-28 Research In Motion Limited Method and apparatus for folder synchronization and management
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US20080005472A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
FI20060637A0 (fi) 2006-06-30 2006-06-30 Nokia Corp Verkkoon pääsy kannettavan muistilaitteen avulla
US20080126653A1 (en) 2006-11-29 2008-05-29 Icon Global, Ltd. Portable web server with usb port
US10083184B2 (en) * 2007-01-07 2018-09-25 Apple Inc. Widget synchronization in accordance with synchronization preferences
US20080304486A1 (en) 2007-06-08 2008-12-11 Joshua Verweyst Graessley Multiplexed data stream protocol
US7840184B2 (en) 2007-06-14 2010-11-23 Broadcom Corporation Method and system for utilizing a 60 GHZ PHY layer for high speed data transmission between bluetooth devices
US10210340B2 (en) * 2007-07-05 2019-02-19 Blackberry Limited File sharing with a hostile system
JP4424391B2 (ja) 2007-08-30 2010-03-03 ブラザー工業株式会社 デバイス、およびファイル伝送システム
US20090132676A1 (en) 2007-11-20 2009-05-21 Mediatek, Inc. Communication device for wireless virtual storage and method thereof
US8468513B2 (en) 2008-01-14 2013-06-18 Microsoft Corporation Specification, abstraction, and enforcement in a data center operating system
US8136085B2 (en) * 2008-01-29 2012-03-13 Hewlett-Packard Development Company, L.P. System and method for implementing a shared platform or software resource for coupled computing devices
US8893285B2 (en) 2008-03-14 2014-11-18 Mcafee, Inc. Securing data using integrated host-based data loss agent with encryption detection
US8638790B2 (en) 2008-06-23 2014-01-28 Qualcomm Incorporated Method and apparatus for managing data services in a multi-processor computing environment
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) * 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
JP5294014B2 (ja) 2008-12-26 2013-09-18 株式会社日立製作所 ファイル共有方法、計算機システム及びジョブスケジューラ
US8510838B1 (en) * 2009-04-08 2013-08-13 Trend Micro, Inc. Malware protection using file input/output virtualization
US9398136B2 (en) * 2009-04-20 2016-07-19 Apple Inc. Handheld device capable of providing data tethering services while maintaining suite of handheld service functions
US8533151B2 (en) * 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US9112875B2 (en) * 2009-08-04 2015-08-18 Sam Zaid System and method for anonymous addressing of content on network peers and for private peer-to-peer file sharing
US20110057891A1 (en) * 2009-09-10 2011-03-10 Qualcomm Incorporated Wireless power display device
US20110085667A1 (en) * 2009-10-09 2011-04-14 Adgregate Markets, Inc. Various methods and apparatuses for securing an application container
US9052919B2 (en) 2010-01-15 2015-06-09 Apple Inc. Specialized network fileserver

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014070433A1 (en) * 2012-11-02 2014-05-08 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
US9634726B2 (en) 2012-11-02 2017-04-25 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
US10009068B2 (en) 2012-11-02 2018-06-26 Google Llc Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
KR20160055987A (ko) * 2014-11-11 2016-05-19 배재대학교 산학협력단 모바일 서버를 이용한 이기종간 파일 공유 방법
US9980304B2 (en) 2015-04-03 2018-05-22 Google Llc Adaptive on-demand tethering
US11089643B2 (en) 2015-04-03 2021-08-10 Google Llc Adaptive on-demand tethering
KR20190018432A (ko) * 2016-06-19 2019-02-22 퀄컴 인코포레이티드 바이트-범위 파일 복구에 대해 어떤 버전 정보를 사용할지의 시그널링

Also Published As

Publication number Publication date
AU2011205257B2 (en) 2013-10-24
TW201140328A (en) 2011-11-16
TWI442238B (zh) 2014-06-21
KR101406426B1 (ko) 2014-06-13
AU2011205255B2 (en) 2014-01-16
CN102763095B (zh) 2015-12-09
CN102770870B (zh) 2015-11-11
US20150341366A1 (en) 2015-11-26
TWI453598B (zh) 2014-09-21
US20110179096A1 (en) 2011-07-21
US20110179203A1 (en) 2011-07-21
WO2011088253A1 (en) 2011-07-21
EP2524335A1 (en) 2012-11-21
EP2524335B1 (en) 2017-03-08
WO2011088255A1 (en) 2011-07-21
AU2011205255A1 (en) 2012-08-09
TWI485564B (zh) 2015-05-21
CA2786617A1 (en) 2011-07-21
CN102770870A (zh) 2012-11-07
US9052919B2 (en) 2015-06-09
TW201145031A (en) 2011-12-16
US10305910B2 (en) 2019-05-28
US10091203B2 (en) 2018-10-02
CA2786447A1 (en) 2011-07-21
CA2786447C (en) 2017-09-19
US8307134B2 (en) 2012-11-06
TW201140329A (en) 2011-11-16
WO2011088251A1 (en) 2011-07-21
EP2524316A1 (en) 2012-11-21
AU2011205257A1 (en) 2012-08-09
CA2786617C (en) 2016-05-10
CN102763095A (zh) 2012-10-31
US20110179083A1 (en) 2011-07-21
US20130103860A1 (en) 2013-04-25

Similar Documents

Publication Publication Date Title
KR101406426B1 (ko) 휴대용 저장 인터페이스
US9230085B1 (en) Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
US8752140B1 (en) System and methods for trusted internet domain networking
US9819679B1 (en) Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers
US20090172217A1 (en) Distributed storage service systems and architecture
JP2013531284A (ja) 非ローカル記憶装置からのサブシステムのセキュアなブート及び構成
JP2013521584A (ja) Webブラウザにおける双方向通信および内容制御のシステムおよび方法
CN103473037A (zh) 信息处理装置、信息处理方法和程序
JP2020035453A (ja) I/oステアリングエンジンを備えるシステムオンチップ
KR102482114B1 (ko) 보안 통신 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 모바일 시스템
CN110383254B (zh) 优化与网络节点相关联的内存映射
KR101899970B1 (ko) 모바일 클라우드 환경에 적용되는 모바일 단말과 클라우드 서버 및 이를 이용한 모바일 클라우드 컴퓨팅 방법
JP2022099241A (ja) ハードウェアの信頼できる実行環境の待ち時間の低減
US11734429B1 (en) Secure bios-enabled passthrough system
US20210243594A1 (en) Connecting securely to a wireless display from bios
Reichel Smartphone Operating Systems: Maemo
KR20160061593A (ko) 모바일 디바이스 및 상기 단말기의 통신 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6