KR102034296B1 - 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치 - Google Patents

모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR102034296B1
KR102034296B1 KR1020190045869A KR20190045869A KR102034296B1 KR 102034296 B1 KR102034296 B1 KR 102034296B1 KR 1020190045869 A KR1020190045869 A KR 1020190045869A KR 20190045869 A KR20190045869 A KR 20190045869A KR 102034296 B1 KR102034296 B1 KR 102034296B1
Authority
KR
South Korea
Prior art keywords
storage device
mobile storage
server
content
instructions
Prior art date
Application number
KR1020190045869A
Other languages
English (en)
Inventor
김선일
윤흥수
박영훈
Original Assignee
주식회사 해시블록
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 해시블록 filed Critical 주식회사 해시블록
Priority to KR1020190045869A priority Critical patent/KR102034296B1/ko
Application granted granted Critical
Publication of KR102034296B1 publication Critical patent/KR102034296B1/ko

Links

Images

Classifications

    • 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/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/2814
    • H04L67/36
    • H04L67/42
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/75Indicating network or usage conditions on the user display

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

모바일 스토리지 장치를 이용한 온라인 서비스의 제공 방법 및 그 장치가 제공 된다. 본 발명의 일 실시예에 따른 모바일 스토리지 장치는 인터넷에 연결된 호스트 장치에 전기적으로 연결됨으로써, 상기 호스트 장치를 통해 상기 인터넷으로의 연결을 제공하는 커넥터와, 스토리지 및 상기 커넥터 및 상기 스토리지와 연결되고, 상기 스토리지에 저장된 데이터를 이용하여 서버-클라이언트 모델에 따른 온라인 서비스를 외부 단말에 제공하기 위한 복수의 인스트럭션(instruction)을 실행하는 프로세서를 포함한다.

Description

