KR101530472B1 - 모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치 - Google Patents

모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101530472B1
KR101530472B1 KR1020137033398A KR20137033398A KR101530472B1 KR 101530472 B1 KR101530472 B1 KR 101530472B1 KR 1020137033398 A KR1020137033398 A KR 1020137033398A KR 20137033398 A KR20137033398 A KR 20137033398A KR 101530472 B1 KR101530472 B1 KR 101530472B1
Authority
KR
South Korea
Prior art keywords
mobile computing
usb
computing device
computer
peripheral
Prior art date
Application number
KR1020137033398A
Other languages
English (en)
Other versions
KR20140021677A (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 KR20140021677A publication Critical patent/KR20140021677A/ko
Application granted granted Critical
Publication of KR101530472B1 publication Critical patent/KR101530472B1/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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Abstract

관리형 범용 시리얼 버스(USB) 서비스 케이퍼빌리티가 개시된다. 관리형 USB 서비스 케이퍼빌리티는 USB 접속을 통해 모바일 컴퓨팅 디바이스에 접속할 수 있는 컴퓨터(예를 들어, 데스크탑, 랩탑 등)에 서비스들의 세트를 지원하기 위해 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰 또는 다른 적절한 모바일 컴퓨팅 디바이스)를 이용하도록 구성된다. 관리형 USB 서비스 케이퍼빌리티는 모바일 컴퓨팅 디바이스의 국지 및/또는 원격 제어가 다양한 USB 디바이스 클래스들로 동작할 수 있게 함으로써, 모바일 컴퓨팅 디바이스는 주변 접속을 통해 컴퓨터에 다양한 관리형 USB 서비스들에 제공할 수 있게 된다. 이 방식에서, 모바일 컴퓨팅 디바이스는 네트워크 인터페이스, 가상 사설 네트워크(VPN) 클라이언트, 스마트 카드, 시리얼 콘솔, 대용량-저장 디바이스, 부팅 디바이스 등 중 하나 이상으로서 동작하도록 동적으로 구성될 수 있다.

Description

모바일 컴퓨팅 디바이스를 통한 관리형 USB 서비스들의 원격 전달을 위한 방법 및 장치{METHOD AND APPARATUS FOR REMOTE DELIVERY OF MANAGED USB SERVICES VIA A MOBILE COMPUTING DEVICE}
본 발명은 전반적으로 통신 네트워크들에 관한 것으로, 특히 배타적이지 않게, 모바일 컴퓨팅 디바이스를 통해 컴퓨터에 대한 서비스들을 지원하는 것에 관한 것이다.
컴퓨터들(예를 들어, 데스크탑들, 랩탑들, 태블릿들 등)은 현재의 대부분의 노동인구에게는 표준 장비이다. 컴퓨터들은, 생산성을 크게 향상시킬지라도, 자체에 설치되는 소프트웨어 및 하드웨어 구성요소들이 많은 고장을 일으킬 수 있기 때문에 심한 유지보수 부담이 수반된다. 예를 들어, 컴퓨터 소프트웨어는 프로그램 오기능들, 바이러스 감염들 등과 같은 문제들과 직면할 수 있다. 유사하게, 예를 들어, 컴퓨터 하드웨어는 하드-디스크 파손, 부팅 문제 등에 직면할 수 있다. 컴퓨터에 유지보수 문제들이 있는 거의 모든 경우들에서, 생산성에서의 손실, 기업 보안 침해들, 그와 같은 상황들에서 발생할 수 있는 다양한 다른 문제들을 방지하기 위해 종업원이 가능한 신속하게 컴퓨터 수리를 맡기는 것이 필수적이다. 그러나, 거의 모든 종업원들에게는, 특히 기업 서비스 센터에 손쉽게 액세스할 수 없는 원격의 종업원들에게는, 그와 같은 유지보수 작업과정들에 시간이 소요된다. 더욱이, 이동 중인 종업원들의 경우에, 네트워크 접속이 산발적일 수 있고 랩탑이 도난되는 것은 종업원 생산성 및 기업 보안에 부정적인 영향을 끼치는 흔치 않는 추가 문제들이다. 더욱이, 이 동일한 문제들 다수는 또한 컴퓨터들이 다양한 하드웨어 및/또는 소프트웨어 문제들을 일으킬 수 있고, 공격을 당할 수 있고, 분실 또는 도난이 될 수 있는 다양한 환경들(예를 들어, 소비자 환경들 등)에서 직면하게 된다.
본 발명의 목적은 상술한 문제들을 해결하는 것이다.
하나의 실시예에서, 장치는 프로세서 및 메모리를 포함하고, 프로세서는 모바일 컴퓨팅 디바이스에서, 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고, 선택된 주변 접속 디바이스 클래스에서 동작하도록 모바일 컴퓨팅 디바이스의 구성을 개시하도록 구성된다. 하나의 실시예에서, 방법은, 모바일 컴퓨팅 디바이스에서, 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고, 선택된 주변 접속 디바이스 클래스에서 동작하는 모바일 컴퓨팅 디바이스의 구성을 개시하기 위한 프로세서를 이용하는 단계를 포함한다. 하나의 실시예에서, 컴퓨터 판독 가능 저장 매체는 프로세서에 의해 실행될 때, 프로세서로 하여금 그와 같은 방법을 수행하도록 하는 명령들을 저장한다.
하나의 실시예에서, 장치는 프로세서 및 메모리를 포함하고, 상기 프로세서는 모바일 컴퓨팅 디바이스에서 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 컴퓨터에 모바일 컴퓨팅 디바이스를 통하여 제공될 서비스와 연관되는 메시지를 수신하고, 모바일 컴퓨팅 디바이스를 통해 컴퓨터에 서비스를 제공하는 동작을 개시하도록 구성된다. 하나의 실시예에서, 방법은 모바일 컴퓨팅 디바이스에서 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 모바일 컴퓨팅 디바이스를 통하여 컴퓨터에 제공될 서비스와 연관되는 메시지를 수신하고, 모바일 컴퓨팅 디바이스를 통해 컴퓨터에 서비스를 제공하기 위한 동작을 개시하기 위한 프로세스를 이용하는 단계를 포함한다. 하나의 실시예에서, 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행될 때, 프로세서로 하여금 그와 같은 방법을 수행하도록 하는 명령들을 저장한다.
본원에서의 기술들은 첨부 도면들과 함께 다음의 상세한 설명을 고려함으로써 더 용이하게 이해될 수 있다.
도 1은 모바일 컴퓨팅 디바이스가 컴퓨터에 대해 관리형 USB 서비스들을 지원할 수 있도록 구성되는 시스템의 실시예를 도시하는 도면이다.
도 2는 컴퓨터에 대한 관리형 USB 서비스들을 제공하는데 이용될 수 있는 USB 디바이스 클래스들을 지원하기 위한 모바일 컴퓨팅 디바이스의 구성을 도시하는, 도 1의 예시 시스템의 일부를 도시하는 도면이다.
도 3은 모바일 컴퓨팅 디바이스의 USB 디바이스 클래스의 원격 제어를 가능하게 하는 방법의 하나의 실시예를 도시하는 도면이다.
도 4는 컴퓨터에 관리형 USB 서비스를 제공하기 위해 모바일 컴퓨팅 디바이스를 이용하는 방법의 하나의 실시예를 도시하는 도면이다.
도 5는 디바이스들 사이의 IP 패킷들의 전송을 지원하는 IPOST 네트워킹 케이퍼빌리티(capability)의 하나의 실시예를 도시하는 도면이다.
도 6은 본원에 기술되는 기능들을 수행하는데 이용하기 적합한 컴퓨터의 고-레벨 블록도를 도시하는 도면이다.
이해를 용이하게 하기 위해, 도면들에 공통적인 동일한 요소들을 지칭하기 위해, 가능한 경우 동일한 참조 번호들이 이용되었다.
전반적으로, 관리형 USB 서비스 케이퍼빌리티가 본원에서 도시되고 설명되지만, 다양한 다른 케이퍼빌리티들이 또한 본원에서 제시될 수 있다.
적어도 일부 실시예들에서, 관리형 USB 서비스 케이퍼빌리티는 범용 직렬 버스(Universal Serial Bus; USB) 접속을 통해 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰 또는 다른 적절한 모바일 컴퓨팅 디바이스)에 접속할 수 있는 컴퓨터(예를 들어, 데스크탑, 랩탑 등)에 대한 서비스들의 세트를 지원하는데 모바일 컴퓨팅 디바이스를 이용하도록 구성된다.
적어도 일부 실시예들에서, 관리형 USB 서비스 케이퍼빌리티는 모바일 컴퓨팅 디바이스의 국지 및/또는 원격 제어가 다양한 관리형 USB 디바이스 클래스들에서 동작하는 것을 가능하게 함으로써, 모바일 컴퓨팅 디바이스가 주변 접속(peripheral connection)을 통해 컴퓨터에 대한 다양한 관리형 USB 서비스들을 제공할 수 있게 된다. 예를 들어, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 USB 디바이스 클래스들(예를 들어, USB 이더넷 클래스, USB 통신 디바이스 클래스(Communication Device Class; CDC), 어브스트랙트 제어 모델(Abstract Control Mode; ACM) 클래스, USB 대용량 클래스 등) 중 하나 이상에서 모바일 컴퓨팅 디바이스의 동작을 가능하게 함으로써, 모바일 컴퓨팅 디바이스가 네트워크 인터페이스, 가상 사설 네트워크(virtual private network; VPN) 클라이언트, 스마트 카드, 시리얼 콘솔, 대용량 디바이스, 부팅 디바이스 등 중에서 하나 이상으로 동작하도록 동적으로 구성될 수 있게 된다.
적어도 일부의 실시예들에서, 관리형 USB 서비스 케이퍼빌리티는 모바일 컴퓨팅 디바이스의 국지 및/또는 원격 제어가 주변 접속을 통해 컴퓨터에 다양한 관리형 USB 서비스들을 제공하는 것을 가능하게 한다. 예를 들어, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 관리형 인터넷 테더링(tethering) 서비스, 관리형 USB VPN 테더링 서비스, 관리형 USB 스마트 카드 서비스, 관리형 USB 시리얼 콘솔 서비스, 관리형 USB 대용량 저장 서비스, 관리형 USB 부팅 서비스 등을 포함하는 관리형 USB 서비스들을 지원할 수 있다.
본원에서 기술되는 바와 같이, 모바일 컴퓨팅 디바이스의 제어는 국지적으로(예를 들어, 모바일 컴퓨팅 디바이스의 사용자 인터페이스 및/또는 모바일 컴퓨팅 디바이스 상에서 또는 부근에서 이용 가능한 임의의 적절한 인터페이스를 통하여) 및/또는 원격으로(예를 들어, 유선 네트워크 접속, 무선 로컬 에어리어 네트워크(wireless local area network; WLAN) 접속, 무선 와이드 에어리어 네트워크(wireless wide area network; WWAN) 접속 등과 같이 모바일 컴퓨팅 디바이스의 하나 이상의 데이터 접속들을 통하여) 제공될 수 있다. 이것은, 다양한 USB 디바이스 클래스들에서 동작하도록 모바일 컴퓨팅 디바이스를 제어하는 것과 주변 접속 등을 통해 컴퓨터에 관리형 USB 서비스들을 제공하도록 모바일 컴퓨팅 디바이스를 제어하는 것 중에서 하나 이상을 위해, 모바일 컴퓨팅 디바이스를 국지 및/또는 원격으로 제어하는 것을 가능하게 할 수 있다.
이 방식에서, 관리형 USB 서비스 케이퍼빌리티의 실시예들 중 적어도 일부는 주변 접속을 통해 모바일 컴퓨팅 디바이스에 접속할 수 있는 컴퓨터에 대한 컴퓨터 운영 및 관리 행위들이 수행될 수 있는 운영 및 관리 상태들의 범위를 확장하여 모바일 컴퓨팅 디바이스를 사용하는 것을 가능하게 한다.
관리형 USB 서비스 케이퍼빌리티에 대한 다양한 실시예들은 기업 애플리케이션들(예를 들어, 기업 종업원들을 위하여 기업 네트워크 액세스를 개선하기 위해, 기업 IT 관리 케이퍼빌리티들 등뿐만 아니라 이들의 다양한 결합들을 개선하기 위해) 내에서, 고객 애플리케이션들(예를 들어, 통신 서비스 공급자들, 제 3 자 서비스 공급자들 등과 같은 엔티티(entity)들에 의해 관리될 수 있는 큰 세트의 서비스들에 대한 토대를 제공하기 위해) 내에서 등과 같이 다양한 애플리케이션들 내에서 제공될 수 있음이 주목된다.
특정 유형의 애플리케이션에서(예를 들어, 기업 환경에서) 관리형 USB 서비스들을 특정 유형의 주변 접속(예를 들어, USB 케이블)을 통해 특정 유형의 컴퓨터(예를 들어, 최종 사용자 컴퓨터)에 관리형 USB 서비스를 제공하기 위해 특정 유형의 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰)가 이용되는 관리형 USB 서비스 케이퍼빌리티의 실시예들에 관하여 본원에서 주로 도시되고 기술될지라도, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 관리형 USB 서비스들을 제공하는데 이용되는 다양한 다른 유형들의 모바일 컴퓨팅 디바이스들, 관리형 USB 서비스들이 제공되는 다양한 다른 유형들의 컴퓨터들 및 다른 디바이스들, 관리형 USB 서비스들을 제공하는데 이용될 수 있는 다양한 다른 유형들의 주변 접속들, 및/또는 관리형 USB 서비스들이 제공/이용될 수 있는 다양한 다른 유형들의 애플리케이션들과 함께 이용될 수 있음이 주목된다.
도 1은 모바일 컴퓨팅 디바이스가 컴퓨터에 대한 관리형 USB 서비스들을 지원할 수 있도록 구성되는 시스템의 실시예를 도시한다.
도 1에 도시된 바와 같이, 시스템(100)은 컴퓨터(110), 주변 접속(120), 모바일 컴퓨팅 디바이스(130), 네트워크 접속(140), 액세스 네트워크(150), 통신 네트워크(160) 및 서비스 관리 기반 구조(170)를 포함한다.
일반적으로, 컴퓨터(110)는 하나 이상의 USB 디바이스 클래스들 및 하나 이상의 USB 디바이스 클래스들에서 동작하는 하나 이상의 디바이스들과 통신하기 위한 하나 이상의 주변 인터페이스들(예를 들어, 주변 접속(120)을 지원하기 위한)을 지원하기 위한 임의의 유형의 디바이스를 나타낸다. 컴퓨터(110)는 프로세서 및 메모리를 포함하고, 컴퓨터(110) 상에서 기능들을 수행하기 위해 다양한 유형들의 하드웨어 및 소프트웨어를 포함할 수 있음이 인정될 것이다. 컴퓨터(110)는 또한 하나 이상의 통신 네트워크들의 유형들(예를 들어, 유선 인터페이스, LWAN 인터페이스, WWAN 인터페이스뿐만 아니라 이들의 다양한 조합들 중 하나 이상)에 액세스하기 위하여 하나 이상의 네트워크 인터페이스들을 포함할 수 있음이 주목된다. 예를 들어, 컴퓨터(110)는 사용자 컴퓨터(예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터 등), 네트워크 컴퓨터(예를 들어, 라우터, 스위치 등) 또는 임의의 다른 적절한 유형의 디바이스일 수 있다. 그와 같은 컴퓨터들의 전형적인 설계 및 동작은 당업자에 의해 이해될 것이다.
도 1에 도시된 바와 같이, 컴퓨터(110)는 사용자 공간(111) 및 커널(kernel)(112)을 포함한다. 사용자 공간(111)은 컴퓨터(110)를 통해 사용자 상호 작용을 지원하도록 구성되고 컴퓨터(110)의 사용자들에 의해 이용될 수 있는 하나 이상의 애플리케이션들을 포함할 수 있다. 커널(115)은 사용자 공간(111)을 컴퓨터(110)의 하드웨어(예를 들어, CPU들, 메모리, 다른 디바이스들 등, 이것들은 명료성을 위해 도 1에서 생략됨)로 인터페이스하도록 구성된다. 도 1에 도시된 바와 같이, 커널(115)은 USB 모듈(116) 및 네트워크 모듈(117)을 포함한다.
USB 모듈(116)은 주변 인터페이스(120)를 통해 외부 인터페이스를 제공하고, 이 주변 인터페이스(120)를 통해 컴퓨터(110)에 다양한 주변 디바이스들이 접속될 수 있다. USB 모듈(116)은 컴퓨터가 주변 인터페이스(120)를 통해 컴퓨터(110)에 접속할 수 있는 다양한 유형들의 주변 디바이스들(예시로, 모바일 컴퓨팅 디바이스(130))의 다수의 USB 디바이스 클래스들을 지원할 수 있게 하는 다양한 모듈들(명료성을 위해 도 1에서는 생략되었으나, 도 2에서 상세하게 도시되고 기술됨)을 포함한다. 그와 같은 USB 모듈의 전형적인 설계 및 동작은 당업자에 의해 이해될 것이다.
네트워크 모듈(117)은 하나 이상의 외부 인터페이스들을 제공하고, 이 외부 인터페이스들을 통해 컴퓨터(110)는 하나 이상의 유형들의 액세스 네트워크들과 통신할 수 있다. 예를 들어, 명료성을 위해 생략되었을지라도, 네트워크 모듈(117)은 TCP/IP 통신들을 지원하고, 하나 이상의 유형들의 통신 네트워크들과의 통신들을 지원하도록 구성되는 하나 이상의 네트워크 인터페이스 카드(network interface card; NIC)들을 포함하는 것이 인정될 것이다. 예를 들어, 컴퓨터(110)의 NIC(들)은 이더넷 기반 통신을 위한 이더넷 NIC, 무선 충실도(Wireless Fidelity; WiFi) 네트워크들과의 통신을 위한 WiFi NIC, 하나 이상의 유형들의 셀룰러 네트워크들(예를 들어, 2.5G 셀룰러 네트워크, 3G 셀룰러 네트워크, 4G 셀룰러 네트워크 등)과의 셀룰러 통신을 위한 셀룰러 NIC, 블루투스 통신을 위한 블루투스 NIC 등뿐만 아니라 이들의 다양한 결합들 중 하나 이상을 포함할 수 있다.
커널(115)은 또한 컴퓨터에 의해 지원될 수 있는 다양한 다른 유형들의 모듈들을 포함할 수 있음이 인정될 것이다.
컴퓨터(110)는 다양한 다른 유형들의 하드웨어 및 소프트웨어를 포함할 수 있고, 이들의 전형적인 배열 및 동작은 당업자에 의해 이해될 것임이 인정될 것이다.
주변 접속(120)은 컴퓨터(110)와 모바일 컴퓨팅 디바이스(130) 사이의 접속을 제공한다. 주변 접속(120)은 관리형 USB 서비스들의 전달 시에 관여되는 컴퓨터(110)와 모바일 컴퓨팅 디바이스(130) 사이에서의 다양한 데이터 트랜잭션(transaction)들을 지원하도록 구성된다. 하나의 실시예에서, 주변 접속은 USB 접속(예를 들어, USB 케이블)이다. 주변 접속(120)은 주로 USB 접속인 것으로 도시되고 기술될지라도, 하나 이상의 다른 유형들의 접속들을 이용하여(예를 들어, 컴퓨터(110)와 모바일 컴퓨팅 디바이스(130) 사이의 WiFi 접속을 이용하고, 컴퓨터(110)와 모바일 컴퓨팅 디바이스(130) 사이의 블루투스 접속을 이용하고, 기타 등등) 제공될 수 있음이 인정될 것이다.
모바일 컴퓨팅 디바이스(130)는 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들을 지원하도록 구성된다.
일반적으로, 모바일 컴퓨팅 디바이스(130)는 (1) 다수의 USB 디바이스 클래스들을 지원하도록(이용 가능한 USB 디바이스 클래스들 사이에서 스위칭하기 위한 지원 및 다양한 유형들의 관리형 USB 서비스들을 제공하기 위한 지원을 포함함) 구성되고, (2) 모바일 컴퓨팅 디바이스(130)를 컴퓨터에 접속하는 것을 가능하게 하는 주변 인터페이스를 포함하고(예시로서, 모바일 컴퓨팅 디바이스(130)와 컴퓨터(110) 사이의 주변 접속(120)을 지원하기 위한), (3) 모바일 컴퓨팅 디바이스(130)가 통신 네트워크에 액세스하는 것을 가능하게 하는 네트워크 인터페이스를 포함하는(예시로, 네트워크(150)에 액세스하는 네트워크 접속(140)을 지원하고, 이로 인해 모바일 컴퓨팅 디바이스(130)가 통신 네트워크(160) 및 서비스 관리 기반 구조(170)에 액세스하는 것이 가능해짐) 임의의 유형의 디바이스를 나타낸다. 예를 들어, 모바일 컴퓨팅 디바이스(130)는 스마트폰, 태블릿 컴퓨터 또는 그와 같은 특징들을 지원하는 임의의 다른 적절한 모바일 컴퓨팅 디바이스일 수 있다.
도 1에 도시된 바와 같이, 모바일 컴퓨팅 디바이스(130)는 사용자 공간(131) 및 커널(135)을 포함한다.
사용자 공간(131)은 모바일 컴퓨팅 디바이스(130)를 통해 사용자 상호 작용을 지원하도록 구성되고 컴퓨터(110)의 사용자들에 의해 이용될 수 있는 하나 이상의 애플리케이션들을 포함할 수 있다. 커널(135)은 사용자 공간(131)을 컴퓨터(110)의 하드웨어(예를 들어, CPU들, 메모리, 다른 디바이스들 등, 이것들은 명료성을 위해 도 1에서 생략됨)로 인터페이스하도록 구성된다.
사용자 공간(131)은 사용자 에이전트(User Agent; UA)(132) 및 관리 에이전트(Management Agent; MA)(133)를 포함하는 한 쌍의 에이전트들을 포함한다. UA(132) 및 MA(133)는 각각 관리형 DNS 서비스 케이퍼빌리티의 다양한 기능들을 제공하도록 구성된다. UA(132) 및 MA(133)는 모바일 컴퓨팅 디바이스(130) 상에서 임의의 적절한 방식으로 구현될 수 있다. 하나의 실시예에서, 예를 들어, UA(132) 및/또는 MA(133)는 메모리 내에 저장되는 소프트웨어로서 구현될 수 있고, 이는 본원에서 도시되고 기술되는 UA(132) 및/또는 MA(133)의 다양한 기능들을 제공하기 위해 프로세서에 의해 실행될 수 있다. UA(132) 및 MA(133)는 모바일 컴퓨팅 디바이스(130) 상에서 임의의 다른 적절한 방식으로 구현될 수 있다.
커널(135)은 USB 모듈(136) 및 네트워크 모듈(137)을 포함한다. 커널(135)은 또한 모바일 컴퓨팅 디바이스에 의해 지원될 수 있는 다양한 다른 유형들의 모듈들을 포함할 수 있음이 인정될 것이다.
USB 모듈(136)은 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들을 지원하도록 구성된다. USB 모듈(136)은 주변 인터페이스(120)를 통해 외부 인터페이스를 제공하고, 모바일 컴퓨팅 디바이스(130)가 관리형 USB 서비스들을 지원하는 상황 내에서 이 주변 인터페이스(120)를 통해 컴퓨터(110)에 접속될 수 있다. USB 모듈(136)은 모바일 컴퓨팅 디바이스(130)가 주변 접속(120)을 통해 컴퓨터(110)에 접속할 수 있는 다양한 유형들의 주변 디바이스들에 대한 다수의 USB 디바이스 클래스들을 지원하는 것이 가능한 다양한 모듈들(명료성을 위해 도 1에서는 생략되었으나, 도 2에서 상세하게 도시되고 기술됨)을 포함한다. USB 모듈(136)은 USB 모듈(136)에 의해 지원되는 다수의 USB 디바이스 클래스들 중 임의의 클래스에서 동작하도록 국지적으로 그리고/또는 원격으로 제어될 수 있도록 구성됨으로써, USB 모듈(136)이 다양한 유형들의 관리형 USB 서비스들을 지원하도록 구성되는 것이 가능하다.
네트워크 모듈(137)은 하나 이상의 외부 인터페이스들을 제공하고, 이 외부 인터페이스들을 통해 모바일 컴퓨팅 디바이스(130)는 하나 이상의 유형들의 액세스 네트워크들과 통신할 수 있다. 예를 들어, 명료성을 위해 생략되었을지라도, 네트워크 모듈(137)은 TCP/IP 통신들을 지원하고, 하나 이상의 유형들의 통신 네트워크들과의 통신들을 지원하도록 구성되는 하나 이상의 네트워크 인터페이스 카드(network interface card; NIC)들을 포함하는 것이 인정될 것이다. 예를 들어, 모바일 컴퓨팅 디바이스(130)의 NIC(들)은 이더넷 기반 통신을 위한 이더넷 NIC, 무선 충실도(WiFi) 네트워크들과의 통신을 위한 WiFi NIC, 하나 이상의 유형들의 셀룰러 네트워크들(예를 들어, 2.5G 셀룰러 네트워크, 3G 셀룰러 네트워크, 4G 셀룰러 네트워크 등)과의 셀룰러 통신을 위한 셀룰러 NIC, 블루투스 통신을 위한 블루투스 NIC 등뿐만 아니라 이들의 다양한 조합들 중 하나 이상을 포함할 수 있다. 도 1에 도시된 바와 같이, 네트워크 모듈(137)은 액세스 네트워크(150)로의 네트워크 접속(140)을 지원하며, 여기서 네트워크 접속(140) 및 액세스 네트워크(150)는 임의의 적절한 유형의 접속/네트워크(예를 들어, 이더넷, WiFi, 셀룰러 등)일 수 있다.
본원에서 기술되는 바와 같이, 사용자 공간(131)은 다양한 관리형 USB 서비스들의 국지 및/또는 원격 제어가 가능하기 위한 커널(135)과의 상호 작용을 지원하도록 구성된다. 사용자 공간(131)은 상술한 바와 같이, 다양한 관리형 USB 서비스들의 국지 및/또는 원격 제어의 지원 시에 다양한 기능들을 제공하는 UA(132) 및 MA(133)를 포함한다.
UA(132)는 모바일 컴퓨팅 디바이스(130)의 사용자에게 모바일 컴퓨팅 디바이스(130)의 다양한 제어들에 대한 액세스를 제공하는 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 지원한다. 하나의 실시예에서, 예를 들어, UA(132)에 의해 지원되는 GUI는 모바일 컴퓨팅 디바이스(130)의 사용자에게 커널(135)의 USB 모듈(136)의 USB 인터페이스 선택기로의 액세스를 제공함으로써(예를 들어, MA(133)와의 소켓 교환들을 통한, 또는 임의의 다른 적절한 방식으로, 여기서 MA(133)는 커널(135)의 USB 모듈(136)의 USB 인터페이스 선택기로의 인터페이스를 지원함), 사용자는 모바일 컴퓨팅 디바이스(130)에 의해 지원되는 USB 디바이스 클래스들 사이에서 선택할 수 있게 된다. 하나의 실시예에서, 예를 들어, UA(132)에 의해 지원되는 GUI는 모바일 컴퓨팅 디바이스(130)의 사용자에게, 상기 사용자가 하나 이상의 관리형 USB 서비스들을 국지적으로 개시할 수 있고, 원격으로 개시되는 하나 이상의 관리형 USB 서비스들 등뿐만 아니라 이들의 다양한 조합들을 국지적으로 제어하고/하거나 상기 서비스들에 참여할 수 있는 액세스를 제공한다. 하나의 실시예에서, 예를 들어, UA(132)에 의해 지원되는 GUI는 모바일 컴퓨팅 디바이스(130)의 사용자에게 사용자 인증 인터페이스로의 액세스를 제공한다. UA(132)는 모바일 컴퓨팅 디바이스(130)의 사용자에게 모바일 컴퓨팅 디바이스(130)에 대한 다양한 다른 제어들 및 기능들로의 액세스를 제공하도록 구성될 수 있음이 주목된다.
MA(133)는 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들을 지원하도록 구성된다. MA(133)는 USB 모듈(136)로의 국지 및 원격 액세스를 지원하도록 구성됨으로써, 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들(예를 들어, 모바일 컴퓨팅 디바이스(130) 상에서 이용되도록 USB 디바이스 클래스를 세팅하고, 모바일 컴퓨팅 디바이스(130) 등뿐만 아니라 이의 다양한 조합들을 통해 하나 이상의 관리형 USB 서비스들을 개시하거나 상기 서비스들에 참여하는)에 대한 국지 및 원격 제어가 가능하다.
MA(133)는 USB 모듈(136)로의 인터페이스(138)를 지원한다. 인터페이스(138)는 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들(예를 들어, 모바일 컴퓨팅 디바이스(130) 상에서 이용되도록 USB 디바이스 클래스를 세팅하고, 모바일 컴퓨팅 디바이스(130) 등뿐만 아니라 이의 다양한 조합들을 통해 하나 이상의 관리형 USB 서비스들을 개시하고/하거나 상기 서비스에 참여하는)의 지원 시에 USB 모듈(136)로의 국지적 액세스(예를 들어, UA(132)로부터) 및 원격 액세스(예를 들어 네트워크 접속(140)으로부터 네트워크 모듈(137)을 통하여)를 지원한다. 인터페이스(138)는 임의의 적절한 방식으로 구현될 수 있음이 주목된다. 인터페이스(138)는 도 2에 관하여 추가적으로 상세하게 도시 및 기술된다.
MA(133)는 네트워크 모듈(137)로의 인터페이스(139)를 지원한다. 인터페이스(137)는 MA(133)로의 원격 액세스를 지원함으로써 MA(133)와 USB 모듈(136) 사이의 인터페이스(138)를 통해 USB 모듈(136)로의 원격 액세스를 제공한다. 이는 다시, 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들(예를 들어, 모바일 컴퓨팅 디바이스(130) 상에서 이용되도록 USB 디바이스 클래스를 세팅하고, 모바일 컴퓨팅 디바이스(130) 등뿐만 아니라 이의 다양한 결합들을 통해 하나 이상의 관리형 USB 서비스들을 개시하거나 상기 서비스들에 참여하는)의 지원 시에 USB 모듈(136)로의 원격 액세스를 지원한다. 인터페이스(139)는 임의의 적절한 방식으로 구현될 수 있음이 주목된다.
MA(133)는 UA(132)로의 국지 인터페이스(134)를 지원함으로써, MA(133)는 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들에 대해 국지적으로 제어하기 위해(또는 적어도 상기 기능들을 제공하는데 참여하기 위하여) 커널(135)로의 국지적 액세스를 지원할 수 있게 된다.
예를 들어, MA(133)는 UA(132)로부터 인터페이스(134)를 통해 국지 명령들 및/또는 데이터를 수신하고(예를 들어 모바일 컴퓨팅 디바이스(130)의 사용자에 의해 연관되는 GUI를 통해 취해지는 동작들에 기초함), 국지 명령들 및/또는 데이터를 프로세싱하고, 하나 이상의 기능들(예를 들어, 이용될 USB 디바이스 클래스를 세팅하고, 하나 이상의 관리형 USB 서비스들 등을 개시하고/하거나 상기 서비스들에 참여하는)을 제어하기 위해 인터페이스(138)를 통해 커널(135)의 USB 모듈에 연관되는 국지 명령들 및/또는 데이터를 제공할 수 있다. 유사하게, MA(133)는 인터페이스(138)를 통해 커널(135)의 USB 모듈(136)로부터 응답들을 수신하고, 상기 응답들을 프로세싱하고, 연관되는 응답들을 인터페이스(134)를 통해 UA(132)에 제공할 수 있다(예를 들어, 연관되는 GUI를 통해 모바일 컴퓨팅 디바이스의 사용자에게 프리젠테이션하기 위하여).
예를 들어, MA(133)는 인터페이스(134)를 통해 UA(132)로부터 국지 명령들 및/또는 데이터를 수신하고 네트워크 접속(140)을 통하여 전파하기 위해서 국지 명령들 및/또는 데이터를 인터페이스(139)를 통해 네트워크 모듈(137)로 제공할 수 있다. 유사하게, 예를 들어, MA(133)는 인터페이스(139)를 통해 네트워크 모듈(137)로부터 원격 명령들 및/또는 데이터(네트워크 접속(140)을 통해 수신된)를 수신하고 인터페이스(134)를 통해 원격 명령들 및/또는 데이터를 UA(132)로 제공할 수 있다(예를 들어, 연관되는 GUI를 통해 모바일 컴퓨팅 디바이스(130)의 사용자에게 프리젠테이션하기 위해).
MA(133)는 관리형 USB 서비스 케이퍼빌리티의 기능들에 대한 국지적 지원을 제공하는 것과 연관되는 다양한 다른 유형들의 국지적인 상호 작용들을 지원할 수 있다.
MA(133)는 네트워크 모듈(137) 및 네트워크 접속(140)을 통해 서비스 관리 기반 구조(170)로의 원격 데이터 접속을 지원함으로써, 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들에 대한 원격 제어(또는 적어도 상기 기능들을 제공하는데 참여)를 제공하기 위해 MA(133)가 커널(135)의 USB 모듈(136)로 원격 액세스하는 것을 지원하는 것이 가능하다.
예를 들어, MA(133)는 네트워크 접속(140) 및 네트워크 모듈(137)을 통해 서비스 관리 기반 구조(170)로부터 명령들 및/또는 데이터(예를 들어, 서비스 관리 시스템을 통해 하나 이상의 관리자 단말기로부터, 또는 임의의 다른 적절한 방식으로)를 수신하고, 상기 명령들 및/또는 데이터를 프로세싱하고, 하나 이상의 기능들(예를 들어, 이용될 USB 디바이스 클래스를 세팅하고, 하나 이상의 관리형 USB 서비스들 등을 개시 및/또는 상기 서비스 등에 참여하는)을 제어하기 위해 커널(135)의 USB 모듈(136)에 연관되는 명령들 및/또는 데이터를 제공할 수 있다. 유사하게, 예를 들어, MA(133)는 커널(135)의 USB 모듈(136)로부터 응답들을 수신하고, 상기 응답들을 프로세싱하고, 연관되는 응답들을 네트워크 모듈(137) 및 네트워크 접속(140)을 통해 서비스 관리 기반 구조(170)에 제공(예를 들어, 상기 응답들이 하나 이상의 관리자 단말기들을 통해 하나 이상의 관리자들에게 제시될 수 있도록 서비스 관리 시스템을 통해 하나 이상의 관리자 단말기로 전파되도록)할 수 있다.
MA(133)는, 주변 접속(120)을 통한 모바일 컴퓨팅 디바이스(130)와 컴퓨터(110) 사이의 국지적 데이터 교환들 및/또는 네트워크 접속(140)을 통한 모바일 컴퓨팅 디바이스(130)와 서비스 관리 기반 구조(170) 사이의 원격 데이터 교환들과 같은, 관리형 USB 서비스들과의 관련 모바일 컴퓨팅 디바이스(140)의 데이터 교환들을 보호하는 암호화 파라미터들을 모바일 컴퓨팅 디바이스(130) 상에 저장하도록 구성될 수 있다.
MA(133)는 관리형 USB 서비스 케이퍼빌리티의 지원 시에 다양한 다른 기능들을 제공하도록 구성될 수 있다.
USB 모듈(136) 및 네트워크 모듈(137)은 직접적으로(즉, MA(133)와는 관계 없이) 통신할 수 있다. 이 통신 경로는 다양한 방식들로 이용될 수 있다. 예를 들어, 이 통신 경로는 MA(133)와는 관계 없이, USB 모듈(136)과 네트워크 접속(140) 사이의 통신을 용이하게 하기 위한 목적으로 이용될 수 있다. 예를 들어, 이 통신 경로는 MA(133)과는 관계 없이, 컴퓨터(110)의 USB 모듈(116) 및 모바일 컴퓨팅 디바이스(130)의 USB 모듈(136)을 통한 컴퓨터(110)와 네트워크 접속(140) 사이의 통신을 용이하게 하기 위한 목적으로 이용될 수 있다.
본원에서 기술되는 바와 같이, 모바일 컴퓨팅 디바이스(130)는 스마트폰, 태블릿 컴퓨터 등과 같은 임의의 적절한 유형의 모바일 컴퓨팅 디바이스일 수 있다.
모바일 컴퓨팅 디바이스(130)가 스마트폰을 이용하여 구현되는 실시예들에서, 스마트폰이 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스로서 동작하도록 구성되는 방식은 다양한 요인들(예를 들어, 스마트폰의 유형, 스마트폰에서 사용되는 운영 시스템(Operating System; OS), 스마트폰에서 사용되는 명령 세트 아키텍처(Instruction Set Architecture; ISA)의 유형 등뿐만 아니라 이들의 다양한 조합들)에 좌우될 수 있다.
하나의 실시예에서, 예를 들어, 안드로이드 OS를 이용하는 T-Mobile G1/HTC Dream 스마트폰은 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스로서 동작하도록 구성될 수 있다. 안드로이드 OS는 개방형-소스이고 리눅스 기반 커널을 이용하는 것이 주목된다. 하나의 실시예에서, 안드로이드 스마트폰의 사용자 공간은 안드로이드 OS의 진보된 명령어 축약형 컴퓨터 머신(Advanced Reduced Instruction Set Computer(RISC) Machine; ARM) 명령 세트 아키텍처(ISA)에 대하여 크로스 컴파일(cross-compile)된, 완전한 정규의 리눅스 배포판을 운영하는 chroot 환경을 생성함으로써 파티셔닝(partitioning)된다. chroot 환경은 표준 GNU libc와 같이, C 애플리케이션들을 운영하는데 필요한 라이브러리들 모두를 유지하는데 충분히 크도록 설계된다(예를 들어, 64GB 마이크로 보안 디지털(Micro Secure Digital; SD) 카드들이 신속하게 이용 가능할 때 750MB). UA(132) 및 MA(133)를 제공하기 위한 소프트웨어는 C 코드를 이용하여 구현된다. ARM ISA에 대한 C 코드 베이스 및 이의 chroot 환경에서의 인스톨(install)의 크로스 컴파일링은 자체의 본연의 케이퍼빌리티들에 영향을 주지 않고 안드로이드 OS 플랫폼에 표준 리눅스 사용자 공간을 추가한다. 하나의 실시예에서, UA(132)는 chroot 환경의 외부에서 안드로이드 애플리케이션으로서 구현되고, 반면에 MA(133)에 대한 소프트웨어를 포함하는 나머지 소프트웨어는 chroot 환경 내에 인스톨된다. Chroot 환경은 파일 시스템을 격리하지만 커널 또는 네트워크를 격리하지 않으므로, UA(132)는 여전히 네트워크 소켓들을 이용하여 MA(133)와 통신할 수 있음이 주목된다. 안드로이드 OS 커널은 USB 디바이스 클래스들 중 일부에 대해서는 모듈들을 지원하지만 전부에 대해서는 지원하지 않는 것이 주목된다. 안드로이드 OS 커널의 USB 디바이스 클래스들에 대한 기존 모듈들이 의도되는 관리형 USB 서비스들을 지원할만큼 충분하다면, USB 디바이스 클래스들에 대한 기존 모듈들의 변경은 필요하지 않다. 안드로이드 OS 커널의 USB 디바이스 클래스들에 대한 기존의 모듈들이 의도되는 관리형 USB 서비스들을 지원할 수 있는 만큼 충분하지 않으면(예를 들어, USB 대용량 저장 클래스와 같은 일부 USB 디바이스 클래스들에 대한 모듈들이 본래의 안드로이드 OS 커널 내에서 분실 중이면), T-Mobile G1/HTC Dream 스마트폰은 지원되어야 할 분실 중인 USB 디바이스 클래스(들)에 대한 모듈(들)을 포함하도록 구성된다(예를 들어, 정규 리눅스 커널로부터의 각각의 모듈(들)을 안드로이드 커널 내로 포팅(porting)함으로써, 또는 임의의 다른 적절한 방식으로). 하나의 실시예에서, 네트워킹의 경우, T-Mobile G1/HTC Dream 스마트폰은 DHCP 서버를 운용함으로써 그리고 네트워크 어드레스 변환(network address translation; NAT) 기능들을 위해 리눅스의 iptables 프레임워크를 이용함으로써 테더링을 지원하도록 구성된다. 하나의 실시예에서, 서비스 관리 기반 구조(170)에 대한 VPN 접속의 경우, 리눅스에 대한 상업용 IPsec 구현물(예를 들어 IPsec 드라이버 및 MA(133)에 의해 제어되는 사용자-공간 인터넷 키 교환(Internet Key Exchange; IKE) 유틸리티를 포함함)이 T-Mobile G1/HTC Dream 스마트폰 상에 인스톨된다. 하나의 실시예에서, T-Mobile G1/HTC Dream 스마트폰의 SD 카드 상의 저장 공간은 chroot 리눅스 환경에 대해, 암호화 키들에 대해, 그리고 스마트폰이 USB 대용량 저장 클래스 디바이스로서 동작할 때 저장될 데이터에 대해 정적 할당하도록 파티셔닝된다. 소프트웨어의 다양한 부분들은 임의의 적절한 방식으로 컴파일될 수 있음(예를 들어, iptables, USB 소프트웨어, VPN 소프트웨어 및 유사한 소프트웨어는 T-Mobile G1/HTC Dream 스마트폰에 공개적으로 이용 가능한 개방형 소스 코드를 이용하여 컴파일될 수 있음)이 주목된다.
T-Mobile G1/HTC Dream 스마트폰은 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스로서 또는 임의의 다른 적절한 방식으로 동작하도록 구성될 수 있음이 주목된다. 유사하게, 상술한 방법뿐만 아니라 이들의 변형들은 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스들로서 동작하는 다른 유사한 스마트폰들(예를 들어, 안드로이드 OS 및 ARM ISA를 이용하는 스마트폰들)을 구성하기 위해 이용될 수 있음이 주목된다. 유사하게, 다른 OS들 및/또는 ISA들을 이용하는 다른 스마트폰들 또한 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스들로서 동작하도록 구성될 수 있음이 주목된다. 즉, 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스로서 동작하는 안드로이드 OS를 이용하는 T-Mobile G1/HTC Dream 스마트폰의 구성에 대하여 주로 기술될지라도, 임의의 다른 적절한 OS를 이용하는 임의의 다른 적절한 스마트폰(예를 들어, iOS 운영 시스템을 이용하는 Apple iPhone, Symbian OS를 이용하는 Nokia X7 스마트폰 등)이 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨팅 디바이스로서 동작하도록 구성될 수 있음이 주목된다. 게다가, 관리형 USB 서비스 케이퍼빌리티를 지원할 수 있는 모바일 컴퓨터 디바이스로서 동작하는 기존 스마트폰들의 구성에 대하여 본원에서 주로 도시되고 기술될지라도, 스마트폰들은 또한 본원에서 도시되고 기술되는 바와 같은 모바일 컴퓨팅 디바이스의 기능들을 지원하도록 설계될 수 있음이 주목된다. 더욱이, 모바일 컴퓨팅 디바이스의 기능들을 지원하는 스마트폰들의 구성 또는 설계에 대하여 본원에서 주로 도시되고 기술될지라도, 다양한 다른 유형들의 디바이스들이 관리형 USB 서비스 케이퍼빌리티를 지원하는 모바일 컴퓨팅 디바이스의 기능들을 제공하도록 구성 또는 설계될 수 있음이 주목된다.
네트워크 접속(140)은 모바일 컴퓨팅 디바이스(130)와 액세스 네트워크(150) 사이의 접속을 제공하고, 액세스 네트워크(150)는 다른 네트워크들 및 디바이스들(실례로, 통신 네트워크(160) 및 서비스 관리 기반 구조(170))와 모바일 컴퓨팅 디바이스(130)의 통신들을 용이하게 한다. 네트워크 접속(140)은 모바일 컴퓨팅 디바이스(130)가 유선 접속(예를 들어 이더넷 접속 등), WLAN 접속(예를 들어, WiFi 등), WWAN 접속(예를 들어, 셀룰러 등) 등과 같은 통신 네트워크에 액세스할 수 있는 임의의 적절한 유형의 네트워크 접속일 수 있다. 유사하게, 액세스 네트워크(150)는 모바일 컴퓨팅 디바이스(130)가 통신할 수 있는 임의의 적절한 유형의 통신 네트워크일 수 있고, 이 네트워크는 유선 네트워크들(예를 들어, 케이블, DSL 등) 및/또는 무선 네트워크들(예를 들어, WiFi, 셀룰러 등)을 포함할 수 있다. 단일 네트워크 접속(140) 및 단일 액세스 네트워크(150)에 관하여 주로 도시 및 기술될지라도, 모바일 컴퓨팅 디바이스(130)는 다수의 유형들의 액세스 네트워크들을 통해 다수의 유형들의 액세스 접속들을 지원하도록 구성될 수 있고, 따라서, 모바일 컴퓨팅 디바이스(130)는 임의의 소정의 시간에서의 통신에 이용 가능한 다수의 여러 액세스 네트워크들을 가질 수 있음이 인정될 것이다.
통신 네트워크(160)는 모바일 컴퓨팅 디바이스(130)가 액세스 네트워크(150)를 통해 통신할 수 있는 임의의 통신 네트워크를 나타낸다. 예를 들어, 통신 네트워크(160)는 사설 데이터 네트워크(예를 들어, 기업의 기업 네트워크, 통신 서비스 공급자의 코어 데이터 네트워크 등) 및/또는 공중 데이터 네트워크(예를 들어, 인터넷)를 포함할 수 있다. 하나의 실시예에서, 통신 네트워크(160)는 모바일 컴퓨팅 디바이스(130)와 서비스 관리 기반 구조(170) 사이의 통신들을 지원할 수 있다.
서비스 관리 기반 구조(170)는 관리형 USB 서비스들의 원격 관리를 지원하도록 구성된다.
서비스 관리 기반 구조(170)는 관리형 USB 서비스들을 제공하는 엔티티의 유형에 좌우될 수 있는 임의의 적절한 방식으로 구현될 수 있다. 예를 들어, 서비스 관리 기반 구조(170)는 기업에 의해(예를 들어, 서비스 관리 기반 구조(170)는 기업의 기업 네트워크 내에서 구현될 수 있도록), 통신 서비스 공급자에 의해(예를 들어, 서비스 관리 기반 구조(170)는 통신 서비스 공급자의 통신 네트워크 내에서 구현될 수 있도록), 관리형 USB 서비스 공급자에 의해(예를 들어, 서비스 관리 기반 구조(170)는 관리형 USB 서비스 제공자의 통신 네트워크 내에서 구현될 수 있도록) 및 기타 등등에 의해 제어될 수 있다.
서비스 관리 기반 구조(170)는 서비스 관리 시스템(171) 및 관리자 단말기(175)를 포함한다.
서비스 관리 시스템(171)은 관리형 USB 서비스들의 원격 관리를 위한 진입 포인트이다. 서비스 관리 시스템(171)은 모바일 컴퓨팅 디바이스들(예시로, 모바일 컴퓨팅 디바이스(130)), 및 선택사양으로 또한, 모바일 컴퓨팅 디바이스들을 통해 액세스 가능한 컴퓨터들(예시로, 컴퓨터(110))의 프로비져닝(provisioning), 관리 및 고장 수리와 같은 기능들을 지원하도록 구성되는 웹 기반 인터페이스(예를 들어, GUI 또는 다른 적절한 인터페이스)를 지원한다. 예를 들어, 서비스 관리 시스템(171)의 웹 기반 인터페이스는 컴퓨터들에 대한 관리형 USB 서비스들을 지원하도록 구성되는 모바일 컴퓨팅 디바이스들을 추가하고, 제거하고, 구성하고 추적하는 명령들을 지원할 수 있다. 예를 들어, 서비스 관리 시스템(171)의 웹 기반 인터페이스는 관리형 USB 서비스들을 활성화하고, 관리하고 활성화 해제하는 명령들을 지원할 수 있다. 예를 들어, 서비스 관리 시스템(171)의 웹 기반 인터페이스는 서비스 관리 시스템(171)을 통해 제공될 수 있는 다양한 관리 기능들과 연관되는 정보의 프리젠테이션을 지원할 수 있다. 서비스 관리 시스템(171)의 웹 기반 인터페이스는 서비스 관리 기반 구조(170)로부터 원격으로 제어될 수 있는 관리형 USB 서비스들과 연관되는 임의의 다른 명령들 및/또는 프리젠테이션 케이퍼빌리티들을 지원할 수 있다. 웹 기반 인터페이스는 관리자 단말기(175)를 통해 디스플레이에 대해 적응 가능하다.
서비스 관리 시스템(171)은 모바일 컴퓨팅 디바이스(130)의 MA(133)와의 원격 데이터 접속(172)을 지원한다.
원격 데이터 접속(172)은 모바일 컴퓨팅 디바이스(130)의 MA(133)와 서비스 관리 시스템(171) 사이의 통신을 지원한다. 예를 들어, 원격 데이터 접속(172)은 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들(예를 들어, 모바일 컴퓨팅 디바이스(130) 상에서 이용될 USB 디바이스 클래스를 세팅하고, 모바일 컴퓨팅 디바이스(130) 등뿐만 아니라 이의 다양한 조합들을 통해 하나 이상의 관리형 USB 서비스들을 개시하거나 상기 서비스들에 참여함)을 제어하는데 이용하기 위하여 명령들 및/또는 데이터를 서비스 관리 시스템(171)으로부터 MA(133)로 전달할 수 있다. 유사하게, 예를 들어, 원격 데이터 접속(172)은 관리형 USB 서비스 케이퍼빌리티의 다양한 기능들에 대한 제어과 관련되는 정보(예를 들어, 프로비져닝, 관리 및/또는 고장 수리 요청들에 대한 응답들)를 MA(133)로부터 서비스 관리 시스템(171)으로 전달할 수 있다. 원격 데이터 접속(172)은 모바일 컴퓨팅 디바이스(130) 및/또는 컴퓨터(110)의 프로비져닝, 관리 및/또는 고장 수리를 제공하는 상황 내에서 임의의 다른 정보를 모바일 컴퓨팅 디바이스(130)로 또는 모바일 컴퓨팅 디바이스(130)로부터 통신하는 것을 지원할 수 있다.
원격 데이터 접속(172)은 보안 접속(예를 들어 IPSec, SSH, TSL/SSL 및/또는 다른 적절한 유형의 보안 측정들을 이용하여 제공되는 보안 IP 접속)일 수 있다. 하나의 실시예에서, 서비스 관리 시스템(171)은 모바일 컴퓨팅 디바이스들로의 보안 접속들에 대한 VPN 터미네이션(VPN termination) 설비들을 제공할 수 있다.
관리자 단말기(175)는 접속(176)을 통해 서비스 관리 시스템(171)과 인터페이스함으로써, 관리자가 관리형 USB 서비스들의 관리를 원격으로 제어하는 것이 가능하다. 예를 들어, 관리자는 모바일 컴퓨팅 디바이스(130) 및/또는 컴퓨터(110)의 프로비져닝, 관리 및/또는 고장 수리와 관련되는 요청들을 개시하기 위해 관리자 단말기(175)를 이용할 수 있다. 유사하게, 예를 들어, 관리자는 모바일 컴퓨팅 디바이스(130) 및/또는 컴퓨터(110)의 프로비져닝, 관리 및/또는 고장 수리와 관련되는 요청들을 검토하기 위해 관리자 단말기(175)를 이용할 수 있다. 관리자 단말기(175)와 서비스 관리 시스템(171) 사이의 접속(176)은 임의의 적절한 방식으로 제공될 수 있고, 일부 경우들에서, 보안화될 수 있다(예를 들어, 암호화된 터널들을 통해 또는 임의의 다른 적절한 보안 메커니즘들을 이용하여). 이 방식에서, 관리자 단말기(175)는 모바일 컴퓨팅 디바이스(130)와 같은 모바일 컴퓨팅 디바이스들을 통해 컴퓨터(110)와 같은 컴퓨터들에 대한 관리형 USB 서비스들의 원격 제어를 지원하도록 구성된다.
단일 서비스 관리 시스템 및 단일 관리자 단말기를 이용하는 것에 대하여 주로 도시되고 기술될지라도, 임의의 적절한 수효의 서비스 관리 시스템들 및 관리자 단말기들이 이용될 수 있음이 인정될 것이다.
서비스 관리 시스템(171)이 전용 서버(예를 들어, 기업 애플리케이션에서 관리형 USB 서비스들을 지원하는 기업 네트워크 내, 고객 애플리케이션에서 관리형 USB 서비스들을 지원하는 서비스 공급자 네트워크 내 등등)인 실시예에 관하여 본원에서 주로 도시되고 기술될지라도, 적어도 일부 실시예들에서는 서비스 관리 시스템(171)의 클라우드(cloud)-기반 구현이 이용될 수 있음이 주목된다. 하나의 실시예에서, 예를 들어, 서비스 관리 시스템(171)은 클라우드에서 가상 서버로서 구현될 수 있고, 여기서 클라우드 서비스 공급자는 상기 클라우드 내에 하나 이상의 가상 서비스 관리 시스템 인스턴스(instance)들을 할당할 수 있다. 하나의 그와 같은 실시예에서, 가상 서비스 관리 시스템 인스턴스들은 요구 시에 클라우드 내에 할당될 수 있고, 이로 인해, 필요할 때 또는 원할 때(예를 들어, 접속된 원격 사용자들의 변동 부하에 기초하여) 가상 서비스 관리 시스템 인스턴스들의 수를 조정하는 것이 가능하다. 그와 같은 배열은 중요한 제품 포트폴리오의 확대에 의해 클라우드 서비스 공급자에게 이익을 주고(예를 들어, 가상 서비스 관리가 애플리케이션 가능 모델을 이용하여 실증(instantiate)되고 클라우드 서비스 공급자가 마진이 클 여지가 많은 이용당 지불(pay-per-use) 요금들을 수금할 수 있는 경우) 또한 관리형 USB 서비스들을 지원하는 서비스 공급자에게 이익들 주는 것(예를 들어, 자체의 IT 기반 구조에 새로운 물리적 구성요소의 추가를 방지함으로써 구매를 위한 선불 자본 지출들 및 부동산, 전력, 유지보수 등에 대한 운영 비용들을 제거하여)이 주목된다.
시스템(100)은 다양한 유형들의 환경들과 관련되는 다양한 애플리케이션들에(예를 들어, 기업 네트워크 환경들에서의 기업 애플리케이션들에, 다양한 유형들의 통신 네트워크 환경들에서의 고객 애플리케이션들 등등에) 관리형 USB 서비스 케이퍼빌리티들을 제공하는데 이용될 수 있음이 주목된다.
기업 애플리케이션에서, 예를 들어, 관리형 USB 서비스 케이퍼빌리티에 대한 다양한 실시예들로 인해 기업 네트워크 환경 내에 있는 기업 종업원들의 기업 컴퓨터들의 운영 및/또는 관리의 국지 및/또는 원격 제어가 가능하다.
예를 들어, 적어도 일부의 실시예들에서, 기업 사용자에 의한 기업 네트워크로의 원격 액세스는 기업 사용자가 항상 동일한 기업 컴퓨터를 이용하여 기업 네트워크로 로그인할 것을 요구하지 않는다(예를 들어, 적어도 일부의 실시예들은 기업 사용자 대 모바일 컴퓨팅 디바이스를 가능하게 함으로써 어떠한 컴퓨터도 기업을 추가된 보안 위협들에 노출시키지 않고 원격 기업 액세스에 이용될 수 있음).
예를 들어, 적어도 일부 실시예들에서, 기업 네트워크 액세스를 위한 스마트 카드 기술을 이용함으로써 강화된 보안은 심지어 기업 컴퓨터 및 스마트 카드(모바일 컴퓨팅 디바이스 상에서 실증된) 이 둘 모두가 분실되어 있을 때에도 유지된다(예를 들어, 컴퓨터의 컴퓨터 자원들로의 액세스는 모바일 컴퓨팅 디바이스 내의 보안 인증들의 원격 파기에 의해 원격으로 거부됨).
예를 들어, 적어도 일부의 실시예들에서, 기업 컴퓨터의 원격 관리는 기업 컴퓨터에 이 목적을 위한 특정한 하드웨어/소프트웨어가 설치될 것을 요구하지 않고/않거나 기업 컴퓨터가 이더넷 또는 WiFi 네트워크에 접촉될 것을 요구하지 않는다(예를 들어, 적어도 일부 실시예들은 기업 컴퓨터 내에 어떠한 하드웨어/소프트웨어 설치를 요구하지 않으면서도 모바일 컴퓨팅 디바이스를 통해 제공될 수 있고/있거나 적어도 일부 실시예들은 모바일 컴퓨팅 디바이스가 데이터 네트워크(예를 들어, WiFi, 3G/4F 브로드밴드 와이어리스 등)에 액세스할 수 있는 어느 곳이든지 제공될 수 있음).
예를 들어, 적어도 일부 실시예들에서, 기업 컴퓨터의 지리적 위치 및 기업 컴퓨터의 기능 장애에 대한 원인의 심각성과는 관계 없이, 기업 IT 관리자들이 아무 때나 기업 컴퓨터들에 원격으로 액세스하는 것을 가능하게 함으로써 기업 컴퓨터의 원격 관리가 제공된다. 이는 자신들의 랩탑들이 소프트웨어 및 네트워크 기능 장애 문제들을 초래할 때 갑작스런 때로는 오랜 생산성 중단에 직면하는 기업 랩탑 사용자들, 특히 기업 설비로부터 떨어져서 오랜 시간을 소비하는 모바일 종업원들에 유용하다. 관리형 USB 서비스 케이퍼빌리티가 없을 때, 소프트웨어 기능 장애 문제들 중 일부는 랩탑으로의 원격 로그인을 통해 IT 관리자에 의해 처리될 수 있을지라도, 많은 세트의 소프트웨어 문제들은 랩탑으로의 원격 액세스를 불가능하게 할 수 있으므로, 랩탑 사용자는 기업 서비스 센터에 도움을 구하여야만 한다. 이것은 랩탑을 기업 서비스 센터로 가져가거나, 아니면 수리를 위해 랩탑을 기업 서비스 센터로 배송하고 그 후에 수리된 랩탑을 원격 장소로 역으로 배송을 받는 것을(즉, 기업 서비스 센터가 랩탑 사용자에 편리한 곳에 위치되지 않으며, 그 결과적인 생산성 중단은 수일 또는 수주일 동안 지속될 수 있음) 포함할 수 있다. 상술한 바와 같이, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은, 컴퓨터를 서비스 센터에 물리적으로 가져갈 필요 없이, 컴퓨터 작동 문제들이 발생하자마자 기업 구내로부터 멀리 있는 기업 사용자가 모바일 컴퓨팅 디바이스를 사용하여 컴퓨터 수리 자원들에 즉각적으로 액세스하는 것을 가능하게 함으로써 그와 같은 문제들을 용이하게 극복한다.
예를 들어, 적어도 일부의 실시예들에서, 기업 디바이스(예를 들어, 종업원 컴퓨터, 네트워크 장비 등)로의 원격 시리얼 콘솔 액세스는 모바일 컴퓨팅 디바이스를 통하여, 심지어 기업 디바이스에 전형적으로 이용 가능한 네트워크 접속이 더 이상 이용 가능하지 않을 때에도, 가능하다.
관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 모바일 종업원의 컴퓨터가 기업의 IT 경계 내에 완전히 포함되는 동작 및 접속 상태들의 세트를 확장하는데 모바일 컴퓨팅 디바이스를 이용함으로써, 생산 중단들을 방지하고, 소프트웨어 업데이트들 및 패치들의 배치 시간을 최소화함으로써 기업의 보안을 강화하고, 지리적으로 산재되어 있는 IT 자원들의 집단의 유지보수에 수반되는 운영 비용들을 감소시키고, 다양한 다른 장점들을 제공하는 것이 주목된다.
상기 및 다른 기능들 및 장점들은 관리형 USB 서비스 케이퍼빌리티의 실시예들이 기업 상황 내에서 적용될 때 실현될 수 있다.
소비자 애플리케이션에서, 예를 들어, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 다양한 유형들의 통신 네트워크들 내의 고객 서비스들의 국지 및/또는 원격 제어를 가능하게 한다.
예를 들어, 적어도 일부의 실시예들에서, 컴퓨터의 원격 관리는 상기 컴퓨터에 이 목적을 위한 특정한 하드웨어/소프트웨어가 설치될 것을 요구하지 않고/않거나 상기 컴퓨터가 이더넷 또는 WiFi 네트워크에 접촉될 것을 요구하지 않는다(예를 들어, 적어도 일부 실시예들은 상기 컴퓨터 내에 어떠한 하드웨어/소프트웨어 설치를 요구하지 않으면서도 모바일 컴퓨팅 디바이스를 통해 제공될 수 있고/있거나 적어도 일부 실시예들은 모바일 컴퓨팅 디바이스가 데이터 네트워크(예를 들어, WiFi, 3G/4G 브로드밴드 와이어리스 등)에 액세스할 수 있는 어느 곳이든지 제공될 수 있음).
예를 들어, 적어도 일부 실시예들에서, 컴퓨터의 원격 관리는 상기 컴퓨터의 지리적 위치 및 상기 컴퓨터의 기능 장애에 대한 원인의 중대함과는 관계 없이, 서비스 공급 관리자들이 아무 때나 기업 컴퓨터들에 원격으로 액세스하는 것을 가능하게 함으로써 제공된다.
그러한 고객 애플리케이션들에서, 서비스들이 임의의 적절한 엔티티들(예를 들어, 통신 서비스 공급자들, 컴퓨터들을 판매하고 자신의 컴퓨터들에 대한 연관된 IT 지원을 제공하는 회사들, 다양한 제 3 자 서비스 공급자들 등)에 의해 제공될 수 있음이 주목된다.
상기 및 다른 기능들 및 장점들은 관리형 USB 서비스 케이퍼빌리티의 실시예들이 고객 상황 내에서 적용될 때 실현될 수 있다.
그와 같은 기능들 및 장점들을 다양한 유형들의 환경들에 따라 제공하는데 이용될 수 있는 특정 유형들의 관리형 USB 서비스들이 아래에서 추가 세부사항으로 기술된다.
본원에 기술되는 바와 같이, 다양한 관리형 USB 서비스들은 모바일 컴퓨팅 디바이스(130)의 구성이 상이한 USB 디바이스 클래스들에서 동작할 수 있는 것을 가능하게 함으로써 지원될 수 있다. 컴퓨터(110)에 대해 관리형 USB 서비스들을 지원하기 위하여 상이한 USB 디바이스 클래스들(USB 디바이스 클래스들 사이의 동적 스위칭에 대한 지원을 포함하는)에서 동작하는 모바일 컴퓨팅 디바이스(130)의 구성이 도 2를 참조하면 더 양호하게 이해될 수 있다.
도 2는 컴퓨터에 대한 관리형 USB 서비스들을 제공하는데 이용될 수 있는 USB 디바이스 클래스들을 지원하기 위한 모바일 컴퓨팅 디바이스의 구성을 도시하는, 도 1의 예시 시스템의 일부를 도시한다.
도 2에 도시되는 바와 같이, 시스템(200)은 도 1의 시스템(100)의 요소들의 다수를 포함한다. 그러므로, 이 요소들의 설명들은 반복되지 않는다.
도 2에 도시된 바와 같이, 컴퓨터(110)의 USB 모듈(116)은 컴퓨터(110)가 주변 인터페이스(120)를 통해 컴퓨터(110)에 접속될 수 있는 다양한 유형들의 주변 디바이스들의 다수의 USB 디바이스 클래스들을 지원하는 것이 가능하도록 구성되는 다양한 모듈들을 포함한다.
USB 모듈(116)은 저장 서브시스템(211A), 시리얼 서브시스템(211B) 및 네트워크 서브시스템(211C)을 포함하는 3개의 포괄 서브시스템들(211)을 포함한다. 포괄 서브시스템들(211)은 전문화된, 디바이스-특정 서브시스템들(관리형 USB 서비스 케이퍼빌리티의 다양한 기능들을 제공하는데 이용되는 USB-기반 서브시스템들을 포함하는)의 상부에 계층화(layered)되도록 구성되는 것이 인정될 것이다. 즉, 포괄 서브시스템들(211)이 USB 모듈(116)의 일부를 형성하는 것으로 본원에서 도시되고 설명될지라도(명료성을 위해), 상기 포괄 서브시스템들은 USB에 특정되지 않고 컴퓨터(110) 내에서 지원될 수 있는 다양한 다른 유형들의 디바이스-특정 서브시스템들 상에 계층화되고, 따라서 상기 서브시스템들과 연관될 수 있음이 인정될 것이다.
USB 모듈(116)은 또한 저장 서브시스템(211A), 시리얼 서브시스템(211B) 및 네트워크 서브시스템(211C)과 각각 인터페이스하는 USB 호스트 저장 서브시스템(212A), USB 호스트 시리얼 서브시스템(212B) 및 USB 호스트 네트워크 서브시스템(212C)을 포함하는 3개의 USB-특정 서브시스템들(212)을 포함한다. USB 호스트 저장 서브시스템(212A), USB 호스트 시리얼 서브시스템(212B) 및 USB 호스트 네트워크 서브시스템(212C)은 USB 대용량 저장 디바이스 클래스, USB ACM 모뎀 디바이스 클래스 및 USB 이더넷 디바이스 클래스를 각각 지원하도록 구성되는 것이 주목된다. USB 이더넷 디바이스 클래스는 임의의 적절한 유형의 USB 이더넷 디바이스 클래스(예를 들어, 표준 USB CDC 이더넷 디바이스 클래스, USB 원격 네트워크 드라이버 인터페이스 명세(Remote Network Driver Interface Specification; RNDIS) 디바이스 클래스 등)를 이용하여 제공될 수 있음이 더 주목된다.
USB 모듈(116)은 또한 USB 호스트 제어기 드라이버(214) 및 USB 호스트 제어기(215)를 포함한다. USB-특정 서브시스템들(212)은 각각 USB 호스트 제어기 드라이버(214)와 인터페이스한다. USB 호스트 제어기 드라이버(214)는 USB 호스트 제어기(215)와 인터페이스한다. USB 호스트 제어기(215)는 주변 접속(120)(예시 실시예에서, 모바일 컴퓨팅 디바이스(130)로의 인터페이스를 제공하는 USB 케이블인)과 인터페이스한다.
특정한 수들 및 유형들의 포괄 서브시스템들(211)에 대하여 주로 도시되고 기술될지라도, 컴퓨터(110)의 커널(115)은 임의의 적절한 수들 및 유형들의 포괄 서브시스템들(이들 중 일부 또는 모두는 USB-특정 서브시스템들 상에 계층화될 수 있음)을 포함할 수 있는 것이 주목된다. 특정한 수들 및 유형들의 USB-특정 서브시스템들(212)(그리고 유사하게, 지원되는 특정한 수들 및 유형들의 USB 디바이스 클래스들)에 대하여 주로 도시되고 기술될지라도, 컴퓨터(110)의 커널(115)은 임의의 적절한 수들 및 유형들의 USB-특정 서브시스템들을 포함할 수 있음(그러므로, 임의의 적절한 수들 및 유형들의 USB 디바이스 클래스들(예를 들어, 더 적거나 더 많은 USB 디바이스 클래스들 등뿐만 아니라 이의 다양한 조합들, 다른 USB 디바이스 클래스들은 여기서 표현되지 않음)을 지원할 수 있음)이 주목된다. 컴퓨터(110)의 커널(115)의 배열이 임의의 적절한 방식으로 수정될 수 있음이 더 주목된다.
도 2에 도시된 바와 같이, 모바일 컴퓨팅 디바이스(130)의 USB 모듈(136)은 모바일 컴퓨팅 디바이스(130)가 컴퓨터(110)에 의해 지원되는(컴퓨터(110)에 의해 제공될 관리형 USB 서비스의 유형에 기초하여 모바일 컴퓨팅 디바이스(130)의 다수의 USB 디바이스 클래스들 사이에서 스위칭하는 것에 대한 지원을 포함함) 다수의 USB 디바이스 클래스들 중 임의의 클래스에서 동작하는 것이 가능하도록 구성되는 다양한 모듈들을 포함한다.
USB 모듈(136)은 저장 서브시스템(231A), 시리얼 포트 서브시스템(231B) 및 네트워킹 서브시스템(231C)을 포함하는 3개의 포괄 서브시스템들(231)을 포함한다. 포괄 서브시스템들(231)은 전문화된, 디바이스-특정 서브시스템들(관리형 USB 서비스 케이퍼빌리티의 다양한 기능들을 제공하는데 이용되는 USB-기반 서브시스템들을 포함하는)의 상부에 계층화되도록 구성되는 것이 인정될 것이다. 즉, 포괄 서브시스템들(231)이 USB 모듈(136)의 일부를 형성하는 것으로 본원에서 도시되고 설명될지라도(명료성을 위해), 상기 포괄 서브시스템들은 USB에 특정되지 않고 컴퓨터(130) 내에서 지원될 수 있는 다양한 다른 유형들의 디바이스-특정 서브시스템들 상에 계층화되고, 따라서 상기 서브시스템들과 연관될 수 있음이 인정될 것이다.
USB 모듈(136)은 또한 저장 서브시스템(231A), 시리얼 포트 서브시스템(231B) 및 네트워킹 서브시스템(231C)과 각각 인터페이스하는 USB 주변 대용량 저장 서브시스템(232A), USB 주변 ACM 모뎀 서브시스템(232B) 및 USB 주변 CDC 이더넷 서브시스템(232C)을 포함하는 3개의 USB-특정 서브시스템들(232)을 포함한다. USB 주변 대용량 저장 서브시스템(232A), USB 주변 ACM 모뎀 서브시스템(232B) 및 USB 주변 이더넷 서브시스템(232C)은 USB 대용량 저장 디바이스 클래스, USB ACM 모뎀 디바이스 클래스 및 USB 이더넷 디바이스 클래스를 각각 지원하도록 구성되는 것이 주목된다.
USB 모듈(136)은 또한 USB 인터페이스 선택기(233), USB 주변 제어기 드라이버(234) 및 USB 주변 제어기(235)를 포함한다.
USB 인터페이스 선택기(233)는 USB 주변 제어기 드라이버(234)와 인터페이스한다. USB 주변 제어기 드라이버(234)는 USB 주변 제어기(235)와 인터페이스한다. USB 주변 제어기(235)는 주변 접속(120)(예시 실시예에서, 컴퓨터(110)로의 인터페이스를 제공하는 USB 케이블인)과 인터페이스한다.
USB 인터페이스 선택기(233)는 사용자 공간(131)의 MA(133)로부터 수신되는 명령들에 응답하여(예를 들어, UA(132)로부터 MA(133)에서 수신되는 국지 명령들에 응답하고/하거나 서비스 관리 기반 구조(170)로부터 MA(133)에서 수신되는 원격 명령들에 응답하여) USB-특정 서브시스템들(232) 사이에서 선택하도록 구성된다. USB 인터페이스 선택기(233)가 USB 주변 제어기 드라이버(234)에 접속됨으로써, USB 인터페이스 선택기(233)에 의해 USB-특정 서브시스템들(232) 중 하나가 선택되면 USB-특정 서브시스템들(232) 중 선택된 것은 주변 접속부(120)를 통하여 컴퓨터(110)와 통신하기 위하여 USB 주변 제어 드라이버(234)에 접속되고, 따라서 USB 주변 제어기(235)에 접속한다.
본원에서 기술되는 바와 같이, MA(133)는 다양한 관리형 USB 서비스들을 지원하기 위해, USB 디바이스 클래스들 사이에서 스위칭하는 것을 포함하여, USB 디바이스 클래스들의 선택을 제어하도록 구성된다. MA(133)는 모바일 컴퓨팅 디바이스(130)를 재시작하지 않고 심지어 런타임 동안에, 임의의 적절한 시간에 USB 디바이스 클래스들 사이를 스위칭하도록 구성될 수 있다. MA(133)는 USB 인터페이스 선택기(233)가 USB 특정 서브시스템들(232) 중 하나를 선택하도록 하기 위해 USB 인터페이스 선택기(233)에 하나 이상의 명령들을 제공하도록 구성된다. 예를 들어, MA(133)는, USB 대용량 저장 디바이스 클래스에서 동작할 모바일 컴퓨팅 디바이스(130)의 구성을 요청하는(또는 USB 대용량 저장 디바이스 클래스에서 모바일 컴퓨팅 디바이스(130)의 동작을 요구하는 관리형 USB 서비스를 요청하는) 하나 이상의 국지 또는 원격 명령들에 응답하여, USB 인터페이스 선택기(233)에 USB 주변 대용량 저장 서브시스템(232A)을 선택하라고 지시함으로써, USB 주변 대용량 저장 서브시스템(232A)을 USB 주변 제어기 드라이버(234)에 결합시키고 모바일 컴퓨팅 디바이스(130)로 하여금 USB 대용량 저장 인터페이스를 주변 접속(120)을 통해 컴퓨터(110)에 노출하도록 할 수 있다. 유사하게, 예를 들어, MA(133)는, USB ACM 모뎀 디바이스 클래스에서 동작할 모바일 컴퓨팅 디바이스(130)의 구성을 요청하는(또는 USB ACM 모뎀 디바이스 클래스에서 모바일 컴퓨팅 디바이스(130)의 동작을 요구하는 관리형 USB 서비스를 요청하는) 하나 이상의 국지 또는 원격 명령들에 응답하여, USB 인터페이스 선택기(233)에 USB 주변 ACM 모뎀 서브시스템(232B)을 선택하라고 지시함으로써, USB 주변 ACM 모뎀 서브시스템(232B)을 USB 주변 제어기 드라이버(234)에 결합시키고 모바일 컴퓨팅 디바이스(130)로 하여금 USB ACM 모뎀 인터페이스를 주변 접속(120)을 통해 컴퓨터(110)에 노출하도록 할 수 있다. 유사하게, 예를 들어, MA(133)는, USB 이더넷 디바이스 클래스에서 동작할 모바일 컴퓨팅 디바이스(130)의 구성을 요청하는(또는 USB 이더넷 디바이스 클래스에서 모바일 컴퓨팅 디바이스(130)의 동작을 요구하는 관리형 USB 서비스를 요청하는) 하나 이상의 국지 또는 원격 명령들에 응답하여, 인터페이스 선택기(233)에 USB 주변 이더넷 서브시스템(232C)을 선택하라고 지시함으로써, USB 주변 이더넷 서브시스템(232C)을 USB 주변 제어기 드라이버(234)에 결합시키고 모바일 컴퓨팅 디바이스(130)로 하여금 USB 이더넷 인터페이스를 주변 접속(120)을 통해 컴퓨터(110)에 노출하도록 할 수 있다.
특정한 수들 및 유형들의 포괄 서브시스템들(231)에 대하여 주로 도시되고 기술될지라도, 모바일 컴퓨팅 디바이스(130)의 커널(135)은 임의의 적절한 수들 및 유형들의 포괄 서브시스템들(이들 중 일부 또는 모두는 USB-특정 서브시스템들 상에 계층화될 수 있음)을 포함할 수 있는 것이 주목된다. 특정한 수들 및 유형들의 USB-특정 서브시스템들(232)(그리고 유사하게, 지원되는 특정한 수들 및 유형들의 USB 디바이스 클래스들)에 대하여 주로 도시되고 기술될지라도, 모바일 컴퓨팅 디바이스(130)의 커널(135)은 임임의 적절한 수들 및 유형들의 USB-특정 서브시스템들을 포함할 수 있음(그러므로, 임의의 적절한 수들 및 유형들의 USB 디바이스 클래스들(예를 들어, 더 적거나 더 많은 USB 디바이스 클래스들 등뿐만 아니라 이의 다양한 조합들, 다른 USB 디바이스 클래스들은 여기서 표현되지 않음)을 지원할 수 있음)이 주목된다. 모바일 컴퓨팅 디바이스(130)의 커널(135)의 배열이 임의의 적절한 방식으로 수정될 수 있음이 더 주목된다.
본원에서 기술되는 바와 같이, 모바일 컴퓨팅 디바이스(130)는 컴퓨터(110)에 관리형 USB 서비스들을 제공하는데 이용될 수 있는 USB 디바이스 클래스들을 지원하도록 구성된다. 더욱이, 모바일 컴퓨팅 디바이스(130)는, 프로세서에 의해 실행될 때, 모바일 컴퓨팅 디바이스(130)로 하여금, 컴퓨터(110)에 대한 관리형 USB 서비스들의 제공을 지원 시에 하나 이상의 프로세스들을 수행하도록 하는 다양한 프로그램들 및 명령들을 저장하도록 구성될 수 있다.
도 3은 모바일 컴퓨팅 디바이스의 USB 디바이스 클래스의 원격 제어를 가능하게 하는 방법의 하나의 실시예를 도시한다.
단계 302에서, 방법 300이 시작된다.
단계 304에서, 복수의 USB 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 모바일 컴퓨팅 디바이스를 구성하라는 요청이 수신된다. 이 요청은 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통해 모바일 컴퓨팅 디바이스에서(예를 들어, 프로세서에서, 관리 에이전트 등에 의해) 수신된다. 상기 요청은 특정 USB 디바이스 클래스(예를 들어, 모바일 컴퓨팅 디바이스를 통해 컴퓨터에 제공될 연관되는 관리형 USB 서비스의 개시 전에 개시될 수 있는)를 이용할 모바일 컴퓨팅 디바이스에 대한 명시적인 요청일 수 있다. 상기 요청은 관리형 USB 서비스를 컴퓨터에 제공할 모바일 컴퓨팅 디바이스에 대한 요청일 수 있고, 여기서 상기 요청은 관리형 USB 서비스를 제공하기 위해서 이용될 USB 디바이스 클래스를 표시할 수 있거나 상기 모바일 컴퓨팅 디바이스는 상기 컴퓨터에 대해 요청되는 관리형 USB 서비스의 유형에 기초하여 이용될 USB 디바이스 클래스를 결정하도록 구성될 수 있다.
단계 306에서, 모바일 컴퓨팅 디바이스를 선택된 USB 디바이스 클래스에서 동작하도록 구성하라는 명령이 개시된다. 상기 명령은 임의의 적절한 방식으로 개시될 수 있다. 하나의 실시예에서, 예를 들어, 모바일 컴퓨팅 디바이스는 상기 요청을 수신하고 연관되는 명령들을 개시하도록 (예를 들어, USB 인터페이스 선택기에 명령들을 송신함으로써 또는 임의의 다른 적절한 방식으로) 구성되는 관리 에이전트(예시로, 도 1 및 도 2에 관련하여 도시되고 기술된 MA(133))를 지원한다.
단계 308에서, 방법 300이 종료된다.
방법 300이 종료하는 것으로서 주로 도시되고 기술될지라도(명료성을 위해) 선택된 USB 디바이스 클래스에서 동작하는 모바일 컴퓨팅 디바이스의 구성에 따라, 다양한 다른 행위들이 취해질 수 있음이(예를 들어, 선택된 USB 디바이스 클래스에서 동작하는 모바일 컴퓨팅 디바이스의 구성 또는 임의의 다른 적절한 행위들을 이용하여 관리형 USB 서비스를 제공함) 주목된다.
도 4는 컴퓨터에 관리형 USB 서비스를 제공하기 위해 모바일 컴퓨팅 디바이스를 이용하는 방법의 하나의 실시예를 도시한다.
단계 402에서, 방법 400이 시작된다.
404에서, 컴퓨터에 제공될 관리형 USB 서비스와 연관되는 메시지가 수신된다. 상기 메시지는 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통해 모바일 컴퓨팅 디바이스에서 수신된다. 메시지는 모바일 컴퓨팅 디바이스에게 관리형 USB 서비스를 컴퓨터에 제공하라는 요청, 컴퓨터 등에 관리형 USB 서비스를 제공할 때 모바일 컴퓨팅 디바이스 및/또는 컴퓨터에 의해 이용되는 하나 이상의 명령들 및/또는 데이터뿐만 아니라 이의 다양한 조합들 중 하나 이상을 포함할 수 있다. 수신될 수 있는 유형들의 메시지들은 본원에서 기술되는 바와 같이, 관리형 USB 서비스 케이퍼빌리티의 실시예들과 함께 제공될 수 있는 관리형 USB 서비스들의 다양한 예들을 고려함으로써 더 양호하게 이해될 수 있다.
단계 406에서, 모바일 컴퓨팅 디바이스를 통하여, 관리형 USB 서비스를 컴퓨터에 제공하는 동작이 개시된다. 상기 동작은 모바일 컴퓨팅 디바이스 상에서 메시지를 프로세싱하고, 모바일 컴퓨팅 디바이스 상에서 프로세싱될 하나 이상의 명령들을 개시하고(예를 들어, 관리형 USB 서비스에 대해 필요한 USB 디바이스 클래스에서 동작하도록 모바일 컴퓨팅 디바이스를 구성하고, 특정한 유형의 접속의 설정을 개시하고, 모바일 컴퓨팅 디바이스로 하여금 네트워크 접속을 통해 통신하도록 하고, 모바일 컴퓨팅 디바이스로 하여금 주변 접속 등을 통해 컴퓨터와 통신하도록 할뿐만 아니라 이의 다양한 조합을 위해), 모바일 컴퓨팅 디바이스의 네트워크 접속을 통해 통신하고(예를 들어, 네트워크 접속(예를 들어, 원격 디바이스 및/또는 임의의 다른 적절한 디바이스로의)을 통해 정보를 송신하고, 네트워크 접속(예를 들어, 원격 디바이스 및/또는 임의의 다른 적절한 디바이스로의)을 통해 정보를 요청 및/또는 수신하는 것 등), 모바일 컴퓨팅 디바이스와 컴퓨터 사이의 주변 접속을 통해 컴퓨터와 통신하는(예를 들어, 모바일 컴퓨팅 디바이스로부터 컴퓨터로 하나 이상의 명령들 및/또는 데이터를 송신하고, 모바일 디바이스에서 컴퓨터로부터 하나 이상의 명령들 및/또는 데이터를 송신하는 것 등) 것뿐만 아니라 이들의 다양한 결합들 중 하나 이상을 포함할 수 있다. 수행될 수 있는 동작들의 유형들은 본원에서 기술되는 바와 같이, 관리형 USB 서비스 케이퍼빌리티의 실시예들과 함께 제공될 수 있는 관리형 USB 서비스들의 다양한 예들을 고려함으로써 더 양호하게 이해될 수 있다.
단계 408에서, 방법 400이 종료된다.
방법(400)이 종료하는 것으로 주로 도시되고 기술될지라도(명료성을 위해), 모바일 컴퓨팅 디바이스를 이용하여 관리형 USB 서비스를 제공하고/하거나 컴퓨터에 하나 이상의 다른 관리형 USB 서비스들을 제공하는 것과 함께 다양한 다른 메시지들이 수신될 수 있고/있거나 동작들이 개시될 수 있음이 주목된다.
방법 400이 컴퓨터에 관리형 USB 서비스를 제공하는 것에 관하여 주로 도시되고 기술될지라도, 방법 400은 모바일 컴퓨팅 디바이스를 이용하여 임의의 다른 적절한 유형의 서비스를 컴퓨터에 제공하는데 이용될 수 있음이 주목된다.
본원에서 기술되는 바와 같이, 관리형 USB 서비스 케이퍼빌리티는 다양한 유형들의 관리형 USB 서비스들이 지원되는 것을 가능하게 하고, 이들 중 6개가 후술된다. 6개의 관리형 USB 서비스들은 본원에서 모바일 컴퓨팅 디바이스(130)가 스마트폰(130)이고 6개의 관리형 USB 서비스들이 기업 환경 내에서 제공되는 상황으로 주로 도시되고 기술될지라도, 상기 6개의 관리형 USB 서비스들은 또한 모바일 컴퓨팅 디바이스(130)가 스마트폰 외의 다른 임의의 적절한 유형의 디바이스이고/이거나 6개의 관리형 USB 서비스들이 기업 환경이 아닌 임의의 다른 적절한 유형의 환경 내에 제공되는 경우에도 또한 지원될 수 있는 것이 주목된다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 인터넷 테더링 서비스를 지원하도록 구성된다.
일반적으로, 인터넷 테더링은 스마트폰(130)의 접촉된 컴퓨터(110)로의 WWAN 접속(2.5G 셀룰러 접속, 3G 셀룰러 접속 등)의 확장이다. 이것은 네트워크 접속에 더욱 전형적인 매체(이더넷, WiFi 등)가 컴퓨터에서 이용 가능하지 않을 때 컴퓨터(110)가 인터넷에 액세스할 수 있게 한다(예를 들어, 이동 중일 때, 그와 같은 유선 및 국지 무선 매체가 이용 가능하지 않으면, 컴퓨터(110) 상의 문제에 응답하여 이는 그와 같은 유선 및 국지 무선 매체가 인터넷 접속에 대해 이용 가능하지 않음을 렌더링함).
하나의 실시예에서, 관리형 USB 인터넷 테더링 서비스는 스마트폰(130)을 USB 이더넷 디바이스로서 이용하고, 따라서 스마트폰(130)은 USB 이더넷 디바이스 클래스에서 동작하도록 구성되어서, 스마트폰(130)이 USB 이더넷 인터페이스를 컴퓨터(110)에 노출하게 된다.
하나의 실시예에서, 관리형 USB 인터넷 테더링 서비스는 네트워크 어드레스 변환(NAT) 및 동적 호스트 제어 프로토콜(Dynamic Host Control Protocol; DHCP) 서버 케이퍼빌리티를 가지는 라우터(router)로서 동작하도록 스마트폰(130)을 구성함으로써 제공되고, 이로 인해 컴퓨터(110)가 스마트폰(130)과, 따라서 네트워크 접속(140)을 통해 액세스 네트워크(150)와 통신하는 것이 가능해져서, 상기 컴퓨터는 통신 네트워크(160)(예를 들어, 인터넷)와 통신할 수 있게 된다. 하나의 실시예에서, iptables 프레임워크는 NAT 기능을 제공하는데 이용되고, 이는 IP 마스크레이딩(masquerading)을 가능하게 한다. 하나의 실시예에서, dnsmasq 유틸리티는 개인 IP 어드레스를 컴퓨터(110)에 발행하고(즉, DHCP 서버 기능을 제공함) DNS 세팅들을 스마트폰(130)이 통신하는 WWAN 액세스 포인트(예를 들어, 액세스 네트워크(150)의 액세스 포인트)로부터 컴퓨터(110)로 중계한다. 하나의 실시예에서, 경량의 웹 서버(예를 들어, lighttpd에 의한)를 이용하면, 컴퓨터(110)는 웹 기반 인터페이스를 통해 스마트폰(130) 상의 파일들에 액세스할 수 있다(예를 들어, SSH 서버 데몬(daemon)의 활성화에 의해, 컴퓨터(110)는 스마트폰(130)에 로그인할 수 있고, 더욱이, 암호화된 인터페이스를 이용하여 파일들을 스마트폰(130)에 그리고 스마트폰(130)으로부터 전송할 수 있음).
적어도 일부 구현들에서, 관리형 USB 인터넷 테더링 서비스는 컴퓨터(110) 상에 어떠한 소프트웨어의 설치도 요구하지 않아야 하는데, 적어도, 관리형 USB 인터넷 테더링 서비스는 단지 USB 이더넷 디바이스 클래스를 위한 드라이버를(컴퓨터(110) 상에서 이용 가능할 것으로 예상되는 USC 이더넷 드라이버에 의해 커버되는) 사용하기 때문이다. 예를 들어, 컴퓨터(110)가 리룩스 계열 컴퓨터인 경우, 아마도 컴퓨터(110) 상에 어떠한 소프트웨어의 설치도 필요하지 않는데, 왜냐하면 리눅스 USB 이더넷 드라이버는 표준 USB 이더넷 디바이스 클래스를 지원하기 때문이다.
적어도 일부 구현들에서, 관리형 USB 인터넷 테더링 서비스는 컴퓨터(110) 상에 새 소프트웨어의 설치를 요구할 수 있다. 예를 들어, 일부 마이크로소프트 운영 시스템들(예를 들어, 윈도 XP 및 윈도 7)은 공식 USB CDC 이더넷 디바이스 클래스를 지원하지 않고, 대신에 USB RNDIS라 칭하는 독점 표준(proprietary standard)을 지원한다. 결과적으로, 컴퓨터(110)가 그와 같은 윈도 운영 시스템을 이용하고, 스마트폰(130)이 안드로이드 계열 스마트폰이고 안드로이드 계열 스마트폰 상의 USB 이더넷 드라이버가 USB CDC 이더넷 디바이스 클래스 및 USB RNDIS 표준 모두를 지원하도록 구성될 수 있으나 안드로이드 계열 스파트폰 상의 RNDIS 드라이버가 컴퓨터 상의 디폴트 윈도 RNDIS 드라이버와 통신하도록 구성될 수 없는 경우, 스마트폰(130)과 컴퓨터(110) 사이에서의 USB 이더넷 네트워킹이 가능하도록 하기 위해, 표준 USB CDC 이더넷 드라이버가 컴퓨터(110)에 있는 윈도우 상에 설치될 수 있다. 관리형 USB 인터넷 테더링 서비스를 지원 및/또는 보충하기 위해 컴퓨터(110) 상에 새 소프트웨어를 설치할 것이 요구되거나 바람직한 경우, 임의의 적절한 유형(들)의 소프트웨어가 임의의 적절한 시기에 컴퓨터(110) 상에 설치될 수 있음이 주목된다.
관리형 USB 인터넷 테더링 서비스의 실시예들은 인터넷 테더링을 제공하는 다른 방법들에 비해 다양한 장점들을 제공하는 것이 주목된다. 예를 들어, 인터넷 테더링은 WiFi 액세스 포인트로서 동작하도록 스마트폰을 구성함으로써 제공될 수 있다; 그러나, 이 방법은 스마트폰의 배터리의 전하를 소모할 수 있는데 왜냐하면 일반적으로 WiFi는 전력 소모를 최소화하도록 설계되지 않기 때문이다. 예를 들어, 인터넷 테더링은 컴퓨터에 블루투스 인터페이스를 노출하도록 스마트폰을 구성함으로써 제공될 수 있고, 컴퓨터는 그 후에 다이얼업 네트워킹(dialup networking)에 이를 이용할 수 있다; 그러나, 이 방법은 스마트폰을 우회하여 컴퓨터를 인터넷에 직접 연결함으로써, 컴퓨터와 스마트폰 사이의 애플리케이션들의 동기화를 방해한다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 USB VPN 테더링 서비스를 지원하도록 구성된다.
일반적으로, 인터넷 테더링은 컴퓨터(110)로부터 외부 세계로의 접속을 제공하는 반면에, 사용자들이 또한 보안 접속들을 통해 원격 디바이스들에 액세스할 필요가 있거나 원하는 경우들이 많이 있다(예를 들어, 사용자 인증 및 데이터 암호에 의해 보안이 된 VPN 접속을 통해 자신의 기업 네트워크에 액세스하는 기업 사용자). 일부 기존 VPN 기술들은 IPSec, 포인트-대-포인트 터널링 프로토콜(Point-to-Point Tunneling Protocol; PPTP) 및 SSH를 포함한다. 웹 브라우저와 함께 개방될 수 있고 소프트웨어 클라이언트의 설치 및 구성을 요구하지 않는 TLS/SSL 터널들은 VPN 접속들을 제공하는데 이용될 수 있음이(비록 상기 터널들이 전형적으로 웹 기반 애플리케이션들만을 지원할지라도) 더 주목된다. TLS/SSL 터널들 외의 기술들을 이용하는 원격 기업 액세스에 대한 기존 솔루션들에서, VPN 클라이언트는 기업 사용자에게 제공되는 선-이미지화 컴퓨터(pre-imaged computer)에 포함되고, 이와 같으므로, 이 기술들은 기업 사용자가 기업 사용자에게 제공되는 선-이미지화 컴퓨터에 액세스할 때에만 작동된다. 결과적으로, 기업 액세스는 기업 사용자에게 제공되는 선-이미자화 컴퓨터가 파손되거나 범위 내에 있지 않은 경우 가능하지 않고, 더욱이, 심지어 기업 사용자가 이용할 수 있는 임의의 다른 컴퓨터(예를 들어 친구들의 또는 인터넷 카페에서)라도 기업 액세스에 사용될 수 없는데 왜냐하면 이 컴퓨터들은 적절한 구성을 가지는 필요한 VPN 클라이언트를 포함하지 않기 때문이다. 관리형 USB VPN 테더링 서비스의 다양한 실시예들은 VPN 액세스와 관련되는 이 문제들 및 다른 문제들을 해결할 수 있다.
하나의 실시예에서, 관리형 USB VPN 테더링 서비스는 스마트폰(130)을 USB 이더넷 디바이스로서 이용하고, 따라서 스마트폰(130)은 USB 이더넷 디바이스 클래스에서 동작하도록 구성되어서, 스마트폰(130)이 USB 이더넷 인터페이스를 컴퓨터(110)에 노출하게 된다.
관리형 USB VPN 테더링 서비스(관리형 USB 인터넷 테더링 서비스와 유사한)에 의해 스마트폰(130)의 사용자는 임의의 컴퓨터(예를 들어, 사용자에게 제공되는 컴퓨터(110) 또는 임의의 다른 컴퓨터)를 스마트폰(130)에 접속할 수 있다; 그러나, 컴퓨터(110)가 일반 인터넷에 접속하는 관리형 USB 인터넷 테더링 서비스와는 달리, 관리형 USB VPN 테더링 서비스는 컴퓨터(110)가 스마트폰(130) 내에 설치된 VPN 클라이언트를 이용하여 기업의 VPN 게이트웨이에 접속할 수 있게 한다(여기서 스마트폰(130) 내의 VPN 클라이언트는 컴퓨터(110)로부터 인증 및 암호 기능들을 오프로드(offload)함).
관리형 USB VPN 테더링 서비스는 스마트폰(130) 상에서 인보킹(invoking)된다. 관리형 USB VPN 테더링 서비스는 임의의 적절한 방식으로 스마트폰(130) 상에서 인보킹될 수 있다. 예를 들어, 관리형 USB VPN 테더링 서비스는 UA(132) 및 MA(133)를 통해 국지적으로 인보킹될 수 있는데, 여기서 사용자는 UA(132)를 통해 관리형 USB VPN 테더링 서비스를 선택하고 필요한 인증 증명서(authentication credential)들을 제공하여 스마트폰(130)과 기업 사이에 VPN 터널을 설정한다. 예를 들어, 관리형 USB VPN 테더링 서비스는 네트워크 접속(140)을 통해 스마트폰(130)에서 수신되는 원격 명령들이 스마트폰(130) 상에서 관리형 USB VPN 테더링 서비스를 선택할 수 있도록 프로세싱되는 MA(133)를 통해 원격으로 인보킹될 수 있고, 지방 사용자 또는 원격의 기업 관리자는 필요한 인증 증명서들을 제공하여 스마트폰(130)과 기업 사이에 VPN 터널을 수립할 수 있다. 사용자는 USB 케이블을 이용하여 스마트폰(130)을 컴퓨터(110)에 접속하고 컴퓨터(110)는 스마트폰(130)을 USB 이더넷 디바이스로 인지한다. 스마트폰(130) 상에서의 dnsmasq 유틸리티는 컴퓨터(110)에 자신의 기업 IP 어드레스(기업 네트워크의 가장자리에 있는 VPN 게이트웨이로부터 획득되는) 뿐만 아니라 기업 네트워크와 연관되는 다른 네트워크 파라미터들(예를 들어, DNS 서버의 식별자, WINS 서버의 식별자 등)을 중계한다. 스마트폰(130)은 컴퓨터(110)에 대한 디폴트 라우터로서 동작하도록 구성되고, 따라서 컴퓨터(110)는 자신의 트래픽 모두를 스마트폰(130)에 보내고, 상기 스마트폰(130)에서 상기 트래픽이 암호화되고 현재 스마트폰(130)을 서비스하고 있는 네트워크 접속(140)(예를 들어, WWAN, WLAN, 이더넷 등)을 통해 송신된다.
하나의 실시예에서, 관리형 USB VPN 테더링 서비스는 스마트폰(130) 상에서 이중 접속을 방지하는 경향성이 있는 방식으로 제공된다(예를 들어, 일반적인 컴퓨터로의 VPN 액세스를 개방하는 것은 이론적으로 기업 네트워크를 이중 접속과 연관되는 위협들로 노출시키는 것을 증가시킬 수 있고, 컴퓨터는 자체의 다른 네트워크 인터페이스들 중 하나로부터, 컴퓨터의 하드 디스크에 상주하는 손상 파일들로부터, 비통제 접속(rogue connection)을 중계함 등등). 하나의 실시예에서, 예를 들어, 이중 접속을 방지하기 위해, MA(133)는 관리형 USB VPN 테더링 서비스가 가능할 때 컴퓨터(110)의 모든 네트워크 트래픽을 강제로 스마트폰(130)을 통하게 하도록 구성된다. 하나의 실시예에서, 예를 들어, 스마트폰(130)이 접촉되는 컴퓨터(110)와 관계없이 스마트폰(130)에 설치되고 업데이트되는 디스크 스캔 소프트웨어는 스마트폰(130)을 통해 기업 네트워크에 액세스하는 것으로부터 안전하지 않은 소프트웨어를 가지는 컴퓨터들을 배제할 수 있다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 USB 스마트카드 서비스를 지원하도록 구성된다.
일반적으로, 사용자 이름 및 패스워드에 기초하는 종래의 로그온 절차와 비교하면, 스마트 카드는 "사용자가 알고 있는 어떤 것"에 대한 요건(예를 들어, 사용자 이름 및 패스워드, 개인 식별 번호 등)을 "사용자가 가지고 있는 어떤 것"(즉, 스마트 카드)에 대한 요건과 합함으로써 원격 네트워크 액세스를 위한 사용자 인증 절차의 견고성(robustness)을 증가시킨다. 스마트 카드 내에 저장되어 있는 암호 증명서들은 호스트 OS가 로딩되고 난 후의 사용자 로그온에 필요할 뿐만 아니라 자체의 수행을 가능하게 하는 부트-업 절차의 초기에도 필요하다. 그러나, 사용자 로그온을 위한 스마트 카드 인증은 단독으로는, 컴퓨터를 보안하는데 충분하지 않은데, 왜냐하면 컴퓨터 하드 디스크는 자신을 다른 컴퓨터에 부착함으로써 판독될 수 있기 때문이다. 이와 같으므로, 풀 프루프 보안(foolproof security)은 부팅뿐만 아니라 전체 디스크 암호화를 위해 스마트 카드 인증을 이용할 것을 요구한다.
하나의 실시예에서, 관리형 USB 스마트 카드 서비스는 스마트폰(130)을 USB 이더넷 디바이스로서 이용하고, 따라서 스마트폰(130)은 USB 이더넷 디바이스 클래스에서 동작하도록 구성되어서, 스마트폰(130)이 USB 이더넷 인터페이스를 컴퓨터(110)에 노출하게 된다.
하나의 실시예에서, 관리형 USB 스마트 카드 서비스는 스마트폰(130)을 네트워크 접속성이 구비된 스마트 카드로서 구성하고, 사용자는 컴퓨터(110)가 부트업(boot-up)되도록 그리고 로그온 절차가 진행되도록 스마트폰(130)을 USB 케이블을 통해 컴퓨터(110)에 접속한다. 관리형 USB 스마트 카드 서비스는 또한 컴퓨터(110)의 하드 디스크의 암호화를 위해 스마트폰(130)에 암호화 키들의 레포지토리(repository)를 만든다(스마트 카드 표준들에 부합하는 하나의 구현은, 선-부트 인증 절차로 시작하여, 상이한 풀-디스크(full-disk) 암호 솔루션들과 상호 동작할 수 있음이 주목됨).
관리형 USB 스마트 카드 서비스는 다양한 다른 구성 선택사양들을 이용하여 제공될 수 있다. 하나의 실시예에서, 예를 들어, 스마트카드 교육을 위한 오픈 소스 간소화 운영 시스템(Simple Operating System for Smartcard Education; SOSSE)은 스마트폰(130)에서 스마트카드의 소프트웨어 구현에 이용되고, 여기서 SOSSE 코드는 스마트 카드 관리 명령들이 기원하는 서비스 관리 시스템(171)과의 원격 통신을 위해 필요한 확장자들로 스마트폰(130)의 MA(133)에 임베딩된다. 하나의 실시예에서, 예를 들어, 컴퓨터(110)는 전용 드라이버의 설치 후에, USB 이더넷 링크를 통한 TCP 접속을 이용하여 스마트 카드와 통신한다. 하나의 실시예에서, 예를 들어, 스마트 카드 삽입들 및 추출들의 키-스트로크 시퀀스 에뮬레이션을 위해 컴퓨터(110) 내에 보조 키보드 드라이버가 설치된다.
관리형 USB 스마트 카드 서비스는 기존 스마트 카드 구현들에 비해 많은 장점들을 제공한다. 컴퓨터(110)가 도난이 되었으나 스마트카드(즉, 스마트폰(130))가 도난이 되지 않으면, 컴퓨터(110)의 하드 디스크 컨텐츠는 컴퓨터(110)로부터 판독될 수 없다. 컴퓨터(110) 및 스마트 카드(즉, 스마트폰(130)) 모두가 도난이 되면, IT 관리자는 스마트폰(130)이 네트워크에 다시 접촉될 때 스마트 카드 보안 정보(예를 들어, 디스크 암호 키들 및 인증 증명서들)를 원격으로 폐기할 수 있고, 이로 인해 도둑이 스마트 카드(즉, 스마트폰(130))를 소유하고 있을 때조차도 컴퓨터(110)의 하드 디스크로의 액세스가 차단된다. 이 경우에 컴퓨터(110)의 하드 디스크 컨텐츠는 반드시 영구적으로 상실되는 것은 아니다(예를 들어, IT 관리자가 디스크 암호 키들을 원격으로 폐기하기 전에 이 암호들을 저장할 수 있고, 그 후에 컴퓨터(110)의 하드 디스크를 되찾는 경우에 이 암호들을 복구할 수 있기 때문). 이는 원 스마트폰(110)을 되찾지 않을 때조차도 마찬가지인데, 왜냐하면 이후에 컴퓨터(110)에 대한 스마트 카드로서 이용될 수 있는 상이한 스마트폰에서 동일한 키들이 설치될 수 있기 때문이다. 자체의 사용에 따라 암호 키들의 복제 및 원격 저장에는 상이한 규정들이 적용될 수 있음(예를 들어, 전형적으로, 암호 키들의 복제는 허용되지만 인증 키들의 복제는 허용되지 않음)이 주목된다.
관리형 USB 스마트 카드 서비스를 제공하기 위해 USB 스마트 카드 클래스 대신 USB 이더넷 클래스를 이용하는 것에 관하여 본원에서 주로 도시되고 기술될지라도, 하나의 실시예에서 관리형 USB 스마트 서비스는 USB 스마트 카드 클래스를 이용하여 제공될 수 있음이 주목된다. 그러나, USB 스마트 카드 디바이스 클래스 대신 USB 이더넷 디바이스 클래스를 이용함으로써 안전한 원격 액세스를 위하여(예를 들어, 원격 기업 액세스를 위하여) 관리형 USB VPN 테더링 서비스와 함께 관리형 USB 스마트 카드 서비스를 이용하는 것이 가능하다는 것이 주목된다. 더욱이, USB 스마트 카드 클래스는 단지 카드 판독기들을 지원하지만, 반면에 USB 이더넷 디바이스 클래스를 이용하면 컴퓨터(110)에 대한 스마트 카드 전체(암호 키들 및 증명서들을 포함함)가 스마트폰(130)에서 예시되는 것이 가능해짐으로써 컴퓨터(110)에 강화된 보호를 제공하고, 이로 인해 스마트 카드는 결과적으로 스마트폰(130)에 의해 지원되는 네트워크 접속(140)을 통해 암호 키들 및 증명서를 설치하고 제거할 수 있는 IT 관리자에 의해 원격으로 제어될 수 있게 된다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 USB 시리얼 콘솔 서비스를 지원하도록 구성된다.
일반적으로, 컴퓨터 상의 문제들을 원격으로 고장 수리하기 위해, 기술자는 원격에서 컴퓨터에 로그인할 수 있어야만 한다. 결과적으로, 문제가 컴퓨터로의 네트워크 접속을 중단시키는 경우, 기술자는 컴퓨터를 원격에서 고장 수리할 수 없다. 많은 컴퓨터들 및 대부분의 네트워크 장비(예를 들어, 라우터들, 스위치들 등)는 기능 네트워킹 스택(stack) 및 무거운 네트워크 기반 구조를 요구하지 않는 시리얼-콘솔 액세스를 지원하는 점이 주목된다. 원격 시리얼 콘솔 액세스에 대한 셋업 시에, 시리얼 콘솔은 시리얼 콘솔 서버에 접속되고, 이는 결국 원격 섹션(예를 들어, 텔넷, SSH 세션 등)을 통해 원격으로 액세스된다. 그러나, 이 셋업들은 컴퓨터 또는 네트워크 장비가 도달할 수 없게 만드는 네트워크 문제들이 또한 시리얼 콘솔 서버로의 액세스를 막을 때 비효율적이다.
하나의 실시예에서, 관리형 USB 시리얼 콘솔 서비스는 스마트폰(130)을 USB CDC ACM 디바이스로서 이용하고, 따라서 스마트폰(130)은 USB CDC ACM 디바이스 클래스에서 동작하도록 구성되어서, 스마트폰(130)이 USB ACM 인터페이스를 컴퓨터(110)에 노출하게 된다.
관리형 USB 시리얼 콘솔 서비스는 USB 케이블을 통해 컴퓨터(110)에 접속될 때, 스마트폰(130)이 컴퓨터(110)에 시리얼 콘솔 단말기로서 보이게끔 한다. 관리형 USB 시리얼 콘솔 서비스는, 스마트폰(130)이 컴퓨터(110)에 대한 시리얼 콘솔 단말기로서 동작하는 것을 가능하게 함으로써, 컴퓨터(110)의 능력과는 관계없이 통신 네트워크를 통해 시리얼 콘솔로의 대역외 액세스가 통신하는 것이 가능하다. USB CDC ACM은 모든 모뎀 제어 신호들에 대해 전적으로 지원하는 USB 시리얼 포트를 지정한다. 스마트폰(130)의 커널(135)은 적어도 USB CDC ACM 클래스의 서브세트를 구현하는 USB 주변 ACM 모델 서브시스템(232B)을 포함한다. USB 주변 ACM 모뎀 서브시스템(232B)은 또한 모뎀 제어 신호들이 없는 원(raw) 시리얼 포트로서 구성될 수 있다(이 모드는 리눅스 시스템들에 대한 시리얼 콘솔의 동작에 충분한 반면에, ACM 모드는 마이크로소프트 윈도 시스템들에 시리얼 포트 액세스하는데 필요할 수 있음이 주목됨).
컴퓨터(110)가 리룩스 또는 유닉스 OS를 운영할 때, 일부 시스템 파일들(예를 들어, etc/inittab)의 구성은 지정된 USB 시리얼 포트에 대한 로그인 프로세스가 가능하도록 하기 위해 미리 커스터마이징(customizing)될 필요가 있음이 주목된다. 이 경우에, 일단 스마트폰(130)이 시리얼 콘솔 단말기로서 이용 가능하도록 구성되면, IT 관리자는 스마트폰(130)의 원격 데이터 접속(172)을 통해 콘솔에 로그인할 수 있다. 관리형 USB VPN 테더링 서비스가 또한 구현되는 경우, 로그인 세션은 암호화된다. 이 결과로서 심지어 정규 네트워크 접속이 컴퓨터(110)에서 이용 가능하지 않을 때조차도 항상 설정 준비가 되어 있는 컴퓨터(110)에 대역외 보안 접속된다.
USB 케이블이 또한 컴퓨터(110)로부터의 전력을 스마트폰(130)에 공급하므로, 시리얼 콘솔 로그인은 컴퓨터(110)가 켜져 있을 때에는 항상 가능하고, 스마트폰(130)은 IP 접속하며, 컴퓨터(110) 및 스마트폰(130)는 USB 케이블에 의해 접속되는 것이 주목된다.
전부는 아닐지라도 대부분의 경우에, 새 컴퓨터 지원 USB, 레거시(legacy) 네트워크 장비는 종래의 RS-232 시리얼 포트들만을 지원하는 경향이 있음이 주목된다. 그러나, USB를 통하여 RS-232 시리얼 포트들을 스마트폰(130)으로 접속하는 것은 어려운데 왜냐하면 네트워크 장비에 접촉되는 시리얼-대-USB 어댑터는 USB를 통해 디바이스 측 인터페이스에 노출되어(스마트폰(130)과 마찬가지로) 두 USB 디바이스들을 서로 접속하는 것이 가능하지 않기 때문이다. 하나의 실시예에서, 종래의 RS-232 시리얼 포트만을 지원하는 레거시 네트워크 디바이스에 의한 관리형 USB 시리얼 콘솔 서비스의 이용은 USB CDC ACM 애플리케이션들을 지원하도록 구성되는 USB 시리얼 중계기(relay)를 이용함으로써 제공될 수 있고, 여기서 시리얼 USB 중계기는 두 USB 디바이스들을 접속하고 두 USB 디바이스들 사이에서 시리얼 포트 데이터를 중계한다. 이 경우에, USB CDC ACM 애플리케이션들을 지원하도록 구성되는 USB 시리얼 중계기는 임의의 적절한 방식으로(예를 들어, 컴퓨터에서의 배경 프로세스 등) 제공될 수 있다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 USB 대용량 저장 서비스를 지원하도록 구성된다.
스마트폰(130)은 USB 대용량 저장 디바이스로서 구성될 때, 컴퓨터(110)에 부착되는 플래시 디스크 드라이브 역할을 한다.
하나의 실시예에서, 관리형 USB 대용량 저장 서비스는 스마트폰(130)을 USB 대용량 저장 디바이스로서 이용하고, 따라서 스마트폰(130)은 USB 대용량 저장 디바이스 클래스에서 동작하도록 구성되어서, 스마트폰(130)이 USB 대용량 저장 인터페이스를 컴퓨터(110)에 노출하게 된다.
하나의 실시예에서, 관리형 USB 대용량 저장 서비스는 스마트폰(130)의 SD 카드 상에 파티션을 생성하고 스마트폰(130)의 SD 카드 상의 파티션을 스마트폰(130) 상의 USB 대용량 저장 디바이스로 매핑함으로써 제공된다. 하나의 그와 같은 실시예에서, 스마트폰(130)의 MA(133)는 데이터 파일들을 스마트폰(130) 상의 매핑된 파티션 및 기업 네트워크의 하나 이상의 기업 서버들 사이에서 양 방향으로 이동하도록 구성된다(예를 들어, 인터페이스(138)를 통해 그리고 네트워크 모듈(137)을 통해). 결과적으로, 스마트폰(130)은 컴퓨터(110)에게 기업 네트워크 내의 가상 네트워크 디바이스로서 보임으로써 데이터는 스마트폰(130)을 통해 기업 네트워크와 컴퓨터(110) 사이에서 교환될 수 있게 된다. 예를 들어, 데이터는 원격 데이터 접속(172)을 통해 기업 네트워크로부터 스마트폰(130)으로 전송되고 그 후에 주변 접속(120)을 통해 스마트폰(130)으로부터 컴퓨터(110)로 전송될 수 있다. 유사하게, 예를 들어, 데이터는 주변 접속(120)을 통해 컴퓨터(110)로부터 스마트폰(130)으로 전송되고 그 후에 원격 데이터 접속(172)을 통해 스마트폰(130)으로부터 기업 네트워크로 전송될 수 있다. 전송되는 데이터는 임의의 적절한 유형들의 데이터를 포함할 수 있음이 인정될 것이다. 예를 들어, 전송되는 데이터는 기업 IT 관리자들이 기업 네트워크로부터 컴퓨터(110)로 제공하고자 하는 보안 데이터(예를 들어, 소프트웨어 패치들, 드라이브 백업들 등) 및 컴퓨터(110)의 사용자가 컴퓨터(110)로부터 기업 네트워크로 송신하고자 하는 사용자 데이터 등을 포함할 수 있다.
적어도 일부 실시예들에서, 관리형 USB 대용량 저장 서비스는 컴퓨터(110) 와 기업 네트워크의 기업 서버 사이에서의 데이터 교환들을 위한 강화 데이터 전송 프리미티브(primitive)들을 이용함으로써, 데이터 교환들(통상적으로 두 엔드포인트들 사이의 직접적인 IP 접속을 요구하는)은 다음과 같이 2개의 타임 시프트(time shift)형 단계들로 단계화될 수 있다: (1) 제 1 단계에서, 컴퓨터(110) 및 스마트폰(130)은 인터넷 접속의 이용 가능성과는 관계 없이 컨텐츠를 교환하고, (2) 제 2 단계에서, 스마트폰(130) 및 기업 서버는 컴퓨터(110)가 켜져 있거나 스마트폰(130)에 접촉되든지 아니든지 간에 컨텐츠를 교환한다. 이 방식에서, 기업의 IT 조직은 컴퓨터(110)로/로부터 컨텐츠를 푸쉬/풀(push/pull)하기 위해 심지어 컴퓨터(110)가 켜져 있지 않거나 스마트폰(130)에 접속되어 있지 않을 때조차도, 스마트폰(130) 상의 매핑된 파티션을 이용할 수 있다.
하나의 실시예에서, 관리형 USB 서비스 케이퍼빌리티는 관리형 USB 부팅 서비스를 지원하도록 구성된다.
하나의 실시예에서, 관리형 USB 부팅 서비스는 스마트폰(130)을 USB 대용량 저장 디바이스로서 이용하고, 따라서, 스마트폰(130)은 USB 대용량 저장 디바이스 클래스에서 동작하도록 구성된다.
관리형 USB 부팅 서비스는, 주변 인터페이스(120)를 통해 스마트폰(130)으로부터 컴퓨터(110) 부팅을 제공하기 위해, 스마트폰(130)이 단순히 일반 USB 플래시 드라이브로서 이용되지 않고(관리형 USB 대용량 저장 서비스가 이용되는 경우와 같이) 오히려 보다 특정한 부팅 가능 USB 플래시 디스크 드라이브로서 이용되는 것을 가능하게 한다. 관리형 USB 대용량 저장 서비스와 함께 기술된 바와 같이, 관리형 USB 대용량 저장 서비스는 스마트폰(130)의 SD 카드 상에 파티션을 생성하고 스마트폰(130)의 SD 카드 상의 파티션을 스마트폰(130) 상의 USB 대용량 저장 디바이스로 매핑함으로써 제공된다. 관리형 USB 부팅 서비스는 그 후에 스마트폰(130) 상의 매핑된 파티션을 부팅 가능 부트 섹터로 포맷하고 스마트폰(130) 상의 매핑된 파티션을 OS 파일들로 로딩함으로써, 스마트폰(130)(USB 대용량 저장 디바이스로서 구성되는)을 단지 정규 USB 플래시 드라이브가 아닌, 부팅 가능 USB 플래시 드라이브로서 이용하는 것이 가능하게 된다. 적어도 하나의 실시예에서, 컴퓨터(110)가 USB 디바이스로부터의 부팅을 지원하고(대부분의 컴퓨터들은 그와 같은 케이퍼빌리티를 지원함), 스마트폰(130)이 엄밀한 USB 타이밍을 지원할 것이 기대된다(왜냐하면 부팅 프로세스를 구동하는 컴퓨터(110)의 컴퓨터 BIOS는 역으로 일부 스마트폰 USB 주변기기들의 소프트웨어 구현들에서 드물지 않은 지연들 및 지터(jitter)들에 민감하기 때문임).
하나의 실시예에서, 스마트폰(130)을 부팅 컴퓨터(110)에 대한 부팅 가능 USB 플래시 드라이브로서 이용하는 것은 컴퓨터가 스마트폰(130)으로부터 부팅 코드를 검색할 수 있도록 함으로써 수행된다. 하나의 실시예에서, 예를 들어, 부팅 코드는 컴퓨터(110)의 컴퓨터 BIOS가 스마트폰(130)의 SD 카드로부터 부팅 코드를 검색할 때 다음의 경로를 따른다(여기서, 경로의 일부 요소들은 도 1 또는 도 2에 도시되지 않음): 스마트폰(130)의 플래시 저장소(부팅 가능 섹터, 부트 로더(Boot Loader), OS 파일들 및 일반 저장소를 포함하는) <--> 스마트폰(130)의 디스크 서브시스템 <--> 스마트폰(130)의 USB 모듈(136) <--> 주변 접속(120)(즉, USB 케이블) <--> 컴퓨터(110)의 USB 호스트 제어기(215) <--> 컴퓨터(110)의 BIOS USB 대용량 저장 드라이버 <--> 컴퓨터(110)의 부트 옵션 선택기 <--> 컴퓨터(110)의 BIOS. 스마트폰(130)의 디스크 서브시스템 내에서, 경로는: 블록 디바이스 드라이버(플래시) <--> 블록 디바이스 가상화 계층(virtualization layer) <--> 파일 시스템(예를 들어, JFFS2) <--> 디스크 캐시 <--> 파일 시스템 가상화 계층(예를 들어, VFS)을 포함하는 것이 주목된다.
하나의 실시예에서, 스마트폰(130)을 부팅 가능 USB 플래시 드라이브로서 이용하는 컴퓨터(110)의 부팅 이후에, 컴퓨터(110)는 다양한 기능들을 수행하기 위하여 스마트폰으로 애플리케이션 액세스를 행한다. 하나의 실시예에서, 예를 들어, 컴퓨터(110)가 OS의 로딩을 끝마친 후에, 스마트폰(130)의 SD 카드로 애플리케이션 액세스하기 위한 데이터 경로는 다음과 같다(여기서 경로의 일부 요소들은 도 1 또는 도 2에 도시되지 않음): 컴퓨터(110)의 사용자 공간(111)에서의 일반 프로그램 <--> 컴퓨터(110)의 디스크 서브시스템 <--> 컴퓨터(110)의 USB 모듈(116) <--> 주변 접속(120)(즉, USB 케이블) <--> 스마트폰(130)의 USB 모듈(136) <--> 스마트폰(130)의 디스크 서브시스템 <--> 스마트폰(130)의 플래시 저장소(부팅 가능 섹터, 부트 로더, OS 파일들 및 일반 저장소를 포함함). 컴퓨터(110)의 디스크 서브시스템 내에서 경로는, 파일 시스템 가상화 계층(예를 들어, VFS) <--> 디스크 캐시 <--> 파일 시스템(예를 들어, Ext3) <--> 블록 디바이스 가상화 계층 <--> 블록 디바이스 드라이버 섹터 <--> 블록 디바이스 드라이버(vSCSI)를 포함하는 것이 이 주목된다. 스마트폰(130)의 디스크 서브시스템 내에서 경로는: 파일 시스템 가상화 계층(예를 들어, VFS) <--> 디스크 캐시 <--> 파일 시스템(예를 들어, JFFS2) <--> 블록 디바이스 가상화 계층 <--> 블록 디바이스 드라이버(플래시)를 포함하는 것이 더 주목된다.
하나의 실시예에서, 관리형 USB 부팅 서비스는 커스터마이징(customizing)된 OS가 스마트폰(130) 상의 매핑된 파티션으로부터 컴퓨터(110) 상으로 로딩될 수 있게 한다. 커스터마이징된 OS는 임의의 적절한 기능들에 대하여 커스터마이징될 수 있다. 하나의 실시예에서, 예를 들어, 커스터마이징된 OS는 컴퓨터(110) 상의 다양한 문제들(예를 들어, 파손 또는 고장이 난 하드 디스크 드라이브들, 바이러스 감염들, 손상된 운영 시스템들 등뿐만 아니라 이들의 다양한 도합들과 같은 문제들)을 처리하기 위해 사용자에게 강력한 툴을 제공하는 다양한 진단 피처(feature)들을 포함하도록 커스터마이징될 수 있다.
하나의 실시예에서, 스마트폰(130)을 통해 부트 컴퓨터(110)에 관리형 USB 부팅 서비스를 이용한 후에, 관리형 USB VPN 테더링 서비스가 이용될 수 있어서, 부팅된 컴퓨터(110)가 보안 네트워크로의 보안 접속(예를 들어, 기업 네트워크로의 VPN 접속)을 자동으로 수립할 수 있게 된다. 보안 접속은 원격 관리자에게 컴퓨터(110)에 대한 로그인 인터페이스를 제공하는데 이용될 수 있고, 이로 인해 원격 관리자에게는 컴퓨터(110)의 소프트웨어 구성요소들 모두에 대한 실시간 액세스를 제공할 수 있다.
스마트폰(130)이 다수의 USB 디바이스 클래스들의 동시 이용을 지원하는 하나의 실시예에서, 스마프폰(130)은 관리형 USB 부팅 서비스를 지원하기 위해 USB 대용량 저장 디바이스 클래스를 이용할 수 있고 관리형 USB VPN 테더링 서비스를 지원하기 위해 USB CDC 디바이스 클래스를 동시에 이용할 수 있다.
스마트폰(130)이 다중 USB 디바이스 클래스들의 동시 이용을 지원하지 않는(즉, 관리형 USB 부팅 서비스를 지원하는데 이용되는 USB 대용량 저장 디바이스 클래스는 관리형 USB VPN 테더링 서비스를 지원하는데 이용되는 USB CDC 디바이스와 공존할 수 없음) 하나의 실시예에서, 네트워킹 케이퍼빌리티는 심지어 스마트폰(130)이 USB 대용량 저장 클래스 디바이스로서 동작하도록 설정된 이후에도, 컴퓨터(110)와 스마트폰(130) 사이의 포인트-대-포인트 IP 접속을 설정함으로써 이 한계를 극복하는데 이용될 수 있다. 하나의 실시예에서, 이용되는 네트워킹 케이퍼빌리티는 IP 오버 스토리지(IP Over Storage; IPOST) 네트워킹 케이퍼빌리티이다.
일반적으로, IPOST 네트워킹 케이퍼빌리티는 한 쌍의 디바이스들 사이에서의 패킷들의 전송을 가능하게 한다. 두 디바이스들 사이에서 IP 패킷들을 전송하기 위해, IPOST 네트워킹 케이퍼빌리티는 상기 디바이스들 중 하나에 의해 상기 디바이스들 중 다른 하나에 노출되는 공유-저장 파일 시스템 내에 구현되는 한 쌍의 패킷 큐(queue)들(트래픽 방향당 하나)을 이용하고, 여기서 디바이스들 둘 모두는 각각 두 저장 큐들 내로의 그리고 두 저장 큐들로부터의 기록 동작들 및 판독 동작들로서 패킷 송신들 및 패킷 수신들을 실행할 수 있다. IPOST 네트워킹 케이퍼빌리티의 예시 실시예가 도 5와 관련하여 도시되고 기술된다.
도 5는 디바이스들 사이의 IP 패킷들의 전송을 지원하는 IPOST 네트워킹 케이퍼빌리티의 하나의 실시예를 도시한다.
도 5에 도시된 바와 같이, IPOST 네트워킹 케이퍼빌리티는 공유-저장 파일 시스템(520)을 통하여 제 1 노드(510)와 제 2 노드(530) 사이에 IP 패킷들을 통신하는 것을 지원하도록 구성된다.
제 1 노드(510)는 사용자 공간(511) 및 커널(515)을 포함한다. 사용자 공간(511)은 IPOST 드라이버(512)를 포함한다. 커널(515)은 TCP/IP 스택(516), 네트워크 인터페이스 카드(Network Interface Card; NIC)(517) 및 가상 NIC(virtual NIC; vNIC)(518)를 포함한다.
IPOST 드라이버(512)는 TCP/IP(516)(vNIC(518)를 통한) 및 공유-저장 파일 시스템(520)과 인터페이스되는 사용자-공간 프로세스로서 제 1 노드(510)에서 가동된다. IPOST 드라이버(512)는 TCP/IP 스택(516)과 인터페이스하여 이는 IP 패킷들에 액세스하게 된다. IPOST 드라이버(512)의 공유-저장 파일 시스템(520)로의 인터페이스와 관련하여, IPOST 드라이버(512)는 파일 및 디스크 캐싱(caching), 공유 저장을 위한 락킹(locking) 또는 동기화 프리미티브(primitive)들의 부재, 공유 데이터 구조들의 원자적(atomic) 업데이트들, 적절한 판독 및 기록 크기의 선택, 수신 통지들의 부재, 두 종단들에서 순서화되는 잠재적 비유사 바이트 등뿐만 아니라 이들의 다양한 조합 중 하나 이상을 처리하도록 구성되는 하나 이상의 기능 구성요소들을 포함하는 것이 주목된다. 사용자 공간(511) 내의 IPOST 드라이버(512)의 구현과 관련하여 주로 도시되고 기술될지라도, IPOST 드라이버는 또한 커널(515) 내에 구현될 수 있음(즉, 사용자-공간 배치의 선택은 경성 제약(hard constraint)들에 의해서가 아닌, 편의 고려사항들에 의해 추진됨)이 주목된다.
NIC(517)는 TCP/IP 스택(516)과 인터페이스하고 또한 연관되는 통신 네트워크로의 외부 통신 인터페이스를 지원한다. NIC(517)는 임의의 적절한 유형의 네트워크 인터페이스(예를 들어, 이더넷, WiFi 등)로서 구현될 수 있다.
vNIC(518)는 TCP/IP 스택(516)과 인터페이스하고 또한 IPOST 드라이버(512)로의 내부 통신 인터페이스를 지원한다. vNIC(518)는 임의의 적절한 방식으로 구현될 수 있다. 하나의 실시예에서, vNIC(518)는 포인트-대-포인트 IP 인터페이스로서 구현된다(비록 이더넷형 브로드캐스트 다중 액세스 인터페이스 또는 임의의 다른 적절한 유형의 인터페이스로서의 구현과 같은 다른 구현들이 이용될 수 있을지라도). 하나의 실시예에서, 원 IP 패킷들을 IPOST 드라이버(512)에 노출시키기 위하여 TUN 모드로 구성되는 표준 네트워크 터널/탭(TUN/TAP)를 이용하는 vNIC(518)의 실예가 제공된다.
제 2 노드(530)는 사용자 공간(531) 및 커널(535)을 포함한다. 사용자 공간(531)은 IPOST 드라이버(532)를 포함한다. 커널(535)은 TCP/IP 스택(536), 네트워크 인터페이스 카드(Network Interface Card; NIC)(537) 및 가상 NIC(virtual NIC; vNIC)(538)를 포함한다. 제 2 노드(530)의 구성 및 동작은 제 1 노드(510)의 구성 및 동작과 동일하다(또는 적어도 실질적으로 유사함).
공유 저장 파일 시스템(520)과의 IPOST 인터페이스는 한 쌍의 환형 패킷 큐들(5211 및 5212)(총칭하여, 환형 패킷 큐들(521))을 포함한다. 락-프리(lock-free)를 보장하기 위해, 공유-저장 파일 시스템(520)의 공유-큐 데이터 구조들의 동기화된 동작, 판독/기록 동작들은 원자적(atomic)이고 순차적인 속성들을 유지한다. 원자적 속성은 공유 저장 에어리어로부터의 판독 동작이 동일한 에어리어 내로의 동시 기록 동작의 중간 값(intermediate value)을 산출하지 않는 것을 의미한다(즉, 판독 동작에 의해 리턴된 값은 동시 기록 동작 이전에 공유 에어리어 내에 저장된 값이거나, 아니면 기록 동작의 최종 결과임). 순차 실행 특성은 패킷 기록 동작으로부터 발생되는 포인터 및 컨텐츠 업데이트들이 항상 동시에 판독 단에 노출되는 것을 보장한다. 공유-저장 파일 시스템(520)은 섹터 레벨에서 양 속성들을 만족하여, 대부분의 컴퓨터 시스템들에 대한 디스크 액세스 표준들에 부합한다.
공유-저장 파일 시스템(520)은 두 노드들(즉, 제 1 노드(510) 및 제 2 노드(530)) 각각이 공유-저장 파일 시스템(520)의 각각의 큐(521)를 별개의 파티션으로 보도록 구현된다.
큐들(521)은 런타임 결핍 문제를 방지하기 위해 미리 할당된 공간 상에서, 무기한 성장을 방지하기 위해 환형이다. 제 1 노드(510)는 하나의 큐(521)에 대하여 기록기(writer) 역할을 하고 다른 큐(521)에 대해 판독기(reader) 역할을 하고 제 2 노드(530)는 한 큐(521)에 대해 기록기 역할을 하고 다른 큐(521)에 대해 판독기 역할을 한다.
큐들(521)은 각각 고정된 수의 큐 요소들로 구성되고, 각각의 요소는 고정된 수의 섹터들로 구성된다. 예를 들어, 1500 바이트의 표준 최대 전송 단위(maximum transmission standard unit: MTU) 및 512 바이트의 섹터 크기를 가정하면, 3-섹터 큐 요소는 패킷 및 일부 보조 패킷 정보(예를 들어, 패킷 크기, 타임스탬프, 우선순위 등뿐만 아니라 이들의 다양한 조합들)를 저장하는데 충분한 공간을 제공한다. 적어도 일부 경우들에서(예를 들어, 포인트-대-포인트 네트워크 인터페이스를 구현하고 있을 때), MTU 크기는 임의의 적절한 값으로 구성되고, 유사하게, 큐 요소당 섹터들의 수는 구성된 MTU 크기에 따라 설정될 수 있음이 주목된다. 큐들(521)의 MTU 크기 및/또는 큐 요소들의 수는 2개의 큐들(521)에 대해 상이할 수 있음이(비록, 각각의 큐(521)에 대해, 구성 정보는 양 종단들에서 일치되어야만 할지라도) 더 주목된다.
큐들(521)은 적절한 동작을 유지하기 위해 동기화된 채로 유지되도록 구성된다. 하나의 실시예에서, 각각의 큐(521)의 두 종단들이 동기화된 채로 유지되기 위해, 상기 두 종단들은 판독기가 새로운 큐 요소가 언제 판독에 이용 가능한지를 인지하고 기록기가 큐 요소가 언제 판독되었는지 그리고 기록을 위해 언제 다시 이용 가능한지를 인지하도록, 큐 사용 정보를 공유할 수 있다. 하나의 실시예에서, 예를 들어, 각각의 큐(521)에 대해 공유되는 정보는 판독 계수기 및 기록 계수기를 포함하고, 여기서 기록기는 자신이 큐(521) 내로 패킷을 삽입할 때마다 기록 계수기를 증가시키고 판독기는 자신이 큐(521)로부터 패킷을 검색할 때마다 판독 계수기를 증가시킨다. 각각의 큐(521)에 대해, 패킷들이 환형 큐(521)에서 모듈러 순서(modulo order)로 삽입되는 것을 고려하면, 각각의 종단 별로 얼마나 많은 요소들이 큐(521)에서 구속되지 않는지, 어떤 큐 요소들이 큐(521)에서 사용 중인지, 그리고 현재 판독 및 기록 포인터들이 큐(521) 내에 어디에 위치되어 있는지를 인지하는데에는 판독 및 기록 계수기들이 충분하다. 하나의 실시예에서, 각각의 큐(521)에서, 큐(521)의 제 1 섹터는 판독/기록 계수기들을 저장하고 큐에 대한 제어 요소 역할을 하고 후속하는 섹터들은 데이터 요소들(예를 들어, IP 패킷들)을 저장한다. 하나의 실시예에서, 큐들(521)의 경우, 큐들(521) 중 하나의 제어 요소는 (a) 기록기에 의해 유지되는 기록 계수기 및 (b) 동일한 기록기가 큐(521) 중 다른 하나에 대해 유지하며 큐(521)에서 판독기 역할을 하는 판독 계수기를 포함하며, 역도 마찬가지이다. 각각의 큐(521)에 대해, 이는 하나의 종단이 큐(521)의 섹터들에 대해(데이터 및 제어 요소들 모두에 대해) 기록 액세스만을 행하는 반면에, 다른 종단은 큐(521)의 섹터들에 대해(데이터 및 제어 요소들 모두에 대해) 판독 액세스만을 행하는 결과가 발생되는 것이 주목된다. 이는 동일한 제어 요소로 기록 액세스하는 두 종단들 사이의 충돌들을 방지한다.
IPOST 네트워킹 케이퍼빌리티(예를 들어, 도 5와 관련하여 도시되고 기술되는 실시예에서와 같은)는 다양한 애플리케이션들을 가지는데, 이들 중 하나는 디바이스가 이미 USB 대용량 저장 디바이스로서 동작하고 있으면 상기 디바이스는 네트워킹 기능들을 수행할 수 있는 것이다(예를 들어, 스마트폰(130)이 이미 USB 대용량 저장 디바이스로서 동작 중이면 스마트폰(130)이 네트워킹 기능들을 수행할 수 있음).
IPOST 네트워킹 케이퍼빌리티는, USB 대용량 저장 디바이스의 파일 시스템에서 구현될 때, 파일 시스템을 지원하는 물리 매체가 플래시 메모리이면(IPOST 네트워킹 케이퍼빌리티가 관리형 USB 서비스들을 제공하고 있을 때 스마트폰(130)에 의해 사용되는 경우에서와 같이) 두 주요한 문제들을 나타낸다. 첫째로, 플래시 메모리 내로의 기록은 일반적으로 상대적으로 느린 동작이다. 둘째로, 플래시 저장소는 일반적으로 많은 수의 기록들을 위해 설계되지 않고, 심지어 웨어 레벨링(wear-leveling) 기술들이 채택될지라도 플래시 파일 시스템에 자주 기록하는 것은 보통 플래시 파일 시스템이 너무 일찍 고장이 나게 할 것이다. IPOST 네트워킹 케이퍼빌리티의 하나의 실시예에서, 이 문제들은 다음과 같이 USB 대용량 저장 디바이스로부터 세 개의 저장 파티션들을 엑스포트(export)함으로써 해결된다: (1) 스마트폰(130)의 프래시 메모리 내에 상주하는 제 1 파티션, 이는 IPOST vNIC(예를 들어, 부트 이미지)를 이용하기 위해 컴퓨터(110)가 운영할 필요가 있는 소프트웨어를 포함하고, (2) 스마트폰(130)의 RAM에 상주하는 제 2 파티션 및 제 3 파티션, 이는 IPOST 공유 큐(queue)들(521)을 수용한다. 스마트폰(130)은 단일 USB 대용량 저장 인터페이스에 걸쳐 다수의 저장 엔티티들을 엑스포트할 수 있는데, 왜냐하면 USB 대용량 저장소는 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface; SCSI) 에뮬레이션 상에서 작동하기 때문이고, 여기서 (a) USB는 호스트 와 타깃 디바이스 사이에서 SCSI 명령들에 대한 전송 매체 역할을 하고, (b) SCSI는 단일 타깃 내에 다수의 논리 유닛 번호(logical unit number; LUN)들 또는 논리 볼륨들을 지원한다(USB 상에 다수의 디스크들을 노출시키는데 이용될 수 있는 SCSI의 특징). 컴퓨터(110)가 스마트폰(130)의 USB 대용량 저장 디바이스로부터 부팅하는 관리형 USB 부팅 서비스의 경우에, 컴퓨터(130)의 BIOS는 단지 제 1 파티션의 LUN만을 보고 이로부터 부팅한다. 그리고 나서, 일단 OS가 컴퓨터(110)에 로딩되면, 컴퓨터(110)가 LUN들의 전체 세트를 인식함으로써, IPOST 드라이버(512)는 스마트폰(130) 상에 로컬 볼륨으로서의 2개의 RAM 디스크로 액세스하게 된다.
적어도 하나의 실시예에서, RAM 디스크들은 RAM-기반 파일 시스템들(예를 들어, tmpf 및 ramfs와 같은)에 비해 선호되는 것이 주목되는데, 왜냐하면 RAM-기반 파일 시스템들은 IPOST 네트워킹 케이퍼빌리티에 의해 이용되지 않는 연관된 오버헤드를 지니기 때문이다(예를 들어, IPOST는 섹터들로의 판독 및 기록 액세스만을 필요로 함). 스마트폰 내의 RAM 공간은 전형적으로 많지 않은 반면에(예를 들어, 전형적으로 128MB와 512MB 사이), IPOST 네트워킹 케이퍼빌리티의 구현을 위한 RAM 요건들은 상대적으로 크지 않다. 1.5 KB MTU의 경우, 예를 들어 64 데이터 요소들(각각 세 개의 섹터들을 가지는) 및 하나의 제어 요소의 큐(queue)은 총 193 섹터들을 소모, 즉 섹터당 512바이트에서의 약 97KB을 소모하므로, 결과적으로 전형적인 스마트폰 상에 매우 미미한 부하를 발생시킨다. 9 KB MTU의 경우, 예를 들어, 2개의 큐들에 의해 요구되는 총 메모리는 1153KB에 이르며, 여전히 전형적인 스마트폰 상에서 이용 가능한 최소 RAM 공간의 1% 미만이다.
1.5KB 및 9KB의 MTU 크기들에 있어서 USB 대용량 디바이스로서 구성되는 스마트폰과 랩탑 사이에서의 IPOST 네트워킹 케이퍼빌리티의 처리량 및 레이턴시 성능은 iperf 및 ping 테스트들을 이용하여 평가될 수 있음이 주목된다. 적어도 하나의 테스트 동안, 측정된 ping 레이턴시가 양 MTU 크기들에 대해 동일했을지라도(예를 들어, 45ms), 처리량은 MTU 크기가 더 커짐에 따라 증가되었음(예를 들어, 1.3MPs부터 7.5Mbps로)이 주목되었다. 상기 결과들은 두 방향들에서 동일하였다. 상기 측정들은 처리량이 메모리 액세스들의 주파수에 의해 제한되고(MTU 크기들이 더 작음에 따라 더 커짐), 심지어 더 작은 MTU 사이즈가 현재의 WWLAN 접속들의 전형적인 케이퍼빌리티 이상의 전송 레이트들을 보장하고, 이용 가능한 RAM 공간에 실제의 충격 없이 훨씬 더 큰 처리량이 달성될 수 있음을 나타낸다.
더욱 정규적인 WiFi 또는 블루투스 접속과 비교할 때, USB 매체를 통하여 IPOST 논리 링크를 제공하는 IPOST 네트워킹 케이퍼빌리티는 다양한 장점들을 제공하는 것이 주목된다. IPOST 네트워킹 케이퍼빌리티는 컴퓨터(110)와 스마트폰(130) 사이의 직접 접속의 명시적인 셋업 또는 중계기로서 작동하는 WiFi 핫스팟을 찾는 것을 요구하지 않는다. IPOST 네트워킹 케이퍼빌리티는 임의의 연관되는 도청 또는 전력 문제들을 가지지 않는다.
본원에서 기술되는 바와 같이, IPOST 네트워킹 케이퍼빌리티는 다양한 애플리케이션들을 가진다. 그러므로, 디바이스가 이미 USB 대용량 저장 디바이스로서 동작하고 있을 때 상기 디바이스가 네트워킹 기능들을 수행할 수 있는 IPOST 네트워킹 케이퍼빌리티를 이용하는 것과 관련하여 본원에서 주로 도시되고 기술될지라도, IPOST 네트워킹 케이퍼빌리티는 또한 다양한 다른 애플리케이션들에 대해서 이용될 수 있다. 하나의 실시예에서, 예를 들어, IPOST 네트워킹 케이퍼빌리티는 네트워크 어드레스 변환(NAT) 및 방화벽 경계들에 걸친 접속을 제공하는데 이용된다. 하나의 실시예에서, 예를 들어, IPOST 네트워킹 케이퍼빌리티는 은닉 통신 채널들(covert communication channel)의 수립에 이용된다. IPOST 네트워킹 케이퍼빌리티는 다양한 다른 애플리케이션들에서 이용될 수 있다.
관리형 USB 서비스 케이퍼빌리티의 USB-기반 구현의 상황 내에서(예를 들어, USB 주변 접속, USB 디바이스 클래스들 등을 이용하는) 주로 도시되고 기술될지라도, 관리형 USB 서비스 케이퍼빌리티의 다양한 실시예들은 하나 이상의 다른 유형들의 기술들을 이용하여(예를 들어, 다른 유형들의 주변 접속 디바이스 클래스들을 이용하여 지원되는 다른 유형들의 주변 접속들을 이용하여) 제공될 수 있음이 주목된다. 유사하게, 관리형 USB 서비스 케이퍼빌리티의 USB-기반 구현의 상황 내에서 본원에서 주로 도시되고 기술될지라도, 다양한 다른 유사한 케이퍼빌리티들이 하나 이상의 다른 유형들의 기술들을 이용하여(예를 들어, 다른 유형들의 주변 접속 디바이스 클래스들을 이용하여 지원되는 다른 유형들의 주변 접속들을 이용하여) 제공될 수 있음이 주목된다. 이와 같으므로, 본원에서 사용되는 다양한 USB 특정 용어들은 더욱 일반적으로 판독될 수 있음이 주목된다. 예를 들어, 본원에서 USB 기반 주변 접속에 대한 언급들은 더 일반적으로 주변 접속(예를 들어, WiFi 주변 접속, 블루투스 주변 접속 또는 다른 적절한 유형의 주변 접속 또는 다른 접속)으로서 판독될 수 있다. 예를 들어, 본원에서 USB 디바이스 클래스들에 대한 언급들은 컴퓨터 및 모바일 컴퓨팅 디바이스를 접속시키는데 이용될 수 있는 임의의 유형의 주변 접속(예를 들어, WiFi 주변 접속, 블루투스 주변 접속 또는 임의의 다른 적절한 유형의 주변 접속 또는 다른 접속)을 지원하는데 적합한 주변 접속 디바이스 클래스들로서 더 일반적으로 판독될 수 있다. 예를 들어, 본원에서 USB 특정 서브시스템들 및 모듈들(예를 들어, USB 주변 대용량 저장 서브시스템, USB 주변 ACM 모뎀 서브시스템, USB 주변 이더넷 서브시스템, USB 인터페이스 선택기, USB 주변 제어기 드라이버, USB 주변 제어기 등)에 대한 언급들은 더욱 일반적으로 판독될 수 있다(예를 들어, 주변 대용량 저장 서브시스템, 주변 시리얼 포트 서브시스템, 주변 네트워크 접속 서브시스템, 주변 인터페이스 선택기, 주변 제어기 드라이버, 주변 제어기 등으로서).
도 6은 본원에 기술되는 기능들을 수행하는데 이용하기 적합한 컴퓨터의 고-레벨 블록도를 도시한다.
도 6에 도시된 바와 같이, 컴퓨터(600)는 프로세서 요소(602)(예를 들어 중앙 처리 장치(CPU) 및/또는 다른 적절한 프로세서(들)) 및 메모리(604)(예를 들어 임의 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등)를 포함한다. 컴퓨터(600)는 또한 협력 모듈/프로세스(605) 및/또는 다양한 입력/출력 디바이스들(606)(예를 들어, 사용자 입력 디바이스(키보드, 키패드, 마우스 등과 같은), 사용자 출력 디바이스(디스플레이, 스피커 등과 같은), 입력 포트, 출력 포트, 수신기, 송신기, 및 저장 디바이스(예를 들어 테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브, 컴팩트 디스크 드라이브 등))을 포함할 수 있다.
본원에서 도시되고 기술된 기능들은 소프트웨어(예를 들어 하나 이상의 프로세서들 상의 소프트웨어의 구현을 통해), 및/또는 하드웨어(예를 들어 범용 컴퓨터, 하나 이상의 주문형 반도체(application specific integrated circuits; ASIC), 및/또는 임의의 다른 하드웨어 등가물들을 이용하여)로 구현될 수 있음이 인정될 것이다.
본원에서 도시되고 기술된 기능들은 특수 목적 컴퓨터를 구현하도록 범용 컴퓨터(예를 들어 하나 이상의 프로세서들에 의한 실행을 통한) 상에서 실행되는 소프트웨어로 구현될 수 있고/있거나 하드웨어(예를 들어 하나 이상의 주문형 반도체(ASIC) 및/또는 하나 이상의 다른 하드웨어 등가물들을 이용하여)에서 구현될 수 있음이 인정될 것이다.
하나의 실시예에서, 협력 프로세스(605)는 메모리(604) 내로 로딩되고 프로세서(602)에 의해 실행되어 본원에서 논의된 기능들을 구현할 수 있다. 그러므로, 협력 프로세스(605)(연관된 데이터 구조들을 포함하는)는 컴퓨터 판독 가능 저장 매체, 예를 들어 RAM 메모리, 자기 또는 광 드라이브 또는 디스켓 등에 저장될 수 있다.
도 6에 도시된 컴퓨터(600)는 본원에 기술된 기능 요소들 및/또는 본원에 기술된 기능 요소들의 일부를 구현하는데 적합한 범용 아키텍처 및 기능을 제공하는 것이 인정될 것이다. 예를 들어, 컴퓨터(600)는 컴퓨터(110), 컴퓨터(110)의 하나 이상의 모듈들, 스마트폰(130), 스마트폰(130)의 하나 이상의 모듈들, 서비스 관리 시스템(171), 서비스 관리 시스템(171)의 하나 이상의 모듈들, 관리자 단말기(175), 관리자 단말기(175)의 하나 이상의 모듈들 등 중 하나 이상을 구현하는데 적합한 범용 아키텍처 및 기능을 제공한다.
본원에서 소프트웨어 방법들로 논의된 단계들 중 일부는 하드웨어 내에서, 예를 들어 다양한 방법 단계들을 실행하는 프로세서와 협력하는 회로소자로서 구현될 수 있음이 고려된다. 본원에서 기술되는 기능들/요소들의 일부들은 컴퓨터 프로그램 제품으로 구현될 수 있고 여기서 컴퓨터 명령들은 컴퓨터에 의해 프로세싱될 때 컴퓨터의 동작을 적응시킴으로써 본원에서 기술된 방법들 및/또는 기술들이 인보킹(invoking)되거나 그렇지 않으면 제공되도록 한다. 본 발명의 방법들을 인보킹하기 위한 명령들은 고정 또는 제거 가능 매체에 저장되고/되거나, 브로드캐스트 또는 다른 신호 보유 매체(signal bearing medium)에서 데이터 스트림을 통해 전송되고/되거나 명령들에 따라 동작하는 컴퓨팅 디바이스 내의 메모리 내에 저장될 수 있다.
다양한 실시예들의 양태들은 청구항들에서 지정된다. 다양한 실시예들의 상기 및 다른 양태들은 다음의 번호가 매겨진 조항들에서 지정된다;
1. 장치로서,
프로세서 및 메모리를 포함하고, 상기 프로세서는,
모바일 컴퓨팅 디바이스에서, 상기 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고,
상기 선택된 주변 접속 디바이스 클래스에서 동작하는 상기 모바일 컴퓨팅 디바이스의 구성을 개시하도록 구성되는
장치.
2. 조항 1에 있어서,
저장 서브시스템 및 연관되는 주변 대용량 저장 서브시스템과,
시리얼 포트 서브시스템 및 연관되는 주변 시리얼 포트 서브시스템과,
네트워킹 서브시스템 및 연관되는 주변 네트워크 접속 서브시스템을 더 포함하는
장치.
3. 조항 2에 있어서,
상기 모바일 컴퓨팅 디바이스의 복수의 주변 서브시스템들 중 하나를 선택하도록 구성되는 주변 인터페이스 선택기와,
상기 주변 인터페이스 선택기와 통신하도록 구성되는 주변 제어기 드라이버와,
상기 주변 제어기 드라이버와 통신하도록 구성되는 주변 제어기를 더 포함하는
장치.
4. 조항 1에 있어서,
상기 복수의 주변 접속 디바이스 클래스들은 복수의 범용 시리얼 버스(USB) 디바이스 클래스들을 포함하는
장치.
5. 조항 4에 있어서,
상기 복수의 USB 디바이스 클래스들은 USB 대용량 저장 디바이스 클래스, USB ACM 모뎀 디바이스 클래스 및 USB 이더넷 디바이스 클래스 중 적어도 하나를 포함하는
장치.
6. 조항 4에 있어서,
저장 서브시스템 및 연관되는 USB 주변 대용량 저장 서브시스템과,
시리얼 포트 서브시스템 및 연관되는 USB 주변 ACM 모뎀 서브시스템과,
네트워킹 서브시스템 및 연관되는 USB 주변 이더넷 서브시스템을 더 포함하는
장치.
7. 조항 4에 있어서,
상기 모바일 컴퓨팅 디바이스의 복수의 USB 주변 서브시스템들 중 하나를 선택하도록 구성되는 USB 인터페이스 선택기와,
상기 USB 인터페이스 선택기와 통신하도록 구성되는 USB 주변 제어기 드라이버와,
상기 USB 주변 제어 드라이버와 통신하도록 구성되는 USB 주변 제어기를 더 포함하는
장치.
8. 조항 1에 있어서,
상기 프로세서는 관리 에이전트를 제공하도록 구성되고, 상기 관리 에이전트는 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고, 상기 선택된 주변 접속 디바이스 클래스에서 동작하는 상기 모바일 컴퓨팅 디바이스의 구성을 개시하도록 구성되는
장치.
9. 조항 8에 있어서,
적어도 하나의 통신 네트워크에 적어도 하나의 네트워크 인터페이스를 제공하도록 구성되는 네트워크 모듈을 더 포함하고,
상기 네트워크 에이전트는 상기 네트워크 모듈로부터 상기 요청을 수신하도록 구성되는
장치.
10. 조항 8에 있어서,
복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스와 연관되는 주변 접속 서브시스템을 선택하도록 구성되는 인터페이스 선택기를 더 포함하고,
상기 관리 에이전트는 복수의 USB 디바이스 클래스들 중에서 선택된 클래스와 연관되는 상기 USB 서브시스템을 선택하도록 상기 인터페이스 선택기를 트리거(trigger)하기 위해 상기 인터페이스 선택기에 명령을 전파하도록 구성되는
장치.
11. 조항 8에 있어서,
상기 프로세서는 사용자 에이전트를 제공하도록 구성되고, 상기 사용자 에이전트는 국지 제어 정보를 수신하기 위해 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 제공하도록 구성되고, 상기 사용자 에이전트는 상기 국지 제어 정보를 상기 관리 에이전트에 제공하도록 더 구성되는
장치.
12. 조항 1에 있어서,
적어도 하나의 통신 네트워크에 적어도 하나의 네트워크 인터페이스를 제공하도록 구성되는 네트워크 모듈을 더 포함하는
장치.
13. 조항 1에 있어서,
상기 모바일 컴퓨팅 디바이스를 컴퓨터에 접속하도록 구성되는 주변 인터페이스를 더 포함하는
장치.
14. 조항 1에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 모바일 컴퓨팅 디바이스와 상기 원격 디바이스 사이의 상기 원격 데이터 접속을 통해 상기 모바일 컴퓨팅 디바이스에 의해 상기 컴퓨터로 제공될 서비스와 연관되는 정보를 수신하도록 더 구성되는
장치.
15. 방법으로서,
프로세서 및 메모리를 사용하여,
모바일 컴퓨팅 디바이스에서, 상기 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고,
상기 선택된 주변 접속 디바이스 클래스에서 동작하는 상기 모바일 컴퓨팅 디바이스의 구성을 개시하는
방법.
16. 장치로서,
프로세서 및 메모리를 포함하고, 상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 상기 컴퓨터에 상기 모바일 컴퓨팅 디바이스를 통해 제공될 서비스와 연관되는 메시지를 수신하고,
상기 모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하도록 구성되는
장치.
17. 조항 16에 있어서,
상기 서비스는 관리형 USB 인터넷 테더링 서비스, 관리형 USB VPN 테더링 서비스, 관리형 USB 스마트 카드 서비스, 관리형 USB 시리얼 콘솔 서비스, 관리형 USB 대용량 저장 서비스 및 관리형 USB 부팅 서비스 중 적어도 하나를 포함하는
장치.
18. 조항 16에 있어서,
상기 메시지는 상기 서비스를 제공하라는 요청을 포함하는
장치.
19. 조항 16에 있어서,
상기 모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스를 USB 이더넷 디바이스 클래스, USB CDC 어브스트랙트 제어 모델(ACM) 디바이스 클래스 및 USB 대용량 저장 디바이스 클래스 중 적어도 하나로 동작하도록 구성하는 것을 포함하는
장치.
20. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스를 네트워크 어드레스 변환(NAT) 케이퍼빌리티 및 동적 호스트 제어 프로토콜(DHCP) 서버 케이퍼빌리티를 가지는 라우터로서 동작하도록 구성하는 것을 포함하는
장치.
21. 조항 20에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서, 상기 컴퓨터 및 상기 모바일 컴퓨팅 디바이스 사이의 주변 접속을 통해 상기 컴퓨터로부터의 정보를 수신하고,
상기 정보를 상기 모바일 컴퓨팅 디바이스의 네트워크 접속을 통해 전파하도록 더 구성되는
장치.
22. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스와 사설 네트워크의 보안 서버 사이의 보안 접속의 설정을 개시하고,
상기 모바일 컴퓨팅 디바이스에서 상기 보안 서버로부터 상기 컴퓨터에 대한 인터넷 프로토콜(IP) 어드레스를 수신하고,
상기 모바일 컴퓨팅 디바이스와 상기 컴퓨터 사이의 주변 인터페이스를 통해 상기 컴퓨터에 대한 IP 어드레스를 상기 컴퓨터로 전파하는 것을 포함하는
장치.
23. 조항 22에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스를 상기 컴퓨터에 대한 디폴트 라우터로서 동작하도록 구성하고,
상기 모바일 컴퓨팅 디바이스에서, 상기 사설 네트워크로 지향되는 컴퓨터로부터 트래픽을 수신하고,
상기 사설 네트워크의 보안 서버와 상기 모바일 컴퓨팅 디바이스 사이의 보안 접속을 통해 상기 수신된 트래픽을 상기 사설 네트워크로 전파하도록 더 구성되는
장치.
24. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스를 상기 원격 데이터 접속을 통한 네트워크 접속성이 구비되는 스마트 카드로 구성하고,
상기 모바일 컴퓨팅 디바이스 상에, 상기 모바일 컴퓨팅 디바이스를 상기 컴퓨터에 대한 스마트 카드로서 이용하기 위해 구성되는 스마트 카드 보안 정보를 저장하는 것을 포함하는
장치.
25. 조항 24에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 컴퓨터로부터 상기 원격 디바이스로 지향되는 정보를 수신하고, 상기 정보는 상기 컴퓨터와 상기 모바일 컴퓨팅 디바이스 사이의 USB 이더넷 링크에 걸쳐 운영되고 있는 전송 제어 프로토콜(TCP) 접속을 통해 수신되고,
상기 원격 데이터 접속을 통해 상기 정보를 상기 원격 디바이스로 전파하도록 더 구성되는
장치.
26. 조항 24에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 원격 디바이스로부터 상기 컴퓨터에 대하여 상기 모바일 컴퓨팅 디바이스 상에 저장된 스마트 카드 보안 정보를 폐기하도록 구성되는 명령을 수신하도록 구성되는
장치.
27. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스를, 상기 컴퓨터에 대한 시리얼 콘솔 단말기로서 동작하도록 구성하고,
상기 모바일 컴퓨팅 디바이스에서 상기 원격 데이터 접속을 통해 상기 컴퓨터로 로그인하기 위한 로그인 요청을 수신하고,
상기 모바일 컴퓨팅 디바이스와 상기 컴퓨터 사이의 주변 접속을 통해 상기 로그인 요청을 상기 모바일 컴퓨팅 디바이스로부터 상기 컴퓨터로 전파하는 것을 포함하는
장치.
28. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스의 메모리 카드 상에 파티션을 생성하고,
상기 모바일 컴퓨팅 디바이스 상의 USB 대용량 저장 디바이스에 상기 파티션을 매핑하는 것을 포함하는
장치.
29. 조항 28에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 컴퓨터로부터의 데이터 파일을 수신하고, 상기 데이터 파일은 상기 컴퓨터와 상기 모바일 컴퓨팅 디바이스 사이의 주변 접속을 통해 수신되고,
상기 모바일 컴퓨팅 디바이스 상의 매핑된 파티션에 상기 수신된 데이터 파일을 저장하고,
상기 원격 데이터 접속을 통해 상기 데이터 파일을 상기 모바일 컴퓨팅 디바이스 상의 매핑된 파티션으로부터 상기 원격 디바이스 상으로 전파하도록 구성되는
장치.
30. 조항 28에 있어서,
상기 프로세서는,
상기 모바일 컴퓨팅 디바이스에서 상기 모바일 디바이스로부터 데이터 파일을 수신하고, 상기 데이터 파일을 상기 원격 데이터 접속을 통해 수신되고,
상기 모바일 컴퓨팅 디바이스 상의 매핑된 파티션에 상기 수신된 데이터 파일을 저장하고,
상기 모바일 컴퓨팅 디바이스와 상기 컴퓨터 사이의 주변 접속을 통해 상기 데이터 파일을 상기 모바일 컴퓨팅 디바이스 상의 매핑된 파티션으로부터 상기 컴퓨터로 전파하도록 구성되는
장치.
31. 조항 16에 있어서,
모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는 것은,
상기 모바일 컴퓨팅 디바이스의 메모리 카드 상에 파티션을 생성하고,
상기 모바일 컴퓨팅 디바이스 상의 USB 대용량 저장 디바이스에 상기 파티션을 매핑하고,
부팅 가능 부트 섹터를 포함하기 위해 상기 모바일 컴퓨팅 디바이스 상에 상기 매핑된 파티션을 포맷하고,
운영 시스템(OS) 파일들을 상기 매핑된 파티션으로 로딩하는 것을 포함하는
장치.
32. 방법으로서,
프로세서를 이용하여,
상기 모바일 컴퓨팅 디바이스에서 상기 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 상기 컴퓨터에 상기 모바일 컴퓨팅 디바이스를 통해 제공될 서비스와 연관되는 메시지를 수신하고,
상기 모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하는
방법.
본 발명의 내용들을 통합하는 다양한 실시예들이 본원에서 상세하게 도시되고 기술되었을지라도, 당업자는 여전히 이 내용들을 통합하고 있는 많은 다른 변형된 실시예들을 용이하게 창안할 수 있다.

Claims (10)

  1. 모바일 컴퓨팅 디바이스로서,
    프로세서 및 상기 프로세서에 통신 가능하게 접속되는 메모리를 포함하고, 상기 프로세서는,
    상기 모바일 컴퓨팅 디바이스에서, 원격 디바이스로부터, 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고,
    상기 모바일 컴퓨팅 디바이스를 상기 선택된 주변 접속 디바이스 클래스에서 동작하도록 구성하고,
    상기 모바일 컴퓨팅 디바이스에서, 상기 원격 디바이스로부터, 상기 선택된 주변 접속 디바이스 클래스에 기초하여 상기 모바일 컴퓨팅 디바이스에 의해 컴퓨터에 제공될 서비스와 연관되는 정보를 수신하도록 구성되는
    모바일 컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    저장 서브시스템 및 연관되는 주변 대용량 저장 서브시스템과,
    시리얼 포트 서브시스템 및 연관되는 주변 시리얼 포트 서브시스템과,
    네트워킹 서브시스템 및 연관되는 주변 네트워크 접속 서브시스템을 더 포함하는
    모바일 컴퓨팅 디바이스.
  3. 제 2 항에 있어서,
    상기 모바일 컴퓨팅 디바이스의 복수의 주변 서브시스템들 중 하나를 선택하도록 구성되는 주변 인터페이스 선택기와,
    상기 주변 인터페이스 선택기와 통신하도록 구성되는 주변 제어기 드라이버와,
    상기 주변 제어기 드라이버와 통신하도록 구성되는 주변 제어기를 더 포함하는
    모바일 컴퓨팅 디바이스.
  4. 제 1 항에 있어서,
    상기 복수의 주변 접속 디바이스 클래스들은 복수의 범용 시리얼 버스(Universal Serial Bus; USB) 디바이스 클래스들을 포함하는
    모바일 컴퓨팅 디바이스.
  5. 제 1 항에 있어서,
    상기 프로세서는 관리 에이전트를 제공하도록 구성되고, 상기 관리 에이전트는 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고, 상기 선택된 주변 접속 디바이스 클래스에서 동작하는 상기 모바일 컴퓨팅 디바이스의 구성을 개시하도록 구성되는
    모바일 컴퓨팅 디바이스.
  6. 제 5 항에 있어서,
    적어도 하나의 통신 네트워크에 적어도 하나의 네트워크 인터페이스를 제공하도록 구성되는 네트워크 모듈을 더 포함하고,
    상기 관리 에이전트는 상기 네트워크 모듈로부터 상기 요청을 수신하도록 구성되는
    모바일 컴퓨팅 디바이스.
  7. 제 6 항에 있어서,
    상기 선택된 주변 접속 디바이스 클래스와 연관되는 주변 접속 서브시스템을 선택하도록 구성되는 인터페이스 선택기를 더 포함하고,
    상기 관리 에이전트는 상기 선택된 주변 접속 디바이스 클래스와 연관되는 상기 주변 접속 서브시스템을 선택하도록 상기 인터페이스 선택기를 트리거(trigger)하기 위해 상기 인터페이스 선택기에 명령을 전파하도록 구성되는
    모바일 컴퓨팅 디바이스.
  8. 제 6 항에 있어서,
    상기 프로세서는 사용자 에이전트를 제공하도록 구성되고, 상기 사용자 에이전트는 국지(local) 제어 정보를 수신하기 위해 그래픽 사용자 인터페이스(Graphical User Interface; GUI)를 제공하도록 구성되고, 상기 사용자 에이전트는 상기 국지 제어 정보를 상기 관리 에이전트에 제공하도록 더 구성되는
    모바일 컴퓨팅 디바이스.
  9. 방법으로서,
    프로세서 및 메모리를 사용하여,
    모바일 컴퓨팅 디바이스에서, 원격 디바이스로부터, 상기 모바일 컴퓨팅 디바이스를 복수의 주변 접속 디바이스 클래스들 중에서 선택된 클래스에서 동작하도록 구성하라는 요청을 수신하고,
    상기 모바일 컴퓨팅 디바이스를 상기 선택된 주변 접속 디바이스 클래스에서 동작하도록 구성하고,
    상기 모바일 컴퓨팅 디바이스에서, 상기 원격 디바이스로부터, 상기 선택된 주변 접속 디바이스 클래스에 기초하여 상기 모바일 컴퓨팅 디바이스에 의해 컴퓨터에 제공될 서비스와 연관되는 정보를 수신하는
    방법.
  10. 장치로서,
    프로세서 및 상기 프로세서와 통신 가능하게 접속되는 메모리를 포함하고, 상기 프로세서는,
    모바일 컴퓨팅 디바이스에서 상기 모바일 컴퓨팅 디바이스와 원격 디바이스 사이의 원격 데이터 접속을 통하여, 상기 모바일 컴퓨팅 디바이스를 통해 컴퓨터에 제공될 서비스와 연관되는 메시지를 수신하고,
    상기 모바일 컴퓨팅 디바이스에서, 상기 모바일 컴퓨팅 디바이스의 주변 접속 디바이스 클래스에 기초하여 상기 모바일 컴퓨팅 디바이스를 통해 상기 컴퓨터에 상기 서비스를 제공하는 동작을 개시하도록 구성되는
    장치.
