KR101087089B1 - 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램 - Google Patents

네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램 Download PDF

Info

Publication number
KR101087089B1
KR101087089B1 KR20097020896A KR20097020896A KR101087089B1 KR 101087089 B1 KR101087089 B1 KR 101087089B1 KR 20097020896 A KR20097020896 A KR 20097020896A KR 20097020896 A KR20097020896 A KR 20097020896A KR 101087089 B1 KR101087089 B1 KR 101087089B1
Authority
KR
South Korea
Prior art keywords
node device
node
server
data
unit
Prior art date
Application number
KR20097020896A
Other languages
English (en)
Other versions
KR20090130371A (ko
Inventor
쇼지 모리
Original Assignee
가부시키가이샤 코나미 데지타루 엔타테인멘토
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 코나미 데지타루 엔타테인멘토 filed Critical 가부시키가이샤 코나미 데지타루 엔타테인멘토
Publication of KR20090130371A publication Critical patent/KR20090130371A/ko
Application granted granted Critical
Publication of KR101087089B1 publication Critical patent/KR101087089B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • 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/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

송신요구 송신부(301)는 서버를 향해서 송신요구를 송신한다. 경로 결정부(302)는, 서버에 의해서 자기(단말(12))가 최상위의 노드로 선정된 경우에, 서버로부터 소개된 각 노드에 대해서, 자기를 기점으로 해서 각각 상위부터 하위로 배열된 송신 경로를 결정한다. 데이터 수신부(303)는, 결정된 송신 경로에 의거해서 접속한 바로 위의 노드로부터 송신되는 데이터를 수신한다. 데이터 송신부(308)는, 송신 경로에 의거해서 접속한 바로 밑의 노드가 있을 경우에, 수신한 데이터를 바로 밑의 노드에 송신한다. 그리고, 수신통지 회신부(309)는, 자기가 최하위의 노드일 경우에, 데이터 수신부(303)가 데이터를 수신하면, 최상위의 노드에 수신통지를 회신한다.
네트워크 시스템, 노드 기기, 데이터 송신방법, 노드

Description

네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램{NETWORK SYSTEM, NODE DEVICE, DATA DISTRIBUTION METHOD, INFORMATION RECORDING MEDIUM, AND PROGRAM}
본 발명은 데이터 송신 시의 부하를 적절하게 저감시키는 것이 가능한 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램에 관한 것이다.
종래로부터, 인터넷 등의 네트워크를 이용해서, 각종 데이터의 제공이 행해지고 있다. 일례로서 게임회사 등에서는, 사용자에게 발매 전 등의 게임을 체험하게 하기 위하여, 평가판 프로그램(플레이 범위 등이 일부 제한된 프로모션(promotion)용의 프로그램) 등의 데이터 송신을 행하고 있다. 그 밖에도, 게임의 수정 프로그램이나 라이브러리 등의 데이터 송신도 행해지고 있다.
구체적으로는, 게임회사의 서버에, 송신 대상으로 되는 평가판 프로그램 등을 격납하고, 사용자가 게임기 등을 사용해서 자유롭게 다운로드할 수 있도록 하고 있다.
또, 이러한 기술분야에 있어서는, 게임기의 재기동이나 플레이의 중단을 시키지 않고, 수정 프로그램이나 라이브러리 등을 다운로드해서 이용할 수 있도록 하 는 기술도 개시되어 있다(예를 들어, 특허문헌 1 참조).
특허문헌 1: 일본국 공개특허 제2004-287631호 공보(제10-16쪽, 제1도)
발명의 개시
발명이 해결하고자 하는 과제
전술한 바와 같은 종래의 데이터 송신에서는, 서버에 부하가 집중되어 버려, 효율적인 송신이 행해지지 않을 경우가 있었다.
예를 들어, 평가판 프로그램의 송신 개시가 발표되면, 많은 사용자가 동시에 다운로드를 행하려고 하기 때문에, 서버에 부하가 집중되어 버리게 된다. 이것에 의해, 다운로드가 전혀 개시되지 않거나, 또한, 다운로드가 개시되어도 완료까지 장시간을 필요로 한다고 하는 것 같은 상황이 생기고 있었다.
그 때문에, 데이터의 제공 측(게임회사 등)은, 복수의 서버를 이용해서 부하를 분산시킨다고 하는 일반적인 부하 분산의 기술을 채용해서, 사용자를 그만큼 기다리게 하지 않고 다운로드를 행할 수 있도록 대처하고 있었다.
그러나, 사용자의 관심이 높은 게임(평가판 프로그램)을 송신할 경우 등에서는, 보다 많은 사용자가 동시에 다운로드하고자 하는 상황이 생기기 쉬워진다. 이 상황에서는, 기존의 부하 분산의 기술을 채용하고 있어도, 허용범위를 넘어서 부하가 높아져 버려, 효율적인 송신이 행해지지 않는다고 하는 것이 현실정이었다.
그 때문에, 데이터 송신 시의 부하를 저감하는 것이 가능한 새로운 수법이 요구되고 있었다.
본 발명은, 이러한 과제를 해결하기 위한 것으로서, 데이터 송신 시의 부하를 적절하게 저감하는 것이 가능한 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램을 제공하는 것을 목적으로 한다.
과제를 해결하기 위한 수단
본 발명의 제1관점에 따른 네트워크 시스템은, 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크 시스템으로서, 서버가, 송신요구 수신부, 선정부, 소개부 및 송신부를 포함하고, 각 노드 기기의 각각이, 송신요구 송신부, 경로 결정부, 데이터 수신부, 데이터 송신부 및 수신통지 회신부를 포함하여 구성된다.
우선, 서버에 있어서, 송신요구 수신부는, 각 노드 기기로부터 전송되는 송신요구를 수신한다. 또, 선정부는, 상기 송신요구를 전송한 각 노드 기기 중, 적어도 1개를 최상위의 노드 기기로서 선정한다. 소개부는, 선정하고 있지 않은 나머지 각 노드 기기에, 상기 최상위의 노드 기기를 소개한다. 그리고, 송신부는 상기 최상위의 노드 기기를 향해서 데이터를 송신한다.
한편, 각 노드 기기에 있어서, 송신요구 송신부는 서버를 향해서 송신요구를 송신한다. 또, 경로 결정부는, 서버에 의해서 최상위의 노드 기기로 선정된 경우에, 서버로부터 소개된 각 노드 기기에 대해서, 자기를 기점으로 해서 각각 상위부터 하위로 배열된 송신 경로를 결정한다. 데이터 수신부는, 결정된 상기 송신 경로에 의거해서 접속한 바로 위의 노드 기기 혹은 서버로부터 송신되는 데이터를 수신한다. 데이터 송신부는, 상기 송신 경로에 의거해서 접속한 바로 밑의 노드 기기가 있을 경우에, 상기 수신한 데이터를 상기 바로 밑의 노드 기기에 송신한다. 그리고, 수신통지 회신부는, 상기 송신 경로에 의거해서 바로 밑의 노드 기기가 없어, 자기가 최하위의 노드 기기로 된 경우에, 데이터 수신부가 데이터를 수신하면, 최상위의 노드 기기에 수신통지를 회신한다.
이와 같이, 서버 측은, 최상위의 노드 기기를 선정하고, 그 노드 기기를 향해서 데이터의 송신을 행한다. 한편, 노드 기기 측은, 최상위의 노드 기기를 기점으로 한 송신 경로를 결정하면, 그 경로를 따라서 상위의 노드 기기로부터 하위의 노드 기기에 버킷 릴레이와 같이 데이터의 송신을 행한다.
이 때문에, 데이터 송신 시에 있어서, 종래와 같이 부하가 서버에 집중하는 일 없이, 노드 기기 측에서 적절하게 분산되게 된다.
이 결과, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
상기 서버의 상기 선정부는, 상기 송신요구를 가장 빨리 보낸 노드 기기를 최상위의 노드 기기로서 선정하고, 상기 노드 기기의 상기 경로 결정부는, 상기 서버로부터 소개된 순서에 따라서, 각 노드 기기를 상위부터 하위로 배열된 송신 경로를 결정해도 된다.
이 경우, 송신 경로를 극히 자연스럽게 결정할 수 있고, 경로를 결정하기 위한 처리도 단순화할 수 있다.
상기 노드 기기는, 상기 데이터 수신부가 수신한 데이터에, 자기의 어드레스를 부가하는 어드레스 부가부; 및 상기 수신한 데이터에 이미 부가되어 있던 어드레스에 의거해서, 현시점에 있어서의 자기보다도 상위의 노드 기기를 관리하는 상위 노드 관리부를 추가로 포함하고, 상기 데이터 송신부는, 어드레스가 부가된 데이터를 바로 밑의 노드 기기에 송신하며, 상기 수신통지 회신부는, 상기 데이터 수신부가 수신한 데이터에 부가되어 있던 모든 어드레스 및 자기의 어드레스에 의거해서, 현시점에 있어서의 실제의 송신 경로를 나타내는 리스트를 생성하고, 수신통지에 상기 리스트를 부가해서 최상위의 노드 기기에 회신해도 된다.
이 경우, 최하위의 노드 기기까지 송신이 행해진 것을 파악할 수 있는 동시에, 그 시점에 있어서의 실제의 (최신의) 송신 경로도 파악할 수 있다.
상기 노드 기기는, 바로 위의 노드 기기와의 접속 단절에 의해, 상기 데이터 수신부가 데이터를 수신할 수 없게 된 경우에, 상기 상위 노드 관리부에서 관리되는 상위의 노드 기기 중, 하위로부터 차례로 접속을 시도하여, 접속된 노드 기기에 데이터의 재송신을 요구하는 재송신 요구부를 추가로 포함하고, 상기 데이터 수신부는, 상기 재송신 요구부가 재송신을 요구한 노드 기기를 새로운 바로 위의 노드 기기로 해서, 당해 바로 위의 노드 기기로부터 송신되는 데이터를 수신해도 된다.
이 경우, 자율적으로 송신 경로를 재구축하여, 데이터 송신을 적절하게 계속할 수 있다.
상기 노드 기기의 상기 경로 결정부는, 상기 서버로부터 새로운 노드 기기가 소개된 경우에, 당해 새로운 노드 기기를 최하위로 한 송신 경로를 재결정해도 된다. 이 경우, 도중 참가된 노드 기기를 포함시킨 데이터 송신을 적절하게 행할 수 있다.
본 발명의 제2관점에 따른 노드 기기는, 데이터의 송신원으로 되는 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크에 있어서의 각 노드 기기로서, 송신요구 송신부, 경로 결정부, 데이터 수신부, 데이터 송신부 및 수신통지 회신부를 포함하여 구성된다.
우선, 송신요구 송신부는, 서버를 향해서 송신요구를 송신한다. 또한, 경로 결정부는, 서버에 의해서 자기가 최상위의 노드 기기로 선정된 경우에, 서버로부터 소개된 각 노드 기기에 대해서, 자기를 기점으로 해서 각각 상위로부터 하위로 배열된 송신 경로를 결정한다. 데이터 수신부는, 결정된 상기 송신 경로에 의거해서 접속한 바로 위의 노드 기기 혹은 서버로부터 송신되는 데이터를 수신한다. 데이터 송신부는, 상기 송신 경로에 의거해서 접속한 바로 밑의 노드 기기가 있을 경우에, 상기 수신한 데이터를 상기 바로 밑의 노드 기기에 송신한다. 그리고, 수신통지 회신부는, 상기 송신 경로에 의거해서 바로 밑의 노드 기기가 없어, 자기가 최하위의 노드 기기로 된 경우에, 데이터 수신부가 데이터를 수신하면, 최상위의 노드 기기에 수신통지를 회신한다.
이와 같이, 각 노드 기기는, 최상위의 노드 기기를 기점으로 한 송신 경로를 결정하면, 그 경로를 따라서 상위의 노드 기기로부터 하위의 노드 기기에 버킷 릴레이와 같이 데이터의 송신을 행한다.
이 때문에, 데이터 송신 시에 있어서, 종래와 같이 부하가 서버에 집중되는 일없이, 각 노드 기기로 적절하게 분산되게 된다.
이 결과, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
상기 노드 기기는, 상기 서버에 송신요구를 가장 빨리 보낸 노드 기기가 최상위의 노드 기기로서 선정되는 것이며, 상기 경로 결정부는, 상기 서버로부터 소개된 순서에 따라서, 각 노드 기기를 상위로부터 하위로 배열된 송신 경로를 결정해도 된다.
이 경우, 송신 경로를 극히 자연스럽게 결정할 수 있고, 경로를 결정하기 위한 처리도 단순화할 수 있다.
상기 노드 기기는, 상기 데이터 수신부가 수신한 데이터에, 자기의 어드레스를 부가하는 어드레스 부가부와, 상기 수신한 데이터에 이미 부가되어 있던 어드레스에 의거해서 현시점에 있어서의 자기보다도 상위의 노드 기기를 관리하는 상위 노드 관리부를 추가로 포함하고, 상기 데이터 송신부는, 어드레스가 부가된 데이터를 바로 밑의 노드 기기에 송신하며, 상기 수신통지 회신부는, 상기 데이터 수신부가 수신한 데이터에 부가되어 있던 모든 어드레스 및 자기의 어드레스에 의거해서 현시점에 있어서의 실제의 송신 경로를 나타내는 리스트를 생성하고, 수신통지에 상기 리스트를 부가해서 최상위의 노드 기기에 회신해도 된다.
이 경우, 최하위의 노드 기기까지 송신이 행해진 것을 파악할 수 있는 동시에, 그 시점에 있어서의 실제의 (최신의) 송신 경로도 파악할 수 있다.
상기 노드 기기는, 바로 위의 노드 기기와의 접속 단절에 의해, 상기 데이터 수신부가 데이터를 수신할 수 없게 된 경우에, 상기 상위 노드 관리부에서 관리되는 상위의 노드 기기 중, 하위로부터 차례로 접속을 시도하여, 접속된 노드 기기에 데이터의 재송신을 요구하는 재송신 요구부를 추가로 포함하고, 상기 데이터 수신부는, 상기 재송신 요구부가 재송신을 요구한 노드 기기를 새로운 바로 위의 노드 기기로 해서 당해 바로 위의 노드 기기로부터 송신되는 데이터를 수신해도 된다.
이 경우, 자율적으로 송신 경로를 재구축하여, 데이터 송신을 적절하게 계속할 수 있다.
상기 노드 기기의 상기 경로 결정부는, 상기 서버로부터 새로운 노드 기기가 소개된 경우에, 당해 새로운 노드 기기를 최하위로 한 송신 경로를 재결정해도 된다.
이 경우, 도중 참가된 노드 기기를 포함시킨 데이터 송신을 적절하게 행할 수 있다.
본 발명의 제3관점에 따른 데이터 송신방법은, 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크 시스템에 있어서의 데이터 송신방법으로서, 송신요구 수신스텝, 선정스텝, 소개스텝, 송신스텝, 송신요구 송신스텝, 경로 결정스텝, 데이터 수신스텝, 데이터 송신스텝 및 수신통지 회신스텝을 포함하여 구성된다.
우선, 서버에 있어서, 송신요구 수신스텝에서는, 각 노드 기기로부터 전송되는 송신요구를 수신한다. 또, 선정스텝에서는, 상기 송신요구를 전송한 각 노드 기기 중, 적어도 1개를 최상위의 노드 기기로서 선정한다. 소개스텝에서는, 선정하고 있지 않은 나머지 각 노드 기기에, 상기 최상위의 노드 기기를 소개한다. 그리고, 송신스텝에서는, 상기 최상위의 노드 기기를 향해서 데이터를 송신한다.
한편, 각 노드 기기에 있어서, 송신요구 송신스텝에서는, 서버를 향해서 송신요구를 송신한다. 또, 경로 결정스텝에서는, 서버에 의해서 최상위의 노드 기기로 선정된 경우에, 서버로부터 소개된 각 노드 기기에 대해서, 자기를 기점으로 해서 각각 상위부터 하위로 배열된 송신 경로를 결정한다. 데이터 수신스텝에서는, 결정된 상기 송신 경로에 의거해서 접속한 바로 위의 노드 기기 혹은 서버로부터 송신되는 데이터를 수신한다. 데이터 송신스텝에서는, 상기 송신 경로에 의거해서 접속한 바로 밑의 노드 기기가 있을 경우에, 상기 수신한 데이터를 상기 바로 밑의 노드 기기에 송신한다. 그리고, 수신통지 회신스텝에서는, 상기 송신 경로에 의거해서 바로 밑의 노드 기기가 없어, 자기가 최하위의 노드 기기로 된 경우에, 데이터 수신부가 데이터를 수신하면, 최상위의 노드 기기에 수신통지를 회신한다.
이와 같이, 서버 측은, 최상위의 노드 기기를 선정하고, 그 노드 기기를 향해서 데이터의 송신을 행한다. 한편, 노드 기기 측은, 최상위의 노드 기기를 기점으로 한 송신 경로를 결정하면, 그 경로를 따라서 상위의 노드 기기로부터 하위의 노드 기기에 버킷 릴레이와 같이 데이터의 송신을 행한다.
이 때문에, 데이터 송신 시에 있어서, 종래와 같이 부하가 서버에 집중되는 일없이, 노드 기기 측에서 적절하게 분산되게 된다.
이 결과, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
본 발명의 제4관점에 따른 정보기록매체는, 컴퓨터(전자기기를 포함함)를, 상기의 노드 기기로서 기능시키기 위한 프로그램을 기억한다.
본 발명의 제5관점에 따른 프로그램은, 컴퓨터(전자기기를 포함함)를 상기의 노드 기기로서 기능시키도록 구성한다.
이 프로그램은, 컴팩트 디스크, 가요성 디스크, 하드 디스크, 광자기 디스크, 디지털 비디오 디스크, 자기 테이프, 반도체 메모리 등의 컴퓨터 판독가능한 정보기록매체에 기록할 수 있다.
상기 프로그램은, 당해 프로그램이 실행되는 컴퓨터와는 독립해서, 컴퓨터 통신망을 경유해서 배포·판매될 수 있다. 또한, 상기 정보기록매체는 상기 컴퓨터와는 독립해서 배포·판매될 수 있다.
발명의 효과
본 발명에 의하면, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
도 1은 본 실시예의 네트워크 시스템의 개요 구성을 나타낸 모식도;
도 2는 본 실시예의 게임장치의 개요 구성을 나타낸 모식도;
도 3은 서버의 개요 구성의 일례를 나타낸 모식도;
도 4는 단말의 개요 구성의 일례를 나타낸 모식도;
도 5a는 전형적인 송신 경로를 설명하기 위한 모식도;
도 5b는 송신 경로가 결정되는 상황을 설명하기 위한 모식도;
도 6a는 송신 데이터의 구성을 설명하기 위한 모식도;
도 6b는 송신 데이터에 포함되는 헤더부 등을 설명하기 위한 모식도;
도 7은 상위 노드 테이블의 일례를 설명하기 위한 모식도;
도 8은 본 발명의 실시예에 따른 송신요구 수신처리의 일례를 나타낸 순서도;
도 9는 본 발명의 실시예에 따른 송신경로 결정처리의 일례를 나타낸 순서도;
도 10은 본 발명의 실시예에 따른 재송신 요구처리의 일례를 나타낸 순서도;
도 11a는 분기되는 송신 경로를 설명하기 위한 모식도;
도 11b는 송신 경로가 결정되는 상황을 설명하기 위한 모식도.
<부호의 설명>
10: 네트워크 시스템 11: 서버
12: 단말 13: 인터넷
100: 게임장치 101: CPU
102: ROM 103: RAM
104: 인터페이스 105: 컨트롤러
106: 외부 메모리 107: DVD-ROM 드라이브
108: 화상 처리부 109: 음성 처리부
110: NIC 201: 송신요구 수신부
202: 선정부 203: 노드정보 기억부
204: 소개부 205: 송신부
206: 송신용 데이터 기억부 301: 송신요구 송신부
302: 경로 결정부 303: 데이터 수신부
304: 송신데이터 기억부 305: 어드레스 부가부
306: 상위노드 관리부 307: 재송신 요구부
308: 데이터 송신부 309: 수신통지 회신부
이하에 본 발명의 실시예를 설명한다. 이하에서는, 이해를 쉽게 하기 위해 서, 네트워크를 개재해서 서버 등에 접속가능한 게임장치에 본 발명이 적용되는 실시예를 설명하지만, 각종 컴퓨터, PDA, 휴대전화 등의 정보처리장치에 있어서도 마찬가지로 본 발명을 적용할 수 있다. 즉, 이하에 기재하는 실시예는 설명을 위한 것일 뿐, 본원 발명의 범위를 제한하는 것은 아니다. 따라서, 당업자라면 이들 각 요소 혹은 전체 요소를 이것과 균등한 것으로 치환한 실시형태를 채용하는 것이 가능하며, 이들 실시형태도 본 발명의 범위에 포함된다.
( 실시예 1)
도 1은 본 발명의 실시예에 따른 네트워크 시스템의 개요 구성을 나타낸 모식도이다. 이하, 본 도면을 참조해서 설명한다.
본 네트워크 시스템(10)에서는, 일례로서, 인터넷(13) 상에 데이터 송신을 행하는 서버(11)가 배치되어 있다. 그리고, 본 네트워크 시스템(10)에 있어서의 각 단말(12)은, 인터넷(13)을 개재해서 서버(11) 또는 기타의 단말(12)과 통신 가능하게 접속되어 있다.
또, 서버(11)는, 예를 들어, 평가용 프로그램을 송신가능하며, 각 단말(12)로부터 직접적으로 또는 간접적으로 다운로드를 행할 수 있도록 되어 있다. 또, 각 단말(12)은, 소위 피어 투 피어(peer-to-peer) 통신기술에 의해서, 서로 통신을 행하는 것도 가능하다.
발명의 이해를 쉽게 하기 위해서, 이하에서는, 단말(12)로서 인터넷에의 접속이 가능한 게임장치를 일례로 들어 설명한다.
도 2는 본 실시예의 단말(12)(즉, 노드 기기)로서 기능하는 게임장치(100)의 개요 구성을 나타낸 모식도이다. 이하, 본 도면을 참조해서 설명한다.
게임장치(100)는 CPU(Central Processing Unit)(101), ROM(Read Only Memory)(102), RAM(Random Access Memory)(103), 인터페이스(interface)(104), 컨트롤러(105), 외부 메모리(106), DVD-ROM(Digital Versatile Disk-ROM) 드라이브(107), 화상 처리부(108), 음성 처리부(109) 및 NIC(Network Interface Card)(110)를 구비한다.
또, 게임용 프로그램 및 데이터를 기억한 DVD-ROM을 DVD-ROM 드라이브(107)에 장착해서, 게임장치(100)의 전원을 투입함으로써, 상기 프로그램이 실행되어, 본 실시예의 노드 기기가 실현된다.
CPU(101)는 게임장치(100) 전체의 동작을 제어하여, 각 구성요소와 접속되어 제어신호나 데이터를 주고 받는다.
ROM(102)에는, 전원 투입 직후에 실행되는 IPL(Initial Program Loader)이 기록되어, 이것이 실행됨으로써, DVD-ROM에 기록된 프로그램을 RAM(103)에 읽어내어(즉, 독출하여) CPU(101)에 의한 실행이 개시된다. 또한, ROM(102)에는, 정보처리장치(100) 전체의 동작 제어에 필요한 오퍼레이팅 시스템의 프로그램이나 각종 데이터가 기록된다.
RAM(103)은, 데이터나 프로그램을 일시적으로 기억하기 위한 것으로, DVD-ROM으로부터 독출한 프로그램이나 데이터, 기타 게임의 진행이나 채팅 통신에 필요한 데이터가 유지된다.
인터페이스(104)를 개재해서 접속된 컨트롤러(105)는, 사용자가 게임을 실행 할 때에 행하는 조작 입력을 접수한다. 예를 들어, 컨트롤러(105)는, 조작입력에 따라서, 문자열(메시지) 등의 입력을 접수한다.
인터페이스(104)를 개재해서 착탈가능하게 접속된 외부 메모리(106)에는, 게임의 진행 상태를 나타내는 데이터, 채팅 통신의 로그(기록) 데이터 등이 다시 기록하는 것이 가능하도록 기억된다. 사용자는, 컨트롤러(105)를 개재해서 지시 입력을 행함으로써, 이들 데이터를 적절하게 외부 메모리(106)에 기록할 수 있다.
DVD-ROM 드라이브(107)에 장착되는 DVD-ROM에는, 게임을 실현하기 위한 프로그램과 게임에 부수되는 화상 데이터나 음성 데이터가 기록된다. CPU(101)의 제어에 의해서, DVD-ROM 드라이브(107)는, 이것에 장착된 DVD-ROM에 대한 독출 처리를 행하여, 필요한 프로그램이나 데이터를 독출하고, 이들은 RAM(103) 등에 일시적으로 기억된다.
화상 처리부(108)는, DVD-ROM으로부터 독출된 데이터를 CPU(101)나 화상 처리부(108)가 구비하는 화상 연산 프로세서(도시 생략)에 의해서 가공 처리한 후, 이것을 화상 처리부(108)가 구비하는 프레임 메모리(도시 생략)에 기록한다. 프레임 메모리에 기록된 화상정보는, 소정의 동기 타이밍에서 비디오 신호로 변환되어 화상 처리부(108)에 접속되는 모니터(도시 생략)에 출력된다. 이것에 의해, 각종 화상표시가 가능해진다.
또, 화상 연산 프로세서는, 2차원의 화상의 중첩 연산이나 α블렌딩 등의 투과 연산, 각종 포화 연산을 고속으로 실행할 수 있다.
또한, 가상 3차원 공간에 배치되어, 각종 텍스처(texture) 정보가 부가된 다 각형 정보를, Z버퍼법에 의해 렌더링(rendering)해서, 소정의 시점 위치로부터 가상 3차원 공간에 배치된 다각형을 내려다본 렌더링 화상을 얻는 연산의 고속 실행도 가능하다.
또, CPU(101)와 화상 연산 프로세서가 협조 동작함으로써, 문자의 형상을 정의하는 폰트 정보에 따라서, 문자열을 2차원 화상으로서 프레임 메모리에 묘화하거나, 각 다각형 표면에 묘화하는 것이 가능하다. 폰트정보는 ROM(102)에 기록되어 있지만, DVD-ROM에 기록된 전용의 폰트 정보를 이용하는 것도 가능하다.
음성 처리부(109)는 DVD-ROM으로부터 독출한 음성 데이터를 아날로그 음성신호로 변환하고, 이것에 접속된 스피커(도시 생략)로부터 출력시킨다. 또, CPU(101)의 제어 하, 게임의 진행 중에 발생시켜야 할 효과음이나 악곡 데이터를 생성하고, 이것에 대응한 음성을 스피커로부터 출력시킨다.
NIC(110)는 게임장치(100)를 인터넷 등의 컴퓨터 통신망(도시 생략)에 접속하기 위한 것으로, LAN(Local Area Network)을 구성할 때에 이용되는 10BASE-T/100BASE-T 규격에 따르는 것이나, 전화 회선을 이용해서 인터넷에 접속하기 위한 아날로그 모뎀, ISDN(Integrated Services Digital Network) 모뎀, ADSL(Asymmetric Digital Subscriber Line) 모뎀, 케이블 텔레비전 회선을 이용해서 인터넷에 접속하기 위한 케이블 모뎀 등과, 이들과 CPU(101)와의 중개를 행하는 인터페이스(도시 생략)에 의해 구성된다.
그 밖에, 게임장치(100)는, 하드 디스크 등의 대용량 외부 기억 장치를 이용해서, ROM(102), RAM(103), 외부 메모리(106), DVD-ROM 드라이브(107)에 장착되는 DVD-ROM 등과 마찬가지 기능을 하도록 구성해도 된다.
또, 사용자로부터의 문자열의 편집 입력을 접수하기 위한 키보드나, 각종 위치의 지정 및 선택입력을 접수하기 위한 마우스 등을 접속하는 형태도 채용할 수 있다.
또한, 본 실시예의 게임장치(100) 대신에, 일반적인 컴퓨터(범용의 퍼스널 컴퓨터 등)를 노드 기기로서 이용할 수도 있다. 예를 들어, 일반적인 컴퓨터는, 상기 게임장치(100)와 마찬가지로, CPU, RAM, ROM, DVD-ROM 드라이브 및 NIC를 구비하고, 게임장치(100)보다도 간이한 기능을 갖춘 화상 처리부를 구비하고, 외부기억장치로서 하드 디스크를 가진 것 외에, 가요성 디스크, 광자기 디스크, 자기 테이프 등을 이용할 수 있도록 되어 있다. 또, 컨트롤러가 아니라, 키보드나 마우스 등을 입력장치로서 이용한다. 그리고, 게임 프로그램을 설치한 후에, 그 프로그램을 실행시키면, 노드 기기로서 기능한다.
(서버의 개요 구성)
도 3은 본 실시예에 따른 서버(11)의 개요 구성의 일례를 나타낸 모식도이다. 이하, 본 도면을 참조해서 설명한다.
서버(11)는, 도 3에 나타낸 바와 같이, 송신요구 수신부(201), 선정부(202), 노드정보 기억부(203), 소개부(204), 송신부(205) 및 송신용 데이터 기억부(206)를 포함하고 있다.
송신요구 수신부(201)는, 노드 기기(이하, 「노드」라 약칭함)로 되는 각 단말(12)로부터 전송되는 송신요구를 수신한다.
예를 들어, 단말(12)로부터 임의의 평가용 프로그램이 지정되어, 다운로드가 요구되면, 그 평가용 프로그램에 관한 송신요구를 수신한다.
선정부(202)는, 송신요구를 전송한 각 단말(12) 중, 적어도 1개를 최상위의 노드로서 선정한다.
예를 들어, 같은 평가용 프로그램이 지정된 송신요구 중, 가장 빠르게 송신요구를 전송한 단말(12)을 최상위의 노드로서 선정한다. 그리고, 선정한 단말(12)의 식별 정보(예를 들어, MAC 어드레스 등) 및 그 단말(12)에 액세스가능하게 되는 어드레스(예를 들어, IP 어드레스 등)를, 노드정보 기억부(203)에 격납한다.
노드정보 기억부(203)는 최상위의 노드로서 선정된 단말(12)의 정보를 기억한다.
예를 들어, 노드정보 기억부(203)는, 선정된 단말(12)의 식별 정보(MAC 어드레스 등) 및 어드레스(IP 어드레스 등)를, 송신요구된 평가용 프로그램에 대응해서 기억한다.
소개부(204)는, 선정하고 있지 않은 나머지 단말(12)로부터, 송신요구를 수신하면, 각 단말(12)에, 선정한 단말(12)(즉, 최상위의 노드)을 소개한다.
구체적으로 소개부(204)는, 노드정보 기억부(203)를 참조하여, 송신요구된 평가용 프로그램에 대응하는 단말(12)의 정보(최상위의 노드 정보)가 기억되어 있는지의 여부를 판별한다. 그리고, 단말(12)의 정보가 기억되어 있을 경우에는, 최상위의 노드가 이미 선정되어 있기 때문에, 기억된 정보(어드레스 등)를 응답해서 최상위의 노드를 소개한다.
또한, 최상위의 노드 정보가 기억되어 있지 않을 경우에는, 전술한 선정부(202)가 최상위의 노드로 되는 단말(12)을 선정하게 된다.
송신부(205)는, 최상위의 노드로 되는 단말(12)(즉, 선정된 단말(12))을 향해서 데이터를 송신한다.
예를 들어, 송신부(205)는, 최상위의 노드와의 사이에서 송신용의 세션을 접속하여, 송신용 데이터 기억부(206)로부터 대상의 평가용 프로그램을 독출해서 송신한다.
또, 평가용 프로그램이 송신될 때에는, 소정의 블록 크기로 분할(단편화)이 되어, 이 블록 단위로 데이터 송신이 행해진다.
송신용 데이터 기억부(206)는, 사용자(구체적으로는, 단말(12))에게 제공가능한 각종 평가용 프로그램 등의 데이터를 기억하고 있다.
(노드로 되는 각 단말의 개요 구성)
도 4는 본 실시예에 따른 단말(12)의 개요 구성의 일례를 나타낸 모식도다. 이하, 본 도면을 참조해서 설명한다.
단말(12)은, 도 4에 나타낸 바와 같이, 송신요구 송신부(301), 경로 결정부(302), 데이터 수신부(303), 송신 데이터 기억부(304), 어드레스 부가부(305), 상위 노드 관리부(306), 재송신 요구부(307), 데이터 송신부(308) 및 수신통지 회신부(309)를 포함하고 있다.
송신요구 송신부(301)는 서버(11)를 향해서 송신요구를 송신한다.
예를 들어, 단말(12)을 조작하는 사용자에 의해서 임의의 평가용 프로그램이 지정되면, 그 평가용 프로그램에 관한 송신요구를 서버(11)에 송신한다.
또한, 전술한 NIC(110)가 이러한 송신요구 송신부(301)로서 기능할 수 있다.
경로 결정부(302)는, 자기(단말(12))가, 서버(11)에 의해서 최상위의 노드로서 선정된 경우에 기능하고, 각 단말(12) 간의 송신 경로를 결정한다.
예를 들어, 경로 결정부(302)는, 서버(11)로부터 소개된 다른 각 단말(12)에 대해서, 자기를 기점으로 해서 각각 상위로부터 하위로 배열된 송신 경로를 결정한다.
구체적으로는, 도 5a에 나타낸 바와 같이 최상위의 노드 A를 향해서, 노드 B 내지 E의 순서로, 서버(11)로부터의 소개에 의거하는 액세스가 행해지면, 노드 A의 경로 결정부(302)는 도 5b에 나타낸 바와 같은 송신 경로를 결정한다.
즉, 노드 A(경로 결정부(302))는, 소개에 의거해서 최초에 액세스해온 노드 B를 바로 밑의 노드로 결정한다. 그리고, 계속해서 액세스해온 노드 C 내지 E에 대해서, 노드 B를 각각 소개한다. 그 때문에, 노드 C 내지 E는 노드 B에 액세스하게 된다.
또, 노드 B는, 소개에 의거해서 최초로 액세스해온 노드 C를 바로 밑의 노드로 결정하고, 이어서 액세스해온 노드 D 및 E에 노드 C를 각각 소개한다. 그 때문에, 노드 D 및 E는 노드 C에 액세스하게 된다.
그리고, 노드 C는, 최초로 액세스해온 노드 D를 바로 밑의 노드로 결정하고, 이어서 액세스해온 노드 E에 노드 D를 소개한다. 그 때문에, 노드 E는 노드 D에 액세스하게 된다.
최후에, 노드 D는 액세스해온 노드 E를 바로 밑의 노드로 결정한다.
이와 같이 결정되는 송신 경로에 따라서, 각 노드는, 바로 위의 노드와의 사이, 그리고, 바로 밑의 노드와의 사이에, 각각 송신용의 세션을 접속한다.
예를 들어, 도 5b에 나타낸 노드 C이면, 바로 위의 노드 B와의 사이, 그리고, 바로 밑의 노드 D와의 사이에 세션을 확립하게 된다. 또한, 노드 E는, 바로 위의 노드 D와의 사이에 세션을 확립한 곳까지는 마찬가지이지만, 최하위의 노드이기 때문에, 최상위의 노드 A와의 사이에, 후술하는 수신통지를 행하기 위한 세션을 확립하게 된다.
또한, 전술한 CPU(101) 등이 이러한 경로 결정부(302)로서 기능할 수 있다.
도 4로 되돌려, 데이터 수신부(303)는, 경로 결정부(302)에 의해서 결정된 송신 경로에 의거해서 접속한 바로 위의 노드로부터 송신되는 데이터를 수신한다. 또, 최상위의 노드가 된 단말(12)의 경우, 데이터 수신부(303)는 서버(11)로부터 직접 송신되는 데이터를 수신한다.
그리고, 데이터 수신부(303)는 수신한 데이터를 송신 데이터 기억부(304)에 순차 격납한다.
또한, 전술한 NIC(110)가 이러한 데이터 수신부(303)로서 기능할 수 있다.
송신 데이터 기억부(304)는 데이터 수신부(303)가 수신한 데이터를 기억한다.
또, 전술한 바와 같이, 평가용 프로그램은 소정의 블록 크기로 분할되어서 송신된다. 그 때문에, 송신되는 데이터에는, 원래의 평가용 프로그램으로 복원하 기 위하여 필요한 정보도 포함되어 있다.
송신 데이터 기억부(304)는, 이와 같이 송신된 데이터를 순차 기억하고, 모든 데이터(전체 블록)를 취득한 후에는, 복원된 평가용 프로그램을 기억한다.
또한, 전술한 RAM(103)이나 외부 메모리(106)가 이러한 송신 데이터 기억부(304)로서 기능할 수 있다.
어드레스 부가부(305)는 데이터 수신부(303)가 수신한 데이터에 자기의 어드레스 등을 부가한다.
구체적으로는, 도 6a에 나타낸 바와 같이, 송신되는 데이터는, 데이터 본체(데이터부) 이외에, 헤더부가 마련되어 있다. 이 헤더부는, 소정수의 영역(area)(ad1 내지 ad11)으로 구분되어 있고, 각 노드가 자기의 어드레스 등의 정보를 각 영역에 부가할 수 있도록 되어 있다.
그 때문에, 어드레스 부가부(305)는, 이 헤더부의 선두 영역(ad1)으로부터 말미 영역(adn)을 향해서 빈 영역을 탐색하여, 최초에 발견한 빈 영역에, 자기의 어드레스(예를 들어, IP 어드레스 등)나 자기의 식별 정보(MAC 어드레스 등)를 설정한다.
즉, 각 노드가 각각에, 데이터를 수신했을 때에, 헤더부의 빈 영역을 탐색해서 자기의 어드레스 등을 부가하기 때문에, 예를 들어, 도 6b에 나타낸 바와 같이, 실제의 송신 경로의 순서로 헤더부의 각 영역이 선두부터 채워나갈 수 있게 된다.
또한, 전술한 CPU(101) 등이 이러한 어드레스 부가부(305)로서 기능할 수 있다.
도 4로 되돌려, 상위 노드 관리부(306)는, 데이터 수신부(303)가 수신한 데이터(헤더부)에 부가되어 있던 어드레스 등에 의거해서, 현시점에 있어서의 자기보다도 상위의 노드로 되는 단말(12)을 관리한다.
예를 들어, 상위 노드 관리부(306)는, 전술한 도 6b에 나타낸 바와 같은 헤더부에 부가되어 있는 노드의 어드레스 등을 독출하여, 도 7에 나타낸 바와 같은 상위 노드 테이블(T)을 작성(갱신)한다. 즉, 상위 노드 관리부(306)는, 상위 노드 테이블(T)을 적절하게 갱신하여, 자기보다도 상위의 송신 경로(노드의 배열)가, 항상 최신의 상태로 되도록 관리한다. 이 상위 노드 테이블(T)은, 후술하는 바와 같이, 바로 위의 노드와의 세션이 단절된 경우 등에 참조된다.
또, 전술한 CPU(101) 및 RAM(103) 등이 이러한 상위 노드 관리부(306)로서 기능할 수 있다.
재송신 요구부(307)는, 바로 위의 노드와의 접속 단절에 의해, 데이터 수신부(303)가 데이터를 수신할 수 없게 된 경우에, 다른 상위의 노드에 접속해서 데이터의 재송신을 요구한다. 예를 들어, 재송신 요구부(307)는, 상위 노드 관리부(306)에서 관리되는 상위 노드 테이블을 참조하여, 바로 위의 노드 대신에 다른 상위의 노드에의 접속을 시도해서, 접속된 상위의 노드에 대해서 데이터의 재송신을 요구한다.
구체적으로는, 도 5b에 나타낸 바와 같은 송신 경로가 결정되어 있던 상태에서, 노드 C가 소멸하면, 노드 C와 노드 D와의 세션이 단절된다(보다 상세하게는, 노드 B와 노드 C와의 세션도 단절된다). 이 경우, 노드 D의 재송신 요구부(307) 는, 도 7에 나타낸 상위 노드 테이블(T)을 참조하여, 노드 C의 바로 위의 노드 B에 접속을 시도한다. 그리고, 접속된 경우에 그 노드 B에 데이터의 재송신을 요구한다. 또, 노드 B에 접속이 되지 않았던 경우에는, 더욱 상위의 노드 A에 접속을 시도하여, 접속된 경우에 그 노드 A에 데이터의 재송신을 요구하게 된다.
그리고, 재송신 요구부(307)에 의해서 재송신을 요구한 노드가, 새로운 바로 위의 노드로 된다.
또, 전술한 NIC(110)가 이러한 재송신 요구부(307)로서 기능할 수 있다.
도 4로 되돌려, 데이터 송신부(308)는, 결정된 송신 경로에 의거해서 접속한 바로 밑의 노드에 대해서 자기가 수신한 데이터를 송신한다.
즉, 데이터 수신부(303)가 수신한 데이터(보다 상세하게는, 어드레스 부가부(305)가 어드레스 등을 부가한 데이터)를, 바로 밑의 노드로 되는 단말(12)에 송신한다.
이것에 의해, 각 노드는, 상위의 노드로부터 하위의 노드로, 버킷 릴레이와 같이 데이터를 송신하게 된다.
또한, 최하위의 노드의 데이터 송신부(308)는, 바로 밑의 노드가 없기 때문에, 데이터 송신을 행하지 않는다.
그리고, 전술한 NIC(110)가 이러한 데이터 송신부(308)로서 기능할 수 있다.
수신통지 회신부(309)는, 자기(단말(12))가 최하위의 노드로 된 경우에 기능하고, 데이터 수신부(303)가 데이터를 수신하면, 최상위의 노드에 수신통지를 회신한다. 예를 들어, 수신통지 회신부(309)는, 현시점에 있어서의 전체 송신 경로를 나타내는 리스트를 생성하고, 이 리스트를 포함하는 수신통지를 최상위의 노드로 되는 단말(12)에 회신한다.
구체적으로 도 5b에 나타낸 송신 경로의 경우를 일례로서 설명하면, 최하위의 노드 E의 수신통지 회신부(309)는, 상위 노드 관리부(306)에 관리되는 상위 노드 테이블을 독출하여, 그것에, 자기의 어드레스 등을 부가한 리스트, 즉, 노드 A로부터 노드 E에 이르기까지의 전체 송신 경로를 나타내는 리스트를 생성한다. 그리고, 생성한 리스트를 포함하는 수신통지를, 최상위의 노드 A에 송신한다.
또한, 전술한 CPU(101) 및 NIC(110) 등이 이러한 수신통지 회신부(309)로서 기능할 수 있다.
(서버 및 단말의 동작 개요)
도 8은 전술한 구성의 서버(11)에서 실행되는 송신요구 수신처리의 흐름을 나타낸 순서도이다. 또, 도 9는 각 단말(12)에서 실행되는 송신경로 결정처리의 흐름을 나타낸 순서도이다. 이하, 이들 도면을 참조해서 서버(11) 및 각 단말(12)의 동작에 대해서 설명한다.
최초에, 서버(11)의 동작에 대해서, 도 8의 송신요구 수신처리를 참조해서 설명한다. 또한, 서버(11)의 송신용 데이터 기억부(206)에는, 평가용 프로그램이 송신 가능하게 격납되어 있는 것으로 한다.
우선, 서버(11)는, 단말(12)로부터 송신요구가 전송될 때까지, 후속처리의 실행을 대기한다(스텝 S401: 아니오). 즉, 임의의 평가용 프로그램이 지정된 송신요구를 수신할 때까지 대기한다.
그리고, 송신요구를 수신하면(스텝 S401: 예), 서버(11)는, 송신이 요구된 평가용 프로그램에 대해서, 노드정보 기억부(203)를 검색한다(스텝 S402).
즉, 노드정보 기억부(203) 중에서, 지정된 평가용 프로그램에 대응하는 노드 정보에 대해서 검색한다.
서버(11)는 최상위의 노드가 선정 완료되었는지의 여부를 판별한다(스텝 S403). 요컨대, 지정된 평가용 프로그램에 대응하는 노드 정보가 노드정보 기억부(203)에 격납되어 있는지의 여부를 판별한다.
즉, 평가용 프로그램에 대응하는 노드 정보가 격납되어 있던 경우에, 최상위 노드가 선정 완료된 것으로 판별하고, 반대로, 격납되어 있지 않았던 경우에, 최상위 노드가 미선정인 것으로 판별한다.
서버(11)는, 최상위의 노드가 선정 완료가 아닌 것으로 판별하면(스텝 S403: 아니오), 송신을 요구한 단말(12)을 최상위의 노드로서 선정한다(스텝 S404).
즉, 선정부(202)는, 그 평가용 프로그램에 대해서, 가장 조기 송신요구를 보내온 단말(12)을 최상위의 노드로서 선정한다. 그리고, 선정한 단말(12)의 어드레스 등을 노드정보 기억부(203)에 격납한다.
한편, 최상위의 노드가 선정 완료인 것으로 판별한 경우에(스텝 S403: 예), 서버(11)는, 송신을 요구한 단말(12)에 최상위의 노드를 소개한다(스텝 S405).
즉, 소개부(204)는, 요구한 단말(12)에 대해서, 노드정보 기억부(203)에 기억된 단말(12)의 어드레스 등을 회신함으로써, 최상위의 노드로 되는 단말(12)을 소개한다.
이러한 송신요구 수신처리에 의해, 서버(11)는, 송신이 요구된 때에, 최상위의 노드로 되는 단말(12)을 미선정 상태이면, 요구해온 단말(12)을 최상위의 노드로서 선정한다. 한편, 선정 완료 상태이면, 그 선정 완료된 단말(12)(최상위의 노드)을, 요구해온 단말(12)에 소개한다.
그리고, 데이터를 송신할 때에, 서버(11)는, 선정한 노드 기기에만 송신을 행하면 되므로, 부하를 경감할 수 있다.
다음에, 각 단말(12)(각 노드)의 동작에 대해서, 도 9의 송신경로 결정처리를 참조해서 설명한다. 또, 이 송신경로 결정처리는, 데이터 송신을 개시하기 전에, 소정 수의 단말(12)이 갖추어진 상태에서 행해도 되고, 또한, 한번 송신 경로를 결정한 후이더라도, 새로운 단말을 가하기 위해서, 순시 행해도 된다.
우선, 단말(12)은, 다른 단말(12)로부터 소개에 의한 액세스가 있을 때까지, 후속처리의 실행을 대기한다(스텝 S501: 아니오). 즉, 경로 결정부(302)는, 서버(11)에 의한 소개나, 상위의 단말(12)에 의한 소개에 의거해서 이루어진 다른 단말(12)로부터의 액세스를 대기한다.
그리고, 소개에 의한 액세스가 있으면(스텝 S501: 예), 단말(12)은 자기의 바로 아래에 노드가 존재하고 있는지의 여부를 판별한다(스텝 S502). 즉, 경로 결정부(302)는, 바로 밑의 노드로서 다른 단말(12)을 관리하고 있는 상태인지의 여부를 판별한다.
단말(12)은, 바로 밑의 노드가 존재하고 있지 않은 것으로 판별하면(스텝 S502: 아니오), 액세스원의 단말(12)을 바로 밑의 노드로서 관리한다(스텝 S503).
즉, 경로 결정부(302)는, 액세스원의 단말(12)과의 사이에서 송신용의 세션을 확립하여, 자기로부터 그 단말(12)에 송신 등을 행할 수 있는 상태로 한다.
한편, 바로 밑의 노드가 존재하고 있는 것으로 판별한 경우에(스텝 S502: 예), 단말(12)은 액세스원의 단말(12)에 대해서 바로 밑의 노드를 소개한다(스텝 S504).
즉, 경로 결정부(302)는, 자기의 하위에 몇 개인가의 노드가 있으므로, 바로 밑의 노드를 액세스원의 단말(12)에 소개하여, 재차 액세스시킨다.
이러한 송신경로 결정처리에 의해, 나중에 송신요구를 행한 단말(12)은, 최상위의 단말(12), 그 하위(바로 밑)의 단말(12), 더욱 하위의 단말(12)에, 순차적으로 소개되는 것으로 되어, 최종적으로 최하위의 노드로서 그 1개 상위(바로 위)의 노드와 접속하게 된다.
이와 같이 해서 송신 경로가 결정되어, 각각이 통신 가능하게 되면, 그 경로를 따라서 상위의 노드로부터 하위의 노드로 버킷 릴레이와 같이 데이터의 송신이 행해지는 것으로 된다.
이 때문에, 데이터 송신 시의 부하가, 종래와 같이 서버에 집중되는 일없이, 노드 측에서 적절하게 분산되게 된다.
이 결과, 서버(11)에 부하가 집중하는 것을 피하여, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
(노드가 소멸된 경우의 동작)
전술한 송신경로 결정처리에 의해 송신 경로가 결정되어, 데이터 송신이 행 해지고 있는 도중에, 어떠한 이유에 의해, 노드가 소멸되어버리는 일도 생길 수 있다. 예를 들어, 단말(12)의 네트워크 접속이 단절되어 버리거나, 단말(12)의 전원이 꺼져 버리면, 그 노드가 소멸되어 버리게 된다.
이 경우, 소멸한 노드를 제외하고 송신 경로가 재구축되지 않으면, 소멸한 노드보다도 하위의 노드에는, 데이터 송신이 행해지지 않게 되어버린다.
그 때문에, 본원의 실시예에 따른 단말(12)에는, 전술한 재송신 요구부(307)가 구비되어 있어, 노드가 소멸된 때에도, 데이터 송신이 적절하게 계속될 수 있게 하고 있다.
이하, 노드가 소멸된 경우에 있어서의 단말(12)의 동작에 대해서, 도 10을 참조해서 설명한다.
도 10은 각 단말(12)에서 실행되는 재송신 요구처리의 흐름을 나타낸 순서도이다. 이 재송신 요구처리는, 예를 들어, 데이터 송신과 병행해서 실행된다.
우선, 단말(12)은, 바로 위의 노드와의 접속이 두절되었는지의 여부를 순차 판별한다(스텝 S601). 예를 들어, 재송신 요구부(307)는, 데이터 송신을 행하고 있는 도중에, 데이터 수신부(303)의 수신 상태를 감시하여, 수신을 할 수 없게 되면, 바로 위의 노드와의 접속이 두절된 것으로 판별한다.
또한, 접속이 두절되어 있지 않으면(스텝 S601: 아니오), 이후의 처리는 실행되지 않는다
한편, 접속이 두절된 것으로 판별하면(스텝 S601: 예), 단말(12)은 변수 n에 초기값 2를 설정한다. 이 변수 n은 자기보다도 얼만큼 상위의 노드인지를 나타내 는 값이다.
즉, 변수 n이 2인 경우, 자기보다도 2개 상위의 노드를 나타내고, 또한, 변수 n이 3인 경우, 자기보다도 3개 상위의 노드를 나타내게 된다. 또한, 변수 n이 1인 경우를 건너뛰고 있는 것은, 자기보다도 1개 상위의 노드, 즉, 바로 위의 노드를 나타내기 위함이다.
단말(12)은, 변수 n의 값에 따라서, 자기보다도 n만큼(n개) 상위의 노드를, 상위 노드 테이블로부터 특정한다(스텝 S603).
그리고, 단말(12)은 특정한 노드와의 접속을 시도한다(스텝 S604). 즉, 재송신 요구부(307)는, 접속이 두절된 바로 위의 노드보다도 상위의 노드에 대해서 접속을 시도한다.
단말(12)은 접속가능했던 것인지의 여부를 판별한다(스텝 S605). 즉, 재송신 요구부(307)는, 특정한 상위의 노드와의 사이에 송신용의 세션이 확립되어 있는지의 여부를 판별한다.
단말(12)은, 접속 불능이었던 것으로 판별하면(스텝 S605: 아니오), 변수 n에 1을 가산해서(스텝 S606), 스텝 S603로 처리를 되돌린다.
한편, 접속가능이었던 것으로 판별하면(스텝 S605: 예), 단말(12)은 접속한 노드에 재송신요구를 송신한다(스텝 S607).
그리고, 단말(12)은, 바로 위의 노드를, 이번에 새롭게 접속한 노드로 전환하여, 데이터 송신을 계속한다(스텝 S608).
즉, 전환한 바로 위의 노드로부터 재송신되는 데이터를 데이터 수신부(303) 가 수신하면, 그 데이터에 어드레스 등을 부가한 후, 데이터 송신부(308)가 바로 밑의 노드에 송신한다. 즉, 자기 노드 및 자기보다도 하위의 노드에는, 소멸한 노드의 어드레스 등이 생략되어서(부가되지 않고), 데이터가 송신된다. 그 때문에, 상위 노드 관리부(306)에 의해, 상위 노드 테이블이 최신의 상태로 갱신되게 된다.
이와 같은 재송신요구처리에 의해, 도중에 노드가 소멸된 때에, 자율적으로 송신 경로를 재구축하여, 데이터 송신을 적절하게 계속할 수 있다.
(다른 실시예 )
전술한 실시예에서는 발명의 이해를 쉽게 하기 위해서, 도 5b에 나타낸 바와 같은, 각 노드가 1열로 배열되는 가장 간단한 송신 경로를 일례로서 설명하였다.
그러나, 송신 경로의 배열은, 이러한 간단한 경로로 한정되지 않고, 각 단말(12)의 처리 능력이나, 각 단말(12) 사이의 통신 용량(통신 속도 등)에 따라서, 적절하게 변경가능하다.
예를 들어, 도 11a에 나타낸 바와 같은 분기되는 송신 경로에 대해서도, 본원 발명은 적절하게 적용할 수 있다. 이하, 구체적으로 설명한다.
우선, 도 11a의 송신 경로가 결정되는 것에 앞서서, 마찬가지로, 최상위의 노드(이 경우에도, 노드 A)가 서버(11)에 의해 선정된다. 그리고, 도 11b에 나타낸 바와 같이 최상위의 노드 A를 향해서, 노드 B 내지 G의 순서로, 서버(11)로부터의 소개에 의거한 액세스가 행해지는 것으로 한다.
노드 A는, 처리 능력 등에 의거해서 바로 밑의 노드수를 결정하면(이 경우, 노드수: 2), 2번째까지 액세스해온 노드(이 경우, 노드 B 및 C)를 바로 밑의 노드 로 결정한다. 그리고, 계속해서 액세스해온 노드 D 내지 G에 대해서, 노드 B 및 C 중 어느 한쪽을 소개한다. 일례로서, 노드 A는 소개처를 교대로 전환하여 소개한다. 그 때문에, 노드 D 및 F에는 노드 B가 소개되고, 또한, 노드 E 및 G에는 노드 C가 소개된다. 그리고, 노드 D 내지 G는 소개된 노드에 각각 액세스하게 된다.
또한, 노드 B도, 처리 능력 등에 의거해서, 바로 밑의 노드수를 결정하면(이 경우, 노드수: 1), 최초로 액세스해온 노드(이 경우, 노드 D)를 바로 밑의 노드로 결정한다. 그리고, 계속해서 액세스해온 노드 F에 대해서, 노드 D를 소개한다.
또한, 노드 D는 액세스해온 노드 F를 바로 밑의 노드로 결정한다.
최후에, 노드 C도, 처리 능력 등에 의거해서, 바로 밑의 노드수를 결정하면(이 경우, 노드수: 2), 2번째까지 액세스해온 노드(이 경우, 노드 E 및 G)를 바로 밑의 노드로 결정한다.
이와 같이 해서 결정된 송신 경로에 따라서, 각 노드는, 바로 위의 노드와의 사이, 그리고, 바로 밑의 노드와의 사이에, 각각 송신용의 세션을 접속한다.
또한, 최하위로 되는 노드 F, E 및 G는, 각각 최상위의 노드 A와의 사이에, 수신통지를 행하기 위한 세션을 확립하게 된다.
이와 같은 분기되는 송신 경로의 경우에도, 그들의 경로(분기된 각 경로)를 따라서 상위의 노드로부터 하위의 노드로 버킷 릴레이와 같이 데이터의 송신이 행해지게 된다.
이 결과, 서버(11)에 부하가 집중되는 것을 피하여, 데이터 송신 시의 부하를 적절하게 저감할 수 있다.
또한, 본원에 대해서는, 일본국 특허출원 제2007-189149호를 기초로 하는 우선권을 주장하고, 상기 기초출원의 내용을 본원에 원용하는 것으로 한다.
이상에서 설명한 바와 같이, 본 발명에 의하면, 데이터 송신 시의 부하를 적절하게 저감가능한 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램을 제공할 수 있다.

Claims (13)

  1. 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크 시스템으로서,
    상기 서버는,
    상기 각 노드 기기로부터 전송되는 송신요구를 수신하는 송신요구 수신부(201);
    상기 송신요구를 전송한 각 노드 기기 중, 적어도 1개를 최상위의 노드 기기로서 선정하는 선정부(202);
    선정하지 않은 나머지 각 노드 기기에, 선정한 해당 노드 기기를 소개하는 소개부(204);
    선정한 해당 노드 기기를 향해서 데이터를 송신하는 송신부(205)를 포함하고,
    상기 각 노드 기기의 각각은,
    상기 서버를 향해서 송신요구를 송신하는 송신요구 송신부(301);
    바로 위가 되는 통신상대와의 접속 및 바로 아래가 되는 통신 상대와의 접속을 포함하는 송신 경로를 결정하는 경로 결정부(302);
    결정된 상기 송신 경로에 의거해서 접속한 바로 위의 통신 상대로부터 송신되는 데이터를 수신하는 데이터 수신부(303);
    해당 수신된 데이터를, 결정된 해당 송신경로에 기초하여 접속한 바로 아래의 통신 상대에 송신하는 데이터 송신부(308)를 포함하고,
    상기 서버에 선정된 상기 노드 기기의 상기 경로결정부(302)는, 상기 서버를 바로 위의 통신상대로 하고, 상기 서버의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지 노드 기기에 해당 바로 아래의 노드기기를 소개하고,
    상기 서버에 선정되지 않은 상기 노드기기의 상기 경로결정부(302)는, 자기가 바로 아래의 노드기기로서 선정될 때에, 자기를 선정한 상기 노드기기를 바로 위의 통신상대로 하고, 상기 바로 위의 노드기기의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지의 노드기기가 있으면 해당 나머지 노드기기에 해당 바로 아래의 노드기기를 소개하며,
    상기 서버의 상기 선정부(202)는 해당 송신요구를 가장 빨리 전송한 노드기기를 최상위의 노드기기로서 선정하고,
    상기 서버에 선정된 상기 노드기기의 상기 경로결정부(302)는 상기 서버의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하며,
    상기 서버에 선정되지 않은 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하고, 액세스가 없었던 경우 바로 아래의 통신상대를 선정하지 않는,
    것을 특징으로 하는 네트워크 시스템.
  2. 제1항에 있어서, 상기 노드 기기는,
    상기 데이터 수신부(303)가 수신한 데이터에 자기의 어드레스를 부가하는 어드레스 부가부(305);
    상기 수신한 데이터에 이미 부가되어 있던 어드레스에 의거해서, 현시점에 있어서의 자기보다도 상위의 노드 기기를 관리하는 상위 노드 관리부(306)를 추가로 포함하고,
    바로 아래의 노드기기를 선정한 상기 노드기기의 상기 데이터 송신부(308)는, 어드레스가 부가된 데이터를 바로 아래의 노드 기기에 송신하며,
    바로 아래의 통신상대를 선정하지 않은 상기 노드기기는, 상기 데이터수신부(303)가 수신한 데이터에 부가되어 있던 모든 어드레스 및 자기의 어드레스에 의거하여 현시점에 있어서의 실제 송신경로를 표시하는 리스트를 생성하고, 수신통지에 상기 리스트를 부가하여 최상위의 노드기기에 회신하는 수신통지 회신부(309)를 더 포함하는 것을 특징으로 하는 네트워크 시스템.
  3. 제1항에 있어서, 상기 노드 기기는,
    바로 위의 노드 기기와의 접속 단절에 의해, 상기 데이터 수신부(303)가 데이터를 수신할 수 없게 된 경우에, 상기 상위 노드 관리부(306)에서 관리되는 상위의 노드 기기 중, 하위로부터 차례로 접속을 시도하여, 접속된 노드 기기에 데이터의 재송신을 요구하는 재송신 요구부(307)를 추가로 포함하고,
    상기 데이터 수신부(303)는, 상기 재송신 요구부(307)가 재송신을 요구한 노드 기기를 새로운 바로 위의 노드 기기로 해서, 당해 바로 위의 노드 기기로부터 송신되는 데이터를 수신하는 것을 특징으로 하는 네트워크 시스템.
  4. 제1항에 있어서,
    상기 서버에 선정된 상기 노드기기의 상기 경로결정부(302)는 상기 서버의 소개에 의해 자기에게 액세스해 온 새로운 노드에 바로 아래의 노드기기를 소개하고,
    상기 서버에 선정되지 않은 상기 노드기기 중 바로 아래의 노드기기를 선정한 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 자기에게 액세스해 온 새로운 노드기기에 바로 아래의 노드기기를 소개하며,
    상기 서버에 선정되지 않은 상기 노드기기 중 바로 아래의 노드기기를 선정하지 않은 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 자기에게 액세스해 온 새로운 노드기기를 바로 아래의 통신상대로서 선정하는,
    것을 특징으로 하는 네트워크 시스템.
  5. 데이터의 송신원으로 되는 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크에 있어서의 각 노드 기기로서,
    상기 서버를 향해서 송신요구를 송신하는 송신요구 송신부(301);
    바로 위가 되는 통신상대와의 접속 및 바로 아래가 되는 통신상대와의 접속을 포함하는 송신 경로를 결정하는 경로 결정부(302);
    결정된 상기 송신 경로에 의거해서 접속한 바로 위의 통신상대로부터 송신되는 데이터를 수신하는 데이터 수신부(303);
    해당 수신한 데이터를, 결정된 해당 송신경로에 의거하여 접속한 바로 아래의 통신상대에 송신하는 데이터 송신부(308)를 포함하고,
    상기 서버에 선정된 상기 노드 기기의 상기 경로결정부(302)는, 상기 서버를 바로 위의 통신상대로 하고, 상기 서버의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지 노드 기기에 해당 바로 아래의 노드기기를 소개하고,
    상기 서버에 선정되지 않은 상기 노드기기의 상기 경로결정부(302)는, 자기가 바로 아래의 노드기기로서 선정될 때에, 자기를 선정한 상기 노드기기를 바로 위의 통신상대로 하고, 상기 바로 위의 노드기기의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지의 노드기기가 있으면 해당 나머지 노드기기에 해당 바로 아래의 노드기기를 소개하며,
    상기 서버에 송신요구를 가장 빨리 송신한 노드기기가 최상위의 노드기기로서 선정되고,
    상기 서버에 선정된 상기 노드기기의 상기 경로결정부(302)는 상기 서버의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하며,
    상기 서버에 선정되지 않은 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하고, 액세스가 없었던 경우 바로 아래의 통신상대를 선정하지 않는,
    것을 특징으로 하는 노드 기기.
  6. 제5항에 있어서,
    상기 데이터 수신부(303)가 수신한 데이터에 자기의 어드레스를 부가하는 어드레스 부가부(305); 및
    상기 수신한 데이터에 이미 부가되어 있던 어드레스에 의거해서, 현시점에 있어서의 자기보다도 상위의 노드 기기를 관리하는 상위 노드 관리부(306)를 추가로 포함하고,
    바로 아래의 노드기기를 선정한 상기 노드기기의 상기 데이터 송신부(308)는, 어드레스가 부가된 데이터를 바로 아래의 노드 기기에 송신하며,
    바로 아래의 통신상대를 선정하지 않은 상기 노드기기는, 상기 데이터 수신부(303)가 수신한 데이터에 부가되어 있던 모든 어드레스 및 자기의 어드레스에 의거하여 현시점에 있어서의 실제 송신경로를 표시하는 리스트를 생성하고, 수신통지에 해당 리스트를 부가하여 최상위의 노드기기에 회신하는 수신통지 회신부(309)를 더 포함하는,
    것을 특징으로 하는 노드 기기.
  7. 제5항에 있어서, 바로 위의 노드 기기와의 접속 단절에 의해, 상기 데이터 수신부(303)가 데이터를 수신할 수 없게 된 경우에, 상기 상위 노드 관리부(306)에서 관리되는 상위의 노드 기기 중, 하위로부터 차례로 접속을 시도하여, 접속된 노드 기기에 데이터의 재송신을 요구하는 재송신 요구부(307)를 추가로 포함하고,
    상기 데이터 수신부(303)는, 상기 재송신 요구부(307)가 재송신을 요구한 노드 기기를 새로운 바로 위의 노드 기기로 해서, 당해 바로 위의 노드 기기로부터 송신되는 데이터를 수신하는 것을 특징으로 하는 노드 기기.
  8. 제5항에 있어서,
    상기 서버에 선정된 상기 노드기기의 상기 경로결정부(302)는 상기 서버의 소개에 의해 자기에게 액세스해 온 새로운 노드에 바로 아래의 노드기기를 소개하고,
    상기 서버에 선정되지 않은 상기 노드기기 중 바로 아래의 노드기기를 선정한 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 액세스해 온 새로운 노드기기에 바로 아래의 노드기기를 소개하며,
    상기 서버에 선정되지 않은 상기 노드기기 중 바로 아래의 노드기기를 선정하지 않은 상기 노드기기의 상기 경로결정부(302)는 상기 바로 위의 노드기기의 소개에 의해 액세스해 온 새로운 노드기기를 바로 아래의 통신상대로서 선정하는,
    것을 특징으로 하는 노드기기.
  9. 서버와 복수의 노드 기기가 각각에 통신가능한 네트워크 시스템에 있어서의 데이터 송신방법으로서,
    상기 서버가 행하는, 상기 각 노드 기기로부터 전송되는 송신요구를 수신하는 송신요구 수신스텝;
    상기 서버가 행하는, 상기 송신요구를 전송한 각 노드 기기 중, 적어도 1개를 최상위의 노드 기기로서 선정하는 선정스텝;
    상기 서버가 행하는, 선정하지 않은 나머지 각 노드 기기에, 선정한 해당 노드 기기를 소개하는 소개스텝;
    상기 서버가 행하는, 선정한 해당 노드 기기를 향해서 데이터를 송신하는 송신스텝;
    상기 각 노드 기기가 행하는, 상기 서버를 향해서 송신요구를 송신하는 송신요구 송신스텝;
    상기 각 노드 기기가 행하는, 바로 위가 되는 통신상대와의 접속 및 바로 아래가 되는 통신상대와의 접속을 포함하는 송신 경로를 결정하는 경로 결정스텝;
    각 노드 기기가 행하는, 결정된 상기 송신 경로에 의거해서 접속한 바로 위의 통신상대로부터 송신되는 데이터를 수신하는 데이터 수신스텝;
    상기 각 노드기기가 행하는, 상기 수신한 데이터를 결정된 해당 송신경로에 의거하여 접속한 바로 아래의 통신상대에 송신하는 데이터 송신스텝을 포함하고,
    상기 서버에 선정된 상기 노드 기기가 행하는 상기 경로결정스텝은, 상기 서버를 바로 위의 통신상대로 하고, 상기 서버의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지 노드 기기에 해당 바로 아래의 노드기기를 소개하고,
    상기 서버에 선정되지 않은 상기 노드기기가 행하는 상기 경로결정스텝은, 자기가 바로 아래의 노드기기로서 선정될 때에, 자기를 선정한 상기 노드기기를 바로 위의 통신상대로 하고, 상기 바로 위의 노드기기의 소개에 의해 자기에게 액세스해 온 상기 노드기기 중의 적어도 하나를 바로 아래의 노드기기로서 선정함과 동시에, 나머지 노드기기가 있으면 해당 나머지 노드기기에 해당 바로 아래의 노드기기를 소개하며,
    상기 서버가 행하는 상기 선정스텝에서는, 해당 송신요구를 가장 빨리 전송한 노드기기를 최상위의 노드기기로서 선정하고,
    상기 서버에 선정된 상기 노드기기가 행하는 상기 경로결정스텝에서는, 상기 서버의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하며,
    상기 서버에 선정되지 않은 상기 노드기기가 행하는 상기 경로결정스텝에서는, 상기 바로 위의 노드기기의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 노드기기를 바로 아래의 통신상대로서 선정하고, 액세스가 없었던 경우 바로 아래의 통신상대를 선정하지 않는,
    것을 특징으로 하는 데이터 송신방법.
  10. 데이터의 송신원으로 되는 서버와 복수의 컴퓨터가 각각에 통신가능한 네트워크에 있어서의 각 컴퓨터를,
    상기 서버를 향해서 송신요구를 송신하는 송신요구 송신부(301);
    바로 위가 되는 통신상대와의 접속 및 바로 아래가 되는 통신상대와의 접속을 포함하는 송신 경로를 결정하는 경로 결정부(302);
    결정된 상기 송신 경로에 의거해서 접속한 바로 위의 통신상대로부터 송신되는 데이터를 수신하는 데이터 수신부(303);
    해당 수신한 데이터를 결정된 해당 송신경로에 의거하여 접속한 바로 아래의 통신상대에 송신하는 데이터 송신부(308)로서 기능시키고,
    상기 서버에 선정된 상기 컴퓨터의 상기 경로결정부(302)는, 상기 서버를 바로 위의 통신상대로 하고, 상기 서버의 소개에 의해 자기에게 액세스해 온 상기 컴퓨터 중의 적어도 하나를 바로 아래의 컴퓨터로서 선정함과 동시에, 나머지 컴퓨터에 해당 바로 아래의 컴퓨터를 소개하고,
    상기 서버에 선정되지 않은 상기 컴퓨터의 상기 경로결정부(302)는, 자기가 바로 아래의 컴퓨터로서 선정될 때에, 자기를 선정한 상기 컴퓨터를 바로 위의 통신상대로 하고, 상기 바로 위의 컴퓨터의 소개에 의해 자기에게 액세스해 온 상기 컴퓨터 중의 적어도 하나를 바로 아래의 컴퓨터로서 선정함과 동시에, 나머지 컴퓨터가 있으면 해당 나머지 컴퓨터에 해당 바로 아래의 컴퓨터를 소개하며,
    상기 서버에 선정된 상기 컴퓨터의 상기 경로결정부(302)는 상기 서버의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 컴퓨터를 바로 아래의 통신상대로서 선정하며,
    상기 서버에 선정되지 않은 상기 컴퓨터의 상기 경로결정부(302)는 상기 바로 위의 컴퓨터의 소개에 의해 가장 빨리 자기에게 액세스해 온 상기 컴퓨터를 바로 아래의 통신상대로서 선정하고, 액세스가 없었던 경우 바로 아래의 통신상대를 선정하지 않도록 기능시키는,
    것을 특징으로 하는 프로그램을 기록한 정보기록매체.
  11. 삭제
  12. 삭제
  13. 삭제
KR20097020896A 2007-07-20 2008-07-08 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램 KR101087089B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007189149A JP4637145B2 (ja) 2007-07-20 2007-07-20 ネットワークシステム、ノード機器、データ配信方法、および、プログラム
JPJP-P-2007-189149 2007-07-20
PCT/JP2008/062330 WO2009013999A1 (ja) 2007-07-20 2008-07-08 ネットワークシステム、ノード機器、データ配信方法、情報記録媒体、および、プログラム

Publications (2)

Publication Number Publication Date
KR20090130371A KR20090130371A (ko) 2009-12-23
KR101087089B1 true KR101087089B1 (ko) 2011-11-25

Family

ID=40281257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20097020896A KR101087089B1 (ko) 2007-07-20 2008-07-08 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램

Country Status (7)

Country Link
US (1) US20100183017A1 (ko)
EP (1) EP2172846A1 (ko)
JP (1) JP4637145B2 (ko)
KR (1) KR101087089B1 (ko)
CN (1) CN101627374B (ko)
TW (1) TW200909036A (ko)
WO (1) WO2009013999A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012238095A (ja) * 2011-05-10 2012-12-06 Nippon Telegr & Teleph Corp <Ntt> ソフトウェアイメージ配信方法、ソフトウェアイメージ配信システムおよびそのプログラム
EP2966631B1 (en) 2013-03-07 2020-02-12 Fujitsu Limited Data collection method, system and data collection program
CN103546559B (zh) * 2013-10-24 2018-02-02 网宿科技股份有限公司 数据分发方法和装置
US10057263B2 (en) * 2016-03-01 2018-08-21 Cay JEGLINSKI Application management system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107349A (ja) * 2004-10-08 2006-04-20 Sony Corp データ取得提供プログラム
US20060221862A1 (en) * 2005-03-30 2006-10-05 Fujitsu Limited Network device management apparatus, network device management program, and network device management method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19531609A1 (de) * 1994-09-13 1996-03-28 Siemens Ag Verfahren zur Verkehrslenkung in einem Kommunikationsnetz
US7047306B2 (en) * 2000-01-17 2006-05-16 Egc & Co., Ltd. System and method for providing internet broadcasting data based on hierarchical structure
US6973491B1 (en) * 2000-08-09 2005-12-06 Sun Microsystems, Inc. System and method for monitoring and managing system assets and asset configurations
US6975589B2 (en) * 2000-12-30 2005-12-13 Redback Networks Inc. Method and apparatus for a hybrid variable rate pipe
US7181547B1 (en) * 2001-06-28 2007-02-20 Fortinet, Inc. Identifying nodes in a ring network
JP2004287631A (ja) 2003-03-20 2004-10-14 Konami Co Ltd ダウンロードサービスシステム、端末、指令列の実行方法、ならびに、プログラム
JP2005198201A (ja) * 2004-01-09 2005-07-21 Ntt Docomo Inc ネットワークトポロジー構成方法及びノード
JP2006065660A (ja) * 2004-08-27 2006-03-09 Sony Corp 端末機器、情報配信サーバ、および情報配信方法
US8099482B2 (en) * 2004-10-01 2012-01-17 E-Cast Inc. Prioritized content download for an entertainment device
EP1659488A1 (en) * 2004-11-17 2006-05-24 Alcatel Method of providing software components to nodes in a telecommunication network
JP2006287919A (ja) * 2005-03-08 2006-10-19 Nec Corp 通信ネットワーク、コンテンツ配信ノード、ツリー構築方法、コンテンツ配信制御プログラム
JP2006293700A (ja) * 2005-04-11 2006-10-26 Ntt Docomo Inc 通信装置、及び、コンテンツ配信方法
JP4604919B2 (ja) * 2005-08-31 2011-01-05 ブラザー工業株式会社 コンテンツ配信システム、コンテンツ配信方法、接続管理装置、配信装置、端末装置、及びそのプログラム
JP2007189149A (ja) 2006-01-16 2007-07-26 Toshiba Corp 磁気記憶装置及びその製造方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107349A (ja) * 2004-10-08 2006-04-20 Sony Corp データ取得提供プログラム
US20060221862A1 (en) * 2005-03-30 2006-10-05 Fujitsu Limited Network device management apparatus, network device management program, and network device management method

Also Published As

Publication number Publication date
CN101627374A (zh) 2010-01-13
US20100183017A1 (en) 2010-07-22
KR20090130371A (ko) 2009-12-23
CN101627374B (zh) 2012-05-23
WO2009013999A1 (ja) 2009-01-29
EP2172846A1 (en) 2010-04-07
JP4637145B2 (ja) 2011-02-23
JP2009026107A (ja) 2009-02-05
TW200909036A (en) 2009-03-01

Similar Documents

Publication Publication Date Title
US9814979B2 (en) Data provision system, provision apparatus, execution apparatus, control method, and recording medium
US11020662B2 (en) Rendering system, control method, and storage medium
EP1388999A1 (en) Entertainment system
US8898245B2 (en) Extending memory capacity of a mobile device using proximate devices and unicasting
US20070060373A1 (en) Data communication system and methods
US8732257B2 (en) Server apparatus, terminal apparatus, and communication control method
JP2008544684A (ja) 複数のグループに属するロケーションサーバを用いたユーザのログ情報管理方法及びシステム
US20220258041A1 (en) Account connecting method and apparatus, storage medium, and electronic device
US20230291808A1 (en) Data processing method and apparatus, device and medium
KR101087089B1 (ko) 네트워크 시스템, 노드 기기, 데이터 송신방법, 정보기록매체 및 프로그램
US9723100B2 (en) Extending memory capacity of a mobile device using proximate devices and multicasting
JP2002306851A (ja) ゲーム装置、ゲーム用プログラムおよびゲーム用プログラムを記録した記録媒体
JP5818752B2 (ja) ゲーム制御装置及びプログラム
JP2003203023A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム
JP3916601B2 (ja) 通信システム、サーバ装置、端末、サービス方法、端末方法、および、プログラム
JP2007207013A (ja) 情報処理装置、情報共有プログラム
KR20210064222A (ko) 비디오 품질을 유지하면서 비디오 비트 레이트를 향상시키는 기법
JP5250065B2 (ja) 配信システム、端末装置、配信方法、端末方法、並びにプログラム
JP3930849B2 (ja) 通信システム、ゲートウェイ装置、データ中継方法、および、プログラム
JPH11288393A (ja) ネットワークゲームシステム
JP4573135B2 (ja) 情報処理装置、情報処理方法、及びプログラム
KR20190134106A (ko) Tcp/ip 기반 모바일 mmorpg 게임 대규모 사용자 처리를 위한 실시간 네트워크 서버 개발
CN118161844A (zh) 游戏跨服方法、系统和存储介质
JP2003126556A (ja) 意味情報ネットワークを用いたネットワークゲーム実現方法とシステム、および端末、プログラムおよび記録媒体
JP5932892B2 (ja) コンテンツ提供システム、コンテンツ提供機器、コンテンツ再生機器、制御方法、プログラム、及び記録媒体

Legal Events

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

Payment date: 20141118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171110

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181113

Year of fee payment: 8