KR20190143754A - 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법 - Google Patents

분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법 Download PDF

Info

Publication number
KR20190143754A
KR20190143754A KR1020180071678A KR20180071678A KR20190143754A KR 20190143754 A KR20190143754 A KR 20190143754A KR 1020180071678 A KR1020180071678 A KR 1020180071678A KR 20180071678 A KR20180071678 A KR 20180071678A KR 20190143754 A KR20190143754 A KR 20190143754A
Authority
KR
South Korea
Prior art keywords
terminal
content
cluster
information
terminals
Prior art date
Application number
KR1020180071678A
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 KR1020180071678A priority Critical patent/KR20190143754A/ko
Publication of KR20190143754A publication Critical patent/KR20190143754A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

제1 단말이 동일한 클러스터를 형성하는 제2 단말로 컨텐츠를 공유하는 방법으로서, 제2 단말로부터 컨텐츠 요청 신호를 수신하면 컨텐츠 요청 신호에 포함된 컨텐츠 정보를 토대로, 컨텐츠에 리소스 락이 설정되어 있는지 확인한다. 그리고 컨텐츠에 리소스 락의 설정 여부에 따라 제2 단말이 컨텐츠를 사용할 수 있도록 하는 컨텐츠 액세스 형태를 결정하고, 결정한 형태로 제2 단말에 컨텐츠를 공유한다.

Description

분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법{System and method for contents sharing between distributed personal devices}
본 발명은 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법에 관한 것이다.
스마트 폰, 태블릿, PC 등과 같이 다양한 형태의 개인 디바이스들의 성능이 향상되고, 풀 HD(Full High Definition) 이상의 멀티미디어 컨텐츠들이 제공됨에 따라, 예전보다 큰 저장 공간을 갖는 개인 디바이스들을 필요로 하게 되었다. 그리고 개인이 PC와 휴대폰 등 여러 대의 기기를 소유하는 사례가 증가함에 따라, 기기간 분산된 컨텐츠가 하나의 공간에 저장되어 있는 것처럼 이용하고자 하는 사용자 요구가 늘어나고 있다.
개인 기기간에 컨텐츠를 공유하는 대표적인 방식으로 서버 방식과 P2P(Peer-to-Peer) 방식이 있다. 서버 방식은 중앙에 공유 서버를 두고, WebDav, FTP와 같은 프로토콜을 통해 공유하는 방식이고, P2P 방식은 기기간에 직접 컨텐츠를 주고 받는 방식을 의미한다.
P2P 방식을 별도 공유 서버를 준비할 필요가 없고, 각 노드 즉 각 기기들이 트래픽과 자원을 할당하기 때문에, 부하를 분산시킬 수 있는 효율적인 방법이다. 2P 방식은 각 노드가 소유한 인덱스를 구성하고 검색하는 방식에 따라 크게 '하이브리드(Hybrid) P2P 방식'과 '퓨어(Pure) P2P 방식'으로 구분할 수 있다.
하이브리드 P2P 방식은 각 노드들을 발견하고 탐색하기 위한 인덱스 서버를 사용하는 방식이다. 퓨어 P2P 방식은 인덱스 서버 없이 노드들이 직접 탐색을 수행하는 방식이다. 퓨어 P2P는 별도 인덱스 서버 없이 모든 노드가 동등한 입장으로 네트워크에 연결되어 있어 확장성이 높으나, 각 노드들이 다른 노드들을 발견하고 탐색하는데 오버헤드가 발생하고 노드 전체를 파악, 관리하기가 어려운 단점이 있다.
이를 해결하기 위해 컴퓨팅 성능이 좋고 네트웍크 환경이 좋은 노드를 슈퍼 피어로 지정하여 관리하는 방식을 사용하기도 한다. 하지만 일반으로 개인이 소유한 PC 또는 휴대폰과 같은 기기들로 구성된 노드에서 직접 다른 노드들을 탐색하여 인덱스를 구성하는 방식은 통신 비용을 고려할 때 부담스럽다. 또한 개인 기기 특성상 전원이 항상 온(ON) 상태를 유지하는 것이 아니고 네트워크 접속 역시 상시적이지 못하기 때문에, 슈퍼 피어로 지정하는 방식 역시 효율적이지 못하다.
따라서, 본 발명은 인덱스를 관리하는 마스터 단말을 선정하고, 마스터 단말의 부재시 다른 마스터 단말을 선출하는 방식을 통해, 개인 기기로 구성된 소규모 P2P 네트워크를 간편하게 관리하는 방식을 제공할 수 있는 컨텐츠 공유 시스템 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 제1 단말이 동일한 클러스터를 형성하는 제2 단말로 컨텐츠를 공유하는 방법으로서,
상기 제2 단말로부터 컨텐츠 요청 신호를 수신하는 단계, 상기 컨텐츠 요청 신호에 포함된 컨텐츠 정보를 토대로, 상기 컨텐츠에 리소스 락이 설정되어 있는지 확인하는 단계, 그리고 상기 컨텐츠에 리소스 락의 설정 여부에 따라 상기 제2 단말이 상기 컨텐츠를 사용할 수 있도록 하는 컨텐츠 액세스 형태를 결정하고, 결정한 형태로 상기 제2 단말에 컨텐츠를 공유하는 단계를 포함한다.
상기 컨텐츠를 공유하는 단계는, 상기 컨텐츠에 리소스 락이 설정되어 있지 않으면, 상기 제2 단말이 제1 단말 자신에 저장된 컨텐츠로의 액세스 허용 신호를 생성하는 단계, 상기 컨텐츠에 대한 리소스 락을 설정하는 단계, 그리고 리소스 락 정보를 포함하여 컨텐츠 정보를 갱신하는 단계를 포함하고, 상기 리소스 락 정보에는 상기 제2 단말의 식별 정보와 컨텐츠 요청 시간 정보를 포함할 수 있다.
상기 컨텐츠를 공유하는 단계는, 상기 컨텐츠에 리소스 락이 설정되어 있으면, 상기 제1 단말에 저장되어 있는 컨텐츠를 상기 제2 단말이 다운로드 받아 사용하도록, 컨텐츠 저장 유도 알림 메시지를 전송하는 단계를 포함할 수 있다.
상기 컨텐츠 요청 신호를 수신하는 단계 이전에, 상기 제2 단말에 대한 식별 정보, 클러스터 식별 정보 및 포트 정보 중 적어도 하나의 정보를 포함하는 연결 요청 신호를 수신하는 단계, 상기 제1 단말과 제2 단말이 연결되어 있는 관리 서버로, 상기 클러스터 식별 정보와 제2 단말에 대한 식별 정보를 전송하여, 상기 제2 단말이 동일한 클러스터에 등록된 단말인지 인증을 요청하는 단계, 그리고 상기 제2 단말이 동일한 클러스터에 등록된 단말이면, 상기 제2 단말로 상기 제1 단말 자신의 식별 정보와 포트 정보를 포함한 연결 응답 신호를 전송하고, 상기 제2 단말과 연결 상태를 유지하는 단계, 그리고 상기 인증 정보와 상기 제2 단말과 연결되어 있는 포트 정보 및 단말 식별 정보를 포함하는 단말 등록 정보를 상기 관리 서버에 등록하는 단계를 포함할 수 있다.
상기 컨텐츠 요청 신호를 수신하는 단계 이전에, 상기 클러스터를 형성하는 복수의 단말 정보가 포함되어 있는 서비스 설정 정보를 수신하는 단계, 상기 복수의 단말 정보를 기초로, 복수의 단말로 마스터 단말 여부에 대한 확인을 요청하는 단계, 그리고 상기 복수의 단말로부터 마스터 단말에 대한 응답이 전송되지 않으면, 상기 제1 단말 자신을 마스터 단말로 설정하고, 상기 복수의 단말과 연동을 위한 클러스터를 생성하는 단계를 포함할 수 있다.
상기 클러스터를 생성하는 단계 이후에, 상기 제1 단말 자신에 저장된 컨텐츠와 컨텐츠 저장 위치를 포함하는 인덱스를 생성하는 단계, 그리고 상기 제2 단말로부터 제2 단말에 저장된 컨텐츠와 컨텐츠 저장 위치를 포함하는 제2 단말의 인덱스를 수신하면, 상기 생성한 인덱스와 상기 수신한 제2 단말의 인덱스를 토대로 인덱스 리스트를 생성하는 단계를 포함할 수 있다.
상기 확인을 요청하는 단계 이후에, 상기 복수의 단말 중 어느 하나의 단말인 마스터 단말로부터 마스터 단말 알림 메시지를 수신하면, 인덱스를 생성하는 단계, 상기 마스터 단말로 클러스터로의 참여를 요청하는 단계, 그리고 상기 마스터 단말로부터 클러스터 참여 허락 메시지와 함께, 수정된 인덱스 리스트를 수신하면 상기 복수의 단말과 클러스터를 형성하는 단계를 포함할 수 있다.
상기 컨텐츠 요청 신호를 수신하는 단계 이전에, 상기 클러스터를 형성하는 복수의 단말 정보가 포함되어 있는 액세스 설정 정보를 수신하는 단계, 상기 복수의 단말 정보를 기초로, 복수의 단말로 마스터 단말 여부에 대한 확인을 요청하는 단계, 그리고 상기 복수의 단말 중 어느 하나의 단말로부터 마스터 단말이 아님을 응답으로 받으면, 상기 응답을 전송한 단말을 마스터 단말로 선정하는 단계,
상기 마스터 단말로 선정된 단말로 마스터 단말로의 수락을 요청하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 복수의 단말과 연동한 관리 서버가 상기 복수의 단말 간에 컨텐츠가 공유되도록 하는 방법으로서,
복수의 단말로부터 각각 인증 키와 복수의 단말 각각의 스토리지 정보를 포함하는 단말 등록 정보를 수신하는 단계, 각각의 인증 키 중 동일한 인증 키를 단말 등록 정보에 포함하여 전송한 복수의 단말들을, 동일한 클러스터를 형성하는 단말들로 관리되도록 설정하는 단계, 그리고 임의의 클러스터에 등록된 임의의 단말로부터 액세스 가능 단말 정보의 제공을 요청 받으면, 상기 임의의 클러스터에 등록된 적어도 하나의 단말 각각으로부터 전송되는 액세스 정보를 토대로 연결 가능 액세스 단말 정보를 생성하여 제공하는 단계를 포함한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 동일한 클러스터를 형성하는 복수의 단말 간에 컨텐츠가 공유되도록 하는 관리 서버로서,
상기 복수의 단말 중 임의의 단말로부터 전송된 클러스터 식별 정보를 토대로, 인증 키를 생성하는 인증 모듈, 그리고 상기 복수의 단말로부터 상기 인증 모듈이 생성한 인증 키와 복수의 단말 각각의 스토리지 정보를 포함하는 복수의 단말 등록 정보를 수신하고, 동일한 인증 키를 포함하여 전송한 적어도 하나 이상의 단말들을 동일한 클러스터를 형성하는 단말로 설정하여 관리하는 클러스터 관리 모듈을 포함한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 관리 서버에 연결되는 단말로서,
클러스터 형성을 위한 클러스터 식별 정보를 생성하고, 생성한 클러스터 식별 정보를 토대로 상기 관리 서버가 생성한 인증 정보를 수신하여 동일한 클러스터를 형성하기 위해 연결된 다른 단말들로 제공하는 단말 연결 모듈, 상기 단말 연결 모듈이 수신한 인증 정보를 포함하는 단말 등록 정보를 상기 관리 서버로 전달하여 단말을 등록하는 단말 상태 관리 모듈, 그리고 상기 동일한 클러스터를 형성하는 전체 단말에 저장된 컨텐츠 정보를 확인하고, 확인한 컨텐츠 정보를 토대로 사용자에 의해 선택된 컨텐츠를 저장하는 다른 단말로 컨텐츠 공유를 요청하는 컨텐츠 관리 모듈을 포함한다.
본 발명에 따르면, 단말간 연결에 따라 단말 각각의 메모리를 하나의 가상 스토리지로 통합하여 연결된 모든 단말들이 사용할 수 있도록 함으로써, 개인이나 소규모 그룹의 단말들을 대상으로 대규모의 컨텐츠 공유 서비스를 제공할 수 있다.
또한, 본 발명에 따르면 컨텐츠 공유 서비스를 이용하는 단말들이 동일한 컨텐츠에 동시에 접근할 수 있으며, 동시에 컨텐츠에 접근한다 하더라도 업데이트 유실 문제가 발생하지 않도록 제어할 수 있다.
도 1은 본 발명의 실시예에 따른 컨텐츠 공유 시스템이 적용된 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 단말의 구조도이다.
도 3은 본 발명의 실시예에 따른 관리 서버의 구조도이다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 마스터 단말 설정 방법에 대한 흐름도이다.
도 5는 본 발명의 또 다른 실시예에 따른 마스터 단말 설정 방법에 대한 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따라 재접속된 단말이 마스터 단말로 접속하는 방법에 대한 흐름도이다.
도 7은 본 발명의 실시예에 따른 클러스터 생성 방법에 대한 흐름도이다.
도 8은 본 발명의 실시예에 따른 단말간 컨텐츠 공유 방법에 대한 흐름도이다.
도 9는 본 발명의 또 다른 실시예에 따른 단말간 연결 방법에 대한 흐름도이다.
도 10은 본 발명의 실시예에 따른 컨텐츠 충돌 제어에 대한 흐름도이다.
도 11은 본 발명의 실시예에 따른 컨텐츠 공유의 예시도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단말(terminal)은, 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 사용자 장치(User Equipment, UE), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치 등의 전부 또는 일부의 기능을 포함할 수도 있다.
이하, 도면을 참조로 하여 본 발명의 실시 예에 따른 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 컨텐츠 공유 시스템이 적용된 환경의 예시도이다.
도 1에 도시된 바와 같이, 다양한 형태의 복수의 단말(200-1∼200-5)들은 P2P 방식으로 단말간 연결을 시도하고, 상호 연결된 단말(200-1~200-5)들이 하나의 클러스터를 형성한다. 그리고 본 발명의 실시예에서는 복수의 단말(200-1~200-5)들은 각각 관리 서버(100)와 연동하여, 관리 서버(100)로부터 각각의 단말(200-1~200-5)에 제공되는 IP와 다른 단말들과 연결을 위한 포트 정보를 전달 받는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 구성을 나타내지는 않는다.
본 발명의 실시예에서는 단말 각각을 컨텐츠 공유 시스템이라고도 지칭하나, 반드시 이와 같이 한정되는 것은 아니다. 그리고, 본 발명의 실시예에서는 설명의 편의를 위하여 다른 단말과의 연결을 시도하거나 컨텐츠를 요청하는 단말을 '요청 단말', 연결 시도를 요청 받거나 컨텐츠를 제공하는 단말을 '응답 단말'이라 지칭한다. 그리고, P2P 네트워크를 통해 클러스터를 형성하는 복수의 단말들 중, 인덱스를 관리하는 단말을 '마스터 단말'라 지칭한다.
여기서, 인덱스는 복수의 단말 각각에 저장된 정보들과, 정보들이 어느 위치에 저장되어 있는지를 나타내는 디렉토리 정보를 포함한다. 본 발명의 실시예에서는 각각의 단말에 저장된 정보들의 형태를 어느 하나로 한정하여 설명하지 않으나, 설명의 편의를 위하여 콘텐츠(예를 들어, 음원, 동영상, 사진 등)들이 저장되어 있는 것을 예로 하여 설명한다.
도 1에 도시된 복수의 단말(200-1∼200-5) 중 제1 단말(200-1), 제2 단말(200-2), 제3 단말(200-3)은 온(On) 상태이고, 제4 단말(200-4)과 제5 단말(200-5)은 오프(Off) 상태인 것을 예로 하여 설명한다.
온 상태인 단말들 중 제1 단말(200-1)이 다른 단말(200-2~200-4)들과 연결되어 클러스터를 형성하고자 시도하면, 제1 단말(200-1)은 단말들 중 마스터 단말이 있는지 여부를 문의하는 메시지를 브로드캐스트한다. 제1 단말(200-1)은 온 상태인 제2 단말(200-2)과 제3 단말(200-3)로부터는 마스터 단말 여부 응답을 수신하고, 오프 상태인 제4 단말(200-4)과 제5 단말(200-5)로부터는 응답을 받지 못한다.
제2 단말(200-2) 또는 제3 단말(200-3) 중 마스터 단말이 있을 경우, 제1 단말(200-1)은 마스터 단말로 마스터 단말이 형성한 클러스터로의 참여를 요청한다. 이때, 관리 서버(100)로부터 수신한 클러스터 식별 정보에 대한 인증 정보를 이용하여 클러스터로 참여를 허가 받는다.
그러나, 제2 단말(200-2)과 제3 단말(200-3)이 모두 마스터 단말이 아닐 경우, 제1 단말(200-1)은 단말 자신 또는 제2 단말(200-2)이나 제3 단말(200-3) 중 어느 하나의 단말을 마스터 단말로 설정한다. 여기서, 복수의 단말 중 마스터 단말로 설정하는 기준은 여러가지로 예를 들을 수 있으나, 본 발명의 실시예에서는 임의 선출 또는 미리 설정된 우선 순위에 따라 마스터 단말을 설정하는 방법을 예로 하여 설명한다.
마스터 단말은 클러스터를 형성한 후, 클러스터에 포함된 적어도 하나의 단말로부터 수신한 인덱스를 토대로 인덱스 리스트를 생성한다. 그리고 생성한 인덱스 리스트를 클러스터에 포함된 적어도 하나의 단말로 전달한다. 마스터 단말은 자신이 형성한 클러스터에 대한 클러스터 식별 정보, 생성한 인덱스 리스트를 관리 서버(100)에 전달하여, 저장, 관리되도록 한다.
여기서, 제1 단말(200-1)이 관리 서버(100)로부터 수신한 클러스터 인증 정보는, 요청 단말인 제1 단말(200-1)이 클러스터 식별 정보를 관리 서버(100)에 전송하면, 관리 서버(100)가 클러스터 식별 정보에 대응하는 인증 정보를 생성하여 요청 단말에 제공한다. 클러스터 구성 단말 리스트는 사전에 관리자 또는 클러스터를 구성하고자 하는 사용자에 의해 선택된 것을 예로 하여 설명한다.
관리 서버(100)는 요청 단말로부터 클러스터 식별 정보, 인증 정보, 단말의 식별 정보, IP 정보 등을 포함하는 액세스 정보를 수신하면, 수신한 액세스 정보를 클러스터 구성 정보로써 저장, 관리한다. 이때, 클러스터 구성 정보는 관리 서버(100)에 저장되거나 또는 별도의 공개 저장소(도면 미도시)에 저장되어 관리될 수 있다.
클러스터가 형성된 후, 복수의 단말(200-1~200-3)들은 관리 서버(100) 또는 별도의 공개 저장소에 저장된 클러스터 식별 정보를 토대로 형성된 클러스터를 발견할 수 있다. 또는, 단말(200-1~200-3)간에 클러스터 식별 정보를 전송함으로써 클러스터를 발견할 수도 있다.
클러스터에 등록한 요청 단말은 하나의 클러스터에 등록한 복수의 단말(200-1~200-3)들에 대한 클러스터 구성 단말 리스트를 관리 서버(100)로 요청한다. 그리고 관리 서버(100)로부터 수신한 클러스터 구성 단말 리스트에 기재된 다른 복수의 단말(200-1~200-3)들로 액세스를 요청한다. 이때, 요청 단말이 동일한 클러스터를 형성하는 복수의 다른 단말(200-1~200-3)들로 액세스를 요청할 때, 자신의 클러스터 식별 정보와 인증 정보를 포함하여 액세스를 요청한다.
액세스 요청을 받은 복수의 단말(200-1~200-3) 중 하나인 응답 단말은 클러스터 식별 정보와 요청 단말의 인증 정보를 관리 서버(100)에 전송하여 동일한 클러스터에 포함된 단말인지 인증을 요청한다. 그리고 동일한 클러스터에 포함된 단말인 것으로 확인하면, 요청 단말과 서로의 컨텐츠 정보를 송수신할 수 있는 양방향 채널을 구성한다. 이때, 상대 단말의 액세스 정보가 변경되는 경우, 관리 서버(100)를 통해 변경 정보를 수신함으로써 동적으로 채널을 구성할 수 있다.
또한, 하나의 클러스터를 생성하는 복수의 단말(200-1~200-3) 중 컨텐츠 제공을 요청 받은 응답 단말은, 응답 단말에 저장된 임의의 컨텐츠에 복수의 요청 단말들이 동시에 액세스하는 경우 해당 컨텐츠에 충돌 제어 기능을 제공한다.
여기서, 충돌 제어 기능이라 함은 컨텐츠 공유 기능에 따라 임의의 컨텐츠에 복수의 단말(200-2, 200-3)들이 동시에 액세스하는 경우, 충돌 상황을 방지하기 위하여 대상 컨텐츠에 충돌 방지 락을 설정하는 기능을 의미한다. 즉, 하나의 단말이 임의의 컨텐츠에 액세스하여 컨텐츠를 이용하고 있는 경우, 다른 단말이 해당 컨텐츠에 액세스하여 이동/갱신/삭제를 시도하더라도 해당 명령이 컨텐츠에 적용되지 않도록 응답 단말이 제어한다.
관리 서버(100)는 미리 복수의 단말(200-1~200-5)들로부터 각각 자신이 클러스터로 형성되기 원하는 단말들의 식별 정보를 수신하여 관리한다. 또한, 관리 서버(100)는 연동한 복수의 단말(200-1∼200-5)들의 온/오프(On/Off) 상태, 각 단말(200-1∼200-5)들의 IP 정보, 포트 정보를 포함하는 액세스 정보를 관리한다.
관리 서버(100)는 클러스터를 형성하고자 하는 요청 단말로부터 클러스터 식별 정보를 수신하면, 수신한 클러스터 식별 정보를 토대로 인증 키를 생성하여 요청 단말로 제공한다.
관리 서버(100)는 복수의 단말(200-1∼200-3) 각각의 상태 정보를 수신하여 관리한다. 그리고 요청 단말로부터 클러스터를 형성한 복수의 단말 중 액세스 가능 단말의 정보를 요청 받으면, 관리하고 있는 복수의 단말(200-1~200-3) 각각의 상태 정보를 토대로 액세스 가능 단말 정보를 제공한다.
이상의 환경에서 양방향 연결을 통해 컨텐츠를 실시간 공유하거나, P2P 네트워크로 연결된 단말(200-1~200-5)들 사이에서 마스터 단말을 선별하는 단말(200)과 관리 서버(100)의 구조에 대해 도 2 및 도 3을 참조로 설명한다. 여기서 도 2의 단말(200)은 요청 단말인 것을 예를 들어 설명한다.
도 2는 본 발명의 실시 예에 따른 단말의 구조도이다.
도 2에 도시된 바와 같이, 단말(200)은 인터페이스(210), 프로세서(220), 디스플레이(230) 그리고 메모리(240)를 포함한다. 본 발명의 실시예에서는 프로세서(220)를 그 기능에 따라 단말 연결 모듈(221), 단말 상태 관리 모듈(222), 컨텐츠 관리 모듈(223), 그리고 가상 스토리지 생성 모듈(224)로 구분지어 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
단말 연결 모듈(221)은 P2P 네트워크를 통해 다른 단말들과 연결을 시도하기 위하여, 단말(200)의 사용자로부터 입력된 서비스 설정 정보를 수신한다. 서비스 설정 정보에는 사용자가 소지하고 있는 모든 단말들의 식별 정보가 포함되어 있다. 여기서 단말들의 식별 정보를 어느 하나의 형태로 한정하지 않는다.
단말 연결 모듈(221)은 수신한 서비스 설정 정보에 포함된 단말들의 식별 정보를 토대로, 해당 단말들 중 마스터 단말로 설정된 단말이 있는지 문의하는 마스터 단말 확인 요청 메시지를 전송한다.
단말 연결 모듈(221)은 이웃한 단말들 중 어느 하나의 단말로부터 미리 설정된 시간 내에 마스터 단말임을 알리는 메시지를 수신하면, 마스터 단말인 해당 단말로 클러스터 참여 요청 신호를 전송한다. 여기서, 클러스터 참여 요청 신호에는 단말(200)의 식별 정보를 포함하여 전송한다.
단말 연결 모듈(221)은 마스터 단말로부터 클러스터 참여 허락 신호와 인덱스 리스트를 수신하면, 수신한 인덱스 리스트를 저장한다. 그리고 마스터 단말과 P2P 네트워크를 통해 연결을 수행한다.
단말 연결 모듈(221)은 마스터 단말 여부 확인 요청 메시지를 전송한 뒤 미리 설정된 시간 내에 응답 신호를 수신하지 못한 경우, 또는 미리 설정된 시간 내에 응답 신호를 수신하였다 하더라도 마스터 단말 아님 응답을 수신하면, 단말(200) 자신 또는 마스터 단말 아님 응답을 전송한 인접한 단말 중 어느 하나의 단말을 마스터 단말로 지정한다.
만약 단말(200) 자신을 마스터 단말로 지정하는 경우라면, 단말 연결 모듈(221)은 새로운 클러스터를 생성한 후, 인덱스를 생성한다
만약 단말(200)이 미리 설정된 마스터 단말 선출 방식에 따라 다른 단말을 마스터 단말로 선출한 경우라면, 해당 단말에 마스터 단말 수락 요청 신호를 전송한다. 본 발명의 실시예에서는 임의 선출 방식 또는 우선 순위 반영 선출 방식 중 어느 하나를 통해, 마스터 단말을 선출하는 것을 예로 하여 설명한다.
단말 연결 모듈(221)은 마스터 단말을 확인하면, 인터페이스(210)를 통해 사용자에 의해 입력된 응답 단말과의 연결 신호를 송수신하며 P2P 네트워크를 통해 연결을 수행한다. 여기서, 연결 신호에는 요청 단말의 식별 정보와 포트 정보가 포함되어 있고, 연결 응답 정보에는 응답 단말의 경우에는 포트 정보가 포함되어 있다.
단말 연결 모듈(221)은 또한 컨텐츠 관리 모듈(223)과 연동하여, 단말의 사용자가 동일한 클러스터를 형성하는 다른 단말에 저장되어 있는 컨텐츠의 사용을 시도할 때, 다른 단말과 연결되어 있지 않을 경우, 해당 단말과의 연결을 시도한다. 본 발명의 실시예에서는 단말 사이에 P2P 연결 방식으로 양방향 연결을 시도하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
단말 연결 모듈(221)은 사용자의 입력을 토대로 클러스터 식별 정보를 생성하고, 인터페이스(210)를 통해 관리 서버(100)로 클러스터 식별 정보를 전송한다. 단말 연결 모듈(221)이 클러스터 식별 정보를 생성하는 방법은 여러 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
단말 연결 모듈(221)은 인터페이스(210)를 통해 관리 서버(100)로부터 인증 정보를 수신한다. 인증 정보는 클러스터 식별 정보를 토대로 관리 서버(100)가 생성한 인증 키를 포함하며, 수신한 인증 정보는 메모리(240)에 저장한다.
단말 연결 모듈(221)은 최초 클러스터에 포함시킬 단말들을 관리 서버(100)에 등록해두면, 이후 인터페이스(210)를 통해 클러스터를 구성하는 클러스터 구성 단말 리스트를 수신한다. 그리고 연결 가능한 클러스터 구성 단말 리스트를 디스플레이(230)를 통해 사용자에게 제공한다.
단말 상태 관리 모듈(222)은 미리 설정한 시간 주기로 단말(200)의 상태를 모니터링한다. 단말 상태 관리 모듈(222)이 단말(200) 상태를 모니터링하는 방법은 여러 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
단말 상태 관리 모듈(222)은 인터페이스(210)를 통해 관리 서버(100)로 단말 등록 정보와 상태 정보를 포함하는 액세스 정보를 전송한다. 여기서 단말 등록 정보는 관리 서버(100)가 생성한 인증 키와 단말 식별 정보, 응답 단말과 연결된 포트 정보를 포함한다.
그리고 상태 정보는 단말이 온(On) 상태인지를 구별하는 구별 정보가 포함되어 있다. 상태 정보를 관리 서버(100)로 전달하기 위해, 단말 상태 관리 모듈(222)은 주기적으로 단말 자신이 현재 온(On) 상태인지 확인한다. 단말이 자신의 실행 상태를 확인하는 방법은 여러 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
만약 단말(200)이 응답 단말인 경우에는 인터페이스(210)를 통해 요청 단말로부터 전송된 인증 키와 요청 단말의 식별 정보를 수신한다. 인증 키와 식별 정보를 수신하면, 단말 상태 관리 모듈(222)은 관리 서버(100)로 해당 단말이 클러스터에 등록되어 있는 단말인지 인증을 요청한다. 그리고, 관리 서버(100)로부터 전송되는 인증 결과 정보를 토대로 단말 연결 모듈(221)을 통해 요청 단말과의 연결을 시도한다.
컨텐츠 관리 모듈(223)은 인터페이스(210)를 통해 다른 단말에 저장된 컨텐츠의 제공을 요청하거나, 다른 단말로부터 컨텐츠 제공을 요청 받는다. 또한, 다른 단말로부터 제공되는 컨텐츠를 전달받아 디스플레이(230)를 통해 사용자에게 제공한다.
그리고, 단말(200)이 컨텐츠 제공을 요청 받은 응답 단말인 경우, 컨텐츠 관리 모듈(223)은 메모리(240)에 저장한 컨텐츠의 속성을 제어한다. 즉, 컨텐츠 관리 모듈(223)은 클러스터를 형성한 복수의 단말 중 임의의 단말이 다른 단말로 컨텐츠 제공을 요청하면, 컨텐츠 요청 정보를 인터페이스(210)를 통해 수신한다.
그리고 컨텐츠 관리 모듈(223)은 메모리(240)에 저장된 컨텐츠 정보를 토대로, 컨텐츠에 리소스 락이 설정되어 있는지 확인한다. 이때 리소스 락은 제1 리소스 락과 제2 리소스 락으로 구분할 수 있다.
제1 리소스 락은 단말(200)이 요청 받은 컨텐츠가 이미 다른 단말에서 사용하고 있는 경우, 해당 컨텐츠가 또 다른 단말에 의해 삭제/수정/이동되지 않도록 충돌 방지 락을 설정한 것이다.
그리고 제2 리소스 락은 OS 리소스 락에 대한 것으로, 컨텐츠가 저장되어 있는 단말(200)의 프로그램, 어플리케이션 등에 의해 컨텐츠가 실행되고 있을 때, 다른 단말에 의해 삭제/수정/이동되지 않도록 충돌 방지 락을 설정한 것이다. 단말(200) 자체적으로 컨텐츠가 실행되고 있는지 파악하는 방법으로는, 리눅스의 FUSE와 같이 커널 레벨에서 제공하는 컨텐츠 변경 모니터링 기능을 이용하여 단말 자체적으로 해당 컨텐츠에 접근이 이루어지고 있는지 파악할 수 있다. 그러나, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
컨텐츠 관리 모듈(223)은 요청된 컨텐츠를 사용하고 있는 또 다른 단말이 존재하지 않고, 해당 컨텐츠를 보관하고 있는 단말에서도 해당 컨텐츠를 사용하지 않는 경우, 해당 컨텐츠를 요청한 단말의 단말 ID와 컨텐츠를 요청한 요청 시간을 포함하는 컨텐츠 요청 정보를 생성한다. 그리고 해당 컨텐츠에 다른 단말이 접근할 경우, 다른 단말에 의해 해당 컨텐츠가 삭제/수정/이동되지 않도록 제1 리소스 락을 생성한다.
컨텐츠 관리 모듈(223)은 제1 리소스 락의 생성과 함께 컨텐츠 요청 정보를 메모리(240)에 저장한다. 이와 동시에 컨텐츠 관리 모듈(223)은 해당 컨텐츠로의 액세스를 허용하는 컨텐츠 액세스 허용 신호를 생성하고, 컨텐츠를 요청한 단말로 전송한다. 즉, 메모리(240)에 저장된 컨텐츠를 다른 단말이 다운로드 하지 않고, 메모리(240)에 저장되어 있는 컨텐츠에 액세스하여 사용하도록 허용한다.
그러나, 컨텐츠에 제1 리소스 락 또는 제2 리소스 락이 설정되어 있는 경우, 컨텐츠 관리 모듈(223)은 다른 이름으로 컨텐츠를 저장하여 사용하도록 유도하는 알림 메시지를 생성하여 컨텐츠를 요청한 단말로 전송한다. 그리고 컨텐츠 저장 응답 신호를 수신하면 메모리(240)에 저장된 컨텐츠를 다른 단말로 제공하여 저장, 사용하도록 한다. 그러나 컨텐츠 저장 응답 신호를 거절하는 거절 신호를 수신하면, 컨텐츠 이용 대기 알림 신호를 생성하여 전달한다.
컨텐츠 관리 모듈(223)은 임의의 컨텐츠에 대해 단말 자체적으로 해당 컨텐츠를 사용하고자 하는 경우, 해당 컨텐츠에 대한 제2 리소스 락을 생성한다. 그리고 제2 리소스 락이 생성되었음을 알리는 정보를 메모리(240)에 저장한다.
그리고, 컨텐츠 관리 모듈(223)은 동일한 클러스터를 형성하는 다른 단말로부터 컨텐츠를 다운로드 받으면, 다운로드 받은 컨텐츠가 메모리(240)에 저장되도록 관리한다.
가상 스토리지 생성 모듈(224)은 연결된 요청 단말로부터 스토리지 용량 정보와 스토리지에 저장되어 있는 컨텐츠 정보를 포함하는 스토리지 정보를 수신한다. 그리고 수신한 스토리지 정보와 응답 단말 자신의 스토리지 정보를 이용하여 가상 스토리지를 생성한다. 본 발명의 실시예에서는 응답 단말이 가상 스토리지를 생성하는 것을 예로 하여 설명하나, 관리 서버(100)가 생성한 가상 스토리지를 통해, 동일한 클러스터를 형성하는 모든 단말들이 확인할 수 있도록 제공될 수도 있다.
본 발명의 실시예에서는 메모리(240) 즉 스토리지의 전체 용량 정보를 제공하는 것을 예로 하여 설명하나, 사용자에 의해 전체 스토리지 중 일부 스토리지만만이 선택되어 제공될 수도 있다. 가상 스토리지 생성 모듈(224)이 사용자에 의해 선택된 일부 스토리지의 용량을 확인하는 방법은 여러 방법으로 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
메모리(240)는 복수의 컨텐츠를 저장할 뿐만 아니라, 단말(200)을 실행하기 위한 다양한 프로그램들이 저장되어 있다. 본 발명의 실시예에서는 설명의 편의를 위하여 단말(200)이 양방향 연결을 시도하여 클러스터를 형성하고, 단말(200)에 저장된 컨텐츠를 공유하는 것을 예로 하여 설명하였으나, 단말(200)에 설치된 앱을 통해 수행할 수 있다. 이 경우, 프로세서(220)는 설치된 앱을 구동한다.
한편, 복수의 단말(200-1∼200-5)들이 연결되어 있으며, 클러스터에 포함된 단말들을 관리하는 관리 서버(100)의 구조에 대해 도 3을 참조로 설명한다.
도 3은 본 발명의 실시예에 따른 관리 서버의 구조도이다.
도 3에 도시된 바와 같이, 관리 서버(100)는 통신 인터페이스부(110), 프로세서(120) 그리고 저장부(130)를 포함한다. 그리고 프로세서(120)는 그 기능에 따라 인증 모듈(121)과 클러스터 관리 모듈(122)로 구분지어 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
인증 모듈(121)은 통신 인터페이스부(110)를 통해 연결된 특정 단말 즉, 요청 단말로부터 클러스터 식별 정보를 수신한다. 그러면, 수신한 클러스터 식별 정보를 이용하여 인증 키를 생성, 인증 정보에 포함하여 요청 단말로 전송한다.
인증 모듈(121)은 또한, 임의의 단말로부터 클러스터 식별 정보와 단말의 식별 정보를 수신하면, 수신한 클러스터 식별 정보에 단말이 등록되어 있는지 확인한다. 그리고 확인한 인증 결과를 임의의 단말로 전달한다.
클러스터 관리 모듈(122)은 통신 인터페이스부(110)를 통해 수신한 복수의 단말(200-1∼200-5)들 각각의 단말 등록 정보를 수신하여 저장부(130)에 저장한다. 이때, 단말 등록 정보에 포함된 인증 키를 기초로, 동일한 인증 키를 전송하는 단말들은 동일한 클러스터를 형성하도록 저장한다.
또한, 클러스터 관리 모듈(122)은 클러스터에 포함되어 있는 복수의 단말(200-1~200-5)들로부터 주기적으로 상태 정보를 수신한다. 여기서 상태 정보는 단말 식별 정보가 포함되어 있다. 상태 정보를 전송하는 단말은 그 상태가 온(On) 상태임을 의미하는 것이므로, 해당 단말이 포함되어 있는 단말에서 연결 가능 단말 리스트가 요청될 때 상태 정보를 전송한 단말들의 식별 정보가 포함된 리스트가 생성된다.
클러스터 관리 모듈(122)은 단말들로부터 상태 정보를 수신하면, 저장부(130)에 저장되어 있는 클러스터 내 단말들의 상태 정보와 비교한다. 저장부(130)에 저장된 임의의 단말의 상태가 온(On) 상태이고, 클러스터 관리 모듈(122)이 해당 임의의 단말로부터 미리 설정된 주기에 따라 상태 정보를 수신하였다면, 클러스터 관리 모듈(122)은 해당 단말이 지속적으로 온(On) 상태인 것으로 관리한다.
그러나, 저장부(130)에 저장된 임의의 단말 상태가 온(On) 상태이나 클러스터 관리 모듈(122)이 미리 설정된 주기에 해당 단말로부터 상태 정보를 수신하지 못하였다면, 해당 단말의 전원이 꺼지는 등에 의해 상태가 변경된 것으로 확인한다. 따라서, 클러스터 관리 모듈(122)은 저장부(130)에 저장된 해당 단말의 상태를 온(On) 상태에서 오프(Off) 상태로 변경한다. 반대로, 저장부(130)에 오프(Off) 상태로 저장된 단말로부터 상태 정보가 전송되면, 클러스터 관리 모듈(122)은 해당 단말의 상태 정보를 오프(Off) 상태에서 온(On) 상태로 변경한다.
저장부(130)는 클러스터 식별 정보, 클러스터 식별 정보를 이용하여 프로세서(120)가 생성한 인증 키, 그리고 클러스터를 형성하는 복수의 단말들에 대한 단말 정보를 저장 관리한다.
이상에서 설명한 환경에서, 단말간에 연결을 시도할 때 마스터 단말을 설정하고 마스터 단말로 접속하는 방법에 대해 도 4a 내지 도 6을 참조로 설명한다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 마스터 단말 설정 방법에 대한 흐름도이다.
도 4a는 본 발명의 제1 실시예에 따라 사용자에 의해 입력된 서비스 설정 정보를 수신한 요청 단말이 스스로 마스터 단말로 설정하는 방법에 대해 나타낸 것이다. 본 발명의 실시예에서는 임의의 사용자가 요청 단말인 제1 단말, 두 개의 응답 단말인 제2 단말, 제3 단말을 소지하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
도 4a에 도시된 바와 같이, 요청 단말이 사용자에 의해 입력된 서비스 설정 정보를 수신한다(S100). 여기서 서비스 설정 정보에는 제1 응답 단말과 제2 응답 단말 식별 정보가 포함되어 있다.
요청 단말은 서비스 설정 정보에 포함되어 있는 사용자가 소지한 제1 응답 단말과 제2 응답 단말로 해당 단말들이 마스터 단말인지 여부를 묻는 마스터 단말 여부 확인 요청 신호를 브로드캐스트한다(S101, S102). 그리고 미리 설정된 시간 내에 제1 응답 단말과 제2 응답 단말로부터 마스터 단말 여부에 대한 응답을 수신하였는지 확인한다(S103).
제1 응답 단말과 제2 응답 단말이 모두 P2P 네트워크에 접속되어 있지 않는 경우, 요청 단말은 제1 응답 단말과 제2 응답 단말로부터 마스터 단말 여부 응답을 수신하지 못한다. 따라서, 요청 단말은 자신을 마스터 단말로 설정하고(S104), 클러스터를 생성한다(S105). 마스터 단말로 설정한 요청 단말은, 단말 자신에 대한 인덱스를 생성하고(S106), 인덱스 리스트를 생성한 후 관리 서버(100)에 제공한다(S107).
한편, S103 단계에서 미리 설정한 시간 내에 제1 응답 단말 또는 제2 응답 단말 중 적어도 하나의 단말로부터 마스터 단말 여부에 대한 응답을 수신한 경우에 대해 도 4b를 참조로 설명한다. 본 발명의 실시예에서는 설명의 편의를 위하여, 응답 단말이 마스터 단말로 설정되어 있는 경우를 예로 하여 설명한다.
도 4b에 도시된 바와 같이, 마스터 단말로 설정되어 있는 응답 단말에는 인덱스 리스트가 저장되어 있다(S200). 도 4a의 S101 단계 및 S102 단계 이후에, 요청 단말이 응답 단말로부터 미리 설정된 시간 이내에 마스터 단말임을 알리는 메시지를 수신하면(S201), 요청 단말은 자신에 대한 인덱스를 생성한다(S202).
그리고 응답 단말로 클러스터 참여 요청 신호를 전송한다(S203). 여기서 클러스터 참여 요청 신호에는 S202 단계에서 생성한 요청 단말에 대한 인덱스가 포함되어 있다.
마스터 단말인 응답 단말은 S203 단계에서 요청 단말로부터 수신한 클러스터 참여 요청을 허락하는 응답을 전송하고(S204), S203 단계에서 수신한 인덱스를 포함하도록 인덱스 리스트를 수정한다(S205). 그리고 수정된 인덱스 리스트를 요청 단말로 전송하면(S206), 요청 단말은 수정된 인덱스 리스트를 저장한다(S207). 여기서, S204 단계에서 클러스터로의 참여를 허락하는 절차는 이후 설명하기로 한다.
한편, 또 다른 실시예에 따라 마스터 단말을 설정하는 방법에 대해 도 5를 참조로 설명한다.
도 5는 본 발명의 또 다른 실시예에 따른 마스터 단말 설정 방법에 대한 흐름도이다.
도 5에서는 제1 응답 단말과 제2 응답 단말이 사전에 P2P 네트워크를 통해 클러스터로 형성되어 있었고, 마스터 단말인 제1 응답 단말이 부재함에 따라 제2 응답 단말이 포함되어 있는 클러스터에 마스터 단말이 없는 상황에 대해 나타낸 것이다.
도 5에 도시된 바와 같이, 제1 응답 단말과 제2 응답 단말은 동일한 인덱스 리스트가 저장되어 있다(S300, S300'). 여기서, 제2 응답 단말에 저장되어 있는 인덱스 리스트는 제1 응답 단말이 생성하여 제2 응답 단말로 제공한 것이다. 새로운 요청 단말이 관리 서버(100)로부터 수신한 액세스 정보를 이용하여 단말 자신을 설정한 후(S301), 제1 응답 단말과 제2 응답 단말로 마스터 단말인지 여부를 확인하는 마스터 단말 여부 확인 요청 신호를 전송한다(S302, S303).
여기서 액세스 정보를 설정한다 함은, 요청 단말이 관리 서버(100)로부터 요청 단말의 IP와 포트 정보를 수신하고, 수신한 요청 단말 자신의 IP와 포트를 통해 다른 단말들과 클러스터를 형성할 수 있도록 설정한다는 것을 의미한다. 액세스 정보를 설정하는 방법은 다양하게 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
제1 응답 단말은 현재 부재 상태이므로, 요청 단말은 제2 응답 단말로부터 마스터 단말이 아님을 나타내는 응답을 수신한다(S304). 요청 단말은 응답이 있는 단말들 중 어느 하나를 마스터 단말로 선출하게 되며, 본 발명의 실시예에서는 제2 응답 단말을 마스터 단말로 선출한다(S305). 이때, 요청 단말은 복수의 단말로부터 응답이 있는 경우 임의 선출 방식 또는 미리 정해진 우선 순위에 따른 방식 중 어느 하나를 이용하여 마스터 단말을 선출한다.
요청 단말은 마스터 단말로 선출한 제2 응답 단말로 마스터 단말 수락을 요청하면(S306), 제2 응답 단말은 S306 단계의 요청에 따라 마스터 단말로 동작하는 것을 수락하는 응답을 제1 단말로 전송한다(S307). 이와 동시에 제2 응답 단말은 현재 마스터 단말로 설정되어 있던 제1 응답 단말로도 자신이 마스터 단말로 설정되었음을 알린다(S308).
요청 단말은 S307 단계를 통해 마스터 단말 수락 응답 메시지를 수신하면, 요청 단말 자신에 대한 인덱스를 생성한다(S309). 그리고 생성한 인덱스를 포함하여 새로 마스터 단말로 설정된 제2 응답 단말로, 제2 응답 단말이 마스터 단말로 설정된 클러스터의 참여를 요청한다(S310).
제2 응답 단말은 요청 단말로 P2P 네트워크를 통해 클러스터에 참여를 허락하는 메시지를 전송하고(S311), S310 단계에서 요청 단말로부터 수신한 인덱스를 포함하여 인덱스 리스트를 수정한다(S312). 그리고 수정된 인덱스 리스트를 요청 단말로 전송하면(S313), 요청 단말은 수정된 인덱스 리스트를 저장한다(S314).
한편, 도 5에서 부재중인 제1 응답 단말에 전원이 켜져 다시 P2P 네트워크로 접속할 경우, 새로 선정된 마스터 단말로 접속하는 방법에 대해 도 6을 참조로 설명한다. 도 6에서는 제1 응답 단말이 다른 단말로 접속을 시도하게 되므로 요청 단말이 되고, 도 5에서 마스터 단말로 선정된 제2 응답 단말 역시 '마스터 단말'이라 표기한다. 그리고 도 5에서 요청 단말은 도 6의 절차에서는 제1 응답 단말로부터 마스터 단말 여부 확인을 요청받기 때문에, '응답 단말'이라 지칭한다.
도 6은 본 발명의 또 다른 실시예에 따라 재접속된 단말이 마스터 단말로 접속하는 방법에 대한 흐름도이다.
도 6에 도시된 바와 같이, 요청 단말이 P2P 네트워크에 재접속되면, 응답 단말과 마스터 단말로 마스터 단말 여부 확인을 요청하는 신호를 브로드캐스트한다(S401, S402). 현재 응답 단말은 마스터 단말이 아니고 도 5에서의 제2 응답 단말이 마스터 단말이기 때문에, 요청 단말은 응답 단말로부터는 마스터 단말이 아님을 응답 받고(S403), 마스터 단말로부터는 마스터 단말 응답을 수신한다(S404).
마스터 단말로부터 마스터 단말 응답을 받은 요청 단말은 마스터 단말로 인덱스 리스트를 요청한다(S405). 마스터 단말은 상기 도 5의 S312 단계에서 수정한 인덱스 리스트를 요청 단말로 제공하고(S406), 요청 단말은 수신한 인덱스 리스트를 S300 단계에서 저장하고 있던 인덱스 리스트와 교체하여 수정한다(S407).
다음은, 본 발명의 또 다른 실시예를 통해 단말간에 연결을 통해 클러스터를 생성하는 방법과, 동일한 클러스터를 형성하는 복수의 단말 사이에 컨텐츠를 공유하는 방법, 그리고 또 다른 실시예에 따른 단말간 연결 방법에 대해 도 7 내지 도 9를 참조로 설명한다. 본 발명의 실시예에서는 설명의 편의를 위하여 두 개의 단말이 하나의 클러스터를 형성하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
도 7은 본 발명의 실시예에 따른 클러스터 생성 방법에 대한 흐름도이다.
먼저 도 7에 도시된 바와 같이, 요청 단말(200-2)을 소지한 사용자는 인접한 응답 단말(200-1)과의 연결을 통해 클러스터를 형성하기 위하여 요청 단말(200-2)을 이용하여 원하는 식별 정보를 입력하면, 요청 단말(200-2)은 클러스터 식별 정보를 생성한다(S500). 요청 단말(200-2)은 생성한 클러스터 식별 정보를 관리 서버(100)로 전송한다(S501).
관리 서버(100)는 S501 단계에서 수신한 클러스터 식별 정보를 토대로 인증 키를 생성한다(S502). 여기서 관리 서버(100)가 인증 키를 생성하는 방법은 다양한 방법으로 수행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
관리 서버(100)가 인증 키를 생성하는 동안 요청 단말(200-2)은 연결을 시도할 응답 단말(200-1)로 연결 요청 신호를 전달하여, 요청 단말(200-2)과 응답 단말(200-1) 사이에 연결을 시도한다(S503). 여기서 연결 요청 신호에는 요청 단말(200-2)의 식별 정보와 포트 정보가 포함되어 있다.
응답 단말(200-1)은 S503 단계에서 요청 단말(200-2)로부터 전송된 연결 요청 신호에 따라 응답 단말(200-1)의 사용자가 연결 요청에 대하여 허락을 알리는 입력을 발생하면, 응답 단말(200-1) 자신의 식별 정보와 포트 정보를 포함한 연결 응답 신호를 요청 단말(200-2)에 전송한다(S504). 여기서, 응답 단말(200-1)이 요청 단말(200-2)에 연결 응답 신호를 전송할 때, 스토리지 정보에는 응답 단말(200-1)에 저장되어 있는 컨텐츠 정보가 함께 전송된다.
응답 단말(200-1)과 요청 단말(200-2)은 주고받은 포트 정보를 토대로, 해당 포트를 통해 연결된다(S505). 본 발명의 실시예에서는 응답 단말(200-1)과 요청 단말(200-2)이 P2P 연결을 통해 연동하거나, 송수신한 포트 정보와 식별 정보를 토대로 다양한 형태로 연결을 수행하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
요청 단말(200-2)과 응답 단말(200-1)이 연결되거나 연결 시도 중에, 요청 단말(200-2)은 관리 서버(100)로부터 클러스터 식별 정보를 토대로 생성한 인증 정보를 수신한다(S506). 요청 단말(200-2)은 연결이 완료된 응답 단말(200-1)로, 관리 서버(100)로부터 수신한 인증 정보를 전달한다(S507).
요청 단말(200-2)은 액세스 정보를 관리 서버(100)로 전달하여, 관리 서버(100)에 요청 단말(200-2)이 등록되도록 한다(S508). 인증 정보를 수신한 응답 단말(200-1) 역시 액세스 정보를 관리 서버(100)로 전달하여, 요청 단말(200-2)과 함께 하나의 클러스터를 구성하는 단말로 저장, 관리되도록 등록한다(S509). 이를 위해, 액세스 정보는 단말이 수신한 인증 키, 단말의 식별 정보, 단말이 다른 단말과 연결되어 있는 경우에는 포트 정보를 포함한다.
관리 서버(100)는 S508, S509 단계를 통해 액세스 정보를 수신하고, 인증 키를 토대로 응답 단말(200-1)과 요청 단말(200-2)을 하나의 클러스터 식별 정보 내에 등록되도록 클러스터를 관리한다(S510). S500 단계 내지 S510 단계는 요청 단말(200-2)이 최초로 클러스터를 생성하여 단말들과 연결을 시도할 경우에만 실행한다.
이상에서는 응답 단말(200-1)과 요청 단말(200-2)이 처음 클러스터를 생성하는 방법에 대해 설명하였다. 이상의 절차를 통해 클러스터가 형성된 뒤, 컨텐츠를 공유하는 방법에 대해 도 8을 참조로 설명한다.
도 8은 본 발명의 실시예에 따른 단말간 컨텐츠 공유 방법에 대한 흐름도이다.
도 8에 도시된 바와 같이 요청 단말(200-2)은 관리 서버(100)로 자신이 등록되어 있는 클러스터의 식별 정보를 포함하여, 해당 클러스터를 구성하고 있는 액세스 가능한 단말 정보를 요청한다(S600). 관리 서버(100)는 S600 단계의 요청에 따라, 해당 클러스터에 등록되어 있는 액세스 가능한 단말 정보를 요청 단말(200-2)에 제공한다(S601). 여기서 액세스 가능 단말 정보는 현재 활성 상태를 나타내는 단말들의 리스트만을 포함하는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
요청 단말(200-2)은 S601 단계에서 수신한 액세스 가능 단말 정보를 토대로, 자신이 액세스하기 원하는 응답 단말(200-1)로 클러스터 식별 정보, 요청 단말(200-2) 자신의 식별 정보를 포함하여 연결을 요청한다(S602). 응답 단말(200-1)은 S602 단계에서 수신한 연결 요청에 따라, 관리 서버(100)로 요청 단말(200-2)의 단말 식별 정보와 자신이 등록되어 있는 클러스터 식별 정보를 전달하여, 요청 단말(200-2)이 자신이 등록되어 있는 클러스터에 등록된 단말인지 여부를 확인하는 인증 요청 신호를 전송한다(S603).
관리 서버(100)는 S603 단계에서 수신한 클러스터 식별 정보와 단말 식별 정보를 토대로, 관리 서버(100)에 미리 저장된 클러스터 정보를 확인하고(S604), 확인한 정보를 토대로 요청 단말(200-2)이 클러스터를 구성하는 단말인지 확인한다. 그리고, 확인한 인증 결과 정보를 응답 단말(200-1)로 전송하여(S603), 응답 단말(200-1)과 요청 단말(200-2)이 연결 절차를 수행하도록 한다(S606, S607).
요청 단말(200-2)은 응답 단말(200-1)과의 연결 후, 응답 단말(200-1)이 저장하고 있는 컨텐츠 리스트를 확인한다(S608). 그리고 요청 단말(200-2)의 사용자는 자신이 원하는 컨텐츠가 응답 단말(200-1)에 저장되어 있는 것으로 확인하면, 요청 단말(200-2)은 응답 단말(200-1)로 해당 컨텐츠를 요청한다(S609).
응답 단말(200-1)은 요청 단말(200-2)이 요청한 컨텐츠에 대한 컨텐츠 정보를 확인한다(S610). 그리고, 요청된 컨텐츠에 대해 응답 단말(200-1)에 저장된 컨텐츠 정보를 토대로, 컨텐츠에 리소스 락을 설정한다(S611).
응답 단말(200-1)은 리소스 락을 설정한 컨텐츠를 요청 단말(200-2)이 액세스하여 사용할 수 있도록 컨텐츠 액세스 허용 신호를 생성하거나, 이미 다른 단말 또는 응답 단말(200-1) 자신이 해당 컨텐츠를 사용하고 있는 경우 요청 단말(200-2)이 해당 컨텐츠를 저장하도록 요청한다(S612). 그러면, 요청 단말(200-2)은 응답 단말(200-1)에 저장되어 있는 컨텐츠를 실행하여 사용자에게 제공하거나, 저장한 실행한다(S613).
여기서, 응답 단말(200-1)은 요청 단말(200-2)과 연동한 후 요청 단말(200-2)에 대한 스토리지 정보와 자신의 스토리지 정보를 토대로 가상 스토리지를 생성할 수 있다. 본 발명의 실시예에서는 단말이 가상 스토리지를 생성하는 것을 예로 하여 설명하며, 가상 스토리지의 생성 방법이나 갱신 방법은 다양하게 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
이상의 절차에서는 요청 단말(200-2)과 응답 단말(200-1)이 최초로 클러스터를 생성하여 상호 저장되어 있는 컨텐츠를 공유하는 과정에 대해 설명하였다. 그러나, 이미 클러스터가 생성되어 있는 상황에서 요청 단말(200-2)이 응답 단말(200-1)과 연결을 시도하는 방법에 대해 도 9를 참조로 설명한다.
도 9는 본 발명의 또 다른 실시예에 따른 단말간 연결 방법에 대한 흐름도이다.
도 6에서는 요청 단말(200-2)의 사용자가 동일한 클러스터를 형성하는 복수의 단말들의 상태를 알지 못하는 경우, 요청 단말(200-2)이 연결할 수 있는 단말 정보를 관리 서버(100)로부터 수신하여 연결을 시도하는 경우에 대해 설명하는 것이다. 이를 위해, 요청 단말(200-2)과 응답 단말(200-1)은 최초 클러스터를 형성한 이후로, 자신의 액세스 정보를 미리 설정한 주기로 관리 서버(100)로 전송한다(S700, S701). 또는 요청 단말(200-2)과 응답 단말(200-1)은 상태 정보가 변경될 때마다 관리 서버(100)로 자신의 액세스 정보를 전송한다.
관리 서버(100)는 S700, S701 단계에서 수신한 액세스 정보를 토대로 미리 저장되어 있는 각 단말의 상태 정보가 변경되었는지 확인한다(S702). 만약 상태 정보가 변경된 단말이 있다면, 해당 단말의 액세스 정보를 갱신하여, 저장 관리한다(S703). 그러나, 상태 정보가 변경된 단말이 없다면, 다음 주기에 액세스 정보가 전송될 때까지 대기한다.
예를 들어, 단말이 다른 단말과 연결되어 컨텐츠를 공유하던 중, 단말 오류에 의해 단말이 재 실행되거나 네트워크 오류에 의해 단말이 다른 단말과 컨텐츠 공유가 불가능하고, 해당 기간 동안 액세스 정보를 전송할 주기가 있다고 가정한다. 그러면, 해당 단말은 액세스 정보 전송 주기 동안 관리 서버(100)로 액세스 정보를 전송하지 못하게 된다.
따라서, 관리 서버(100)는 해당 단말의 이전 상태는 온(On) 상태였으나 액세스 정보가 전송되지 않았으므로, 오프(Off) 상태로 상태 정보를 변경, 액세스 정보를 갱신한다. 본 발명의 실시예에서는 설명의 편의를 위하여 관리 서버(100)에 등록된 모든 단말들이 동일한 주기로 동일한 시점에 액세스 정보를 전송하는 것을 예로 하여 설명하나, 온(On) 상태 후 미리 설정된 시간 동안 또 다른 액세스 정보가 전송되지 않을 경우 오프(Off) 상태로 상태 정보를 변경할 수도 있다.
요청 단말(200-2)은 관리 서버(100)로 자신이 속한 클러스터에 포함된 복수의 단말들 중 액세스 가능 단말이 있는지 정보를 요청한다(S704). 이때, 액세스 가능 단말의 정보를 요청하면서, 요청 단말(200-2)의 식별 정보를 포함하여 전송한다.
관리 서버(100)는 S704 단계에서 수신한 요청에 따라 S703 단계에서 저장/갱신한 액세스 정보들을 토대로, 요청 단말(200-2)이 액세스할 수 있는 응답 단말(200-1)들의 리스트를 제공한다(S705). 요청 단말(200-2)은 S705 단계에서 수신한 리스트를 토대로, 원하는 응답 단말(200-1)로의 연결 요청 신호를 전송한다(S706).
요청 단말(200-2)은 응답 단말(200-1)로부터 응답 단말(200-1)의 연결 응답 신호를 수신하면(S707), 요청 단말(200-2)은 응답 단말(200-1)과 연결 상태를 유지한다(S708).
이상의 절차를 통해 요청 단말(200-2)과 응답 단말(200-1)이 연결된 이후에는 요청 단말(200-2)은 컨텐츠 리스트를 확인하여, 임의의 컨텐츠를 공유할 수 있다. 이 절차는 상기 도 8에서 설명한 바와 동일하다. 여기서, 상기 도 8의 S604 단계에서 컨텐츠 정보를 토대로 리소스 락을 설정하는 것은, 복수의 단말이 동일한 컨텐츠를 이용할 경우, 충돌이 발생하는 것을 제어하기 위함이다. 이에 대해 도 10을 참조로 설명한다.
도 10은 본 발명의 실시예에 따른 컨텐츠 충돌 제어에 대한 흐름도이다.
도 10에 도시된 바와 같이, 컨텐츠의 제공을 요청 받은 응답 단말(200-1)은 요청 받은 컨텐츠에 대한 컨텐츠 정보를 토대로, 해당 컨텐츠에 리소스 락이 설정되어 있는지 여부를 확인한다(S800). 컨텐츠에 제1 리소스 락 또는 제2 리소스 락 중 어느 하나의 리소스 락이 설정되어 있는지 확인한다(S801).
만약 요청 단말(200-2)에 의해 제공을 요청 받은 컨텐츠에 리소스 락이 설정되어 있지 않은 경우에는, 응답 단말(200-1)은 해당 컨텐츠에 제1 리소스 락을 설정한다(S802). 그리고 응답 단말(200-1)은 컨텐츠 정보를 갱신하고, 컨텐츠 액세스 허용 신호를 생성한다(S803). 이때, 갱신되는 컨텐츠 정보에는 리소스 락 설정 정보가 포함되고, 리소스 락 설정 정보는 어떤 종류의 리소스 락(제1 리소스 락 또는 제2 리소스 락)이 설정되었는지, 리소스 락이 설정된 시간, 컨텐츠 식별 정보, 컨텐츠를 사용하고 있는 단말의 식별 정보를 포함한다.
여기서, 제1 리소스 락은 요청된 컨텐츠를 또 다른 단말이 사용하고 있는 경우, 요청 단말(200-2)이 해당 컨텐츠를 변경/삭제/이동하지 못하도록 응답 단말(200-1)이 설정한 리소스 락을 의미한다. 응답 단말(200-1)이 컨텐츠에 리소스 락을 설정하는 방법은 여러 방법으로 수행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
그리고, 제2 리소스 락은 요청된 컨텐츠가 응답 단말(200-1) 자체에서 자원이 할당되어 실행되고 있을 경우, 응답 단말(200-1)이 컨텐츠가 변경/삭제/이동되지 못하도록 설정한 리소스 락을 의미한다. 응답 단말(200-1)이 자체적으로 컨텐츠의 실행을 인지하고 리소스 락을 설정하는 방법은 여러 방법으로 실행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
한편, S801 단계에서 확인한 결과, 요청 단말(200-2)에 의해 컨텐츠 제공을 요청 받은 시점 이전에 제1 리소스 락 또는 제2 리소스 락 중 어느 하나의 리소스 락이 설정되어 있는 것으로 확인하면, 응답 단말(200-1)은 요청 단말(200-2)로 해당 컨텐츠를 다른 이름으로 저장하여 사용할 것을 알리는 유도 알림 메시지를 전송한다(S804). 그리고 응답 단말(200-1)은 요청 단말(200-2)로부터 유도 알림 메시지에 대한 컨텐츠 저장 응답 신호가 전송되었는지 확인한다(S805).
만약 응답 신호를 수신하면, 응답 단말(200-1)은 요청 단말(200-2)로 컨텐츠를 제공한다(S806). 그러나, 컨텐츠 저장 취소 신호를 수신하였다면 응답 단말(200-1)은 요청 단말(200-2)로 컨텐츠 이용 대기 알림 메시지를 전송한다(S807).
이후에, 응답 단말(200-1)은 해당 컨텐츠에 설정된 리소스 락이 해제되었는지 주기적으로 확인한다(S808). 만약 컨텐츠에 리소스 락이 해제되었다면, 응답 단말(200-1)은 리소스 락을 새로 설정하고, 컨텐츠 정보를 갱신한 후 컨텐츠 액세스 허용 신호를 생성한다(S809). 여기서, 응답 단말(200-1)이 리소스 락의 해제 여부를 확인하는 방법은 다양하게 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
이와 같이, 리소스 락의 설정을 통해, 임의의 컨텐츠를 미리 선점하여 사용하는 다른 단말이 새로운 단말에 의해 컨텐츠가 소실되거나 변경되지 않도록 충돌을 제어할 수 있다.
이상에서 설명한 컨텐츠 공유의 예에 대해 도 11을 참조로 설명한다.
도 11은 본 발명의 실시예에 따른 컨텐츠 공유의 예시도이다.
도 11의 (a)에 도시된 바와 같이, 사용자 AAA의 PC와 스마트폰, 그리고 BBB의 스마트폰이 하나의 클러스터를 형성하고 있다고 가정한다. 사용자 AAA의 PC에서는 111.avi 컨텐츠가 저장되어 있고, AAA의 스마트폰(폰 1)에는 222.mp3가 저장되어 있으며, BBB의 스마트폰(폰 2)에는 333.jpg 파일이 저장되어 있다고 가정한다.
도 11은 사용자 BBB가 스마트폰으로 확인한 컨텐츠 리스트라 가정한다. 그리고, 사용자 AAA와 BBB는 PC, 폰1, 폰 2 각각의 스토리지 용량을 합친 만큼의 가상 스토리지 용량을 각자의 단말에서 사용할 수 있다. 즉, PC의 스토리지 용량이 2TB, 폰 1과 폰 2의 용량이 각각 32GB라고 가정하면, 사용자 AAA와 BBB는 세 개의 스토리지 용량이 합쳐진 2064GB 만큼의 가상 스토리지 용량을 사용할 수 있다.
이때, 사용자 BBB가 AAA의 PC에 저장되어 있는 111.avi를 자신의 스마트폰에서 실행하고자 선택하였다고 가정한다. 그러면, 111.avi의 리소스 락 설정 여부에 따라 도 11의 (b)와 같이 BBB의 스마트폰에서 실행되거나, 도 11의 (c)와 같이 111.avi를 다른 이름으로 BBB의 스마트폰에 저장하도록 유도 메시지를 수신할 수 있다.
즉, 111.avi가 AAA의 PC에서 실행되지 않고, 111.avi 컨텐츠를 AAA가 소지한 스마트폰에서도 실행하고 있지 않을 경우, 도 11의 (b)에 나타낸 바와 같이 BBB는 자신이 소지한 스마트폰의 비디오 실행 어플을 통해 111.avi를 실행하여 시청할 수 있다. 이 경우, AAA의 PC는 111.avi에 리소스 락을 설정하여, AAA가 스마트폰 또는 PC를 이용하여 111.avi를 실행하거나 삭제/편집하지 못하도록 한다.
그러나, 111.avi가 AAA의 PC 또는 AAA가 소지한 스마트폰 중 어느 하나에서 이미 실행되고 있어 리소스 락이 설정되어 있는 경우, 도 11의 (c)에 도시한 바와 같이 BBB가 소지한 스마트폰에 해당 111.avi를 다른 이름으로 저장하여 실행하도록 유도 메시지가 전송된다. 만약 BBB가 다른 이름으로 저장을 선택한 경우라면 111.avi를 다른 이름으로 BBB의 스마트폰에 저장하여 실행하도록 AAA의 PC는 동영상 파일을 제공한다. 그러나, BBB가 다른 이름 저장을 선택하지 않은 경우, 해당 파일을 BBB가 소지한 스마트폰에서 실행시킬 수 없음을 알리는 메시지를 수신한다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (16)

  1. 제1 단말이 동일한 클러스터를 형성하는 제2 단말로 컨텐츠를 공유하는 방법으로서,
    상기 제2 단말로부터 컨텐츠 요청 신호를 수신하는 단계,
    상기 컨텐츠 요청 신호에 포함된 컨텐츠 정보를 토대로, 상기 컨텐츠에 리소스 락이 설정되어 있는지 확인하는 단계, 그리고
    상기 컨텐츠에 리소스 락의 설정 여부에 따라 상기 제2 단말이 상기 컨텐츠를 사용할 수 있도록 하는 컨텐츠 액세스 형태를 결정하고, 결정한 형태로 상기 제2 단말에 컨텐츠를 공유하는 단계
    를 포함하는 컨텐츠 공유 방법.
  2. 제1항에 있어서,
    상기 컨텐츠를 공유하는 단계는,
    상기 컨텐츠에 리소스 락이 설정되어 있지 않으면, 상기 제2 단말이 제1 단말 자신에 저장된 컨텐츠로의 액세스 허용 신호를 생성하는 단계,
    상기 컨텐츠에 대한 리소스 락을 설정하는 단계, 그리고
    리소스 락 정보를 포함하여 컨텐츠 정보를 갱신하는 단계
    를 포함하고,
    상기 리소스 락 정보에는 상기 제2 단말의 식별 정보와 컨텐츠 요청 시간 정보를 포함하는 컨텐츠 공유 방법.
  3. 제1항에 있어서,
    상기 컨텐츠를 공유하는 단계는,
    상기 컨텐츠에 리소스 락이 설정되어 있으면,
    상기 제1 단말에 저장되어 있는 컨텐츠를 상기 제2 단말이 다운로드 받아 사용하도록, 컨텐츠 저장 유도 알림 메시지를 전송하는 단계
    를 포함하는 컨텐츠 공유 방법.
  4. 제1항에 있어서,
    상기 컨텐츠 요청 신호를 수신하는 단계 이전에,
    상기 제2 단말에 대한 식별 정보, 클러스터 식별 정보 및 포트 정보 중 적어도 하나의 정보를 포함하는 연결 요청 신호를 수신하는 단계,
    상기 제1 단말과 제2 단말이 연결되어 있는 관리 서버로, 상기 클러스터 식별 정보와 제2 단말에 대한 식별 정보를 전송하여, 상기 제2 단말이 동일한 클러스터에 등록된 단말인지 인증을 요청하는 단계, 그리고
    상기 제2 단말이 동일한 클러스터에 등록된 단말이면, 상기 제2 단말로 상기 제1 단말 자신의 식별 정보와 포트 정보를 포함한 연결 응답 신호를 전송하고, 상기 제2 단말과 연결 상태를 유지하는 단계, 그리고
    상기 인증 정보와 상기 제2 단말과 연결되어 있는 포트 정보 및 단말 식별 정보를 포함하는 단말 등록 정보를 상기 관리 서버에 등록하는 단계
    를 포함하는 컨텐츠 공유 방법.
  5. 제1항에 있어서,
    상기 컨텐츠 요청 신호를 수신하는 단계 이전에,
    상기 클러스터를 형성하는 복수의 단말 정보가 포함되어 있는 서비스 설정 정보를 수신하는 단계,
    상기 복수의 단말 정보를 기초로, 복수의 단말로 마스터 단말 여부에 대한 확인을 요청하는 단계, 그리고
    상기 복수의 단말로부터 마스터 단말에 대한 응답이 전송되지 않으면, 상기 제1 단말 자신을 마스터 단말로 설정하고, 상기 복수의 단말과 연동을 위한 클러스터를 생성하는 단계
    를 포함하는 컨텐츠 공유 방법.
  6. 제5항에 있어서,
    상기 클러스터를 생성하는 단계 이후에,
    상기 제1 단말 자신에 저장된 컨텐츠와 컨텐츠 저장 위치를 포함하는 인덱스를 생성하는 단계, 그리고
    상기 제2 단말로부터 제2 단말에 저장된 컨텐츠와 컨텐츠 저장 위치를 포함하는 제2 단말의 인덱스를 수신하면, 상기 생성한 인덱스와 상기 수신한 제2 단말의 인덱스를 토대로 인덱스 리스트를 생성하는 단계
    를 포함하는 컨텐츠 공유 방법.
  7. 제5항에 있어서,
    상기 확인을 요청하는 단계 이후에,
    상기 복수의 단말 중 어느 하나의 단말인 마스터 단말로부터 마스터 단말 알림 메시지를 수신하면, 인덱스를 생성하는 단계,
    상기 마스터 단말로 클러스터로의 참여를 요청하는 단계, 그리고
    상기 마스터 단말로부터 클러스터 참여 허락 메시지와 함께, 수정된 인덱스 리스트를 수신하면 상기 복수의 단말과 클러스터를 형성하는 단계
    를 포함하는 컨텐츠 공유 방법.
  8. 제1항에 있어서,
    상기 컨텐츠 요청 신호를 수신하는 단계 이전에,
    상기 클러스터를 형성하는 복수의 단말 정보가 포함되어 있는 액세스 설정 정보를 수신하는 단계,
    상기 복수의 단말 정보를 기초로, 복수의 단말로 마스터 단말 여부에 대한 확인을 요청하는 단계, 그리고
    상기 복수의 단말 중 어느 하나의 단말로부터 마스터 단말이 아님을 응답으로 받으면, 상기 응답을 전송한 단말을 마스터 단말로 선정하는 단계,
    상기 마스터 단말로 선정된 단말로 마스터 단말로의 수락을 요청하는 단계
    를 포함하는 컨텐츠 공유 방법.
  9. 복수의 단말과 연동한 관리 서버가 상기 복수의 단말 간에 컨텐츠가 공유되도록 하는 방법으로서,
    복수의 단말로부터 각각 인증 키와 복수의 단말 각각의 스토리지 정보를 포함하는 단말 등록 정보를 수신하는 단계,
    각각의 인증 키 중 동일한 인증 키를 단말 등록 정보에 포함하여 전송한 복수의 단말들을, 동일한 클러스터를 형성하는 단말들로 관리되도록 설정하는 단계, 그리고
    임의의 클러스터에 등록된 임의의 단말로부터 액세스 가능 단말 정보의 제공을 요청 받으면, 상기 임의의 클러스터에 등록된 적어도 하나의 단말 각각으로부터 전송되는 액세스 정보를 토대로 연결 가능 액세스 단말 정보를 생성하여 제공하는 단계
    를 포함하는 컨텐츠 공유 방법.
  10. 제9항에 있어서,
    상기 단말 등록 정보를 수신하는 단계 이전에,
    상기 복수의 단말 중 어느 하나의 단말로부터 클러스터 식별 정보를 수신하는 단계, 그리고
    수신한 클러스터 식별 정보를 이용하여 상기 복수의 단말이 하나의 클러스터를 형성함을 확인하도록 인증 키를 생성하는 단계
    를 포함하는 컨텐츠 공유 방법.
  11. 동일한 클러스터를 형성하는 복수의 단말 간에 컨텐츠가 공유되도록 하는 관리 서버로서,
    상기 복수의 단말 중 임의의 단말로부터 전송된 클러스터 식별 정보를 토대로, 인증 키를 생성하는 인증 모듈, 그리고
    상기 복수의 단말로부터 상기 인증 모듈이 생성한 인증 키와 복수의 단말 각각의 스토리지 정보를 포함하는 복수의 단말 등록 정보를 수신하고, 동일한 인증 키를 포함하여 전송한 적어도 하나 이상의 단말들을 동일한 클러스터를 형성하는 단말로 설정하여 관리하는 클러스터 관리 모듈
    을 포함하는 관리 서버.
  12. 관리 서버에 연결되는 단말로서,
    클러스터 형성을 위한 클러스터 식별 정보를 생성하고, 생성한 클러스터 식별 정보를 토대로 상기 관리 서버가 생성한 인증 정보를 수신하여 동일한 클러스터를 형성하기 위해 연결된 다른 단말들로 제공하는 단말 연결 모듈,
    상기 단말 연결 모듈이 수신한 인증 정보를 포함하는 단말 등록 정보를 상기 관리 서버로 전달하여 단말을 등록하는 단말 상태 관리 모듈, 그리고
    상기 동일한 클러스터를 형성하는 전체 단말에 저장된 컨텐츠 정보를 확인하고, 확인한 컨텐츠 정보를 토대로 사용자에 의해 선택된 컨텐츠를 저장하는 다른 단말로 컨텐츠 공유를 요청하는 컨텐츠 관리 모듈
    을 포함하는 단말.
  13. 제12항에 있어서,
    상기 컨텐츠 관리 모듈은,
    상기 동일한 클러스터를 형성하는 다른 단말로부터 컨텐츠 제공을 요청받으면 요청된 컨텐츠의 리소스 락 설정 여부에 따라 상기 임의의 단말의 컨텐츠 액세스 형태를 결정하고, 결정한 형태로 상기 요청 단말에 컨텐츠를 공유하는 단말.
  14. 제13항에 있어서,
    상기 컨텐츠 관리 모듈은,
    상기 다른 단말로부터 요청 받은 컨텐츠에 리소스 락이 설정되어 있으면, 상기 컨텐츠를 요청한 단말로 전송할 컨텐츠 저장 유도 알림 메시지를 생성하고,
    상기 요청 받은 컨텐츠에 리소스 락이 설정되어 있지 않으면 상기 다른 단말이 컨텐츠로 액세스하도록 허용하는 액세스 허용 신호를 생성하고, 상기 컨텐츠에 리소스 락을 설정하는 단말.
  15. 제12항에 있어서,
    상기 단말 연결 모듈은,
    상기 단말이 클러스터로의 참여를 시도하는 경우, 마스터 단말로 설정되어 있는 단말이 있는지 확인하고, 마스터 단말로 설정된 단말이 없는 경우 상기 단말 자신 또는 이웃한 단말 중 어느 하나의 단말을 마스터 단말로 설정하는 단말.
  16. 제15항에 있어서,
    상기 단말 연결 모듈은,
    상기 단말 자신이 마스터 단말로 설정되는 경우, 클러스터 식별 정보를 생성하고, 단말 자신에 저장된 컨텐츠와 컨텐츠 저장 위치를 포함하는 인덱스를 생성하고, 클러스터에 참여한 적어도 하나의 단말들로부터 인덱스를 각각 수신하여 생성한 인덱스와 함께 인덱스 리스트를 생성하고,
    상기 이웃한 단말 중 어느 하나의 단말을 마스터 단말로 설정하는 경우 단말 자신에 대한 인덱스를 생성하여 마스터 단말로 전송하고, 상기 마스터 단말로부터 상기 생성한 인덱스를 포함하여 수정된 인덱스 리스트를 수신하여 저장하는 단말.
KR1020180071678A 2018-06-21 2018-06-21 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법 KR20190143754A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180071678A KR20190143754A (ko) 2018-06-21 2018-06-21 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180071678A KR20190143754A (ko) 2018-06-21 2018-06-21 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20190143754A true KR20190143754A (ko) 2019-12-31

Family

ID=69051804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071678A KR20190143754A (ko) 2018-06-21 2018-06-21 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20190143754A (ko)

Similar Documents

Publication Publication Date Title
US11677820B2 (en) Peer-to-peer syncable storage system
US11770296B2 (en) Decentralized data storage and processing for IoT devices
US8219614B2 (en) Edge peer device, pan gateway device, super peer device, and P2P network-based interconnection method
CN112738284B (zh) 服务集成中的数据传输方法、装置、设备及存储介质
US20070223398A1 (en) Method for Implementing Grouping Devices and Interacting Among Grouped Devices
US8396220B2 (en) System and method of mobile content sharing and delivery in an integrated network environment
KR20090114917A (ko) 피투피 네트워크 시스템 및 그의 지역 기반 운용 방법
US20120102161A1 (en) Method and device for controlling ad-hoc network in cpns enabler
KR101602760B1 (ko) p2p 연결을 이용한 클라우드 서비스 트래픽의 절감 방법 및 그 장치
CN103329503A (zh) Ad hoc文件共享
KR101680715B1 (ko) 개인 네트워크 등록을 위한 장치 및 방법
JP2013542681A (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
JP2005204319A (ja) 小規模ネットワーク間の接続確立方法及びシステム。
JPWO2016098275A1 (ja) 通信方法
KR101162745B1 (ko) 개인 네트워크와 연합 네트워크를 구축하기 위한 방법 및 장치
KR101219536B1 (ko) 일반 피어 장치, pan 게이트웨이 장치, 수퍼 피어 장치, p2p 네트워크 기반의 상호 연동 방법
KR20100114407A (ko) 다중 네트워크 인터페이스를 가지는 모바일 단말을 이용한 컨텐츠 공유 시스템 및 그 방법
Tetarave et al. V-Chord: an efficient file sharing on LTE/GSM network
KR20190143754A (ko) 분산된 개인 디바이스간의 컨텐츠 공유 시스템 및 방법
Paroux et al. Transhumance: A power sensitive middleware for data sharing on mobile ad hoc networks
KR20110070447A (ko) 데이터 분배 서비스에서 통신 참여자의 분산 발견 방법
WO2021087865A1 (zh) 寻址方法、寻址系统以及寻址装置
KR20080050935A (ko) 피어 투 피어 네트워크에서 확장홈 서비스 장치 및 서비스제공 방법
KR20210044566A (ko) WebRTC를 이용한 다자간 영상통화 제어 시스템 및 방법
CN115001731B (zh) 一种异构网络的自组网方法