KR1020137033398A 2011-06-17 2012-05-23 모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치 KR101530472B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/162,877 2011-06-17
US13/162,877 US9619417B2 (en) 2011-06-17 2011-06-17 Method and apparatus for remote delivery of managed USB services via a mobile computing device
PCT/US2012/039020 WO2012173751A1 (en) 2011-06-17 2012-05-23 Method and apparatus for remote delivery of managed usb services via a mobile computing device

Publications (2)

Publication Number Publication Date
KR20140021677A KR20140021677A (ko) 2014-02-20
KR101530472B1 true KR101530472B1 (ko) 2015-06-19

Family

ID=46208824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033398A KR101530472B1 (ko) 2011-06-17 2012-05-23 모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US9619417B2 (ko)
EP (1) EP2721501B1 (ko)
JP (1) JP5885834B2 (ko)
KR (1) KR101530472B1 (ko)
CN (1) CN103608794B (ko)
DK (1) DK2721501T3 (ko)
ES (1) ES2687680T3 (ko)
WO (1) WO2012173751A1 (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7588590B2 (en) 2003-12-10 2009-09-15 Facet Solutions, Inc Spinal facet implant with spherical implant apposition surface and bone bed and methods of use
JP4465387B2 (ja) 2004-04-30 2010-05-19 リサーチ イン モーション リミテッド データ伝送を処理するシステムおよび方法
US7614082B2 (en) 2005-06-29 2009-11-03 Research In Motion Limited System and method for privilege management and revocation
US20080307109A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C File protocol for transaction based communication
WO2010047713A1 (en) * 2008-10-24 2010-04-29 Hewlett-Packard Development Company, L.P. Direct-attached/network-attached storage device
US20120131116A1 (en) * 2010-11-15 2012-05-24 Van Quy Tu Controlling data transfer on mobile devices
FR2968795B1 (fr) * 2010-12-10 2013-01-18 Xiring Dispositif d'appairage dynamique
US8639989B1 (en) 2011-06-30 2014-01-28 Amazon Technologies, Inc. Methods and apparatus for remote gateway monitoring and diagnostics
US8832039B1 (en) 2011-06-30 2014-09-09 Amazon Technologies, Inc. Methods and apparatus for data restore and recovery from a remote data store
US8639921B1 (en) * 2011-06-30 2014-01-28 Amazon Technologies, Inc. Storage gateway security model
US10754813B1 (en) 2011-06-30 2020-08-25 Amazon Technologies, Inc. Methods and apparatus for block storage I/O operations in a storage gateway
US8601134B1 (en) 2011-06-30 2013-12-03 Amazon Technologies, Inc. Remote storage gateway management using gateway-initiated connections
US8706834B2 (en) 2011-06-30 2014-04-22 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
US9294564B2 (en) 2011-06-30 2016-03-22 Amazon Technologies, Inc. Shadowing storage gateway
US8806588B2 (en) 2011-06-30 2014-08-12 Amazon Technologies, Inc. Storage gateway activation process
KR101761126B1 (ko) * 2011-08-12 2017-07-25 삼성전자 주식회사 Usb 장치, 및 그것을 포함하는 usb 시스템
US8793343B1 (en) 2011-08-18 2014-07-29 Amazon Technologies, Inc. Redundant storage gateways
US8789208B1 (en) 2011-10-04 2014-07-22 Amazon Technologies, Inc. Methods and apparatus for controlling snapshot exports
US9161226B2 (en) * 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
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
US9635132B1 (en) 2011-12-15 2017-04-25 Amazon Technologies, Inc. Service and APIs for remote volume-based block storage
US9129127B2 (en) * 2012-01-23 2015-09-08 Verizon Patent And Licensing Inc. Secure mobile interface access system
US8775638B2 (en) * 2012-02-02 2014-07-08 Siemens Aktiengesellschaft Method, computer readable medium and system for scaling medical applications in a public cloud data center
US9256717B2 (en) * 2012-03-02 2016-02-09 Verizon Patent And Licensing Inc. Managed mobile media platform systems and methods
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US9261989B2 (en) 2012-09-13 2016-02-16 Google Inc. Interacting with radial menus for touchscreens
US8972728B2 (en) 2012-10-15 2015-03-03 At&T Intellectual Property I, L.P. Method and apparatus for providing subscriber identity module-based data encryption and remote management of portable storage devices
JP2014085857A (ja) * 2012-10-24 2014-05-12 Alpine Electronics Inc 電子装置、電子装置の通信制御方法、電子装置の通信制御プログラム、情報端末装置および電子システム
US9075955B2 (en) 2012-10-24 2015-07-07 Blackberry Limited Managing permission settings applied to applications
US8656016B1 (en) 2012-10-24 2014-02-18 Blackberry Limited Managing application execution and data access on a device
US9203838B2 (en) * 2012-10-31 2015-12-01 Google Inc. Providing network access to a device associated with a user account
US9634726B2 (en) 2012-11-02 2017-04-25 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
JP5682610B2 (ja) * 2012-11-07 2015-03-11 トヨタ自動車株式会社 車載通信装置、車載通信システムおよび通信方法
WO2014109687A1 (en) * 2013-01-10 2014-07-17 Telefonaktiebolaget L M Ericsson (Publ) A user equipment and a method for power control of uplink transmissions
JP5987707B2 (ja) * 2013-01-25 2016-09-07 ソニー株式会社 端末装置、プログラム及び通信システム
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
JP6088882B2 (ja) * 2013-03-27 2017-03-01 株式会社富士通エフサス 制御装置および制御方法
US11210432B2 (en) * 2013-08-20 2021-12-28 Janus Technologies, Inc. Method and apparatus for selectively snooping and capturing data for secure computer interfaces
US9215250B2 (en) * 2013-08-20 2015-12-15 Janus Technologies, Inc. System and method for remotely managing security and configuration of compute devices
US9693377B2 (en) 2013-12-12 2017-06-27 Sony Mobile Communications Inc. Automatic internet sharing
US20170223613A1 (en) * 2014-04-28 2017-08-03 Harman International Industries, Incorporated Connecting one electronic device to internet through another electronic device
US9720742B2 (en) * 2014-05-15 2017-08-01 GM Global Technology Operations LLC Service and system supporting coherent data access on multicore controller
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
CN105426199B (zh) * 2014-09-05 2019-12-27 中兴通讯股份有限公司 自动适配多模式数据卡设备的方法、装置及系统
JP6465965B2 (ja) * 2014-09-25 2019-02-06 マイクロ モーション インコーポレイテッド シリアル通信のためのスタックタイミング調整
US10042784B2 (en) * 2014-10-13 2018-08-07 Microchip Technology Incorporated Side channel access through USB streams
DE102014016842A1 (de) * 2014-11-13 2016-05-19 Technisat Digital Gmbh Starten von Datendiensten einer Navigationseinrichtung eines Fahrzeugs
US10060981B2 (en) 2014-12-03 2018-08-28 Power ProbeTeK, LLC Diagnostic circuit test device
WO2016094858A1 (en) * 2014-12-12 2016-06-16 Lantronix, Inc. Console server with usb console port
US10867047B2 (en) * 2015-03-11 2020-12-15 Hewlett-Packard Development Company, L.P. Booting user devices to custom operating system (OS) images
US9980304B2 (en) 2015-04-03 2018-05-22 Google Llc Adaptive on-demand tethering
US9977762B2 (en) 2015-04-22 2018-05-22 International Microsystems, Inc. Disjoint array computer
ITUB20151900A1 (it) * 2015-07-03 2017-01-03 Selective Assets Sistema di fruizione di dati in formato protetto.
EP3317802B1 (en) 2015-09-15 2019-05-29 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
US10371563B2 (en) * 2016-01-04 2019-08-06 Jeffrey M Moravits Package intake device system and method for using same
US10938885B2 (en) 2016-04-06 2021-03-02 New York Blood Center, Inc. Mobile file transfer methods and apparatus
CN106130803A (zh) * 2016-08-31 2016-11-16 辽宁方翊科技有限公司 一种网络管理产品
US10594540B2 (en) 2016-09-02 2020-03-17 Pioneer Hi-Bred International, Inc. Wireless data transfer
CN106549850B (zh) * 2016-12-06 2019-09-17 东软集团股份有限公司 虚拟专用网络服务器及其报文传输方法
CN106533800B (zh) * 2016-12-16 2019-12-06 深圳市有方科技股份有限公司 一种实现终端网络适配的方法及rndis设备
CN110574468B (zh) * 2017-04-19 2023-10-31 惠普发展公司,有限责任合伙企业 基于质量得分的网络连接选择
US11275709B2 (en) * 2017-05-02 2022-03-15 Intel Corporation Systems and methods for multi-architecture computing
US10242750B2 (en) * 2017-05-31 2019-03-26 Sandisk Technologies Llc High-speed data path testing techniques for non-volatile memory
EP3413228A1 (en) 2017-06-06 2018-12-12 PwC Enterprise Advisory cvba Collecting device, mobile device program product, and method for a security analysis of a computing system
KR102271422B1 (ko) * 2017-11-28 2021-07-01 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 전자 장치를 통한 운영 체제 복구
WO2019108226A1 (en) 2017-12-01 2019-06-06 Hewlett-Packard Development Company, L.P. Computer devices to establish network connections
CN108494639A (zh) * 2018-02-09 2018-09-04 维沃移动通信有限公司 网络访问方法及移动终端
US11159628B1 (en) * 2020-03-30 2021-10-26 Amazon Technologies, Inc. Edge intelligence-based resource modification for transmitting data streams to a provider network
CN111459572B (zh) * 2020-03-31 2023-01-31 深圳市汇顶科技股份有限公司 程序加载方法、控制器、芯片以及电子设备
CN116319681A (zh) * 2020-10-20 2023-06-23 华为技术有限公司 设备间联通方法、电子设备、及计算机可读存储介质
CN112363968B (zh) * 2020-10-29 2022-01-28 北京新风航天装备有限公司 一种改进的usb接口的通讯方法
KR102498267B1 (ko) 2021-01-13 2023-02-13 주식회사 아이웍스 마이크로버블 생성 혼합 수중 에어레이터 회전분사 조립체
KR102633012B1 (ko) * 2021-11-02 2024-02-05 주식회사 다빈시스템스 Usb 테더링 서비스 제공 시스템 및 그 방법
KR102527699B1 (ko) * 2022-09-16 2023-04-28 김현중 원격제어용 직렬콘솔 시스템
CN115599638B (zh) * 2022-12-01 2023-03-10 浙江锐文科技有限公司 一种在智能网卡/dpu内对多服务大流量功耗优化方法及装置
CN117573214A (zh) * 2024-01-17 2024-02-20 深圳前海深蕾半导体有限公司 一种串口设备和Android系统框架融合的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307679A1 (en) * 2008-06-10 2009-12-10 Lg Electronics Inc. Communication device and a host device, a method of processing signal in the communication device and the host device, and a system having the communication device and the host device
US20100146279A1 (en) * 2007-02-05 2010-06-10 Gemalto S.A Method and system for communication between a usb device and a usb host

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19750366C2 (de) * 1997-11-14 2000-01-13 Bosch Gmbh Robert Verfahren zur Nutzung von einer Zentrale angebotener Dienste durch ein Endgerät und Endgerät
US20090013165A1 (en) * 2000-01-06 2009-01-08 Chow David Q Portable usb device that boots a computer as a server
JP2004341707A (ja) * 2003-05-14 2004-12-02 Nec Fielding Ltd コンピュータの保守作業支援システムと方法
US20050221894A1 (en) 2004-03-31 2005-10-06 Microsoft Corporation Multi-system game controller that operates in multiple USB modes
JP2006024155A (ja) 2004-07-09 2006-01-26 Workbit Corp 周辺装置
EP1710956B1 (en) 2005-04-04 2008-06-04 Research In Motion Limited Policy Proxy
JP4917838B2 (ja) * 2005-06-03 2012-04-18 セイコーインスツル株式会社 リモートロックシステム、および通信端末
US7707348B2 (en) * 2005-07-13 2010-04-27 Cisco Technology, Inc. Multi-use USB host to Ethernet adapter
US8335493B2 (en) * 2006-11-10 2012-12-18 Sony Ericsson Mobile Communications Ab System and method for service selection in a portable device
CN101127743B (zh) 2007-09-29 2010-06-09 中国电信股份有限公司 基于家庭网关中间件的媒体推送业务方法和系统
JP5172280B2 (ja) 2007-11-01 2013-03-27 株式会社日立システムズ 保守操作自動実行装置
US8638790B2 (en) * 2008-06-23 2014-01-28 Qualcomm Incorporated Method and apparatus for managing data services in a multi-processor computing environment
JP5204579B2 (ja) 2008-08-01 2013-06-05 株式会社バッファロー デバイス、情報処理システム、情報処理方法
JP2012155712A (ja) * 2011-01-05 2012-08-16 Sb System Kk 情報処理装置の遠隔保守管理方法及びシステム並びにそれに使用する情報端末装置及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146279A1 (en) * 2007-02-05 2010-06-10 Gemalto S.A Method and system for communication between a usb device and a usb host
US20090307679A1 (en) * 2008-06-10 2009-12-10 Lg Electronics Inc. Communication device and a host device, a method of processing signal in the communication device and the host device, and a system having the communication device and the host device

Also Published As

Publication number Publication date
DK2721501T3 (en) 2018-10-22
US20120324067A1 (en) 2012-12-20
KR20140021677A (ko) 2014-02-20
CN103608794B (zh) 2018-03-13
WO2012173751A1 (en) 2012-12-20
EP2721501B1 (en) 2018-07-04
JP5885834B2 (ja) 2016-03-16
US9619417B2 (en) 2017-04-11
CN103608794A (zh) 2014-02-26
EP2721501A1 (en) 2014-04-23
ES2687680T3 (es) 2018-10-26
JP2014520327A (ja) 2014-08-21

Similar Documents

Publication Publication Date Title
KR101530472B1 (ko) 모바일 컴퓨팅 디바이스를 통한 관리형 usb 서비스들의 원격 전달을 위한 방법 및 장치
US10778521B2 (en) Reconfiguring a server including a reconfigurable adapter device
JP6782307B2 (ja) ホストされたアプリケーションへの動的アクセス
US10013274B2 (en) Migrating virtual machines to perform boot processes
US9578034B2 (en) Trusted peripheral device for a host in a shared electronic environment
US7743107B2 (en) System and method for using remote module on VIOS to manage backups to remote backup servers
US7818559B2 (en) Boot negotiation among multiple boot-capable devices
US9396101B2 (en) Shared physical memory protocol
US11902271B2 (en) Two-way secure channels between multiple services across service groups
US11003618B1 (en) Out-of-band interconnect control and isolation
AU2020211396A1 (en) Computing system with gateway data transfer based upon device data flow characteristics and related methods
Hari et al. The swiss army smartphone: Cloud-based delivery of usb services
TW201514690A (zh) 基板管理控制器虛擬系統及方法
US20220385718A1 (en) Computing system with data transfer based upon device data flow characteristics and related methods

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant