KR20140100504A - 데이터 송수신 시스템 - Google Patents

데이터 송수신 시스템 Download PDF

Info

Publication number
KR20140100504A
KR20140100504A KR1020147015369A KR20147015369A KR20140100504A KR 20140100504 A KR20140100504 A KR 20140100504A KR 1020147015369 A KR1020147015369 A KR 1020147015369A KR 20147015369 A KR20147015369 A KR 20147015369A KR 20140100504 A KR20140100504 A KR 20140100504A
Authority
KR
South Korea
Prior art keywords
data
client terminal
unit
server
content data
Prior art date
Application number
KR1020147015369A
Other languages
English (en)
Inventor
히데토시 아오야기
요시히사 하시모토
Original Assignee
가부시키가이샤 스퀘어.에닉스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 스퀘어.에닉스 filed Critical 가부시키가이샤 스퀘어.에닉스
Publication of KR20140100504A publication Critical patent/KR20140100504A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1063Discovery through centralising entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

[해결과제] 본 발명은, 서버 클라이언트 시스템에 있어서, 각 클라이언트 단말에 콘텐츠 데이터를 분배할 때에, 병목 현상이 발생하는 문제점을 해소하면서 데이터 전송의 고속화를 실현하는 것을 해결 과제로 한다.
[해결수단] 본 발명은, 콘텐츠 데이터를 복수의 데이터로 분할하여, 클라이언트 단말로부터 어떤 콘텐츠 데이터의 다운로드 요구가 있었을 때는, 그 클라이언트 단말에 대하여, 그 콘텐츠 데이터를 보유하는 서버로부터 뿐만 아니라, 상기 콘텐츠 데이터의 분할 데이터가 캐시 영역에 잔존하고 있는 다른 클라이언트 단말로부터 P2P 통신망을 통해 상기 콘텐츠 데이터의 분할 데이터를 전송하여, 클라이언트 단말 내에서 콘텐츠 데이터를 재구축시킴으로써, 서버에 트래픽이 집중하는 병목 현상을 해소하면서 멀티패스에 의해 데이터 전송 속도의 고속화를 실현할 수 있다고 하는 지견에 기초한 것이다.

Description

데이터 송수신 시스템{DATA TRANSMISSION AND RECEPTION SYSTEM}
본 발명은 데이터 송수신 시스템에 관한 것이다. 구체적으로 설명하면, 본 발명의 데이터 송수신 시스템은, 복수의 서버 장치로 구성된 서버 수단과 복수의 클라이언트 단말이 통신 네트워크를 통해 접속되어 있어, 서로 데이터의 송수신이 가능한 시스템에 관한 것이다.
종래부터, 콘텐츠 데이터를 서버에 있어서 관리하고, 클라이언트 단말이 필요에 따라서 그 콘텐츠 데이터를 서버로부터 다운로드하는 서버 클라이언트 시스템이 알려져 있다. 이러한 서버 클라이언트 시스템은, 예컨대, 인터넷·프로토콜 기술을 이용하여 컴퓨터가 서로 접속된 인터넷이나, 그것을 사내 등의 조직 내 네트워크에 사용한 인트라넷에 있어서 구축되어 있다.
예컨대, 소프트웨어의 개발 현장에서는, 소프트웨어의 구성 관리나 개발 중인 파일의 갱신 관리를 서버 장치에 있어서 일원(一元) 관리하면서, 서버에 접속된 각 클라이언트 단말이, 적절하게 필요할 때에, 서버 장치로부터 소스 파일이나 콘텐츠를 다운로드하고, 다운로드한 콘텐츠의 여러 가지 편집 작업을 한다. 이와 같이, 서버 클라이언트 시스템을 이용함으로써, 서버 내의 콘텐츠 데이터를 항상 최신으로 유지하면서, 그것을 각 클라이언트 단말에서 공유할 수 있다고 하는 메리트가 있다.
또한, 종래부터, 컴퓨터 등의 정보 처리 장치를 서로 접속하여, 상대 장치에 데이터를 송신하는 통신 기술로서, 피어-투-피어(Peer to Peer; 이하, P2P라고 함)의 통신 기술이 알려져 있다. P2P형의 통신에서는 각 퍼스널 컴퓨터가 대등한 것으로 되어, 전용의 서버가 불필요하기 때문에, 비교적 용이하게 통신망을 구성할 수 있다. P2P형의 통신은 예컨대 4대 ~ 6대 정도의 퍼스널 컴퓨터를 이용하는 소규모 LAN의 구축에 알맞고, 직접 상대에 대하여 송신을 하기 때문에 통신량(트래픽)을 작게 할 수 있다고 하는 메리트가 있다.
더욱이, 예컨대 특허문헌 1에는, 서버 클라이언트 시스템에 있어서, 서버를 경유하는 트래픽을 경감하고, 콘텐츠 데이터를 처리 장치 사이에서 효율적으로 전송하여, 각 정보 처리 장치의 이용자 사이에 있어서의 원활하면서 다양한 커뮤니케이션을 실현하기 위한 통신 기술이 개시되어 있다. 이 특허문헌 1에 개시된 기술에 따르면, 클라이언트·서버형의 접속에서 P2P형의 접속으로 천이시킴으로써, 서버에 대한 트래픽의 일국(一局) 집중을 피할 수 있어, 시스템 전체적인 트래픽의 최적화를 도모할 수 있다고 되어 있다.
특허문헌 1: 일본 특허 공개 제2003-203023호 공보
전술한 바와 같이, 종래의 클라이언트 서버 시스템은, 서버에 의해 콘텐츠 데이터를 일원 관리하고, 그것을 적절하게 각 클라이언트 단말에 다운로드하여 작업을 행하는 것인데, 서버에서 클라이언트 단말로의 데이터 전송 대기 시간은, 콘텐츠 데이터가 대량일수록 데이터를 취급하는 처리의 작업 효율을 저하시키게 된다. 특히, 테라바이트 클래스의 동화상 등을 포함하는 디지털 에셋(asset)을 일상적으로 취급하는 디지털 콘텐츠 업계에서는, 클라이언트 단말로부터의 다운로드 요구가 서버에 집중하면, 데이터 전송할 때에 병목 현상이 발생하여, 작업 효율의 저하를 초래할 우려가 있었다.
또한, 예컨대, 영상 제작 업계나 디지털 엔터테인먼트 업계에서는, 일반적으로, 크리에이터의 출근 시간대에, 복수의 클라이언트 단말로부터 서버에 대하여 일제히 콘텐츠 데이터의 요구가 이루어진다. 이 때문에, 이 출근 시간대에는, 서버에 액세스가 집중하여, 서버로부터 각 클라이언트 단말에 대하여 콘텐츠 데이터를 송신하는 데이터 전송 속도가 현저히 저하될 우려가 있다. 또한, 서버에 있어서는, 각종 에셋이나 소스 코드를 일상적으로 빌드하여 생성할 필요가 있기 때문에, 각 클라이언트 단말에 있어서 콘텐츠 데이터의 렌더링 작업 등이 끝나, 크리에이터의 퇴근 시간대가 되면, 복수의 클라이언트 단말로부터 서버에 대하여 일제히 편집 후의 콘텐츠 데이터가 업로드된다. 이 때문에, 퇴근 시간대에도, 서버에 액세스가 집중하게 되어, 각 클라이언트 단말에서 서버에 대하여 콘텐츠 데이터를 송신하는 데이터 전송 속도가 현저히 저하될 가능성이 있다. 이와 같이, 종래의 클라이언트 서버 시스템에 있어서는, 인트라넷이나 외부 서버에 있어서의 트래픽이 증가하여, 병목 현상이 일상적으로 발생한다고 하는 문제가 있었다.
또한, 종래의 클라이언트 서버 시스템에 있어서는, 각 클라이언트 단말 사이의 데이터 송수신의 경우에도, 서버를 통해 데이터를 보낼 필요가 있다. 이 때문에, 각 클라이언트 단말 사이에서 데이터가 대량이 되는 동화상을 전송하거나, 접속하는 클라이언트의 수가 증가한 경우에 있어서, 서버를 경유하는 데이터 트래픽이 증대되게 되어, 데이터 송신의 저속화나 병목 현상이 발생한다고 하는 문제점이 있었다.
또한, 특허문헌 1에 기재된 통신 기술은, 각 클라이언트 단말이 서버에 액세스하여, 서버 클라이언트형 통신에 있어서 콘텐츠 데이터를 취득하거나, P2P 통신이 가능한 클라이언트 단말을 특정하여, 그 특정한 클라이언트 단말과의 사이의 P2P형 통신에 있어서, 콘텐츠 데이터를 취득하는 것이다. 그러나, 특허문헌 1의 기술에서는, 클라이언트 단말과 서버 또는 클라이언트 단말과 클라이언트 단말이, 1대1의 관계로 콘텐츠 데이터를 송수신하는 것이기 때문에, 결국 하나의 정보 처리 장치에 대한 트래픽이 증대된 경우에, 데이터 송신의 저속화나 병목 현상이 발생할 가능성이 있다고 하는 문제를 갖는 것이었다. 즉, 특허문헌 1에 기재된 기술은, 클라이언트 단말끼리 통신을 행하는 경우에, 서버 클라이언트형 통신에서 P2P형 통신으로 천이시킴으로써, 서버 클라이언트형 통신에 있어서 서버에 트래픽이 집중하는 것을 피한 것에 지나지 않아, 서버에서 클라이언트 단말로 또는 클라이언트 단말에서 클라이언트 단말로 데이터를 송신할 때의 통신 장해를 해소할 수는 없었다.
이 때문에, 현재는, 서버 클라이언트 시스템에 있어서, 각 클라이언트 단말에 콘텐츠 데이터를 분배할 때에, 서버에 트래픽이 집중하여, 병목 현상이 발생하는 문제점을 해소하면서, 콘텐츠 데이터를 요구하고 있는 클라이언트 단말에 대하여, 멀티패스로 데이터를 분배함으로써, 데이터 전송의 고속화를 실현할 수 있는 데이터 송수신 시스템이 요구되고 있다.
그래서, 본 발명의 발명자들은, 상기 종래 발명의 문제점을 해결하는 수단에 관해서 예의 검토한 결과, 콘텐츠 데이터를 복수의 데이터로 분할하여, 클라이언트 단말로부터 어떤 콘텐츠 데이터의 다운로드 요구가 있었을 때에는, 그 클라이언트 단말에 대하여, 그 콘텐츠 데이터를 보유하는 서버로부터 뿐만이 아니라, 상기 콘텐츠 데이터의 분할 데이터가 캐시 영역에 잔존하고 있는 다른 클라이언트 단말로부터, P2P 통신망을 통해 상기 콘텐츠 데이터의 분할 데이터를 전송하여, 클라이언트 단말 내에서 콘텐츠 데이터를 재구축시킴으로써, 서버에 트래픽이 집중하는 병목 현상을 해소하면서, 멀티패스에 의해 데이터 전송 속도의 고속화를 실현할 수 있다고 하는 지견을 얻었다. 그리고, 본 발명자들은, 상기 지견에 기초하면, 종래 기술의 과제를 해결할 수 있다는 데에 생각이 이르러, 본 발명을 완성시켰다.
구체적으로 본 발명은 이하의 구성을 갖는다.
본 발명은 데이터 송수신 시스템에 관한 것이다.
본 발명의 데이터 송수신 시스템은, 하나 또는 복수의 서버 장치에 의해 구성되는 서버 수단과, 복수의 클라이언트 단말을 갖고 있다. 서버 수단과 클라이언트 단말 및 복수의 클라이언트 단말끼리는 통신 네트워크를 통해 데이터를 주고받을 수 있도록 접속되어 있다.
서버 수단은 콘텐츠 기억부와, 데이터 분할부와, 송신부를 갖는다.
콘텐츠 기억부는 하나 또는 복수의 임의의 콘텐츠 데이터를 기억하고 있다. 콘텐츠 데이터의 예는 화상 데이터, 동화상 데이터, 음성 데이터 및 문자 데이터이지만, 이들로 한정되지 않고, 클라이언트 단말에 있어서 기억, 연산되는 여러 가지 데이터를 포함한다.
데이터 분할부는, 콘텐츠 기억부에 기억되어 있는 콘텐츠 데이터를 분할하여 분할 데이터를 생성하기 위한 기능을 갖는다.
서버의 송신부는, 데이터 분할부에 의해 생성된 분할 데이터를, 클라이언트 단말에 대하여 송신하기 위한 기능을 갖는다.
한편, 복수의 클라이언트 단말의 각각은 서버 통신부와, 수신부와, 캐시 영역을 갖는다.
서버 통신부는, 서버 수단에 대하여, 콘텐츠 데이터의 다운로드 요구를 송신하기 위한 기능을 갖는다.
수신부는, 서버 통신부를 통한 다운로드 요구에 따라서 서버 수단으로부터 송신된 콘텐츠 데이터의 분할 데이터를 다운로드하기 위한 기능을 갖는다.
캐시 영역은, 수신부에 의해 다운로드한 분할 데이터를 일시적으로 기억하기 위한 기능을 갖는다.
또한, 서버 수단은 메타 데이터 데이터베이스를 더 구비한다. 이 메타 데이터 데이터베이스는, 각 클라이언트 단말의 캐시 영역에 기억되어 있는 분할 데이터에 관한 메타 데이터를 기억하고 있고, 적어도 분할 데이터의 종류에 따라서, 어느 분할 데이터가 어느 클라이언트 단말의 캐시 영역에 기억되어 있는지에 관한 메타 데이터가 기억되어 있다.
또한, 복수의 클라이언트 단말의 각각은 메타 데이터 취득부와, P2P 통신부, 재구축부와, 데이터 기억부를 더 갖는다.
메타 데이터 취득부는, 콘텐츠 데이터의 다운로드 요구를 서버 수단에 송신했을 때, 메타 데이터 데이터베이스를 참조하여, 분할 데이터에 관한 메타 데이터에 기초하여, 상기 콘텐츠 데이터의 분할 데이터를 기억하고 있는 다른 클라이언트 단말에 관한 정보를 취득하는 기능을 갖는다.
P2P 통신부는, 메타 데이터 취득부에 의해 취득한 다른 클라이언트 단말에 관한 정보에 기초하여, 그 다른 클라이언트 단말의 캐시 영역으로부터 콘텐츠 데이터의 분할 데이터를 다운로드하기 위한 기능을 갖는다.
재구축부는, 수신부에 의해 다운로드한 분할 데이터 및 P2P 통신부에 의해 다운로드한 분할 데이터 양쪽 또는 어느 한쪽을 통합하여, 콘텐츠 데이터를 재구축하기 위한 기능을 갖는다.
데이터 기억부는 재구축부에 의해 재구축한 콘텐츠 데이터를 기억한다.
전술한 바와 같이, 본 발명의 데이터 송수신 시스템에서는, 어떤 클라이언트 단말에 의한 콘텐츠 데이터의 다운로드 요구에 따라서, 콘텐츠 데이터를 보유하는 서버 수단으로부터 뿐만 아니라, 그 콘텐츠 데이터가 캐시 영역에 기억되어 있는 다른 클라이언트 단말로부터도, 다운로드 요구를 행한 클라이언트 단말에 대하여, 콘텐츠 데이터의 일부 또는 전부를 전송할 수 있다. 이 때문에, 복수의 클라이언트 단말에 대한 데이터 전송이, 특정 서버 장치에 일국 집중하는 사태를 피할 수 있어, 데이터 전송에 있어서 생기는 병목 현상의 문제를 해소할 수 있다. 또한, 어떤 클라이언트 단말이, 서버 수단에 저장되어 있는 데이터를 요구할 때, 그 클라이언트 단말 근방의 다른 클라이언트 단말에 요구 데이터의 분할 데이터가 있는 경우에는, 이것을 활용함으로써 데이터의 전량을 서버 수단으로부터 취득하지 않아도 되기 때문에, 서버 수단의 부하의 저감과, 서버 수단과의 통신 경로 상의 병목 현상의 경감이 달성된다. 또한, 본 발명의 데이터 송수신 시스템에서는, 어떤 클라이언트 단말에 대하여, 콘텐츠 데이터를, 서버 수단 및 다른 클라이언트 단말로부터 분할 데이터로서 전송하는 것이 가능하다. 이와 같이, 본 발명은, 콘텐츠 데이터를 요구한 클라이언트 단말에 대하여, 멀티패스로 콘텐츠 데이터를 다운로드하게 할 수 있어, 데이터 전송 속도의 고속화를 실현할 수 있다.
본 발명에 있어서, 서버 수단은, 복수의 서버 장치에 의해 구성되는 것으로 하고, 복수의 서버 장치의 각각은, 콘텐츠 기억부를 용장화한 스토리지를 갖는 것으로 하여도 좋다. 이 경우, 서버 수단의 데이터 분할부는, 스토리지에 기억되어 있는 콘텐츠 데이터를 분할하여 분할 데이터를 생성하고, 서버 수단의 송신부는, 클라이언트 단말로부터의 다운로드 요구에 따라서, 데이터 분할부에 의해 생성된 분할 데이터를 클라이언트 단말에 대하여 송신한다.
이와 같이, 콘텐츠 데이터를 기억하고 있는 콘텐츠 기억부를 용장화하여, 각 서버 장치의 스토리지에 기억시킴으로써, 복수의 서버 장치로부터, 콘텐츠 데이터를 요구하는 클라이언트 단말에 대하여, 콘텐츠 데이터의 분할 데이터를 전송할 수 있다. 이와 같이, 복수의 서버 장치의 스토리지에 용장화되어 보존되어 있는 데이터가 멀티패스로 클라이언트 단말에 송신되기 때문에, 1 커넥션당 통신 속도가 원인으로 통신 완료까지의 속도가 늦어지는 문제를 해결할 수 있다. 또한, 복수의 스토리지에 용장화되어 보존되어 있는 분할 데이터(예컨대 동일 파일의 다른 블록)가 병렬 처리, 또한 멀티패스로 클라이언트 단말에 송신되기 때문에, 데이터 전송의 한층 더 고속화를 실현할 수 있다.
본 발명에 있어서, 서버 수단은 복수의 서버 장치에 의해 구성되는 것으로 하고, 복수의 서버 장치의 각각은, 데이터 분할부에 의해 생성된 분할 데이터를 기억하는 스토리지를 갖는 것이 바람직하다. 이 경우, 서버 수단의 송신부는, 클라이언트 단말로부터의 다운로드 요구에 따라서, 분할 데이터를 기억하는 스토리지에 의해 기억되어 있는 상기 분할 데이터를 상기 클라이언트 단말에 대하여 송신한다.
이와 같이, 복수의 서버 장치의 각각이, 콘텐츠 데이터의 분할 데이터를 기억하는 스토리지를 가짐에 의해서도, 클라이언트 단말에 대하여, 콘텐츠 데이터를 멀티패스로 송신할 수 있다. 이 때문에, 서버 수단과 클라이언트 단말 사이에 있어서 통신 속도가 저하되는 것을 방지할 수 있어, 데이터 전송의 한층 더 고속화를 실현할 수 있다. 또한, 각 서버 장치의 스토리지에는, 콘텐츠 데이터의 전부가 아니라, 그 일부(분할 데이터)를 기억시키면 되기 때문에, 스토리지의 기억 용량을 절약할 수도 있다.
본 발명에서는, 콘텐츠 데이터의 분배 처리를 자동화하는 것으로 하여도 좋다.
즉, 우선 클라이언트 단말의 각각은, 그 클라이언트 단말에 의해 편집한 편집 후의 콘텐츠 데이터를 서버 수단의 콘텐츠 기억부에 업로드하는 업로드부를 더 구비한다.
또한, 서버 수단은, 각 클라이언트 단말로부터 업로드된 편집 후의 콘텐츠 데이터에 관한 정보를 기억하는 리포지터리(repository) 스토리지와, 리포지터리 스토리지에 기억된 편집 후의 콘텐츠 데이터에 관한 정보를 기초로, 콘텐츠 기억부에 기억되어 있는 콘텐츠 데이터의 빌드 처리를 행하는 빌드 처리부를 더 구비한다. 빌드 처리는 소스 코드 파일을 독립된 소프트웨어 생성물로 변환하는 처리이다.
그리고, 클라이언트 단말의 각각은, 서버 수단의 빌드 처리부에 의해 빌드 처리가 실시된 빌드 후의 콘텐츠 데이터와, 편집 후의 콘텐츠 데이터를 비교하여, 빌드 후의 콘텐츠 데이터의 버전이, 편집 후의 콘텐츠 데이터의 버전보다 새로운 경우에는, 서버 통신부를 통해, 서버 수단에 대하여, 편집 후의 콘텐츠 데이터의 다운로드 요구를 송신한다.
상기 구성을 지님으로써, 클라이언트 단말에 있어서 데이터의 편집 작업이 완료되고, 서버 수단에 있어서 빌드 처리가 행해진 후, 클라이언트 단말은, 최신 버전의 데이터를 서버 수단으로부터 다운로드할 수 있다. 예컨대, 콘텐츠 데이터의 편집 작업(렌더링 등)을 행하는 크리에이터가 퇴근한 후나 휴일에는 서버 수단에의 액세스가 완화된다. 이 때문에, 퇴근 후의 시간대나 휴일 중에, 서버 수단으로부터 각 클라이언트 단말에 대하여 최신 버전의 콘텐츠 데이터를 분배해 두면, 크리에이터의 출근 시간대에 서버 수단에 액세스가 집중하는 문제를 해소할 수 있다. 또한, 예컨대, 서버 수단에 있어서, 크리에이터의 퇴근 후 시간대에 빌드 처리를 하고, 그 생성물과 각 클라이언트 단말 내의 콘텐츠 데이터를 비교하여, 클라이언트 단말에 있어서, 콘텐츠 데이터가 최신이 아니라고 판단한 경우에, 최신 콘텐츠 데이터의 다운로드 요구를 송신하게 한다. 이 때문에, 예컨대 서버 수단의 CPU 사용량이 저하하는 시간대에, 서버 수단으로부터 각 클라이언트 단말에 대하여 최신 버전의 콘텐츠 데이터를 분배해 둘 수 있게 된다.
또한, 서버 수단은, 리포지터리 스토리지에 기억된 편집 후의 콘텐츠 데이터에 관한 정보를 기초로, 각 콘텐츠 데이터의 버전 관리를 행하는 구성 관리 시스템을 더 구비하는 것이라도 좋다. 구성 관리 시스템은, 서버 수단이, 클라이언트 단말로부터 콘텐츠 데이터의 다운로드 요구를 수신했을 때, 서버 수단의 상기 콘텐츠 기억부에 기억되어 있는 상기 콘텐츠 데이터의 버전과, 상기 클라이언트 단말의 데이터 기억부에 기억되어 있는 상기 콘텐츠 데이터의 버전을 비교하여, 그 차분 데이터를 추출하는 차분 추출부를 갖는다. 그리고, 구성 관리 시스템은, 송신부를 통해, 차분 추출부에 있어서 추출한 차분 데이터를, 클라이언트 단말에 대하여 송신한다. 이 경우, 클라이언트 단말의 재구축부는, 서버 수단의 송신부로부터 송신된 차분 데이터를, 데이터 기억부에 기억되어 있는 콘텐츠 데이터에 적용하여(패치하여), 콘텐츠 데이터를 재구축한다.
이와 같이, 서버 수단의 구성 관리 시스템에 있어서, 서버 수단에 저장되어 있는 최신의 버전의 데이터와, 각 클라이언트 단말에 기억되어 있는 콘텐츠 데이터를 비교하여, 바이너리 단위에서의 변경 부위를 차분 데이터로서 추출함으로써, 서버 수단과 각 클라이언트 단말 사이의 통신이 차분 데이터분만으로 완료되기 때문에, 데이터의 전송량을 줄여, 전송할 때에 생기는 병목 현상을 해소할 수 있다.
이상과 같이, 본 발명의 데이터 전송 시스템에 따르면, 각 클라이언트 단말에 콘텐츠 데이터를 분배할 때에, 서버에 트래픽이 집중하여 병목 현상이 발생하는 문제점을 해소하면서, 콘텐츠 데이터를 요구하고 있는 클라이언트 단말에 대하여, 멀티패스로 데이터를 분배함으로써, 데이터 전송의 고속화를 실현할 수 있다.
도 1은 본 발명의 데이터 송수신 시스템의 전체 구성을 도시한 도면이다.
도 2는 본 발명의 데이터 송수신 시스템의 구성예를 도시하는 블록도이다.
도 3은 본 발명의 실시형태에 있어서의 데이터의 흐름을 모식적으로 도시한 도면이다.
도 4는 본 발명의 실시형태에 있어서의 처리를 도시하는 흐름도이다.
도 5는 본 발명의 다른 실시형태에 있어서의 데이터의 흐름을 모식적으로 도시한 도면이다.
도 6은 본 발명의 다른 실시형태에 있어서의 데이터의 흐름을 모식적으로 도시한 도면이다.
도 7은 본 발명의 다른 실시형태에 있어서의 처리를 도시하는 흐름도이다.
도 8은 본 발명의 다른 실시형태에 있어서의 처리를 도시하는 흐름도이다.
이하, 도면을 이용하여 본 발명을 실시하기 위한 형태에 관해서 설명한다. 본 발명은 이하에 설명하는 형태로 한정되지는 않으며, 이하의 형태에서 당업자가 자명한 범위에서 적절하게 수정한 것을 포함한다.
(1. 데이터 송수신 시스템)
도 1은 본 발명에 따른 데이터 송수신 시스템의 시스템 구성을 도시하는 개략도이다. 도 1에 도시하는 바와 같이, 데이터 송수신 시스템(1)은, 복수의 서버 장치(11)에 의해 구성된 서버 수단(10) 및 복수의 클라이언트 단말(20)이 통신 네트워크를 통해 서로 접속되어 있다. 즉, 각 서버 장치(11)끼리, 서버 장치(11)와 클라이언트 단말(20) 및 각 클라이언트 단말(20)끼리는, 통신 네트워크를 이용하여, 서로 데이터를 송수신할 수 있다. 본 발명의 데이터 송수신 시스템은, 인터넷을 통한 네트워크망으로 구축되는 것이라도 좋고, 예컨대 회사 내와 같은 한정된 범위에 구축된 인트라넷망으로 구축되는 것이라도 좋다. 데이터 송수신 시스템(1)에 있어서, 서버 수단(10) 및 복수의 클라이언트 단말(20) 사이에 있어서의 통신은, 유선에 의한 것뿐만 아니라, 공지된 무선 통신 수단에 의한 것이라도 좋다.
도 2는 서버 수단(10)과 각 클라이언트 단말(20)을 구성하는 요소를 개념적으로 도시한 것이다. 도 2에 도시된 각 요소는, 서버 수단(10) 및 클라이언트 단말(20)이 보유하는 기능에 따라서 분류한 것이다. 기본적으로, 서버 수단(10)을 구성하는 서버 장치(11)나 각 클라이언트 단말(20)은, 입출력 장치, 제어 장치, 연산 장치 및 기억 장치 등의 하드웨어를 가지며, 이들 하드웨어가 버스 등에 의해 접속되어 있다. 즉, 입력 장치로부터 정해진 정보가 입력되면, 제어 장치는, 기억 장치의 메인 메모리에 저장되어 있는 제어 프로그램을 판독한다. 또한, 제어 장치는, 제어 프로그램의 지령에 따라서, 적절하게 기억부에 기억된 데이터를 판독하여, 연산 장치로 정해진 연산을 행한다. 그리고, 연산 결과를 기억장치에 일시적으로 기억하여, 출력부로부터 정보를 출력할 수 있게 되어 있다. 이하에 설명하는 서버 수단(10)과 각 클라이언트 단말(20)에 포함되는 요소는, 이들 입출력 장치, 제어 장치, 연산 장치 및 기억 장치 등을 이용하여, 컴퓨터에 정해진 기능을 실행시키기 위한 요소이다.
이하에서는, 도 2를 참조하면서 데이터 송수신 시스템(1)에 포함되는 서버 수단(10) 및 클라이언트 단말(20)의 각 부의 구성에 관해서 설명한다.
(1-1. 서버 수단)
서버 수단(10)은, 콘텐츠 데이터를 각 클라이언트 단말(20)에 대하여 분배하기 위한 기능과, 데이터 송수신 시스템의 구성이나 콘텐츠 데이터를 관리하는 기능을 갖는다. 도 2에 도시된 실시형태에 있어서, 서버 수단(10)은 복수의 서버 장치(11)에 의해 구성되어 있다. 서버 수단(10)은, 콘텐츠 기억부(110), 데이터 분할부(120), 송신부(130), 메타 데이터 데이터베이스(140), 리포지터리 스토리지(150), 빌드 처리부(160), 구성 관리 시스템(170) 및 클라이언트 통신부(180)를 포함하는 것이 바람직하고, 그 밖에도 적절하게 유용한 기능을 부가하는 것도 가능하다. 서버 수단(10)을 구성하는 이들 요소는, 단일의 서버 장치(11)에 집약된 것이라도 좋고, 복수의 서버 장치(11)에 분산되어 기능하는 것이라도 좋다.
서버 수단(10)을 구성하는 서버 장치(11)로서는, 클라이언트 단말(20)로부터의 요구에 따라서, 정해진 처리나 정보를 제공할 수 있는 공지된 것을 채용할 수 있다. 예컨대 서버 장치(11)로서는, 예컨대 UNIX 서버(등록상표), 미드레인지 서버 또는 메인 프레임 서버 등을 필요에 따라서 이용할 수 있다.
콘텐츠 기억부(110)는 임의의 콘텐츠 데이터를 기억하고 있다. 서버 수단(10)이 복수의 서버 장치(11)에 의해 구성되는 경우, 콘텐츠 기억부(110)의 실체는, 네트워크 상의 복수 노드에 걸쳐 배치되는 복수의 서버 장치(11)의 스토리지(111)에 의해 구성된다. 콘텐츠 기억부(110)에 기억되는 콘텐츠 데이터의 예는, 화상 데이터, 동화상 데이터, 음성 데이터 및 문자 데이터이지만, 이들로 한정되지 않고, 클라이언트 단말에 입력, 기억, 연산 또는 출력되는 여러 가지 데이터를 포함한다. 콘텐츠 데이터로서는, 예컨대 MPEG(moving picture experts group) 방식으로 압축된 컬러 동화상 영상 파일, MP3(MPEG audio layer 3) 방식으로 압축된 음성 파일 또는 JPEG(joint photographic experts group) 방식으로 압축된 컬러 정지 화상 파일을 들 수 있다. 또한, 예컨대, 게임 소프트웨어 개발 현장에서는, 개발을 할 때에 이용하는 소스 코드나 그 밖의 디지털 콘텐츠가 콘텐츠 기억부(110)에 기억된다. 콘텐츠 기억부(110)에 저장되어 있는 데이터는, 클라이언트 단말(20)로부터의 다운로드 요구에 따라서 적절하게 분배된다. 콘텐츠 기억부(110)는, 예컨대 복수의 스토리지 노드에 접속된 복수의 자기 기억 장치의 집합에 의해 구성되어 있는 것이라도 좋고, 단일의 자기 기억 장치에 의해 구성되어 있는 것이라도 좋다.
데이터 분할부(120)는, 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터를, 데이터의 종류나 데이터의 용량에 따라서, 복수의 분할 데이터로 분할한다. 데이터 분할부(120)는, 예컨대, 콘텐츠 데이터를 미리 정하는 데이터량의 분할 데이터(데이터 블록)로 분할한다. 또한, 예컨대, 콘텐츠 데이터를 직렬 송신하는 순서대로, 미리 정하는 데이터량이 되도록 분할하고, 분할 데이터를 생성하는 것으로 하여도 좋다. 데이터 분할부(11)에는, 예컨대 CPU 내부의 데이터 버스가 접속되고, 이 데이터 버스를 통해 콘텐츠 기억부(110)로부터 정해진 데이터가 주어진다. 그리고, 데이터 분할부(120)는, 데이터 버스 폭을 데이터 블록으로서 구획짓는다. 구체적으로는, CPU 내부의 데이터 버스를 통해 병렬 데이터가 전송되면, 데이터 분할부(120)는, 데이터 버스 폭만큼의 데이터량의 병렬 데이터를 하나의 분할 데이터로서 데이터 버퍼에 기억한다. 또한, 데이터 분할부(120)에 의해 분할된 분할 데이터는, 서버 수단(10)을 구성하는 복수의 서버 장치(11)의 각각에 구비된 스토리지(111)에 분산하여 저장되는 것으로 하여도 좋다.
송신부(130)는, 데이터 분할부(120)에 의해 생성된 분할 데이터를, 클라이언트 단말(20)에 대하여 송신하기 위한 출력부이다. 송신부(130)에는 공지된 인터페이스를 채용할 수 있다.
메타 데이터 데이터베이스(140)는, 각 클라이언트 단말(20)의 캐시 영역(230)에 기억되어 있는 분할 데이터에 관한 메타 데이터(이하, 분할 캐시 정보라고도 함)를 기억하고 있다. 메타 데이터는, 정보를 정리하기 위해서 이용되는 정보에 관한 정보이며, 예컨대, 분할 데이터가 기억되어 있는 캐시 영역(230)을 갖는 클라이언트 단말(20)의 소재를 나타내는 정보(IP 어드레스)나, 분할 데이터의 종류에 관한 정보 등이다. 서버(20)의 구성 관리 시스템(170)은, 클라이언트 통신부(180)를 통해, 정기적으로 각 클라이언트 단말(20)에 액세스하여, 각 클라이언트 단말(20)의 캐시 영역(230)에 기억되어 있는 분할 데이터로부터, 그 메타 데이터를 취득하여, 메타 데이터 데이터베이스(140)를 갱신한다. 이 때문에, 서버 수단(10)이나 클라이언트 단말(20)은, 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터를 참작함으로써, 분할 데이터의 소재를 파악할 수 있다.
리포지터리 스토리지(150)는, 각 클라이언트 단말로부터 업로드된 편집 후의 콘텐츠 데이터에 관한 정보를 기억한다. 리포지터리 스토리지(150)는, 소프트웨어 개발 및 보수에 있어서의 각 공정의 다양한 정보를 일원 관리하는 기능을 갖고 있어, 소프트웨어 개발의 각 공정에서의 성과물을 메타 정보로서 기억할 수 있게 되어 있다.
이 때문에, 리포지터리 스토리지(150)는 후술하는 빌드 처리할 때에 참작된다. 또한, 리포지터리 스토리지(150)는, 버전 관리 시스템에 의해 서버에 프로그램을 저장해 둘 수 있다. 클라이언트 단말(20)은, 콘텐츠 데이터를 카피하여 편집 작업이 끝나면, 콘텐츠 기억부(110)에 편집 후의 콘텐츠 데이터를 업로드하고, 리포지터리 스토리지(150)에 커밋하여, 리포지터리 스토리지에 편집 후의 차분 정보를 기억시킬 수 있다. 이 때문에, 리포지터리 스토리지(150)를 참작함으로써, 각 콘텐츠 데이터의 버전 관리를 할 수 있게 된다. 본 실시형태에 있어서, 각 콘텐츠 데이터의 버전 관리는 구성 관리 시스템(170)에 의해 이루어진다.
빌드 처리부(160)는, 리포지터리 스토리지(150)를 참작하여, 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터의 빌드 처리를 한다. 빌드 처리부(160)는, 리포지터리 스토리지(150)에서 관리되고 있는 소스 코드를 판독하여, 바이너리 코드로 컴파일함으로써, 독립된 소프트웨어 생성물로 변환한다. 예컨대, 빌드 처리(160)에는, 소스 코드를 바이너리 코드로 컴파일한 후, 바이너리 코드의 패키지화나, 테스트의 실행, 생산 시스템의 배비(配備), 문서나 릴리스 노트의 작성 등의 공정이 포함된다. 빌드 처리는, 시스템 관리자가 임의 시간대에 실행하는 것으로 하여도 좋고, 리포지터리 스토리지(150)에 소스 파일의 변경이 커밋될 때마다 자동적으로 실행하는 것으로 하여도 좋다. 특히, 빌드 처리는, 야간 등의 CPU 사용률이 저하된 시간대에 실행하는(나이트리(nightly) 빌드를 행하는) 것이 바람직하다.
구성 관리 시스템(170)은, 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터의 최신판이나 변경 이력과 같은 버전의 관리나, 각 클라이언트 단말(20)에 기억되어 있는 분할 데이터의 메타 데이터를 취득하여 메타 데이터 데이터베이스(140)의 갱신을 행하는 등, 시스템 전체의 구성 관리를 행하는 기능을 담당한다. 구성 관리 시스템(170)은 예컨대 차분 추출부(171)를 구비한다. 차분 추출부(171)는, 서버 수단(10)이 클라이언트 단말(20)로부터 콘텐츠 데이터의 다운로드 요구를 수신했을 때, 리포지터리 스토리지(150)를 참작하여, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터의 버전과, 상기 클라이언트 단말(20)에 기억되어 있는 상기 콘텐츠 데이터의 버전을 비교하여, 그 차분 데이터를 추출할 수 있다. 차분 데이터는 예컨대 바이너리 단위로 취득하는 것이 바람직하다. 이와 같이, 구성 관리 시스템(170)은, 차분 추출부(171)에 의해 차분 데이터를 추출함으로써, 차분 데이터에 의해 콘텐츠 데이터의 버전 관리를 할 수 있다. 단, 구성 관리 시스템(170)은, 각 버전마다 콘텐츠 데이터의 실제 데이터를 생성하여, 이 실제 데이터를 기억해 둠으로써, 콘텐츠 데이터의 버전 관리를 행하는 것이라도 좋다.
클라이언트 통신부(180)는, 각 클라이언트 단말(20)과 정보를 주고받는 데에 사용된다. 예컨대, 클라이언트 통신부(180)는, 각 클라이언트 단말(20)로부터의 콘텐츠 데이터의 다운로드 요구를 수신하는 등, 서버 수단(10)과 각 클라이언트 단말(20)이 정보를 주고받을 때에 이용된다. 또한, 예컨대, 클라이언트 통신부(180)에 의해 수신한 각 클라이언트 단말(20)로부터의 요구는, 구성 관리 시스템(170)에 전해지고, 구성 관리 시스템(170)은, 서버 수단(10)의 각 요소에 대하여 처리 명령을 전달한다.
서버 수단(10)은 트래커 서버(190)를 포함하는 것이라도 좋다. 트래커 서버(190)는, 클라이언트 단말(20)의 P2P 통신부(250)와의 사이에서 정보를 주고받을 수 있도록 접속되어 있으며, P2P 통신망의 신규 접속자에게 P2P 통신에 있어서 사용하는 IP 어드레스를 할당한다. 즉, 클라이언트 단말(20)은, P2P 통신을 시작할 때, 트래커 서버(190)에 액세스하여, IP 어드레스를 수취하여, 다른 클라이언트 단말과의 사이에서 데이터 송수신을 시작한다.
또한, 서버 수단(10)을 구성하는 복수의 서버 장치(11)의 각각은 콘텐츠 데이터를 기억하기 위한 스토리지(111)를 갖는 것이 바람직하다. 각 스토리지(111)에는, 콘텐츠 기억부(110)와 동일한 콘텐츠 데이터가 저장되어, 용장화한 것임이 바람직하다. 또한, 각 스토리지(111)는, 콘텐츠 데이터의 분할 데이터가 분산되어 저장된 것이라도 좋다. 복수의 서버 장치(11)의 각각은, 각 클라이언트 단말(20)과 통신 네트워크를 통해 접속되어 있기 때문에, 각 스토리지(111)에, 콘텐츠 데이터를 용장화 또는 분산하여 저장함으로써, 클라이언트 단말(20)로부터의 다운로드 요구에 따라서, 멀티패스로 콘텐츠 데이터를 송신할 수 있게 된다.
(1-2. 클라이언트 단말)
클라이언트 단말(20)은, 서버 수단(10)에 접속되어, 서버 수단(10)으로부터 다운로드한 콘텐츠 데이터의 편집 작업을 행하는 기능을 갖는다. 콘텐츠 데이터의 편집 작업은, 클라이언트 단말(20)이 갖는 여러 가지 애플리케이션에 의해 실행된다. 또한, 본 발명에 있어서, 복수의 클라이언트 단말(20)은, P2P형의 통신에 의해 각각 접속되어 있어, 데이터를 주고받을 수 있게 되어 있다. 도 2에 도시된 실시형태에 있어서, 각 클라이언트 단말(20)은, 서버 통신부(210), 클라이언트 단말(20)의 수신부(220), 캐시 영역(230), 메타 데이터 취득부(240), P2P 통신부(250), 재구축부(260), 데이터 기억부(270) 및 업로드부(280)를 포함하는 것이 바람직하고, 그 밖에도 적절하게 유용한 기능을 부가하는 것도 가능하다.
서버 통신부(210)는, 서버 수단(10)에 대하여, 원하는 콘텐츠 데이터의 다운로드 요구를 송신한다. 즉, 클라이언트 단말(20)은, 입력 장치, 제어 장치, 연산 장치, 기억 장치 및 출력 장치를 구비하여, 단말의 사용자가 입력 장치를 통해 콘텐츠 데이터의 다운로드 요구를 입력하면, 제어 장치는, 기억 장치의 메인 메모리에 저장되어 있는 제어 프로그램의 지령에 따라서, 연산 장치에서 정해진 연산을 행하여, 출력부인 서버 통신부(210)를 통해, 다운로드 요구를 서버 수단(10)에 송신한다. 또한, 서버 통신부(210)는, 그 밖에 여러 가지 정보를 서버 수단(10)에 송신하는 것이 가능하며, 예컨대, 서버 수단(10)의 메타 데이터 데이터베이스에 기억되어 있는 메타 데이터의 다운로드 요구를 서버 수단(10)에 송신하는 것도 가능하다.
클라이언트 단말(20)의 수신부(220)는, 서버 수단(10)으로부터 송신된 콘텐츠 데이터의 분할 데이터를 수신할 수 있다. 한편, 클라이언트 단말(20)의 수신부(220)는, 예컨대, 서버 수단(10)으로부터, 어떤 콘텐츠 데이터를 구성하는 모든 분할 데이터를 수신하는 것이라도 좋고, 또한, 분할되어 있지 않은 상태의 콘텐츠 데이터를 수신하는 것이라도 좋다. 클라이언트 단말(20)의 수신부(220)에 의해 수신된 콘텐츠 데이터의 분할 데이터는 예컨대 일시적으로 캐시 메모리(도시하지 않음)에 기억된다.
캐시 영역(230)은, 서버 수단(10)이나 다른 클라이언트 단말(20)로부터 다운로드한, 콘텐츠 데이터의 분할 데이터를 일시적으로 기억하는 기억 장치의 영역이다. 캐시 영역(230)은, 예컨대 클라이언트 단말(20)의 주기억 장치와 CPU 등의 연산 장치 사이에 구성되어, 연산 장치의 연산 처리에 필요한 데이터나 상태, 설정 등의 속성 정보를 카피하여 유지함으로써, 원래 액세스하여야 할 주기억 장치를 대신하여 데이터가 입출력된다. 예컨대, CPU로부터의 전송 요구가 있고, 그 데이터가 이미 캐시(230)에 저장되어 있는 경우는, 주기억 장치로부터의 전송은 행하지 않고 캐시가 전송을 대행한다. 이 때문에, 콘텐츠 데이터의 분할 데이터를 캐시 영역(230)에 일시 보존함으로써, 다른 장치로부터 그 분할 데이터의 요구가 있었을 때, 요구된 분할 데이터를 캐시 영역(230)으로부터 판독하여, 신속하게 데이터 전송을 할 수 있다.
메타 데이터 취득부(240)는, 콘텐츠 데이터의 다운로드 요구를 서버 수단(10)에 송신했을 때, 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터에 기초하여, 콘텐츠 데이터의 분할 데이터를 기억하고 있는 다른 클라이언트 단말에 관한 정보(분할 캐시 정보)를 취득한다. 여기에 말하는 분할 캐시 정보에는, 다른 클라이언트 단말의 소재를 파악하기 위한 정보가 포함되며, 구체적으로는, 다른 클라이언트 단말의 P2P 통신에 있어서의 IP 어드레스 등의 정보가 포함된다. 메타 데이터 취득부(20)는, 서버 수단(10)의 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터의 일부를 취득하여, 콘텐츠 데이터의 분할 데이터를 기억하고 있는 다른 클라이언트 단말의 소재를 파악하는 것이라도 좋고, 서버 수단(10)의 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터의 전부를 취득하는 것이라도 좋다. 메타 데이터 취득부(240)가, 서버 수단(10)의 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터의 전부를 취득한 경우, 클라이언트 단말(20)에도 메타 데이터 데이터베이스를 구축하는 것으로 하여도 좋다. 클라이언트 단말(20)에 메타 데이터 데이터베이스를 구축함으로써, 다른 클라이언트 단말(20)은, 서버 수단(10)에 액세스하지 않더라도, 분할 캐시 정보를 취득할 수 있다.
P2P 통신부(250)는, 어떤 클라이언트 단말(20)과 다른 클라이언트 단말(20) 사이에 있어서, P2P 통신을 가능하게 하기 위한 기능을 갖는다. P2P 통신은, 네트워크에 접속된 클라이언트 단말(피어)의 각각이, 어떤 때는 다른 피어에 대하여 정해진 서비스를 제공하여 서버와 같이 동작하고, 어떤 때는 다른 피어가 제공하는 서비스를 이용하여 클라이언트와 같이 동작하여, 각 피어가 대등한 관계가 된다. P2P 통신부(250)는, 각 클라이언트 단말(20)에 있어서 통신을 할 때, 각 클라이언트 단말(20)이 갖는 공통의 커뮤니케이션 애플리케이션을 기동시켜, 각 클라이언트 단말(20) 사이에 마련된 통신로를 이용하여, 각 클라이언트 단말(20)을 접속한다. 어떤 클라이언트 단말(20)로부터 분할 데이터의 다운로드 요구를 받은 다른 클라이언트 단말(20)은, 캐시 영역(230)으로부터 분할 데이터를 판독하여, P2P 통신부(250)를 통해, 어떤 클라이언트 단말(20)에 송신한다. P2P 통신의 접속 형태로서는, 클라이언트 단말 사이에서 1대1의 커뮤니케이션을 행하는 1대1형 통신이라도 좋고, 클라이언트 단말 사이의 노드 접속을 캐스케이드형으로 다단계층화하여, 트리 구조를 형성한 방송형 통신이라도 좋다.
이러한 P2P 통신망은, 인터넷이나 인트라넷에 구축할 수 있으며, 각 클라이언트 단말(20)에 부여된 IP 어드레스를 이용하여, 단말의 소재를 파악한다. P2P 통신은, 복수의 클라이언트 단말을 서로 접속하는 것이 가능하며, 그 경우에는 최단 경로인 통신로를 통해 클라이언트 단말끼리를 접속하면 좋다. P2P 통신부(235)는, 메타 데이터 취득부(240)에 의해 취득한 분할 캐시 정보에 기초하여, 하나 또는 복수의 클라이언트 단말(20)의 캐시 영역(230)에 기억되어 있는 분할 데이터를, P2P 통신에 의해 서로 송수신하게 한다. P2P 통신부(235)에 의해 수신한 분할 캐시 데이터는 일시적으로 캐시 영역(230)에 기억된다.
재구축부(260)는, 클라이언트 단말(20)의 수신부(220)에 의해 서버 수단(20)으로부터 수신한 분할 데이터 및/또는 P2P 통신부(250)에 의해 다른 클라이언트 단말로부터 수신한 분할 데이터를, 캐시 영역(230)으로부터 판독하고, 판독된 분할 데이터를 통합하여 콘텐츠 데이터를 재구축한다. 그리고, 재구축부(260)에 의해 재구축된 콘텐츠 데이터는 데이터 기억부(270)에 기억된다.
또한, 클라이언트 단말(20)은, 정해진 편집 작업을 한 편집 후의 콘텐츠 데이터를, 서버 수단(10)의 콘텐츠 기억부(110)에 업로드하는 업로드부(280)를 구비하고 있다. 즉, 클라이언트 단말(20)은, 제어 프로그램의 지령에 따라서, 적절하게 기억부에 데이터 기억부(270)에 기억된 콘텐츠 데이터를 판독하고, 렌더링 애플리케이션 등을 기동하여, 콘텐츠 데이터의 편집 처리를 할 수 있다. 업로드부(280)는, 이 편집 후의 콘텐츠 데이터를, 서버 수단(10)의 콘텐츠 기억부(110)에 업로드할 수 있게 되어 있다. 콘텐츠 기억부(110)에 업로드된 편집 후의 콘텐츠 데이터는, 소프트웨어 개발의 각 공정에서의 메타 정보가 리포지터리 스토리지(150)에 기억되어, 서버 수단(10)의 구성 관리 시스템(170)에 의해서, 콘텐츠 데이터의 최신판이나 변경 이력과 같은 버전의 관리가 이루어진다.
(2. 데이터 송수신 시스템의 처리 흐름)
이어서, 도 3 및 도 4를 참조하여, 본 발명의 실시형태에 따른 데이터 송수신 시스템의 처리 흐름에 관해서 설명한다. 우선, 도 3 및 도 4는 송수신 시스템의 어느 실시형태에 처리 흐름을 도시한 것이다. 도 3은 데이터 송수신의 흐름을 개념적으로 도시한 것이고, 도 4는 시스템의 흐름도의 예를 도시하고 있다.
도 4에 도시하는 바와 같이, 서버 수단(10)은, 데이터 분할부(120)에 의해서, 미리 콘텐츠 데이터를 분할한다(단계 S1). 분할부(120)에 의해 분할된 분할 데이터는 콘텐츠 기억부(110)에 기억된다(단계 S2). 예컨대, 도 3에 도시하는 바와 같이, 어떤 콘텐츠 데이터는, 데이터 A, 데이터 B 및 데이터 C의 분할 데이터로 분할되어 콘텐츠 기억부(110)에 기억되어 있다.
도 4에 도시하는 바와 같이, 어떤 클라이언트 단말(20)은, 서버 통신부(210)를 통해, 서버 수단(10)에 대하여, 콘텐츠 데이터의 다운로드 요구를 송신한다(단계 S3). 예컨대, 도 3에 도시된 예에서는, 복수의 클라이언트 단말 중, 어떤 클라이언트 단말(20a)이, 데이터 A, 데이터 B 및 데이터 C로 구성되는 콘텐츠 데이터의 다운로드 요구를 서버 수단(10)에 송신하고 있다.
도 4에 도시하는 바와 같이, 어떤 클라이언트 단말(20a)은, 콘텐츠 데이터의 다운로드 요구를 서버 수단(10)에 송신했을 때, 서버 수단(10)의 메타 데이터 데이터베이스(140)를 참조하여, 메타 데이터 취득부(240)에 의해서, 메타 데이터 데이터베이스(140)에 기억되어 있는 메타 데이터에 기초하여, 분할 캐시 정보를 취득한다(단계 S4). 분할 캐시 정보는, 원하는 콘텐츠 데이터의 분할 데이터를 기억하고 있는 다른 클라이언트 단말에 관한 정보이며, 예컨대, 다른 클라이언트 단말의 P2P 통신에 있어서의 IP 어드레스 등의 정보가 포함된다.
도 3에 도시된 예에서는, 어떤 클라이언트 단말(20a)이 다운로드 요구를 한 콘텐츠 데이터의 분할 데이터를, 서버 수단(10) 외에, 다른 클라이언트 단말(20b 및 2c)이 보유하고 있다. 즉, 도 3에 도시된 예에서는, 다른 클라이언트 단말(20b)의 캐시 영역(230)에는 데이터 B가 기억되고, 다른 클라이언트 단말(20c)의 캐시 영역(230)에는 데이터 C가 기억되어 있다. 이들 정보는, 분할 캐시 정보로서, 메타 데이터 데이터베이스(140)에 기억되어 있다. 이 때문에, 어떤 클라이언트 단말(20a)은, 메타 데이터 데이터베이스(140)로부터 분할 캐시 정보를 취득함으로써, 데이터 B를 보유하는 다른 클라이언트 단말(20b)의 소재와, 데이터 C를 보유하는 다른 클라이언트 단말(20c)의 소재를 파악할 수 있다.
이어서, 도 4에 도시하는 바와 같이, 어떤 클라이언트 단말(20)은, 분할 캐시 정보에 기초하여, 분할 데이터의 요구처를 특정한다(단계 S5). 그리고, 클라이언트 단말(20)은, 특정한 요구처에 대하여, 분할 데이터의 다운로드 요구를 송신한다(단계 S6). 기본적으로, 서버 수단(10)에의 트래픽이 증대화되는 것을 방지하기 위해서, 클라이언트 단말(20)이 보유하는 분할 데이터에 관해서는, 그 클라이언트 단말에 대하여 다운로드 요구를 송신하는 것을 우선하는 것이 바람직하다. 이 때문에, 어떤 클라이언트 단말(20)은, 기본적으로, 다른 클라이언트 단말이 분할 데이터를 보유하는 경우에는, 그 분할 데이터에 관해서는 상기 다른 클라이언트 단말에 대하여 다운로드 요구를 송신하는 것을 우선하고, 다른 클라이언트 단말이 보유하지 않은 분할 데이터에 관해서만 서버 수단(10)에 대하여 다운로드 요구를 행하는 것이 바람직하다.
단, 클라이언트 단말(20)은, 분할 캐시 정보에 기초하여, 예컨대, 분할 데이터를 보유하는 다른 클라이언트 단말이 P2P 통신 가능한 상태에 있는지 여부나, 자신과 다른 클라이언트 단말의 접속 거리가 가까운지 여부를 판단할 수 있다. 도 3의 예를 참조하여 설명하면, 어떤 클라이언트 단말(20a)은, 다른 클라이언트 단말(20c)의 전원이 끊겨 있는 경우 등, 다른 클라이언트 단말(20c)과의 사이에서 P2P 통신이 불가능한 상태에 있다고 판단한 경우에는, 다른 클라이언트 단말(20c)이 보유하고 있는 분할 데이터(데이터 C)에 관해서는, 서버 수단(10)에 대하여 다운로드 요구를 송신하면 좋다. 또한, 예컨대, 어떤 클라이언트 단말(20a)은, 자신과 다른 클라이언트 단말(20c)을 접속할 때에 통과하는 노드의 수 등에 의해서, 자신과 다른 클라이언트 단말(20c) 접속 거리를 파악하여, 자신과 다른 클라이언트 단말(20c) 접속 거리가 정해진 거리 이상 떨어져 있다고 판단한 경우에는, 다른 클라이언트 단말(20c)이 보유하고 있는 분할 데이터(데이터 C)에 관해서는, 서버 수단(10)에 대하여 다운로드 요구를 송신할 수도 있다. 이때, 어떤 클라이언트 단말(20a)은, 분할 데이터(데이터 C)를, 다른 클라이언트 단말(20c)로부터 수신하는 데 필요한 시간과, 서버 수단(10)으로부터 수신하는 데 필요한 시간을 비교하여, 수신하기 위한 시간이 짧은 쪽에 대하여, 분할 데이터(데이터 C)의 다운로드 요구를 송신하는 것으로 하여도 좋다.
도 4에 도시하는 바와 같이, 어떤 클라이언트 단말(20)로부터 분할 데이터의 다운로드 요구를 수신한 서버 수단(10) 및/또는 다른 클라이언트 단말(20)은, 다운로드 요구된 분할 데이터를, 상기 클라이언트 단말(20)에 대하여 송신한다(단계 S7). 예컨대, 도 3의 예를 참조하여 설명하면, 어떤 클라이언트 단말(20a)로부터 분할 데이터(데이터 A)의 다운로드를 요구받은 서버 수단(10)은, 콘텐츠 기억부(110)로부터 분할 데이터(데이터 A)를 판독하여, 송신부(130)를 통해 어떤 클라이언트 단말(20a)에 송신한다. 또한, 어떤 클라이언트 단말(20a)로부터 분할 데이터(데이터 B)의 다운로드를 요구받은 다른 클라이언트 단말(20b)은, 캐시 영역(230)으로부터 데이터 B를 판독하여, P2P 통신부(250)를 통해 어떤 클라이언트 단말(20a)에 송신한다. 마찬가지로, 어떤 클라이언트 단말(20a)로부터 분할 데이터(데이터 C)의 다운로드를 요구받은 다른 클라이언트 단말(20c)은, 캐시 영역(230)으로부터 데이터 C를 판독하여, P2P 통신부(250)를 통해 어떤 클라이언트 단말(20a)에 송신한다. 한편, 도 3에 도시된 예에서, 어떤 클라이언트 단말(20a)은, 서버 수단(10)과 다른 클라이언트 단말(20b, 20c)의 각각으로부터 분할 데이터(데이터 A, B, C)를 다운로드하는 것으로 하고 있지만, 어떤 클라이언트 단말(20a)은, 분할 데이터(데이터 A, B, C)를 일괄하여, 서버 수단(10)으로부터 다운로드하거나, 다른 하나의 클라이언트 단말로부터 다운로드할 수도 있다. 어떤 클라이언트 단말(20a)은, 서버 수단(10) 및/또는 다른 클라이언트 단말(20)로부터 다운로드한 분할 데이터를 일시적으로 캐시 영역(230)에 기억한다.
이어서, 클라이언트 단말(20)은, 재구축부(260)에 의해서, 서버 수단(10) 및/또는 다른 클라이언트 단말(20)로부터 다운로드한 분할 데이터를 통합하여, 콘텐츠 데이터를 재구축한다(단계 S8). 그리고, 클라이언트 단말(20)은, 재구축한 콘텐츠 데이터를 데이터 기억부(270)에 기억한다(단계 S9). 이와 같이 하여, 클라이언트 단말(20)은 원하는 콘텐츠 데이터를 취득하는 것이 가능하게 된다.
이상과 같이, 본 발명의 데이터 송수신 시스템에서는, 어떤 클라이언트 단말에 의한 콘텐츠 데이터의 다운로드 요구에 따라서, 콘텐츠 데이터를 보유하는 서버 수단으로부터 뿐만아니라, 그 콘텐츠 데이터가 캐시 영역에 기억되어 있는 다른 클라이언트 단말로부터도 다운로드 요구를 한 클라이언트 단말에 대하여, 콘텐츠 데이터의 일부 또는 전부가 전송된다. 이 때문에, 복수의 클라이언트 단말에 대한 데이터 전송이, 특정한 서버 장치에 일국 집중하는 사태를 피할 수 있어, 데이터 전송에 있어서 생기는 병목 현상의 문제를 해소할 수 있다. 또한, 어떤 클라이언트 단말이, 서버 수단에 저장되어 있는 데이터를 요구할 때, 그 클라이언트 단말 근방의 다른 클라이언트 단말에 요구 데이터의 분할 데이터가 있는 경우에는, 이것을 활용함으로써 데이터 전량을 서버 수단으로부터 취득하지 않아도 되기 때문에, 서버 수단의 부하의 저감과, 서버 수단과의 통신 경로 상의 병목 현상의 경감이 달성된다. 또한, 어떤 클라이언트 단말에 대하여, 콘텐츠 데이터를, 서버 수단 및 다른 클라이언트 단말로부터 분할 데이터로서 전송하는 것이 가능하기 때문에, 콘텐츠 데이터를 요구한 클라이언트 단말에 대하여, 멀티패스로 콘텐츠 데이터를 다운로드하게 할 수 있어, 데이터 전송 속도의 고속화를 실현할 수 있다.
(2-1. 용장화/분산화)
이어서, 데이터 송수신 시스템의 바람직한 형태에 관해서 설명한다.
도 5에는, 서버 수단(10)을 구성하는 복수의 서버 장치(11)가, 콘텐츠 기억부(110)를 용장화한 스토리지(111)를 갖고 있는 형태의 예를 도시하고 있다. 도 5에 도시된 예에서는, 콘텐츠 기억부(110)에 데이터 A, 데이터 B 및 데이터 C로 이루어지는 콘텐츠 데이터가 포함되어 있다. 그리고, 콘텐츠 기억부(110)가 용장화되고, 각 서버 장치(11)의 스토리지(111)에도 데이터 A, 데이터 B 및 데이터 C로 이루어지는 콘텐츠 데이터가 기억되어 있다.
도 5에 도시하는 바와 같이, 각 서버 장치(11)의 스토리지(111)에 기억되어 있는 콘텐츠 데이터는, 데이터 분할부(130)에 의해서, 데이터 A, 데이터 B 및 데이터 C의 분할 데이터로 분할된다. 복수의 서버 장치(11)와 클라이언트 단말(20)은 각각 통신 네트워크에 의해 접속되어 있다. 이 때문에, 어떤 클라이언트 단말(20a)이, 데이터 A, 데이터 B 및 데이터 C로 이루어지는 콘텐츠 데이터의 다운로드를 요구하면, 서버 수단(10)은, 다운로드 요구에 따라서, 클라이언트 단말(20a)에 대하여, 콘텐츠 데이터의 분할 데이터를 송신한다. 이때, 서버 수단(10)은, 복수의 서버 장치(11)를 통해, 클라이언트 단말(20a)에 대하여, 콘텐츠 데이터의 분할 데이터를 송신할 수 있다. 예컨대, 도 5에 도시하는 바와 같이, 서버 장치(11a)로부터는 클라이언트 단말(20a)에 대하여 데이터 A가 송신된다. 또한, 서버 장치(11b)로부터는 클라이언트 단말(20a)에 대하여 데이터 B가 송신된다. 마찬가지로, 서버 장치(11c)로부터는 클라이언트 단말(20a)에 대하여 데이터 C가 송신된다. 이와 같이, 복수의 서버 장치(11)에, 콘텐츠 기억부(110)를 용장화한 스토리지(111)를 갖춤으로써, 스토리지(111)에 용장화되어 보존되어 있는 콘텐츠 데이터를 멀티패스로 클라이언트 단말(20)에 송신할 수 있으므로, 1 커넥션당 통신 속도가 원인으로 통신 완료까지의 속도가 늦어지는 문제를 해소할 수 있다. 또한, 병렬 처리이면서 멀티패스로 클라이언트 단말(20)에 콘텐츠 데이터의 분할 데이터를 송신할 수 있기 때문에, 통신 처리의 한층 더 고속화를 실현할 수 있다.
도 6은 서버 수단(10)을 구성하는 복수의 서버 장치(11)의 스토리지(111)에, 콘텐츠 기억부(110)의 기억되어 있는 콘텐츠 데이터가, 분산되어 저장되어 있는 예를 도시하고 있다. 도 5에 도시된 예에서는, 콘텐츠 기억부(110)에 데이터 A, 데이터 B 및 데이터 C로 이루어지는 콘텐츠 데이터가 포함되어 있다. 그리고, 콘텐츠 기억부(110)의 콘텐츠 데이터가, 데이터 분할부(120)에 의해 분할되어, 각 서버 장치(11)의 스토리지(111)에 분산되어 기억되어 있다. 즉, 도 5에 도시된 예에서는, 데이터 A가 서버 장치(11a)의 스토리지(111)에, 데이터 B가 서버 장치(11b)의 스토리지(111)에, 데이터 C가 서버 장치(11c)의 스토리지(111)에 각각 저장되어 있다.
이 경우에 있어서, 어떤 클라이언트 단말(20a)이, 데이터 A, 데이터 B 및 데이터 C로 이루어지는 콘텐츠 데이터의 다운로드를 요구하면, 서버 수단(10)은, 다운로드 요구에 따라서, 클라이언트 단말(20a)에 대하여, 콘텐츠 데이터의 분할 데이터를 송신한다. 이때, 서버 수단(10)은, 복수의 서버 장치(11)를 통해, 클라이언트 단말(20a)에 대하여, 콘텐츠 데이터의 분할 데이터를 송신한다. 예컨대, 도 5에 도시하는 바와 같이, 서버 장치(11a)로부터는 클라이언트 단말(20a)에 대하여 데이터 A가 송신된다. 또한, 서버 장치(11b)로부터는 클라이언트 단말(20a)에 대하여 데이터 B가 송신된다. 마찬가지로, 서버 장치(11c)로부터는 클라이언트 단말(20a)에 대하여 데이터 C가 송신된다. 이와 같이, 복수의 서버 장치(11)의 스토리지(111)에, 콘텐츠 데이터의 분할 데이터를 분산하여 기억시켜 놓음으로써, 복수의 서버 장치(11)의 스토리지(111)에 보존되어 있는 콘텐츠 데이터를, 멀티패스로 클라이언트 단말(20)에 송신할 수 있으므로, 1 커넥션당 통신 속도가 원인으로 통신 완료까지의 속도가 늦어지는 문제를 해소할 수 있다. 또한, 병렬 처리이면서 멀티패스로, 클라이언트 단말(20)에 콘텐츠 데이터의 분할 데이터를 송신할 수 있기 때문에, 통신 처리의 한층 더한 고속화를 실현할 수 있다.
전술한 바와 같이, 콘텐츠 기억부(110)에 있어서의 콘텐츠 데이터의 저장을, 여러 대의 서버 장치(11)에 걸쳐서 용장화 및/또는 분산화시키는 것이 바람직하다. 콘텐츠 데이터의 저장의 용장화와 분산화는 상호 배타적인 것이 아니라, 콘텐츠 데이터의 저장을 용장화시킨 서버 장치(11)와 분산화시킨 서버 장치(11)를 병존시키는 것으로 하여도 좋다. 또한, 콘텐츠 데이터의 저장을 용장화 및/또는 분산화시킨 경우라도, 콘텐츠 데이터의 다운로드를 요구한 어떤 클라이언트 단말(20)은, 다른 클라이언트 단말(20)로부터 P2P 통신망을 통해 분할 데이터를 취득할 수 있다.
(2-2. 콘텐츠 데이터의 자동 분배)
이어서, 도 7을 참조하여, 클라이언트 단말에 대하여, 최신의 콘텐츠 데이터를 자동으로 분배하기 위한 처리 흐름에 관해서 설명한다.
도 7에 도시하는 바와 같이, 본 시스템에 포함되는 복수의 클라이언트 단말은, 각각 데이터 기억부(270)에 기억되어 있는 콘텐츠 데이터를 판독하고, 판독된 콘텐츠 데이터를 편집한다(단계 S10). 편집 후의 콘텐츠 데이터는, 서버 수단(10)에 집적되어, 구성 관리 시스템(170)에 의해 최신판이나 변경 이력과 같은 버전의 관리가 이루어진다. 이 때문에, 본 시스템에 포함되는 각 클라이언트 단말은, 편집 후의 콘텐츠 데이터를, 업로드부(280)를 통해, 서버 수단(10)에 업로드한다(단계 S11).
각 클라이언트 단말(20)에 의해 업로드된 편집 후의 콘텐츠 데이터는, 서버 수단(10)의 콘텐츠 기억부(110)에 기억된다(단계 S12). 또한, 이때, 서버 수단(10)에 업로드된 편집 후의 콘텐츠 데이터에 관한 것으로, 소프트웨어 개발의 각 공정에서 생성된 소스 코드 등의 성과물이 리포지터리 스토리지(150)에 기억된다. 또한, 리포지터리 스토리지(150)에 커밋되었을 때, 리포지터리 스토리지에 편집 후의 콘텐츠 데이터의 차분 정보가 업데이트되기 때문에, 구성 관리 시스템(170)은, 리포지터리 스토리지(150)를 참작함으로써, 각 콘텐츠 데이터의 버전 관리를 할 수 있게 된다.
이어서, 빌드 처리부(160)는, 리포지터리 스토리지(150)를 참작하여, 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터의 빌드 처리를 한다. 빌드 처리부(160)는, 리포지터리 스토리지(150)에서 관리되고 있는 소스 코드를 판독하여, 바이너리 코드로 컴파일함으로써, 독립된 소프트웨어 생성물로 변환한다. 예컨대, 빌드 처리(160)에는, 소스 코드를 바이너리 코드로 컴파일한 후, 바이너리 코드의 패키지화나, 테스트의 실행, 생산 시스템의 배비(配備), 문서나 릴리스 노트의 작성 등의 공정이 포함된다. 빌드 처리는, 시스템 관리자가 임의 시간대에 실행하는 것으로 하여도 좋고, 리포지터리 스토리지(150)에 소스 파일의 변경이 커밋될 때마다 자동적으로 실행하는 것으로 하여도 좋다. 특히, 빌드 처리는 야간 등의 CPU 사용률이 저하된 시간대에 실행하는(나이틀리 빌드를 행하는) 것이 바람직하다.
구성 관리 시스템(170)은, 빌드 처리 후의 콘텐츠 데이터를 다시 콘텐츠 기억부(110)에 저장하고, 콘텐츠 데이터의 버전을 최신의 것으로 갱신한다(단계 S14). 이때, 구성 관리 시스템(170)은, 차분 데이터에 의해서 콘텐츠 데이터의 버전 관리를 행하는 것으로 하여도 좋고, 각 버전마다 콘텐츠 데이터의 실제 데이터를 생성하여, 이 실제 데이터를 기억해 둠으로써, 콘텐츠 데이터의 버전 관리를 행하는 것이라도 좋다.
그 후, 서버 수단은, 상기 단계 S1 및 단계 S2와 마찬가지로, 데이터 분할부(120)에 의해서, 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터를 분할하여, 분할 데이터를 생성하여, 기억해 둔다(단계 S15, 단계 S16).
이어서, 각 클라이언트 단말(20)은, 자신의 데이터 기억부(270)에 기억되어 있는 편집 후의 콘텐츠 데이터의 버전과, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 빌드 처리 후의 콘텐츠 데이터의 버전을 비교한다(단계 S17). 전술한 바와 같이, 구성 관리 시스템(170)에 의해서, 각 콘텐츠 데이터의 버전 관리가 이루어지고 있기 때문에, 각 클라이언트 단말(20)은, 구성 관리 시스템(170)에 액세스함으로써, 편집 후의 콘텐츠 데이터의 버전과 빌드 처리 후의 콘텐츠 데이터의 버전의 차분을 파악할 수 있다. 이 비교 처리는, 서버 수단(10)이, 빌드 처리가 완료되었다는 정보를 각 클라이언트 단말(20)에 전달하고, 이 완료 정보를 받은 것을 계기로 하여, 각 클라이언트 단말(20)이 자동으로 행하는 것으로 하여도 좋다. 또한, 구성 관리 시스템(170)에 의해 클라이언트 단말마다의 비교 처리를 행하는 시간을 관리해 두고서, 구성 관리 시스템(170)의 지시에 따라, 클라이언트 단말마다 다른 시간대에 비교 처리를 시작하는 것으로 하더라도 좋다.
각 클라이언트 단말(20)은, 상기 비교 처리 결과, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 빌드 처리 후의 콘텐츠 데이터의 버전이, 자신의 데이터 기억부(270)에 기억되어 있는 편집 후의 콘텐츠 데이터의 버전보다 새로운 것이라고 판단한 경우에는, 서버 수단(10)에 대하여, 최신 버전의 콘텐츠 데이터의 다운로드를 요구한다(단계 S18). 그 후, 도 4에 기재된 단계 S4 ~ 단계 S9와 같은 식의 처리를 한다. 이에 따라, 각 클라이언트 단말(20)은, 편집 후의 콘텐츠 데이터를 업로드한 후, 자동적으로 최신 버전의 콘텐츠 데이터를 다운로드할 수 있게 된다. 예컨대, 빌드 처리는, 야간 등의 CPU 사용률이 저하된 시간대에 실행함으로써, 야간에 각 클라이언트 단말(20)에 최신의 콘텐츠 데이터가 분배된다. 이 때문에, 예컨대, 콘텐츠 데이터의 편집 작업을 행하는 크리에이터가 출근했을 때에는, 이미 자신의 클라이언트 단말에, 필요한 콘텐츠 데이터의 최신 버전이 다운로드되어 있다고 하는 상황을 만드는 것도 가능하게 된다.
(2-3. 차분 데이터의 활용)
이어서, 도 8을 참조하여, 클라이언트 단말에 대하여, 콘텐츠 데이터의 차분 데이터를 분배하기 위한 처리 흐름에 관해서 설명한다. 각 클라이언트 단말(20)의 데이터 기억부(270)에 저장되어 있는 콘텐츠 데이터와, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터의 차분 데이터를 추출하여, 이 차분 데이터만을 클라이언트 단말에 대하여 송신함으로써, 데이터의 전송량을 줄여, 전송할 때에 생기는 병목 현상을 해소할 수 있다.
도 8에 도시하는 바와 같이, 클라이언트 단말(20)은, 서버 수단(10)에 대하여, 원하는 콘텐츠 데이터의 다운로드를 요구한다(단계 S19). 그리고, 콘텐츠 데이터의 다운로드 요구를 수신한 서버 수단(10)은, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 상기 콘텐츠 데이터의 버전과, 상기 클라이언트 단말의 데이터 기억부(270)에 기억되어 있는 상기 콘텐츠 데이터의 버전을 비교한다(단계 S20). 이때, 클라이언트 단말(20)의 데이터 기억부(270)에, 다운로드 요구의 대상으로 되어 있는 콘텐츠 데이터가 존재하지 않은 경우에는, 도 4에 도시된 처리 흐름의 단계 S4 ~ 단계 S9를 실행한다.
한편, 클라이언트 단말(20)의 데이터 기억부(270)에, 다운로드 요구의 대상으로 되어 있는 콘텐츠 데이터가 이미 존재하고 있는 경우에는, 서버 수단(10)의 구성 관리 시스템(170)은, 차분 추출부(171)에 의해서, 예컨대 바이너리 단위로, 서버 수단(10)의 콘텐츠 기억부(110)에 기억되어 있는 콘텐츠 데이터와, 클라이언트 단말의 데이터 기억부(270)에 기억되어 있는 콘텐츠 데이터의 차분 데이터를 추출한다(단계 S21). 차분 추출부(171)에 의해 추출된 차분 데이터는 일시적으로 캐시 메모리(도시하지않는다)에 기억된다.
그 후, 서버 수단(10)은, 차분 추출부(171)에 의해 추출한 차분 데이터만을, 송신부(130)를 통해 클라이언트 단말(20)에 대하여 송신한다(단계 S22).
차분 데이터를 수신한 클라이언트 단말(20)은, 재구축부(260)에 의해서, 수신한 차분 데이터를, 상기 데이터 기억부에 기억되어 있는 상기 콘텐츠 데이터에 적용한다(단계 S23). 이에 따라, 수신한 차분 데이터에 기초하여, 클라이언트 단말(20)이 기억하는 콘텐츠 데이터의 일부분을 갱신할 수 있다. 패치가 적용된 콘텐츠 데이터는 클라이언트 단말(20)의 데이터 기억부(270)에 기억된다.
이와 같은 차분 데이터를 활용한 콘텐츠 데이터 갱신 처리를 행함으로써, 콘텐츠 데이터의 다운로드를 할 때, CPU에서의 전처리나 후처리에 비용을 들이는 대신에, 서버 수단(10)과 클라이언트 단말(20) 사이에서의 데이터 전송량을 줄일 수 있기 때문에, 전송의 병목 현상을 해소할 수 있다. 또한, 예컨대, 클라이언트 단말(20)의 데이터 기억부(270)에, 다운로드 요구의 대상으로 되어 있는 콘텐츠 데이터가 존재하지 않은 경우에는, 도 4에 도시된 통상의 다운로드 처리를 실행하고, 한편으로, 다운로드 요구의 대상으로 되어 있는 콘텐츠 데이터가 이미 존재하고 있는 경우에는, 도 8에 도시된 차분 데이터만의 전송 처리를 실행함으로써, 데이터 전송을 효율화하기 때문에, 시스템의 사용자가 의식하지 않고서도 데이터의 전송을 고속화시킬 수 있다.
본원 명세서에서는, 본 발명의 내용을 표현하기 위해서 도면을 참조하면서 발명의 실시형태를 통해 설명했다. 단, 본원 명세서에 기재된 사항에 기초하여 당업자가 실시하는 변경 형태 또는 개량 형태가 본 발명의 취지를 일탈하는 것이 아닌 한, 본 발명의 범위에는 그 변경 형태 또는 그 개량 형태가 포함된다.
1: 데이터 송수신 시스템 10: 서버 수단
11: 서버 장치 111: 스토리지
110: 콘텐츠 기억부 120: 데이터 분할부
130: 송신부 140: 메타 데이터 데이터베이스
150: 리포지터리 스토리지 160: 빌드 처리부
170: 구성 관리 시스템 171: 차분 추출부
180: 클라이언트 통신부 20: 클라이언트 단말
210: 서버 통신부 220: 수신부
230: 캐시 영역 240: 메타 데이터 취득부
250: P2P 통신부 260: 재구축부
270: 데이터 기억부 280: 업로드부

Claims (5)

  1. 하나 또는 복수의 서버 장치에 의해 구성되는 서버 수단과, 복수의 클라이언트 단말이, 통신 네트워크를 통해 데이터를 주고받을 수 있도록 접속된 데이터 송수신 시스템으로서,
    상기 서버 수단은,
    임의의 콘텐츠 데이터를 기억하는 콘텐츠 기억부와,
    상기 콘텐츠 기억부에 기억되어 있는 콘텐츠 데이터를 분할하여 분할 데이터를 생성하는 데이터 분할부와,
    상기 데이터 분할부에 의해 생성된 분할 데이터를 상기 클라이언트 단말에 대하여 송신하는 송신부를 가지며,
    상기 복수의 클라이언트 단말의 각각은,
    상기 서버 수단에 대하여, 상기 콘텐츠 데이터의 다운로드 요구를 송신하는 서버 통신부와,
    상기 서버 통신부를 통한 다운로드 요구에 따라서 상기 서버 수단으로부터 송신된 상기 콘텐츠 데이터의 상기 분할 데이터를 다운로드하는 수신부와,
    상기 수신부에 의해 다운로드한 상기 분할 데이터를 일시적으로 기억하는 캐시 영역을 가지며,
    상기 서버 수단은,
    각 클라이언트 단말의 상기 캐시 영역에 기억되어 있는 상기 분할 데이터에 관한 메타 데이터를 기억하는 메타 데이터 데이터베이스를 더 구비하며,
    상기 복수의 클라이언트 단말의 각각은,
    상기 콘텐츠 데이터의 다운로드 요구를 서버 수단에 송신했을 때, 상기 메타 데이터 데이터베이스를 참조하여, 상기 메타 데이터에 기초하여, 상기 콘텐츠 데이터의 분할 데이터를 기억하고 있는 다른 클라이언트 단말에 관한 정보를 취득하는 메타 데이터 취득부와,
    상기 메타 데이터 취득부에 의해 취득한 상기 다른 클라이언트 단말에 관한 정보에 기초하여, 상기 다른 클라이언트 단말의 상기 캐시 영역으로부터, 상기 콘텐츠 데이터의 분할 데이터를 다운로드하는 P2P 통신부와,
    상기 수신부에 의해 다운로드한 분할 데이터 및 상기 P2P 통신부에 의해 다운로드한 분할 데이터의 양쪽 또는 어느 한쪽을 통합하여, 상기 콘텐츠 데이터를 재구축하는 재구축부와,
    상기 재구축부에 의해 재구축한 상기 콘텐츠 데이터를 기억하는 데이터 기억부를 더 구비하는 데이터 송수신 시스템.
  2. 제1항에 있어서, 상기 서버 수단은, 복수의 서버 장치를 포함하고,
    상기 복수의 서버 장치의 각각은,
    상기 콘텐츠 기억부를 용장화한 스토리지와,
    상기 스토리지에 기억되어 있는 상기 콘텐츠 데이터를 분할하여 분할 데이터를 생성하는 데이터 분할부와,
    상기 클라이언트 단말로부터의 다운로드 요구에 따라서, 상기 데이터 분할부에 의해 생성된 분할 데이터를 상기 클라이언트 단말에 대하여 송신하는 송신부를 갖는 것인 데이터 송수신 시스템.
  3. 제1항에 있어서, 상기 서버 수단은, 복수의 서버 장치를 포함하고,
    상기 복수의 서버 장치는,
    상기 데이터 분할부에 의해 생성된 분할 데이터를 기억하는 스토리지와,
    상기 클라이언트 단말로부터의 다운로드 요구에 따라서, 상기 분할 데이터를 기억하는 스토리지에 의해 기억되어 있는 상기 분할 데이터를 상기 클라이언트 단말에 대하여 송신하는 송신부를 갖는 것인 데이터 송수신 시스템.
  4. 제1항에 있어서, 상기 클라이언트 단말의 각각은,
    상기 클라이언트 단말에 의해 편집한 편집 후의 콘텐츠 데이터를 상기 서버 수단의 상기 콘텐츠 기억부에 업로드하는 업로드부를 더 구비하고,
    상기 서버 수단은,
    각 클라이언트 단말로부터 업로드된 편집 후의 콘텐츠 데이터에 관한 정보를 기억하는 리포지터리(repository) 스토리지와,
    상기 리포지터리 스토리지에 기억된 상기 편집 후의 콘텐츠 데이터에 관한 정보를 기초로, 상기 콘텐츠 기억부에 기억되어 있는 콘텐츠 데이터의 빌드 처리를 행하는 빌드 처리부를 더 구비하고,
    상기 클라이언트 단말의 각각은,
    상기 서버 수단의 상기 빌드 처리부에 의해 빌드 처리가 실시된 빌드 후의 콘텐츠 데이터와, 상기 편집 후의 콘텐츠 데이터를 비교하여, 상기 빌드 후의 콘텐츠 데이터의 버전이, 상기 편집 후의 콘텐츠 데이터의 버전보다 새로운 경우에는, 상기 서버 통신부를 통해, 상기 서버 수단에 대하여, 상기 편집 후의 콘텐츠 데이터의 다운로드 요구를 송신하는 것인 데이터 송수신 시스템.
  5. 제1항에 있어서, 상기 클라이언트 단말의 각각은,
    상기 클라이언트 단말에 의해 편집한 편집 후의 콘텐츠 데이터를 상기 서버 수단의 상기 콘텐츠 기억부에 업로드하는 업로드부를 더 구비하고,
    상기 서버 수단은,
    각 클라이언트 단말로부터 업로드된 편집 후의 콘텐츠 데이터에 관한 정보를 기억하는 리포지터리 스토리지와,
    상기 리포지터리 스토리지에 기억된 상기 편집 후의 콘텐츠 데이터에 관한 정보를 기초로, 각 콘텐츠 데이터의 버전 관리를 행하는 구성 관리 시스템을 더 구비하고,
    상기 구성 관리 시스템은,
    상기 서버 수단이, 클라이언트 단말로부터, 콘텐츠 데이터의 다운로드 요구를 수신했을 때, 상기 서버 수단의 상기 콘텐츠 기억부에 기억되어 있는 상기 콘텐츠 데이터의 버전과, 상기 클라이언트 단말의 데이터 기억부에 기억되어 있는 상기 콘텐츠 데이터의 버전을 비교하여, 그 차분 데이터를 추출하는 차분 추출부를 가지며,
    상기 송신부를 통해, 상기 차분 추출부에 있어서 추출한 차분 데이터를, 상기 클라이언트 단말에 대하여 송신하고,
    상기 클라이언트 단말의 재구축부는,
    상기 송신부로부터 송신된 상기 차분 데이터를, 상기 데이터 기억부에 기억되어 있는 상기 콘텐츠 데이터에 적용하여, 콘텐츠 데이터를 재구축하는 것인 데이터 송수신 시스템.
KR1020147015369A 2011-11-10 2012-06-11 데이터 송수신 시스템 KR20140100504A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-246967 2011-11-10
JP2011246967 2011-11-10
PCT/JP2012/064931 WO2013069329A1 (ja) 2011-11-10 2012-06-11 データ送受信システム

Publications (1)

Publication Number Publication Date
KR20140100504A true KR20140100504A (ko) 2014-08-14

Family

ID=48289634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147015369A KR20140100504A (ko) 2011-11-10 2012-06-11 데이터 송수신 시스템

Country Status (6)

Country Link
US (1) US9531802B2 (ko)
EP (1) EP2735972B1 (ko)
JP (2) JP5797769B2 (ko)
KR (1) KR20140100504A (ko)
CN (1) CN103930880B (ko)
WO (1) WO2013069329A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602170B1 (ko) * 2014-12-12 2016-03-10 한국과학기술정보연구원 효율적인 메모리 사용을 위한 대용량 데이터 공유 시스템 및 방법
JP2021047725A (ja) * 2019-09-19 2021-03-25 本田技研工業株式会社 車両用装置、車両、サーバ、通信システム、車両用装置の動作方法、サーバの動作方法およびプログラム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9576114B2 (en) * 2012-03-05 2017-02-21 Marvin Marshall System and method for securely retrieving and playing digital media
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法
WO2014199197A1 (en) * 2013-06-11 2014-12-18 Yin Sheng Zhang A method, system and product for securely storing data files at a remote location by splitting and reassembling said files
JP6303300B2 (ja) * 2013-06-25 2018-04-04 富士通株式会社 制御依頼方法、情報処理装置、システム、およびプログラム
JP6175971B2 (ja) * 2013-08-16 2017-08-09 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP6204775B2 (ja) * 2013-09-27 2017-09-27 任天堂株式会社 情報処理システムおよび情報処理装置
CN104598478A (zh) * 2013-11-01 2015-05-06 株式会社肯博思泰格 利用了分割内容的虚拟面试处理***及方法
US10084839B2 (en) * 2013-12-27 2018-09-25 Sap Se Upload operation using multiple connections
JP6475455B2 (ja) * 2014-09-26 2019-02-27 任天堂株式会社 コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ配信プログラムおよびコンテンツ配信方法
US20160261667A1 (en) * 2015-03-06 2016-09-08 LeGuard, Inc. Systems and methods of managing time zone information
GB2537623A (en) * 2015-04-20 2016-10-26 Fujitsu Ltd Content delivery over D2D links
CN104735094B (zh) * 2015-04-21 2018-02-27 南京伍安信息科技有限公司 基于信息分离的数据安全传输***及方法
CN105554524B (zh) * 2015-12-14 2019-03-12 四川长虹电器股份有限公司 一种播放节目的方法及***
US10270827B2 (en) * 2015-12-21 2019-04-23 Intel Corporation Telemetry based feedback for improved media streaming
CN106060166A (zh) * 2016-07-12 2016-10-26 安徽天达网络科技有限公司 一种多终端网络文件下载方法
MX2020002593A (es) * 2017-09-14 2020-07-13 Sony Corp Aparato de procesamiento de informacion, metodo de proceso de informacion y programa.
US11157568B2 (en) * 2017-11-01 2021-10-26 Sap Se Offline mode for mobile application
US10911337B1 (en) * 2018-10-10 2021-02-02 Benjamin Thaddeus De Kosnik Network activity monitoring service
JP7105675B2 (ja) * 2018-11-02 2022-07-25 株式会社東芝 送信装置、サーバ装置、送信方法およびプログラム
CN109729519B (zh) * 2019-02-11 2021-02-02 Oppo广东移动通信有限公司 数据下载的方法及相关装置
KR102221638B1 (ko) * 2019-10-29 2021-03-04 데이터비즈 주식회사 대용량 파일 배포 시스템, 방법 및 컴퓨터 프로그램 및 시스템
CN111586112B (zh) * 2020-04-23 2022-04-15 合肥联宝信息技术有限公司 一种数据传输方法、装置以及计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
JP2003203023A (ja) * 2002-01-09 2003-07-18 Sony Corp 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム
JP4211282B2 (ja) * 2002-05-14 2009-01-21 ソニー株式会社 データ蓄積方法及びデータ蓄積システム、並びに、データ記録制御装置、データ記録指令装置、データ受信装置及び情報処理端末
JP2004046420A (ja) * 2002-07-10 2004-02-12 Nec System Technologies Ltd 最新リソースの整合方法及びその方式
JP2005107708A (ja) 2003-09-29 2005-04-21 Canon Inc アプリケーション配布システム
US7379967B2 (en) * 2005-01-28 2008-05-27 Grid Solutions, Inc. Download method for file by bit torrent protocol
CN1694492A (zh) * 2005-06-23 2005-11-09 北京影立弛技术有限公司 网络中p2p技术在信息家电终端应用的装置及方法
US7725658B2 (en) 2005-11-29 2010-05-25 Siemens Aktiengesellschaft Self-optimizing caching system and method for data records
CN101090360A (zh) * 2006-06-12 2007-12-19 朗迅科技公司 可记帐的对等式文件下载***
WO2008064356A1 (en) * 2006-11-22 2008-05-29 Metis Enterprise Technologies Llc Real-time multicast peer-to-peer video streaming platform
JP5042800B2 (ja) 2007-01-09 2012-10-03 ドコモ・テクノロジ株式会社 ネットワークデータ分散共有システム
JP2008269527A (ja) * 2007-04-25 2008-11-06 Nec Corp ファイル構成管理支援システム、装置、プログラム、及びファイル構成管理方法
JP2009205197A (ja) * 2008-02-26 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> Cgm配信システムおよびcgm配信方法
CA2757647A1 (en) * 2008-04-04 2009-12-03 Powerwave Cognition, Inc. Methods and systems for a mobile, broadband, routable internet
US8386622B2 (en) * 2008-05-16 2013-02-26 Palo Alto Research Center Incorporated Method and apparatus for facilitating communication in a content centric network
JP4850218B2 (ja) 2008-07-30 2012-01-11 株式会社ソニー・コンピュータエンタテインメント データ配信システム
US8204915B2 (en) 2009-02-13 2012-06-19 Alcatel Lucent Apparatus and method for generating a database that maps metadata to P2P content
GB0907922D0 (en) * 2009-05-07 2009-06-24 Skype Ltd Communication system and method
JP2010272973A (ja) * 2009-05-19 2010-12-02 Sharp Corp ネットワークシステム、通信端末、通信方法、および通信プログラム
JP2011180820A (ja) 2010-03-01 2011-09-15 Nec Corp データ転送管理装置、データ転送管理方法およびデータ転送管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602170B1 (ko) * 2014-12-12 2016-03-10 한국과학기술정보연구원 효율적인 메모리 사용을 위한 대용량 데이터 공유 시스템 및 방법
JP2021047725A (ja) * 2019-09-19 2021-03-25 本田技研工業株式会社 車両用装置、車両、サーバ、通信システム、車両用装置の動作方法、サーバの動作方法およびプログラム

Also Published As

Publication number Publication date
JP5797769B2 (ja) 2015-10-21
EP2735972B1 (en) 2017-11-22
JPWO2013069329A1 (ja) 2015-04-02
WO2013069329A1 (ja) 2013-05-16
EP2735972A1 (en) 2014-05-28
JP2016006671A (ja) 2016-01-14
US9531802B2 (en) 2016-12-27
US20140297735A1 (en) 2014-10-02
CN103930880B (zh) 2016-08-17
CN103930880A (zh) 2014-07-16
EP2735972A4 (en) 2015-04-29

Similar Documents

Publication Publication Date Title
JP5797769B2 (ja) データ送受信システム
US10853242B2 (en) Deduplication and garbage collection across logical databases
Nathan et al. Comicon: A co-operative management system for docker container images
CN104731516B (zh) 一种存取文件的方法、装置及分布式存储***
US20160142512A1 (en) Indirection objects in a cloud storage system
CN106506587A (zh) 一种基于分布式存储的Docker镜像下载方法
US9753944B2 (en) System and method for streaming files through differential compression
CN109314721B (zh) 分布式文件***的多个集群的管理
US20120179778A1 (en) Applying networking protocols to image file management
CN104573064B (zh) 一种大数据环境下的数据处理方法
US10503693B1 (en) Method and system for parallel file operation in distributed data storage system with mixed types of storage media
CN116680040B (zh) 一种容器处理方法、装置、设备、存储介质及程序产品
CN105872856A (zh) 一种流媒体文件分发方法及***
CN102281312B (zh) 一种数据加载方法、***和数据处理方法、***
US20190073153A1 (en) Efficient repository migration and storage
CA2983925C (en) Management of multiple clusters of distributed file systems
CN102055776A (zh) 使用专线连接的文件传输***及方法
US10511656B1 (en) Log information transmission integrity
US11507538B1 (en) Overlay file system for constrained environment
Ghobadi et al. Automated tools for manipulating files in a distributed environment with RSYNC
WO2016014049A1 (en) Relay to peer virtual machine transition
JP2013020575A (ja) クライアント端末、当該クライアント端末にインストールされるコンピュータソフトウェアプログラム、ファイル管理サーバと複数のクライアント端末とを有する通信システム及び通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application