KR100268194B1 - Method and system for a hybrid peer-server communications structure - Google Patents
Method and system for a hybrid peer-server communications structure Download PDFInfo
- Publication number
- KR100268194B1 KR100268194B1 KR1019970037169A KR19970037169A KR100268194B1 KR 100268194 B1 KR100268194 B1 KR 100268194B1 KR 1019970037169 A KR1019970037169 A KR 1019970037169A KR 19970037169 A KR19970037169 A KR 19970037169A KR 100268194 B1 KR100268194 B1 KR 100268194B1
- Authority
- KR
- South Korea
- Prior art keywords
- server
- peer
- addresses
- total number
- address
- Prior art date
Links
Images
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)가 결정된다. 그 후, 개별 클라이언트에 상호 연결된 서버가 제어하는 클라이언트의 총 수는 결정된 피어들의 총 수만큼 감소된다.According to the present invention, server capacity in a network computer system is increased. The total number of peers with which an individual client will communicate directly is determined. Thereafter, the total number of clients controlled by the server interconnected to the individual clients is reduced by the total number of peers determined.
Description
본 발명은 일반적으로 컴퓨터 소프트웨어에 관한 것이다. 좀 더 구체적으로는 클라이언트-서버 통신의 장점 및 피어-투-피어(peer-to-peer) 통신의 장점을 다중 사용자 네트워크(multi-user network)에 결합하기 위한 방법 및 시스템에 관한 것이다.The present invention generally relates to computer software. More specifically, it relates to a method and system for combining the advantages of client-server communication and the advantages of peer-to-peer communication to a multi-user network.
월드 와이드 웹(World Wide Web: WWW) 및 인터넷의 출현으로 새로운 세트의 애플리케이션들의 출현이 가능하게 되었다. 웹 브라우저를 사용하여, 사용자들은 리모트 머신(remote machine) 상에서 수행되는 다양한 애플리케이션들과 대화할(interact) 수 있다. 예를 들어, WWW는 HTTP, FTP, 및 Gopher와 같은 다양한 프로토콜들을 투명하게(transparently) 통합한다. 또한, HTTP 서버는 추가적인 처리를 위해 클라이언트의 요구를 공통 게이트웨이 인터페이스(Common Gateway Interface: CGI)로 투명하게(transparently) 전송(forward)할 수 있다. 이런 간단한 메카니즘은 작업 흐름 관리, 은행 거래(banking transaction), 상업 광고, 정보 서비스, 및 오락을 포함하는 다양한 애플리케이션들이 인터넷 상에서 동작 가능하도록 해준다.The advent of the World Wide Web (WWW) and the Internet has enabled the emergence of a new set of applications. Using a web browser, users can interact with various applications running on a remote machine. For example, the WWW transparently integrates various protocols such as HTTP, FTP, and Gopher. In addition, the HTTP server may forward the request of the client transparently to the Common Gateway Interface (CGI) for further processing. This simple mechanism allows a variety of applications, including workflow management, banking transactions, commercial advertising, information services, and entertainment, to run on the Internet.
인터넷 상에서의 상호 작용은 계속해서 증가하고 있다. 대화형 그룹 트레이닝(interactive group training), 공동 저작, 다중 사용자 게임, 텍스트 및 오디오 기반 채트(chat), 및 화상 회의를 지원하는 애플리케이션들은 인터넷의 대중적 사용의 진입을 가능하게 해주었다. 이러한 애플리케이션에서, 다중 사용자들은 오디오, 비디오, 텍스트, 가상 세계에서의 위치 및 방위와 같은 실시간 정보를 교환함으로써 서로 상호작용한다. 그러나, 네트워크 대역폭 및 처리 능력의 한계가 상기 서비스들을 분산하는데 극복해야 할 장애물로 떠올랐다. 동시에 수 많은 사용자들이 실시간으로 대화하는 환경을 지원하기 위해, 애플리케이션은 광범위한 컴퓨터 및 네트워킹 능력을 가진 사용자들을 지원해야 한다. 사용자들에 관한 중요한 데이터는 서로 다른 호스트 상에서 수행되는 다양한 애플리케이션 콤포넌트에 의한 순간 액세스(instant access)를 허용하는 방식으로 공유되어야 한다.Interaction on the Internet continues to increase. Applications that support interactive group training, co-authoring, multi-user games, text and audio-based chat, and video conferencing have made it possible to enter the mass use of the Internet. In such applications, multiple users interact with each other by exchanging real-time information such as audio, video, text, location and orientation in the virtual world. However, the limitations of network bandwidth and processing power have emerged as an obstacle to overcome in distributing the services. At the same time, to support an environment in which many users communicate in real time, the application must support users with a wide range of computer and networking capabilities. Critical data about users must be shared in a manner that allows instant access by various application components running on different hosts.
현재 사용 가능한 대부분의 시판용 다중-사용자 플랫폼들은 하나의 중앙 서버(central server)에 의존하는데, 이러한 중앙 서버는 정보를 수신하도록 되어 있는 사용자에게 전송되기 전에 정보가 먼저 서버로 전송되어야 하기 때문에, 시스템의 스케일러빌리티(scalability)(즉, 서비스를 받을 수 있는 클라이언트의 수)을 제한하고, 접속된 사용자에 대한 지연(즉, 전송에서 수신할 때까지의 시간 지연의 크기)을 증가시킨다. 접속된 사용자 지연을 감소시키는 해결 방법 중의 하나가 피어-투-피어(peer-to-peer) 통신인데, 이러한 피어-투-피어 통신은 또한 서버 상의 로드를 감소시킴으로써 스케일러빌리티를 증가시킨다. 접속된 사용자가, 예를 들어 모뎀과 같은 저속 통신 라인을 사용하는 것으로 제한되어 있으면, 이러한 피어-투-피어(peer-to-peer) 통신에 의한 해결 방법은 관리가 불가능하다.Most commercially available multi-user platforms currently available rely on one central server, which must be sent to the server before it can be sent to a user who is supposed to receive the information. Limit scalability (ie, the number of clients that can be serviced) and increase the delay for the connected user (ie, the amount of time delay from transmission to reception). One solution to reducing connected user delay is peer-to-peer communication, which also increases scalability by reducing the load on the server. If the connected user is limited to using a low speed communication line, for example a modem, the solution by this peer-to-peer communication is unmanageable.
클라이언트-서버의 스케일러빌리티에 대한 결점을 해결하는 가능한 해결 방법 중의 하나로 Mitsubishi Electric Research Laboratory로부터 이용가능한 스플라인 서버 기술(Spline server technology)이 있다. 스플라인 기술에 의하여, 개별 서버에 대한 로드는 감소되지만, 지연 문제는 해결되지 않은 채 여전히 남아 있다(엄격한 의미의 클라이언트-서버의 경우보다 지연이 더 커질 수도 있다).One possible solution to the shortcomings of client-server scalability is the Spline server technology available from Mitsubishi Electric Research Laboratory. With spline technology, the load on individual servers is reduced, but the delay problem remains unresolved (the delay may be greater than in the strict sense of client-server).
클라이언트-서버 시스템들은 서비스를 받을 수 있는 클라이언트 수의 조절이 가능하고(scalable), 다중 사용자의 접속(connectivity)용의 실제 모델을 제공하는 것이 필요하다. 따라서, 다수의 사용자들을 지원하고, 발생할 수 있는 지연을 감소시키며, 그리고 인트라넷과 인터넷 환경 내에서 그리고 이들 환경 간에 최적의 접속을 제공할 수 있는 서비스를 받을 수 있는 클라이언트 수의 조절이 가능한(scalable) 방법이 필요하다.Client-server systems need to provide a scalable model of the number of clients that can be serviced and provide a practical model for multi-user connectivity. Thus, it is possible to support large numbers of users, reduce the delays that can occur, and to scale the number of clients that can receive services that can provide optimal access within and between intranet and Internet environments. I need a way.
본 발명의 하나의 목적은 클라이언트 수의 조절이 가능한 다중 사용자 통신 시스템용 방법을 제공하는 것이다. 또한, 본 발명의 목적은 단절되지 않은 방식으로 사용자의 접속에 필요한 지연을 줄이는 것이다. 본 발명의 또 다른 목적은 특정한 형태의 네트워크 내에서 통신 시스템의 사용을 제한하는 것으로 가정(assumptions)하지 않고도 스케일러빌리티를 조절하는 것이다. 본 발명의 또 다른 목적은 애플리케이션들로 하여금 그 애플리케이션들이 실행될 때까지 자신들의 통신 토폴로지(topology)에 관한 결정을 늦출 수 있도록 해주는 것이다.One object of the present invention is to provide a method for a multi-user communication system that can adjust the number of clients. It is also an object of the present invention to reduce the delay required for the user's connection in an uninterrupted manner. It is another object of the present invention to adjust scalability without assuming the limitations of the use of a communication system within a particular type of network. Another object of the present invention is to allow applications to slow down their decisions about their communication topology until they are executed.
도 1은 본 발명이 사용될 수 있는 컴퓨터 시스템의 예시도.1 is an illustration of a computer system in which the present invention may be used.
도 2는 종래 기술에 따른 클라이언트-서버 구조를 도식화한 예시도.2 is an exemplary diagram illustrating a client-server structure according to the prior art.
도 3은 종래 기술에 따른 피어-투-피어(peer-to-peer) 시스템을 도시한 것.3 shows a peer-to-peer system according to the prior art.
도 4는 종래 기술에 따른 지역 국부 시스템을 도시한 것.4 illustrates a local local system according to the prior art.
도 5는 본 발명을 도시한 것.5 illustrates the present invention.
도 6은 M을 결정하기 위한 하이-레벨-플로우챠트(high level flowchart).6 is a high level flowchart for determining M. FIG.
도 7은 본 발명을 예시하는 하이-레벨-플로우챠트(high level flowchart).7 is a high level flowchart illustrating the invention.
<도면의주요부분에대한부호의설명><Description of the symbols for the main parts of the drawings>
8 : 데이터 처리 시스템8: data processing system
10, 32 : LAN(Local Area Network)10, 32: LAN (Local Area Network)
12, 30 : 개별 컴퓨터12, 30: individual computer
14 : 저장 장치14: storage device
17 : 포인팅 디바이스(pointing device)17: pointing device
18 : 메인 프레임 컴퓨터18: mainframe computer
22, 24, 34 : 통신 링크22, 24, 34: communication link
28 : 게이트웨이 서버28: gateway server
102 : 클라이언트102: client
104 : 서버104: server
106 : 전송선106: transmission line
204, 206 : 클라이언트204, 206: Client
본 발명은 지연을 줄이고 스케일러빌리티(scalibility)를 제공하는 결정을 하기 위해 대역폭 관리를 사용한다. 통신을 위한 단일 전송(uni-cast) 및 다중 전송(multi-cast) 접속의 이용 가능성은 접속된 사용자 및 서버에 의해 가능한 경우는 언제나 사용될 수 있다. 본 발명의 하나의 특징에 따르면, 네트워크 컴퓨터 시스템에서의 서버 용량이 증가된다. 개별 클라이언트가 직접 통신하게 되는 피어들(peers)의 총 수(total number)가 맨 처음 결정된다. 그 후, 개별 클라이언트와 상호 접속된 서버에 의해 제어되는 클라이언트의 총 수가 결정된 피어들의 총 수만큼 감소한다.The present invention uses bandwidth management to make decisions that reduce latency and provide scalability. The availability of uni-cast and multi-cast connections for communication may be used whenever possible by the connected users and servers. According to one aspect of the invention, server capacity in a network computer system is increased. The total number of peers with which an individual client will communicate directly is determined first. Then, the total number of clients controlled by the server interconnected with the individual client decreases by the total number of peers determined.
본 발명과 본 발명의 추가적인 장점들을 더욱 완전하게 이해하기 위해 첨부 도면들과 관련하여 후술하는 본 발명의 상세히 설명이 참조되어야 한다.DETAILED DESCRIPTION In order to more fully understand the present invention and further advantages of the present invention, reference should be made to the following detailed description of the invention in connection with the accompanying drawings.
도 1에는, 본 발명을 구현하는데 사용될 수 있는 데이터 처리 시스템 (8)의 그림으로 표시한 도면이 도시되어 있다. 이러한 도면에서 알 수 있는 바와 같이, 예를 들어 인터넷 또는 인트라넷을 포함할 수 있는 데이터 처리 시스템 (8)은 LAN (10) 및 LAN (32)와 같은 복수의 네트워크들을 포함할 수 있으며, 이들 LAN들은 각각 바람직하게는 복수의 개별 컴퓨터 (12) 및 (30), 또는 LAN, WAN, 공유 메모리 등과 같은 하나 이상의 통신 수단에 의해 결합되는 복수의 프로세서들을 포함하고 있다. 물론, 당업자는 호스트 프로세서에 결합된 복수의 지능형 워크 스테이션(Intelligent Work Station: IWS)이 상기 네트워크 각각에 대해 사용될 수 있음을 이해할 수 있을 것이다. 이러한 데이터 처리 시스템에 공통되는 것으로, 각 개별 컴퓨터에는 저장 장치 (14) 및/또는 프린터/출력 장치 (16)이 연결될 수 있으며, 마우스 (17)과 같은 포인팅 디바이스(pointing device)가 제공될 수 있다.1 shows a pictorial representation of a
또한, 데이터 처리 시스템 (8)은 바람직하게는 통신 링크 (22) 수단에 의해 LAN (10)에 연결될 수 있는 메인 프레임 컴퓨터 (18)과 같은 복수의 메인 프레임 컴퓨터들을 포함할 수 있다. 메인 프레임 컴퓨터 (18)은 또한 LAN (10)용 리모트 저장 장치의 역할을 할 수 있는 저장 장치 (20)에 연결될 수 있다. 유사한 방법으로, LAN (10)은 통신 링크 (24)를 통해 서브시스템 제어 유닛/통신 제어기 (26)에 연결 될 수 있으며, 통신 링크 (34)를 통해 게이트웨이 서버(gateway server) (28)에 연결될 수 있다. 게이트웨이 서버 (28)은 바람직하게는 LAN (32)를 LAN (10)에 연결해주는 기능을 하는 개별 컴퓨터 또는 IWS이다.In addition, the
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주에 위치할 수 있다.With respect to LAN 32 and LAN 10, a plurality of documents or resource objects may be stored in
본 발명을 사용하는 소프트웨어 프로그램 코드는 전형적으로 독립적인 워크스테이션(stand alone workstation) 또는 개발자가 배포 목적용 코드에 액세스할 수 있는 LAN 서버 저장 장치 (14)의 메모리 내에 저장되고, 상기 소프트웨어 프로그램 코드는 디스켓 또는 CD-ROM과 같이 데이터 처리 시스템에서 사용하기 위한 여러 종류의 모든 공지 매체 상에 구현되거나, 또는 특정 형태로 된 네트워크를 통해 다른 컴퓨터 시스템으로 다른 시스템의 사용자들이 사용할 수 있도록 하나의 컴퓨터 시스템 메모리로부터 배포될 수 있다. 소프트웨어 코드를 매체 상에 구현하고/구현하거나, 소프트웨어 코드를 배포하는 이러한 기술 및 방법들은 공지이므로 본 명세서에서는 더 이상 설명하지 않는다.Software program code using the present invention is typically stored in a stand alone workstation or in a memory of a LAN
도2에는, 일반적으로 참조 번호 (100)으로 표시되는 통상의 클라이언트-서버 환경이 예시되어 있다. 클라이언트-서버 환경 (100)에서는, 예를 들어 개별 컴퓨터 (12)(도 1참조)에 해당할 수 있는 클라이언트 (102)는 모든 실시간 발신 데이터를 전송선 (106)을 통해 서버 (104)로 전송한다. 서버 (104)는 예를 들어 패킷 전송 모드를 기초로 하여 데이터를 하나 이상의 적당한 클라이언트 (108) 또는 (110)으로 재전송할 책임이 있다. 패킷들이 최초 클라이언트에서 서버, 그리고 나서 목적지 클라이언트로 우회 루트(circuitous route)를 통해 최종 목적지로 전송되어야 하므로, 이러한 모델은 실시간 데이터에 대해 별도의 지연을 생기게 한다. 그러나, 이러한 모델에서는 클라이언트가 각각의 데이터 패킷을 한 번만 전송하면 되므로, 일반적으로 클라이언트 호스트에서의 최소 네트워크 대역폭 및 최소 계산능력을 필요로 한다. 따라서, 이러한 클라이언트-서버 모델은 다이얼-업 모뎀 링크를 통해 인터넷에 접속되는 개인용 컴퓨터에 가장 적합하다.In Fig. 2, a typical client-server environment, indicated generally by the
도 3에는, 밀결합 피어-투-피어(strict peer-to-peer) 환경이 예시되어 있다. 피어-투-피어 환경 (200)에서, 클라이언트 (202)는 모든 실시간 발신 데이터를 예를 들어, 클라이언트 (204) 및 클라이언트 (206)과 같은 목적지 피어 또는 목적지 피어들(peers)로 직접 전송한다. 상기 밀결합 피어-투-피어 환경은 정보가 최상의 직접 패스(direct path)에 의해 그 정보의 목적지로 루트(route)되기 때문에 실시간 데이터 패킷들의 지연을 최소화한다. 그러나, 다중 전송용 전송선들(multi-cast transmission lines)이 없으면, 각 패킷이 여러번 전송되기 때문에 상기 피어-투-피어 환경은 클라이언트의 네트워크 링크를 따라 상당히 더 큰 대역폭을 요구하고, 클라이언트의 프로세서에 더 큰 로드가 걸리게 한다. 결과적으로, 상기 피어-투-피어 시스템은 다증 전송 능력을 갖는 T1 또는 더 우수한 네트워크 링크에 접속된 고성능 워크 스테이션에 가장 적합하다.In Figure 3, a tight peer-to-peer environment is illustrated. In peer-to-
도 4에는, 스플라인 형태의 환경 (400)이 도시되어 있다. 환경 (400)에서는, 클라이언트 (402)로부터 클라이언트 (404)로의 전송이 먼저 서버 (406)을 통하여 서버 (408)로 전송되고 최종적으로 클라이언트 (404)로 전송된다. 지역 국부 환경(Community Place environment)은 복수의 서버를 포함할 수 있는데, 이들 복수의 서버들은 피어-투-피어 프로토콜을 통하여 통신할 수 있다. 복수의 서버들을 제공함으로써, 상기 지역 국부 환경은 스케일러빌리티를 개선할 수 있지만, 지연을 감소시킬 수는 없다. 선택적으로, 클라이언트들이 피어-투-피어 프로토콜을 통해 참여하는 것이 허용될 수 있지만, 저대역폭 클라이언트-서버 모드 동작 또는 고대역폭 피어-투-피어 모드 동작 중 어느 하나를 선택하여야 한다.In FIG. 4, an
도 5를 참조하면, 혼성 환경 (500)이 순수한 클라이언트-서버 및 순수한 피어-투-피어 옵션(option)을 통합하고 있다. 혼성 환경 (500)에서는, 클라이언트 (502)가 실시간 발신 데이터를 목적지 피어 클라이언트들 중의 일부분(예를 들어, 클라이언트 (504), (506) 및 (508))으로 직접 전송하고, 서버 (510)이 나머지 다른 목적지로 데이터를 전송한다. 이러한 혼성 환경은 각각의 클라이언트에게 다양한 통신 옵션들을 제공하고, 클라이언트가 언제라도 동적으로(dynamic) 출력 데이터에 대한 대역폭과 지연 간의 적당한 타협(tradeoff)을 효과적으로 선택할 수 있도록 해준다. 극단적인 상황에서는, 혼성 환경 (500)이 순수한 클라이언트-서버 및 순수한 피어-투-피어 모델을 지원한다는 점을 주목하여야 한다. 혼성 환경 (500)에서의 동작을 위해, 클라이언트가 서버에 피어-투-피어 용량(M)을 제공한다. 데이터를 전송하기 위해, 클라이언트는 피어-투-피어 용량(M)에 도달할 때까지 데이터를 배포 목록의 멤버로 전송하고; 그 후 서버로 전송되는 패킷의 나머지 피어들의 목록을 간단히 작성한다(list). 서버가 배포 목록의 나머지 요소들의 신원(identity)을 알게 되면, 클라이언트가 배포 목록을 서버로 전송하는 일을 먼저 할 수 있다. 그 결과, 피어-투-피어 형태로 데이터를 수신하는 이러한 배포 프로세스/네트워크에 대해 전송 지연이 감소되고, 개별 피어-투-피어 용량이 서버에 대한 로드를 경감함에 따라 서버에 의해 제공되는 서비스를 이용할 수 있는 클라이언트의 총 수(total number)(N)가 상향 조정될 수 있다. 서버는 또한 알고 있는 M의 값을 사용하여 클라이언트에 제공하는 피어의 어드레스들(peer addresses)의 수를 제한할 수 있다.Referring to FIG. 5,
도 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의 값은 복귀된다.In FIG. 6, a flowchart for determining the number of peer-to-peer capacities (M) is shown. At
도 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)에서 끝난다.In FIG. 7, a high level flowchart illustrates the use of the present invention each time one M in FIG. 6 is calculated. In
간단한 예로서, 하나의 사용자가 10개의 클라이언트(M=10)를 직접 제어할 수 있는 하나의 T1 통신 회선을 가지고 있다고 가정하자. 또한, 데이터 수신이 필요한 3개의 다른 클라이언트가 있다고 가정하자. 따라서, 본 발명을 사용하면, 서버는 3개의 클라이언트만을 제어하기만 하면 되나, 사용자 시스템은 10개의 클라이언트를 직접 제어할 수 있다. 이러한 방법은 서버가 10개의 통신 수정(updates)을 제어할 필요가 없도록 해주며 본질적으로 서버의 용량을 증가시키는 한편, 발신자에 의해 직접 서비스되는 10개의 수신자에 의해 나타나는 지연을 동시에 감소시킨다.As a simple example, assume that one user has one T1 communication line that can directly control ten clients (M = 10). Also assume that there are three different clients that need to receive data. Thus, using the present invention, the server only needs to control three clients, but the user system can directly control ten clients. This method eliminates the need for the server to control ten communication updates and essentially increases the capacity of the server, while simultaneously reducing the delay seen by the ten receivers served directly by the sender.
각자가 13명의 다른 사용자들과 통신하는 상기와 같은 사용자들이 14명의 있다면, 서버는 182(14*13)개의 활동중인 통신 패스(active communication paths) 중 42(14*3)개만을 수정할 필요가 있다. 각 사용자에 대하여 M이 10이 아니라 영(0)이면, 서버가 단지 42(14*3)개를 수정하는 대신 모든 수정들(updates) 또는 182(14*13) 개의 수정들을 제어하여야 한다. 사용자들 및 용량이 10 이상의 계수(factor)로 확장됨에 따라, 서버에 대한 절약(savings)이 훨씬 더 커진다는 것은 자명하다.If there are 14 such users, each of whom communicates with 13 other users, the server needs to modify only 42 (14 * 3) of the 182 (14 * 13) active communication paths. . If M for each user is zero rather than 10, then the server should control all updates or 182 (14 * 13) modifications instead of just 42 (14 * 3) modifications. As users and capacity scale to more than 10 factors, it is obvious that savings for the server become even greater.
본 발명을 실시하는데 사용될 수 있는 샘플용 자바 소스 코드는 다음과 같다:Sample Java source code that can be used to practice the present invention is as follows:
public void sprayPrivate(Peer[]group, Packet data) {public void sprayPrivate (Peer [] group, Packet data) {
int length = group.length;int length = group.length;
int min = (length>capacity) ? capacity:length;int min = (length > capacity)? capacity: length;
for (int i=0;i<min;++i)for (int i = 0; i <min; + + i)
Group[i].comm.update(data);Group [i] .comm.update (data);
if(min>capacity) {if (min > capacity) {
Vector list=new Vector();Vector list = new Vector ();
for (int j=min;j<capacity;j++)for (int j = min; j <capacity; j ++)
list.add(group[j]);list.add (group [j]);
server.update(data.setDistribution(list));server.update (data.setDistribution (list));
}}
}}
본 발명이 특정한 바람직한 실시예에 관하여 기술되었지만, 당업자는 다양한 변경 및 수정을 할 수 있으며, 본 발명이 특허 청구 범위에서 유도되는 변경 및 수정을 포함할 수 있도록 의도된 것이다.Although the present invention has been described with reference to certain preferred embodiments, those skilled in the art can make various changes and modifications, and it is intended that the present invention may include changes and modifications derived from the claims.
본 발명에 의하면 네트워크 컴퓨터 시스템에서의 서버 용량이 증가된다. 개별 클라이언트가 직접 통신하게 되는 피어들(peers)의 총 수(total number)가 결정되고, 그 후 개별 클라이언트에 상호 연결된 서버가 제어하는 클라이언트의 총 수는 결정된 피어들의 총 수만큼 감소된다.According to the present invention, server capacity in a network computer system is increased. The total number of peers with which the individual client will communicate directly is determined, and then the total number of clients controlled by the server interconnected to the individual client is reduced by the total number of peers determined.
Claims (20)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/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 |
US8/769,564 | 1996-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980063395A KR19980063395A (en) | 1998-10-07 |
KR100268194B1 true KR100268194B1 (en) | 2000-11-01 |
Family
ID=25085830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970037169A KR100268194B1 (en) | 1996-12-19 | 1997-08-04 | Method and system for a hybrid peer-server communications structure |
Country Status (5)
Country | Link |
---|---|
US (1) | US6041343A (en) |
EP (1) | EP0859496B1 (en) |
JP (1) | JP3495234B2 (en) |
KR (1) | KR100268194B1 (en) |
DE (1) | DE69736422T2 (en) |
Families Citing this family (30)
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 |
US6514085B2 (en) * | 1999-07-30 | 2003-02-04 | Element K Online Llc | Methods and apparatus for computer based training relating to devices |
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 |
KR100337757B1 (en) * | 2000-01-08 | 2002-05-24 | 송병준 | Method for Communication Between Clients Using Java Language |
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 (en) * | 2001-10-15 | 2005-09-07 | 华为技术有限公司 | Interactive video equipment and its caption superposition method |
FR2832014A1 (en) * | 2001-11-08 | 2003-05-09 | Thomson Licensing Sa | INTER-USER COMMUNICATION MODULE AND METHOD AND CORRESPONDING PRODUCTS |
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 (en) * | 2003-09-30 | 2005-10-06 | Siemens Ag | Checking the availability of a server |
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 (en) * | 2005-01-26 | 2008-06-18 | オンキヨー株式会社 | Peer-to-peer content distribution system |
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 (en) * | 2009-06-29 | 2011-01-13 | Brother Industries Ltd | Information processing apparatus, content distributing system, method of controlling content distribution, and program |
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 (en) * | 1989-09-19 | 1991-04-04 | Fujitsu Limited | Multiple access system for a communication network |
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 (en) * | 1994-08-11 | 1996-04-23 | Shosaku Kawai | Communication network structure, communication network system based on the structure and communication method for the system |
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/en not_active IP Right Cessation
- 1997-11-06 EP EP97308906A patent/EP0859496B1/en not_active Expired - Lifetime
- 1997-11-06 DE DE69736422T patent/DE69736422T2/en not_active Expired - Lifetime
- 1997-11-27 JP JP32608997A patent/JP3495234B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3495234B2 (en) | 2004-02-09 |
KR19980063395A (en) | 1998-10-07 |
DE69736422T2 (en) | 2007-02-01 |
DE69736422D1 (en) | 2006-09-14 |
EP0859496A3 (en) | 2004-01-21 |
US6041343A (en) | 2000-03-21 |
JPH10187643A (en) | 1998-07-21 |
EP0859496A2 (en) | 1998-08-19 |
EP0859496B1 (en) | 2006-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100268194B1 (en) | Method and system for a hybrid peer-server communications structure | |
US6178453B1 (en) | Virtual circuit switching architecture | |
US6965930B1 (en) | Methods, systems and computer program products for workload distribution based on end-to-end quality of service | |
US8380854B2 (en) | Simplified method for processing multiple connections from the same client | |
US8429221B2 (en) | Content request routing method | |
US8788665B2 (en) | Method and system for optimizing a network by independently scaling control segments and data flow | |
US7353276B2 (en) | Bi-directional affinity | |
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) | |
US5581552A (en) | Multimedia server | |
US8139483B2 (en) | Network traffic control in peer-to-peer environments | |
US7406540B2 (en) | Method and apparatus for content-aware web switching | |
US7644159B2 (en) | Load balancing for a server farm | |
CA2691167A1 (en) | Access and control system for network-enabled devices | |
KR102685010B1 (en) | Account linking methods and devices, storage media and electronic devices | |
JP3666654B2 (en) | Internet communication method {MethodforanInternetCommunication} | |
CN112929264A (en) | Service flow transmission method, system and network equipment | |
US20010023456A1 (en) | Multiple-processor information processing system | |
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 | |
Farahmand et al. | A multi-layered approach to optical burst-switched based grids | |
Yamamoto et al. | A network-supported server load balancing method: active anycast | |
US6012092A (en) | Method and system for managing multi-user data flows in environments having minimal bandwidth and computational resources | |
US7228562B2 (en) | Stream server apparatus, program, and NAS device | |
JP3560559B2 (en) | IP server load distribution device and its load distribution method in LAN emulation |
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 |