모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치{METHOD FOR PROVIDING SERVICE PLATFORM USING MOBILE STORAGE APPARATUS AND APPARAUTS THEREOF}
본 발명은 서버를 통해서 서비스를 제공하는 플랫폼에 관한 것이다. 보다 자세하게는, 서버를 구성할 수 있는 장치와 구성된 서버가 서비스를 제공하기 위해 다른 장치에 연결할 수 있도록 중개하는 방법에 관한 것이다.
이 부분에 기술된 내용은 본 실시 예에 대한 배경 정보를 제공하는 것이며, 이 부분에 기재된 것만으로 종래의 기술에 속하는 것은 아니다.
네트워크(예를 들어, 인터넷)를 통한 서비스를 제공하기 위해서 서버를 사용하게 된다. 예를 들어, 이메일 서비스의 경우, 메일 송수신을 처리할 수 있는 메일 서버가 네트워크를 통해서 이메일 서비스를 제공한다. 메일 서버는 포털을 이용하여 수행되는 회원 가입 프로세스를 통해서 사용자에 대한 계정을 생성하고, 생성된 계정을 활용하여 메일의 송수신을 처리한다. 사용자는 개인 컴퓨터의 메일 사용자 에이전트(Mail User Agent; MUA)를 이용하여 메일 서버를 통해 메일을 송수신할 수 있다. 인터넷으로 상기 계정에 대한 메일 주소를 지정한 메일이 발송되면 메일 서버에 메일 내용과 첨부된 파일이 저장되고 메일 서버는 해당 계정의 사용자에 대한 알림을 발송할 수 있다. 즉, 사용자는 메일 서버를 포함하는 인프라를 구축한 서비스 제공자를 통해서 메일 서비스를 제공 받을 수 있다.
홈페이지 제공 서비스의 경우도 유사하게 웹호스팅 서버의 인프라를 구축하고 홈페이지가 조회될 수 있도록 서비스를 제공하는 웹호스팅 서비스 제공자를 통해서 사용자가 홈페이지 제공 서비스를 제공 받을 수 있었다. 또한, 소셜 미디어(Social Media) 서비스도 게시글 등을 등록하고 다른 사용자에 의해 조회될 수 있도록 하는 서버를 구축한 서비스 제공자에 의해서 제공될 수 있다. 영상이나 음악 등의 미디어도 미디어 배달 중개자(Media Delivery Agent)를 필요로 한다.
본 발명이 해결하고자 하는 기술적 과제는, 많은 비용이 소모되는 서버 및 인프라 구축을 대신하여 낮은 비용만으로도 서비스를 사용할 수 있도록 하는 장치 및 방법을 제공하는 것이다.
또한 본 발명이 해결하고자 하는 다른 기술적 과제는, 널리 상용화된 모바일 스토리지를 이용하여 서비스를 제공할 수 있도록 하는 방법 및 장치를 제공하는 것이다.
또한 본 발명이 해결하고자 하는 또 다른 기술적 과제는, 고정 IP 주소를 가지고 서비스를 제공하는 서버와 같이 서비스를 제공할 수 있기 위하여 모바일 스토리지 장치가 다른 장치와 데이터를 송수신하는 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 일 실시예에 따른 모바일 스토리지 장치는, 인터넷에 연결된 호스트 장치에 전기적으로 연결됨으로써, 상기 호스트 장치를 통해 상기 인터넷에 연결을 제공하는 커넥터; 스토리지; 및 상기 커넥터 및 상기 스토리지와 연결되고, 상기 스토리지에 저장된 데이터를 이용하여 서버-클라이언트 모델에 따른 온라인 서비스를 외부 단말에 제공하기 위한 복수의 인스트럭션(instruction)을 실행하는 프로세서를 포함하되, 상기 복수의 인스트럭션은, 상기 커넥터가 상기 호스트 장치에 연결되어 상기 모바일 스토리지 장치가 상기 인터넷에 연결되면, 자동으로 상기 외부 단말에 상기 모바일 스토리지 장치의 주소 정보를 제공하는 중개 서버에 등록 요청을 송신하되, 상기 등록 요청은 상기 커넥터가 상기 호스트 장치에 연결됨에 따라 상기 모바일 스토리지 장치에 할당되는 주소 정보를 포함하는 것인, 인스트럭션과, 상기 외부 단말이 상기 중개 서버로부터 상기 모바일 스토리지 장치의 주소 정보를 획득한 후, 상기 온라인 서비스의 제공을 위한 패킷을 상기 외부 단말과 홀 펀칭(hole punching) 방식으로 p2p 송수신하는 인스트럭션을 포함할 수 있다.
또한, 다른 몇몇 실시 예에 따르면, 상기 복수의 인스트럭션은, 모바일 스토리지 장치 인증 인스트럭션을 더 포함하되, 상기 모바일 스토리지 장치 인증 인스트럭션은, 상기 커넥터가 상기 호스트 장치에 연결됨으로써 상기 모바일 스토리지 장치가 최초로 상기 인터넷에 연결되는 것에 응답하여, 자동으로 상기 인터넷에 연결된 장치 인증 서버에 인증 요청을 송신하되, 상기 인증 요청에는 상기 모바일 스토리지 장치의 제조시 기록된 장치 식별자가 포함되는, 인스트럭션; 상기 장치 인증 서버로부터 인증 성공을 가리키는 데이터가 수신된 경우, 회원 가입 정보를 입력 받기 위한 GUI가 표시되기 위한 데이터를 상기 호스트 장치에 제공하는 인스트럭션; 및 플랫폼 인증 서버로부터 상기 모바일 스토리지 장치에 발급되는 장치 고유 키를 상기 스토리지에 저장하되, 상기 장치 고유 키는 상기 회원 가입 정보에 매치되는 것인, 인스트럭션을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치 인증 인스트럭션은, 상기 커넥터가 상기 호스트 장치에 연결됨으로써 상기 모바일 스토리지 장치가 상기 인터넷에 연결되는 것에 응답하여, 자동으로 상기 플랫폼 인증 서버에 의하여 발급된 장치 고유 키에 대한 정보를 포함하는 인증 요청을 상기 플랫폼 인증 서버에 송신하는 인스트럭션을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치 인증 인스트럭션은, 상기 인증 요청에 대한 인증 성공을 나타내는 데이터에 대한 응답으로, 상기 플랫폼 인증 서버로부터 공개키를 수신하여 상기 장치 고유 키를 업데이트하는 인스트럭션을 더 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치는 사용자에 의하여 상태 정보를 출력할 수 있는 인디케이터를 더 포함하되, 상기 모바일 스토리지 장치 인증 인스트럭션은, 상기 플랫폼 인증 서버로부터 인증 실패를 가리키는 데이터가 수신되는 경우, 상기 인디케이터가 상태 정보를 출력할 수 있도록 하는 제어 신호를 출력하는 인스트럭션을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 복수의 인스트럭션은, 모바일 스토리지 장치 인증 인스트럭션을 더 포함하되, 상기 모바일 스토리지 장치 인증 인스트럭션은, 상기 모바일 스토리지 장치에 저장된 개인 키와 블록 체인 시스템의 노드를 구성하는 플랫폼 인증 서버에 저장된 공개 키를 조합하여 장치 고유 키를 활성화하는 인스트럭션과, 상기 플랫폼 인증 서버로부터 상기 장치 고유 키를 갱신 받는 인스트럭션을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 복수의 인스트럭션은, 상기 모바일 스토리지 장치의 주소 정보가 변경된 경우, 상기 중개 서버에 주소 정보의 업데이트를 요청하는 인스트럭션을 더 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 업데이트를 요청하는 인스트럭션은, 상기 커넥터에 연결된 호스트 장치의 주소 정보가 변경되거나, 상기 커넥터에 연결된 호스트 장치가 변경된 경우에 상기 모바일 스토리지 장치의 주소 정보가 변경된 것으로 판단할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 프로세서는, 부팅 완료 후 상기 복수의 인스트럭션을 자동으로 실행하고, 상기 복수의 인스트럭션은, 상기 모바일 스토리지 장치 제조 시에, 바로 실행 가능하도록 설치된 온라인 서비스 제공 소프트웨어에 포함된 것을 특징으로 할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 온라인 서비스 제공 소프트웨어는, 상기 스토리지의 사용자 레벨 접근 불가능 영역에 설치된 것을 특징으로 할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치는, ROM(Read Only Memory)를 더 포함하고, 상기 온라인 서비스 제공 소프트웨어는, 상기 ROM에 설치된 것을 특징으로 할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 복수의 인스트럭션은, 상기 온라인 서비스의 제공에 따라 상기 스토리지에 저장된 컨텐츠의 리드(read) 억세스 트래픽이 기준치를 초과하는 경우, 상기 컨텐츠를 상기 인터넷에 연결된 컨텐츠 딜리버리 서버에 송신하는 인스트럭션; 및 상기 컨텐츠에 대한 리드 억세스를 상기 컨텐츠 딜리버리 서버로 리다이렉션(redirection) 하는 인스트럭션을 더 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 컨텐츠는, 상기 모바일 스토리지 장치가 상기 호스트 장치에서 연결 해제 되면, 상기 컨텐츠 딜리버리 서버에서 비활성화 또는 삭제될 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 컨텐츠는, 상기 컨텐츠의 리드(read) 억세스 트래픽이 기준치를 하회하는 경우, 상기 컨텐츠 딜리버리 서버에서 삭제될 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치는 사용자에 의하여 상태 정보를 출력할 수 있는 인디케이터를 더 포함하고, 상기 컨텐츠를 상기 인터넷에 연결된 컨텐츠 딜리버리 서버에 송신하는 인스트럭션은, 상기 인디케이터의 출력을 제어하는 제어 신호를 출력하는 인스트럭션을 포함할 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 컨텐츠는, 기 지정된 기준을 만족하는 경우, 상기 컨텐츠가 저장된 상기 모바일 스토리지 장치와 p2p 접속된 바 없는 외부 단말들이 접속할 수 있는 미디어 포털 서비스에 노출될 수 있다.
또한, 또 다른 몇몇 실시 예에 따르면, 상기 모바일 스토리지 장치는 상태 정보를 출력할 수 있도록 구비된 인디케이터를 더 포함하고, 상기 컨텐츠는, 상기 모바일 스토리지 장치가 상기 호스트 장치에서 연결 해제 되면, 상기 컨텐츠 딜리버리 서버에서 비활성화 또는 삭제되고, 상기 복수의 인스트럭션은, 상기 컨텐츠가 상기 미디어 포털 서비스에 노출된 것을 가리키는 데이터를 수신하는 것에 응답하여, 상기 인디케이터를 제어하는 제어 신호를 출력하는 인스트럭션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 일 실시예에 따른 컴퓨팅 장치에 의하여 수행되는 방법은, 호스트 장치에 연결된 모바일 스토리지 장치로부터, 상기 모바일 스토리지 장치에 발급된 장치 고유 키 및 상기 호스트 장치에 연결됨에 따라 상기 모바일 스토리지 장치에 할당 된 주소 정보를 포함한 등록 요청을 수신하는 단계; 상기 등록 요청을 반영하여 매칭 테이블을 업데이트 하는 단계; 외부 단말로부터 로그인 정보를 수신하는 단계; 상기 매칭 테이블을 이용하여 상기 로그인 정보에 대응되는 장치 고유 키를 조회하는 단계; 및 상기 조회된 장치 고유 키의 주소 정보를 상기 외부 단말에 송신하고, 상기 조회된 장치 고유 키를 가진 모바일 스토리지 장치에 상기 외부 단말의 주소 정보를 송신함으로써, 홀펀칭을 중개하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 다른 일 실시예에 따른 컴퓨팅 장치에 의하여 수행되는 방법은, 호스트 장치에 연결된 모바일 스토리지 장치로부터, 상기 모바일 스토리지 장치에 발급된 장치 고유 키 및 상기 호스트 장치에 연결됨에 따라 상기 모바일 스토리지 장치에 할당 된 주소 정보를 포함한 등록 요청을 수신하는 단계; 상기 등록 요청을 반영하여 매칭 테이블을 업데이트 하는 단계; 상기 호스트 장치를 통해서 수신자 선택 사용자 인터페이스를 제공하는 단계; 상기 모바일 스토리지 장치로부터 상기 수신자 선택 사용자 인터페이스를 통해 선택된 외부 단말에 대한 컨텐츠의 송신 요청을 수신하는 단계; 상기 외부 단말의 연결 상태가 상기 컴퓨팅 장치에 연결되지 않은 상태인 경우, 상기 컨텐츠를 하나 이상의 주변 모바일 스토리지 장치에 저장되도록 상기 매칭 테이블을 이용하여 상기 모바일 스토리지 장치와 상기 하나 이상의 주변 모바일 스토리지 장치 사이의 홀펀징을 중개하는 단계; 및 상기 외부 단말이 상기 컴퓨팅 장치에 연결된 경우, 상기 컨텐츠가 상기 외부 단말로 전송되도록 상기 하나 이상의 주변 모바일 스토리지 장치와 상기 외부 단말 사이의 홀펀칭을 중개하는 단계;를 더 포함할 수 있다.
또한, 다른 몇몇 실시 예에 따르면, 상기 컨텐츠의 전송 이력에 대한 로그를 저장하는 단계; 및 상기 컨텐츠에 대한 송신 요청 또는 제공 요청이 수신되는 경우, 상기 로그를 이용하여 홀펀칭을 중개하는 단계;를 더 포함할 수 있다.
도 1은 몇몇 실시 예에 따라 모바일 스토리지 장치가 외부 단말과 통신을 수행하기 위한 구조를 설명하기 위한 도면이다.
도 2는 몇몇 실시 예에 따른 모바일 스토리지 장치의 구조를 간단히 도시한 구조도이다.
도 3은 몇몇 실시 예에 따라 모바일 스토리지 장치를 이용하여 서비스를 제공하는 시스템의 구조를 설명하기 위한 도면이다.
도 4는 몇몇 실시 예에 따라 모바일 스토리지 장치가 서비스를 제공하기 위해 외부 단말과 연결하는 프로세스를 도시한 도면이다.
도 5 내지 10은 몇몇 실시 예에 따라 모바일 스토리지 장치가 호스트 장치에 연결된 경우에 수행될 수 있는 프로세스를 도시한 도면이다.
도 11은 몇몇 실시 예에 따라 중개 서버가 모바일 스토리지 장치와 외부 단말 사이에 홀 펀칭(Hole Punching)을 수행하는 프로세스를 설명하기 위한 도면이다.
도 12는 몇몇 실시 예에 따른 매칭 테이블의 예시를 도시한 도면이다.
도 13 내지 15는 몇몇 실시 예에 따라 개인 간(Peer to peer; P2P) 파일 공유 방식을 이용하여 컨텐츠를 제공하는 방법을 설명하기 위한 도면이다.
도 16은 몇몇 실시 예에 따라 모바일 스토리지 장치가 컨텐츠 딜리버리 서버를 이용하여 컨텐츠를 제공하는 방법을 설명하기 위한 도면이다.
도 17은 몇몇 실시 예에 따라 컨텐츠가 미디어 포털 서버에서 제공하는 미디어 포털 서비스를 통해 노출된 경우에 수행될 수 있는 프로세스를 도시한 도면이다.
도 18은 몇몇 실시 예에 따라 모바일 스토리지 장치가 다른 모바일 스토리지 장치에 컨텐츠를 전송하는 프로세스를 도시한 도면이다.
도 19는 수신자 선택 사용자 인터페이스(User Interface; UI)의 예시를 도시한 도면이다.
도 20 내지 22는 몇몇 실시 예에 따라 모바일 스토리지 장치가 다른 모바일 스토리지 장치에 컨텐츠를 전송하는 구조를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
다른 정의가 없다면, 본 명세서에서 어떤 구성요소가 다른 구성요소와 "연결"되었다고 함은 물리적으로 연결된 경우만이 아니라 통신 가능하도록 연결된 경우를 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 몇몇 실시 예에 따라 모바일 스토리지 장치(100)가 외부 단말(130)과 통신을 수행하기 위한 구조를 설명하기 위한 도면이다.
몇몇 실시 예에 따른 모바일 스토리지 장치(100)는 호스트 장치(110)에 연결될 수 있다. 예를 들어, 모바일 스토리지 장치(100)는 호스트 장치(110)의 USB(Universal Serial Bus) 포트에 연결될 수 있다. 다만, 이에 한정되지 아니하며, 모바일 스토리지 장치(110)는 다른 형태의 데이터 통신 포트나 무선 통신 모듈을 이용하여 호스트 장치(110)에 연결될 수도 있다. 모바일 스토리지 장치(100)는 데이터를 저장할 수 있는 저장 매체를 구비하고, 호스트 장치(110)에 저장된 데이터를 전송하거나 호스트 장치(110)로부터 수신된 데이터를 저장할 수 있다. 모바일 스토리지 장치(100)는, 예를 들어 플래시 메모리를 구비하는 개인저장매체의 형태일 수 있다.
호스트 장치(110)는 네트워크(예를 들어, 인터넷)에 연결할 수 있는 장치를 의미한다. 예를 들어, 호스트 장치(110)는 네트워크에 연결된 데스크톱 PC, 랩톱, 스마트폰, 태블릿 PC와 같은 컴퓨팅 장치일 수 있다. 또는, 다른 예를 들면 호스트 장치(110)는 인터넷 IP 주소 공유기나 억세스 포인트(Access Point; AP) 장치와 같이 다른 장치를 네트워크에 연결하기 위한 네트워크 장치일 수도 있다.
외부 단말(130)은 서비스 제공을 위해 호스트 장치(110)를 통해서 모바일 스토리지 장치(100)와 데이터를 송수신하는 장치이다. 몇몇 실시 예에 따르면, 외부 단말(130)은 모바일 스토리지 장치(100)와 동일하거나 유사한 형태의 다른 모바일 스토리지 장치일 수 있다. 이 경우 다른 모바일 스토리지 장치는 다른 호스트 장치를 통해서 호스트 장치(110)와 연결될 수 있다. 다른 실시 예에 따르면, 외부 단말(130)은 네트워크에 연결된 데스크톱 PC, 랩톱, 스마트폰, 태블릿 PC와 같은 컴퓨팅 장치일 수 있다.
몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 서비스 제공을 위해 개인 간(Peer to peer; P2P) 통신 방식을 통해서 외부 단말(130)과 통신할 수 있다. 여기서, 서비스는 프로그램이 실행되어 네트워크를 통해서 사용자에게 제공될 수 있는 것을 의미한다. 예를 들어, 서비스는 메일링 서비스, 파일 공유 서비스, 미디어 제공 서비스 및 웹 호스팅 서비스 중 어느 하나 이상을 포함할 수 있다. 모바일 스토리지 장치(100)는 호스트 장치(110)에 연결되면 호스트 장치(110)로부터 전력을 공급받을 수 있으며, 서비스를 제공하기 위한 인스트럭션을 실행할 수 있다. 또한, 몇몇 실시 예에 따르면, 서비스는 서버-클라이언트 모델에 따른 온라인 서비스일 수 있다. 즉, 모바일 스토리지 장치(100)가 서버의 기능을 수행하여 클라이언트인 외부 단말(130)에 서비스를 제공할 수 있다.
도 2는 몇몇 실시 예에 따른 모바일 스토리지 장치(100)의 구조를 간단히 도시한 구조도이다. 도 2에 도시된 모바일 스토리지 장치(100)의 구조는 일부 실시 예를 설명하기 위한 것이며, 실시 예에 따라 모바일 스토리지 장치(100)는 다른 구성요소를 더 포함하거나 도 2에 도시된 구성요소 중 일부를 포함하지 않을 수 있다.
몇몇 실시 예에 따른 모바일 스토리지 장치(100)는 커넥터(101), 프로세서(102), 및 스토리지(103) 를 포함할 수 있다. 커넥터(101)는 모바일 스토리지 장치(100)가 호스트 장치(110)와 연결하여 신호를 송수신하기 위한 인터페이스를 포함할 수 있다. 예를 들어, 커넥터(101)는 USB 포트에 연결하기 위한 인터페이스를 포함할 수 있다. 다른 예를 들면, 커넥터(101)는 무선 통신을 수행하는 무선 통신 모듈로 대체될 수도 있다. 또한, 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 인디케이터(indicator)(104)를 더 포함할 수도 있다.
프로세서(102)는 커넥터(101)를 통해서 모바일 스토리지 장치(100)가 호스트 장치(110)에 전기적으로 연결되면 호스트 장치(110)를 통해서 네트워크(예를 들어, 인터넷)에 연결될 수 있다. 프로세서(102)는 모바일 스토리지 장치(100)가 네트워크에 연결되는 것에 응답하여 스토리지(103)에 저장된 데이터를 이용하여 온라인 서비스를 외부 단말(130)에 제공하기 위한 인스트럭션(instruction)들을 실행할 수 있다. 프로세서(102)는 인스트럭션을 실행하여 모바일 스토리지 장치(100)에 의해 수행되는 동작을 제어할 수 있다.
프로세서(102)는 커넥터(101)를 통해서 스토리지(103)에 저장된 데이터를 외부로 전송하거나 데이터를 수신할 수 있다. 또한, 프로세서(102)는 스토리지(103)에 데이터를 기록하거나 스토리지(103)로부터 데이터를 읽을 수 있다. 또한, 프로세서(102)는 인디케이터(104)를 제어하여 신호를 출력할 수 있다.
인디케이터(104)는 프로세서(103)의 제어에 따라 간단한 정보를 출력하기 위한 장치를 의미한다. 몇몇 실시 예에 따르면, 인디케이터(104)는 LED 램프를 포함할 수 있다. 다른 실시 예에 따르면, 인디케이터(104)는 음향을 출력하는 스피커를 포함할 수도 있다.
스토리지(103)는 데이터를 저장할 수 있는 기록매체를 포함할 수 있다. 예를 들어, 스토리지(103)는 플래시 메모리 타입의 메모리, 솔리드 스테이트 드라이브(Solid State Drive) 타입의 메모리, 실리콘 디스크 드라이브(Silicon Disk Drive) 타입의 메모리, 하드디스크(Hard Disk) 타입의 메모리, 멀티미디어 카드 마이크로(Multimedia Card Micro) 타입의 메모리, 카드 타입의 메모리, 램(Random Access Memory; RAM), SRAM(Static Random Access Memory), 롬(Read-only Memory; ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장 매체를 포함할 수 있다. 스토리지(103)는 서비스를 위해 제공되는 컨텐츠를 저장할 수 있다. 예를 들어, 컨텐츠는 동영상, 사진, 음악 등의 멀티미디어 데이터이거나 전자 문서를 포함할 수 있다. 모바일 스토리지 장치(100)는 스토리지(103)에 저장된 컨텐츠를 외부 단말(130)에 직접 제공할 수 있으므로 별도의 서버에 컨텐츠를 전송할 필요 없이 컨텐츠를 제공할 수 있다.
몇몇 실시 에에 따르면, 스토리지(103)에는 사적 영역(Private Region), 제한적 공개 영역, 무제한 공개 영역 중 하나 이상이 설정될 수 있다. 사적 영역은 모바일 스토리지 장치(100)의 사용자 이외에는 억세스가 금지되는 영역을 의미한다. 제한적 공개 영역은 임의의 사용자의 읽기 억세스는 허용되고, 쓰기 억세스는 모바일 스토리지 장치(100)의 사용자에게만 허용되는 영역을 의미한다. 무제한 공개 영역은 임의의 사용자에 대해 읽기 억세스와 쓰기 억세스가 허용되는 영역을 의미한다.
또한, 다른 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 스토리지(103)의 용량을 확장하여 사용하기 위한 외부 저장매체 연결 포트를 더 포함할 수도 있다.
몇몇 실시 예에 따른 모바일 스토리지 장치(100)는 USB 저장 장치를 개조하여 간단하게 구성될 수 있다.
도 3은 몇몇 실시 예에 따라 모바일 스토리지 장치(100)를 이용하여 서비스를 제공하는 시스템의 구조를 설명하기 위한 도면이다.
호스트 장치(110)에 연결된 모바일 스토리지 장치(100)는 네트워크(10)를 통해서 외부 단말(130)에 온라인 서비스를 제공할 수 있다. 모바일 스토리지 장치(100)가 외부 단말(130)에 연결하고 서비스를 제공하기 위해 장치 인증 서버(121), 플랫폼 인증 서버(122), 중개 서버(123), 컨텐츠 딜리버리 서버(Contents Delivery Server)(124) 및 미디어 포털 서버(125) 등이 시스템에 포함될 수 있다.
도 3에서 장치 인증 서버(121), 플랫폼 인증 서버(122), 중개 서버(123), 컨텐츠 딜리버리 서버(124) 및 미디어 포털 서버(125)는 별도의 구성요소로 도시되었으나, 반드시 물리적으로 각각 별개의 컴퓨팅 장치로 구성되어야 하는 것은 아니다. 도 3에 장치 인증 서버(121), 플랫폼 인증 서버(122), 중개 서버(123), 컨텐츠 딜리버리 서버(124) 및 미디어 포털 서버(125) 중에서 둘 이상이 하나의 물리적인 컴퓨팅 장치 상에서 가상 머신으로 구현될 수도 있다. 또한, 장치 인증 서버(121), 플랫폼 인증 서버(122), 중개 서버(123), 컨텐츠 딜리버리 서버(124) 및 미디어 포털 서버(125) 중에서 하나 이상이 분산 시스템으로 구성될 수도 있다. 또한, 실시 예에 따라서 시스템은 다른 구성요소를 더 포함하거나, 도 3에 도시된 구성요소 중 일부 구성요소를 생략할 수도 있다.
시스템을 제공하는 제공자 입장에서는 모바일 스토리지 장치(100)의 판매를 위해 제공자로부터 모바일 스토리지 장치(100)를 구매한 사용자에 한해서만 외부 단말(130)에 서비스가 가능하도록 지원할 필요가 있다. 이를 위해, 장치 인증 서버(121)는 모바일 스토리지 장치(100)를 인증할 수 있다.
모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)를 구매한 사용자가 호스트 장치(110)를 통해서 네트워크(10)에 최초로 연결된 경우 모바일 스토리지 장치 인증 인스트럭션을 실행할 수 있다. 모바일 스토리지 장치 인증 인스트럭션은 장치 인증 서버(121)를 통해서 모바일 스토리지 장치(100)가 네트워크(10)에 최초로 연결된 경우에 한해서 실행되고, 모바일 스토리지 장치(100)가 장치 인증 서버(121)를 통한 인증이 완료된 이후에는 실행되지 않을 수 있다.
모바일 스토리지 장치 인증 인스트럭션은 장치 인증 서버(121)에 인증 요청을 송신하는 인스트럭션을 포함할 수 있다. 여기서, 인증 요청은 모바일 스토리지 장치(100)를 식별하는 식별자를 포함할 수 있다. 또한, 식별자는 장치 인증 서버(121)가 시스템의 제공자에 의해 제조된 식별자인지 여부를 판단할 수 있도록 모바일 스토리지 장치(100)의 제조시에 모바일 스토리지 장치(100)에 기록된 장치 식별자일 수 있다.
또한, 모바일 스토리지 장치 인증 인스트럭션은 장치 인증 서버(121)로부터 인증 성공을 나타내는 데이터가 수신된 경우, 사용자 정보를 입력 받기 위한 그래픽 사용자 인터페이스(GUI)가 표시되기 위한 데이터를 호스트 장치(110)에 제공할 수 있다. 이 경우, 호스트 장치(110)는 디스플레이 장치를 구비한 장치일 수 있다. 사용자 정보를 입력 받기 위한 GUI는 사용자 정보를 통해서 사용자의 계정을 생성하기 위한 회원 가입 프로세스를 진행하는 회원 가입 GUI이거나 또는 사용자 계정에 대한 정보를 입력 받아 로그인 프로세스를 처리하기 위한 로그인 GUI일 수 있다.
장치 인증 서버(121)를 통해서 인증이 완료된 모바일 스토리지 장치(100)는 플랫폼 인증 서버(122)로부터 사용자 정보에 매칭된 장치 고유 키를 발급받을 수 있다. 장치 고유 키는 인증이 완료된 모바일 스토리지 장치(100)에 대해 부여되는 비밀 키(Private Key)일 수 있다. 몇몇 실시 예에 따르면, 플랫폼 인증 서버(122)는 보안을 위해 블록 체인(Block Chain)의 노드로 구성될 수 있다. 이 경우, 플랫폼 인증 서버(122)는 블록 체인을 기반으로 분산된 데이터를 기초로 모바일 스토리지 장치(100)에 대한 인증을 수행할 수 있다.
모바일 스토리지 장치(100)는 발급받은 고유 키를 이용하여 인증을 받을 수 있다. 따라서, 모바일 스토리지 장치(100)는 사용자 정보를 입력 받기 위한 입력 장치나 디스플레이 장치가 없는 인터넷 IP 주소 공유기와 같은 장치에 연결되는 경우에도 인증을 받을 수 있다.
중개 서버(123)는 모바일 스토리지 장치(100)의 요청에 따라 모바일 스토리지 장치(100)의 인터넷 IP 주소 정보를 등록할 수 있다. 중개 서버(123)는 모바일 스토리지 장치(100)가 외부 단말(130)에 서비스를 제공할 수 있도록 홀 펀칭(Hole Punching)을 수행하여 모바일 스토리지 장치(100)와 외부 단말(130) 사이의 P2P 통신을 연결할 수 있다. 몇몇 실시 예에 따르면, 중개 서버(123)는 모바일 스토리지 장치(100)와 외부 단말(130)이 서로 연결되기 위한 랑데부 서버의 역할을 수행할 수 있다.
몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 컨텐츠 딜리버리 서버(124)를 통해서 컨텐츠를 외부 단말(130)에 제공할 수 있다. 모바일 스토리지 장치(100)는 낮은 가격에 소형으로 제공되기 위하여 처리 가능한 트래픽에 한계가 있다. 따라서, 모바일 스토리지 장치(100)는 감당하기 어려운 수준의 트래픽이 발생할 경우 컨텐츠를 컨텐츠 딜리버리 서버(124)에 제공하고, 컨텐츠 딜리버리 서버(124)가 컨텐츠를 제공하도록 할 수 있다. 예를 들어, 모바일 스토리지 장치(100)에 저장된 컨텐츠에 대한 리드(read) 억세스 트래픽이 기준치를 초과하는 경우에 모바일 스토리지 장치(100)는 컨텐츠에 대한 리드 억세스 트래픽을 컨텐츠 딜리버리 서버(124)로 리다이렉션(redirection)할 수 있다.
미디어 포털 서버(125)는 외부 단말(130)에 포털(portal) 서비스를 제공할 수 있다. 미디어 포털 서버(125)는 모바일 스토리지 장치(100)에 저장된 컨텐츠를 노출시켜 모바일 스토리지 장치(100)와 P2P 연결된 적 없는 외부 단말들이 컨텐츠에 접속할 수 있는 경로를 제공할 수 있다. 예를 들어, 미디어 포털 서버(125)는 컨텐츠 딜리버리 서버(124)에 저장된 컨텐츠 중에서 선호도가 높은 컨텐츠에 관련된 정보를 표시하고 그 링크를 제공하는 포털 페이지를 외부 단말(130)에 제공할 수 있다. 외부 단말(130)은 포털 페이지를 통해서 컨텐츠에 접근할 수 있다.
도 4는 몇몇 실시 예에 따라 모바일 스토리지 장치(100)가 서비스를 제공하기 위해 외부 단말(130)과 연결하는 프로세스를 도시한 도면이다.
먼저, 단계 S410에서 모바일 스토리지 장치(100)는 호스트 장치(110)와 전기적으로 연결될 수 있다. 모바일 스토리지 장치(100)는 호스트 장치(110)와 연결됨으로써 호스트 장치(110)를 통해 네트워크(10)에 연결될 수 있다. 이 경우, 모바일 스토리지 장치(100)는 호스트 장치(110)로부터 전력을 공급 받아서 실시간 운영체제를 부팅할 수 있다. 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)의 프로세서(101)는 부팅이 완료되면 모바일 스토리지 장치(100)의 제조시에 설치된 온라인 서비스 제공 소프트웨어에 포함된 복수의 인스트럭션을 자동으로 실행할 수 있다. 여기서, 온라인 서비스 제공 소프트웨어는 스토리지(103)의 사용자 레벨에서 접근이 불가능한 영역에 설치되거나, 모바일 스토리지 장치(100)의 Read-Only Memory(ROM)에 설치된 것일 수 있다.
또한, 모바일 스토리지 장치(100)가 호스트 장치(110)에 연결되는 경우, 모바일 스토리지 장치(100)는 스토리지(103)에 저장된 프로그램이 실행되어 서비스 제공을 위한 시스템에 로그인을 시도할 수 있다. 여기서, 몇몇 실시 예에 따르면 모바일 스토리지 장치(100)는 블록체인 인증을 통해서 인증을 받을 수 있다.
여기서, 로그인 시 모바일 스토리지 장치(100)에 저장된 개인 키(Private Key) 또는 장치 식별자가 유효한지 여부에 따라서 모바일 스토리지 장치(100)가 인증될 수 있다. 여기서, 모바일 스토리지 장치(100)가 유효하게 인증된 경우, 로그인이 완료됨에 따라서 공개 키(Public key)를 이용하여 개인 키를 갱신하고 기록할 수 있다.
또한, 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100) 또는 플랫폼 인증 서버(122)는 플랫폼 인증 서버(122)가 가진 공개 키와 사용자가 보유한 개인 키를 조합하여 장치 고유 키로 활성화할 수 있다. 이후 모바일 스토리지 장치(100)는 사용자에 대한 인증(예를 들어, 휴대폰을 이용한 인증)의 절차를 거쳐서 플랫폼 인증 서버(122)로부터 장치 고유 키를 갱신 받고 다시 로그인 절차를 속행할 수 있다.
모바일 스토리지 장치(100)에 대한 인증이 완료된 경우, 현재의 모바일 스토리지 장치(100)에 대한 주소 정보와 서비스와 관련된 주요 정보가 중개 서버(123)로 전달되고, 중개 서버(123)에 의해 매칭 테이블이 업데이트될 수 있다. 여기서, 서비스에 관련된 주요 정보는, 예를 들어, 개인 메일 계정, 웹 호스팅 주소 또는 제공되는 미디어 파일의 위치 등을 포함할 수 있다.
여기서, 모바일 스토리지 장치(100)는 여러 가지 호스트 장치에 연결될 수 있다. 따라서, 모바일 스토리지 장치(100)가 다른 호스트 장치에 연결되거나, 호스트 장치의 IP 주소가 동적 IP 주소인 경우 모바일 스토리지 장치(100)에 할당되는 주소가 변경될 수 있다. 또는, 모바일 스토리지 장치(100)에 할당되는 IP 주소나 외부 단말(130)의 IP 주소가 사설 IP 주소인 경우, 사설 IP 주소를 할당한 네트워크 주소 변환기(Network Address Translator; NAT) 하위의 장비는 자신의 사설 IP 주소만 알 수 있을 뿐 어떤 공인 IP 주소로 외부와 통신하고 있는지 알 수 없다. 또한, NAT의 외부에서 NAT 하위 장비와 통신하는 피어는 상대방의 공인 IP 주소와 NAT가 할당한 포트만 알 수 있으며 사설 IP 주소는 알 수 없다. 또한 NAT 외부의 피어는 먼저 NAT 하위의 장비로 통신을 시작(initiate)할 수 없는 문제가 있다. 따라서, 이 경우에는 모바일 스토리지 장치(100)와 외부 단말(130)이 직접 통신을 시작할 수 없는 문제가 있다.
따라서, 모바일 스토리지 장치(100)는 외부 단말(130)과 연결하기 위해 모바일 스토리지 장치(100)와 외부 단말(130) 간에 통신이 가능할 있도록 IP 주소와 포트 정보를 확보할 필요가 있다. IP 주소와 포트 정보를 확보하기 위해 중개 서버(123)가 이용될 수 있다. 단계 S420에서 모바일 스토리지 장치(100)는 자동으로 중개 서버(123)에 모바일 스토리지 장치(100)에 등록 요청을 송신할 수 있다. 여기서 등록 요청은 커넥터가 호스트 장치(110)에 연결되었을 때 모바일 스토리지 장치(100)에 할당되는 주소 정보를 포함할 수 있다.
이후, 단계 S430에서 모바일 스토리지 장치(100)는 중개 서버(123)를 이용하여 외부 단말(130)과 연결하고, 데이터를 P2P 송수신할 수 있다. 여기서, 중개 서버(123)는 모바일 스토리지 장치(100)와 외부 단말(130) 사이의 홀 펀칭(Hole Punching)을 수행할 수 있다.
현재의 인터넷 주소 체계의 방식은 글로벌(global) 주소 영역, 개인(private) 주소 영역들이 네트워크 주소 변환(Network Address Transform)을 통해서 연결되는 주소 체계이다. 따라서, 서로 다른 개인 네트워크에 존재하는 두 피어(peers)인 모바일 스토리지 장치(100) 및 외부 단말(130)이 직접적으로 통신하기 위한 방법이 필요하다. 여기서, 홀 펀칭이란 직접적인 TCP/UDP 통신 등이 불가능한 피어(peer)들 간에 직접적인 통신이 가능할 수 있도록 IP 주소와 포트를 확보하는 것을 의미한다. 홀 펀칭을 이용하여, 서로 다른 네트워크에 존재하는 모바일 스토리지 장치(100)와 외부 단말(130) 간의 P2P 연결을 구성할 수 있다.
예를 들어, 모바일 스토리지 장치(100)를 이용하여 메일링 서비스를 제공할 때, 모바일 스토리지 장치(100)는 외부 단말(130)로부터 메일을 수신하거나, 외부 단말(130)로 메일을 전송할 수 있다. 메일을 수신하는 경우를 로 들면, 외부 단말(130)에서 수신자 메일 주소를 포함하는 메일이 발송된 경우, 중개 서버(123)에 의해 모바일 스토리지 장치(100)의 메일 주소와 일치하는 메일이 감지되면, 중개 서버(123)는 발송된 메일이 모바일 스토리지 장치(100)에 의해 제공되는 메일 서버로 전송되고 모바일 스토리지 장치(100)에 저장되도록 할 수 있다.
또는, 모바일 스토리지 장치(100)를 이용하여 미디어 서비스를 제공하는 경우를 예로 들면, 미디어 포털 서버(125)가 포털 페이지를 통해서 미디어에 대한 재생을 요청 받을 수 있다. 이 경우, 중개 서버(123)는 해당 미디어의 파일을 저장하고 있는 모바일 스토리지 장치(100)와 외부 단말(130)이 그 파일을 송수신할 수 있도록 P2P 연결을 수립시킬 수 있다.
중개 서버(123)는, 예를 들어 메일 서비스의 경우 블록 체인 서버에 의해 업데이트된 매칭 테이블에서 서비스가 정확한 위치에 전달될 수 있도록 서비스를 중개한다. 메일 전송 서비스의 경우 메일 서비스에 대한 사용자 가입 시 등록된 가상 고정 주소에 모바일 스토리지 장치(100)에 동적으로 할당된 주소를 매핑하여 메일이 전송될 수 있다. 미디어 파일을 전송하는 경우, 포털 페이지에 표시된 미디어의 썸네일 등이 사용자 입력에 의해 선택된 경우 그 미디어의 파일의 위치가 가상 고정 주소와 모바일 스토리지 장치(100)에 동적으로 할당된 주소와 매핑하여 미디어 제공 서비스가 제공된다. 웹 호스팅의 경우에도 중개서버에 의해 가상 고정 주소와 동적으로 할당되는 주소를 매핑하여 서비스가 제공될 수 있다.
도 5 내지 10은 몇몇 실시 예에 따라 모바일 스토리지 장치(100)가 호스트 장치(110)에 연결된 경우에 수행될 수 있는 프로세스를 도시한 도면이다.
도 5를 참조하면, 단계 S501에서 모바일 스토리지 장치(100)가 호스트 장치(110)에 연결되면, 모바일 스토리지 장치(100)가 전력을 공급받아 모바일 스토리 장치(100)에 내장된 운영체제를 부팅하고 네트워크에 연결할 수 있다. 이후, 모바일 스토리지 장치(100)는 단계 S502에서 모바일 스토리지 장치(100)가 네트워크에 최초로 연결된 것인지 여부를 판단할 수 있다. 예를 들어, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)에 저장된 연결 로그를 조회할 수 있다. 여기서, 연결 로그는 모바일 스토리지 장치(100)가 호스트 장치(110)를 통해서 네트워크에 연결된 이력을 저장한 것을 의미할 수 있다. 또는, 다른 예를 들면, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)에 플랫폼 인증 서버(122)로부터 발급된 장치 고유 키가 저장되어 있는지 여부에 따라서 모바일 스토리지 장치(100)가 호스트 장치(110)에 최초로 연결된 것인지 여부를 판단할 수도 있다. 즉, 모바일 스토리지 장치(100)는 장치 고유 키가 조회되지 않는 경우 호스트 장치(110)에 최초로 연결된 상태인 것으로 판단할 수 있다. 또 다른 예를 들면, 모바일 스토리지 장치(100)는 호스트 장치(110)와 연결되었던 이력이 있는지 여부를 나타내는 상태 정보를 저장하고, 그 상태 정보를 이용하여 호스트 장치(110)와의 연결이 최초 연결인지 여부를 판단할 수 있다. 다만, 모바일 스토리지 장치(100)에 호스트 장치(110)와의 연결이 최초 연결인지 여부를 판단하는 방법은 상술한 예시에 한정되어야 하는 것은 아니다.
사용자가 모바일 스토리지 장치(100)를 구매하여 최초로 호스트 장치(110)에 연결한 경우, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)를 등록하기 위한 인스트럭션들을 실행할 수 있다.
몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)의 제조시에 설정된 장치 식별자를 이용하여 최초 인증을 수행할 수 있다. 도 6을 참조하면, 도 5의 단계 S502에서 모바일 스토리지 장치(100)가 호스트 장치(110)에 최초로 연결된 것으로 판단된 이후에, 단계 S511에서 모바일 스토리지 장치(100)는 장치 식별자를 포함하는 인증 요청을 장치 인증 서버(121)로 전송할 수 있다. 여기서, 장치 식별자는 모바일 스토리지 장치(100)를 식별하기 위한 고유의 정보일 수 있다. 또한, 장치 식별자는 모바일 스토리지 장치(100)가 제조될 때 모바일 스토리지 장치(100)에 설정된 정보일 수 있다. 또한, 장치 식별자는 장치 인증 서버(121)에도 저장되어 있을 수 있다. 장치 인증 서버(121)는 저장되어 있는 장치 식별자와 모바일 스토리지 장치(100)로부터 수신된 장치 식별자를 비교하여 모바일 스토리지 장치를 식별 내지 인증 할 수 있다.
단계 S512에서 장치 인증 서버(121)에 의해 모바일 스토리지 장치(100)의 인증이 성공하면, 장치 인증 서버(121)는 인증 결과를 플랫폼 인증 서버(122)로 전달할 수 있다. 인증 결과를 전달받은 플랫폼 인증 서버(122)는 장치 고유 키를 활성화하고 장치 고유 키를 모바일 스토리지 장치(100)에 발급할 수 있다(S513).
몇몇 실시 예에 따르면, 플랫폼 인증 서버(122)는 장치 인증 서버(121)로부터 인증 결과와 함께 장치 식별자를 수신하고, 장치 식별자와 플랫폼 인증 서버(122)에 저장된 공개 키를 조합하여 장치 고유 키를 생성할 수 있다.
또는, 다른 실시 예에 따르면, 플랫폼 인증 서버(122)는 모바일 스토리지 장치(100)에 저장된 장치 고유 키가 유효한지 확인 하고, 장치 고유 키가 유효한 경우 모바일 스토리지 장치(100)의 인증을 처리하고 공개 키와 조합하여 장치 고유 키를 갱신할 수 있다. 플랫폼 인증 서버(122)가 장치 고유 키를 발급하는 프로세스는 실시 예에 따라 다르게 변경될 수도 있다.
몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 사용자로부터 사용자 정보를 입력 받아 모바일 스토리지 장치(100)의 사용자에 대한 인증을 받을 수도 있다. 도 7을 참조하면, 단계 S521에서 모바일 스토리지 장치(100)는 호스트 장치(110)를 통해서 회원 가입 GUI(Graphic User Interface)를 디스플레이할 수 있다. 이 경우, 호스트 장치(110)는 디스플레이 장치를 구비하거나, 별도의 디스플레이 장치를 통해서 화면을 출력할 수 있는 장치일 수 있다. 예를 들어, 호스트 장치(110)는 PC나 스마트폰(smartphone)과 같은 인터넷에 연결된 컴퓨팅 장치일 수 있다. 또는, 호스트 장치(110) 커넥티드 TV(connected television)와 같이 인터넷에 연결된 디스플레이 장치일 수도 있다. 또한, 실시 예에 따라서, 단계 S521에서 모바일 스토리지 장치(100)는 호스트 장치(110)와 별개의 디스플레이 장치를 통해서 회원 가입 GUI를 디스플레이할 수도 있다.
몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 호스트 장치(110)가 웹 브라우저를 통해 미리 설정된 URL(Uniform Resource Locator)을 이용하여 회원 가입 GUI를 포함하는 웹 페이지를 표시하도록 할 수 있다. 또는, 다른 실시 예에 따르면, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)에 내장된 애플리케이션을 실행하여 회원 가입 GUI를 포함하는 애플리케이션 실행 화면을 호스트 장치(110)를 통해서 출력할 수도 있다.
이후, 사용자가 회원 가입 GUI를 이용하여 회원 가입 정보를 입력하면, 단계 S522에서 모바일 스토리지 장치(100)는 호스트 장치(110)를 통해서 회원 가입 정보를 획득할 수 있다. 모바일 스토리지 장치(100)는 획득된 회원 가입 정보를 플랫폼 인증 서버(122)에 전송하여 모바일 스토리지 장치(100)를 회원 가입 정보를 입력한 사용자의 장치로 등록할 수 있다. 이 경우, 플랫폼 인증 서버(122)는 단계 S523에서 모바일 스토리지 장치(100)를 식별하기 위한 정보와 회원 가입 정보에 포함된 사용자 정보를 매칭하여 등록할 수 있다.
다른 몇몇 실시 예에 따르면 모바일 스토리지 장치(100)는 장치 식별자와 함께 회원 가입 정보를 장치 인증 서버(121)로 전송할 수도 있다. 장치 인증 서버(121)는 먼저 장치 식별자가 유효한지 여부를 검증할 수 있다. 장치 식별자가 유효한 경우, 장치 인증 서버(121)는 회원 가입 정보에 포함된 사용자 정보를 등록할 수 있다.
또 다른 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 장치 식별자를 이용하여 장치 인증 서버(121)로부터 장치에 대한 인증을 받은 경우에 한해서 회원 가입 프로세스를 실행할 수도 있다. 도 8을 참조하면, 먼저 단계 S531에서 모바일 스토리지 장치(100)는 장치 식별자를 포함하는 인증 요청을 장치 인증 서버(121)로 전송할 수 있다.
이후, 단계 S532에서 모바일 스토리지 장치(100)는 장치 식별자를 이용하여 인증에 성공한 경우, 인증이 성공하였음을 나타내는 정보를 수신할 수 있다. 인증에 성공한 경우, 단계 S533에서 모바일 스토리지 장치(100)는 호스트 장치(100)를 통해서 회원 가입 GUI를 디스플레이할 수 있다.
이후, 디스플레이된 회원 가입 GUI에 사용자가 회원 가입 정보를 입력하면, 단계 S534에서 모바일 스토리지 장치(100)는 입력된 회원 가입 정보를 획득할 수 있다. 또한 모바일 스토리지 장치(100)는 회원 가입 정보를 플랫폼 인증 서버(122)에 전송할 수 있다. 실시 예에 따라서, 모바일 스토리지 장치(100)는 회원 가입 정보를 장치 인증 서버(121)를 통해서 플랫폼 인증 서버(122)로 전달할 수도 있다.
플랫폼 인증 서버(122)는 모바일 스토리지 장치(100)가 최초로 로그인한 경우, 모바일 스토리지 장치(100)에 대한 장치 고유키를 생성할 수 있다. 모바일 스토리지 장치(100)는 플랫폼 인증 서버(122)로부터 생성된 장치 고유키를 획득할 수 있다(S535).
모바일 스토리지 장치(100)는 입력된 회원 가입 정보를 플랫폼 인증 서버(122)에 등록할 수 있다. 여기서, 플랫폼 인증 서버(122)는 생성된 장치 고유키를 회원 가입 정보와 매칭하여 저장할 수 있다(S536). 회원 가입 정보가 플랫폼 인증 서버(122)에 등록되면, 모바일 스토리지 장치(100)는 회원 가입 정보에 포함된 로그인 정보를 이용하여 플랫폼 인증 서버(122)에 로그인할 수 있다.
몇몇 실시 예에 따르면, 장치 고유키를 보유한 모바일 스토리지 장치(100)가 호스트 장치(110)에 연결될 경우, 플랫폼 인증 서버(122)가 모바일 스토리지 장치(100)의 고유키의 유효성을 검증할 수 있다. 모바일 스토리지 장치(100)의 고유키가 유효한 경우, 고유키에 매칭되어 저장된 회원 가입 정보를 조회하고, 조회된 회원 가입 정보에 포함된 로그인 정보를 이용하여 모바일 스토리지 장치(100)에 대한 로그인 절차를 수행할 수 있다. 즉, 구매한 모바일 스토리지 장치(100)를 사용자가 최초 사용시에 회원 가입 정보와 매칭하여 등록한 이후에는 사용자가 별도로 로그인 정보를 입력하지 않고도 장치 고유키를 이용하여 모바일 스토리지 장치(100)가 플랫폼 인증 서버(122)에 로그인할 수 있다. 따라서, 모바일 스토리지 장치(100)가 입력 장치가 없는 호스트 장치(110)(예를 들어, 인터넷 IP 주소 공유기)에 연결된 경우에도 플랫폼 인증 서버(122)에 로그인할 수 있다. 플랫폼 인증 서버(122)에 로그인한다고 함은 플랫폼 인증 서버(122)로부터 사용자에 대한 인증을 받아 모바일 스토리지 장치(100)의 사용자를 확인하는 동작을 의미한다.
도 7 및 도 8에 도시된 프로세스에서, 회원 가입 정보 및 회원 가입 GUI는, 사용자의 회원 가입 정보가 기 등록되어 있는 경우, 로그인 정보 및 로그인 정보를 입력 받기 위한 로그인 GUI일 수도 있다. 사용자의 회원 가입 정보는 장치 인증 서버(121)에 등록되어 있을 수 있다. 또는, 사용자의 회원 가입 정보는 플랫폼 인증 서버(122)에 등록되어 있을 수도 있다. 여기서, 로그인 정보는 사용자가 로그인을 수행하기 위한 정보일 수 있다. 예를 들어, 로그인 정보는 사용자 ID, 패스워드 및 생체 정보 중 하나 이상을 포함할 수 있다.
도 5의 단계 S502에서 모바일 스토리지 장치(100)가 호스트 장치(110)를 통해서 네트워크에 연결된 이력이 있는 것으로 판단된 경우, 모바일 스토리지 장치(100)는 플랫폼 인증 서버(122)에 로그인하고 외부 단말(130)과 연결될 수 있다. 또는, 모바일 스토리지 장치(100)가 플랫폼 인증 서버(122)에 등록이 완료(S513, S523 또는 S536)된 이후에도, 모바일 스토리지 장치(100)는 플랫폼 인증 서버(122)에 로그인하고 외부 단말(130)과 연결하기 위한 인스트럭션을 실행할 수 있다.
도 9를 참조하면, 몇몇 실시 예에 따른 모바일 스토리지 장치(100)는 단계 S541에서 플랫폼 인증 서버(122)에 인증 요청을 전송할 수 있다. 여기서, 몇몇 실시 예에 따르면, 플랫폼 인증 서버(122)로 전송되는 인증 요청은 모바일 스토리지 장치(100)가 발급 받은 장치 고유키에 대한 정보를 포함할 수 있다. 장치 고유키에 대한 정보는 장치 고유키 자체이거나 장치 고유키와 관련된 정보일 수 있다. 또는 다른 몇몇 실시 예에 따르면, 플랫폼 인증 서버(122)로 전송되는 인증 요청은 사용자에 대한 로그인 정보를 포함할 수도 있다.
플랫폼 인증 서버(122)로 전송된 인증 요청에 상응하는 인증에 성공하면, 단계 S543에서 중개 서버(123)에 모바일 스토리지 장치(100)의 주소 정보가 등록될 수 있다. 인증에 실패할 경우, 모바일 스토리지 장치(100)는 다른 방식으로 인증을 시도하거나, 인증을 재차 시도하거나, 또는 프로세스를 종료할 수 있다. 또한, 몇몇 실시 예에 따르면, 플랫폼 인증 서버(122)로부터 인증 실패를 가리키는 데이터가 수신되는 경우, 모바일 스토리지 장치(100)의 프로세서(101)는 인디케이터(104)가 인증 실패에 대한 상태 정보를 출력할 수 있도록 하는 제어 신호를 출력할 수 있다. 여기서, 주소 정보는 모바일 스토리지 장치(100)에 현재 할당된 IP 주소를 포함할 수 있다. 실시 예에 따라서, 단계 S543에서 모바일 스토리지 장치(100)는 주소 정보를 플랫폼 인증 서버(122)로 전달하고, 플랫폼 인증 서버(122)가 주소 정보를 중개 서버(123)에 등록할 수 있다. 또는, 모바일 스토리지 장치(100)가 인증에 성공하였음을 나타내는 데이터를 수신하고, 수신된 데이터에 대한 응답으로 모바일 스토리지 장치(100)의 주소 정보를 중개 서버(123)에 전송할 수도 있다. 또는, 모바일 스토리지 장치(100)는 다른 프로세스를 통해서 주소 정보를 중개 서버(123)에 등록할 수도 있다.
중개 서버(123)에 모바일 스토리지 장치(100)의 주소 정보가 등록되면, 단계 S544에서 모바일 스토리지 장치(100)는 중개 서버(122)를 이용하여 외부 단말(130)과 홀 펀칭 프로세스를 통해서 연결될 수 있다. 모바일 스토리지 장치(100)와 외부 단말(130) 사이에 홀 펀칭을 수행하는 방법은 실시 예에 따라 변경될 수 있다. 예를 들어, 실시 예에 따라서 모바일 스토리지 장치(100)와 외부 단말(130) 사이의 홀 펀칭은 중계(Relaying) 방식을 통해서 수행될 수도 있으며, 연결 역전(Connection Reversal) 방식에 의해서 수행될 수도 있다.
모바일 스토리지 장치(100)와 외부 단말(130)이 홀 펀칭 방식으로 P2P 데이터 송수신을 하므로, 사용자는 외부에 위치하는 서버에 컨텐츠를 업로드할 필요 없이 자신이 가진 모바일 스토리지 장치(100)의 스토리지(103)에 저장된 컨텐츠만으로 온라인 서비스를 제공할 수 있다.
따라서, 클라이언트의 역할을 하는 외부 단말(130)이 서버에 접근하는 것과 같이 모바일 스토리지 장치(100)에 연결될 수 있다. 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)의 주소 정보와 매칭된 회원 가입 정보에 기초하여 URL(Uniform Resource Locator)이 구성될 수 있다. 예를 들어, 회원 가입 정보에 포함된 사용자 ID가 "username"인 경우, 중개 서버(123)는 모바일 스토리지 장치(100)에 대한 URL은 "https://username.hashblk.com/"일 수 있다. 외부 단말(130)이 "https://username.hashblk.com/video/ucc.mp4"에 대한 주소 정보를 중개 서버(123)에 요청할 경우, 중개 서버(123)는 "https://username.hashblk.com/"에 상응하는 모바일 스토리지 장치(100)의 주소 정보를 중개 서버(123)에 저장된 매칭 테이블에서 조회할 수 있다. 중개 서버(123)는 조회된 주소 정보를 이용하여 모바일 스토리지 장치(100)가 외부 단말(130)과 연결되도록 할 수 있다. 이 경우, 외부 단말(130)은 모바일 스토리지 장치(100)의 스토리지(103)의 "video" 폴더에 저장된 "ucc.mp4"라는 파일을 제공 받을 수 있다.
다만, 모바일 스토리지 장치(100)가 서버-클라이언트 모델의 서비스에서 서버의 기능을 하기 위해서는, 클라이언트가 고정된 IP 주소를 가지는 서버에 연결하듯이, 외부 단말(130)에 모바일 스토리지 장치(100)에 고정된 주소를 이용하여 연결 가능할 필요가 있다. 그러나, 모바일 스토리지 장치(100)가 동적 IP 주소를 가지는 호스트 장치(110)를 통해서 연결되거나, 모바일 스토리지 장치(100)가 연결된 호스트 장치(110)가 변경되는 경우 모바일 스토리지 장치(100)에 접근하기 위한 주소가 변경될 수 있다. 따라서, 모바일 스토리지 장치(100)는 도 10의 단계 S551에서 모바일 스토리지 장치(100)의 주소 정보를 확인하고, 단계 S552에서 모바일 스토리지 장치(100)의 주소 정보가 변경되었는지 여부를 판단할 수 있다. 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)의 주소 정보가 중개 서버(123)에 등록된 주소 정보와 일치하는지 여부를 판단할 수 있다. 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)에 연결된 호스트 장치(110)가 변경되거나 호스트 장치(110)의 주소 정보가 변경된 경우 모바일 스토리지 장치(100)의 주소 정보가 변경된 것으로 판단할 수 있다.
주소 정보가 변경된 경우, 모바일 스토리지 장치(100)는 단계 S553에서 중개 서버(123)에 모바일 스토리지 장치(100)의 확인된 주소 정보를 포함하는 주소 정보 업데이트 요청을 중개 서버(123)에 전송할 수 있다. 모바일 스토리지 장치(100)가 자신의 주소 정보를 확인하여 주소 정보가 변경된 경우 고정된 주소에 매칭된 모바일 스토리지 장치(100)의 주소 정보를 업데이트할 수 있다. 따라서, 고정된 주소를 이용하여 외부 단말(130)이 모바일 스토리지 장치(100)에 연결될 수 있다.
도 11은 몇몇 실시 예에 따라 중개 서버(123)가 모바일 스토리지 장치(100)와 외부 단말(130) 사이에 홀 펀칭(Hole Punching)을 수행하는 프로세스를 설명하기 위한 도면이다.
모바일 스토리지 장치(100)는 단계 S1110에서 중개 서버(123)에 주소 정보를 포함하는 등록 요청을 전송할 수 있다. 등록 요청을 수신한 중개 서버(123)는 수신된 주소 정보에 따라서 매칭 테이블을 업데이트할 수 있다. 매칭 테이블은 모바일 스토리지 장치(100)의 주소 정보를 다른 정보와 매칭하여 저장된 데이터를 의미한다. 다른 정보는, 예를 들어, 모바일 스토리지 장치(100)를 식별하기 위한 정보, 사용자를 식별하기 위한 로그인 정보, 및 모바일 스토리지 장치(100)에 의해 제공되는 서비스에 대한 정보 중 하나 이상을 포함할 수 있다.
모바일 스토리지 장치(100)에 할당된 IP 주소가 사설 IP 주소인 경우, 모바일 스토리지 장치(100)는 공인 IP 주소는 알 수 없다. 공인 IP 주소를 획득하기 위해, 단계 S1110에서 모바일 스토리지 장치(100)는 중개 서버(123)에 패킷을 전송할 수 있다. 송신된 패킷의 헤더에는 NAT가 할당 받은 공인 IP 주소와 NAT가 외부 단말(130)에 부여한 포트가 기록된다. 따라서 중개 서버(123)는 모바일 스토리지 장치(100)가 NAT 외부와 통신을 위해 사용하는 공인 IP 주소 및 포트를 알 수 있다. 필요시 중개 서버(123)는 모바일 스토리지 장치(100)에 모바일 스토리지 장치(100)에 대한 공인 IP 주소 및 포트를 통지할 수 있다. 이 과정을 통해서 모바일 스토리지 장치(100)는 NAT 외부와 통신을 위해 사용되는 공인 IP 주소 및 포트를 알 수 있다.
이후, 단계 S1130에서 외부 단말(130)이 중개 서버(123)에 모바일 스토리지 장치(100)의 주소 정보에 대한 주소 정보 요청을 전송할 수 있다. 몇몇 실시 예에 따르면, 주소 정보 요청은 모바일 스토리지 장치(100)의 주소 정보를 매칭 테이블에서 조회하기 위한 정보를 포함할 수 있다. 예를 들어, 모바일 스토리지 장치(100)가 메일을 수신하는 메일 수신 서비스를 이용하여 외부 단말(130)에 메일을 전송하고자 하는 경우, 외부 단말(130)은 메일 주소를 포함하는 주소 정보 요청을 전송할 수 있다. 이 경우, 중개 서버(123)는 메일 주소에 상응하는 모바일 스토리지 장치(100)의 주소 정보를 조회할 수 있다.
다른 예를 들면, 모바일 스토리지 장치(100)가 제공하는 미디어 공유 서비스를 통해 미디어 컨텐츠를 제공 받고자 하는 경우, 외부 단말(130)은 미디어 파일의 위치를 나타내는 URL을 포함하는 주소 정보 요청을 중개 서버(123)에 전송할 수 있다.
또 다른 예를 들면, 외부 단말(130)이 모바일 스토리지 장치(100)로 미디어 컨텐츠를 전송하고자 하는 경우, 외부 단말(130)은 모바일 스토리지 장치(100)의 사용자 ID를 포함하는 주소 정보 요청을 중개 서버(123)에 전송할 수 있다.
또 다른 예를 들면, 외부 단말(130)이 모바일 스토리지 장치(100)의 웹호스팅 서비스를 통해서 웹 페이지를 제공 받고자 하는 경우, 외부 단말(130)은 웹 페이지의 위치를 나타내는 URL을 포함하는 주소 정보 요청을 중개 서버(123)에 전송할 수 있다.
이후, 단계 S1140에서, 중개 서버(123)는 주소 정보 요청에 대한 응답으로 조회된 주소 정보를 외부 단말(130)로 전송할 수 있다. 몇몇 실시 예에 따르면, 중개 서버(123)가 외부 단말(130)에 전송하는 주소 정보는 모바일 스토리지 장치(100)와 관련된 공인 IP 주소, 사설 IP 주소 및 포트 정보를 포함할 수 있다.
이후, 단계 S1150에서, 외부 단말(130)은 중개 서버(123)로부터 획득된 주소 정보를 이용하여 모바일 스토리지 장치(100)에 패킷을 전송할 수 있다. 단계 S1150에서, 외부 단말(130)은 사설 IP 주소 및 포트에 대해 패킷을 전송할 수 있다. 이후 단계 S1160에서 모바일 스토리지 장치(100)에 외부 단말(130)이 전송한 패킷에 대한 응답 패킷을 외부 단말(130)로 전송하는 경우, 외부 단말(130)은 패킷을 전송한 사설 IP 주소 및 포트를 기초로 모바일 스토리지 장치(100)와 P2P 송수신을 할 수 있다.
단계 S1150에서 사설 IP 주소 및 포트로 전송한 패킷에 대한 응답이 없을 경우, 외부 단말(130)은 공인 IP 주소 및 포트로 패킷을 전송할 수 있다. 이후, 모바일 스토리지 장치(100)로부터 응답 패킷이 외부 단말(130)로 전송되는 경우(S1160), 외부 단말(130)은 공인 IP 주소 및 포트를 이용하여 모바일 스토리지 장치(100)와 P2P 송수신을 수행할 수 있다(S1170).
공인 IP 주소 및 포트로 전송된 패킷에 대해서도 응답 패킷이 수신되지 않을 경우, 외부 단말(130)은 중개 서버(123)에 패킷의 송수신을 위임할 수도 있다.
또한, 외부 단말(130)과 모바일 스토리지 장치(100)가 서로 반대의 동작을 실행하여 홀 펀칭이 시도될 수도 있다. 홀 펀칭이 성공하여 외부 단말(130)과 모바일 스토리지 장치(100)간의 연결이 수립된 경우, 외부 단말(130) 및 모바일 스토리지 장치(100) 중 적어도 하나는 주기적으로 외부 단말(130)과 모바일 스토리지 장치(100) 간의 연결이 유효한지 여부를 확인기 위한 하트비트(Heartbeat) 메시지를 발송할 수 있다.
도 12는 몇몇 실시 예에 따른 매칭 테이블(1200)의 예시를 도시한 도면이다.
몇몇 실시 예에 따르면, 매칭 테이블(1200)은 장치 식별자(1211), 공인 IP 주소(1212), 사설 IP 주소(1213), 포트 정보(1214), 사용자 ID(1215), 패스워드(1216) 및 장치 고유키(1217)를 포함할 수 있다. 다만, 도 12에 도시된 매칭 테이블(1200)은 몇몇 실시 예의 설명을 위한 예시일 뿐이다. 매칭 테이블(1200)은 도 12에 도시된 항목과 다른 항목을 포함하거나, 도 12에 도시된 항목 중 일부를 포함하지 않거나, 또는 다른 항목을 더 포함할 수도 있다.
도 13 내지 15는 몇몇 실시 예에 따라 개인 간(Peer to peer; P2P) 파일 공유 방식을 이용하여 컨텐츠를 제공하는 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 제1 모바일 스토리지 장치(100-1)는 컨텐츠(1)를 저장하고 있을 수 있다. 여기서, 컨텐츠(1)는 데이터 전송을 통해 공유될 수 있는 객체일 수 있다. 예를 들어, 컨텐츠(1)는 음향 파일이나 동영상 파일과 같은 미디어 파일을 포함하거나, 또는 텍스트를 포함하는 전자 문서일 수 있다. 또한 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2)는 중개 서버(123)에 등록된 장치일 수 있다. 여기서, 중개 서버(123)는 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2)에 저장된 컨텐츠에 대한 정보를 포함하는 매칭 테이블을 가질 수 있다.
중개 서버(110)는 제1 모바일 스토리지 장치(100-1)에 저장된 컨텐츠(1)가 제2 모바일 스토리지 장치(100-2)에 저장될 수 있도록 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2)를 연결시킬 수 있다. 예를 들어, 중개 서버(123)는 제2 모바일 스토리지 장치(100-2)가 컨텐츠(1)에 대한 요청을 전송한 경우 제1 모바일 스토리지 장치(100-2)와 제2 모바일 스토리지 장치(100-2) 사이의 연결을 중개할 수 있다. 또는, 다른 예를 들면, 컨텐츠(1)에 대한 트래픽이 증가하면, 제1 모바일 스토리지 장치(100-1) 주변의 처리되는 트래픽의 양이 작거나 사용 가능한 저장 공간이 많은 제2 모바일 스토리지 장치(100-2)를 검색할 수도 있다. 여기서, 중개 서버(123)는 제2 모바일 스토리지 장치(100-2)가 컨텐츠(1)를 저장하고 있음을 나타내는 정보를 매칭 테이블에 업데이트할 수 있다. 도 14에 도시된 바와 같이, 제2 모바일 스토리지 장치(100-2)는 제1 모바일 스토리지 장치(100-1)로부터 컨텐츠(1)를 수신하고 저장할 수 있다.
이후, 중개 서버(123)가 제3 모바일 스토리지 장치(100-3)로부터 컨텐츠(1)에 대한 제공 요청을 수신할 수 있다. 예를 들어, 제3 모바일 스토리지 장치(100-3)의 사용자에 의해 미디어 포털 서버(125)에서 제공하는 포탈 페이지에 표시된 컨텐츠(1)에 대한 항목이 선택된 경우, 제3 모바일 스토리지 장치(100-3)는 미디어 포탈 서버(125)에 컨텐츠(1)에 대한 주소 정보를 저장된 중개 서버(123)로 전달할 수 있다. 중개 서버(123)는 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2) 중 하나 이상과 제3 모바일 스토리지 장치(100-3)사이의 연결을 중개할 수 있다. 이 경우, 도 15에 도시된 바와 같이, 제3 모바일 스토리지 장치(100-3)는 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2) 중 어느 하나로부터 컨텐츠(1)를 수신하거나, 또는 제1 모바일 스토리지 장치(100-1) 및 제2 모바일 스토리지 장치(100-2)로부터 컨텐츠(1)를 분할하여 수신할 수 있다.
도 13 내지 도 15에서 도시된 바와 같이 다수의 모바일 스토리지 장치들 간에 P2P 송수신을 통해서 컨텐츠(1)를 공유하여, 컨텐츠(1)를 제공할 수 있는 모바일 스토리지 장치의 수를 증가시킬 수 있다. 따라서, 컨텐츠(1)를 공유하기 위한 트래픽이 증가하더라도 한 모바일 스토리지 장치에 트래픽이 집중되어 과부하가 발생하는 것을 방지할 수 있다.
도 16은 몇몇 실시 예에 따라 모바일 스토리지 장치(100)가 컨텐츠 딜리버리 서버(124)를 이용하여 컨텐츠를 제공하는 방법을 설명하기 위한 도면이다.
단계 S1610에서, 모바일 스토리지 장치(100)는 모바일 스토리지 장치(100)에 저장된 컨텐츠에 대한 리드 억세스 트래픽(read access traffic)을 산출할 수 있다. 즉, 모바일 스토리지 장치(100)는 컨텐츠에 대한 요청이 발생하는 양을 산출할 수 있다. 이후, 단계 S1620에서, 모바일 스토리지 장치(100)는 산출된 리드 억세스 트래픽이 기준치를 초과하는지 여부를 판단할 수 있다. 다른 실시 예에 따르면, S1610 및 S1620은 중개 서버(123)에 의해서 수행될 수도 있다.
리드 억세스 트래픽이 기준치를 초과하는 경우, 단계 S1630에서 모바일 스토리지 장치(100)는 그 컨텐츠를 컨텐츠 딜리버리 서버(124)에 송신할 수 있다. 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 컨텐츠를 컨텐츠 딜리버리 서버(124)에 송신할 경우, 컨텐츠가 컨텐츠 딜리버리 서버(124)에 송신된 상태 정보를 출력하기 위해 인디케이터(104)의 출력을 제어하는 제어 신호를 출력할 수 있다.
이후, 모바일 스토리지 장치(100)는 단계 S1640에서 컨텐츠에 대한 리드 억세스가 수신되는 경우, 단계 S1650에서 수신된 리드 억세스를 컨텐츠 딜리버리 서버로 리다이렉션(redirection)할 수 있다.
즉, 컨텐츠가 다수의 사용자에 의해 요청될 경우, 트래픽을 처리할 수 있는 용량에 한계가 있는 모바일 스토리지 장치(100)가 컨텐츠에 대한 리드 억세스를 충분히 처리하지 못할 수도 있다. 따라서, 모바일 스토리지 장치(100)는 요청되는 횟수가 많은 컨텐츠는 컨텐츠 딜리버리 서버(124)에 업로드하여 컨텐츠 딜리버리 서버(124)가 컨텐츠를 제공하도록 할 수 있다.
또한, 컨텐츠 딜리버리 서버(124)에 업로드된 컨텐츠는 그 컨텐츠에 대한 리드 억세스 트래픽이 기준치를 하회하게 되면 컨텐츠 딜리버리 서버(124)에서 비활성화 또는 삭제될 수 있다.
도 17은 몇몇 실시 예에 따라 컨텐츠가 미디어 포털 서버(125)에서 제공하는 미디어 포털 서비스를 통해 노출된 경우에 수행될 수 있는 프로세스를 도시한 도면이다.
미디어 포털 서버(125)는 모바일 스토리지 장치(100)에 의해 공유 대상이 되는 컨텐츠 중 하나 이상에 대한 정보를 노출시킬 수 있다. 예를 들어, 미디어 포털 서버(125)는 리드 억세스가 다수 발생한 컨텐츠나 미디어 포털 서버(125)의 관리자에 의해 선정된 컨텐츠에 대한 정보를 노출시킬 수 있다. 또한, 미디어 포털 서버(125)의 미디어 포털 서비스를 통해 노출된 컨텐츠는 리드 억세스가 다수 발생하는 컨텐츠이므로 컨텐츠 딜리버리 서버(124)에 업로드된 컨텐츠일 수 있다.
미디어 포털 서버(125)는 모바일 스토리지 장치(100)에 저장된 컨텐츠를 미디어 포털 서비스에 노출시킨 경우, 모바일 스토리지 장치(100)에 컨텐츠가 미디어 포털 서비스에 노출된 상태임을 나타내는 데이터를 전송할 수 있다. 단계 S1710에서 모바일 스토리지 장치(100)는 컨텐츠가 미디어 포털 서비스에 노출된 것을 가리키는 데이터를 수신하면, 단계 S1720에서 모바일 스토리지 장치(100)가 제공하는 컨텐츠가 미디어 포털 서비스에 노출된 상태임을 나타내는 상태 정보를 출력하도록 인디케이터(104)를 제어할 수 있다.
모바일 스토리지 장치(100)를 통해서 컨텐츠를 공유하는 사용자는 모바일 스토리지 장치(100)에 저장된 컨텐츠에 대한 공유를 중단하기 위해 모바일 스토리지 장치(100)와 호스트 장치(110) 사이의 연결을 해제할 수 있다. 이 경우, 컨텐츠 딜리버리 서버(124)를 통한 컨텐츠의 공유도 중단되어야 한다. 따라서, 단계 S1730에서 모바일 스토리지 장치(100)의 호스트 장치(110)에 대한 연결이 해제된 경우, 컨텐츠는 단계 S1740에서 컨텐츠 딜리버리 서버(124)에서 비활성화되거나 삭제될 수 있다.
도 18은 몇몇 실시 예에 따라 모바일 스토리지 장치(100)가 다른 모바일 스토리지 장치에 컨텐츠를 전송하는 프로세스를 도시한 도면이다.
단계 S1810에서, 중개 서버(123)는 송신측 모바일 스토리지 장치(100-4) 또는 송신측 모바일 스토리지 장치(100-4)에 연결된 호스트 장치(110)를 통해서 수신자 선택 사용자 인터페이스(User Interface; UI)를 제공할 수 있다. 여기서, 수신자 선택 UI는 송신측 모바일 스토리지 장치(100)의 사용자가 컨텐츠를 수신할 사용자를 선택하는 입력을 받기 위한 UI일 수 있다. 예를 들어, 도 19를 참조하면, 수신자 선택 UI는 송신측 모바일 스토리지 장치(100-4)의 사용자에 대해 관계가 설정된 사용자들의 목록을 포함하는 그래픽 사용자 인터페이스(Graphic User Interface; GUI)(2)일 수 있다.
이후, 단계 S1820에서, 중개 서버(123)는 송신측 모바일 스토리지 장치(100-4)로부터 수신자 선택 UI를 통해 선택된 사용자에 대한 컨텐츠의 송신 요청을 수신할 수 있다. 이 경우, 중개 서버(123)는 선택된 사용자에 매칭되어 저장된 수신측 모바일 스토리지 장치(100-5)를 조회할 수 있다.
이후, 단계 S1830에서, 중개 서버(123)는 수신측 모바일 스토리지 장치(100-5)가 네트워크를 통해서 중개 서버(123)와 연결되어 있는지 여부를 판단할 수 있다. 몇몇 실시 예에 따르면, 인증이 완료된 모바일 스토리지 장치(100)는 중개 서버(123)에 모바일 스토리지 장치(100)의 위치 정보를 반복적으로 전송할 수 있다. 미리 정해진 시간 이상 모바일 스토리지 장치(100)의 위치 정보가 수신되지 않으면, 중개 서버(123)는 그 모바일 스토리지 장치(100)는 연결이 해제된 것으로 판단할 수 있다.
수신측 모바일 스토리지 장치(100-5)가 연결되어 있는 경우, 중개 서버(123)는 송신측 모바일 스토리지 장치(100-4)와 수신측 모바일 스토리지 장치(100-5)의 P2P 연결을 중개하여 컨텐츠가 전송되도록 할 수 있다. 예를 들어, 도 20을 참조하면, 중개 서버(123)는 송신측 모바일 스토리지 장치(100-4)로부터 수신측 모바일 스토리지 장치(100-5)로 컨텐츠의 송신에 대한 요청을 수신한 경우, 송신측 모바일 스토리지 장치(100-4)와 수신측 모바일 스토리지 장치(100-5) 사이의 연결을 중개할 수 있다.
그러나, 단계 S1830에서 수신측 모바일 스토리지 장치(100-5)가 연결되어 있지 않은 경우, 중개 서버(123)는 송신측 모바일 스토리지 장치(100-4)와 수신측 모바일 스토리지 장치(100-5)를 연결하여 컨텐츠가 송신되도록 할 수 없다. 이 경우, 수신측 모바일 스토리지 장치(100-5)가 이후에 중개 서버(123)에 연결되었을 때에는 송신측 모바일 스토리지 장치(100-4)가 컨텐츠를 송신할 수 없는 상태일 수 있다. 예를 들면, 송신측 모바일 스토리지 장치(100-4)가 네트워크에 연결되어 있지 않거나, 송신측 모바일 스토리지 장치(100-4)에서 컨텐츠가 삭제되어 있을 수도 있다. 따라서, 수신측 모바일 스토리지 장치(100-5)에 대한 컨텐츠의 전달이 보장되지 않을 수 있다.
따라서, 중개 서버(123)는 단계 S1851에서 송신 대상 데이터를 분산 저장할 수 있다. 몇몇 실시 예에 따르면, 모바일 스토리지 장치(100)는 데이터의 분산 저장을 위한 분산 저장 공유 공간을 스토리지(103) 내에 구비할 수 있다. 또한, 다른 몇몇 실시 예에 따르면, 분산 저장 공유 공간은 블록 체인의 노드로 활용하여 블록 체인 서비스에 적용될 수도 있다.
도 21을 참조하면, 하나 이상의 주변 모바일 스토리지 장치(100-6)를 결정하고, 송신 요청에 따라 컨텐츠를 전달하기 위해 송신 대상이 되는 데이터를 주변 모바일 스토리지 장치(100-6)에 P2P 송수신을 통해 분산 저장할 수 있다. 몇몇 실시 예에 따르면, 중개 서버(123)는 미리 설정된 정책에 따라서 하나 이상의 주변 모바일 스토리지 장치(100-6)를 결정할 수 있다. 예를 들어, 중개 서버(123)는 수신측 모바일 스토리지 장치(100-5)가 마지막으로 연결된 위치로부터의 거리를 기준으로 주변 모바일 스토리지 장치(100-6)를 결정하거나, 사용 가능한 저장 용량이나 해당 모바일 스토리지 장치에 발생하는 트래픽을 기준으로 결정할 수 있다.
이후, 단계 S1852에서 수신측 모바일 스토리지 장치(100-5)가 연결되면, 도 22에 도시된 바와 같이 중개 서버(123)는 주변 모바일 스토리지 장치(100-6)를 이용하여 송신 대상이 되는 데이터를 수신측 모바일 스토리지 장치(100-5)에 제공할 수 있다.
단계 S1840 또는 단계 S1853 이후에, 중개 서버(123)는 전송 결과 로그를 기록할 수 있다. 여기서, 전송 결과 로그는 데이터 전송의 성공/실패 여부 및 전송 과정에 대한 이력을 포함할 수 있다. 전송 과정에 대한 이력은 송신측 모바일 스토리지 장치(100-4)가 수신측 모바일 스토리지 장치(100-5)에 컨텐츠를 전송할 때 직접 전송하였는지, 다른 모바일 스토리지 장치에 분산 저장 이후에 전송하였는지에 관한 정보를 의미할 수 있다. 중개 서버(123)는 전송 결과 로그를 이용하여 컨텐츠에 대한 검색 기능을 제공할 수 있다. 일부 실시 예에 따르면, 중개 서버(123)는 컨텐츠를 다른 장치에 전송할 것을 요청하는 송신 요청이나 컨텐츠를 제공받고자 하는 제공 요청이 수신되면 전송 결과 로그를 이용하여 연결될 장치를 결정하고 홀 펀칭을 중개할 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 인스트럭션을 포함하는 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 모바일 스토리지 장치에 있어서,
    인터넷에 연결된 호스트 장치에 전기적으로 연결됨으로써, 상기 호스트 장치를 통해 상기 인터넷에 연결을 제공하는 커넥터;
    스토리지; 및
    상기 커넥터 및 상기 스토리지와 연결되고, 상기 스토리지에 저장된 데이터를 이용하여 상기 모바일 스토리지 장치 외의 별도의 서버에 콘텐츠를 전송하지 않고 온라인 서비스를 외부 단말에 제공하기 위한 복수의 인스트럭션(instruction)을 실행하는 프로세서를 포함하되,
    상기 복수의 인스트럭션은,
    상기 커넥터가 상기 호스트 장치에 연결되어 상기 모바일 스토리지 장치가 상기 인터넷에 연결되면, 자동으로 상기 외부 단말에 상기 모바일 스토리지 장치의 주소 정보를 제공하는 중개 서버에 등록 요청을 송신하는 인스트럭션; 및
    상기 외부 단말이 상기 중개 서버로부터 상기 모바일 스토리지 장치의 주소 정보를 획득한 후, 상기 온라인 서비스의 제공을 위한 패킷을 상기 외부 단말과 p2p 송수신하는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  2. 제1항에 있어서,
    상기 복수의 인스트럭션은,
    상기 커넥터가 상기 호스트 장치에 연결되어 상기 모바일 스토리지 장치가 상기 인터넷에 최초로 연결되는 것에 응답하여, 자동으로 상기 인터넷에 연결된 장치 인증 서버에 인증 요청을 송신하는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  3. 제2항에 있어서,
    상기 인증 요청을 송신하는 인스트럭션은,
    상기 장치 인증 서버로부터 인증 성공을 가리키는 데이터가 수신된 경우, 회원 가입 정보를 입력 받기 위한 GUI가 표시되기 위한 데이터를 상기 호스트 장치에 제공하는 인스트럭션; 및
    플랫폼 인증 서버로부터 상기 모바일 스토리지 장치에 발급되는 장치 고유 키를 상기 회원 가입 정보와 매칭하여 상기 스토리지에 저장하는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  4. 제3항에 있어서,
    상기 인증 요청은,
    상기 모바일 스토리지 장치의 장치 식별자 및 상기 플랫폼 인증 서버에 의하여 발급된 상기 장치 고유 키를 포함하는,
    모바일 스토리지 장치.
  5. 제3항에 있어서,
    상기 인증 요청을 송신하는 인스트럭션은,
    상기 인증 성공을 가리키는 데이터에 대한 응답으로, 상기 플랫폼 인증 서버로부터 공개 키를 수신하여 상기 장치 고유 키를 업데이트하는 인스트럭션을 더 포함하는,
    모바일 스토리지 장치.
  6. 제3항에 있어서,
    상기 모바일 스토리지 장치는, 사용자에 의하여 상태 정보를 출력하는 인디케이터를 더 포함하며,
    상기 인증 요청을 송신하는 인스트럭션은,
    상기 플랫폼 인증 서버로부터 인증 실패를 가리키는 데이터가 수신되는 경우, 상기 인디케이터가 상태 정보를 출력할 수 있도록 하는 제어 신호를 출력하는 인스트럭션을 더 포함하는,
    모바일 스토리지 장치.
  7. 제3항에 있어서,
    상기 인증 요청을 송신하는 인스트럭션은,
    상기 플랫폼 인증 서버로부터 발급된 상기 장치 고유 키가 상기 스토리지에 저장되어 있는지 여부에 따라 상기 모바일 스토리지 장치가 상기 인터넷에 최초로 연결되는 것인지 여부를 판단하는 인스트럭션을 더 포함하는,
    모바일 스토리지 장치.
  8. 제2항에 있어서,
    상기 인증 요청을 송신하는 인스트럭션은,
    상기 모바일 스토리지 장치에 저장된 개인 키와 블록 체인 시스템의 노드를 구성하는 플랫폼 인증 서버에 저장된 공개 키를 조합하여 장치 고유 키를 활성화하는 인스트럭션; 및
    상기 플랫폼 인증 서버로부터 상기 장치 고유 키를 갱신 받는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  9. 제1항에 있어서,
    상기 온라인 서비스의 제공을 위한 패킷을 상기 외부 단말과 p2p 송수신하는 인스트럭션은,
    상기 외부 단말과 상기 모바일 스토리지 장치간 연결이 수립된 경우, 상기 외부 단말 및 상기 모바일 스토리지 장치 중 적어도 하나로 연결이 유효한지 여부를 확인하기 위한 하트비트(Heartbeat) 메시지를 송신하는 인스트럭션를 포함하는,
    모바일 스토리지 장치.
  10. 제1항에 있어서,
    상기 복수의 인스트럭션은,
    상기 온라인 서비스의 제공에 따라 상기 스토리지에 저장된 컨텐츠의 리드(read) 억세스 트래픽이 기준치를 초과하는 경우, 상기 컨텐츠를 상기 인터넷에 연결된 컨텐츠 딜리버리 서버에 송신하는 인스트럭션; 및
    상기 컨텐츠에 대한 리드 억세스를 상기 컨텐츠 딜리버리 서버로 리다이렉션(redirection) 하는 인스트럭션을 더 포함하는,
    모바일 스토리지 장치.
  11. 제10항에 있어서,
    상기 컨텐츠는, 상기 모바일 스토리지 장치가 상기 호스트 장치에서 연결 해제되면, 상기 컨텐츠 딜리버리 서버에서 비활성화 또는 삭제되는,
    모바일 스토리지 장치.
  12. 제10항에 있어서,
    상기 컨텐츠는, 상기 컨텐츠의 리드(read) 억세스 트래픽이 기준치를 하회하는 경우, 상기 컨텐츠 딜리버리 서버에서 삭제되는,
    모바일 스토리지 장치.
  13. 제10항에 있어서,
    상기 모바일 스토리지 장치는, 사용자에 의하여 상태 정보를 출력하는 인디케이터를 더 포함하며,
    상기 컨텐츠를 상기 인터넷에 연결된 컨텐츠 딜리버리 서버에 송신하는 인스트럭션은,
    상기 인디케이터의 출력을 제어하는 제어 신호를 출력하는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  14. 제10항에 있어서,
    상기 컨텐츠는, 기 지정된 기준을 만족하는 경우, 상기 컨텐츠가 저장된 상기 모바일 스토리지 장치와 p2p 접속된 이력이 없는 외부 단말들이 접속할 수 있는 미디어 포털 서비스에 노출되는,
    모바일 스토리지 장치.
  15. 제14항에 있어서,
    상기 모바일 스토리지 장치는, 사용자에 의하여 상태 정보를 출력하는 인디케이터를 더 포함하며,
    상기 컨텐츠는, 상기 모바일 스토리지 장치가 상기 호스트 장치에서 연결 해제되면, 상기 컨텐츠 딜리버리 서버에서 비활성화 또는 삭제되고,
    상기 복수의 인스트럭션은,
    상기 컨텐츠가 상기 미디어 포털 서비스에 노출된 것을 가리키는 데이터를 수신하는 것에 응답하여, 상기 인디케이터를 제어하는 제어 신호를 출력하는 인스트럭션을 포함하는,
    모바일 스토리지 장치.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020190045869A 2019-04-19 2019-04-19 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치 KR102034296B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190045869A KR102034296B1 (ko) 2019-04-19 2019-04-19 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190045869A KR102034296B1 (ko) 2019-04-19 2019-04-19 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180118900A Division KR101972349B1 (ko) 2018-10-05 2018-10-05 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190127285A Division KR20200039606A (ko) 2019-10-14 2019-10-14 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102034296B1 true KR102034296B1 (ko) 2019-10-18

Family

ID=68462618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190045869A KR102034296B1 (ko) 2019-04-19 2019-04-19 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102034296B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100103954A (ko) * 2009-03-16 2010-09-29 신동윤 개인 저장 장치 기반 웹하드 커뮤니티 시스템 및 방법
KR20130024434A (ko) * 2011-08-31 2013-03-08 양승식 데이터 중계기와 공유기를 이용한 통신망상에서의 외장형 저장장치 구동시스템
KR20140095252A (ko) * 2013-01-24 2014-08-01 정웅모 Usb 저장장치를 이용한 데이터 공유 방법
US20140310420A1 (en) * 2013-04-16 2014-10-16 Chi-Ming Kuo System and method of identifying networked device for establishing a p2p connection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100103954A (ko) * 2009-03-16 2010-09-29 신동윤 개인 저장 장치 기반 웹하드 커뮤니티 시스템 및 방법
KR20130024434A (ko) * 2011-08-31 2013-03-08 양승식 데이터 중계기와 공유기를 이용한 통신망상에서의 외장형 저장장치 구동시스템
KR20140095252A (ko) * 2013-01-24 2014-08-01 정웅모 Usb 저장장치를 이용한 데이터 공유 방법
US20140310420A1 (en) * 2013-04-16 2014-10-16 Chi-Ming Kuo System and method of identifying networked device for establishing a p2p connection

Similar Documents

Publication Publication Date Title
WO2022262078A1 (zh) 基于零信任安全的访问控制方法、设备及存储介质
US10623272B2 (en) Authenticating connections and program identity in a messaging system
US10608821B2 (en) Providing cross site request forgery protection at an edge server
US9231904B2 (en) Deploying and managing networked devices
US9276926B2 (en) Secure and automated credential information transfer mechanism
US9866556B2 (en) Common internet file system proxy authentication of multiple servers
WO2017000820A1 (zh) 基于云端存储的文件分享方法、装置与系统
US9509666B2 (en) Migrating authenticated content towards content consumer
US11240314B2 (en) Systems and methods for remote management of appliances
CN109691057B (zh) 经由私人内容分发网络可交换地取回敏感内容
KR100635627B1 (ko) 휴대폰에 저장된 데이터 공유 방법 및 그 시스템
US8862753B2 (en) Distributing overlay network ingress information
US20120278854A1 (en) System and method for device addressing
CN101635707A (zh) 在Web环境中为用户提供身份管理的方法和装置
WO2000051031A1 (en) Proxy server augmenting a client request with user profile data
TW201729121A (zh) 雲端服務伺服器及用來管理一雲端服務伺服器之方法
WO2014111022A1 (zh) 一种移动终端用户信息的显示方法、移动终端和服务系统
CN103220261A (zh) 一种开放鉴权应用程序接口代理的方法、装置及系统
WO2017076284A1 (zh) 统一资源定位符的发送方法和装置及分享方法和装置
CN105357110A (zh) 邮件发送方法、装置及系统
JP2017523508A (ja) セキュアな統合型クラウドストレージ
KR101972349B1 (ko) 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치
KR102034296B1 (ko) 모바일 스토리지 장치를 이용한 서비스 플랫폼 제공 방법 및 그 장치
JP6848275B2 (ja) プログラム、認証システム及び認証連携システム
JP6280471B2 (ja) 接続管理方法、プログラムおよび接続管理システム

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant