KR102297157B1 - 피어-투-피어 성능의 개선 기법 - Google Patents
피어-투-피어 성능의 개선 기법 Download PDFInfo
- Publication number
- KR102297157B1 KR102297157B1 KR1020207027845A KR20207027845A KR102297157B1 KR 102297157 B1 KR102297157 B1 KR 102297157B1 KR 1020207027845 A KR1020207027845 A KR 1020207027845A KR 20207027845 A KR20207027845 A KR 20207027845A KR 102297157 B1 KR102297157 B1 KR 102297157B1
- Authority
- KR
- South Korea
- Prior art keywords
- group
- digital content
- inter
- information
- computing devices
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 62
- 238000012546 transfer Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims 10
- 230000008569 process Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012913 prioritisation Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010899 nucleation Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1085—Resource delivery mechanisms involving dynamic management of active down- or uploading connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1063—Discovery through centralising entities
-
- H04L67/325—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
본원에 개시된 실시예들은 일반적으로 피어-투-피어 네트워크의 디지털 콘텐트의 분배를 개선하는 것에 관련된다. 예컨대, 피어-투-피어 네트워크의 향후의 스냅샷들은 컴퓨팅 디바이스가 향후의 특정 시점까지 특정 디지털 콘텐트의 다운로드를 대기하는 편이 더 나을 수 있음을 결정하는데 예측되어 사용될 수 있다. 다른 예시로서, 컴퓨팅 디바이스들은 위치 정보에 기초하여 상이한 그룹들에 맵핑되고, 컴퓨팅 디바이스가 디지털 콘텐트에 대한 다운로드 요청들을 보낼 다른 컴퓨팅 디바이스들을 식별하기 위해 그룹간 정보가 사용된다. 다른 예시로서, 상이한 디지털 콘텐트 유닛들과 연관된 희소성을 나타내는 정보가 디지털 콘텐트 유닛들의 분배에 우선순위를 정하는 데 사용된다. 또 다른 예시로서, 컴퓨팅 디바이스들이 클러스터들로 그룹화되고, 동일 클러스터 내의 컴퓨팅 디바이스들이 상이한 디지털 콘텐트 유닛들을 모두 총괄해서 취득하도록, 동일 클러스터 내의 상이한 컴퓨팅 디바이스들이 상이한 디지털 콘텐트 유닛들을 다운로드한다.
Description
비디오 게임과 같은 디지털 콘텐트는 흔히 인터넷을 통해 디지털 콘텐트 제공자로부터 직접 다운로드 가능하며, 이로써 유저가 이와 같은 디지털 콘텐트를 광학 스토리지 디스크 또는 몇몇 다른 데이터 스토리지 디바이스를 이용해서 자신의 컴퓨팅 디바이스에 인스톨할 필요가 없어진다. 그러나, 이와 같은 디지털 콘텐트는 다량의 데이터를 포함할 수 있으며, 그에 따라 전부 다운로드하려면 잠재적으로 상당한 시간이 걸릴 수 있다. 또한, 상당한 양의 디지털 콘텐트 제공자 리소스 및 네트워크 리소스가, 디지털 콘텐트를 디지털 콘텐트 제공자로부터 클라이언트라고도 하는 유저의 컴퓨팅 디바이스에 전송하는 데 사용될 수 있다. 이와 같은 디지털 콘텐트를 전송하는 데 사용된 시간, 디지털 콘텐트 제공자 리소스 및 네트워크 리소스는, 디지털 콘텐트가 처음 릴리스되거나 또는 업데이트될 때 흔히 발생하는, 많은 컴퓨팅 디바이스들이 동일한 디지털 콘텐트를 동시에 다운로드하려 할 때 가중된다.
본원에 개시된 다양한 실시예들은 피어-투-피어 네트워크에서 디지털 콘텐트의 분배를 개선하는 데 사용될 수 있다. 몇몇 실시예에 있어서는, 현재 특정 디지털 콘텐트를 갖고 있는 컴퓨팅 디바이스들에 관한 정보가 수집되는데, 이는 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스들에 관한 정보이다. 이와 같은 정보에 의거하여, 피어-투-피어 네트워크의 향후의 스냅샷들은, 어떤 경우에는 컴퓨팅 디바이스가 다운로드를 즉시 수행하려 하기보다는 향후의 특정 시점까지 특정 디지털 콘텐트를 다운로드하려 하는 것을 대기하는 편이 더 나을 수 있음을 결정하는데 예측되어 사용될 수 있다.
어떤 실시예들에 있어서, 컴퓨팅 디바이스들은 위치 정보에 기초하여 여러 그룹으로 맵핑되고, 컴퓨팅 디바이스가 디지털 콘텐트에 대한 다운로드 요청을 보내는 것이 효율적이고 효과적이게 될 다른 컴퓨팅 디바이스들을 식별하기 위해 그룹간 정보가 수집되어 사용된다.
어떤 실시예들에 있어서, 상이한 디지털 콘텐트 유닛들과 연관된 희소성을 나타내는 정보가 수집되고, 이와 같은 정보에 기초하여 디지털 콘텐트 유닛들의 분배에 우선순위가 정해진다.
어떤 실시예들에 있어서, 컴퓨팅 디바이스들은 컴퓨팅 디바이스들로 이루어진 클러스터들로 그룹화되고, 동일 클러스터 내의 복수의 컴퓨팅 디바이스가 상이한 디지털 콘텐트 유닛들 모두를 총괄해서 취득하게 되도록, 동일 클러스터 내의 상이한 컴퓨팅 디바이스들은 상이한 디지털 콘텐트 유닛들에 대한 다운로드 요청을 클러스터 외부의 컴퓨팅 디바이스들에 보내라고 지시 또는 권고받는다. 이후, 동일 클러스터 내의 컴퓨팅 디바이스들은 디지털 콘텐트 유닛들을 서로 공유할 수 있다.
이 요약은 발명을 실시하기 위한 구체적인 내용에서 더 후술되는 개념들의 선택을 간략화된 형태로 소개하기 위해 제공된다. 이 요약은 청구 요지의 핵심 특징들 또는 본질적인 특징들을 확인하려는 것이 아닐 뿐만 아니라, 청구 요지의 범위를 제한하는 데 이용되게 하려는 것도 아니다. 또한, 청구 요지는 이 개시물의 어느 부분에 주지된 일부 또는 모든 단점들을 해결하는 구현들에 한정되는 것이 아니다.
도 1은 본원에 개시된 실시예들 중 적어도 일부가 구현될 수 있게 하는 예시적인 이용 환경을 도시한다.
도 2는 피어-투-피어 네트워크의 특정 컴퓨팅 디바이스가 특정 디지털 콘텐트에 대한 1회 이상의 다운로드 요청을 보내는 것을 지시 또는 권고받을 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 3은 도 2의 흐름도의 스텝들이 수행될 때 발생될 수 있는 예시적인 테이블을 나타낸다.
도 4는 피어-투-피어 네트워크의 컴퓨팅 디바이스가 디지털 콘텐트에 대한 1회 이상의 다운로드 요청을 보내는 것을 지시 또는 권고받을 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 5는 도 4의 흐름도의 스텝들을 수행할 때 액세스되어 사용될 수 있는 정보의 유형의 일례를 제공하는 예시적인 테이블을 나타낸다.
도 6은 피어-투-피어 네트워크의 복수의 컴퓨팅 디바이스 사이에서의 복수의 상이한 디지털 콘텐트 유닛들의 분배를 개선하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 7은 피어-투-피어 네트워크 내의, 또는 피어-투-피어 네트워크의 일부인 컴퓨팅 디바이스들로 이루어진 그룹 내의 디지털 콘텐트 아이템들의 상대적인 희소성을 도시하는 예시적인 히스토그램을 나타낸다.
도 8은 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 9는 도 8의 흐름도를 참조로 기술된 실시예의 예시적인 이용을 나타내는 데 사용되는 고수준 블록도이다.
도 10은 예시적인 게이밍 및 미디어 시스템의 등각도이다.
도 11은 도 10에 도시된 게이밍 및 미디어 시스템의 구성요소들의 예시적인 기능 블록도이다.
도 2는 피어-투-피어 네트워크의 특정 컴퓨팅 디바이스가 특정 디지털 콘텐트에 대한 1회 이상의 다운로드 요청을 보내는 것을 지시 또는 권고받을 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 3은 도 2의 흐름도의 스텝들이 수행될 때 발생될 수 있는 예시적인 테이블을 나타낸다.
도 4는 피어-투-피어 네트워크의 컴퓨팅 디바이스가 디지털 콘텐트에 대한 1회 이상의 다운로드 요청을 보내는 것을 지시 또는 권고받을 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 5는 도 4의 흐름도의 스텝들을 수행할 때 액세스되어 사용될 수 있는 정보의 유형의 일례를 제공하는 예시적인 테이블을 나타낸다.
도 6은 피어-투-피어 네트워크의 복수의 컴퓨팅 디바이스 사이에서의 복수의 상이한 디지털 콘텐트 유닛들의 분배를 개선하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 7은 피어-투-피어 네트워크 내의, 또는 피어-투-피어 네트워크의 일부인 컴퓨팅 디바이스들로 이루어진 그룹 내의 디지털 콘텐트 아이템들의 상대적인 희소성을 도시하는 예시적인 히스토그램을 나타낸다.
도 8은 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 방법의 실시예를 묘사하는 흐름도를 도시한다.
도 9는 도 8의 흐름도를 참조로 기술된 실시예의 예시적인 이용을 나타내는 데 사용되는 고수준 블록도이다.
도 10은 예시적인 게이밍 및 미디어 시스템의 등각도이다.
도 11은 도 10에 도시된 게이밍 및 미디어 시스템의 구성요소들의 예시적인 기능 블록도이다.
피어-투-피어(P2P) 네트워크는 디지털 콘텐트 제공자 리소스, 네트워크 리소스, 및 비디오 게임과 같은 디지털 콘텐트를 복수의 컴퓨팅 디바이스에 분배하는 데 소요되는 시간을 저감하는 데 이용될 수 있다.
어떤 실시예들에 있어서는, 특정 디지털 콘텐트의 분배를 개선하기 위해, 현재 특정 디지털 콘텐트를 갖고 있는 컴퓨팅 디바이스들에 관한 정보가 수집되고, 이는 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스들에 관한 정보이다. 그러한 정보에 기초하여, (특정 디지털 콘텐트에 대한) 다운로드 요청이 보내질 컴퓨팅 디바이스들이 식별되고, 다운로드 요청들은 효율적이고 효과적인 방식으로 특정 디지털 콘텐트의 피어-투-피어 전송이 이루어지도록 행해지거나 또는 권고된다. 이와 같은 실시예들은, 피어-투-피어 네트워크의 향후의 스냅샷들을 예측하고, 어떤 경우들에는, 디지털 콘텐트의 피어-투-피어 전송을 즉시 개시하려 하기보다는 향후의 특정 시점까지 이와 같은 전송을 개시하는 것을 대기하는 것이 낫다고 결정한다.
어떤 실시예들에 있어서는, 컴퓨팅 디바이스들이 위치 정보(예컨대, 시간대(time zone) 및/또는 지리구(geographic region) 정보)에 기초하여 복수의 상이한 그룹들에 맵핑된다. 부가적으로, 예컨대 그룹간 데이터 전송 속도 및/또는 그룹간 가용성을 포함하는 그룹간 정보가 수집된다. 그룹간 정보에 기초하여, 디지털 콘텐트에 대한 다운로드 요청들이 보내질 효율적이고 효과적인 컴퓨팅 디바이스들이 식별되며, 이와 같은 다운로드 요청들이 이루어지거나 또는 권고된다.
어떤 실시예들에 있어서는, 복수의 상이한 디지털 콘텐트 유닛들 각각과 연관된 희소성을 나타내는 정보가 수집되고, 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키는 방식으로 디지털 콘텐트 유닛들의 분배에는 우선순위가 정해진다. 디지털 콘텐트 유닛들의 분배는 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키기 위해 우선순위를 정한 결과에 기초하여 이루어진다. 이와 같은 실시예들은 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 효과를 가질 것이다.
어떤 실시예들에 있어서는, 컴퓨팅 디바이스들이 컴퓨팅 디바이스로 이루어진 클러스터들로 그룹화되고, 클러스터들 각각은 복수의 컴퓨팅 디바이스를 포함한다. 클러스터들 각각에 대하여, 동일 클러스터 내의 복수의 컴퓨팅 디바이스가 상이한 디지털 콘텐트 유닛들 모두를 총괄해서 취득하게 되도록, 동일 클러스터 내의 상이한 컴퓨팅 디바이스들은 상이한 디지털 콘텐트 유닛들에 대한 다운로드 요청을 클러스터 외부의 컴퓨팅 디바이스들에 보내라고 지시 또는 권고받는다. 이와 같은 실시예들도, 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 효과를 가질 것이다.
상술한 실시예들을 보다 상세히 살펴보기 전에, 도 1을 참조해서 이용 환경(100)의 예시적인 실시예를 기술한다. 예시적인 이용 환경(100)은 복수의 컴퓨팅 디바이스들(1121, 1122, 1123, ..., 112n)을 포함하는데, 이들 컴퓨팅 디바이스는 총괄해서 컴퓨팅 디바이스들(112)이라고도 하며, 개별적으로 컴퓨팅 디바이스(112)라고도 한다. 디지털 콘텐트를 수용, 처리 및 제시하도록 구성되는 각각의 컴퓨팅 디바이스(112)는 상응하는 유저에게 연관된다. 몇몇 예에 있어서는, 하나 이상의 컴퓨팅 디바이스가 동일 유저에게 연관될 수 있다. 예컨대, 유저는 비디오 게임 콘솔, 모바일 디바이스, 컴퓨터(예컨대, 랩톱, 데스크톱, 태블릿), 웨어러블 디바이스(예컨대, 헤드마운트 디스플레이) 등을 2개 이상 가질 수 있으며, 이들 컴퓨팅 디바이스들 각각에서 디지털 콘텐트를 소비할 수 있다.
각각의 컴퓨팅 디바이스는 네트워크(122)(예컨대, 컴퓨터 네트워크, 휴대 전화 네트워크, 및/또는 임의의 다른 적절한 유형의 네트워크)를 통해 하나 이상의 디지털 콘텐트 스토어(132)(예컨대, 디지털 콘텐트를 다운로드할 수 있는 장소들)와 통신할 수 있다. 디지털 콘텐트 스토어(132)는 복수의 디지털 콘텐트 아이템(1341, 1342, ..., 134n)을 저장하는 것으로 도시되어 있는데, 이들 아이템을 총괄해서 디지털 콘텐트 아이템들(134)이라 할 수도 있고, 개별적으로 디지털 콘텐트 아이템(134)이라 할 수도 있다. 디지털 콘텐트 스토어는 콘텐트 전송 네트워크(CDN: content delivery network)에 의해 지원될 수 있지만, 그것에 한정되는 것은 아니다. 각각의 컴퓨팅 디바이스(112)는 피어 컴퓨팅 디바이스들로부터 디지털 콘텐트를 수용하는 피어-투-피어 배치구조에서 하나 이상의 다른 컴퓨팅 디바이스(112)들과 통신할 수도 있다. 어떤 때에는, 피어-투-피어 통신에 참가하고 있거나 또는 이용 가능한 컴퓨팅 디바이스(112)들을 스웜(swarm)이라고 할 수 있다. 스웜은, 유저들이 컴퓨팅 디바이스들을 켜고 끄는 것에 따라, 및/또는 유저들(또는 그들의 컴퓨팅 디바이스들)이 피어-투-피어 통신 능력을 선택적으로 활성화 및 비활성화하는 것에 따라, 컴퓨팅 디바이스들이 스웜에 참여하거나 또는 떠날 수 있다는 점에서, 동적이다. 구체적인 예시로서, 컴퓨팅 디바이스는 네트워크, CPU 및/또는 메모리 리소스와 같은 리소스들이 유저 경험을 보존하는 데 사용될 수 있도록 그 피어-투-피어 능력의 모두 또는 일부를 일시적으로 비활성화할 수 있다.
각각의 디지털 콘텐트 아이템(134)은 복수의 콘텐트부를 포함하고, 그 예시는 디지털 콘텐트 아이템(1342)에 대한 콘텐트부(1361, ..., 136n)로서 도시된다. 디지털 콘텐트 아이템(134)들은 비디오 게임, 쌍방향 비디오, 및 소셜 미디어와 같은 상호적 콘텐트를 포함하되, 이것에 한정되지 않는 임의의 적절한 유형의 디지털 콘텐트를 표현할 수 있다. 다른 예시들은, 영화, 텔레비전 쇼 및 다른 비디오, 음악, 사진, 웹사이트 등을 포함하되, 이들에 한정되는 것은 아니다. 유사하게, 콘텐트부들은 메모리의 특정 부위들(예컨대, 메모리 위치들, 디스크 섹터들 등), 또는 확장에 의한, 종속 파일들, 또는 그 부위들과 같으되, 이들에 한정되지 않는 임의의 적절한 형태를 취할 수 있다.
컴퓨팅 디바이스(112)들이 디지털 콘텐트의 피어-투-피어 전송을 수행할 수 있을 경우에는, 각각의 컴퓨팅 디바이스(112)를 피어 노드(또는 간단히 피어 또는 노드)라고 할 수도 있고, 전체 이용 환경(100)을 피어-투-피어 콘텐트 분배 네트워크(또는 간단히 피어-투-피어 네트워크)라고 할 수도 있다. 피어-투-피어 네트워크에 있어서, 통신 네트워크 내의 복수의 노드는 피어-투-피어 파일 공유 프로토콜에 액세스하고, 분배되고 있는 파일과 같은 특정 디지털 콘텐트의 복제들을 취득하려고 그 프로토콜을 이용할 수 있다. 네트워크 내의 노드들은 그 프로토콜을 이용해서 나머지 노드들에 대하여 하나 이상의 현재의 접속부를 각각 가질 수 있다. 따라서, 노드들은 네트워크에서 노드들에 대하여 이미 접속을 단절하거나 또는 형성하고 있기 때문에 네트워크에 참여하거나 또는 떠날 수 있다. 그와 같이 하기에 적합해지도록 접속부들이 네트워크 부호화를 이용할 수 있거나 또는 이용할 수 없는 특정 프로토콜을 이용할 필요는 있지만, 접속부들이 콘텐트 분배에 항상 적극적으로 사용될 필요는 없다. 접속부들은 일방향 또는 양방향 접속부일 수 있다. 주어진 노드가 동시에 하나 이상의 피어-투-피어 네트워크의 멤버일 수 있을 가능성이 있다.
도 1은 코디네이터 노드, 또는 단순히 코디네이터라고 하는 코디네이터 컴퓨팅 디바이스(142)를 또한 도시한다. 코디네이터(142)는, 컴퓨팅 디바이스가 피어-투-피어 네트워크에 참가하고 있고 공유할 임의의 디지털 콘텐트를 갖고 있는지의 여부와 같은 다양한 컴퓨팅 디바이스(112)들에 대한 정보를 수집 및 유지할 수 있다. 부가적으로, 코디네이터(142)는 컴퓨팅 디바이스(112)가 디지털 콘텐트를 필요로 하거나 또는 원하는 다른 컴퓨팅 디바이스(112)를 찾는 것을 도울 수 있다. 코디네이터(142)는, 예컨대 트래커(tracker)일 수 있지만, 이것에 한정되는 것은 아니다. 도 1에는 1개의 코디네이터(142)만이 도시되어 있지만, 피어-투-피어 콘텐트 분배 네트워크(100)는 다수의 코디네이터(142)를 포함할 수 있다.
지연된
시딩을
이용한 P2P 성능의 개선(Improving P2P Performance Using Delayed Seeding)
상술한 바와 같이, 어떤 실시예들은, 현재 특정 디지털 콘텐트를 갖고 있는 컴퓨팅 디바이스들에 관한 정보를 수집하는 것 뿐만 아니라, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스들에 관한 정보를 수집하는 것에 의해, 특정 디지털 콘텐트의 분배를 개선하는 것에 관련된다. 이와 같은 정보에 기초하여, (특정 디지털 콘텐트에 대한) 다운로드 요청이 보내지는 컴퓨팅 디바이스들이 식별되고, 다운로드 요청들은 효율적이고 효과적인 방식으로 특정 디지털 콘텐트의 피어-투-피어 전송이 이루어지도록 행해지거나 또는 권고된다. 이들 실시예는, 피어-투-피어 네트워크의 향후의 스냅샷들을 예측하고, 어떤 경우들에는, 디지털 콘텐트의 피어-투-피어 전송을 즉시 수행하려 하기보다는 향후의 특정 시점까지 이와 같은 전송을 수행하는 것을 대기하는 것이 낫다고 결정한다.
후술하는 도 2의 고수준 흐름도는 이들 실시예를 설명하기 위해 이용된다. 구체적으로, 도 2는 피어-투-피어 네트워크의 특정 컴퓨팅 디바이스(예컨대, 도 1의 1121)가 특정 디지털 콘텐트에 대한 하나 이상의 다운로드 요청을 보내는 것을 지시 또는 권고받을 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법을 기술하는 데 이용될 것이다. 특정 디지털 콘텐트는, 복수의 디지털 콘텐트부(디지털 콘텐트 유닛들이라고도 함)를 포함하는 전체 디지털 콘텐트 아이템, 복수의 디지털 콘텐트부를 포함하는 디지털 콘텐트 아이템의 특정 디지털 콘텐트부, 또는 디지털 콘텐트 아이템의 디지털 콘텐트부들로 이루어진 특정 그룹일 수 있다.
일 실시예에 따르면, 도 2의 스텝들은 특정 디지털 콘텐트(예컨대, 특정 디지털 콘텐트부)를 취득하려는 필요 또는 소망을 나타내는 컴퓨팅 디바이스(예컨대, 도 1의 1121)에 응하여 개시될 수 있다. 도 2를 참조하면, 스텝 202에서, 현재 특정 디지털 콘텐트를 갖고 있는 하나 이상의 다른 컴퓨팅 디바이스에 관한 정보에 액세스된다. 스텝 204에서, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 하나 이상의 다른 컴퓨팅 디바이스에 관한 정보에 액세스된다. 어떤 실시예들에 있어서는, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스가 적어도 디지털 콘텐트에 대한 다운로드 요청을 이미 보냈지만, 특정 디지털 콘텐트의 다운로드 작업을 이미 개시했을 수 있거나 또는 개시하지 않았을 수 있다. 다른 실시예들에 있어서는, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스가 특정 디지털 콘텐트의 다운로드 작업을 이미 개시했다.
스텝 202 및 스텝 204에서 액세스된 정보는, 다운로드 속도 정보(데이터 전송 속도 정보라고도 함), 컴퓨팅 디바이스 가용성 정보를 포함할 수 있지만, 이들에 한정되는 것은 아니다. 이와 같은 정보에 액세스하기 위해서는, 먼저 정보를 수집할 필요가 있다. 어떤 실시예들에 있어서는, 이와 같은 정보가 코디네이터(예컨대, 도 1의 코디네이터(142))에 의해 수집되고 유지된다. 다른 실시예들에 있어서는, 피어-투-피어 네트워크의 각각의 컴퓨팅 디바이스(112)가 이와 같은 정보를 자기 사용을 위해 수집 및 유지할 수 있다. 또 다른 실시예들에 있어서는, 특정 컴퓨팅 디바이스가 정보의 일부를 수집 및 유지할 수 있으며, 코디네이터로부터의 정보의 일부에 액세스할 수도 있다. 다시 말해, 특정 컴퓨팅 디바이스는 그 자신이 수집 및 유지한 정보에 액세스할 수 있거나, 및/또는 코디네이터가 수집 및 유지한 정보에 액세스할 수 있다. 더 일반적으로, 도 1을 참조로 기술한 방법은 (코디네이터로부터의 어떠한 도움도 없이) 특정 디지털 콘텐트를 필요로 하거나 원하는 특정 컴퓨팅 디바이스에 의해 수행되거나, 특정 컴퓨팅 디바이스 및 다른 컴퓨팅 디바이스들과 통신하는 코디네이터에 의해 수행되거나, 또는 특정 컴퓨팅 디바이스와 코디네이터의 조합에 의해 수행될 수 있다.
하기의 기재로부터 분명해지는 바와 같이, 스텝 202 및 스텝 204에서 액세스된 정보는 특정 디지털 콘텐트를 필요로 하거나 원하는 특정 컴퓨팅 디바이스(예컨대, 도 1의 컴퓨팅 디바이스(1121))에 대한 하나 이상의 시드(seed)를 식별하는 데 사용된다. 피어-투-피어 네트워크에 있어서, 시드는 다른 컴퓨팅 디바이스가 필요로 하거나 원하는 특정 디지털 콘텐트를 갖고 있는 컴퓨팅 디바이스이며, (예컨대, 다운로드 요청에 응하여) 특정 디지털 콘텐트의 복제들을 공급할 수 있다. 이 기재에 있어서, 현재 특정 디지털 콘텐트를 갖고 있기는 하지만, (예컨대, 현재 오프-라인 상태이거나 너무 바쁘기 때문에) 차후의 특정 시점까지는 시드로서 이용할 수 없는 컴퓨팅 디바이스를, 현재 이용할 수 없는 시드라고 할 수 있다. 현재 특정 디지털 데이터 콘텐트를 갖고 있지는 않지만, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 컴퓨팅 디바이스를, 향후의 시드라고 할 수 있다. 현재 이용할 수 없는 향후의 시드는 지연된 시드들의 상이한 예시들이다. 현재 특정 디지털 콘텐트를 갖고 있으며 현재 특정 디지털 콘텐트의 복제들을 공급할 수 있는 시드를, 현재 이용할 수 있는 시드라고 할 수 있다. 스텝 202에서, 현재 이용할 수 있는 시드들 및 현재 이용할 수 없는 시드들에 관한 정보에 액세스할 수 있다. 스텝 204에서, 향후의 시드들에 관한 정보에 액세스할 수 있다.
스텝 206에서는, 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스에 관한 정보에 기초하여, 특정 컴퓨팅 디바이스가 현재 특정 디지털 콘텐트를 갖고 있는 하나 이상의 다른 컴퓨팅 디바이스들 각각으로부터 특정 디지털 콘텐트를 다운로드하는 데 걸리는 시간의 제 1 추정치(들)의 결정(들)이 이루어진다. 이는, 현재 특정 디지털 콘텐트를 갖고 있는 20개의 다른 컴퓨팅 디바이스가 존재한다고 해서 반드시 20개의 추정치가 결정될 필요가 있다는 것을 의미하는 것은 아니다. 오히려, 현재 특정 디지털 콘텐트를 갖고 있는 20개의 다른 컴퓨팅 디바이스 중 일부(예컨대, 10개)에 대해서만 추정치들이 결정될 수 있을 가능성이 있다.
스텝 208에서, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 다른 컴퓨팅 디바이스(들)에 관한 정보에 기초하여, 특정 컴퓨팅 디바이스가 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 하나 이상의 다른 컴퓨팅 디바이스들 각각으로부터 특정 디지털 콘텐트를 다운로드하는 데 걸리는 시간의 제 2 추정치(들)의 결정(들)이 이루어진다. 스텝 206의 경우와 마찬가지로, 스텝 208에서는 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 다른 컴퓨팅 디바이스들 전부에 대해서, 또는 그중 일부에 대해서만 추정치가 결정될 수 있다.
어떤 실시예들에 따르면, 스텝 206에서 결정된 각각의 제 1 추정치는, 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스들 중 하나(예컨대, 1122)를 특정 디지털 콘텐트를 공급하는 데 이용할 수 있을 때까지 걸리는 시간의 추정치에, 다른 컴퓨팅 디바이스(예컨대, 1122)를 특정 디지털 콘텐트를 공급하는 데 이용할 수 있을 때 특정 컴퓨팅 디바이스(예컨대, 1121)가 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치를 가산한 합계 추정치이다. 예컨대, 컴퓨팅 디바이스(1121)가 필요로 하거나 원하는 특정 디지털 콘텐트를 컴퓨팅 디바이스(1122)가 갖고 있지만, 컴퓨팅 디바이스(1122)는 지금부터 7분까지 특정 디지털 콘텐트를 공급할 수 없을 것이라고 가정한다(예컨대, 컴퓨팅 디바이스(1122)는 다른 컴퓨팅 디바이스들을 시딩하느라 바쁘거나, 및/또는 향후 7분 동안 비디오를 스트리밍하고 있을 것이기 때문에). 또한, 컴퓨팅 디바이스(1122)가 특정 디지털 콘텐트를 공급할 수 있을 때, 특정 컴퓨팅 디바이스(1121)가 컴퓨팅 디바이스(1122)로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 4분이 걸릴 것으로 추정된다고 가정한다. 이 예시에 대해서는, 스텝 206에서 결정된 제 1 추정치가 11분으로 될 것이다(즉, 7분에 4분을 더하면, 11분). 대안적인 실시예들에 있어서, 각각의 제 1 추정치는 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스들 중 하나로부터 다운로드를 개시할 때 특정 컴퓨팅 디바이스(예컨대, 1121)가 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치이다. 계속해서 상술한 예시에 의하면, 대안적인 실시예들에 있어서는, 제 1 추정치가 4분이 될 것이다.
어떤 실시예들에 따르면, 스텝 208에서 결정된 각각의 제 2 추정치는, 다른 컴퓨팅 디바이스들 중 하나(예컨대, 1123)가 특정 디지털 콘텐트를 취득하는 과정을 완료하는 데 걸리는 시간의 추정치에, 특정 디지털 콘텐트를 취득하는 과정을 완료한 후 특정 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스(예컨대, 1123)로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치를 가산한 합계 추정치일 수 있다. 예컨대, 컴퓨팅 디바이스(1123)가 특정 디지털 콘텐트를 취득하는 과정을 완료하는 데 10분이 걸릴 것으로 추정되고, 특정 디지털 콘텐트를 취득하는 과정을 완료한 후 특정 컴퓨팅 디바이스(1121)가 다른 컴퓨팅 디바이스(1123)로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 5분이 걸릴 것으로 추정되면, 스텝 208에서 결정된 제 2 추정치는 15분이 될 것이다. 대안적인 실시예들에 있어서, 각각의 제 2 추정치는, 다른 컴퓨팅 디바이스들 중 하나가 특정 디지털 콘텐트를 취득하는 과정을 완료한 후에, 특정 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스들 중 하나로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치이다. 계속해서 상술한 예시에 의하면, 대안적인 실시예들에 있어서는, 제 2 추정치가 5분이 될 것이다.
스텝 210에서, 제 1 및 제 2 추정치(스텝 206 및 스텝 208에서 결정됨)에 기초하여, 특정 디지털 콘텐트에 대한 다운로드 요청이 보내지는 하나 이상의 다른 컴퓨팅 디바이스들의 식별이 이루어진다.
어떤 실시예들에 있어서는, 스텝 210에서 식별된 다른 컴퓨팅 디바이스들 중 하나는, 현 시간에 비해 가장 빠른 시간에 특정 디지털 콘텐트를 다운로드하는 특정 컴퓨팅 디바이스를 추정하는 다른 컴퓨팅 디바이스이다. 스텝 210에서는, 추가적인 다른 컴퓨팅 디바이스들에 대해서도 식별이 이루어질 수 있다. 더 일반적으로는, 다른 컴퓨팅 디바이스들의 개수(N)는 스텝 210에서 식별될 수 있는데, 특정 컴퓨팅 디바이스가 첫번째, 두번째, ... N번째로 가장 빠른 시간에 특정 디지털 콘텐트를 다운로드할 것으로 추정되는 N개의 다른 컴퓨팅 디바이스에 대응한다.
다른 실시예들에 있어서는, 스텝 210에서 식별된 다른 컴퓨팅 디바이스들 중 하나는, 특정 컴퓨팅 디바이스가 다운로드를 개시할 때 최단 시간에 특정 디지털 콘텐트를 다운로드하는 특정 컴퓨팅 디바이스를 추정하는 다른 컴퓨팅 디바이스이다. 스텝 210에서는, 추가적인 다른 컴퓨팅 디바이스들에 대해서도 식별이 이루어질 수 있다. 더 일반적으로는, 다른 컴퓨팅 디바이스들의 개수(N)는 스텝 210에서 식별될 수 있으며, 특정 컴퓨팅 디바이스가 다운로드를 개시할 때 특정 컴퓨팅 디바이스가 첫번째, 두번째, ... N번째 최단 시간에 특정 디지털 콘텐트를 다운로드할 것으로 추정되는 N개의 다른 컴퓨팅 디바이스에 대응한다.
스텝 212에서, 특정 디지털 콘텐트에 대한 다운로드 요청을 보내는 것이 지시되거나 권고된다. 이는, 특정 컴퓨팅 디바이스로부터, 하나 이상의 식별된 다른 컴퓨팅 디바이스들 중 적어도 하나에 보내진 특정 디지털 콘텐트에 대한 이와 같은 다운로드 요청을 포함하거나, 또는 초래할 수 있다. 스텝 214에서, 특정 컴퓨팅 디바이스에 의한 특정 디지털 콘텐트의 다운로딩이 수행된다. 특정 컴퓨팅 디바이스는 제각기 스텝 212 및 스텝 214와 연관된 다운로드 요청(들)의 보내기 및 다운로딩의 수행을 개시할 수 있다. 대안적으로, 코디네이터는 제각기 스텝 212 및 스텝 214와 연관된, 특정 디지털 콘텐트에 대한 다운로드 요청(들)을 보내라는 명령 또는 권고를 특정 컴퓨팅 디바이스에 보낼 수 있고, 다운로딩을 수행하라는 명령 또는 권고를 특정 컴퓨팅 디바이스에 보낼 수 있다.
피어-투-피어 네트워크에 있어서, 컴퓨팅 디바이스는 한 번에 제한된 수의 다른 컴퓨팅 디바이스들(때로는 "다운로더들(downloaders)"이라고도 함)에 대한 시드로서만 기능할 수 있다. 그 제한된 수는 동적일 수 있으며, 컴퓨팅 디바이스가 비디오를 스트리밍하거나 또는 비디오 게임을 플레이하는 데 사용되는 등의 다른 기능들도 수행하면, 컴퓨팅 디바이스는 단 몇 개의 다른 컴퓨팅 디바이스에 대한 시드로서만 기능할 수 있을 뿐이거나, 또는 다른 컴퓨팅 디바이스들에 대한 시드로서는 기능할 수 없을 수도 있음을 의미한다. 피어-투-피어 네트워크의 전형적인 구현들에 있어서, 시드 컴퓨팅 디바이스는 이미 가능한 다운로더들의 최대 수를 제공하고 있지만, 시드 컴퓨팅 디바이스는 수신하는 모든 새로운 다운로드 요청들이 감소할 것이다. 또한, 피어-투-피어 네트워크의 전형적인 구현들에 있어서, 잠재적인 시드(들)에 다운로드 요청(들)을 보내는 컴퓨팅 디바이스(들)는 다운로드 요청(들)이 감소될 것인지 또는 채택될 것인지의 여부에 대해서는 전혀 모른다. 상술한 실시예들은, 컴퓨팅 디바이스들이 감소될 다운로드 요청들을 보낼 가능성을 줄이는 것에 의해, 또한 상대적으로 느린 현재 이용 가능한 시드에 만족하기보다는, 어쩌면 상대적으로 빠른 시드를 대기하라고 선택하는 것에 의해, 피어-투-피어 네트워크의 성능을 개선하는 데 사용될 수 있다. 컴퓨팅 디바이스가 대기할 수 있는 상대적으로 빠른 시드는 현재 이용할 수 없는 시드 또는 향후의 시드일 수 있으며, 이들 둘은 상술했던 대로 지연된 시드들의 예시들이다.
특정 컴퓨팅 디바이스는 특정한 시간 안에(예컨대, 향후 10분 안에) 특정 디지털 콘텐트를 필요로 하거나 또는 원할 수 있다. 이는, 예컨대 특정 컴퓨팅 디바이스의 유저가 게임을 플레이하고 있고 특정 컴퓨팅 디바이스가 디지털 콘텐트를 아직 필요로 하지 않는 10분 내에 플레이하는 레벨에 이를 가능성이 있기 때문에, 발생할 수 있다. 어떤 실시예들에 있어서는, 제 1 또는 제 2 추정치의 어느 것도 (또는 적어도 그 소정의 최소 수가) 10분보다 적으면, 특정 컴퓨팅 디바이스들은 특정 디지털 콘텐트에 대한 다운로드 요청을 콘텐트 전송 스토어(예컨대, 132)에 직접 보낼 수 있다. 보다 일반적으로는, 도 2를 참조로 기술된 실시예들은 콘텐트 전송 스토어로부터 직접 다운로드되는 디지털 콘텐트의 양을 줄이고, 그에 따라 콘텐트 전송 스토어를 맡고 있는 회사에 대한 비용을 줄이는 데 사용될 수 있다. 그러나, 피어 컴퓨팅 디바이스로부터 디지털 콘텐트를 다운로드하는 것이 유저의 경험에 악영향을 미치게 되는 상황들에서는, 유저의 컴퓨팅 디바이스가 디지털 콘텐트를 디지털 콘텐트 스토어로부터 직접 다운로드하는 것이 바람직해지게 된다. 따라서, 대안적인 실시예들에 있어서, 특정 컴퓨팅 디바이스가 하나 이상의 다른 "피어" 컴퓨팅 디바이스에게 다운로드 요청을 보낼 것을 지시 또는 권고하기보다는, 디지털 콘텐트 스토어에 직접 다운로드 요청을 보내라는 권고 또는 지시가 이루어지는 경우들이 있을 수 있다.
도 3은 스텝 202 내지 스텝 208을 수행하는 컴퓨팅 디바이스 및/또는 코디네이터에 의해 발생될 수 있는 예시적인 테이블(300)을 나타낸다. 테이블(300)의 칼럼(302)은 피어-투-피어 네트워크의 다른 컴퓨팅 디바이스들을 열거한다. 칼럼(304)은 다른 컴퓨팅 디바이스들 중 개개의 디바이스들이 현재 필요해지거나 요망되어지는 특정 디지털 콘텐트를 갖고 있는지의 여부에 대한 표시들을 포함한다. 칼럼(306)은 다른 컴퓨팅 디바이스들 중 개개의 디바이스들이 현재 특정 디지털 콘텐트를 취득하는 과정에 있는지의 여부에 대한 표시들을 포함한다. 칼럼(308)은 칼럼(302)에 열거된 다양한 다른 컴퓨팅 디바이스들로부터 특정 디지털 콘텐트를 다운로드하는 데 걸리는 시간의 추정치들을 포함한다.
현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스들에 대해서, 칼럼(308)의 각각의 대응하는 추정치는, 다른 컴퓨팅 디바이스가 다운로드를 지원하는 것이 가능해지는 데 걸리는 시간의 추정치와, 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스들 중 하나로부터 다운로드를 개시할 때 특정 컴퓨팅 디바이스가 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치를 합산함으로써 발생될 수 있다. 다른 컴퓨팅 디바이스가 특정 디지털 콘텐트의 다운로드를 지원하는 것이 즉시 가능해지면(즉, 특정 디지털 콘텐트를 공급하는 것이 즉시 가능해지면), 추정치의 그 부분은 영이고, 합계는 다른 컴퓨팅 디바이스로부터 다운로드를 개시할 때 특정 컴퓨팅 디바이스가 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치와 동일할 것이다.
현재 특정 디지털 콘텐트를 취득하는 과정에 있는 다른 컴퓨팅 디바이스들에 대해서, 칼럼 308의 각각의 대응하는 추정치는, 다른 컴퓨팅 디바이스가 특정 디지털 콘텐트를 취득하는 과정을 완료하는 데 걸리는 시간의 추정치와, 다른 컴퓨팅 디바이스가 특정 디지털 콘텐트를 취득하는 과정을 완료한 후에 특정 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치를 합산함으로써 생성될 수 있다.
대안적인 실시예들에 있어서, 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스들에 대해서, 칼럼 308의 각각의 추정치는, 단순히 현재 특정 디지털 콘텐트를 갖고 있는 다른 컴퓨팅 디바이스로부터 다운로드를 개시할 때 특정 컴퓨팅 디바이스가 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치일 수 있다. 유사하게, 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 다른 컴퓨팅 디바이스들에 대해서, 칼럼 308의 각각의 추정치는, 단순히 다른 컴퓨팅 디바이스가 특정 디지털 콘텐트를 취득하는 과정을 완료한 후에, 특정 컴퓨팅 디바이스가 다른 컴퓨팅 디바이스로부터 특정 디지털 콘텐트의 다운로드를 완료하는 데 걸리는 시간의 추정치일 수 있다. 추정치들을 발생시키는 다른 변형예들도 가능하며, 실시예의 범위 내이다.
예시적인 테이블(300)은 가장 빠른(즉, 가장 짧은) 다운로드 추정치가 현재 특정 디지털 콘텐트를 취득하는 과정에 있는 다른 컴퓨팅 디바이스에 대응할 수 있음을 나타낸다. 이는, 예컨대, 특정 디지털 콘텐트의 취득이 거의 행해진 다른 컴퓨팅 디바이스(1124)가 특정 디지털 콘텐트의 취득이 행해졌을 때 시드로서 즉시 이용 가능해질 것이기 때문에, 또한 (특정 디지털 콘텐트를 필요로 하거나 원하는) 특정 컴퓨팅 디바이스와 다른 컴퓨팅 디바이스(1124) 사이의 데이터 전송 속도가 매우 빠르기 때문에, 발생할 수 있다. 따라서, 컴퓨팅 디바이스는, 다운로드를 즉시 수행하려 하기보다는, (다른 컴퓨팅 디바이스가 특정 디지털 콘텐트의 시드일 준비가 될 때) 향후의 특정 시점까지 특정 디지털 콘텐트를 다운로드하려 하는 것을 대기하는 것이 더 나을 수 있다.
예측 시드 선택을 통한
스웜
효율의 증가(Increasing Swarm Efficiency through Predictive Seed Selection)
어떤 실시예들에 있어서는, 컴퓨팅 디바이스들이 위치 정보(예컨대, 시간대 및/또는 지리구 정보)에 기초하여 복수의 상이한 그룹들에 맵핑된다. 부가적으로, 그룹간 정보가 수집되고, 그룹간 정보는 그룹간 데이터 전송 속도 및/또는 그룹간 가용성을 포함할 수 있다. 그룹간 정보에 기초하여, 디지털 콘텐트에 대한 다운로드 요청들을 보내는 것이 효율적이고 효과적이게 될 컴퓨팅 디바이스들이 식별되며, 이와 같은 다운로드 요청들이 행해지거나 또는 권고된다.
후술되는 도 4의 고수준 흐름도는 이들 실시예를 설명하기 위해 사용된다. 구체적으로, 이제 도 4는 피어-투-피어 네트워크의 컴퓨팅 디바이스(예컨대, 도 1의 1121)가 디지털 콘텐트에 대한 1회 이상의 다운로드 요청을 보내는 피어-투-피어 네트워크의 하나 이상의 다른 컴퓨팅 디바이스를 식별하는 방법을 기술하는 데 사용될 것이다. 디지털 콘텐트는, 복수의 디지털 콘텐트부(디지털 콘텐트 유닛들이라고도 함)를 포함하는 전체 디지털 콘텐트 아이템, 복수의 디지털 콘텐트부를 포함하는 디지털 콘텐트 아이템의 특정 디지털 콘텐트부, 또는 디지털 콘텐트 아이템의 디지털 콘텐트부들로 이루어진 특정 그룹일 수 있다. 도 4를 참조로 기술된 스텝들은 코디네이터(예컨대, 도 1의 142) 또는 피어 컴퓨팅 디바이스(예컨대, 도 1의 1121), 또는 그 조합에 의해 수행될 수 있다.
도 4를 참조하면, 스텝 402에서, 복수의 컴퓨팅 디바이스 각각은 복수의 컴퓨팅 디바이스 각각에 대응하는 위치 정보에 기초하여 복수의 상이한 그룹들 중 하나에 맵핑(즉, 그룹화)된다. 위치 정보는 시간대 및/또는 지리구일 수 있지만, 이들에 한정되는 것은 아니다. 예컨대, 제 1 시간대 내의, 또는 제 1 시간대 그룹 내의 컴퓨팅 디바이스들은 제 1 그룹에 맵핑될 수 있고; 제 2 시간대 내의, 또는 제 2 시간대 그룹 내의 컴퓨팅 디바이스들은 제 2 그룹에 맵핑될 수 있고; ... 또한 제 N 시간대 내의, 또는 제 N 시간대 그룹 내의 컴퓨팅 디바이스들은 제 N 그룹에 맵핑될 수 있다. 현재 세상에는 총 40개의 시간대가 존재한다. 각 시간대는 상이한 그룹에 대응할 수 있거나, 또는 다수의 시간대가 동일 그룹에 맵핑될 수 있어서, 존재하는 총 시간대에 비해 적은 그룹들이 존재한다. 다른 예시에 대해서, 제 1 지리구 내의 컴퓨팅 디바이스들은 제 1 그룹에 맵핑될 수 있고; 제 2 지리구 내의 컴퓨팅 디바이스들은 제 2 그룹에 맵핑될 수 있고; ... 또한 제 N 지리구 내의 컴퓨팅 디바이스들은 제 N 그룹에 맵핑될 수 있다. 상이한 지리구들이 상이한 대륙들, 상이한 국가들, 또는 국가 내의 상이한 지역들(예컨대, 주(states), 도(provinces), 준주(territories), 도시(cities) 등)에 대응할 수 있지만, 이것에 한정되는 것은 아니다.
스텝 404에서, 특정 실시예들에 따라, 적어도 하나의 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보를 포함하는 그룹간 정보가 액세스된다. 스텝 404가 코디네이터(142)에 의해 수행되는 경우에는, 그룹간 정보는 코디네이터(142)에 의해 로컬로 저장될 수 있거나, 또는 코디네이터(142)에 의해 원격 저장 및 원격 액세스될 수 있다. 스텝 404가 컴퓨팅 디바이스(112)에 의해 수행되는 경우에는, 그룹간 정보는 컴퓨팅 디바이스(112)에 의해 로컬로 저장될 수 있거나, 또는 컴퓨팅 디바이스(112)에 의해 원격 저장 및 원격 액세스될 수 있다(예컨대, 컴퓨팅 디바이스(112)는 코디네이터(142) 또는 몇몇 다른 디바이스에 의해 저장된 그룹간 정보에 액세스할 수 있음). 이력 정보에, 또한 선택적으로는 실시간 정보에도 기초할 수 있는 그룹간 데이터 전송 속도 정보는 한 쌍의 그룹 사이에서 데이터가 전송되는 평균 또는 중간 속도를 특정할 수 있지만, 이것에 한정되는 것은 아니다. 유사하게, 이력 정보에, 또한 선택적으로는 실시간 정보에도 기초할 수 있는 그룹간 가용성 정보는 제 2 그룹 내의 컴퓨팅 디바이스들이 제 1 그룹 내의 컴퓨팅 디바이스들로부터의 다운로드 요청들을 수락할 가능성을 특정할 수 있지만, 이것에 한정되는 것은 아니다.
간략화를 위해, 일만 개의 컴퓨팅 디바이스 각각이 시간대 정보에 기초하여 그룹 1, 그룹 2 및 그룹 3이라고 하는 3개의 상이한 그룹 중 하나에 맵핑된다. 그룹간 정보는 그룹 1과 그룹 2 사이, 그룹 1과 그룹 3 사이, 및 그룹 2와 그룹 3 사이에서의 데이터 전송과 연관된 정보를 포함할 수 있다. 그룹간 정보는 양방향성 정보일 수 있으며, 그 경우에는 그룹 1과 그룹 2 사이에서의 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보가 그룹 2와 그룹 1 사이에서의 것들과 동일하다. 대안적으로, 그룹간 정보는 일방향성 정보일 수 있으며, 그 경우에는 그룹 1과 그룹 2 사이에서의 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보가 그룹 2와 그룹 1 사이에서의 것들과 상이하다. 그룹간 정보는 일간의 시간들과는 독립적인 정보일 수 있거나, 또는 바람직하게는, 일간의 상이한 시간들에, 및 잠재적으로는 주간의 상이한 요일들에 대응하는 상이한 그룹간 정보일 수 있다. 예컨대, 상이한 시간 범위(예컨대, 12:00am 내지 3:59am, 4:00am 내지 7:59am, 8:00am 내지 11 :59am, 12:00pm 내지 3:59pm, 4:00pm 내지 7:59pm, 8:00pm 내지 11:59pm)에 대응하는 상이한 그룹간 정보가 존재할 수 있다. 다른 변형예들도 가능하며, 실시예의 범위 내이다.
이와 같은 실시예들은, 상대적으로 가깝게 위치된 컴퓨팅 디바이스들로부터 지디털 콘텐트를 다운로드하는 것보다는, 상대적으로 멀리 떨어져 위치된 컴퓨팅 디바이스들로부터 디지털 콘텐트를 다운로드 하는 것이 종종 더욱 빠를 것이라는 (이력 정보에, 및 잠재적으로는 실시간 정보에 기초한) 예측을 이용한다. 이는 반직관적인데, 그 이유는 통상적으로 레이턴시(latency)가 디지털 콘텐트가 이동하는 거리에 반비례하기 때문이다. 그러나, 이들 실시예는 데이터 전송 속도 및/또는 가용성의 증가로 레이턴시의 증가를 상쇄한다. 예시로서, 캘리포니아주, 오레곤주, 및 워싱턴주는 시간대 UTC-8 (여기서 UTC는 협정 세계시(Coordinated Universal Time)를 의미함) 내에 있고, 영국의 일부 지역들은 시간대 UTC-8보다 8시간 빠른 시간대 UTC+0 내에 있다. 이는, 캘리포니아가 8:00 p.m.일 때(캘리포니아에 있는 유저들이 그들의 컴퓨팅 디바이스를 사용해서 게임 또는 비디오를 다운로드하려 할 수 있는 가능 시간), 영국은 4:00 a.m.임(영국에 있는 유저들이 자고 있을 것이고 그들의 컴퓨팅 디바이스는 아이들 상태일 것이며 시드로서 이용 가능할 것 같은 가능 시간)을 의미한다.
계속해서 도 4를 참조하면, 스텝 406에서, 그룹들 중 하나의 그룹 내에 있는 컴퓨팅 디바이스들 중 하나에 대하여, 스텝 404에서의 정보 액세스에 기초하여, 디지털 콘텐트에 대한 하나 이상의 다운로드 요청이 보내지는 다른 그룹들 중 하나의 그룹의 식별이 이루어진다. 계속해서 상기 예시에 의하면, 캘리포니아에서 8:00 p.m.에, 시간대 UTC-8에 대응하는 제 1 그룹에 맵핑된 컴퓨팅 디바이스가 디지털 콘텐트를 다운로드할 시드 컴퓨팅 디바이스를 찾을 필요가 있거나 또는 요망된다고 나타냈을 경우에, 액세스된 그룹간 정보가 캘리포니아에서 8:00 p.m.에 제 1 그룹과 제 2 그룹 사이의 빠른 그룹간 데이터 전송 속도 및 높은 그룹간 가용성을 나타냈으면, 시간대 UTC+0에 대응하는 제 2 그룹이 식별될 수 있다. 바꿔 말하면, 스텝 404에서 액세스된 그룹간 정보는, 시간대 UTC-8에서 8:00 p.m.(시간대 UTC+0에서는 4:00 a.m.임)에 시간대 UTC-8에 대응하는 그룹과 시간대 UTC+0에 대응하는 그룹 사이의 빠른 그룹간 데이터 전송 속도 및/또는 높은 그룹간 가용성이 존재함을 나타낼 수 있다. 스텝 406에서, 이는 시간대 UTC+0에 대응하는 그룹이 시간대 UTC-8에 대응하는 그룹 내의 컴퓨팅 디바이스에 대하여 식별된다는 결과를 가져올 수 있다.
스텝 408에서, 하나 이상의 다운로드 요청을 보내는 것이 지시되거나 또는 권고된다. 이와 같은 다운로드 요청(들)은 디지털 콘텐트에 대한 것이며, 그룹들 중 하나의 그룹 내의 컴퓨팅 디바이스들 중 하나로부터 다른 그룹들 중 식별된 하나의 그룹 내의 하나 이상의 컴퓨팅 디바이스에 보내지는 것이다. 이는, 디지털 콘텐트에 대한 이와 같은 다운로드 요청이 컴퓨팅 디바이스로부터, 식별된 다른 그룹에 맵핑된 하나 이상의 컴퓨팅 디바이스에 보내지는 것을 포함하거나 또는 초래할 수 있다. 스텝 410에서, 디지털 콘텐트의 다운로딩이 이루어진다. 디지털 콘텐트의 다운로드를 필요로 하거나 또는 요망하는 컴퓨팅 디바이스는 제각기 스텝 408 및 스텝 410과 연관된 다운로드 요청(들)의 보내기 및 다운로딩의 수행을 개시할 수 있다. 대안적으로, 코디네이터는 제각기 스텝 408 및 스텝 410과 연관된, 디지털 콘텐트에 대한 다운로드 요청(들)을 보내라는 지시 또는 권고를 컴퓨팅 디바이스에 보낼 수 있고, 다운로딩을 수행하라는 지시를 컴퓨팅 디바이스에 보낼 수 있다.
상술한 실시예들에 있어서, 동일 그룹에 맵핑되는 컴퓨팅 디바이스들을 로컬 피어(local peer)들이라고 할 수 있으며, 상이한 그룹들에 맵핑되는 컴퓨팅 디바이스들을 비-로컬 피어(non-local peer)들이라고 할 수 있다. 비-로컬 피어들로부터 디지털 콘텐트를 다운로드하는 다른 잠재적인 장점은 앞으로의 특정 시점에 있는 비-로컬 피어들이 새롭게 릴리스된 디지털 콘텐트에 대하여 양호한 시드로 될 가능성이 높다는 점이다. 예컨대, 새로운 컴퓨터 게임의 전세계적인 릴리스가 현지 시간으로 8:00 p.m.에 발생한다고 가정한다. 이는, 영국에 있는 컴퓨팅 디바이스가 캘리포니아에 있는 컴퓨팅 디바이스보다 8시간 빨리 새로운 게임을 다운로드할 수 있음을 의미하게 된다. 따라서, 캘리포니아에서 8:00 p.m.일 때, 캘리포니아에 있는 컴퓨팅 디바이스가 영국에 있는 비-로컬 피어로부터 디지털 콘텐트를 보다 빠르게 다운로드하게 될 것인데, 이는 빠른 그룹간 전송 속도 및 높은 그룹간 가용성 때문일 뿐만 아니라, 영국에 있는 비-로컬 피어들이 (캘리포니아에 있는 로컬 피어들에 비해) 새롭게 릴리스된 디지털 콘텐트를 이미 갖고 있을 가능성이 높기 때문이다. 부가적으로, 아이들 상태일 가능성이 있는 컴퓨팅 디바이스들(예컨대, 그 유저들이 자고 있을 가능성이 있기 때문)로부터의 디지털 콘텐트의 다운로딩을 지시 또는 권고함으로써, 다운로드를 완료하게 되는 시간의 추정치들이 더욱 정확해질 수 있는데, 이는 이용 가능한 아이들 상태의 시드 컴퓨팅 디바이스가 (이용 가능한 비-아이들 상태의 컴퓨팅 디바이스에 비해) 다운로드 도중에 그 접속이 끊어질 가능성이 낮기 때문이다.
도 5는 스텝 404에서 액세스될 수 있는 정보의 유형의 일례인 테이블(500)을 나타낸다. 테이블(500)의 가장 좌측 열 및 교차하는 가장 상측 행을 따라 다양한 시간대들이 열거된다. 피어-투-피어 네트워크의 각각의 컴퓨팅 디바이스는 시간대들 중 하나의 시간대에(또는 시간대들로 이루어진 그룹들 중 하나의 그룹에) 맵핑될 수 있다. 테이블(500)의 셀들은 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보와 같은 그룹간 정보로 채워질 수 있지만, 이들에 한정되는 것은 아니다. 특정 예시로서, 502로 표시된 셀은 UTC-2 시간대와 UTC+0 시간대 사이의 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보를 포함할 수 있다. 상이한 시간 범위들 및/또는 상이한 요일들에 대해서도 유사한 테이블들을 생성할 수 있지만, 이들에 한정되는 것은 아니다. 이와 같은 테이블들은, 그룹들 중 하나에 맵핑된 컴퓨팅 디바이스에 대하여, 위에서 더욱 상세히 기술된 바와 같이, 디지털 콘텐트에 대한 다운로드 요청이 보내지는 다른 그룹(들)을 식별하는데 사용될 수 있다.
상술한 바와 같이, 어떤 때에는, 피어-투-피어 통신에 참가하고 있거나 또는 이용 가능한 컴퓨팅 디바이스(112)들을 스웜이라고도 할 수 있다. 피어-투-피어 통신들에 참가하고 있거나 또는 이용 가능한 컴퓨팅 디바이스들은 상이한 그룹들에 맵핑되어 있다고 해도 동일 스웜의 일부일 수 있다. 도 4 및 도 5를 참조로 기술한 실시예들은, 많은 예들에 있어서 다른 그룹에 맵핑된 컴퓨팅 디바이스들이 특정 컴퓨팅 디바이스에 대한 최선의 시드들이 될 수 있음을 예측함으로써 스웜 효율을 증가시킬 수 있다.
지역 레벨 희소성 완화(Region level scarcity mitigation)
어떤 실시예들에 있어서, 복수의 상이한 디지털 콘텐트 유닛들 각각과 연관된 희소성을 나타내는 정보가 수집되고, 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키는 방식으로 디지털 콘텐트 유닛들의 분배에는 우선순위가 정해진다. 디지털 콘텐트 유닛들의 분배는 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키기 위해 우선순위를 정한 결과에 기초하여 행해진다. 이와 같은 실시예들은 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 효과를 가질 것이다. 후술하는 도 6의 고수준 흐름도는 이들 실시예를 설명하는데 사용된다. 구체적으로, 도 6은 피어-투-피어 네트워크의 복수의 컴퓨팅 디바이스 사이에서의 복수의 상이한 디지털 콘텐트 유닛의 분배를 개선하는 방법을 기술하는데 사용될 것이다. 도 4를 참조로 기술한 스텝들은 코디네이터(예컨대, 도 1의 142) 또는 컴퓨팅 디바이스(예컨대, 도 1의 1121), 또는 그 조합에 의해 수행될 수 있다. 각각의 디지털 콘텐트 유닛은 전체 디지털 콘텐트 아이템에 대응할 수 있거나, 또는 복수의 디지털 콘텐트부를 포함하는 디지털 콘텐트 아이템의 하나 이상의 부분에 대응할 수 있다. 도 6을 참조하면, 스텝 602에서, 복수의 상이한 디지털 콘텐트 유닛들 각각과 연관된 희소성을 나타내는 정보가 액세스된다. 스텝 602에서 액세스된 정보는 복수의 상이한 디지털 콘텐트 유닛들 각각과 연관된 현재의 희소성 및/또는 예측된 향후의 희소성을 나타내는 것일 수 있다. 희소성을 나타내는 정보는 피어-투-피어 네트워크 전체 또는 피어-투-피어 네트워크의 일부 내의 디지털 콘텐트의 빈도(또는 드문 정도(infrequency))를 계량한다. 간략화를 위해, 피어-투-피어 네트워크의 일부는 100개의 피어 컴퓨팅 디바이스로 이루어진 그룹을 포함한다고 가정한다. 또한, 100개의 피어 컴퓨팅 디바이스 중 50개는 제 1 디지털 콘텐트 유닛의 복제를 갖고 있지만, 100개의 피어 컴퓨팅 디바이스 중 5개만이 제 2 디지털 콘텐트 유닛의 복제를 갖고 있다. 희소성을 나타내는 정보는, 예컨대, 제 1 디지털 콘텐트 유닛이 100 중 50의 희소성을 갖거나, 또는 더 간단하게는 희소성 레벨이 2(즉, 100/50 = 2)라고 명시할 수 있고; 제 2 디지털 콘텐트 유닛이 100 중 5의 희소성을 갖거나, 또는 더 간단하게는 희소성 레벨이 20(즉, 100/5 = 20)이라고 명시할 수 있다. 이 예시에 계속해서, 제 2 디지털 콘텐트 유닛이 제 1 디지털 콘텐트 유닛보다 10배 더 희소하다는 것을 이해할 수 있다. 희소성을 다른 방식들로 표현하는 것도 가능하며, 실시예의 범위 내이다. 예컨대, 희소성을 나타내는 정보는 특정 디지털 콘텐트를 갖는 컴퓨팅 디바이스들의 비율(또는 다른 수량사)을 명시할 수 있다. 희소성을 나타내는 정보가 스텝 602에서 액세스되게 하기 위해, 먼저 정보가 수집될 필요가 있다. 어떤 실시예들에 있어서, 이와 같은 정보는 코디네이터(예컨대, 도 1의 코디네이터(142))에 의해 수집되어 유지된다. 예컨대, 코디네이터는, 피어 컴퓨팅 디바이스들이 다른 피어 컴퓨팅 디바이스들과 공유해야 하는 디지털 콘텐트의 리스트들을 코디네이터에게 제공할 때 이와 같은 정보를 수집할 수 있다. 다른 예시로서, 코디네이터는 어떤 피어 컴퓨팅 디바이스들이 다운로드하는지에 대해 계속 파악할 수 있고, 이와 같은 정보에 기초하여 희소성을 추론할 수 있다. 또 다른 예시로서, 코디네이터는 컴퓨팅 디바이스들이 특정 디지털 콘텐트에 대하여 시드들을 찾는 것이 얼마나 어려운지 및/또는 시간 소모적인지에 대해 계속 파악할 수 있고, 이와 같은 정보에 기초하여 희소성을 추론할 수 있다. 다른 실시예들에 있어서, 피어-투-피어 네트워크의 컴퓨팅 디바이스(112)들 중 적어도 일부는 이와 같은 정보를 자기 사용을 위해 수집 및 유지할 수 있다. 예컨대, 피어 컴퓨팅 디바이스는, 피어 컴퓨팅 디바이스가 다운로드 가능한 디지털 콘텐트의 리스트들을 (코디네이터 및/또는 다른 컴퓨팅 디바이스들로부터) 취득할 때 이와 같은 정보를 수집할 수 있다. 또 다른 실시예들에 있어서, 컴퓨팅 디바이스는 정보의 일부를 수집 및 유지할 수 있으며, 또한 코디네이터로부터 정보의 일부에 액세스할 수도 있다. 다시 말해, 컴퓨팅 디바이스는 스스로 수집 및 유지한 정보에 액세스할 수 있거나, 및/또는 코디네이터에 의해 수집 및 유지된 정보에 액세스할 수 있다. 희소성 평가자라고 하는 다른 디바이스가 상술한 정보를 수집 및 유지할 수 있다는 것, 및 컴퓨팅 디바이스들 및/또는 코디네이터가 희소성 평가자로부터 이와 같은 정보에 액세스할 수 있다는 것도 가능하다. 보다 일반적으로는, 도 6을 참조로 기술한 방법은 피어 컴퓨팅 디바이스에 의해, 피어 컴퓨팅 디바이스들과 통신하는 코디네이터에 의해, 희소성 평가자에 의해, 또는 컴퓨팅 디바이스, 코디네이터 및/또는 희소성 평가자의 조합에 의해 수행될 수 있다. 이들은 단지 몇 가지의 예시일 뿐이며, 모두를 포함하는 것을 의미하지 않는다.
스텝 604에서, 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키는 방식으로 디지털 콘텐트 유닛들의 분배에는 우선순위가 정해진다. 실시예에 따르면, 디지털 콘텐트 유닛들에는 그들의 희소성에 따라 순위가 부여될 수 있고, N의 최대 희소성 레벨을 갖는 디지털 콘텐트 유닛들은 지정된 레벨을 넘는 것으로 간주되며, 여기서 N은 1 이상의 정수이다. 다른 실시예에 있어서, 최고 희소성 레벨들을 갖는 디지털 콘텐트 유닛들의 X 퍼센트(예컨대, 10%)는 지정된 레벨을 넘는 것으로 간주된다. 또 다른 실시예에 있어서는, 평균 희소성 레벨이 결정될 수 있으며, 평균을 넘는(또는 특정 퍼센트 만큼 또는 특정 표준편차 만큼 평균을 넘는) 디지털 콘텐트 유닛들은 지정된 레벨을 넘는 것으로 간주될 수 있다. 이들은 단지 몇 가지의 예시일 뿐이며, 모두를 포함하는 것을 의미하지 않는다. 스텝 604에서의 우선순위 정하기는, 지정된 레벨을 넘는 현재의 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키거나, 및/또는 지정된 레벨을 넘는 예측된 향후의 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키는 방식으로 디지털 콘텐트 유닛들의 분배에 우선순위를 정하는 것을 수반할 수 있다. 어떤 실시예들에 있어서는, 스텝 604에서의 우선순위 정하기는 복수의 디지털 콘텐트 유닛에 대하여 실질적으로 동등한 희소성을 달성하도록 예측되는 방식으로 수행된다. 예컨대, 최고의 우선순위는 최고 레벨의 우선순위를 갖는 디지털 콘텐트 유닛의 희소성을 저감시키는 것(그에 따라, 존재도(abundance)를 증가시키는 것)일 수 있으며; 두번째로 높은 우선순위는 두번째로 높은 레벨의 희소성을 갖는 디지털 콘텐트 유닛의 희소성을 저감시키는 것, 등일 수 있다. 디지털 콘텐트 유닛들의 분배에 우선순위를 정할 때, 특정 디지털 콘텐트 유닛들에 대한 수요와 같은 추가적인 유형의 정보가 이용될 수도 있지만, 이것에 한정되는 것은 아니다. 예컨대, 2개의 디지털 콘텐트 유닛이 동일한 또는 거의 동일한 희소성을 갖지만, 하나가 다른 하나에 비해 수요가 높은 경우에는, 보다 높은 수요를 갖는 디지털 콘텐트 유닛을 분배하는 것의 우선순위가 더 높게 정해질 수 있다. 현재의 희소성은 피어-투-피어 네트워크 내의 현재의 희소성 레벨들을, 또는 그 일부를 나타내는 것이다. 예측된 향후의 희소성은 희소성 레벨들의 경향들을 모니터링함으로써 결정될 수 있다. 예컨대, 특정 디지털 콘텐트 유닛들의 희소성 레벨이 이력으로 하루에 10 퍼센트 증가하고 있는 경우에는, 이와 같은 정보에 기초하여, 향후의 희소성 레벨들을 예측하는 것이 가능하다. 예측된 향후의 희소성은, 본원에서 기술한 실시예들에 따라 수행되는 희소성을 저감시키려는 노력들을 고려할 수도 있다.
스텝 606에서, 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트 유닛들의 희소성을 저감시키기 위해, 우선순위를 정한 결과에 기초하여 디지털 콘텐트 유닛들의 분배가 수행되거나 또는 권고된다. 코디네이터가 도 6의 스텝들을 수행하는 경우에, 코디네이터는 하나 이상의 피어 컴퓨팅 디바이스가 희소한 디지털 콘텐트를 다운로드하는 것을 지시(또는 권고)함으로써 스텝 606을 수행할 수 있다. 이는, 스웜의 전반적인 건전성을 개선하기 위해 발생할 수 있으며, 또한 그에 따라 특정 희소 디지털 콘텐트를 다운로드하는 특정 피어 컴퓨팅 디바이스(들)가 실제로 특정 희소 디지털 콘텐트를 필요로 하거나 또는 요망하는지의 여부로 발생할 수 있다. 유사하게, 피어 컴퓨팅 디바이스가 도 6의 스텝들을 수행하는 경우에, 다운로드 요청을 보내는 피어 컴퓨팅 디바이스가 실제로 특정 희소 디지털 콘텐트를 필요로 하거나 또는 요망하는지의 여부에 따라, 하나 이상의 다른 컴퓨팅 디바이스에 희소 디지털 콘텐트에 대한 다운로드 요청을 보냄으로써, 피어 컴퓨팅 디바이스가 스텝 606을 수행할 수 있다.
도 6을 참조로 기술한 스텝들은 전체 피어-투-피어 네트워크에 대하여 수행될 수 있다. 대안적으로, 피어-투-피어 네트워크의 컴퓨팅 디바이스들은 피어-투-피어 네트워크 내에서 복수의 상이한 그룹들로 그룹화될 수 있고, 도 6을 참조로 기술한 스텝들이 그룹 기준에 의해 그룹에서 수행될 수 있다. 더 구체적으로, 별도의 희소성 정보는 스텝 602에서 피어-투-피어 네트워크 내의 복수의 그룹 각각에 대하여 액세스될 수 있으며, 상이한 그룹들에 대해서는 우선순위 정하기가 상이하도록 그룹들 각각에 대하여 스텝 604에서 수행된 우선순위 정하기가 수행될 수 있다. 컴퓨팅 디바이스들은 다양한 상이한 방식들로 그룹화될 수 있다. 예컨대, 도 4 및 도 5를 참조로 상술했던 바와 같이, 컴퓨팅 디바이스들은 위치 정보(예컨대, 시간대 및/또는 지리구 정보)에 기초하여 상이한 그룹들에 맵핑될 수 있다. 대안적으로, 컴퓨팅 디바이스들은 그들의 인터넷 서비스 제공자들(ISPs)에 기초하여 그룹화될 수 있다. 예컨대, 제 1 ISP에 의해 서비스를 제공받는 컴퓨팅 디바이스들은 제 1 그룹의 일부일 수 있으며, 제 2 ISP에 의해 서비스를 제공받는 컴퓨팅 디바이스들은 제 2 그룹의 일부일 수 있고, ... 또한 제 N ISP에 의해 서비스를 제공받는 컴퓨팅 디바이스들은 제 N 그룹의 일부일 수 있다. 또 다른 실시예들에 있어서, 컴퓨팅 디바이스들은 그들이 접속되는 라우터에 기초하여, 또는 그들이 접속되는 라우터 허브에 기초하여 그룹화될 수 있다. 이들은 단지 몇 가지의 예시일 뿐이며, 모두를 포함하는 것을 의미하지 않는다.
도 7은 피어-투-피어 네트워크 내의, 또는 피어-투-피어 네트워크의 일부인 컴퓨팅 디바이스들로 이루어진 그룹 내의 디지털 콘텐트 아이템들의 상대적인 희소성을 도시하는 예시적인 히스토그램을 나타낸다. 이와 같은 히스토그램은 스텝 602에서 액세스될 수 있는 정보의 유형의 실례이다. 도 7에서, 디지털 콘텐트 아이템 #10은 최고의 희소성 레벨을 갖고, 디지털 콘텐트 아이템 #2는 두번째로 높은 희소성 레벨을 갖는다. 결국, 스텝 604에서, 디지털 콘텐트 아이템 #10의 분배는 최고의 우선순위를 가질 수 있고, 디지털 콘텐트 아이템 #2의 분배는 두번째로 높은 우선순위를 가질 수 있다. 상술한 바와 같이, 어떤 실시예들에 있어서, 스텝 604는 복수의 디지털 콘텐트 유닛에 대하여 실절적으로 동등한 희소성을 달성하도록 예측되는 방식으로 수행된다. 동등한 희소성이 달성되었을 경우에는, 도 7의 히스토그램에 도시된 디지털 콘텐트 아이템들 모두에 대하여 희소성 레벨들이 동일해지게 된다. 예시로서, 100개의 상이한 디지털 콘텐트 유닛들 각각이, 디지털 콘텐트 유닛들 각각을 갖는 (100개의 컴퓨팅 디바이스들로 이루어진 그룹 내의) 컴퓨팅 디바이스들의 20퍼센트에 대응하는 동일한(즉, 동등한) 희소성 레벨을 갖는 것이 목적일 수 있다. 이 목적을 달성하기 위한 한가지 방식은, 100개의 컴퓨팅 디바이스들 각각이 100개의 디지털 콘텐트 유닛 중 20개로 이루어지는 상이한 조합을 취득해서, 각각의 디지털 콘텐트 유닛이 100의 희소성 중 20을 갖게 하는 것을 수행하거나 또는 권고하는 것이 될 수 있다. 이는 단지 예시일 뿐이며, 한정하려는 것은 아니다.
희소성이 커질수록 존재도가 낮아지고, 희소성이 낮아질수록 존재도가 높아진다는 점에서, 희소성과 존재도는 반비례한다. 결국, 존재도를 나타내는 정보가 희소성도 나타내기 때문에(예컨대, 가장 낮은 존재도를 가진 디지털 콘텐트 아이템은 최대의 희소성을 가지며, 그 반대도 마찬가지임), 스텝 602에서, 존재도를 나타내는 정보에 액세스하는 것도 또한 실시예의 범위 내로 된다. 부가적으로, 지정된 레벨을 하회하는 존재도를 갖는 디지털 콘텐트 아이템들의 존재도를 증가시키는 방식으로, 스텝 604에서, 디지털 콘텐트 유닛들의 분배에 우선순위를 정하는 것이 본 실시예의 범위 내로 된다. 유사하게, 지정된 레벨을 하회하는 존재도를 갖는 디지털 콘텐트 아이템들의 존재도를 증가시키기 위해, 스텝 606에서, 디지털 콘텐트 아이템들의 분배를 수행하거나 또는 권고하는 것이 실시예의 범위 내로 된다. 다시 말해, 존재도의 정도(measures)도 역시 희소성을 나타낸다.
피어 클러스터
스루풋을
증가시키기 위한 협력적
피스
획득(Cooperative Piece Acquisition to increase Peer Cluster Throughput)
상술한 바와 같이, 어떤 실시예들에 있어서, 컴퓨팅 디바이스들은 컴퓨팅 디바이스들로 이루어진 클러스터들로 그룹화되고, 동일 클러스터 내의 복수의 컴퓨팅 디바이스가 상이한 디지털 콘텐트 유닛들 모두를 총괄해서 취득하게 되도록, 동일 클러스터 내의 상이한 컴퓨팅 디바이스들은 상이한 디지털 콘텐트 유닛들에 대한 다운로드 요청을 클러스터 외부의 컴퓨팅 디바이스들에 보내라고 지시 또는 권고받는다. 이와 같은 실시예들은 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 효과도 갖게 된다.
후술하는 도 8의 고수준 흐름도는 이들 실시예를 설명하는데 사용된다. 구체적으로, 도 8은 이제 피어-투-피어 네트워크의 컴퓨팅 디바이스들 사이에서의 디지털 콘텐트 유닛들의 분배를 개선하는 방법을 기술하는데 사용될 것이다. 도 8을 참조로 기술된 스텝들은 코디네이터(예컨대, 도 1의 142) 또는 컴퓨팅 디바이스(예컨대, 도 1의 1121), 또는 그 조합에 의해 수행될 수 있다. 도 8을 참조하면, 스텝 802에서, 컴퓨팅 디바이스들은 클러스터들 각각이 복수의 컴퓨팅 디바이스를 포함하게 되도록 컴퓨팅 디바이스들로 이루어진 복수의 클러스터로 그룹화된다. 상술한 것들과 유사하게, 스텝 802에서 수행된 그룹화는 컴퓨팅 디바이스들에 서비스를 제공하는 ISP들, 컴퓨팅 디바이스들이 위치되어 있는 지리구들, 컴퓨팅 디바이스들이 위치되어 있는 시간대들, 컴퓨팅 디바이스들이 접속되어 있는 라우터들 또는 라우터 허브들에 기초할 수 있지만, 이들에 한정되는 것은 아니다. 대안적으로, 또는 부가적으로, 스텝 802에서 수행된 그룹화는 컴퓨팅 디바이스들 사이에서의 현재 및/또는 이력 데이터 전송 스루풋에 기초하여 수행될 수 있다. 예컨대, 현재 및/또는 이력 데이터 전송 스루풋을 갖는 컴퓨팅 디바이스들은 함께 동일 클러스터로 그룹화될 수 있다. 본원에서 사용된 용어로서, 클러스터란, 일반적으로 그룹의 개개의 컴퓨팅 디바이스들에도 유익한, 그룹의 이익을 위해 협동하는 컴퓨팅 디바이스들로 이루어진 그룹을 말한다.
스텝 804에서, 동일 클러스터 내의 복수의 컴퓨팅 디바이스가 상이한 디지털 콘텐트 유닛들 모두를 총괄해서 취득하게 되도록, 동일 클러스터 내의 상이한 컴퓨팅 디바이스들은 상이한 디지털 콘텐트 유닛들에 대한 다운로드 요청을 클러스터 외부의 컴퓨팅 디바이스들에 보내라고 지시 또는 권고받는다. 다운로드 요청을 보내라고 컴퓨팅 디바이스에 지시하는 것은 다운로드 요청을 보내는 것을 수행하는 방식이다. 어떤 실시예들에 있어서, 클러스터 내의 컴퓨팅 디바이스들이 다운로드 요청들을 보내는 클러스터 외부의 컴퓨팅 디바이스들은, 피어-투-피어 네트워크를 지원하는 콘텐트 전송 네트워크(CDN) 컴퓨팅 디바이스들을 포함할 수 있거나, 또는 더 일반적으로는, 피어-투-피어 네트워크를 지원하는 디지털 콘텐트 스토어(예컨대, 도 1의 132)를 관리하는 컴퓨팅 디바이스들을 포함할 수 있다. 예시로서, 도 8을 참조로 기술한 스텝들이 코디네이터(예컨대, 도 1의 142)에 의해 수행되는 경우에, 코디네이터는 스텝 802와 연관된 그룹화를 수행할 수 있고; 스텝 804에서 코디네이터는 클러스터 내의 컴퓨팅 디바이스들이 상이한 디지털 콘텐트 유닛들에 대한 다운로드 요청들을 클러스터 외부의 컴퓨팅 디바이스들에 보내라고 지시(또는 권고)할 수 있다.
간략화를 위해, 클러스터 내에는 100개의 컴퓨팅 디바이스가 존재하고, 클러스터 내의 컴퓨팅 디바이스들 각각은 100개의 상이한 디지털 콘텐트 유닛을 취득하는 것을 필요로 하거나 요망한다고 가정한다. 컴퓨팅 디바이스들 각각은 100개의 디지털 콘텐트 유닛을 각각 클러스터 외부의 시트 컴퓨팅 디바이스들로부터, 또는 CDN으로부터 직접 개별적으로 취득하려 할 수 있다. 그러나, 이는 매우 비효율적이며 잠재적으로 비용부담이 되게 된다. 그에 반해서, 어떤 실시예들에 따르면, 클러스터 내의 100개의 컴퓨팅 디바이스들 각각은 100개의 상이한 디지털 콘텐트 유닛들 중 서로 다른 유닛을 취득할 수 있고, 이는 클러스터가 100개의 디지털 콘텐트 유닛을 모두 총괄해서 취득하게 만든다.
스텝 806에서, 동일 클러스터 내의 컴퓨팅 디바이스들 각각이 상이한 디지털 콘텐트 유닛들을 모두 취득하도록, 동일 클러스터 내의 컴퓨팅 디바이스들 사이에서의 상이한 디지털 콘텐트 유닛들의 분배가 수행되거나 권고된다. 계속해서 상기 예시에 의하면, 클러스터 내의 100개의 컴퓨팅 디바이스는 각각 그것이 다운로드한 1개의 디지털 콘텐트 유닛에 대한 시드(클러스터 내의 다른 컴퓨팅 디바이스들에 대하여)로서 작용할 수 있다. 클러스터 내의 개개의 컴퓨팅 디바이스들이 클러스터 내의 다른 컴퓨팅 디바이스들로부터 더 많은 디지털 콘텐트 유닛들을 취득하기 때문에, 이들은 점점 더 많은 디지털 콘텐트 유닛들에 대한 시드로서 작용할 수 있다.
스텝 804 및 스텝 806은 컴퓨팅 디바이스들로 이루어진 클러스터들 각각에 대하여 독립적으로 수행될 수 있다. 다시 말해, 스텝 802에서 컴퓨팅 디바이스들이 20개의 클러스터로 그룹화되었을 경우에는, 스텝 804 및 스텝 806은 20개의 클러스터 각각에 대하여 수행될 수 있다.
이제, 도 9는 단지 도 8의 흐름도를 참조로 기술되는 실시예들의 예시를 나타내는 데 사용될 것이다. 간략화를 위해, 3개의 컴퓨팅 디바이스(1121, 1122 및 1123)를 포함하는 클러스터가 각각 동일한 3개의 디지털 콘텐츠 유닛(1341, 1342 및 1343)의 다운로드를 필요로 한다고 가정한다. 3개의 컴퓨팅 디바이스(112)들 각각은 3개의 디지털 콘텐트 아이템 각각을 개별적으로 다운로드할 수 있다. 대안적으로, 본원에 기술된 실시예들을 이용하면, 컴퓨팅 디바이스(1121)는 디지털 콘텐트 아이템(1341)을 다운로드할 수 있고, 컴퓨팅 디바이스(1122)는 디지털 콘텐트 아이템(1342)을 다운로드할 수 있고, 컴퓨팅 디바이스(1123)는 디지털 콘텐트 아이템(1343)을 다운로드할 수 있고, 그 결과로서 컴퓨팅 디바이스들로 이루어진 클러스터는 모두 3개의 디지털 콘텐트 아이템(134)을 총괄해서 갖게 된다. 3개의 컴퓨팅 디바이스(112)는 CDN에 의해 지원될 수 있거나, 또는 지원되지 않을 수 있는 디지털 콘텐트 스토어(예컨대, 132)로부터 디지털 콘텐트 아이템(134)들을 다운로드할 수 있다. 컴퓨팅 디바이스들이 디지털 콘텐트 아이템들을, 또는 적어도 그 일부를, 디지털 콘텐트 스토어(132)로부터 다운로드하는 것이 아니라, 그들의 클러스터의 외부의 다른 피어 컴퓨팅 디바이스(112)들로부터 다운로드하는 것도 역시 실시예의 범위 내이다.
컴퓨팅 디바이스(1121)는 디지털 콘텐트 아이템(1342)을 컴퓨팅 디바이스(1122)로부터 다운로드할 수 있고, 디지털 콘텐트 아이템(1343)을 컴퓨팅 디바이스(1123)로부터 다운로드할 수 있다. 마찬가지로, 컴퓨팅 디바이스(1122)는 디지털 콘텐트 아이템(1341 및 1343)을 제각기 컴퓨팅 디바이스(1121 및 1123)로부터 다운로드할 수 있고, 컴퓨팅 디바이스(1123)는 디지털 콘텐트 아이템(1341 및 1342)을 제각기 컴퓨팅 디바이스(1121 및 1122)로부터 다운로드할 수 있다.
본원에 기술한 다양한 실시예들은 조합될 수 있다. 예컨대, 스텝 804 및/또는 스텝 806에서 디지털 콘텐트 유닛들의 희소성에 의존하여 디지털 콘텐트 유닛들의 분배에 우선순위가 정해져서, 희소성 레벨이 더욱 높은 디지털 콘텐트 유닛들일수록 클러스터에 의해 (클러스터 외부의 컴퓨팅 디바이스들로부터) 더욱 빠르게 취득되거나, 및/또는 클러스터 내의 컴퓨팅 디바이스들에 다량 분배되도록, 도 6 및 도 8을 참조로 기술한 실시예들이 조합될 수 있다. 다른 예시로서, 스텝 408에서 일 그룹 내의 디지털 콘텐트 유닛들의 희소성에 의존하여 다운로드 요청을 보내는 것을 수행하거나 또는 권고하는 것에 우선순위가 정해져서, 희소성 레벨이 더욱 높은 디지털 콘텐트 유닛들일수록 그 그룹에 의해 (다른 그룹 내의 컴퓨팅 디바이스들로부터) 더욱 빠르게 취득되도록, 도 4 및 도 8을 참조로 기술된 실시예들이 조합될 수 있다. 또 다른 예시로서, 지정된 레벨을 넘는 희소성을 갖는 디지털 콘텐트의 희소성을 저감시키기 위해, 스텝 202 및 스텝 204에서 다른 컴퓨팅 디바이스들에 관한 정보에의 액세스를 위해 갖고 있거나 또는 취득하는 과정에 있는 특정 디지털 콘텐트가 희소성을 나타내는 정보에 의존하여 (스텝 202 및 스텝 204에 앞서) 식별되도록, 도 2 및 도 8의 실시예들이 조합될 수 있다. 다른 예시로서, 제 1 그룹에 맵핑된 특정 컴퓨팅 디바이스에 대하여 양호한 시드 컴퓨팅 디바이스들을 포함할 것 같은 제 2 그룹을 그룹간 정보에 기초하여 식별하기 위해 처음에 스텝 402 내지 스텝 406이 수행되고 나서, 스텝 202 및 스텝 204에서 액세스된 정보가 스텝 406에서 식별된 제 2 그룹에 맵핑된 다른 컴퓨팅 디바이스들에 대응할 수 있도록, 도 2 및 도 4의 실시예들이 조합될 수 있다. 상술한 실시예들의 다른 조합들도 역시 실시예들의 범위 내이다.
예시적인 컴퓨팅 디바이스(Exemplary Computing Device)
상술한 바와 같이, 하나 이상의 컴퓨팅 디바이스(112)는 비디오 게임 콘솔일 수 있지만, 이것에 한정되는 것은 아니다. 이제, 도 10은 예시적인 비디오 게임 및 미디어 콘솔을 기술하는데 이용될 것이거나, 또는 더 일반적으로는 게임 및 미디어 콘솔을 포함하는 예시적인 게이밍 및 미디어 시스템(1000)을 기술하는데 이용될 것이다. 도 10의 하기의 논의는 본원에 제시된 개념들을 구현할 수 있게 하는 적절한 컴퓨팅 디바이스의 간략한, 일반적인 기재를 제공하려는 것이다. 도 10의 시스템은 단지 예시일 뿐임을 이해한다. 추가적인 예시들로서, 본원에 기술된 실시예들은 클라이언트 컴퓨팅 디바이스에 상주하면서 그 디바이스에 의해 실행되는 브라우저 애플리케이션 또는 소프트웨어 애플리케이션을 통해, 다양한 클라이언트 컴퓨팅 디바이스들을 이용해서 구현될 수 있다. 도 10에 도시된 바와 같이, 게이밍 및 미디어 시스템(1000)은 게임 및 미디어 콘솔(이하, "콘솔"이라 함)(1002)을 포함한다. 일반적으로, 콘솔(1002)은 클라이언트 컴퓨팅 디바이스의 일 유형이다. 콘솔(1002)은, 컨트롤러들(10041 및 10042)로 나타내진 바와 같은 하나 이상의 무선 컨트롤러를 수용하도록 구성된다. 콘솔(1002)은 내부 하드 디스크 드라이브(도시되지 않음)와, 광학 스토리지 디스크(1008)로 나타내진 바와 같은 다양한 형태의 휴대용 스토리지 미디어를 지원하는 휴대용 미디어 드라이브(1006)를 갖추고 있다. 적절한 휴대용 스토리지 미디어로서는, DVD, CD-ROM, 게임 디스크 등을 예로 들 수 있다. 콘솔(1002)은 외장형 플래시형 메모리 유닛(1040)을 수용하기 위한 2개의 메모리 유닛 카드 리셉터클(10251 및 10252)을 또한 포함한다. 콘솔(1002)에 있는 명령 버튼(1035)은 무선 주변장치 지원을 활성화 및 비활성화한다.
도 10에 묘사된 바와 같이, 콘솔(1002)은 하나 이상의 디바이스들과의 무선 통신을 위한 광학 포트(1030) 및 추가적인 컨트롤러들 또는 다른 주변장치들에 대한 유선 접속을 지원하기 위한 2개의 USB(Universal Serial Bus) 포트(10101 및 10102)를 또한 포함한다. 몇몇 구현에 있어서는, 추가적인 포트들의 개수 및 배치구조가 수정될 수 있다. 전원 버튼(1012) 및 배출 버튼(1014)도 게임 콘솔(1002)의 정면에 위치된다. 전원 버튼(1012)은 게임 콘솔에 전원이 인가하도록 선택되고, 다른 특징부들 및 제어부들에 대한 액세스를 제공할 수도 있으며, 배출 버튼(1014)은 휴대용 미디어 드라이브(1006)를 개폐해서 스토리지 디스크(1008)를 삽입 및 취출할 수 있게 한다.
콘솔(1002)은 A/V 인터페이스 케이블(1020)들을 통해 텔레비전 또는 다른 디스플레이(모니터(1050) 등)에 접속된다. 일 구현에 있어서, 콘솔(1002)은 A/V 케이블(1020)(예컨대, 고화질 모니터(1050) 또는 다른 디스플레이 디바이스상의 고화질 멀티미디어 인터페이스("HDMI") 포트에 결합하기에 적합한 A/V 케이블)을 이용해서 콘텐트-보안 디지털 통신을 행하도록 구성된 전용 A/V 포트(도시되지 않음)를 갖추고 있다. 전원 케이블(1022)은 게임 콘솔에 전원을 공급한다. 콘솔(1002)은 인터넷과 같은 네트워크에의 액세스가 가능하도록 케이블 또는 모뎀 커넥터(1024)로 나타내진 바와 같은 광대역 성능들로 더 구성될 수 있다. 광대역 성능들은 와이파이(Wi-Fi) 네트워크와 같은 광대역 네트워크를 통해 무선으로 제공될 수도 있다.
각각의 컨트롤러(1004)는 유선 또는 무선 인터페이스를 통해 콘솔(1002)에 결합된다. 도시된 구현에 있어서, 컨트롤러(1004)들은 USB-호환성이 있으며, 무선 또는 USB 포트(1010)를 통해 콘솔(1002)에 결합된다. 콘솔(1002)은 매우 다양한 유저 상호작용 메커니즘들 중 어느 하나를 갖출 수 있다. 도 10에 도시된 예시에 있어서, 각각의 컨트롤러(1004)는 2개의 엄지스틱(thumbsticks)(10321 및 10322), D-패드(1034), 버튼(1036)들, 및 2개의 트리거(1038)를 갖추고 있다. 이들 컨트롤러는 단지 대표예일 뿐이며, 도 10에 도시된 것들에 대하여 기지의 게이밍 컨트롤러들이 대체 또는 추가될 수 있다.
일 구현에 있어서, 추가적인 및 휴대용의 스토리지를 제공하기 위해 컨트롤러(1004)에 메모리 유닛(MU)(1040)이 삽입될 수도 있다. 휴대용 MU들은 다른 콘솔들에서의 플레이 시에 사용하기 위한 게임 파라미터들을 유저들이 저장할 수 있게 한다. 이 구현에 있어서, 각각의 컨트롤러는 2개의 MU(1040)를 수용하도록 구성되어 있지만, 2개 이상 또는 이하의 MU가 채용될 수도 있다.
게이밍 및 미디어 시스템(1000)은 일반적으로, 메모리 매체에 저장된 게임들을 플레이하도록 구성될 뿐만 아니라, 전자 공급원 및 하드 미디어 공급원으로부터 게임들을 다운로드해서 플레이하는 한편, 사전에 기록된 음악 및 비디오들을 재생하도록 구성된다. 상이한 스토리지 제공자들에 의해, 하드 디스크 드라이브로부터, 광학 디스크 미디어(예컨대, 1008)로부터, 온라인 소스로부터, 또는 MU(1040)로부터 타이틀들이 플레이될 수 있다. 게이밍 및 미디어 시스템(1000)이 플레이할 수 있는 미디어 유형들의 샘플들은 하기의 것들을 포함한다:
· CD 및 DVD 디스크로부터, 하드 디스크 드라이브로부터, 또는 온라인 소스로부터 플레이된 게임 타이틀들.
· 휴대용 미디어 드라이브(1006) 내의 CD로부터, 하드 디스크 드라이브상의 파일(예컨대, WMA(Windows Media Audio) 포맷의 음악)로부터, 또는 온라인 스트리밍 소스들로부터 플레이된 디지털 음악.
· 휴대용 미디어 드라이브(1006) 내의 DVD 디스크로부터, 하드 디스크 드라이브상의 파일(예컨대, 능동 스트리밍 포맷(Active Streaming Format))로부터, 또는 온라인 스트리밍 소스들로부터 플레이된 디지털 오디오/비디오.
가동 중에, 콘솔(1002)은 컨트롤러(1004)들로부터의 입력을 수신해서 정보를 디스플레이(1050)상에 표시하도록 구성된다. 예컨대, 콘솔(1002)은 유저가 컨트롤러(1004)를 이용해서 게임을 선택하고 후술하는 바와 같이 상태 해결가능성(state solvability) 정보를 표시하는 것을 허용하도록 디스플레이(1050)상에 유저 인터페이스를 표시할 수 있다.
도 11은 게이밍 및 미디어 시스템(1000)의 기능 블록도이며, 게이밍 및 미디어 시스템(1000)의 기능 구성요소들을 더 상세하게 도시한다. 콘솔(1002)은 중앙 처리 유닛(CPU)(1100)과, 플래시 ROM(Read Only Memory)(1104), RAM(Random Access Memory)(1106), 하드 디스크 드라이브(1108), 및 휴대용 미디어 드라이브(1006)를 포함하는 다양한 유형의 메모리에 대한 프로세서 액세스를 가능하게 하는 메모리 컨트롤러(1102)를 구비한다. 일 구현에 있어서, CPU(1100)는 데이터를 임시 저장해서 하드 드라이브(1108)에 대하여 이루어지는 메모리 액세스 사이클 수를 줄임으로써 처리 속도 및 스루풋을 향상시키기 위해 1차 캐시(1110) 및 2차 캐시(1112)를 포함한다.
CPU(1100), 메모리 컨트롤러(1102), 및 다양한 메모리 디바이스들은 하나 이상의 버스(도시되지 않음)를 통해 상호접속된다. 이 구현에서 이용되는 버스의 상세들은 본원에서 논의되는 주요 관심사를 이해하는 데는 특별히 관련이 없다. 그러나, 이와 같은 버스가 여러 가지의 버스 아키텍처들 중 어느 하나를 이용하는 직렬 및 병렬 버스, 메모리 버스, 주변장치 버스, 및 프로세서 또는 로컬 버스 중 하나 이상을 포함할 수 있다는 점이 이해될 것이다. 예시로서, 이와 같은 아키텍처들은 산업기술 표준 아케텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 확장 ISA(EISA) 버스, 비디오 전자 표준 위원회(VESA) 로컬 버스 및 메자닌(Mezzanine) 버스로서도 알려져 있는 주변장치 구성요소 상호접속(PCI) 버스를 포함할 수 있다.
일 구현에 있어서, CPU(1100), 메모리 컨트롤러(1102), ROM(1104), 및 RAM(1106)은 공통 모듈(1114) 상으로 통합된다. 이 구현에 있어서, ROM(1104)은 PCI 버스 및 ROM 버스(어느 것도 도시되어 있지 않음)를 통해 메모리 컨트롤러(1102)에 접속되는 플래시 ROM으로서 구성된다. RAM(1106)은 별도의 버스들(도시되지 않음)을 통해 메모리 컨트롤러(1102)에 의해 독립적으로 제어되는 다수의 더블 데이터 레이트 동기식 다이나믹 RAM(DDR SDRAM) 모듈로서 구성된다. 하드 디스크 드라이브(1108) 및 휴대용 미디어 드라이브(1006)는 PCI 버스 및 AT 어태치먼트(ATA) 버스(1116)를 통해 메모리 컨트롤러(1102)에 접속되는 것으로 도시된다. 그러나, 다른 구현들에 있어서는, 상이한 유형들의 전용 데이터 버스 구조들이 대안으로서 적용될 수도 있다.
3차원 그래픽 처리 유닛(1120) 및 비디오 인코더(1122)는 고속 및 고해상도(예컨대, 고화질) 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 그래픽 처리 유닛(1120)으로부터 디지털 비디오 버스(도시되지 않음)를 통해 비디오 인코더(1122)에 반송된다. 오디오 처리 유닛(1124) 및 오디오 코덱(코더/디코더)(1126)은 다양한 디지털 오디오 포맷들의 다채널 오디오 처리를 위한 상응하는 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크(도시되지 않음)를 통해 오디오 처리 유닛(1124)과 오디오 코덱(1126) 사이에서 반송된다. 비디오 및 오디오 처리 파이프라인은 텔레비전 또는 다른 디스플레이에의 송신을 위해 데이터를 A/V(오디오/비디오) 포트(1128)에 출력한다. 당해 구현에 있어서, 비디오 및 오디오 처리 구성요소들(1120-1128)은 모듈(1114)에 탑재된다.
도 11은 USB 호스트 컨트롤러(1130) 및 네트워크 인터페이스(1132)를 포함하는 모듈(1114)을 도시한다. USB 호스트 컨트롤러(1130)는 버스(예컨대, PCI 버스)를 통해 CPU(1100) 및 메모리 컨트롤러(1102)와 통신하는 것으로 도시되고, 주변장치 컨트롤러들(10041-10044)의 호스트로서 기능한다. 네트워크 인터페이스(1132)는 네트워크(예컨대, 인터넷, 홈 네트워크 등)에 대한 액세스를 제공하고, 이더넷 카드, 모뎀, 무선 액세스 카드, 블루투스 모듈, 케이블 모뎀 등을 포함하는 광범위한 다양한 유선 또는 무선 인터페이스 구성요소들 중 어느 하나일 수 있다.
도 11에 묘사된 구현에 있어서, 콘솔(1002)은 4개의 컨트롤러(10041-10044)를 지지하기 위한 컨트롤러 지지 서브어셈블리(1140)를 포함한다. 컨트롤러 지지 서브어셈블리(1140)는, 예컨대 미디어 및 게임 컨트롤러와 같은 외부 컨트롤 디바이스로 유선 및 무선 조작을 지원하기 위해 임의의 하드웨어 및 소프트웨어 구성요소들을 포함한다. 프런트 패널 I/O 서브어셈블리(1142)는 전원 버튼(1012), 배출 버튼(1014) 뿐만 아니라 콘솔(1002)의 외부면에 노출된 임의의 LED(발광 다이오드) 또는 다른 인디케이터의 다양한 기능을 지원한다. 서브어셈블리들(1140 및 1142)은 하나 이상의 케이블 어셈블리(1144)를 통해 모듈(1114)과 통신하고 있다. 다른 구현들에 있어서는, 콘솔(1002)이 추가의 컨트롤러 서브어셈블리들을 포함할 수 있다. 당해 구현은, 모듈(1114)과 통신할 수 있는 송신 및 수신 신호로 구성되는 광학 I/O 인터페이스(1135)를 또한 도시한다.
MU들(10401 및 10402)은 제각기 MU 포트들("A"(10301) 및 "B"(10302))에 접속될 수 있는 것으로 나타내진다. 추가의 MU들(예컨대, MU들(10403-10406))은 컨트롤러들(10041 및 10043)에 접속될 수 있는 것으로, 즉 각각의 컨트롤러에 대하여 2개의 MU로 나타내져 있다. 컨트롤러들(10042 및 10044)은 MU들을 수용하도록 구성될 수도 있다(도시되지 않음). 각각의 MU(1040)는 게임들, 게임 파라미터들, 및 그 밖의 데이터가 저장될 수 있는 추가의 스토리지를 제공한다. 몇몇 구현들에 있어서, 그 밖의 데이터는 디지털 게임 구성요소, 실행 가능한 게이밍 애플리케이션, 게이밍 애플리케이션을 확장하기 위한 명령어 세트, 및 미디어 파일 중 어느 하나를 포함할 수 있다. 콘솔(1002)에 또는 컨트롤러에의 삽입시에, MU(1040)는 메모리 컨트롤러(1102)에 의해 액세스될 수 있다.
시스템 전원 모듈(1150)은 게이밍 시스템(1000)의 구성요소들에 전원을 제공한다. 팬(1152)은 콘솔(1002) 내부의 회로를 냉각한다.
기계 명령어들을 포함하는 애플리케이션(1160)은 하드 디스크 드라이브(1108)에 저장된다. 콘솔(1002)이 켜지면, 애플리케이션(1160)의 다양한 부분들은 CPU(1100)상에서의 실행을 위해 RAM(1106)에, 및/또는 캐시들(1110 및 1112)에 로딩되고, 여기서 애플리케이션(1160)은 하나의 상기 예시이다. 다양한 애플리케이션들이 CPU(1100)상에서의 실행을 위해 하드 디스크 드라이브(1108)에 저장될 수 있다.
콘솔(1002)은 하나 이상의 다른 컴퓨팅 디바이스들(예컨대, 다른 콘솔들)과 콘솔(1002)을 통신 가능하게 결합되도록 구성된 통신 서브시스템(1170)도 포함하는 것으로 도시되어 있다. 통신 서브시스템(1170)은 하나 이상의 상이한 통신 프로토콜들과 호환되는 유선 및/또는 무선 통신 디바이스들을 포함할 수 있다. 비제한적인 예시들로서, 통신 서브시스템(1170)은 무선 전화 네트워크를 통해, 또는 유선 또는 무선 로컬-에어리어 또는 와이어 에어리어 네트워크를 통해 통신하도록 구성될 수 있다. 몇몇 실시예들에 있어서, 통신 서브시스템(1170)은 콘솔(1002)이 인터넷과 같은 네트워크를 통해 다른 디바이스들에 대하여 메시지들을 송신 및/또는 수신하게 할 수 있다. 특정 실시예들에 있어서, 통신 서브시스템(1170)은 디지털 콘텐트의 다운로드 요청들을 보내는 한편, 다운로딩 및 업로딩을 수행하기 위해, 코디네이터 및/또는 다른 컴퓨팅 디바이스들과 통신하는 데 사용될 수 있다. 보다 일반적으로, 통신 서브시스템(1170)은 콘솔(1002)이 피어-투-피어 통신에 참가하는 것을 가능하게 할 수 있다.
게이밍 및 미디어 시스템(1000)은 단순히 시스템을 모니터(1050)(도 10 참조), 텔레비전, 비디오 프로젝터, 또는 다른 디스플레이 디바이스에 접속하는 것에 의해 독립형 시스템으로서 작동될 수 있다. 이러한 독립형 모드에 있어서는, 게이밍 및 미디어 시스템(1000)이 하나 이상의 플레이어에게 게임들을 플레이할 수 있게 하거나, 또는 예컨대 영화를 보거나 또는 음악을 듣는 것에 의해 디지털 미디어를 즐기게 할 수 있다. 그러나, 네트워크 인터페이스(1132)를 통해 이용 가능해진 광대역 접속의 통합으로, 게이밍 및 미디어 시스템(1000)은 도 1에 관하여 상술한 바와 같이, 피어-투-피어 네트워크와 같은 대형 네트워크 게이밍 커뮤니티의 참가자로서 더 작동될 수 있다.
상술한 게이밍 및 미디어 콘솔(1002)은 도 1 및 여러 다른 도면들을 참조로 상술한 컴퓨팅 디바이스(112)들의 일례일 뿐이다. 상술한 바와 같이, 본원에서 기술한 실시예들을 이용할 수 있는 다양한 다른 유형의 컴퓨팅 디바이스들이 존재한다.
"모듈" 및 "프로그램"이라는 용어들은 특정한 기능을 수행하도록 구현된 컴퓨팅 디바이스 또는 시스템의 양태를 기술하는 데 사용될 수 있다. 상이한 모듈들 및 프로그램들이 동일 애플리케이션(application), 서비스(service), 코드 블록(code block), 오브젝트(object), 라이브러리(library), 루틴(routine), API, 기능(function) 등으로부터 예시될 수 있음을 이해할 것이다. 마찬가지로, 동일 모듈 및/또는 프로그램은 상이한 애플리케이션들, 서비스들, 코드 블록들, 오브젝트들, 루틴들, API들, 기능들 등에 의해 예시될 수 있다. "모듈" 및 "프로그램"이라는 용어들은 실행가능 파일들, 데이터 파일들, 라이브러리들, 드라이버들, 스크립트들, 데이터베이스 레코드들 등을 개별로 또는 그룹으로 포함할 수 있다.
본원에서 사용된 바와 같은 "서비스"는 다수의 유저 세션들에 대하여 실행 가능한 애플리케이션 프로그램이라는 점을 이해할 것이다. 서비스는 하나 이상의 시스템 구성요소들, 프로그램들, 및/또는 다른 서비스들에 이용 가능할 수 있다. 몇몇 구현들에 있어서, 서비스는 하나 이상의 서버-컴퓨팅 디바이스에서 가동할 수 있다.
본원에 기술된 구성들 및/또는 접근법들은 전적으로 예시이며, 이들 특정 실시예들 또는 예시들은 다수의 변경들이 가능하기 때문에 제한하려는 것으로 여겨지지 않음을 이해할 것이다. 본원에 기술된 특정 루틴들 또는 방법들은 임의의 수의 처리 전략들을 하나 이상 표현할 수 있다. 따라서, 도시 및/또는 설명된 다양한 행위들은 도시 및/또는 설명된 순서로, 다른 순서들로, 병렬로, 또는 생략하여 수행될 수 있다. 마찬가지로, 상술한 프로세스들의 순서는 변경될 수 있다. 예컨대, 본 개시물의 요지는 다양한 루틴들 및 방법들, 시스템들 및 구성들, 및 본원에 개시된 다른 특징들, 기능들, 행위들, 및/또는 특성들의 모든 조합들 및 하위조합들 뿐만 아니라 그 임의의 및 모든 등가물들을 또한 포함한다.
전술한 본 시스템의 상세한 설명은 도시 및 설명을 위해 제시되어 있다. 본 시스템을 개시된 정밀한 형태에만 제한하거나 한정하려는 것은 아니다. 상기 교시를 고려하여 다양한 수정 및 변경이 가능하다. 상술한 실시예들은, 본 시스템 및 그 응용의 원리들을 가장 잘 설명해서, 고려된 특정 용도에 적합해지게 당업자가 본 시스템을 다양한 실시예들에서 및 다양한 변형예들로 가장 잘 이용할 수 있게 하기 위해 선택되었다. 본 시스템의 범위는 여기에 첨부된 청구항들에 의해 규정되어야 한다.
Claims (26)
- 피어-투-피어 네트워크에서 디지털 콘텐츠의 분배를 조정하는 방법으로서, 상기 방법은 디지털 콘텐츠의 분배를 조정하는 디바이스에 의해 수행되고,
피어-투-피어 네트워크의 복수의 컴퓨팅 디바이스 각각에 대응하는 위치 정보에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 복수의 상이한 그룹 중 하나에 매핑하는 단계와,
상기 복수의 상이한 그룹에 대응하는 그룹간 정보에 액세스하는 단계 - 상기 그룹간 정보는 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보 중 적어도 하나와 연관된 이력 정보를 포함함 - 와,
상기 그룹간 정보에 기초해서, 상기 복수의 상이한 그룹 중 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송할 제 1 그룹을 식별하는 단계 - 상기 제 1 그룹은 상기 복수의 상이한 그룹 중 다른 그룹의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스의 수보다 많은 제 1 수의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스를 포함함 - 와,
상기 디지털 콘텐츠에 대한 다운로드 요청이 상기 복수의 상이한 그룹 중 제 2 그룹에 매핑된 상기 복수의 컴퓨팅 디바이스의 제 2 컴퓨팅 디바이스로부터 상기 제 1 그룹에 매핑된 제 1 컴퓨팅 디바이스로 전송되게 하는 명령어를 전송하는 단계
를 포함하는 방법.
- 제 1 항에 있어서,
상기 식별하는 단계는, 가장 빠른 그룹간 데이터 전송 속도 또는 가장 높은 그룹간 가용성 중 적어도 하나를 갖는 것으로 상기 제 1 그룹을 식별하는 단계를 포함하는
방법.
- 제 1 항에 있어서,
상기 그룹간 정보는 상기 그룹간 데이터 전송 속도 정보를 포함하고,
상기 제 1 그룹은, 상기 그룹간 데이터 전송 속도 정보에 기초해서 상기 복수의 상이한 그룹 중 가장 빠른 그룹간 데이터 전송 속도를 갖는 그룹으로서 식별되는
방법.
- 제 1 항에 있어서,
상기 그룹간 정보는 상기 그룹간 가용성 정보를 포함하고,
상기 제 1 그룹은, 상기 그룹간 가용성 정보에 기초해서 상기 복수의 상이한 그룹 중 가장 높은 그룹간 가용성을 갖는 그룹으로서 식별되는
방법.
- 제 1 항에 있어서,
상기 위치 정보는 시간대를 포함하고,
상기 매핑은, 상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 시간대에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는 것을 포함하는
방법.
- 제 1 항에 있어서,
상기 위치 정보는 지리구(geographic region)를 포함하고,
상기 매핑은, 상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 지리구에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는 것을 포함하는
방법.
- 제 1 항에 있어서,
상기 액세스되는 그룹간 정보는, 복수의 시간 범위(a plurality of time of day ranges) 각각에 액세스되고,
상기 식별하는 것은 또한 상기 제 2 컴퓨팅 디바이스가 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송하는 시간에 기초하는
방법.
- 제 1 항에 있어서,
상기 디지털 콘텐츠는 복수의 디지털 콘텐츠 유닛을 포함하고,
상기 방법은,
상기 복수의 상이한 디지털 콘텐츠 유닛과 연관된 희소성 값을 나타내는 정보에 액세스하는 단계와,
상기 희소성 값이 지정된 레벨을 초과하면 상기 희소성 값을 줄이기 위해 상기 다운로드 요청에 대한 상기 명령어의 전송의 우선순위를 정하는 단계
를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 다운로드 요청을 상기 제 2 컴퓨팅 디바이스가 상기 제 1 컴퓨팅 디바이스를 거치지 않고 직접 전송하는 것으로 결정되는 경우, 상기 다운로드 요청에 응답해서, 상기 제 2 컴퓨팅 디바이스에서 상기 디지털 콘텐츠를 다운로드하는 단계
를 더 포함하는 방법.
- 제 1 항에 있어서,
상기 그룹간 정보는, 상기 그룹간 데이터 전송 속도 정보 또는 상기 그룹간 가용성 정보 중 적어도 하나와 연관된 실시간 그룹간 정보를 더 포함하는
방법.
- 제 1 항에 있어서,
상기 이력 정보는, 상이한 시간 범위 동안의 상기 제 2 컴퓨팅 디바이스 및 상기 복수의 상이한 그룹의 가용성을 나타내는 상기 그룹간 가용성 정보에 대한 정보를 포함하고,
상기 복수의 상이한 그룹 중 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송할 제 1 그룹을 식별하는 단계는, 상기 제 2 컴퓨팅 디바이스에 비교해서 상기 상이한 시간 범위 중 개개의 시간 범위에 있는 상기 제 1 그룹을 식별하는 단계를 포함하는
방법.
- 프로세서 판독 가능 코드를 포함하는 피어-투-피어 네트워크의 하나 이상의 스토리지 디바이스 및 상기 하나 이상의 스토리지 디바이스와 통신해서 상기 프로세서 판독 가능 코드를 실행하는 하나 이상의 프로세서를 포함하는, 피어-투-피어 네트워크에서 디지털 콘텐츠의 분배를 조정하는 디바이스로서,
상기 프로세서 판독 가능 코드는,
복수의 컴퓨팅 디바이스 각각에 대응하는 위치 정보에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 복수의 상이한 그룹 중 하나에 매핑하고,
상기 복수의 상이한 그룹에 대응하는 그룹간 정보에 액세스하며 - 상기 그룹간 정보는 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보 중 적어도 하나와 연관된 이력 정보를 포함함 - ,
상기 그룹간 정보에 기초해서, 상기 복수의 상이한 그룹 중 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송할 제 1 그룹을 식별하고 - 상기 제 1 그룹은 상기 복수의 상이한 그룹 중 다른 그룹의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스의 수보다 많은 제 1 수의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스를 포함함 - ,
상기 디지털 콘텐츠에 대한 다운로드 요청이 상기 복수의 상이한 그룹 중 제 2 그룹에 매핑된 상기 복수의 컴퓨팅 디바이스의 제 2 컴퓨팅 디바이스로부터 상기 제 1 그룹에 매핑된 제 1 컴퓨팅 디바이스로 전송되게 하는 명령어를 전송하는
디바이스.
- 제12항에 있어서,
상기 위치 정보는 시간대를 포함하고,
상기 프로세서 판독 가능 코드는 또한,
상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 시간대에 더 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는
디바이스.
- 제 12 항에 있어서,
상기 위치 정보는 지리구를 포함하고,
상기 프로세서 판독 가능 코드는 또한,
상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 지리구에 더 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는
디바이스.
- 제 12 항에 있어서,
상기 액세스되는 그룹간 정보는, 복수의 시간 범위 각각에 액세스되고,
상기 프로세서 판독 가능 코드는 또한,
상기 제 2 컴퓨팅 디바이스가 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송하는 시간에 더 기초해서 상기 제 1 그룹을 식별하는
디바이스.
- 제 12 항에 있어서,
상기 디지털 콘텐츠는 복수의 디지털 콘텐츠 유닛을 포함하고,
상기 프로세서 판독 가능 코드는 또한,
상기 복수의 상이한 디지털 콘텐츠 유닛과 연관된 희소성 값을 나타내는 정보에 액세스하고
상기 희소성 값이 지정된 레벨을 초과하면 상기 희소성 값을 줄이기 위해 상기 다운로드 요청에 대한 상기 명령어의 전송의 우선순위를 정하는
디바이스.
- 피어-투-피어 네트워크에서 디지털 콘텐츠의 분배를 조정하는 컴퓨터 실행 코드를 저장하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 컴퓨터 실행 코드는,
복수의 컴퓨팅 디바이스 각각에 대응하는 위치 정보에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 복수의 상이한 그룹 중 하나에 매핑하는 코드와,
상기 복수의 상이한 그룹에 대응하는 그룹간 정보에 액세스하는 코드 - 상기 그룹간 정보는 그룹간 데이터 전송 속도 정보 및 그룹간 가용성 정보 중 적어도 하나와 연관된 이력 정보를 포함함 - 와,
상기 그룹간 정보에 기초해서, 상기 복수의 상이한 그룹 중 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송할 제 1 그룹을 식별하는 코드 - 상기 제 1 그룹은 상기 복수의 상이한 그룹 중 다른 그룹의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스의 수보다 많은 제 1 수의 아이들 상태이면서 이용 가능한 컴퓨터 디바이스를 포함함 - 와,
상기 디지털 콘텐츠에 대한 다운로드 요청이 상기 복수의 상이한 그룹 중 제 2 그룹에 매핑된 상기 복수의 컴퓨팅 디바이스의 제 2 컴퓨팅 디바이스로부터 상기 제 1 그룹에 매핑된 제 1 컴퓨팅 디바이스로 전송되게 하는 명령어를 전송하는 코드
를 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 컴퓨터 실행 코드는,
상기 식별하는 단계는, 가장 빠른 그룹간 데이터 전송 속도 또는 가장 높은 그룹간 가용성 중 적어도 하나를 갖는 것으로 상기 제 1 그룹을 식별하는 코드를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 그룹간 정보는 상기 그룹간 데이터 전송 속도 정보를 포함하고,
상기 제 1 그룹은, 상기 그룹간 데이터 전송 속도 정보에 기초해서 상기 복수의 상이한 그룹 중 가장 빠른 그룹간 데이터 전송 속도를 갖는 그룹으로서 식별되는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 그룹간 정보는 상기 그룹간 가용성 정보를 포함하고,
상기 제 1 그룹은, 상기 그룹간 가용성 정보에 기초해서 상기 복수의 상이한 그룹 중 가장 높은 그룹간 가용성을 갖는 그룹으로서 식별되는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 위치 정보는 시간대를 포함하고,
상기 컴퓨터 실행 코드는,
상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 시간대에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는 코드를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 위치 정보는 지리구를 포함하고,
상기 컴퓨터 실행 코드는,
상기 복수의 컴퓨팅 디바이스의 각각의 컴퓨팅 디바이스에 대응하는 상기 지리구에 기초해서, 상기 복수의 컴퓨팅 디바이스 각각을 상기 복수의 상이한 그룹 중 하나에 매핑하는 코드를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 액세스되는 그룹간 정보는, 복수의 시간 범위 각각에 액세스되고,
상기 제 1 그룹은, 상기 제 2 컴퓨팅 디바이스가 상기 디지털 콘텐츠에 대한 다운로드 요청을 전송하는 시간에 기초해서 식별되는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 컴퓨터 실행 코드는,
상기 다운로드 요청에 응답해서, 상기 제 2 컴퓨팅 디바이스에서 상기 디지털 콘텐츠를 다운로드하는 코드를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 그룹간 정보는, 상기 그룹간 데이터 전송 속도 정보 또는 상기 그룹간 가용성 정보 중 적어도 하나와 연관된 실시간 그룹간 정보를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
- 제 17 항에 있어서,
상기 이력 정보는, 상이한 시간 범위 동안의 상기 제 2 컴퓨팅 디바이스 및 상기 복수의 상이한 그룹의 가용성을 나타내는 상기 그룹간 가용성 정보에 대한 정보를 포함하고,
상기 컴퓨터 실행 코드는,
상기 제 2 컴퓨팅 디바이스에 비교해서 상기 상이한 시간 범위 중 개개의 시간 범위에 있는 상기 제 1 그룹을 식별하는 코드를 더 포함하는
비일시적 컴퓨터 판독 가능 매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/711,152 US9219782B2 (en) | 2012-12-11 | 2012-12-11 | Identifying seed computing devices using estimates in peer-to-peer networks |
US13/711,152 | 2012-12-11 | ||
PCT/US2013/074504 WO2014093559A2 (en) | 2012-12-11 | 2013-12-11 | Improving peer-to-peer performance |
KR1020157015469A KR102162382B1 (ko) | 2012-12-11 | 2013-12-11 | 피어-투-피어 성능의 개선 기법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157015469A Division KR102162382B1 (ko) | 2012-12-11 | 2013-12-11 | 피어-투-피어 성능의 개선 기법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200115676A KR20200115676A (ko) | 2020-10-07 |
KR102297157B1 true KR102297157B1 (ko) | 2021-09-01 |
Family
ID=49887322
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157015469A KR102162382B1 (ko) | 2012-12-11 | 2013-12-11 | 피어-투-피어 성능의 개선 기법 |
KR1020207027845A KR102297157B1 (ko) | 2012-12-11 | 2013-12-11 | 피어-투-피어 성능의 개선 기법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157015469A KR102162382B1 (ko) | 2012-12-11 | 2013-12-11 | 피어-투-피어 성능의 개선 기법 |
Country Status (11)
Country | Link |
---|---|
US (2) | US9219782B2 (ko) |
EP (1) | EP2932687B1 (ko) |
JP (1) | JP6348505B2 (ko) |
KR (2) | KR102162382B1 (ko) |
CN (2) | CN105027533B (ko) |
AU (1) | AU2013359317B2 (ko) |
BR (1) | BR112015011457B1 (ko) |
CA (1) | CA2889589C (ko) |
MX (1) | MX348638B (ko) |
RU (1) | RU2657183C2 (ko) |
WO (1) | WO2014093559A2 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9219782B2 (en) | 2012-12-11 | 2015-12-22 | Microsoft Technology Licensing, Llc | Identifying seed computing devices using estimates in peer-to-peer networks |
US9413846B2 (en) * | 2012-12-14 | 2016-08-09 | Microsoft Technology Licensing, Llc | Content-acquisition source selection and management |
US10391387B2 (en) | 2012-12-14 | 2019-08-27 | Microsoft Technology Licensing, Llc | Presenting digital content item with tiered functionality |
US9716749B2 (en) | 2012-12-14 | 2017-07-25 | Microsoft Technology Licensing, Llc | Centralized management of a P2P network |
CN104581421B (zh) * | 2014-12-30 | 2018-05-22 | 新浪网技术(中国)有限公司 | 一种点对点流媒体下载方法及节点终端装置 |
US9998534B2 (en) * | 2016-08-24 | 2018-06-12 | International Business Machines Corporation | Peer-to-peer seed assurance protocol |
KR101941583B1 (ko) * | 2016-08-26 | 2019-01-23 | 홍익대학교 산학협력단 | P2p 네트워크 기반 피어 관리 방법 및 피어 관리 장치 |
US10587496B2 (en) | 2017-02-10 | 2020-03-10 | Microsoft Technology Licensing, Llc | Localizing traffic using network topology |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
CN108156257B (zh) * | 2018-01-17 | 2021-01-08 | 北京奇艺世纪科技有限公司 | 一种信息推送方法及装置 |
US12066900B2 (en) | 2018-03-15 | 2024-08-20 | Pure Storage, Inc. | Managing disaster recovery to cloud computing environment |
CN109347968B (zh) * | 2018-11-07 | 2021-09-24 | 网宿科技股份有限公司 | 一种下载资源文件的数据块的方法、设备和系统 |
US11102272B2 (en) * | 2019-12-19 | 2021-08-24 | Wangsu Science and Technology Co., Ltd. | Method and device for downloading resource file |
WO2024075860A1 (ko) * | 2022-10-05 | 2024-04-11 | 라쿠텐 심포니 코리아 주식회사 | 동영상 협업 서비스를 운용하기 위한 기술 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240758A1 (en) * | 2008-03-19 | 2009-09-24 | Verizon Services Organization Inc. | Intelligent establishment of peer-to-peer communication |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7720996B2 (en) * | 2001-03-27 | 2010-05-18 | Microsoft Corporation | Internet protocol (IP) address proximity and application to peer provider location |
US7721110B2 (en) * | 2001-04-06 | 2010-05-18 | Mcafee, Inc. | System and method for secure and verified sharing of resources in a peer-to-peer network environment |
US7133368B2 (en) | 2002-02-01 | 2006-11-07 | Microsoft Corporation | Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same |
US7194002B2 (en) | 2002-02-01 | 2007-03-20 | Microsoft Corporation | Peer-to-peer based network performance measurement and analysis system and method for large scale networks |
US7571251B2 (en) * | 2002-05-06 | 2009-08-04 | Sandvine Incorporated Ulc | Path optimizer for peer to peer networks |
US7558875B2 (en) * | 2003-09-15 | 2009-07-07 | Microsoft Corporation | Measurement-based construction of locality-aware overlay networks |
KR20070080331A (ko) * | 2006-02-07 | 2007-08-10 | 주식회사 팬택앤큐리텔 | 무선인터넷 환경에서의 콘텐츠 다운로드 예상 소요시간제공방법 |
EP1821487B1 (en) * | 2006-02-21 | 2010-04-07 | Microsoft Corporation | Topology management in peer-to-peer content distribution clouds |
KR101227121B1 (ko) * | 2006-04-12 | 2013-01-28 | 톰슨 라이센싱 | 피어 투 피어 콘텐츠 배포 네트워크를 이용한 비디오 서비스 지연 다운로딩 |
US8041784B1 (en) * | 2006-06-27 | 2011-10-18 | Qurio Holdings, Inc. | Redundant hybrid P2P content sharing |
CN100527695C (zh) * | 2006-06-30 | 2009-08-12 | 腾讯科技(深圳)有限公司 | 构建半固定p2p网络的方法及其系统 |
GB2440774B (en) * | 2006-08-11 | 2011-07-27 | Cachelogic Ltd | Content Delivery System For Digital Object |
US20100050181A1 (en) | 2006-11-29 | 2010-02-25 | Yongmin Zhang | Method and System of Group-to-Group Computing |
ES2360647T3 (es) * | 2006-12-08 | 2011-06-07 | Deutsche Telekom Ag | Método y sistema para la diseminación del contenido igual a igual. |
KR101105850B1 (ko) * | 2007-02-28 | 2012-01-13 | 삼성전자주식회사 | P2p 네트워킹을 통한 고품질 콘텐츠 제공 시스템 및 방법 |
JP4958611B2 (ja) * | 2007-04-10 | 2012-06-20 | キヤノン株式会社 | 通信装置、ネットワークシステム、通信方法、及びプログラム |
CN101715650B (zh) * | 2007-06-28 | 2012-03-21 | 纽约市哥伦比亚大学信托人 | 机顶盒对等端辅助的视频点播 |
US8606846B2 (en) * | 2007-10-15 | 2013-12-10 | Nbcuniversal Media, Llc | Accelerating peer-to-peer content distribution |
US20090100128A1 (en) | 2007-10-15 | 2009-04-16 | General Electric Company | Accelerating peer-to-peer content distribution |
US20090234967A1 (en) * | 2008-03-17 | 2009-09-17 | Nokia Corporation | Method, system, and apparatus for transferring P2P file distribution tasks between devices |
US20100011060A1 (en) | 2008-07-08 | 2010-01-14 | Solid State Networks, Inc. | Methods and apparatus for distributing content |
US8126985B1 (en) * | 2008-12-31 | 2012-02-28 | Qurio Holdings, Inc. | Prioritizing virtual object downloads in a distributed virtual environment |
US8667549B2 (en) | 2009-04-28 | 2014-03-04 | Microsoft Corporation | Personal video recorder E-mail alerts and status |
US8204791B2 (en) | 2009-07-13 | 2012-06-19 | International Business Machines Corporation | File fragment pricing in a segmented file sharing network |
CN101640699A (zh) * | 2009-08-21 | 2010-02-03 | 深圳创维数字技术股份有限公司 | P2p流媒体系统及其中的流媒体下载方法 |
US9071875B2 (en) * | 2009-12-17 | 2015-06-30 | At&T Intellectual Property I, L.P. | Processing and distribution of video-on-demand content items |
EP2339814A1 (en) * | 2009-12-28 | 2011-06-29 | Telefónica, S.A. | Method for downloading segments of a video file in a peer-to-peer network |
KR101591534B1 (ko) * | 2009-12-30 | 2016-02-04 | 주식회사 알티캐스트 | 계층적 트랙커를 이용한 p2p 전송 시스템 및 이를 위한 트랙커 장치 |
KR20120028751A (ko) * | 2010-09-15 | 2012-03-23 | 주식회사 에이프릴세븐 | 피어 투 피어를 사용한 컨텐츠 분산 장치 및 방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체 |
US20120271765A1 (en) * | 2011-04-20 | 2012-10-25 | Karen Cervenka | Routing optimization |
US9219782B2 (en) * | 2012-12-11 | 2015-12-22 | Microsoft Technology Licensing, Llc | Identifying seed computing devices using estimates in peer-to-peer networks |
-
2012
- 2012-12-11 US US13/711,152 patent/US9219782B2/en active Active
-
2013
- 2013-12-11 JP JP2015545952A patent/JP6348505B2/ja active Active
- 2013-12-11 WO PCT/US2013/074504 patent/WO2014093559A2/en active Application Filing
- 2013-12-11 BR BR112015011457-1A patent/BR112015011457B1/pt active IP Right Grant
- 2013-12-11 MX MX2015007491A patent/MX348638B/es active IP Right Grant
- 2013-12-11 EP EP13815317.6A patent/EP2932687B1/en active Active
- 2013-12-11 RU RU2015122403A patent/RU2657183C2/ru active
- 2013-12-11 KR KR1020157015469A patent/KR102162382B1/ko active IP Right Grant
- 2013-12-11 CN CN201380064912.9A patent/CN105027533B/zh active Active
- 2013-12-11 CA CA2889589A patent/CA2889589C/en active Active
- 2013-12-11 CN CN201810725165.3A patent/CN109104459B/zh active Active
- 2013-12-11 KR KR1020207027845A patent/KR102297157B1/ko active IP Right Grant
- 2013-12-11 AU AU2013359317A patent/AU2013359317B2/en active Active
-
2015
- 2015-11-25 US US14/952,393 patent/US10574747B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240758A1 (en) * | 2008-03-19 | 2009-09-24 | Verizon Services Organization Inc. | Intelligent establishment of peer-to-peer communication |
Also Published As
Publication number | Publication date |
---|---|
MX348638B (es) | 2017-06-22 |
KR20200115676A (ko) | 2020-10-07 |
MX2015007491A (es) | 2015-12-03 |
KR102162382B1 (ko) | 2020-10-06 |
RU2657183C2 (ru) | 2018-06-08 |
JP6348505B2 (ja) | 2018-06-27 |
US20160080487A1 (en) | 2016-03-17 |
AU2013359317A1 (en) | 2015-05-14 |
CA2889589C (en) | 2021-09-07 |
CN105027533B (zh) | 2018-07-20 |
US10574747B2 (en) | 2020-02-25 |
BR112015011457A2 (pt) | 2017-07-11 |
EP2932687A2 (en) | 2015-10-21 |
CN109104459A (zh) | 2018-12-28 |
AU2013359317B2 (en) | 2016-12-22 |
BR112015011457B1 (pt) | 2022-09-13 |
US20140164627A1 (en) | 2014-06-12 |
WO2014093559A3 (en) | 2014-08-07 |
KR20150095666A (ko) | 2015-08-21 |
US9219782B2 (en) | 2015-12-22 |
CN109104459B (zh) | 2021-06-11 |
EP2932687B1 (en) | 2017-09-20 |
JP2016510443A (ja) | 2016-04-07 |
CN105027533A (zh) | 2015-11-04 |
RU2015122403A (ru) | 2017-01-10 |
WO2014093559A2 (en) | 2014-06-19 |
CA2889589A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102297157B1 (ko) | 피어-투-피어 성능의 개선 기법 | |
EP2909732B1 (en) | Partitioning streaming media files on multiple content distribution networks | |
US11102290B2 (en) | Peer-to-peer network prioritizing propagation of objects through the network | |
US8725680B2 (en) | Media content location awareness and decision making | |
JP2020524066A (ja) | ビデオゲームのゲームプレイをスケジューリングする方法及びシステム | |
US10985988B2 (en) | Profile generation for bandwidth management | |
US9350804B2 (en) | Peer-to-peer communication to increase download throughput | |
CN107920108A (zh) | 一种媒体资源的推送方法、客户端及服务器 | |
WO2023107283A1 (en) | Network storage game allocation based on artificial intelligence | |
JP2017126983A (ja) | 生中継データを共有する方法およびシステム | |
US20230199062A1 (en) | Data center wide network storage load balancing | |
US10812547B1 (en) | Broadcast streaming configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |