KR19980063395A - 혼성 피어-서버 통신 구조를 위한 방법 및 시스템 - Google Patents
혼성 피어-서버 통신 구조를 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR19980063395A KR19980063395A KR1019970037169A KR19970037169A KR19980063395A KR 19980063395 A KR19980063395 A KR 19980063395A KR 1019970037169 A KR1019970037169 A KR 1019970037169A KR 19970037169 A KR19970037169 A KR 19970037169A KR 19980063395 A KR19980063395 A KR 19980063395A
- Authority
- KR
- South Korea
- Prior art keywords
- server
- peer
- total number
- addresses
- client
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- 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/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- 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
-
- 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/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명에 의하면 네트워크 컴퓨터 시스템에서의 서버 용량이 증가된다. 개별 클라이언트가 직접 통신하게 되는 피어들(peers)의 총 수(total number)가 결정된다. 그 후, 개별 클라이언트에 상호 연결된 서버가 제어하는 클라이언트의 총 수는 결정된 피어들의 총 수만큼 감소된다.
Description
본 발명은 일반적으로 컴퓨터 소프트웨어에 관한 것이다. 좀 더 구체적으로는 클라이언트-서버 통신의 장점 및 피어-투-피어(peer-to-peer) 통신의 장점을 다중 사용자 네트워크(multi-user network)에 결합하기 위한 방법 및 시스템에 관한 것이다.
월드 와이드 웹(World Wide Web: WWW) 및 인터넷의 출현으로 새로운 세트의 애플리케이션들의 출현이 가능하게 되었다. 웹 브라우저를 사용하여, 사용자들은 리모트 머신(remote machine) 상에서 수행되는 다양한 애플리케이션들과 대화할(interact) 수 있다. 예를 들어, WWW는 HTTP, FTP, 및 Gopher와 같은 다양한 프로토콜들을 투명하게(transparently) 통합한다. 또한, HTTP 서버는 추가적인 처리를 위해 클라이언트의 요구를 공통 게이트웨이 인터페이스(Common Gateway Interface: CGI)로 투명하게(transparently) 전송(forward)할 수 있다. 이런 간단한 메카니즘은 작업 흐름 관리, 은행 거래(banking transaction), 상업 광고, 정보 서비스, 및 오락을 포함하는 다양한 애플리케이션들이 인터넷 상에서 동작 가능하도록 해준다.
인터넷 상에서의 상호 작용은 계속해서 증가하고 있다. 대화형 그룹 트레이닝(interactive group training), 공동 저작, 다중 사용자 게임, 텍스트 및 오디오 기반 채트(chat), 및 화상 회의를 지원하는 애플리케이션들은 인터넷의 대중적 사용의 진입을 가능하게 해주었다. 이러한 애플리케이션에서, 다중 사용자들은 오디오, 비디오, 텍스트, 가상 세계에서의 위치 및 방위와 같은 실시간 정보를 교환함으로써 서로 상호작용한다. 그러나, 네트워크 대역폭 및 처리 능력의 한계가 상기 서비스들을 분산하는데 극복해야 할 장애물로 떠올랐다. 동시에 수 많은 사용자들이 실시간으로 대화하는 환경을 지원하기 위해, 애플리케이션은 광범위한 컴퓨터 및 네트워킹 능력을 가진 사용자들을 지원해야 한다. 사용자들에 관한 중요한 데이터는 서로 다른 호스트 상에서 수행되는 다양한 애플리케이션 콤포넌트에 의한 순간 액세스(instant access)를 허용하는 방식으로 공유되어야 한다.
현재 사용 가능한 대부분의 시판용 다중-사용자 플랫폼들은 하나의 중앙 서버(central server)에 의존하는데, 이러한 중앙 서버는 정보를 수신하도록 되어 있는 사용자에게 전송되기 전에 정보가 먼저 서버로 전송되어야 하기 때문에, 시스템의 스케일러빌리티(scalability)(즉, 서비스를 받을 수 있는 클라이언트의 수)을 제한하고, 접속된 사용자에 대한 지연(즉, 전송에서 수신할 때까지의 시간 지연의 크기)을 증가시킨다. 접속된 사용자 지연을 감소시키는 해결 방법 중의 하나가 피어-투-피어(peer-to-peer) 통신인데, 이러한 피어-투-피어 통신은 또한 서버 상의 로드를 감소시킴으로써 스케일러빌리티를 증가시킨다. 접속된 사용자가, 예를 들어 모뎀과 같은 저속 통신 라인을 사용하는 것으로 제한되어 있으면, 이러한 피어-투-피어(peer-to-peer) 통신에 의한 해결 방법은 관리가 불가능하다.
클라이언트-서버의 스케일러빌리티에 대한 결점을 해결하는 가능한 해결 방법 중의 하나로 Mitsubishi Electric Research Laboratory로부터 이용가능한 스플라인 서버 기술(Spline server technology)이 있다. 스플라인 기술에 의하여, 개별 서버에 대한 로드는 감소되지만, 지연 문제는 해결되지 않은 채 여전히 남아 있다(엄격한 의미의 클라이언트-서버의 경우보다 지연이 더 커질 수도 있다).
클라이언트-서버 시스템들은 서비스를 받을 수 있는 클라이언트 수의 조절이 가능하고(scalable), 다중 사용자의 접속(connectivity)용의 실제 모델을 제공하는 것이 필요하다. 따라서, 다수의 사용자들을 지원하고, 발생할 수 있는 지연을 감소시키며, 그리고 인트라넷과 인터넷 환경 내에서 그리고 이들 환경 간에 최적의 접속을 제공할 수 있는 서비스를 받을 수 있는 클라이언트 수의 조절이 가능한(scalable) 방법이 필요하다.
본 발명의 하나의 목적은 클라이언트 수의 조절이 가능한 다중 사용자 통신 시스템용 방법을 제공하는 것이다. 또한, 본 발명의 목적은 단절되지 않은 방식으로 사용자의 접속에 필요한 지연을 줄이는 것이다. 본 발명의 또 다른 목적은 특정한 형태의 네트워크 내에서 통신 시스템의 사용을 제한하는 것으로 가정(assumptions)하지 않고도 스케일러빌리티를 조절하는 것이다. 본 발명의 또 다른 목적은 애플리케이션들로 하여금 그 애플리케이션들이 실행될 때까지 자신들의 통신 토폴로지(topology)에 관한 결정을 늦출 수 있도록 해주는 것이다.
도 1은 본 발명이 사용될 수 있는 컴퓨터 시스템의 예시도.
도 2는 종래 기술에 따른 클라이언트-서버 구조를 도식화한 예시도.
도 3은 종래 기술에 따른 피어-투-피어(peer-to-peer) 시스템을 도시한 것.
도 4는 종래 기술에 따른 지역 국부 시스템을 도시한 것.
도 5는 본 발명을 도시한 것.
도 6은 M을 결정하기 위한 하이-레벨-플로우챠트(high level flowchart).
도 7은 본 발명을 예시하는 하이-레벨-플로우챠트(high level flowchart).
도면의주요부분에대한부호의설명
8 : 데이터 처리 시스템
10, 32 : LAN(Local Area Network)
12, 30 : 개별 컴퓨터
14 : 저장 장치
17 : 포인팅 디바이스(pointing device)
18 : 메인 프레임 컴퓨터
22, 24, 34 : 통신 링크
28 : 게이트웨이 서버
102 : 클라이언트
104 : 서버
106 : 전송선
204, 206 : 클라이언트
본 발명은 지연을 줄이고 스케일러빌리티(scalibility)를 제공하는 결정을 하기 위해 대역폭 관리를 사용한다. 통신을 위한 단일 전송(uni-cast) 및 다중 전송(multi-cast) 접속의 이용 가능성은 접속된 사용자 및 서버에 의해 가능한 경우는 언제나 사용될 수 있다. 본 발명의 하나의 특징에 따르면, 네트워크 컴퓨터 시스템에서의 서버 용량이 증가된다. 개별 클라이언트가 직접 통신하게 되는 피어들(peers)의 총 수(total number)가 맨 처음 결정된다. 그 후, 개별 클라이언트와 상호 접속된 서버에 의해 제어되는 클라이언트의 총 수가 결정된 피어들의 총 수만큼 감소한다.
본 발명과 본 발명의 추가적인 장점들을 더욱 완전하게 이해하기 위해 첨부 도면들과 관련하여 후술하는 본 발명의 상세히 설명이 참조되어야 한다.
도 1에는, 본 발명을 구현하는데 사용될 수 있는 데이터 처리 시스템 (8)의 그림으로 표시한 도면이 도시되어 있다. 이러한 도면에서 알 수 있는 바와 같이, 예를 들어 인터넷 또는 인트라넷을 포함할 수 있는 데이터 처리 시스템 (8)은 LAN (10) 및 LAN (32)와 같은 복수의 네트워크들을 포함할 수 있으며, 이들 LAN들은 각각 바람직하게는 복수의 개별 컴퓨터 (12) 및 (30), 또는 LAN, WAN, 공유 메모리 등과 같은 하나 이상의 통신 수단에 의해 결합되는 복수의 프로세서들을 포함하고 있다. 물론, 당업자는 호스트 프로세서에 결합된 복수의 지능형 워크 스테이션(Intelligent Work Station: IWS)이 상기 네트워크 각각에 대해 사용될 수 있음을 이해할 수 있을 것이다. 이러한 데이터 처리 시스템에 공통되는 것으로, 각 개별 컴퓨터에는 저장 장치 (14) 및/또는 프린터/출력 장치 (16)이 연결될 수 있으며, 마우스 (17)과 같은 포인팅 디바이스(pointing device)가 제공될 수 있다.
또한, 데이터 처리 시스템 (8)은 바람직하게는 통신 링크 (22) 수단에 의해 LAN (10)에 연결될 수 있는 메인 프레임 컴퓨터 (18)과 같은 복수의 메인 프레임 컴퓨터들을 포함할 수 있다. 메인 프레임 컴퓨터 (18)은 또한 LAN (10)용 리모트 저장 장치의 역할을 할 수 있는 저장 장치 (20)에 연결될 수 있다. 유사한 방법으로, LAN (10)은 통신 링크 (24)를 통해 서브시스템 제어 유닛/통신 제어기 (26)에 연결 될 수 있으며, 통신 링크 (34)를 통해 게이트웨이 서버(gateway server) (28)에 연결될 수 있다. 게이트웨이 서버 (28)은 바람직하게는 LAN (32)를 LAN (10)에 연결해주는 기능을 하는 개별 컴퓨터 또는 IWS이다.
LAN (32) 및 LAN (10)과 관련하여, 복수의 도큐먼트 또는 복수의 리소스 대상들(a plurality of documents or resource objects)은 저장 장치 (20) 내에 저장되어 메인프레임 컴퓨터 (18), 리소스 매니저(Resource Manager), 또는 저장된 리소스 대상에 대한 라이브러리 서비스(Library Service)에 의해 제어될 수 있다. 물론, 당업자는 메인프레임 컴퓨터 (18)이 LAN (10)으로부터 지역적으로 아주 멀리 떨어진 장소에 위치할 수 있으며, 마찬가지로 LAN (10)은 LAN (32)로부터 상당히 멀리 떨어진 곳에 위치할 수 있다는 것을 알 수 있을 것이다. 예를 들어, LAN (10)은 North Carolina주 내에 위치하고, LAN (32)는 California주에 위치하며, 메인프레임 컴퓨터 (18)은 New York주에 위치할 수 있다.
본 발명을 사용하는 소프트웨어 프로그램 코드는 전형적으로 독립적인 워크스테이션(stand alone workstation) 또는 개발자가 배포 목적용 코드에 액세스할 수 있는 LAN 서버 저장 장치 (14)의 메모리 내에 저장되고, 상기 소프트웨어 프로그램 코드는 디스켓 또는 CD-ROM과 같이 데이터 처리 시스템에서 사용하기 위한 여러 종류의 모든 공지 매체 상에 구현되거나, 또는 특정 형태로 된 네트워크를 통해 다른 컴퓨터 시스템으로 다른 시스템의 사용자들이 사용할 수 있도록 하나의 컴퓨터 시스템 메모리로부터 배포될 수 있다. 소프트웨어 코드를 매체 상에 구현하고/구현하거나, 소프트웨어 코드를 배포하는 이러한 기술 및 방법들은 공지이므로 본 명세서에서는 더 이상 설명하지 않는다.
도2에는, 일반적으로 참조 번호 (100)으로 표시되는 통상의 클라이언트-서버 환경이 예시되어 있다. 클라이언트-서버 환경 (100)에서는, 예를 들어 개별 컴퓨터 (12)(도 1참조)에 해당할 수 있는 클라이언트 (102)는 모든 실시간 발신 데이터를 전송선 (106)을 통해 서버 (104)로 전송한다. 서버 (104)는 예를 들어 패킷 전송 모드를 기초로 하여 데이터를 하나 이상의 적당한 클라이언트 (108) 또는 (110)으로 재전송할 책임이 있다. 패킷들이 최초 클라이언트에서 서버, 그리고 나서 목적지 클라이언트로 우회 루트(circuitous route)를 통해 최종 목적지로 전송되어야 하므로, 이러한 모델은 실시간 데이터에 대해 별도의 지연을 생기게 한다. 그러나, 이러한 모델에서는 클라이언트가 각각의 데이터 패킷을 한 번만 전송하면 되므로, 일반적으로 클라이언트 호스트에서의 최소 네트워크 대역폭 및 최소 계산능력을 필요로 한다. 따라서, 이러한 클라이언트-서버 모델은 다이얼-업 모뎀 링크를 통해 인터넷에 접속되는 개인용 컴퓨터에 가장 적합하다.
도 3에는, 밀결합 피어-투-피어(strict peer-to-peer) 환경이 예시되어 있다. 피어-투-피어 환경 (200)에서, 클라이언트 (202)는 모든 실시간 발신 데이터를 예를 들어, 클라이언트 (204) 및 클라이언트 (206)과 같은 목적지 피어 또는 목적지 피어들(peers)로 직접 전송한다. 상기 밀결합 피어-투-피어 환경은 정보가 최상의 직접 패스(direct path)에 의해 그 정보의 목적지로 루트(route)되기 때문에 실시간 데이터 패킷들의 지연을 최소화한다. 그러나, 다중 전송용 전송선들(multi-cast transmission lines)이 없으면, 각 패킷이 여러번 전송되기 때문에 상기 피어-투-피어 환경은 클라이언트의 네트워크 링크를 따라 상당히 더 큰 대역폭을 요구하고, 클라이언트의 프로세서에 더 큰 로드가 걸리게 한다. 결과적으로, 상기 피어-투-피어 시스템은 다증 전송 능력을 갖는 T1 또는 더 우수한 네트워크 링크에 접속된 고성능 워크 스테이션에 가장 적합하다.
도 4에는, 스플라인 형태의 환경 (400)이 도시되어 있다. 환경 (400)에서는, 클라이언트 (402)로부터 클라이언트 (404)로의 전송이 먼저 서버 (406)을 통하여 서버 (408)로 전송되고 최종적으로 클라이언트 (404)로 전송된다. 지역 국부 환경(Community Place environment)은 복수의 서버를 포함할 수 있는데, 이들 복수의 서버들은 피어-투-피어 프로토콜을 통하여 통신할 수 있다. 복수의 서버들을 제공함으로써, 상기 지역 국부 환경은 스케일러빌리티를 개선할 수 있지만, 지연을 감소시킬 수는 없다. 선택적으로, 클라이언트들이 피어-투-피어 프로토콜을 통해 참여하는 것이 허용될 수 있지만, 저대역폭 클라이언트-서버 모드 동작 또는 고대역폭 피어-투-피어 모드 동작 중 어느 하나를 선택하여야 한다.
도 5를 참조하면, 혼성 환경 (500)이 순수한 클라이언트-서버 및 순수한 피어-투-피어 옵션(option)을 통합하고 있다. 혼성 환경 (500)에서는, 클라이언트 (502)가 실시간 발신 데이터를 목적지 피어 클라이언트들 중의 일부분(예를 들어, 클라이언트 (504), (506) 및 (508))으로 직접 전송하고, 서버 (510)이 나머지 다른 목적지로 데이터를 전송한다. 이러한 혼성 환경은 각각의 클라이언트에게 다양한 통신 옵션들을 제공하고, 클라이언트가 언제라도 동적으로(dynamic) 출력 데이터에 대한 대역폭과 지연 간의 적당한 타협(tradeoff)을 효과적으로 선택할 수 있도록 해준다. 극단적인 상황에서는, 혼성 환경 (500)이 순수한 클라이언트-서버 및 순수한 피어-투-피어 모델을 지원한다는 점을 주목하여야 한다. 혼성 환경 (500)에서의 동작을 위해, 클라이언트가 서버에 피어-투-피어 용량(M)을 제공한다. 데이터를 전송하기 위해, 클라이언트는 피어-투-피어 용량(M)에 도달할 때까지 데이터를 배포 목록의 멤버로 전송하고; 그 후 서버로 전송되는 패킷의 나머지 피어들의 목록을 간단히 작성한다(list). 서버가 배포 목록의 나머지 요소들의 신원(identity)을 알게 되면, 클라이언트가 배포 목록을 서버로 전송하는 일을 먼저 할 수 있다. 그 결과, 피어-투-피어 형태로 데이터를 수신하는 이러한 배포 프로세스/네트워크에 대해 전송 지연이 감소되고, 개별 피어-투-피어 용량이 서버에 대한 로드를 경감함에 따라 서버에 의해 제공되는 서비스를 이용할 수 있는 클라이언트의 총 수(total number)(N)가 상향 조정될 수 있다. 서버는 또한 알고 있는 M의 값을 사용하여 클라이언트에 제공하는 피어의 어드레스들(peer addresses)의 수를 제한할 수 있다.
도 6에는, 피어-투-피어 용량(M)의 수(number)를 결정하기 위한 플로우챠트가 도시되어 있다. 결정 블록 (600)에서는, 사용자가 M에 대한 값을 설정(set)하였는지의 여부가 결정된다. 본 발명에서는 사용자가 단순히 M에 대한 숫자를 다이알로그(dialog) 내로 입력하여 값을 설정하는 것이 가능하다. 결정 블록 (600)에 대한 응답이 예스(yes)이면, 본 발명은 피어-투-피어 용량을 설정하여, 블록 (601)에서의 지연을 최소화하기 위해 M의 피어-투-피어 용량에 할당된 클라이언트 집합을 관리하고, 피어-투-피어 용량(M)은 (602)에서 설정된다. 결정 블록 (600)에 대한 응답이 노(no)이면, 사용자가 예를 들어 모뎀과 같은 저속 전송선을 사용하고 있는지의 여부가 결정 블록 (604)에서 결정된다. 결정 블록 (604)에 대한 응답이 예스(yes)이면, 블록 (606)에서 M이 영(0)으로 설정되고, 블록 (607)에서 M=0이 복귀된다. 결정 블록 (604)에 대한 응답이 노(no)이면, 블록 (608)에서는, M을 결정하기 위해 회선의 로드(line load)를 분석하도록 대역폭 관리 알고리즘(본 발명의 범위를 벗어남)이 사용되고, 본 발명이 어느 클라이언트가 지연의 최소화를 허용하도록 하는 M 내에 있는지를 결정한다. 블록 (609)에서 M의 값은 복귀된다.
도 7에는, 하이 레벨 플로우챠트(high level flowchart)가 도 6에서 하나의 M이 계산될 때마다 본 발명을 사용하는 것을 예시하고 있다. 블록 (700)에서는, 변수 i가 영(0)으로 설정되고, 블록 (701)에서 M이 얻어진다. 그 후, 결정 블록 (702)에서 i의 값이 영(0)보다 크거나 같고 M보다 작은지의 여부가 결정된다. 결정 블록 (702)에서 응답이 예스(yes)로 결정되면, 블록 (704)에서 수정된 정보가 호스트 또는 네트워크 식별자로 전송된다. 블록 (706)에서, i의 값은 1 증가하고, 본 발명은 결정 블록 (702)로 복귀된다. 결정 블록 (702)에 대한 응답이 노(no)이면, 블록 (708)에서 배포 목록이 비어있음(empty)으로 설정된다. 그 후, 패킷이 추가적인 호스트(즉, 서버에 의해서 제공될 수 있는 클라이언트들의 총 수)로 전송되어야 하는지의 여부가 결정 블록 (710)에서 결정된다. 결정 블록 (710)에 대한 응답이 예스(yes)이면, 블록 (712)에서 호스트 또는 네트워크 식별자가 배포 목록에 추가된다. 그 후, 블록 (714)에서 변수 i의 값이 1 증가하고 결정 블록 (710)으로 복귀한다. 결정 블록 (710)에 대한 응답이 노(no)이면, 블록 (716)에서 서버가 각 식별된 호스트 또는 네트워크로 데이터를 전송하도록 하기 위해 배포 목록 및 데이터가 서버로 전송된다. 본 발명은 그 후 블록 (718)에서 끝난다.
간단한 예로서, 하나의 사용자가 10개의 클라이언트(M=10)를 직접 제어할 수 있는 하나의 T1 통신 회선을 가지고 있다고 가정하자. 또한, 데이터 수신이 필요한 3개의 다른 클라이언트가 있다고 가정하자. 따라서, 본 발명을 사용하면, 서버는 3개의 클라이언트만을 제어하기만 하면 되나, 사용자 시스템은 10개의 클라이언트를 직접 제어할 수 있다. 이러한 방법은 서버가 10개의 통신 수정(updates)을 제어할 필요가 없도록 해주며 본질적으로 서버의 용량을 증가시키는 한편, 발신자에 의해 직접 서비스되는 10개의 수신자에 의해 나타나는 지연을 동시에 감소시킨다.
각자가 13명의 다른 사용자들과 통신하는 상기와 같은 사용자들이 14명의 있다면, 서버는 182(14*13)개의 활동중인 통신 패스(active communication paths) 중 42(14*3)개만을 수정할 필요가 있다. 각 사용자에 대하여 M이 10이 아니라 영(0)이면, 서버가 단지 42(14*3)개를 수정하는 대신 모든 수정들(updates) 또는 182(14*13) 개의 수정들을 제어하여야 한다. 사용자들 및 용량이 10 이상의 계수(factor)로 확장됨에 따라, 서버에 대한 절약(savings)이 훨씬 더 커진다는 것은 자명하다.
본 발명을 실시하는데 사용될 수 있는 샘플용 자바 소스 코드는 다음과 같다:
public void sprayPrivate(Peer[]group, Packet data) {
int length = group.length;
int min = (lengthcapacity) ? capacity:length;
for (int i=0;imin;++i)
Group[i].comm.update(data);
if(mincapacity) {
Vector list=new Vector();
for (int j=min;jcapacity;j++)
list.add(group[j]);
server.update(data.setDistribution(list));
}
}
본 발명이 특정한 바람직한 실시예에 관하여 기술되었지만, 당업자는 다양한 변경 및 수정을 할 수 있으며, 본 발명이 특허 청구 범위에서 유도되는 변경 및 수정을 포함할 수 있도록 의도된 것이다.
본 발명에 의하면 네트워크 컴퓨터 시스템에서의 서버 용량이 증가된다. 개별 클라이언트가 직접 통신하게 되는 피어들(peers)의 총 수(total number)가 결정되고, 그 후 개별 클라이언트에 상호 연결된 서버가 제어하는 클라이언트의 총 수는 결정된 피어들의 총 수만큼 감소된다.
Claims (21)
- 네트워크 컴퓨터 시스템의 서버 용량을 증가시키는 방법에 있어서,a) 개별 클라이언트와 직접 통신할 피어 주소(peer addresses)의 총 수(totalnumber)를 결정하는 단계; 및b) 네트워크 상의 개별 클라이언트에 상호 접속된 서버에 의해 제어되는 목적지 주소의 총 수를 항상 실시간으로 피어의 총 수만큼 감소시키는 단계를 포함하는 서버 용량 증가 방법.
- 제 1항에 있어서, 상기 피어 주소의 총 수가 상기 개별 클라이언트에 의해 설정(set)되는 방법.
- 제 1항에 있어서, 상기 피어 주소의 총 수가 대역폭 관리 알고리즘에 의해 설정(set)되는 방법.
- 제 1항에 있어서, 상기 피어 주소의 총 수와 상기 목적지 주소의 총 수 간의 차이가 상기 서버에 의해 제어되는 방법.
- 제 4항에 있어서, 상기 차이를 포함하는 주소가 상기 서버에 알려져 있고, 상기 개별 클라이언트가 상기 서버에게 상기 주소의 신원(identity)을 알려줄 필요가 없는 방법.
- 제 1항에 있어서, 상기 서버가 피어 주소의 총 수를 알고 있고, 서버가 상기 개별 클라이언트의 목적지에 제공된 다수의 불필요한 목적지 주소(unsolicited destination addresses)의 수를 제한하는 방법.
- 제 1항에 있어서, 상기 서버가 피어 목적지 주소의 총 수를 선택하는 것에 의해 지연을 최소화시키는 방법.
- 제 1항에 있어서, 상기 피어 주소 중 적어도 하나가 다중 전송 주소 공간(multicast address space)을 포함하는 방법.
- 제 1항에 있어서, 상기 클라이언트가 상기 피어 주소와 통신할 수 있도록 임의의 암호화 또는 데이터 포맷 변환을 수행하는 방법.
- 제 9항에 있어서, 상기 서버가 상기 서버에 의해 제공되는 상기 피어 주소와통신할 수 있도록 필요한 암호화 키(keys) 또는 다른 데이터 포맷 정보를 제공하는 방법.
- 네트워크 컴퓨터 시스템의 서버 용량을 증가시키기 위한 시스템에 있어서,a) 개별 클라이언트와 직접 통신할 피어 주소(peer addresses)의 총 수(totalnumber)를 결정하는 수단; 및b) 네트워크 상의 개별 클라이언트에 접속된 서버에 의해 제어되는 목적지주소들의 총 수를 항상 실시간으로 피어의 총 수만큼 감소시키는 수 단을 포함하는 서버 용량 증가 시스템.
- 제 11항에 있어서, 상기 피어 주소의 총 수가 상기 개별 클라이언트에 의해 설정(set)되는 시스템.
- 제 11항에 있어서, 상기 피어 주소의 총 수가 대역폭 관리 알고리즘에 의해 설정(set)되는 시스템.
- 제 11항에 있어서, 상기 피어 주소의 총 수와 상기 목적지 주소의 총 수 간의 차이가 상기 서버에 의해 제어되는 시스템.
- 제 14항에 있어서, 상기 차이를 포함하는 주소가 상기 서버에 알려져 있고, 상기 개별 클라이언트가 상기 서버에게 상기 주소들의 신원(identity)을 알려줄 필요가 없는 시스템.
- 제 11항에 있어서, 상기 서버가 피어 주소의 총 수를 알고 있고, 서버가 상기 개별 클라이언트의 목적지에 제공된 다수의 불필요한 목적지 주소(unsolicited destination addresses)의 수를 제한하는 시스템.
- 제 11항에 있어서, 상기 서버가 피어 목적지 주소의 총 수를 선택하는 것에 의해 지연을 최소화시키는 시스템.
- 제 11항에 있어서, 상기 피어 주소 중 적어도 하나가 다중 전송 주소 공간(multicast address space)을 포함하는 시스템.
- 제 11항에 있어서, 상기 클라이언트가 상기 피어 주소과 통신할 수 있도록 임의의 암호화 또는 데이터 포맷 변환을 수행하는 시스템.
- 제 19항에 있어서, 상기 서버가 상기 서버에 의해 제공되는 상기 피어 주소와 통신할 수 있도록 필요한 암호화 키(keys) 또는 다른 데이터 포맷 정보를 제공하는 시스템.
- 컴퓨터로 판독 가능한 매체 상에 기록된, 컴퓨터 네트워크의 서버 용량을 증가시키기 위한 컴퓨터 프로그램 제품(computer program product)에 있어서,a) 개별 클라이언트와 직접 통신할 피어 주소(peer addresses)의 총 수(totalnumber)를 결정하기 위한 컴퓨터로 판독 가능한 수단; 및b) 네트워크 상의 개별 클라이언트에 연결된 서버에 의해 제어되는 목적지주소의 총 수를 항상 실시간으로 피어의 총 수만큼 감소시키기 위한 컴퓨터로 판독 가능한 수단을 포함하는 컴퓨터 프로그램 제품.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/769,564 | 1996-12-19 | ||
US8/769,564 | 1996-12-19 | ||
US08/769,564 US6041343A (en) | 1996-12-19 | 1996-12-19 | Method and system for a hybrid peer-server communications structure |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980063395A true KR19980063395A (ko) | 1998-10-07 |
KR100268194B1 KR100268194B1 (ko) | 2000-11-01 |
Family
ID=25085830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970037169A KR100268194B1 (ko) | 1996-12-19 | 1997-08-04 | 혼성피어-서버통신구조를위한방법및시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6041343A (ko) |
EP (1) | EP0859496B1 (ko) |
JP (1) | JP3495234B2 (ko) |
KR (1) | KR100268194B1 (ko) |
DE (1) | DE69736422T2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100337757B1 (ko) * | 2000-01-08 | 2002-05-24 | 송병준 | 자바 언어를 이용한 클라이언트간 통신 방법 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718387B1 (en) * | 1997-12-10 | 2004-04-06 | Sun Microsystems, Inc. | Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel |
US6317438B1 (en) * | 1998-04-14 | 2001-11-13 | Harold Herman Trebes, Jr. | System and method for providing peer-oriented control of telecommunications services |
US6418141B1 (en) * | 1998-06-01 | 2002-07-09 | Lucent Technologies, Inc. | Multi-cast enabled web server |
US6728947B1 (en) * | 1998-06-05 | 2004-04-27 | R. R. Donnelley & Sons Company | Workflow distributing apparatus and method |
US6487600B1 (en) * | 1998-09-12 | 2002-11-26 | Thomas W. Lynch | System and method for supporting multimedia communications upon a dynamically configured member network |
US20020086275A1 (en) * | 1999-07-30 | 2002-07-04 | Boney James L. | Methods and apparatus for computer training relating to devices using a resource control module |
US6514085B2 (en) | 1999-07-30 | 2003-02-04 | Element K Online Llc | Methods and apparatus for computer based training relating to devices |
US20020162109A1 (en) * | 2001-04-26 | 2002-10-31 | Koninklijke Philips Electronics N.V. | Distributed storage on a P2P network architecture |
US20030018701A1 (en) * | 2001-05-04 | 2003-01-23 | Gregory Kaestle | Peer to peer collaboration for supply chain execution and management |
WO2003015054A1 (en) * | 2001-08-07 | 2003-02-20 | Element K Online Llc | Method and system for developing and providing effective training courses |
CN1218574C (zh) * | 2001-10-15 | 2005-09-07 | 华为技术有限公司 | 交互式视频设备及其字幕叠加方法 |
FR2832014A1 (fr) * | 2001-11-08 | 2003-05-09 | Thomson Licensing Sa | Module et procede de communication inter-utilisateurs et produits correspondants |
US20030126213A1 (en) * | 2002-01-02 | 2003-07-03 | International Business Machines Corporation | Establishing direct instant messaging communication between wireless devices |
US7120691B2 (en) * | 2002-03-15 | 2006-10-10 | International Business Machines Corporation | Secured and access controlled peer-to-peer resource sharing method and apparatus |
US7130921B2 (en) * | 2002-03-15 | 2006-10-31 | International Business Machines Corporation | Centrally enhanced peer-to-peer resource sharing method and apparatus |
US7343418B2 (en) * | 2002-06-03 | 2008-03-11 | Microsoft Corporation | Peer to peer network |
US7181442B2 (en) * | 2002-09-24 | 2007-02-20 | International Business Machines Corporation | Method and apparatus for discovery of dynamic network services |
US8095500B2 (en) * | 2003-06-13 | 2012-01-10 | Brilliant Digital Entertainment, Inc. | Methods and systems for searching content in distributed computing networks |
US7729992B2 (en) | 2003-06-13 | 2010-06-01 | Brilliant Digital Entertainment, Inc. | Monitoring of computer-related resources and associated methods and systems for disbursing compensation |
DE10345535B4 (de) * | 2003-09-30 | 2005-10-06 | Siemens Ag | Überprüfung der Verfügbarkeit eines Servers |
US8627213B1 (en) * | 2004-08-10 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Chat room system to provide binaural sound at a user location |
US20060168012A1 (en) * | 2004-11-24 | 2006-07-27 | Anthony Rose | Method and system for electronic messaging via distributed computing networks |
JP4103892B2 (ja) * | 2005-01-26 | 2008-06-18 | オンキヨー株式会社 | ピアツーピアコンテンツ配信システム |
US8286218B2 (en) | 2006-06-08 | 2012-10-09 | Ajp Enterprises, Llc | Systems and methods of customized television programming over the internet |
US7720083B2 (en) * | 2007-09-28 | 2010-05-18 | Microsoft Corporation | Intelligent routing in a hybrid peer-to-peer system |
US20090254931A1 (en) * | 2008-04-07 | 2009-10-08 | Pizzurro Alfred J | Systems and methods of interactive production marketing |
US8868725B2 (en) * | 2009-06-12 | 2014-10-21 | Kent State University | Apparatus and methods for real-time multimedia network traffic management and control in wireless networks |
JP2011008709A (ja) * | 2009-06-29 | 2011-01-13 | Brother Industries Ltd | 情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラム |
TW201210284A (en) * | 2010-08-27 | 2012-03-01 | Ind Tech Res Inst | Architecture and method for hybrid Peer To Peer/client-server data transmission |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991004623A1 (fr) * | 1989-09-19 | 1991-04-04 | Fujitsu Limited | Systeme d'acces multiple pour un reseau de communications |
US5285449A (en) * | 1991-04-03 | 1994-02-08 | International Business Machines Corporation | Protocol for hybrid local area networks |
EP0584027A2 (en) * | 1992-08-19 | 1994-02-23 | International Business Machines Corporation | Seamless peer-to-peer communications in a layered communications architecture |
US5444702A (en) * | 1992-09-14 | 1995-08-22 | Network Equipment Technologies, Inc. | Virtual network using asynchronous transfer mode |
US5592538A (en) * | 1993-03-10 | 1997-01-07 | Momentum, Inc. | Telecommunication device and method for interactive voice and data |
US5459725A (en) * | 1994-03-22 | 1995-10-17 | International Business Machines Corporation | Reliable multicasting over spanning trees in packet communications networks |
JPH08107462A (ja) * | 1994-08-11 | 1996-04-23 | Shosaku Kawai | 通信ネットワーク構造及びそれを基礎とした通信ネットワークシステム並びにその通信方法 |
US5659544A (en) * | 1994-10-17 | 1997-08-19 | Lucent Technologies Inc. | Method and system for distributed control in wireless cellular and personal communication systems |
US5838683A (en) * | 1995-03-13 | 1998-11-17 | Selsius Systems Inc. | Distributed interactive multimedia system architecture |
US5608448A (en) * | 1995-04-10 | 1997-03-04 | Lockheed Martin Corporation | Hybrid architecture for video on demand server |
US5913028A (en) * | 1995-10-06 | 1999-06-15 | Xpoint Technologies, Inc. | Client/server data traffic delivery system and method |
US5761433A (en) * | 1995-11-13 | 1998-06-02 | Billings; Roger E. | System for communicating data in a network using both a daisy chain link and separate broadcast links |
US5822523A (en) * | 1996-02-01 | 1998-10-13 | Mpath Interactive, Inc. | Server-group messaging system for interactive applications |
-
1996
- 1996-12-19 US US08/769,564 patent/US6041343A/en not_active Expired - Lifetime
-
1997
- 1997-08-04 KR KR1019970037169A patent/KR100268194B1/ko not_active IP Right Cessation
- 1997-11-06 EP EP97308906A patent/EP0859496B1/en not_active Expired - Lifetime
- 1997-11-06 DE DE69736422T patent/DE69736422T2/de not_active Expired - Lifetime
- 1997-11-27 JP JP32608997A patent/JP3495234B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100337757B1 (ko) * | 2000-01-08 | 2002-05-24 | 송병준 | 자바 언어를 이용한 클라이언트간 통신 방법 |
Also Published As
Publication number | Publication date |
---|---|
JPH10187643A (ja) | 1998-07-21 |
EP0859496B1 (en) | 2006-08-02 |
JP3495234B2 (ja) | 2004-02-09 |
KR100268194B1 (ko) | 2000-11-01 |
DE69736422D1 (de) | 2006-09-14 |
EP0859496A3 (en) | 2004-01-21 |
US6041343A (en) | 2000-03-21 |
EP0859496A2 (en) | 1998-08-19 |
DE69736422T2 (de) | 2007-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100268194B1 (ko) | 혼성피어-서버통신구조를위한방법및시스템 | |
US6178453B1 (en) | Virtual circuit switching architecture | |
US8429221B2 (en) | Content request routing method | |
US6965930B1 (en) | Methods, systems and computer program products for workload distribution based on end-to-end quality of service | |
Savage et al. | Detour: Informed Internet routing and transport | |
US7139926B1 (en) | Stateful failover protection among routers that provide load sharing using network address translation (LSNAT) | |
US7353276B2 (en) | Bi-directional affinity | |
US8788665B2 (en) | Method and system for optimizing a network by independently scaling control segments and data flow | |
US8380854B2 (en) | Simplified method for processing multiple connections from the same client | |
US8139483B2 (en) | Network traffic control in peer-to-peer environments | |
US6182224B1 (en) | Enhanced network services using a subnetwork of communicating processors | |
US20030174648A1 (en) | Content delivery network by-pass system | |
CA2691167A1 (en) | Access and control system for network-enabled devices | |
KR102685010B1 (ko) | 계정 연결 방법 및 장치, 저장 매체 그리고 전자 디바이스 | |
US6006267A (en) | Method and system for connecting network hosts having different communication protocols | |
Junginger et al. | The multi-ring topology-high-performance group communication in peer-to-peer networks | |
JP3666654B2 (ja) | インターネット通信方法{AmethodforanInternetCommunication} | |
JP3452410B2 (ja) | 仮想空間データ転送方法 | |
EP1327195A1 (en) | Method and apparatus for dynamic determination of optimum connection of a client to content servers | |
US7260644B1 (en) | Apparatus and method for re-directing a client session | |
Junginger et al. | A self-organizing publish/subscribe middleware for dynamic peer-to-peer networks | |
Eraslan et al. | A scalable network architecture for distributed virtual environments with dynamic QoS over 1Pv6 | |
Yamamoto et al. | A network-supported server load balancing method: active anycast | |
US7228562B2 (en) | Stream server apparatus, program, and NAS device | |
US6012092A (en) | Method and system for managing multi-user data flows in environments having minimal bandwidth and computational resources |
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: 20060614 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |