KR20050030548A - 피어-투-피어 통신의 서버 제어 - Google Patents

피어-투-피어 통신의 서버 제어 Download PDF

Info

Publication number
KR20050030548A
KR20050030548A KR1020040074456A KR20040074456A KR20050030548A KR 20050030548 A KR20050030548 A KR 20050030548A KR 1020040074456 A KR1020040074456 A KR 1020040074456A KR 20040074456 A KR20040074456 A KR 20040074456A KR 20050030548 A KR20050030548 A KR 20050030548A
Authority
KR
South Korea
Prior art keywords
client
peer
server
player
game
Prior art date
Application number
KR1020040074456A
Other languages
English (en)
Other versions
KR101122939B1 (ko
Inventor
다니엘리데이먼브이.
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050030548A publication Critical patent/KR20050030548A/ko
Application granted granted Critical
Publication of KR101122939B1 publication Critical patent/KR101122939B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/95Storage media specially adapted for storing game information, e.g. video game cartridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/201Playing authorisation given at platform level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/401Secure communication, e.g. using encryption or authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/532Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5566Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/572Communication between players during game play of non game information, e.g. e-mail, chat, file transfer, streaming of audio and streaming of video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party

Abstract

서버는 클라이언트들 간의 피어-투-피어 통신을 확립하기 위한 보안 환경을 제공한다. 서버의 2개의 클라이언트가 피어-투-피어 통신을 확립하기를 원할 때, 이들은 우선 서버에 접속한다. 서버는 각각의 클라이언트를 인증하고, 인증된 클라이언트에 정보를 제공하여 피어-투-피어 통신을 확립할 수 있게 한다. 피어-투-피어 통신의 특권을 악용하는 모든 클라이언트는 인증된 권리를 상실할 수 있다. 실시예에서, 서버는 게임 서버이며, 클라이언트는 바람직하게는 음성 기반의 피어-투-피어 통신을 사용하여 게임 플레이에 참여한다. 상이한 허가 레벨이 상이한 클라이언트에 허가되어 클라이언트들 간의 인터랙션을 제한할 수 있다.

Description

피어-투-피어 통신의 서버 제어{SERVER CONTROL OF PEER TO PEER COMMUNICATIONS}
본 발명은 일반적으로 피어-투-피어 통신에 관한 것으로, 더 상세하게는 서버를 사용하여 허가된 클라이언트를 인증하고, 인증된 클라이언트들 간에서 피어-투-피어 통신이 확립될 수 있게 하는 것에 관한 것이다.
현재, 전자 디바이스의 사용자들에게 있어서, 다른 사용자와 전자적으로 인터랙션하고, 또한 채팅 세션, 인스턴스 메시징, 합동 작업 프로젝트 및 멀티플레이어 게임을 비롯한 그룹 활동에 참여하는 것은 흔한 일이다. 특히, 게임 및 기타 전자 활동을 위한 음성 통신은 인터넷 또는 기타 네트워크를 통해 접속된 개인들에게 점점 더 인기를 얻어가고 있다. 멀티플레이어 게임에 참여하는 개인들에게 있어서, 음성 통신은 즐거움의 깊이 및 게임 플레이어들 간의 사회적인 인터랙션을 크게 확장시키고 있다.
이와 같은 많은 응용 분야에서, 사용자는 그룹에 참여하는 동안 익명으로 남아있음으로써, 민감한 그룹 토론에 참여하거나, 관습에 어긋나는 견해를 표현하거나, 또는 자신의 신분이 그룹 내의 다른 사람들에게 알려져 있었다면 하지 않았을 사회적으로 위험한 다른 행동들을 하는 것에 관한 걱정을 덜 수 있다. 따라서, 이와 같은 전자 통신 및 그룹 세션을 통한 다른 사용자와의 인터랙션은 종종 개별 사용자 및 그룹 양자 모두의 생산성, 교육적 경험 및 엔터테인먼트를 강화한다.
불행하게도, 공개 포럼의 악용은, 선택된 일부를 제외한 모두에 대하여 이러한 공공 포럼의 유용성 및 즐거움을 파괴시킨다. 예를 들어, 공용 인터넷 통신 디렉토리의 채용은 "성인 자료"에 의하여 방해받아 왔다 (파괴되지 않은 경우). 경험에 의하여, 그룹 내 회원들의 디렉토리가 공용으로 이용가능한 경우, "성인" 회사들이 이러한 디렉토리를 이용하여 성적으로 노골적인 자료를 광고하거나 전송한다는 것을 알고 있다. 이러한 디렉토리를 유지하는 그룹의 호스트들은, 이와 같은 광고의 내용이 일부 사용자들을 몰아내는 것은 물론, 그룹 내 회원들을 대상으로 하는 이러한 성인 광고의 양이 지나치게 많아서, 다른 주제에 관한 대화를 설정하고자 하는 사용자들이 실제로 성적으로 노골적이지 않은 주제에 관심이 있는 합법적인 회원을 식별하는 데에 어려움을 겪는다는 것을 경험해왔다. 마이크로소프트사는 마이크로소프트 회사 서버 상에서의 피어-투-피어 통신을 위한 공용 ILS(Internet Lookup Service)를 유지했었다. 최초 공개 후, 성인 자료는 점점 더 대량으로 나타나기 시작했고, 결국에는 디렉토리 내의 컨텐츠의 대부분이 원래의 관심있는 주제가 아니라, 성적으로 노골적인 자료에 관한 것이 되었다. 이러한 원하지 않는 자료가 원래의 의도된 개인 또는 사업 통신 사용에 대한 디렉토리의 유용성에 심각한 부정적인 영향을 미쳤기 때문에, 마이크로소프트사는 디렉토리 서비스를 중단했다.
온라인 커뮤니티의 대두사구 규정되거나 암묵적인 행동 규약을 따르는 경우에서도, 참가자들 간의 행동 규범을 스스로 구현하고 강제할 수 있는 사용자들의 커뮤니티는 거의 존재하지 않는다. 물론, 전자 그룹의 통신이 제3자 호스트의 총괄적인 제어 하에 있다면, 그 호스트는 커뮤니티 규범을 제정하여 필요에 따라 개입할 수 있다. 개별 회원들 각각의 서버의 클라이언트이고, 클라이언트의 환경 사용을 제어할 수 있는 충분한 권한을 갖는 서버 및 호스트에 의아혀 클라이언트들 간의 통신이 관리되는 종래의 클라이언트/서버 환경에서는, 이러한 방식이 효과가 있다. 온라인 게임에서는 각각의 게이머가 게임 서버의 클라이언트이므로, 온라인 게임 플레이는 이러한 패러다임의 대표적인 예이다. 게임 서버(들)가 상이한 플레이어들 간에 택스트 및/또는 음성 통신 서비스를 제공하는 한, 호스트는 서버에 대한 클라이언트 액세스를 통제함으로써 제어를 행할 수 있다. 마찬가지로, 개별 사용자들 간의 피어-투-피어 통신의 확립을 용이하게 하는 신뢰할 수 있는 환경을 형성하는 방법 및 시스템을 제공하는 것이 바람직할 것이다.
특히, 서버의 주된 역할이 클라이언트들 간의 통신을 관리하는 것 이외의 것인 경우, 틀라이언트들 간의 통신의 총량은 서버에 바람직하지 못한 부담을 줄 정도로 크게 증가할 수 있다. 서버가 온라인 게임 플레이를 호스트하는 예에서, 플레이어들 간의 음성 통신을 관리하는 데에 요구되는 서버 오버헤드의 양은 상당히 많을 수 있다.
예를 들어, 대규모 멀티플레이어 게임은 중앙화된 대형 서버(또는 서버 그룹)에 의해 호스트되며, 여기에는 수천의 클라이언트가 접속될 수 있다. 중앙화된 서버는 "세계 상태(world state)"를 담당하고, 클라이언트(즉, 플레이어의 컴퓨터 또는 게임 콘솔)는 플레이어의 관점에서 본 세계(일반적으로 전체 세계의 일부분일 뿐임)를 디스플레이하는 것을 담당한다. 클라이언트는 플레이어의 입력과 상태를 계속적으로 서버에 송신한다. 서버는 세계를 업데이트하고, 새로운 세계의 정보를 클라이언트에 계속적으로 리턴시킨다.
현재, 알려져 있는 모든 대규모 멀티플레이어 게임 네트워크는 모든 통신을 중앙 서버를 통하여 라우팅한다. 즉, 플레이어 A가 플레이어 B에 텍스트 메시지를 보내고자 하는 경우, 플레이어 A는 메시지를 서버에 보내고, 서버는 그 메시지를 플레이어 B에 중계한다. 이와 같은 방식을 택하는 데에는 다음과 같은 좋은 이유가 있다.
·텍스트 채팅에서, 추가의 대역폭은 상당량의 서버 오버헤드를 부과하지 않는다.
·피어-투-피어 접속을 확립하는 데에는 시간이 소요된다.
·피어-투-피어 접속은 서버에 의한 추가의 도움없이는 작동하지 않을 수도 있다.
·다수의 플레이어에게 메시지를 "패닝(panning)"하는 것은 서버 상에서 효율적으로 행해질 수 있다.
·송신측 플레이어의 IP 어드레스는 수신측 플레이어에게 "히든" 상태로 된다.
그러나, 음성 채팅은 텍스트 채팅보다 훨씬 큰 대역폭을 필요로 하기 때문에, 대규모 멀티플레이어 게임 네트워크에서 음성 채팅 기능을 추가하는 것은 게임을 호스트하는 중앙 서버에 막대한 부담이 될 수 있다. 그러므로, 게임 서버가 플레이어들 간의 피어-투-피어 통신을 용이하게 하여, 이러한 피어-투-피어 통신이 시작될 수 있는 보안 환경을 제공하면서, 서버 자원에 대한 요구를 감소시킬 수 있게 하는 시스템 및 방법을 제공하는 것이 바람직하다.
본 발명은, 그에 대한 액세스를 갖는 사용자들 간에서의 피어-투-피어 통신의 확립을 용이하게 하는 신뢰되는 환경을 제공하는 방법 및 시스템에 관한 것이다. 특히, 서버는 각각의 사용자가 그에 대한 액세스를 허가받기 전에 소정의 규범에 따를 것을 확실하게 함으로써, 사용자를 위한 신뢰되는 세션 환경을 제공한다. 서버는 한 세션을 호스트하고, 그 세션에 액세스하려고 시도하는 각각의 사용자의 자격을 검사하여, 서버에 의해 자격을 승인받은 사용자만이 세션에 들어오게 한다. 세션동안, 사용자들은 현재 서버에 의해 승인받은 한명 이상의 다른 사용자를 식별하는 리스트에 대한 액세스를 허가받는다. 리스트는 현재 세션에 액세스하고 있는 사용자를 포함하는 것이 바람직하다. 제1 사용자는 이러한 리스트로부터 제2 사용자를 선택하고, 제1 사용자와 제2 사용자 간에 형성될 피어-투-피어 접속을 용이하게 하기 위한 정보를 제공할 것을 서버에 요청한다. 서버는 제1 사용자에게 필요한 정보를 전송하고, 제1 사용자는 제2 사용자와의 피어-투-피어 통신 링크를 확립하려고 시도한다. 시도가 실패하는 경우, 제1 사용자는 서버에 실패를 알리고, 서버는 제2 사용자에게 정보를 전송하여, 제2 사용자가 피어-투-피어 통신의 확립을 시도할 수 있게 한다.
서버는 상이한 세션들을 동시에 호스트할 수 있고, 사용자는 개별 사용자에게 허가된 액세스 레벨에 다라 이러한 세션들 전부보다 적은 수의 세션에 액세스할 수 있다. 예를 들어, 서버는 복수의 상이한 게임 세션을 호스트할 수 있고, 각각의 사용자는 동일한 게임 세션에 액세스하는 다른 사용자하고만 통신하도록 제한될 수 있다.
피어-투-피어 통신의 확립을 용이하게 하기 위하여 서버에 의해 제공되는 정보는 사용자의 외부 IP 어드레스, 사용자와 연관된 임의의 내부 IP 어드레스, 및 사용자와 연관된 임의의 포트 어드레스를 포함한다. 각각의 사용자가 서버에 액세스할 때, 서버에 의해 해당 사용자에게 고유 사용자 키가 할당되는 것이 바람직하다. 그런 경우, 사용자 키는 서버에 의해 제공되는 정보에 추가되어, 피어-투-피어 통신을 수락하도록 하는 요청을 수신한 사용자가, 그 요청이 신뢰되는 소스로부터 온 것임을 확인할 수 있게 한다.
일 실시예에서, 보안 세션을 호스트하는 서버는 사용자들 간의 피어-투-피어 통신을 용이하게 하는 것과는 다른 핵심 기능을 갖는다. 본 실시예에 대한 바람직한 구현은, 서버가 멀티플레이어 게임을 호스트하는 네트워크 게임 환경이다. 서버의 주된 기능은 게임을 호스트하는 것이며, 피어-투-피어 통신을 용이하게 하는 것은 게임 환경에 대한 향상이다.
다른 실시예에서, 서버의 핵심 기능은 사용자들 간의 피어-투-피어 통신을 사용자가 확립할 수 있게 하는 보안 환경을 제공하는 것이다. 이러한 제2 실시예의 구현에서, 서버는 사용자의 자격 또는 관심에 기초하여 서비스의 상이한 세션들 또는 서브세트들에 대한 개별 액세스를 허가한다. 개별 사용자의 행동에 대한 불만이 다른 사용자들로부터 수신되면, 서버는 그 사용자가 이후의 세션에 참가하는 것을 금지할 수 있다.
본 발명의 다른 양태는, 이하에 더 상세하게 설명되는 본 발명에 따라 전술한 단계들을 수행하기 위한 기계 명령들을 저장하는 메모리 매체에 관한 것이다.
상기와 같은 본 발명의 양태 및 다수의 부수적인 이점은 첨부 도면과 함께 이하의 상세한 설명을 참조함으로써 더 쉽게 이해될 수 있을 것이다.
본 발명의 바람직한 실시예는, 서버를 사용하여 일반 클라이언트들 간의 피어-투-피어 통신에 대한 어느 정도의 제어를 용이하게 하고 수행한다. 서버는 피어-투-피어 통신의 컨텐트를 실시간으로 모니터링하고 제어하는 데에는 관여하지 않지만, 참가자들을 인증 및 허가하며, 이에 의하여 참가자들은 서버에 의하여 유사하게 인증 및 허가된 다른 참가자들에 대한 액세스를 허용받는다. 서버는 인증된 사용자들 간의 피어-투-피어 통신 링크의 확립을 용이하게 하는 데에 사용될 수 있다.
본 발명의 제1 실시예에서, 서버의 핵심 기능을 소정의 다른 기능을 클라이언트에게 제공하는 것이고, 피어-투-피어 통신을 용이하게 하는 것은 2차적인 기능이다. 제1 실시예에서, 서버의 주요 기능을 온라인 게임 플레이를 호스트하는 것이고, 게임 서버에 의해 가능하게 되는 피어-투-피어 통신은 게임 플레이어의 경험을 향상시키기 위해 제공된다.
본 발명의 제2 실시예에서, 서버의 핵심 기능을 신뢰되는 클라이언트들 간의 피어-투-피어 통신을 용이하게 하는 신뢰되는 환경을 제공하는 것이다. 제2 실시예에서, 관심사를 공유하는 회원들 간의 피어-투-피어 통신을 용이하게 하기 위하여, 공용 인터넷 디렉토리가 만들어진다. 이러한 공용 인터넷 디렉토리는 종래에도 존재했지만, 기존의 디렉토리는 신뢰되는 환경에서 만들어진 것이 아니었으며, 곧바로 성적으로 노골적인 컨텐트를 공급하는 사람들에 의해 악용되었고, 이들로 인해 해당 디렉토리의 본래 목적에 관심이 있던 다른 클라이언트들이 급속하게 떠나게 되었다. 본 실시예의 한 양태에서, 서버는 상이한 "등급"의 엔티티(익명 사용자, 인증된 사용자, 사업자, 대학 등)이 보안 방식으로 강요될 수 있는 상이한 액세스 권한을 할당받게 함으로써, 보안 환경을 제공한다.
네트워크화된 게임 환경에서 피어-투-피어 통신을 용이하게 하는 것은 본 발명의 바람직한 기능을 대표하므로, 이하의 상세한 설명은 예시적인 게임 시스템을 설명한다. 게임 서버 실시예가 바람직한 응용이긴 하지만, 본 발명은 여기에 상세하게 설명된 게임 서버 실시예, 또는 서버의 주요 기능이 피어-투-피어 통신을 용이하게 하는 것 이외의 것인 실시예로만 한정되는 것이 아님에 주의해야 한다. 이하의 상세한 설명 및 그 이후의 특허 청구 범위에 기술된 핵심 개념은 각각의 실시예에 적용되며, 게임 서버 실시예는 본 발명을 한정하기 위한 것이 아니라 예시적인 것으로만 고려되어야 한다. 본 기술 분야의 숙련된 자라면, 본 발명이 네트워크화된 게임 시스템을 비록한 다양한 컴퓨팅 디바이스를 사용하여 구현될 수 있음을 알 것이다. 따라서, 본 발명은 셋탑 박스를 사용하여, 아케이드 게임에서, 핸드핼드형 디바이스를 사용하여, 퍼스널 컴퓨터(PC) 상에서 실행되는 어플리케이션과 관련하여, 그리고 공통 서버를 공유하는 신뢰되는 클라이언트들 간에서 피어-투-피어 통신을 용이하게 하고자 하는 요구가 있는 기타 네트워크화된 환경에서 구현될 수 있다.
예시적인 게임 시스템
도 1에 도시된 바와 같이, 본 발명을 구현하는 데에 적합한 예시적인 전자 게임 시스템(100)은 게임 콘솔(102), 및 4개까지의 사용자 입력 디바이스를 위한 컨트롤러(104a 및 104b) 등의 지원을 포함한다. 게임 콘솔(102)에는 내부 하드 디스크 드라이브(도면에는 도시되지 않음), 및 광 저장 디스크(108)로 표시된 것과 같은 다양한 형태의 휴대형 광 저장 매체를 판독하는 광 매체 드라이브(106)를 포함한다. 적합한 휴대형 저장 매체의 예는 DVD(digital versatile disc) 및 CD-ROM(compact disk-read only memory disc)를 포함한다. 이러한 게임 시스템에서, 게임 프로그램은 게임 콘솔을 갖는 사용자에게 DVD 디스크 형태로 배포되는 것이 바람직하지만, 여기에 개시된 것과 그 이외의 본 발명을 채용하는 시스템의 유형에서 다른 저장 매체가 대신하여 사용될 수 있을 것으로 예상된다.
게임 콘솔(102)의 전면(前面)에는, 지원되는 컨트롤러와의 접속을 위한 4개의 슬롯(110)이 배치되지만, 슬롯의 개수 및 배열은 보다 많은 수 또는 보다 적은 수의 컨트롤러를 지원하기 위하여 필요에 따라 수정될 수 있다. 전원 버튼(112) 및 인출 버튼(114)도 게임 콘솔(102)의 전면에 배치된다. 전원 버튼(112)은 게임 콘솔로의 전력 인가를 제어하며, 인출 버튼(114)은 광 매체 드라이브(106)의 트레이(도시되지 않음)를 교대로 열고 닫음으로써 저장 디스크(108)를 삽입 및 인출할 수 있게 하여, 사용자가 디스크 상의 디지탈 데이터를 게임 콘솔에 의해 판독할 수 있게 한다.
게임 콘솔(102)은 A/V(audio/visual) 인터페이스 케이블(120)을 통하여 텔레비젼(121)이나 기타 디스플레이 모니터 또는 스크린에 접속된다. 파워 케이블 플러그(122)는 종래의 교류선 소스(도시되지 않음)에 접속될 때, 게임 콘솔에 전력을 공급한다. 게임 콘솔(102)은, 예를 들어 허브 또는 스위치(도시되지 않음)로의 접속을 통하는 네트워크 상에서, 또는 예를 들어 xDSL 인터페이스, 케이블 모뎀 또는 기타 광대역 인터페이스(도시되지 않음)에의 접속을 통한 인터넷 상에서 데이터를 송수신하기 위한 이더넷 데이터 커넥터(124)를 포함한다. 본 발명을 구현하는 다른 유형의 게임 콘솔들은, 종래의 전화 모뎀을 이용하여 통신함으로써, 서로 연결될 수도 있고 원격 서버에 연결될 수도 있다.
각각의 컨트롤러(104a 및 104b)는 리드를 통해 (또는 무선 인터페이스를 통해) 게임 콘솔(102)에 연결된다. 도시된 구현예에서는, 컨트롤러가 USB 호환가능하며, USB 케이블(130)을 통해 게임 콘솔(102)에 접속되어 있지만, 다른 유형의 데이터 인터페이스가 그를 대신하여 채용될 수 있음을 예상할 수 있다. 게임 콘솔9102)에는 게임 소프트웨어와 인터랙션하고 게임 소프트웨어를 제어하는 매우 다양한 사용자 디바이스 중 어느 것이라도 장착될 수 있다. 도 1에 도시된 바와 같이, 각각의 컨트롤러(104a 및 104b)에는 2개의 썸스틱(thumbstick)(132a 및 132b), D 패드(134), 버튼(136) 및 2개의 트리거(138)가 장착된다. 이러한 컨트롤러들은 단지 예시적인 것일 뿐이며, 다른 게임 입력 및 제어 디바이스가 도 1에 도시된 디바이스를 대체하거나 그에 추가되어 게임 콘솔(102)에서 사용될 수 있다.
추가의 특징 및 기능을 제공하기 위하여, 분리가능한 기능 유닛(140)이 각각의 컨트롤러(104a 및 104b)에 선택적으로 삽입될 수 있다. 예를 들어, 휴대형 메모리 유닛(MU)은, 사용자가 게임 파라미터를 저장할 수 있게 하고, 또한 다른 게임 콘솔에 접속된 컨트롤러에 휴대형 MU를 삽입하여 그 다른 게임 콘솔에서 플레이할 수 있도록 게임 파라미터를 운반할 수 있게 한다. 다른 분리가능한 기능 유닛은, 사용자가 다른 사용자들과 국부적으로 및/또는 네트워크 상으로 구두로 통신할 수 있게 하는 음성 통신 유닛을 포함한다. 음성 통신 유닛에는, 붐 마이크로폰(boom microphone)(144)을 포함하는 헤드셋(142)이 접속된다. 이와 달리, 음성 통신 유닛의 회로가 컨트롤러에 일체화될 수 있으며, 붐 마이크로폰을 갖는 헤드셋은 컨트롤러에 분리가능하게 접속될 수도 있고 영구적으로 접속될 수도 있다. 각각의 컨트롤러는 2개의 분리가능한 기능 유닛을 수용하도록 구성되는 것이 바람직하지만, 더 많은 수 또는 더 적은 수의 분리가능한 기능 유닛 또는 모듈이 대신 채용될 수도 있다.
게임 시스템(100)은 예를 들어 게임, 음악 및 비디오를 플레이할 수 있다. 하드 디스크 드라이브 상에 저장되어 있거나 드라이브(106) 내의 광 저장 디스크(108)로부터 판독된 디지탈 데이터를 사용하여, 또는 온라인 소스나 MU로부터 획득된 디지탈 데이터를 사용하여, 다른 기능들이 구현될 수 있는 것으로 예상된다. 예를 들어, 게임 시스템(100)은 잠재적으로 다음과 같은 것들을 재생할 수 있다.
·광 매체 드라이브에 의해 판독되는 CD 및 DVD 상에 저장되거나, 하드 디스크 드라이브 상에 저장되거나, 또는 온라인 소스로부터 다운로드된 게임 타이틀;
·광 매체 드라이브(106)에 의해 판독되는 CD 상에 저장되어 있거나, 또는 하드 디스크 드라이브 상의 파일[예를 들어, WINDOWS MEDIA AUDIOTM(WMA) 포맷]에 저장되어 있거나, 인터넷 또는 다른 네트워크 상의 온라인 스트리밍 소스로부터 유도된 디지탈 음악;
·광 매체 드라이브(106)에 의해 판독되는 DVD 디스크 상에 저장되어 있거나, 또는 하드 디스크 드라이브 상의 파일(예를 들어, 액티브 스트리밍 포맷)에 저장되어 있거나, 인터넷 또는 다른 네트워크 상의 온라인 스트리밍 소스로부터 액세스된 디지탈 A/V 데이터.
도 2는 게임 시스템(100)의 기능적 구성요소들을 더 상세하게 도시하고 있다. 게임 콘솔(102)은 CPU(200), ROM(204)에 대한 CPU 액세스를 용이하게 하는 메모리 컨트롤러(202), RAM(206), 하드 디스크 드라이브(208), 휴대형 광 매체 드라이브(106)를 포함한다. CPU(200)에는, 요구되는 메모리 액세스 사이클의 수를 감소시키도록 일시적으로 데이터를 저장하여 게임 시스템의 처리 속도 및 처리량을 증가시키기 위한 레벨 1 캐시(210) 및 레벨 2 캐시(212)가 장착된다. CPU(200), 메모리 컨트롤러(202) 및 다양한 메모리 디바이스는, 다양한 버스 아키텍쳐 중 임의의 것을 사용하는 프로세서 또는 로컬 버스, 주변 버스, 메모리 버스, 직렬/병렬 버스를 비롯한 하나 이상의 버스를 통하여 상호 접속된다. 예를 들어, 이러한 아키텍쳐는 ISA(Industry Standard Architecture) 버스, MCA(micro channel architecture) 버스, EISA(enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 PCI(peripheral component interconnect) 버스를 포함할 수 있다.
적절한 구현의 일례로서, CPU(200), 메모리 컨트롤러(202), ROM(204) 및 RAM(206)은 공통 모듈(214) 상에 일체화된다. 이러한 구현예에서, ROM(204)은 PCI 버스 및 ROM 버스(양자 모두 도시되지 않음)를 통해 메모리 컨트롤러(202)에 접속되는 플래시 ROM으로서 구성된다. RAM(206)은 별도의 버스(도시되지 않음)를 통해 메모리 컨트롤러(202)에 의하여 독립적으로 제어되는 다수의 DDR SDRAM(double data rate synchronous dynamic RAM) 모듈로서 구현된다. 하드 디스크 드라이브(208) 및 광 매체 드라이브(106)는 PCI 버스 및 ATA(advanced technology attachment) 버스(216)를 통해 메모리 컨트롤러에 접속된다.
3D 그래픽 프로세스 유닛(GPU)(220) 및 비디오 인코더(222)는 고속 고해상도 그래픽 프로세스를 위한 비디오 프로세스 파이프라인을 형성한다. 데이터는 디지탈 비디오 버스(도시되지 않음)를 통해 GPU(220)로부터 비디오 인코더(222)로 전달된다. 오디오 프로세스 유닛(224) 및 오디오 인코더/디코더(CODEC)(226)는 하이파이 스테레오 오디오 데이터 프로세스를 위한 대응 오디오 프로세스 파이프라인을 형성한다. 오디오 데이터는 오디오 프로세스 유닛(224)과 CODEC(226) 간에서 통신 링크(도시되지 않음)를 통해 전달된다. 비디오 및 오디오 프로세스 파이프라인은 텔레비젼 또는 다른 디스플레이 모니터로의 전송을 위하여 데이터를 A/V 포트(228)에 출력한다. 도시된 구현예에서, 비디오 및 오디오 프로세스 구성요소(220-228)는 모듈(214) 상에 실장된다.
모듈(214) 상에는, USB 호스트 컨트롤러(230) 및 네트워크 인터페이스(232)도 구현된다. USB 호스트 컨트롤러(230)는 버스(예를 들어, PCI 버스)를 통해 CPU(200) 및 메모리 컨트롤러(202)에 연결되고, 주변 게임 컨트롤러(104a-104d)를 위한 호스트로서 기능한다. 네트워크 인터페이스(232)는 네트워크(인터넷, 홈 네트워크 등)에 대한 액세스를 제공하며, 이더넷 카드, 전화 모뎀 인터페이스, 블루투스 모듈, 케이블 모뎀 인터페이스, xDSL 인터페이스 등을 비롯하여 다양한 유선 또는 무선 인터페이스 구성요소 중 임의의 것을 포함할 수 있다.
게임 콘솔(102)은 2개의 듀얼 컨트롤러 지원 서브어셈블리(240a 및 240b)를 포함하고, 각각의 서브어셈블리는 게임 컨트롤러들(104a-104d) 중 2개를 지원한다. 프론트 패널 입출력(I/O) 서브어셈블리(242)는 전원 버튼(112) 및 인출 버튼(114)의 기능성은 물론, 게임 콘솔의 외측 표면에 노출된 임의의 발광 다이오드(LED) 또는 기타 표시기를 지원한다. 서브어셈블리(240a, 240b, 242)는 하나 이상의 케이블 어셈블리(244)를 통하여 모듈(214)에 연결된다.
8개의 기능 유닛(140a-140h)이 4개의 컨트롤러(104a-104d)에 접속가능한 것으로 도시되어 있다. 즉, 각각의 컨트롤러에 2개의 기능 유닛이 접속가능하다. 각각의 기능 유닛은 게임, 게임 파라미터 및 기타 데이터를 위한 추가의 기능 또는 저장공간을 제공한다. MU가 컨트롤러에 삽입되면, MU는 메모리 컨트롤러(202)에 의하여 액세스될 수 있다.
시스템 전력 공급 모듈(250)은 게임 시스템(100)의 구성요소들에 전력을 제공한다. 팬(252)은 게임 콘솔(102) 내의 구성요소들 및 회로를 냉각시킨다.
본 발명을 구현하기 위하여, DVD 또는 기타 저장 매체 상에 저장되어 있는 (또는 네트워크를 통해 다운로드된) 기계 명령들을 포함하는 게임 소프트웨어 어플리케이션(260)이 CPU(200)에 의해 실행되기 위하여 RAM(206) 및/또는 캐시(210 및/또는 212)에 로드된다. 소프트웨어 어플리케이션(260)의 부분들이 필요한 때에만 RAM에 로드될 수도 있고, 소프트웨어 어플리케이션 전체가 (그 크기에 따라) RAM(206)에 로드될 수도 있다. 소프트웨어 어플리케이션(260), 및 그 소프트웨어 어플리케이션이 본 발명을 구현하기 위하여 수행하는 관련 기능들이 이하에 더 상세하게 설명된다.
게임 시스템(100)을 텔레비젼 또는 다른 디스플레이 모니터에 단순히 접속하는 것에 의하여, 게임 시스템(100)은 독립형 시스템으로서 동작할 수 있다. 이러한 독립형 모드에서, 게임 시스템(100)은 한명 이상의 사용자가 게임을 플레이하거나 영화를 보거나 음악을 들을 수 있게 한다. 그러나, 네트워크 인터페이스(232)를 통하여 이용가능하게 되는 인터넷 또는 기타 네트워크로의 접속에 의하여, 게임 시스템(100)은 보다 큰 네트워크 게임 커뮤니티의 구성요소로서 동작하여, 인터넷 또는 기타 네트워크를 통하여 플레이되는 게임에서 다른 게임 시스템을 사용하는 플레이어들과의 온라인 멀티플레이어 인터랙션이 가능하게 할 수 있다. 게임 시스템(100)은 네트워크 인터페이스 및 적합한 케이블(도시되지 않음)을 사용하여 다른 게임 시스템과 피어-투-피어 통신으로 연결될 수 있다.
제1 실시예를 위한 예시적인 게임 네트워크
도 3은 네트워크(302)를 통하여 다수의 게임 시스템(100a, ...100n)을 상호접속한 예시적인 네트워크 게임 환경(300)을 도시하고 있다. 바람직하게는, 각각의 게임 시스템은, 플레이어들 간에서의 음성 통신을 위하여, 적어도 하나의 대응 헤드셋(142a, ...142n) 및 대응 마이크로폰(144a, ...144n)을 포함한다. 네트워크(302)는 다양한 데이터 통신 네트워크 중 임의의 것을 나타내며, 공용 부분(예를 들어, 인터넷)은 물론 전용 부분(예를 들어, 주거용 또는 상업용 LAN)을 포함할 수 있다. 네트워크(302)는 유선 타입 및 무선 타입 양자 모두를 비롯하여 다양한 종래의 통신 구성 중 임의의 하나 또는 그 이상을 사용하여 구현될 수 있다. 공용 및 전용 프로토콜을 비롯하여, 다양한 통신 프로토콜 중 어느 것이라도 네트워크(302)를 통하여 데이터를 통신하는 데에 사용될 수 있다. 이러한 프로토콜의 예는 TCP/IP, IPX/SPX, NetBEUI 등을 포함한다.
게임 시스템(100a, ...100n)에 더하여, 온라인 게임을 서비스 및/또는 호스트하는 것, 다운로드가능한 음악 또는 비디오 파일을 서비스하는 것, 게임 경쟁을 호스트하는 것, 스트리밍 A/V 파일을 서비스하는 것, 이메일 또는 기타 메체 통신의 교환을 가능하게 하는 것과 같은 다양한 서비스를 참가자들에게 제공하기 위하여, 하나 이상의 온라인 서비스(304a,...304s)가 네트워크(302)를 통하여 액세스 될 수 있다. 네트워크 게임 환경(300)은, 개별 플레이어 및/또는 게임 시스템(100a,...100n)이 온라인 서비스(304a,...304s)에는 물론 다른 플레이어 및/또는 게임 시스템에 상호접속할 수 있게 하는 인증에 있어서 중요한 역할을 하는 키 분배 센터(306)를 더 포함할 수 있다. 분배 센터(306)는 키 및 서비스 티켓을 정당한 참가자들에게 분배하고, 이러한 키 및 서비스 티켓은 다수의 플레이어를 포함하는 게임 플레이 그룹을 형성하거나 온라인 서비스(304a,...304s)로부터 서비스를 구입하는 데에 사용될 수 있다.
네트워크 게임 환경(300)은 개별 게임 시스템(100a, ...100n)에 이용가능한 다른 메모리 소스, 즉 온라인 저장소를 도입한다. 광 저장 디스크(108), 하드 디스크 드라이브(208) 및 기능 유닛(140) 상의 데이터에 액세스하는 것에 더하여, 게임 시스템(100a, ...100n)은, 온라인 서비스(304s)의 원격 저장소(308)에 의해 예시된 바와 같이, 네트워크(302)를 통하여 원격 저장 위치에서 이용가능한 데이터 파일에도 액세스할 수 있다.
네트워크 게임 환경은, 강화된 보안을 제공하고 다른 컴퓨팅 디바이스에 의한 액세스를 제한하기 위하여, 예를 들어 가상 전용 네트워크 터널을 통한 통신을 이용하여, 다른 게임 시스템 및 게임 환경으로의 액세스만을 제공하는 폐쇄된 네트워크일 수 있음에 유의해야 한다.
온라인 서비스 및 서버 컴퓨터를 위한 예시적인 시스템
도 4를 참조하면, 본 발명에 따른 온라인 서비스(304a, ...304s)를 위한 예시적인 시스템은, 프로세싱 유닛(421), 시스템 메모리(422) 및 시스템 버스(423)를구비하는 종래의 서버 컴퓨터(SC)(420) 형태의 범용 컴퓨팅 디바이스를 포함한다. 시스템 버스는 시스템 메모리를 비롯한 다양한 시스템 컴포넌트들을 프로세싱 유닛(421)에 연결하며, 다양한 버스 아키텍쳐 중 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 여러 유형의 버스 아키텍쳐 중 임의의 것일 수 있다. 시스템 메모리는 ROM(424) 및 RAM(425)을 포함한다. 기동시에 SC(420) 내의 소자들 간의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)(426)은 ROM(424) 내에 저장된다. SC(420)는 하드 디스크(도시되지 않음)에 대한 판독 및 기입을 위한 하나 이상의 하드 디스크 드라이브(427), 분리가능한 자기 디스크(429)에 대한 판독 및 기입을 위한 자기 디스크 드라이브(428), 및 CD-ROM 또는 기타 광 매체와 같은 분리가능한 광 디스크(431)에 대한 판독 및 기입을 위한 광 디스크 드라이브(430)를 더 포함할 수 있다. 하드 디스크 드라이브(427), 자기 디스크 드라이브(428) 및 광 디스크 드라이브(430)는 하드 디스크 드라이브 인터페이스(432), 자기 디스크 드라이브 인터페이스(433) 및 광 디스크 드라이브 인터페이스(434)를 통하여 각각 시스템 버스(423)에 접속된다. 드라이브 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터 판독가능한 기계 명령, 데이터 구조, 프로그램 모듈 및 SC(420)를 위한 기타 데이터에 대한 비휘발성 저장소를 제공한다. 여기에 개시된 예시적인 환경에서는 하드 디스크, 분리가능한 자기 디스크(429) 및 분리가능한 광 디스크(431)를 이용하지만, 본 기술 분야의 숙련된 기술자라면, 자기 카세트, 플래시 메모리 카드, DVD(digital video disc), 베르누이 카트리지, RAM, ROM 등과 같이, 컴퓨터에 의해 액세스가능한 데이터 및 기계 명령을 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체도 예시적인 오퍼레이팅 환경에서 이용될 수 있음을 알 것이다.
오퍼레이팅 시스템(435), 하나 이상의 어플리케이션 프로그램(436), 기타 프로그램 모듈(437) 및 프로그램 데이터(438)를 비롯한 다수의 프로그램 모듈이 하드 디스크, 자기 디스크(429), 광 디스크(431), ROM(424) 또는 RAM(425) 상에 저장될 수 있다. 사용자는 SC(420)에 명령 및 정보를 입력할 수 있고, 키보드(440) 및 포인팅 디바이스(442)와 같은 입력 디바이스를 통하여 제어 입력을 제공할 수 있다. 포인팅 디바이스(442)는 마우스, 스타일러스, 무선 리모콘 또는 기타 커서 컨트롤을 포함할 수 있다. 이하에서, "마우스"라는 용어는 스크린 상에서 커서의 위치를 제어하는 데에 유용한 임의의 포인팅 디바이스를 모두 포괄하도록 의도된 것이다. 다른 입력 디바이스(도시되지 않음)로는, 마이크로폰, 조이스틱, 햅틱 조이스틱, 요크(yoke), 풋 페달, 게임 패드, 위성 접시, 스캐너 등이 있을 수 있다. 여기에 개시된 것과 그 이외의 I/O 디바이스는, 시스템 버스에 연결된 I/O 인터페이스(446)를 통해 프로세싱 유닛(421)에 접속된다. I/O 인터페이스라는 용어는, 직렬 포트, 병렬 포트, 게임 포트, 키보드 포트 및/또는 USB 포트에 전용으로 사용되는 각각의 인터페이스를 포괄하도록 의도된 것이다. 모니터(447) 또는 다른 유형의 디스플레이 디바이스도, 비디오 어댑터(448)와 같은 적합한 인터페이스를 통하여 시스템 버스(423)에 접속되며, 어플리케이션 프로그램, 그래픽 이미지, 웹 페이지 및/또는 다른 정보를 디스플레이하는 데에 사용될 수 있다. 모니터에 더하여, SC는 스피커(사운드 카드 또는 기타 오디오 인터페이스를 통함, 도시되지 않음) 및 프린터와 같은 다른 주변 출력 디바이스(도시되지 않음)에 연결될 수 있다.
SC(420)는 원격 컴퓨터(449) 또는 전술한 게임 시스템과 같은 하나 이상의 원격 컴퓨팅 디바이스로의 논리적 접속을 이용하여 네트워크화된 환경에서 동작하는 것이 바람직하다. 따라서, 원격 컴퓨터(449)는 다른 SC, 게임 콘솔, 퍼스널 컴퓨터[일반적으로 SC(420)와 거의 유사하게 구성됨], 라우터, 네트워크 PC, 피어 디바이스, 또는 위성 또는 기타 통신 네트워크 노드일 수 있으며, 도 4에는 외부 메모리 저장 디바이스(450)만이 도시되어 있지만, 전형적으로 SC(420)과 관련하여 기술된 요소의 다수 또는 전부를 포함한다. 도 3의 네트워크(302)와 관련하여 전술한 바와 같이, 도 4에 도시된 논리적 접속은 근거리 네트워크(LAN)(451) 및 광역 네트워크(WAN)(452)를 포함한다. 이러한 네트워크 환경은 현재 가정에서 비교적 일반적으로 사용되며, 사무실, 기업내 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 매우 흔하다.
LAN 네트워크 환경에서 이용하기 위하여, SC(420)는 네트워크 인터페이스 또는 어댑터(453)를 통하여 LAN(451)에 접속된다. WAN 네트워크 환경에서 이용될 때, SC(420)는 전형적으로 인터넷 등의 WAN(452)을 통한 통신을 확립하기 위하여, 모뎀(454), 케이블 모뎀과 같은 다른 수단, DSL 인터페이스 또는 ISDN(Integrated Service Digital Network)를 포함한다. 내장형 또는 외장형일 수 있는 모뎀(454)은, I/O 디바이스 인터페이스(446)를 통해, 즉 직렬 포트를 통해 시스템 버스(423)에 접속되거나 버스에 연결된다. 네트워크화된 환경에서, SC(420)와 관련하여 나타난 프로그램 모듈 또는 그 일부는 원격 메모리 저장 디바이스에 저장될 수 있다. 여기에 도시된 네트워크 접속은 예시적인 것이며, 무선 통신 및 광대역 네트워크 링크와 같이, 컴퓨터/컴퓨팅 디바이스들 간의 통신 링크를 확립하기 위한 다른 수단들도 사용될 수 있음을 알 것이다.
제1 및 제2 실시예에 적용될 수 있는 핵심 개념
도 5에 도시된 바와 같이, 네트워크(510)는 서버(512) 및 클라이언트(514, 516 및 518)를 포함한다. 서버(512)는 서버에 의해 호스트되는 세션에 대한 액세스를 허가받은 클라이언트들을 제어함으로써 신뢰되는 환경을 제공한다. 서버(512)는 각각의 클라이언트가 서버에 의해 호스트되는 세션으로의 액세스에 대한 요금을 지불하는 가입 서비스로서 동작할 수 있다. 다르게는, 세션으로의 액세스를 위한 요금이 클라이언트에게 부과되지는 않지만, 서버가 자신이 호스트하는 각각의 세션에 어떤 클라이언트들이 액세스하는지를 제어하도록, 클라이언트가 각각의 세션에 등록할 것이 요구된다. 예를 들어, 등록 프로세스에서, 클라이언트는 피어-투-피어 컨텍스트에서 다른 클라이언트와의 성적인 주제에 관한 통신을 금지하는 것과 같은 커뮤니티 정책에 동의해야 한다. 다른 클라이언트가 이러한 정책의 악용을 보고하면, 위반을 행한 클라이언트는 이후로는 서버로부터 추방될 수 있다. 서버는 복수의 세션을 조작할 수 있으며, 일부 세션에 대해서만 클라이언트의 액세스를 제한할 수 있다. 예를 들어, 서버(512)는 십대용 세션, 모델 트레이닝을 강조하는 취미 세션, 및 클라이언트들간의 성적으로 노골적인 통신의 허용도가 큰 성안용 세션을 동시에 호스트할 수 있다. 18세 미만의 등록 클라이언트들은 십대용 세션 및 취미 세션에 대한 액세스는 허가받지만, 성인용 세션에 대한 액세스는 허가받지 못한다. 성인 클라이언트 등록자는 원하는 경우에 성인 세션에서 나올 것을 선택할 수 있다. 서버(512)가 게임 서버인 경우, 상이한 게임 및 상이한 난이도에서의 게임 플레이에 대응하는 복수의 상이한 세션이 이용가능할 수 있다.
본 발명의 하나의 핵심적인 개념은, 서버에 의해 호스트되는 세션에 대한 액세스를 제어함으로써, 서버가 정한 행동 지침을 위반한 클라이언트가 이후의 세션에서 추방될 수 있다는 것이다. 위반은 여러 컨텍스트에서 발생할 수 있다. 클라이언트는 서버에 의해 지원되지 않는 주제(예를 들어, 성 관련 주제 또는 정치 관련 주제)에 관한 피어-투-피어 통신에 참여하도록 하는 요청을 서버 상에 발송할 수 있다. 서버는 발송된 것을 삭제하고, 그 클라이언트가 이후에 서버에 액세스하는 것을 금지할 수 있다. 다른 컨텍스트에서, 클라이언트는 피어-투-피어 컨텍스트에서 다른 클라이언트와 무례하거나 귀찮은 통신에 참가할 수 있다. 서버는 이러한 행위에 관하여 다른 클라이언트들로부터의 피드백을 수집하고, 요구에 따라 위반을 행한 클라이언트를 추방한다. 공동 양도된 미국 특허 출원 10/151,793호 "자동 피드백 및 플레이어 거부"는 온라인 게임 환경에서 플레이어의 행위에 관한 피드백을 수집하는 시스템 및 방법을 개시하고 있다. 여기에 개시된 시스템 및 방법은 서버(512)의 클라이언트에 관한 피드백을 수집하고 필요에 따라 클라이언트를 추방하는 데에 사용될 수 있다.
서버(512)에 의해 호스트되는 세션은 광범위하게 변화할 수 있다. 전술한 바와 같이, 제1 실시예에서, 서버의 가장 중요한 기능은 피어-투-피어 통신을 용이하게 하는 것이 아니라, 온라인 게임을 호스트하는 등의 다른 기능을 수행하는 것이다. 이러한 실시예에서, 클라이언트(플레이어)들 간의 피어-투-피어 통신을 확립하는 것은 게임 경험을 강화한다. 제2 실시예에서, 서버의 핵심 기능은 클라이언트가 피어-투-피어 통신을 확립하고자 하는 다른 클라이언트를 찾을 수 있게 하는 것이다. 어떤 실시예가 구현되는지와 무관하게, 서버(512)는, 자신에 의하여 인에이블된 세션으로의 액세스를 허가받은 클라이언트에 대한 제어를 서버 자신이 행하는 신뢰되는 환경을 제공한다.
서버(512)는 다수의 상이한 하드웨어 구성을 이용하여 구현될 수 있음을 알아야 한다. 서버(512)는 단일 컴퓨팅 플랫폼으로서 구현될 수도 있고, 서로 협력적으로 기능하는 복수의 컴퓨팅 플랫폼으로서 구현될 수도 있다. "서버"라는 용어는 단일 컴퓨팅 디바이스로만 한정하기 위한 것이 아니라, "서버"의 기능을 수행하는 복수의 컴퓨팅 디바이스를 포괄하도록 더 넓은 의미를 갖는다는 점에 유의해야 한다.
다시 도 5를 참조하면, 클라이언트(514, 516, 518)는 각각 서버(512)와 서버/클라이언트 접속(520)을 확립하고 있다. 서버(512)에 의해 제공되는 정보에 기초하여, 클라이언트(514)는 클라이언트(516)과 피어-투-피어 접속(522)을 확립한다. 마찬가지로, 클라이언트(518)는 클라이언트(516)과 피어-투-피어 접속(522)을 확립한다.
도 6은 서버를 이용하여, 클라이언트들 간의 피어-투-피어 통신이 서버에 의하여 용이하게 되는 보안 환경을 제공하는 논리를 개괄적으로 나타낸 흐름도(610)이다. 논리는 블럭(612)에서 시작하고, 블럭(614)에서 서버는 자신이 호스트하는 세션에 액세스하려고 시도하는 각각의 클라이언트를 인증 및 허가하여 해당 세션에 참가시킨다. 블럭(616)에서, 서버는 세션에 현재 액세스하고 있는 다른 허가된 클라이언트들을 포함하는 리스트를 클라이언트에게 제공한다. 일부 상황에서는, 피어-투-피어 통신을 원하지만 현재는 세션에 포함되어 있지 않은 클라이언트들을 포함하는 것이 바람직하다. 그러나, 대부분의 상황에서, 이러한 리스트 내의 각각의 클라이언트는 서버에 로그인하여 온라인 상태이며, 피어-투-피어 통신을 확립할 수 있을 것이다. 리스트는 단일 클라이언트만을 포함할 수도 있지만, 일반적으로는 복수의 클라이언트를 포함할 것이다.
리스트가 클라이언트들에게 제공되는 방식은 광범위하게 달라질 수 있다. 리스트의 컨텐트도 다양한 방식으로 구성될 수 있다. 예를 들어, 서버가 게임 서버인 경우, 리스트는 제1 클라이언트의 "팀"의 회원인 클라이언트들로만 한정될 수 있고, 그 결과 리스트는 세션에 참가하고 있는 모든 클라이언트를 포함하지는 않을 것이다. 클라이언트들 간의 피어-투-피어 통신을 용이하게 하는 것을 주된 기능으로 하는 서버와 관련하여, 리스트는 특정 클라이언트에 연관된 인증에 기초할 수 있다. 성인용 세션, 십대용 세션 및 취미 세션을 호스트하는 서버의 경우를 고찰하기로 한다. 제1 클라이언트의 연령에 기초하여, 리스트는 성인용 세션으로부터의 임의의 클라이언트를 포함하지 않을 수 있다. 특히, 피어-투-피어 통신을 용이하게 하기 위한 전용 서버와 관련하여, 클라이언트들이 특정 관심사를 공유하는 다른 클라이언트들을 식별하도록 리스트를 좁게 정의할 수 있게 하는 것이 바람직하다. 예를 들어, 제1 클라이언트는 성인용 세션에 참여하는 데에 충분한 연령이지만, 실제로 자신이 거주하는 동일 지역 내의 취미 생활자들과만 통신하기를 원할 수 있다. 이 경우, 서버에 의해 제공되는 리스트는 주제 및 지역에 의해 한정될 것이다. 본 기술 분야의 통상적인 지식을 가진 자라면, 많은 다른 변경이 가능함을 알 것이다.
다시 도 6의 흐름도(610)를 참조하면, 블럭(618)에서, 제1 클라이언트는 리스트로부터 제2 클라이언트를 선택할 수 있게 된다. 그러면, 서버는 블럭(620)에 나타난 바와 같이 제2 클라이언트에 대한 접속 정보를 제1 클라이언트에게 송신한다. 이러한 접속 정보는 적어도 제2 클라이언트와의 피어-투-피어 통신을 확립하기 위하여 제1 클라이언트에게 필요한 정보를 포함한다. 예를 들어, 제2 클라이언트의 외부 IP 어드레스가 포함될 것이다. 제2 클라이언트가 내부 IP 어드레스와 연관되고/되거나(예를 들어 공유 인터넷 접속 네트워크 상에 있음) 특정 포트 어드레스와 연관되는 경우에는, 그 정보도 포함될 것이다. 정보는 서버에 의해 제공되는 사용자 키를 포함하여, 제2 클라이언트가 제1 클라이언트와의 피어-투-피어 통신을 확립하기 위한 요청을 수신한 때에, 제1 클라이언트가 서버에 의해 제2 클라이언트에 할당된 사용자 키를 갖는다는 사실이 제1 클라이언트가 서버에 의해 신뢰된다는 것을 나타내도록 하는 것이 바람직하다.
블럭(622)에서, 제1 클라이언트는 서버로부터 수신된 제2 클라이언트에 관한 접속 정보를 사용하여, 제2 클라이언트와의 피어-투-피어 통신의 확립을 시도한다. 결정 블럭(624)은 그 시도가 성공적이었는지를 결정한다. 성공적이었던 경우에는, 블럭(626)에 나타난 바와 같이, 참가자들 중 한 명에 의하여 (또는 네트워크 실패에 의하여) 해제될 때까지 접속이 유지된다. 시도가 성공적이지 않았던 경우에는, 블럭(628)에 나타난 바와 같이, 서버는 제1 클라이언트의 접속 정보를 제2 클라이언트에 전송한다. 블럭(630)에서, 제2 클라이언트는 제1 클라이언트의 접속 정보를 사용하여, 제1 클라이언트와의 피어-투-피어 통신의 확립을 시도한다. 결정 블럭(632)은 시도가 성공적이었는지를 결정한다. 마찬가지로, 블럭(626)에 나타나 있는 바와 같이, 접속은 참가자들 중 한 명에 의하여 (또는 네트워크 실패에 의하여) 해제될 때까지 유지된다. 논리는 블럭(636)에서 종료한다. 피어-투-피어 통신을 확립하기 위한 제2의 시도가 성공적이지 않은 경우, 논리는 블럭(618)로 되돌아가서, 서버가 제2 클라이언트의 접속 정보를 제1 클라이언트에게 다시 송신하게 하거나[블럭(632)을 블럭(618)에 연결시키는 점선에 의해 나타나 있는 바와 같이], 서버가 선택 블럭(634)에 나타나 있는 바와 같이 서버를 통한 음성 트래픽(또는 클라이언트들 간의 다른 통신)을 선택적으로 라우팅할 수 있게 한다. 블럭(630)에서 피어-투-피어 접속이 확립되지 않은 경우의 또다른 선택안은, 단순하게 시도된 통신이 성공적이지 않았음을 표시하고 블럭(636)에서 논리를 종료하는 것이다.
제1 실시예의 게임 서버 구현에 관한 세부 사항
도 7은 도 5에 기초하는 것으로서, 본 발명의 개념이 온라인 게임 환경과 관련하여 어떻게 적용되는지를 나타내고 있다. 네트워크(710)는 대규모 멀티플레이어(massively multi player) 게임 서버(712) 및 플레이어(714, 716, 718, 719)를 포함한다. 도 7에 나타난 바와 같이, 바람직한 구현에서, 각각의 클라이언트는 도 1 및 도 2와 관련하여 설명된 것과 같은 게임 콘솔을 시용하는 플레이어이다. 본 기술 분야의 통상의 지식을 가진 자라면, 도 7의 각각의 플레이어가 상이한 유형의 게임 디바이스 또는 퍼스널/랩탑 컴퓨터를 사용하여 게임 서버에 액세스할 수 있음을 알 것이다.
각각의 플레이어는 서버/클라이언트 접속(720)을 사용하여 게임 서버(712)에 의해 호스트되는 게임 세션에 액세스한다. 서버(712)에 의해 제공되는 정보에 기초하여, 플레이어(714)는 플레이어(716)와의 피어-투-피어 접속(722)을 확립한다. 마찬가지로, 플레이어(714)는 플레이어(718)와의 피어-투-피어 접속(722)을 확립한다.
게임 네트워크(300)와 관련하여, 각각의 플레이어(714-719)는 전술한 것과 같이 4명까지의 플레이어를 지원할 수 있는 게임 콘솔(102)을 사용하는 것이 바람직하다. 따라서, 도 7에 도시된 각각의 클라이언트/플레이어는 실질적으로 4명까지의 개별 플레이어를 포함할 수 있고, 이들 각각이 다른 게임 콘솔을 사용하여 선택된 개별 플레이어들과의 피어-투-피어 통신을 확립할 수 있기 때문에, 도 7은 다소 단순화된 것이다. 하나의 접속은 각각의 네트워크 엔티티(즉, 각각의 게임 콘솔 또는 각각의 컴퓨터)로 이루어지는 것이 바람직하고, 해당 엔티티 상의 모든 플레이어는 동일한 피어-투-피어 접속을 사용할 것이다. 도 8은 게임 콘솔(102)이 세션 내의 11명의 플레이어 간의 통신을 어떻게 지원하는지를 설명하는 추가의 세부 사항을 제공한다. 도 8을 참조할 때, 도시된 게임 콘솔(832)(즉, 게임 콘솔 2)이 2명의 플레이어를 지원하고 있고, 게임 콘솔(836)(즉, 게임 콘솔 3)이 1명의 플레이어를 지원하고 있지만, 도 8의 각각의 게임 콘솔은 4명까지의 플레이어를 지원할 수 있음에 유의해야 한다. 따라서, 도 8에 도시된 세션에서는 11명의 플레이어만이 통신하고 있지만, 이러한 구성에서는 16명의 플레이어[게임 콘솔(832)에 2명의 플레이어를 추가하고 게임 콘솔(836)에 3명의 플레이어를 추가]까지의 통신이 지원될 수 있다.
도시된 예에서는, 게임 콘솔(102)을 사용하는 플레이어들은 메시지를 타이핑할 키보드를 갖지 않기 때문에, 음성 채팅을 포함하는 기능은 중요하다. 게임 콘솔(102)에서 사용될 게임 타이틀을 개발하는 게임 설계자들이 음성 채팅을 지원하는 것과 관련한 많은 다른 기능을 제공할 수 있지만, 게임 콘솔(102)을 사용하는 음성 채팅은 다음과 같은 기능들을 포함하는 것이 바람직하다.
·플레이어는 자신의 음성을 다른 플레이어들에게 전혀 들리지 않도록 뮤트시키는 기능을 가져야 한다.
·플레이어는 게임 동안 다른 플레이어들이 자신에게 말하는 것을 뮤트시킬 수 있어야 한다.
·플레이어는 다른 플레이어가 미래의 임의의 게임에서 자신에게 말하는 것을 뮤트시키는 기능을 가져야 한다. 이에 의하여, 한 플레이어를 영구적으로 뮤트시키면, 그 사람과는 절대로 다시 대화하지 않게 된다.
·사람의 음성은, 성별 및 연령과 같은 특성을 식별하는 것을 비롯하여, 통상적으로 텍스트 채팅에 의해서는 드러나지 않는 개인의 상세한 정보를 드러낸다. 따라서, 플레이어는 자신의 음성을 마스크할 수 있어야 한다. 사용자가 음성 마스크가 적용된 자신의 음성을 들을 수 있게 하는 기능이 추천된다. 음성 마스크는 디폴트로 턴온되고, 사용자에 의하여 언제라도 온/오프될 수 있는 것이 바람직하다.
·게임 콘솔(102) 상에서 플레이되는 게임에서, 플레이어가 판타지에 기초를 둔 롤 플레잉 게임에서의 드래곤 또는 앨프와 같은 자신의 온스크린 캐릭터에 일치하도록, 자신의 음성을 변경하는 것이 선택적으로 허용될 수 있다.
도 8은 게임 콘솔(810)이 음성 채팅을 어떻게 지원하는지를 나타내는 세부도이다. 음성 채팅의 품질을 유지하기 위하여, 음성 채팅 세션은 게임 타이틀에 의하여 일정한 비율로 업데이트되어야 한다. 게임이 규칙적인 비디오 프레임 레이트를 유지해야만 하는 것과 마찬가지로, 규칙적인 프레임 레이트도 유지되어야만 한다. 그렇지 않은 경우, 음성 품질이 저하될 것이고, 그에 따라 사용자의 경험도 저하될 것이다. 게임 콘솔(810)은 통상적으로 만날 수 있는 다양한 시나리오에서 양호하게 음성 채팅을 수행하도록 최적화된다. 주된 제한 요인은 음성 프레임 당 행해질 수 있는 인코드 및 디코드의 수이다. 게임 콘솔(810)은 게임 콘솔(102)과 대체적으로 동일하다는 것을 알아야 한다. 전술한 바와 같이, 게임 콘솔(102)은 오디오 프로세스 유닛(224) 및 오디오 CODEC(226)을 포함한다. 게임 콘솔(810)에서는, 구현되는 오디오 프로세스를 보다 더 명확하게 설명하기 위하여, 오디오 프로세스 유닛(224)과 오디오 CODEC(226)은 추가의 기능 블럭으로 분리되어 있다. 예를 들어, 게임 콘솔(102)과 관련하여 기술된 오디오 CODEC(226)은 인코더와 디코더 양자 모두를 포함하지만, 음성 채팅 동안 발생하는 오디오 신호 프로세스를 보다 더 명확하게 설명하기 위하여, 게임 콘솔(810) 내에서는 인코더와 디코더가 별개의 기능 블럭으로 도시된다. [게임 콘솔(102)와 관련하여 설명된] 오디오 프로세스 유닛(224)은 복수의 네트워크 큐(816a, 816b, 816c)를 포함하며, 임의의 네트워크 레이턴시는 엔티티들 사이에 존재하므로, 상이한 네트워크 엔티티와의 각각의 접속마다 하나의 큐를 갖는 것이 바람직하다. 필요한 구성요소이지만, 게임 콘솔(102)에 관련해서는 특별히 논의되지 않은 입력 라우터(826) 및 출력 라우터(820)가 도 8에 도시되어 있다. 게임 콘솔(810)은 16명까지의 화자(talker)(즉, 네트워크를 통해 4개까지의 게임 콘솔이 링크되고, 게임 콘솔마다 4명까지의 통화자를 가짐)를 동시에 신뢰할 수 있게 지원하도록 설계되어 있다. 게임 콘솔(810)은 평활한 게임 프레임 레이트를 지원하기 위하여 음성 프레임당 소정량의 데이터를 인코딩 및 디코딩할 수 있는 것이 바람직하다.
게임 콘솔(810)은 각각의 플레이어(828a-828d)의 헤드셋 상의 마이크로폰으로부터 각각의 플레이어에 대한 가청 음성 스트림을 수신하도록 구성된 입력부(824a-824d)를 포함한다. 입력부(824a-824d)는 어떤 플레이어가 말할 수 있는지를 결정하여 그러한 말할 수 있는 플레이어에 대응하는 음성 스트림만을 포워드하도록 구성된 입력 라우터(826)에 연결된다. 포워드된 음성 스트림은 입력 라우터(826)에 논리적으로 연결된 인코더(814)에 의해 수신된다. 인코더(814)는 가청 스피치를 네트워크(83)를 통해 수신측 게임 콘솔(832, 836 또는 840)에 요구되는 대로 송신할 수 있는 음성 데이터로 압축한다. 또한, 인코더(814)는, 네트워크(830)를 통해 게임 및 음성 트래픽을 송신하는 것을 담당하는 네트워크 계층(812)에 논리적으로 연결된다.
게임 콘솔(810)은 네트워크(830)를 통해 게임 콘솔(810)에 링크된 각각의 다른 게임 콘솔에 대한 네트워크 큐를 포함한다. 바람직하게는, 게임 콘솔(810)은 3개까지의 다른 게임 콘솔[즉, 콘솔(832, 836 및 840)]과 통신할 수 있다. 따라서, 게임 콘솔(810)은 3개의 네트워크 큐(816a, 816b 및 816c)를 확립하기 위한 충분한 메모리 및 처리 자원을 할당할 수 있다. 데이터를 송신하는 각각의 네트워크 엔티티에 대하여, 수신 엔티티에 대한 단일의 큐가 존재하는 것이 바람직하다. 게임 콘솔(836)은 단 한명의 플레이어(838)만을 지원하며, 네트워크 큐(816b)는 플레이어(838)로부터의 데이터만을 큐잉할 것이다. 네트워크 큐(816c)는 4명의 플레이어(842a-842d)를 지원하는 게임 콘솔(840)로부터의 데이터를 수신하기 때문에, 보다 많은 자원을 필요로 한다. 네트워크 큐는 인터넷 또는 기타 상호접속 네트워크를 통해 송신되는 패킷의 도달 시간 차이에 의해 유발되는 "지터" 효과를 제거한다. 네트워크 큐는 음성 데이터를 그대로 저장하고 음성 데이터의 플레이백을 평활화하기 때문에, 청취자는 네트워크를 통해 전파되는 음성 패킷의 임의의 지연에 의하여 유발되는 "팝(pops)"을 듣지 않는다.
각각의 네트워크 큐는 디코더(818)에 논리적으로 연결된다. 인코더(814)를 제어하는 알고리즘과 디코더(818)를 제어하는 알고리즘은 상보적이다. 디코더(818)는 디코딩된 가청 스트림을 수신하여 그것을 플레이어마다의 정확한 출력 오브젝트에 송신하는 출력 라우터(820)에 논리적으로 연결된다. 따라서, 출력 라우터(820)는 플레이어(828a-828d) 중 적절한 사람들에게 오디오 스트림을 제공하는 출력부(822a-822d)에 논리적으로 연결된다. 각각의 출력부는 모든 적합한 스트림을 혼합하여 그들을 적합한 플레이어의 헤드셋에 송신하는 것을 담당한다.
게임 콘솔(810)과의 음성 채팅을 지원하기 위해 요구되는 것을 분석할 때에, 게임 기반의 음성 채팅을 3개의 주요 시나리오로 분할하는 것이 도움이 된다. 포인트-투-포인트 시나리오에서는, 게임 콘솔당 한 사람씩 채팅하고, 2개의 게임 콘솔이 존재한다. 멀티포인트 시나리오에서는, 게임 콘솔당 한 사람씩 채팅하고, 16개까지의 게임 콘솔이 존재한다. 최종적으로, 멀티플레이어-온-멀티게임 콘솔 시나리오에서는, 게임 콘솔당 4명까지의 화자가 있고, 4개까지의 게임 콘솔이 존재한다. 대부분의 게임은 이러한 시나리오 중 하나에 해당할 것이다.
포인트-투-포인트는, 하나의 게임 콘솔 상의 단일 플레이어가 다른 게임 콘솔 상의 다른 단일 플레이어와 대화하는 것에 해당한다. 일반적인 예는, 단 2명의 플레이어만이 존재하며 플레이어들이 게임 진행 동안 통신하기를 원하는 체스 등의 게임이다. 이러한 경우에서, 각각의 게임 콘솔은 하나의 인코더와 하나의 디코더를 인스턴스화한다. 음성 프레임 업데이트 동안, 각각의 게임 콘솔은 임의의 인코딩과 임의의 디코딩을 필요에 따라 업데이트한다. 이러한 경우에서, 뮤트는, 뮤트된 플레이어의 음성 스트림을 디코딩하지 않는 것에 의해 간단하게 행해진다.
멀티포인트 시나리오에서는, 각각의 게임 콘솔 상에 한명의 플레이어가 존재하지만, 세션 내에 복수의 게임 콘솔이 존재한다. 예를 들면, 콘솔당 단일 플레이어만을 허용하는 4 플레이어용 브리지 게임이 있다. 게임은, 모든 플레이어가 모두에게 말하는지 또는 팀이 존재하는지를 결정할 수 있고, 플레이어의 서브세트가 서로 말할 수 있는지를 결정할 수 있다. 이러한 경우에서, 각각의 게임 콘솔은 하나의 인코더와 하나의 4-인-1(4 in 1) 디코더를 인스턴스화한다. 음성 프레임 업데이트 동안, 각각의 게임 콘솔은 (게임 콘솔 상의 단일 사용자에 대한) 임의의 인코딩과 (다른 게임 콘솔들로부터의 3명까지의 사용자에 대한) 임의의 디코딩을 업데이트한다. 4 in 1 디코더는, 복수의 입력 스트림을 취하고, 그들을 주파수 영역에서 조합하고, 그 조합에 단일 동작을 수행하여 하나의 단일 출력 스트림으로 변환하는 멀티스트림 병렬 디코더로서 구현된다. 이러한 최적화에 의하여, 각각의 단일 스트림에 대한 개별 동작들은, 스트림들을 결합한 후에 모든 스트림에 적용되는 단일 동작으로 보다 더 효율적으로 조합될 수 있다.
멀티플레이어-온-멀티게임 콘솔 시나리오에 대하여, 각각의 게임 콘솔은 복수의 플레이어와 복수의 게임 콘솔이 접속되는 것을 허용한다. 예를 들어, 각 콘솔 상의 4명까지의 플레이어와 4개까지의 콘솔을 허용하는 16 플레이어용 게임이 있다.
게임 설계자는 모든 플레이어가 서로 대화할 수 있는지, 또는 팀이 존재하여 플레이어들의 서브세트만이 서로 말할 수 있는지를 결정할 수 있다. 16명의 플레이어에 있어서, 대화가 알기 어려워지지 않도록, 동시에 말할 수 있는 사람의 수(예를 들어, 단 4명)를 제한하는 것이 바람직하다.
각 게임 콘솔 내에서 음성 프레임당 플레이어당 하나의 인코더 및 4개의 4-인-1 디코더를 인스턴스화하고 처리하는 것은, 각각의 게임 콘솔 내의 프로세서를 압도할 가능성이 있다. 그러나, 이러한 상황을 관리하기 위하여, 다음과 같은 가정이 이루어진다.
·4명 이상의 말을 한꺼번에 듣는 것은 다루기 어렵고 바람직하지 않은 것으로 가정한다. 이러한 가정은 한꺼번에 디코딩되는 음성의 수를 제한하는 데에 사용된다. 바람직한 알고리즘은 게임 콘솔 상의 청취자 당 4개의 "가장 큰" 음성을 선택한다. 따라서, 최악의 시나리오는 게임 콘솔 당 2명의 청취자가 있고, 각각 4명(가능하면 그 청취자에 고유함)의 상이한 화자를 한꺼번에 듣는 것이다.
·인코딩시에, 실제로 음성을 인코딩할 시간이 존재하지 않는 경우, 음성 프레임이 복제될 수 있는 것으로 가정한다. 이러한 가정에 기초하면, 2개의 인코더와 "라운드-로빈" 시스템(나중에 설명됨)을 사용하여, 모든 4개의 음성이 각각의 음성 프레임 내에서 처리될 수 있다.
·음성 채널은 양방향 라디오 상의 채널과 같이 간단하게 사용된다. 즉, (개별적인 뮤트가 고려되기 전에는) 채널 상의 모든 화자가 서로 말하는 것을 들을 수 있다. 채팅할 플레이어가 세션에 들어오면, 그 플레이어는 그들이 이용하고 있는 채널을 명시적으로 설정해야만 한다. 일반적으로, 채널은 "팀" 내의 모든 회원이 서로 말할 수 있게 하는 데에 사용된다 (디폴트로서, 게임 내의 모든 플레이어에 대하여 하나의 채널이 사용될 수 있다). 채널은 음성을 위한 네트워크 트래픽을 최적화하는 데에 사용될 수 있다.
·추가의 프로세서 전력을 사용할 것을 선택하는 타이틀은 추가의 디코더를 사용가능하게 하는 옵션을 가질 것이며, 이는 하나의 음성 프레임동안 추가의 음성을 동시에 들을 수 있게 할 것이다.
따라서, 멀티플레이어-온-멀티게임 콘솔 시나리오에서, 각각의 게임 콘솔은 하나의 4-대-4 디코더를 인스턴스화한다. 음성 프레임 업데이트 동안, 각각의 게임 콘솔은 (게임 콘솔 상의 4명까지의 사용자에 대한) 임의의 인코딩 및 (다른 게임 콘솔 상의 4명까지의 사용자에 대한) 임의의 디코딩을 업데이트한다. 이러한 음성 프레임 동안 4개 이상의 상이한 음성 스트림이 이용가능한 경우, 4개의 가장 큰 음성 스트림이 디코딩용으로 선택된다. 게임 설계자가 보다 더 많은 프로세스 전력이 채팅이 사용되는 것을 허용한 경우, 프레임당 디코딩되는 다중 음성 스트림의 수를 증가시키기 위하여, 추가의 디코더가 인스턴스화될 수 있다.
단 2개의 인코더만을 이용하는 인코딩은 다음과 같이 행해진다 (즉, 4개의 인코더 인스턴스가 있지만, 한 음성 간격에서 2개만이 작동함). 플레이어 1, 2, 3, 4 모두가 동시에 말하고, 최근에 인코딩되었던 2개의 음성에 관한 이력이 유지되는 것으로 가정한다. 현재의 마이크로폰 패킷은 플레이어 1의 음성에 대하여 분석되고, 플레이어 1의 음성이 존재하는 경우에는 그것이 인코딩된다. 다음으로, 현재의 마이크로폰 패킷은 플레이어 2의 음성에 대하여 다음에 분석되며, 플레이어 2의 음성이 존재하는 경우에는 그것이 인코딩된다. 프로세스가 중단되고, 이력은 {3, 4, 1, 2}로 업데이트된다. 후속 마이크로폰 간격(통상적으로 40 마이크로초) 동안, 마이크로폰 패킷은 플레이어 3 및 4(즉, 선행 마이크로폰 패킷 동안 처리되지 않았던 2명의 플레이어)에 대하여 분석된다. 마이크로폰 패킷이 분석되고, 플레이어 3의 음성이 발견되지 않은 경우, 인코딩은 수행되지 않는다. 플레이어 4의 음성이 발견되는 경우, 인코딩이 수행되며, 이력은 {3, 1, 2, 4}로 업데이트된다. 동일한 마이크로폰 패킷 동안, 플레이어 1의 음성이 존재하는 경우에 그것이 인코딩되고, 이력은 {3, 2, 4, 1}로 된다. 마이크로폰 패킷 간격 동안, 분석은 플레이어 3 및 2로부터의 음성을 찾는다. 플레이어 3이 여전히 음성을 갖지 않는 경우, 인코딩은 플레이어 2 및 플레이어 4에 대하여 행해지며, 이력은 {3, 1, 2, 4}로 업데이트된다.
라운드 로빈 인코딩 방식은 한번에 2 프레임의 스피치에 대해서만 행해지고, 현재 인코딩되고 있지 않은 스트림의 다른 프레임들에 대해 반복한다. 최종 결과는 4명의 플레이어 모두가 말할 때의 음향 저하이지만, 그 때 추가의 프로세스 전력은 사용되지 않는다.
제1 실시예를 위한 예시적인 방법
도 9는 본 발명의 본 실시예의 바람직한 구현에 따라, 게임 플레이 동안 플레이어들 간의 피어-투-피어 통신을 용이하게 하기 위하여, 게임 서버에 의해 사용되는 논리를 나타낸 흐름도(910)이다. 논리는 블럭(912)에서 시작하고, 블럭(914)에서는, 이용되는 게임 콘솔[예를 들어, 게임 콘솔(102)]을 위해 개발된 표준에 따라, 특정 게임을 위한 통신 컨트롤이 설정된다. 블럭(916)에 나타난 바와 같이, 표준에 기초하여, 특정 게임에 의해 지원될 통신의 타입(예를 들어, 텍스트 전용, 텍스트 및 음성, 메뉴에 의해 선택할 수 있는 녹음된 음성 응답, 또는 실시간 음성)이 지원된다. 블럭(914) 및 블럭(916)을 둘러싸고 있는 점선(913)에 의해 나타나는 바와 같이, 블럭(914 및 916)과 관련된 단계들은 게임 설계자에 의하여 구현된다.
그리고나서, 블럭(918)에 나타나 있는 바와 같이, 게임 서버는 이와 같이 설정된 게임 파라미터에 기초하여 게임 세션을 호스트할 수 있다. 블럭(920)에서, 게임 서버에 의해 호스트되는 게임 세션에 액세스하는 각각의 플레이어는, 게임 서버에 의하여 인증 및 허가된다. 블럭(922)에 나타난 바와 같이, 게임 서버는 자신에 액세스하는 각각의 게임 콘솔을 식별하는 것은 물론, 특정 게임 콘솔에 의해 서비스되는 각각의 개별 플레이어도 식별해야 한다. 바람직하게, 게임 서버는 각각의 개별 플레이어에게 로그온 시에 사용자 키를 제공하며, 그 사용자 키는 게임 서버에 의해 신뢰되는 플레이어들 간의 피어-투-피어 통신의 확립을 용이하게 하는 데에 사용된다.
블럭(924)에서, 서버는 플레이어들이 다른 플레이어와 원하는 대로 피어-투-피어 통신을 확립할 수 있게 한다. 블럭(924)와 관련된 특정 세부사항들은 이하에 설명되는 도 10에 제공된다. 블럭(926)에 나타난 바와 같이, 플레이어들 간의 피어-투-피어 통신을 허용하는 게임 플레이는 원하는 기간 동안 계속된다. 플레이어가 게임 환경에서 나가면, 논리는 종료 블럭(928)에서 종료된다.
도 10의 흐름도(1010)에서, 게임 서버는 블럭(1012)에 나타난 바와 같이 각각의 플레이어에게 다른 플레이어들의 리스트를 제공함으로써, 플레이어들 간의 피어-투-피어 통신의 확립을 용이하게 한다. 전형적으로, 게임 환경 내에서 플레이어들 간의 통신이 바람직하고 실현가능하도록 하기 위하여, 이러한 리스트는 동일 팀에 속하는 플레이어들, 또는 게임 세계 내에서 서로 충분히 인접한 플레이어들로 한정될 것이다. 블럭(1014)에서, 서버는 CONSOLE1-P1으로 식별되는 플레이어(즉, 제1 게임 콘솔을 사용하여 게임 서버에 액세스하는 제1 플레이어)가 음성 통신을 위하여 CONSOLE2-P4로 식별되는 플레이어(즉, 제2 게임 콘솔을 사용하여 게임 서버에 액세스하는 제4 플레이어)를 선택할 수 있게 한다. 이러한 선택은, 다른 플레이어들에 관한 스크롤가능한 리스트를 디스플레이하여, CONSOLE1-P1이 리스트를 스크롤하여 CONSOLE2-P4를 선택할 수 있게 함으로써 용이하게 행해질 수 있다.
그 다음, 서버는 블럭(1016)에 나타난 바와 같이 CONSOLE1-P1에 CONSOLE2-P4에 관한 정보를 제공한다. 정보는 CONSOLE2의 외부 IP 어드레스, CONSOLE2의 내부 IP 어드레스(내부 어드레스를 갖는 경우에만), 및 CONSOLE2의 제4 플레이어가 접속한 포트 번호를 포함한다. 바람직하게는, 서버는 CONSOLE2-P4가 게임 서버에 로그온할 때 CONSOLE2-P4에 할당되었던 사용자 키를 CONSOLE1-P1에 송신하여, CONSOLE2-P4가 CONSOLE1-P1으로부터 피어-투-피어 통신을 확립하기 위한 요청을 수신한 때에, CONSOLE2-P4가 CONSOLE1-P1이 서버에 의해 신뢰되는 것으로 인식할 수 있게 한다. CONSOLE1-P1이 신뢰되지 않았다면, 게임 서버는 CONSOLE1-P1이 CONSOLE2-P4의 사용자 키에 액세스하는 것을 허용하지 않았을 것이다. 블럭(1018)에서, CONSOLE1-P1은 CONSOLE2-P4와의 피어-투-피어 통신 링크를 확립하려고 시도한다. 이 단계는 게임 콘솔 CONSOLE1에 의해 자동적으로 수행된다.
판정 블럭(1020)은 시도가 성공적이었는지를 판정한다. CONSOLE1-P1과 CONSOLE2-P4 간의 피어-투-피어 통신이 확립된 경우에는, 블럭(1024)에 나타난 바와 같이, 플레이어 중 한명에 의해 (또는 네트워크 실패에 의해) 해제될 때까지 접속이 유지된다. 시도가 성공적이지 않았던 경우에는, 블럭(1022)에 나타난 바와 같이, 게임 서버는 제1 플레이어(즉, CONSOLE1-P1)의 접속 정보를 제2 플레이어(즉, CONSOLE2-P4)에 전송한다. 도 6과 관련하여 설명한 바와 같이, 피어-투-피어 통신 링크를 확립하기 위한 제2의 시도가 성공적이지 않은 경우, 논리는 블럭(1016)으로 진행하여 게임 서버가 제2 플레이어의 접속 정보를 제1 플레이어에게 다시 송신하게 하거나, 또는 게임 서버가 플레이어들 간의 모든 통신을 자신을 통해 라우팅할 수 있게 하거나, 또는 게임 서버가 피어-투-피어 관계 접속의 실패를 표시할 수 있게 한다.
제2 실시예에 관한 세부사항
도 11은, 클라이언트들 간의 피어-투-피어 통신의 확립을 용이하게 하는 것을 주요 기능으로 하는 서버(1114a-1114s)를 포함하는 예시적인 네트워크(1110)를 나타내고 있다. 본 발명의 본 실시예의 바람직한 구현에서, 서버는 호스트 서버에 대한 액세스 권한이 다를 수 있는 상이한 클라이언트 등급을 인식하도록 구성된다.
도 11에 도시된 실시예는, 보안 방식으로 강제될 수 있는 상이한 액세스 정책을 상이한 엔티티 "등급"(익명 사용자, 인증된 사용자, 사업, 대학 등)에 제공함으로써, 피어-투-피어 통신을 확립하고자 하는 클라이언트들의 공용 인터넷 디렉토리의 관리를 용이하게 한다. 예를 들어, 서버는 익명 사용자(1116)가 서버에 접속할 때, 익명 사용자(1116)가 서버에 의해 호스트되고 있는 세션 1에 액세스하는 것만을 허용하도록 구성된다. 세션 1은 다수의 상이한 방식으로 구성될 수 있다. 세션 1에 액세스하는 각각의 클라이언트는, 자신의 사이트로 트래픽을 유도하기를 원하는 웹사이트 운영 홍보자를 나타낼 수 있다. 따라서, 익명 사용자(1116)는 피어-투-피어 통신을 원하는 개인들에 관한 접속 정보를 얻을 수 있는 것과는 달리, 이러한 웹사이트에 액세스하기 위해서만 네트워크(1110)를 사용할 수 있다. 대안적으로, 세션 1은 거의 또는 전혀 제한없이 피어-투-피어 통신을 확립하는 것에 대한 선호를 표명한 클라이언트들을 포함할 수 있다.
네트워크(1110) 내의 서버는 제한적으로 인증된 사용자를 인식하여, 제한적으로 인증된 사용자(1118)가 서버에 액세스할 때 세션 1 및 세션 2에 대한 액세스가 제공되게 할 수 있도록 구성된다. 따라서, 제한적으로 인증된 사용자(1118)는 익명 사용자(1116)가 액세스할 수 없는 클라이언트들(즉, 세션 2에 액세스하는 클라이언트들)에 액세스할 수 있다. 또한, 서버는 또 다른 액세스 권한을 허가받은 인증된 사용자를 인식하도록 구성된다. 인증된 사용자(1120)는 세션 1, 세션 2 또는 세션 3에 대한 액세스를 허가받을 수 있으며, 세션 3은 또 다른 옵션을 제공한다. 또한, 네트워크(1110)는, 다른 클라이언트에 대한 자신의 접속을 광고하는 것을 서버에 의해 허가받은 리스트 엔티티(list entity)(1122a 및 1122b)를 더 포함한다.
바람직하게, 통신 네트워크에 접속하기를 원하는 각각의 클라이언트는 인증 및 허가되어야 한다. 인증 및 허가(A&A)는, 마이크로소프트사의 Passport, 신뢰 계층을 이용한 증명을 채용하는 공용 키 암호화, 또는 TA(Trusted Authoruty)를 사용하여 "티켓"을 허여하는 Kerberos[RFC(1510)] 등의 보안 프로토콜에서와 같이, 웹 사이트 사인-인(sign-in)에 기초할 수 있다. 이러한 메커니즘들 중 임의의 것, 또는 이러한 메커니즘들의 조합이 본 발명의 본 양태와 관련하여 사용될 수 있다.
인증은 서버에 대한 액세스를 시도하는 클라이언트의 신분을 확인하는 프로세스이다. 인증은 사용자명/패스워드 조합과 같은 보안 증명서, 또는 클라이언트에 연관된 스마트 카드 및/또는 패스워드의 소유를 제공함으로써 달성될 수 있다. 또한, 인증은 클라이언트를 "보증(vouch)"할 수 있는 소정의 엔티티에도 의존할 수 있다. 예를 들어, 새로운 클라이언트가 다른 클라이언트들에 대한 액세스를 획득하기 위하여 서버에 등록할 때, 인증은 신용카드, 루트 인증기관(root certificate authority), 또는 기타 제3의 신뢰되는 인증기관을 사용하여 달성될 수 있다.
인증은 클라이언트에게 서비스(또는 서비스의 서브세트) 사용에 대한 허가를 제공한다. 도 11에서, 익명 사용자(1116), 제한적으로 인증된 사용자(1118) 및 인증된 사용자(1120)는 각각 상이한 허가를 할당받은 상태이다. 클라이언트가 인증되고 나면, 그 클라이언트의 인증 데이터는 서비스 및 서비스의 상이한 서브세트(들)(즉, 세션 1, 세션 2 및/또는 세션 3)로의 액세스에 대한 허가를 포함한다. 인증은 액세스를 허용하며, 정책을 강요한다. 디렉토리의 정책은 서비스의 설계자에 의해 결정될 수 있으며, 폭넓게 달라질 수 있다. 예를 들어, 네트워크(1110)에서, 바람직하게, 익명 사용자는 인증을 필요로 하지 않으며, 세션 1은 서비스의 매우 제한적인 서브세트일 뿐이다. 일반적으로, 익명 사용자는 (옐로우 페이지에 액세스하는 것과 같이) 익명 접속을 허락하는 제한된 공개용 리스트 엔티티(즉, 광고자, 회사 및/또는 대학)를 브라우징하는 것을 허가받을 것이다. 익명 접속의 접속 타입은 리스트 엔티티에 의해 결정되며, 온라인 컨텐트를 듣고 보고 읽는 것과 같은 단방향 통신으로만 제한될 수 있다.
도 11의 사용자(1118)와 같이 제한적으로 인증된 사용자는 보안 증명서를 제시함으로써 자신의 신분을 증명한 사용자이다. 제한적으로 인증된 사용자는 제한된 공개용 리스트 엔티티를 보고 그에 접속할 수 있으며, 그러한 엔티티와 양방향으로 통신하는 것도 허용된다. 또한, 이들은 부적절한 컨텐트를 리스트화한 엔티티의 위반을 보고하는 것도 할 수 있다.
인증된 사용자[즉, 도 11의 사용자(1120)]는 보안 증명서를 제시함으로써 자신의 신분을 증명하고, 또한 기업 인증기관과 사업 관계를 가지며, 따라서 제한적으로 인증된 사용자보다 더 많은 액세스를 허가하는 인증의 수퍼세트를 허여받은 사용자이다. 인증된 사용자는 제한적으로 인증된 사용자의 허가를 전부 갖지만, 보다 안전한 통신을 원하는 클라이언트들을 포함하는 것과 같은 추가 세션에 대해서도 액세스할 수 있다 (예를 들어, 회사의 인트라넷 디렉토리에 대한 액세스).
바람직하게, 리스트 엔티티는 자신의 접속을 익명 사용자, 제한적으로 인증된 사용자 및 인증된 사용자 중 누구에게라도 광고할 수 있는 엔티티이다. 리스트 엔티티는 개인, 기업, 교회, 대학 및 기타 기관일 수 있다. 리스트 엔티티는 사용자 세트에 기초하여 자신의 액세스를 설정할 수 있다. 예를 들어, 고객 지원을 제공하는 리스트 엔티티는 익명 사용자가 컴퓨터로부터의 자동화된 도움을 얻을 수 있게 하고, 제한적으로 인증된 사용자에 대해 제한된 고객 지원을 허용하며, 그들과 지원 계약을 맺은 인증된 사용자에 대해 프리미어 지원을 허용한다.
본 발명이 바람직한 실시 형태 및 그에 대한 수정과 관련하여 설명되었지만, 본 기술 분야의 숙련된 기술자라면, 이하의 특허청구범위 내에서 많은 다른 수정이 본 발명에 행해질 수 있음을 알 것이다. 예를 들어, 네트워크화된 게임 서비스에 독립적인 게임 시스템의 로컬 네트워크 내에서, 화자는 시각적으로 식별될 수 있다. 또한, 논리 흐름 내에서 구현되고 상기에 설명된 결정 단계들은 다른 구성으로 배열될 수 있다. 따라서, 상기의 설명은 본 발명의 범위를 어떤 방식으로든 제한하기 위한 것이 아니며, 본 발명의 범위는 이하의 특허청구범위를 참조하여 전체적으로 결정되어야 한다.
본 발명에 따르면, 개별 사용자들 간의 피어-투-피어 통신의 확립을 용이하게 하는 신뢰할 수 있는 환경을 형성하는 방법 및 시스템이 제공된다.
도 1은 게임 콘솔, 및 4개까지의 사용자 입력 디바이스를 위한 지원을 포함하는 예시적인 전자 게임 시스템을 도시한 도면.
도 2는 게임 시스템의 구성요소들을 더 상세하게 나타낸 기능 블럭도.
도 3은 네트워크를 통하여 다수의 게임 시스템을 상호 접속하는 예시적인 네트워크 게임 환경을 도시한 도면.
도 4는 온라인 서비스를 위한 예시적인 시스템에서 사용되는 종래의 서버 컴퓨터 형태의 범용 컴퓨팅 디바이스의 기능 블럭도.
도 5는 서버의 클라이언트들 간의 피어-투-피어 접속의 확립을 용이하게 하는 신뢰되는 환경을 제공하는 서버를 개략적으로 도시한 도면.
도 6은 서버가 자신의 클라이언트들 간의 피어-투-피어 접속의 확립을 용이하게 하는 신뢰되는 환경을 제공할 수 있게 하기 위하여 본 발명에서 사용되는 논리를 나타낸 흐름도.
도 7은 도 5에 기초하는 것으로서, 서버가 게임 서버이고 각각의 클라이언트가 플레이어인 본 발명의 바람직한 실시예를 나타낸 도면.
도 8은 도 3의 예시적인 네트워크 게임 환경의 구성요소들을 더 상세하게 나타낸 기능 블럭도.
도 9는 게임 플레이 동안 플레이어들 간의 피어-투-피어 접속을 용이하게 하기 위하여 게임 서버에 의해 사용되는 논리를 나타낸 흐름도.
도 10은 게임 플레이 동안 플레이어들 간의 피어-투-피어 접속을 용이하게 하기 위하여 게임 서버에 의해 사용되는 논리에 관한 추가의 세부 사항을 나타낸 흐름도.
도 11은 핵심 기능이 클라이언트들 간의 피어-투-피어 접속의 확립을 용이하게 하는 것인 호스팅 서버를 포함하며, 클라이언트 클래스에 따라 호스팅 서버에 대한 액세스 권한이 상이한 경우의 예시적인 네트워크의 개략도.
<도면의 주요 부분에 대한 부호의 설명>
510 : 네트워크
512 : 서버
514, 516, 518 : 클라이언트

Claims (43)

  1. 서버를 사용하여, 클라이언트들이 서로 피어-투-피어 통신을 확립할 수 있게 되는 신뢰되는 세션 환경을 확립하는 방법에 있어서,
    (a) 상기 서버를 사용하여, 상기 클라이언트들이 피어-투-피어 통신을 확립하기 전에 처음에 액세스하는 세션을 호스트하는 단계,
    (b) 상기 서버에 의해 호스트되는 세션에 액세스하려고 시도하는 각각의 클라이언트의 자격을 검사하여, 상기 서버에 의해 승인받은 자격을 갖는 클라이언트들만이 상기 세션에 대한 액세스를 허가받도록 하는 단계,
    (c) 상기 세션에 대한 액세스를 허가받은 제1 클라이언트에게, 현재 상기 세션에 대한 액세스를 허가받은 하나 이상의 다른 클라이언트를 식별하는 리스트를 제공하는 단계,
    (d) 상기 제1 클라이언트가 상기 리스트로부터 제2 클라이언트를 선택할 수 있게 하는 단계 - 상기 제1 클라이언트에 의해 선택된 제2 클라이언트는 상기 서버에 알려짐 -, 및
    (e) 상기 제2 클라이언트에 관한 정보를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계 - 상기 정보는 상기 제1 클라이언트와 상기 제2 클라이언트 간에서 피어-투-피어 통신이 확립될 수 있게 하는 상기 제2 클라이언트에 대한 어드레스를 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    (a) 상기 세션에 액세스하려고 시도하는 각 클라이언트의 자격을 검사하는 단계는,
    각각의 클라이언트를 인증하는 단계, 및
    각각의 인증된 클라이언트가 상기 세션의 특정 부분에 액세스하는 것을 허가하는 단계
    를 포함하고,
    (b) 상기 제1 클라이언트에게 제공된 리스트는, 상기 제1 클라이언트와 동일한 세션 부분에 액세스하는 것을 허가받은 클라이언트만을 식별하는 방법.
  3. 제2항에 있어서,
    한 클라이언트의 상기 서버의 다른 클라이언트들과의 피어-투-피어 통신에서의 상기 클라이언트의 행동에 관하여 상기 서버에 의해 수신된 피드백에 응답하여, 상기 한 클라이언트의 상기 세션의 특정 부분에 대한 액세스 허가를 변경하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 서버는, 클라이언트들이 피어-투-피어 통신을 확립할 수 있게 되는 신뢰되는 세션 환경을 확립하는 것 이외의 기능을 클라이언트에게 제공하는 방법.
  5. 제4항에 있어서,
    상기 서버는 게임 서버를 포함하고, 각각의 클라이언트는 네트워크화된 게임 플레이용 컴퓨팅 디바이스를 사용하여 상기 서버에 액세스하는 방법.
  6. 제5항에 있어서,
    상기 제1 클라이언트에게 제공된 하나 이상의 클라이언트의 리스트는, 상기 게임 서버에 의해 제어되는 게임 환경에서 인터랙션하는 클라이언트들만을 포함하는 방법.
  7. 제5항에 있어서,
    하나의 게임 플레이용 컴퓨팅 디바이스가 복수의 상이한 클라이언트를 지원할 수 있는 방법.
  8. 제1항에 있어서,
    상기 제2 클라이언트에 관한 정보를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계는, 상기 제2 클라이언트의 외부 IP 어드레스, 상기 제2 클라이언트와 연관된 임의의 내부 IP 어드레스, 및 상기 제2 클라이언트와 피어-투-피어 통신을 하는 데에 요구되는 임의의 포트 어드레스를 전송하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 각각의 클라이언트의 자격을 검사하는 단계는, 각각의 클라이언트에게 고유한 사용자 키를 할당하는 단계를 포함하고,
    상기 서버로부터 상기 제1 클라이언트에게 전송된 상기 제2 클라이언트에 관한 정보는 제2 클라이언트의 사용자 키를 포함하여, 상기 제1 클라이언트와의 피어-투-피어 통신을 열게 하는 요청이 신뢰되는 소스로부터 온 것임을 상기 제2 클라이언트에게 확신시키는 방법.
  10. 제1항에 있어서,
    상기 제2 클라이언트에 관한 정보를 수신한 후에, 상기 제1 클라이언트가 상기 제2 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우,
    (a) 상기 피어-투-피어 통신을 확립하기 위한 상기 제1 클라이언트의 시도가 실패했음을 상기 서버에 통지하는 단계,
    (b) 상기 제1 클라이언트에 관한 정보를 상기 서버로부터 상기 제2 클라이언트로 전송하는 단계 - 상기 정보는, 상기 제1 클라이언트와 상기 제2 클라이언트 간에서 피어-투-피어 통신이 확립될 수 있게 하는 상기 제1 클라이언트에 대한 어드레스를 포함함 -, 및
    (c) 상기 제2 클라이언트에게 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 것을 요청하는 단계
    를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 제1 클라이언트에 관한 정보를 수신한 후, 상기 제2 클라이언트가 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우, 상기 제1 클라이언트와 상기 제2 클라이언트 간의 모든 통신을 상기 서버를 통해 라우팅하는 단계를 더 포함하는 방법.
  12. 제1항에 따른 단계들을 실행하기 위한 기계 명령들이 저장되어 있는 메모리 매체.
  13. 사용자들이 서로 피어-투-피어 통신을 확립할 수 있는 신뢰되는 세션 환경을제공하는 시스템에 있어서,
    (a) 프로세서, 및
    (b) 상기 프로세서와 통신하며, 상기 프로세서가 복수의 기능을 수행하게 하는 기계 명령들을 저장하는 메모리
    를 포함하고,
    상기 복수의 기능은,
    (ⅰ) 사용자의 자격을 검사함으로써, 상기 시스템에 의해 호스트되는 세션에 액세스하려고 시도하는 각각의 사용자를 스크리닝(screening)하여, 스크리닝된 사용자들만이 상기 세션에 대한 액세스를 허가받게 하는 기능,
    (ⅱ) 제1 스크리닝된 사용자에게, 현재 상기 세션에 대한 액세스를 허가받은 적어도 한명의 다른 스크리닝된 사용자를 포함하는 리스트를 제공하는 기능, 및
    (ⅲ) 상기 제1 스크리닝된 사용자로부터의 요청에 응답하여, 상기 리스트 내에 포함된 제2 스크리닝된 사용자에 관한 정보를 상기 제1 스크리닝된 사용자에게 제공하는 기능 - 상기 정보는 상기 제2 스크리닝된 사용자와의 피어-투-피어 통신을 확립하는 데에 요구되는 임의의 어드레스를 포함함 -
    을 포함하는 시스템.
  14. 제13항에 있어서,
    상기 기계 명령들은, 상기 프로세서가,
    (a) 상기 제2 스크리닝된 사용자와의 피어-투-피어 통신을 확립하기 위한 상기 제1 스크리닝된 사용자의 시도가 실패했음을 통지받은 경우, 상기 제1 스크리닝된 사용자에 관한 정보를 상기 제2 스크리닝된 사용자에게 제공하는 기능 - 상기 정보는 상기 제1 스크리닝된 사용자와의 피어-투-피어 통신을 확립하는 데에 요구되는 임의의 어드레스를 포함함 -, 및
    (b) 상기 제2 스크리닝된 사용자에게 상기 제1 스크리닝된 사용자와의 피어-투-피어 통신을 확립할 것을 요청하는 기능
    을 더 수행하게 하는 시스템.
  15. 제14항에 있어서,
    상기 기계 명령들은, 상기 프로세서가,
    상기 제1 스크리닝된 사용자와의 피어-투-피어 통신을 확립하기 위한 상기 제2 스크리닝된 사용자의 시도가 실패했음을 통지받은 경우, 상기 제1 스크리닝된 사용자와 상기 제2 스크리닝된 사용자 간의 모든 통신을 상기 시스템을 통해 라우팅하게 하는 기능
    을 더 수행하게 하는 시스템.
  16. 서버를 사용하여, 상기 서버의 클라이언트들 간의 피어-투-피어 통신을 용이하게 하는 보안 환경을 제공하는 방법에 있어서,
    (a) 상기 서버를 사용하여, 클라이언트가 상기 보안 환경에 액세스하는 것을 허가하기 전에 각각의 클라이언트를 인증 및 허가하는 단계,
    (b) 상기 서버를 사용하여, 상기 보안 환경에 대한 액세스를 허가받은 제1 클라이언트에게, 상기 보안 환경에 대한 액세스를 허가받은 제2 클라이언트에 연관된 식별자를 제공하는 단계, 및
    (c) 상기 제1 클라이언트에 의한 요청에 응답하여, 상기 서버를 사용하여, 상기 서버에 의한 또다른 인터랙션을 요구하지 않고서 상기 제1 클라이언트와 상기 제2 클라이언트 간의 피어-투-피어 통신이 확립될 수 있게 하기 위한 정보를, 상기 제1 클라이언트에게 제공하는 단계
    를 포함하는 방법.
  17. 제16항에 있어서,
    상기 서버에 의하여, 각각의 상이한 클라이언트 등급마다 상이한 액세스 정책이 적용되도록, 각각의 클라이언트에게 등급을 할당하는 단계를 더 포함하고,
    상기 서버를 사용하여 각각의 클라이언트를 인증 및 허가하는 단계는, 클라이언트가 속하는 등급을 결정하는 단계를 포함하는 방법.
  18. 제17항에 있어서,
    상기 각각의 클라이언트에게 등급을 할당하는 단계는,
    클라이언트가 익명 사용자인지를 결정하는 단계, 및
    익명 사용자인 경우, 상기 보안 환경에 액세스하기 위한 상기 클라이언트의 허가를 정의하는 소정의 허가를 상기 클라이언트에게 할당하는 단계
    를 포함하고,
    상기 각각의 익명 사용자의 허가를 정의하는 허가는, 익명 사용자인 하나의 클라이언트가 익명이 아닌 다른 클라이언트와의 제한적인 피어-투-피어 통신을 확립하여, 상기 다른 클라이언트가 상기 하나의 클라이언트에게 데이터에 대한 단방향 액세스를 제공하는 서버의 역할을 할 수 있게 하는 방법.
  19. 제17항에 있어서,
    상기 각각의 클라이언트에게 등급을 할당하는 단계는,
    클라이언트가 제한적으로 인증된 사용자인지를 결정하는 단계, 및
    제한적으로 인증된 사용자인 경우, 상기 보안 환경에 액세스하기 위한 상기 클라이언트의 허가를 정의하는 소정의 허가를 상기 클라이언트에게 할당하는 단계
    를 포함하고,
    상기 소정의 허가는, 제한적으로 인증된 사용자인 클라이언트가, 제한적으로 인증된 사용자와의 피어-투-피어 통신을 허가하는 데에 동의한 다른 클라이언트와의 피어-투-피어 통신을 확립할 수 있도록, 각각의 제한적으로 인증된 사용자의 허가를 정의하는 방법.
  20. 제17항에 있어서,
    상기 각각의 클라이언트에게 등급을 할당하는 단계는,
    클라이언트가 인증된 사용자인지를 결정하는 단계, 및
    인증된 사용자인 경우, 상기 보안 환경에 액세스하기 위한 상기 클라이언트의 허가를 정의하는 소정의 허가를 상기 클라이언트에게 할당하는 단계
    를 포함하고,
    상기 각각의 인증된 사용자의 허가를 정의하는 허가는, 인증된 사용자인 클라이언트가, 인증된 사용자와의 피어-투-피어 통신을 허가하는 데에 동의한 다른 클라이언트와의 피어-투-피어 통신을 확립할 수 있게 하는 방법.
  21. 제17항에 있어서,
    상기 각각의 클라이언트에게 등급을 할당하는 단계는,
    클라이언트가 리스트 엔티티(listing entity)인지를 결정하는 단계, 및
    리스트 엔티티인 경우, 상기 보안 환경에 액세스하기 위한 상기 클라이언트의 허가를 정의하는 소정의 허가를 상기 클라이언트에 할당하는 단계
    를 포함하고,
    상기 각각의 리스트 엔티티의 허가를 정의하는 허가는, 리스트 엔티티인 클라이언트가, 다른 클라이언트와의 통신을 상기 다른 클라이언트에 등급에 기초하여 지향시킬 수 있게 하는 방법.
  22. 제17항에 있어서,
    상기 서버를 사용하여, 상기 제2 클라이언트에 연관된 식별자를 상기 제1 클라이언트에게 제공하는 단계는, 상기 제1 클라이언트와 동일한 등급에 속하는 클라이언트들에 연관된 식별자만을 상기 제1 클라이언트에게 제공하는 단계를 포함하는 방법.
  23. 제16항에 있어서,
    (a) 상기 서버는, 클라이언트가 관여하기를 원하는 피어-투-피어 통신의 주제에 기초하여, 복수의 상이한 클라이언트 그룹을 설정하고,
    (b) 상기 서버를 사용하여 상기 서버에 액세스하는 각각의 클라이언트를 인증하는 단계는, 특정 클라이언트가 어느 그룹에 연관되는지를 결정하는 단계를 포함하고,
    (c) 상기 서버를 사용하여, 상기 제2 클라이언트에 연관된 식별자를 상기 제1 클라이언트에게 제공하는 단계는, 상기 제1 클라이언트와 적어도 하나의 그룹을 공유하는 클라이언트들에 연관된 식별자만을 상기 제1 클라이언트에게 제공하는 단계를 포함하는 방법.
  24. 제16항에 있어서,
    상기 서버를 사용하여, 상기 서버에 액세스하는 각각의 클라이언트를 인증 및 허가하는 단계는,
    (a) 웹 사이트의 사인-인(sign-in)을 사용하여 각각의 클라이언트를 인증 및 허가하는 단계,
    (b) 공용 키 암호를 사용하여 각각의 클라이언트를 인증 및 허가하는 단계, 및
    (c) 신뢰되는 인증기관을 사용하여, 인증을 위해 클라이언트에 의해 사용되는 티켓을 제공하는 단계
    중 적어도 하나를 포함하는 방법.
  25. 제16항에 있어서,
    상기 서버는, 피어-투-피어 통신이 확립될 수 있게 하는 것 이외의 기능을 클라이언트에게 제공하는 방법.
  26. 제25항에 있어서,
    상기 서버는 게임 서버를 포함하는 방법.
  27. 제26항에 있어서,
    상기 서버를 사용하여, 상기 제2 클라이언트와 연관된 식별자를 상기 제1 클라이언트에게 제공하는 단계는, 상기 게임 서버에 의해 제어되는 게임 환경 내에서 상기 제1 클라이언트와 인터랙션하는 클라이언트들에 대한 식별자를 상기 제1 클라이언트에게 제공하여, 상기 클라이언트들과 상기 제1 클라이언트 간의 피어-투-피어 통신을 가능하게 하는 단계를 포함하는 방법.
  28. 제16항에 있어서,
    상기 정보는 상기 제2 클라이언트의 외부 IP 어드레스, 상기 제2 클라이언트에 연관된 임의의 내부 IP 어드레스, 및 상기 제2 클라이언트와의 피어-투-피어 통신에 요구되는 임의의 포트 어드레스를 포함하는 방법.
  29. 제28항에 있어서,
    상기 서버를 사용하여, 상기 서버에 액세스하는 각각의 클라이언트를 인증 및 허가하는 단계는, 각각의 클라이언트에게 고유한 사용자 키를 할당하는 단계를 포함하고,
    상기 정보는 상기 제2 클라이언트의 사용자 키를 포함하여, 피어-투-피어 통신을 열도록 하는 요청이 신뢰되는 소스로부터 온 것임을 상기 제2 클라이언트에게 확신시키는 방법.
  30. 제28항에 있어서,
    상기 제2 클라이언트에 대한 정보를 수신한 후, 상기 제1 클라이언트가 상기 제2 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우,
    (a) 상기 제2 클라이언트와의 피어-투-피어 통신을 확립하기 위한 상기 제1 클라이언트의 시도가 실패했음을 상기 서버에 통지하는 단계,
    (b) 상기 서버를 사용하여, 상기 제2 클라이언트가 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 수 있게 하는 데에 요구되는 상기 제1 클라이언트에 관한 정보를 상기 제2 클라이언트에게 제공하는 단계, 및
    (c) 상기 제2 클라이언트에게 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 것을 요청하는 단계
    를 더 포함하는 방법.
  31. 제30항에 있어서,
    상기 제1 클라이언트에 관한 정보를 수신한 후, 상기 제2 클라이언트가 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우, 상기 제1 클라이언트와 상기 제2 클라이언트 간의 각각의 통신을 상기 서버를 통해 라우팅하는 단계를 더 포함하는 방법.
  32. 제16항의 단계들을 수행하기 위한 기계 명령들이 저장되어 있는 메모리 매체.
  33. 대규모 멀티플레이어(massively multiplayer) 게임을 호스트하는 게임 서버의 작업 부하를 실질적으로 감소시키기 위하여, 상기 대규모 멀티플레이어 게임 내의 플레이어들이 피어-투-피어 관계로 서로 통신할 수 있게 하는 방법에 있어서,
    (a) 상기 대규모 멀티플레이어 게임의 플레이에 플레이어로서 참여하기를 원하는 사람 각각에게, 우선 상기 게임 서버를 운영하는 게임 서비스에 등록할 것을 요구하는 단계,
    (b) 플레이어가 상기 게임 서비스에 등록했는지를 결정함으로써 상기 게임 서버에 액세스하려고 시도하는 각각의 플레이어를 인증하여, 등록한 사람만이 상기 게임 서버에 플레이어로서 액세스할 수 있게 하는 단계,
    (c) 제1 플레이어에게, 상기 게임 서버에 의해 호스트되는 대규모 멀티플레이어 게임 내에서 상기 제1 플레이어와 인터랙션할 수 있는 적어도 한명의 다른 플레이어를 식별하는 리스트를 제공하는 단계,
    (d) 상기 제1 플레이어가 상기 리스트로부터 제2 플레이어를 선택할 수 있게 하는 단계 - 선택된 상기 제2 플레이어는 상기 게임 서버에게 알려짐 -, 및
    (e) 상기 제2 플레이어에 관한 정보를 상기 게임 서버로부터 상기 제1 플레이어로 전송하는 단계 - 상기 정보는 상기 제1 플레이어와 상기 제2 플레이어 간에서 피어-투-피어 통신이 확립될 수 있게 하는 데에 요구됨 -
    를 포함하는 방법.
  34. 제33항에 있어서,
    상기 게임 서버에 액세스하려고 시도하는 각각의 플레이어를 인증하는 단계는, 각각의 플레이어에게 고유한 사용자 키를 할당하는 단계를 포함하고,
    상기 제2 플레이어에 관한 정보를 상기 서버로부터 상기 제1 플레이어로 전송하는 단계는, 상기 제2 플레이어의 사용자 키를 전송하여, 상기 피어-투-피어 통신을 열게 하는 요청이 상기 게임 서버에 의해 호스트되는 대규모 멀티플레이어 게임에 참여하고 있는 신뢰되는 플레이어로부터 온 것임을, 상기 제2 플레이어에게 확신시키는 단계를 포함하는 방법.
  35. 제33항에 있어서,
    상기 제2 플레이어에 대한 정보를 수신한 후, 상기 제1 플레이어가 상기 제2 플레이어와의 피어-투-피어 통신을 확립할 수 없는 경우,
    (a) 피어-투-피어 통신을 확립하기 위한 상기 제1 플레이어의 시도가 실패했음을 상기 게임 서버에 통지하는 단계,
    (b) 상기 제1 플레이어에 관한 정보를 상기 서버로부터 상기 제2 플레이어로 전송하는 단계 - 상기 정보는 상기 제1 플레이어와 상기 제2 플레이어 간의 피어-투-피어 통신이을 확립될 수 있게 하는 데에 요구됨 -, 및
    (c) 상기 제2 플레이어에게 상기 제1 플레이어와의 피어-투-피어 통신을 확립할 것을 요청하는 단계
    를 더 포함하는 방법.
  36. 제35항에 있어서,
    상기 제1 플레이어에 관한 정보를 수신한 후, 상기 제2 플레이어가 상기 제1 플레이어와의 피어-투-피어 통신을 확립할 수 없는 경우, 상기 제1 플레이어와 상기 제2 플레이어 간의 각각의 통신을 상기 게임 서버를 통해 라우팅하는 단계를 더 포함하는 방법.
  37. 제33항의 단계들을 수행하기 위한 기계 명령들이 저장되어 있는 메모리 매체.
  38. 게임 플레이 동안, 허가된 플레이어들만이 다른 허가된 플레이어와의 피어-투-피어 통신을 확립하도록 허용되는 게임 환경을 제공하여, 진행중인 플레이어들 간의 통신을 관리하기 위해 네트워크화된 게임 시스템으로부터의 자원을 요구하지 않으면서 게임 플레이를 향상시키는 네트워크화된 게임 시스템에 있어서,
    (a) 프로세서, 및
    (b) 상기 프로세서와 통신하며, 상기 프로세서가 복수의 기능을 수행하게 하는 기계 명령들을 저장하는 메모리
    를 포함하고,
    상기 복수의 기능은,
    (ⅰ) 상기 게임 시스템에 의해 호스트되는 게임 환경에 액세스하려고 시도하는 각각의 플레이어를 스크리닝하여, 허가된 플레이어들만이 상기 게임 시스템에 의해 호스트되는 게임 환경에 액세스할 수 있는 기능,
    (ⅱ) 제1 허가된 플레이어에게, 상기 게임 환경에 참여하고 있는 적어도 한명의 다른 허가된 플레이어를 포함하는 리스트를 제공하는 기능,
    (ⅲ) 상기 제1 허가된 플레이어가 상기 리스트로부터 제2 허가된 플레이어를 식별할 수 있게 하는 기능, 및
    (ⅳ) 상기 제2 허가된 플레이어에 관한 정보를 상기 게임 시스템으로부터 상기 제1 허가된 플레이어로 전송하는 기능 - 상기 정보는 상기 제1 허가된 플레이어와 상기 제2 허가된 플레이어 간에 피어-투-피어 통신이 확립될 수 있게 하는 데에 요구되는 임의의 어드레스를 포함함 -
    를 포함하는 네트워크화된 게임 시스템.
  39. 제38항에 있어서,
    상기 정보는 상기 게임 시스템에 의해 상기 제2 허가된 플레이어에 할당된 사용자 키를 포함하여, 상기 피어-투-피어 통신을 열게 하는 요청이 신뢰되는 플레이어로부터 온 것임을 상기 제2 허가된 플레이어에게 확신시키는 네트워크화된 게임 시스템.
  40. 제38항에 있어서,
    상기 기계 명령들은, 상기 프로세서가,
    (a) 상기 제2 허가된 플레이어와의 피어-투-피어 통신을 확립하기 위한 상기 제1 허가된 플레이어의 시도가 실패했음을 통지받은 경우, 상기 제2 허가된 플레이어에게 상기 제1 허가된 플레이어에 관한 정보를 제공하는 기능 - 상기 정보는 상기 제1 허가된 플레이어와 상기 제2 허가된 플레이어 간에 피어-투-피어 통신이 확립될 수 있게 하는 데에 요구되는 임의의 어드레스를 포함함 -, 및
    (b) 상기 제2 허가된 플레이어에게 상기 제1 허가된 플레이어와의 피어-투-피어 통신을 확립할 것을 요청하는 기능
    을 더 수행하게 하는 네트워크화된 게임 시스템.
  41. 서버를 사용하여, 클라이언트들이 서로 피어-투-피어 통신을 확립할 수 있게 하는 신뢰되는 세션 환경을 확립하는 방법에 있어서,
    (a) 서버를 사용하여, 상기 클라이언트들이 피어-투-피어 통신을 확립하기 전에 처음에 액세스하는 세션을 호스트하는 단계,
    (b) 상기 서버에 의해 호스트되는 상기 세션에 액세스하려고 시도하는 각 클라이언트의 자격을 검사하여, 상기 서버에 의해 승인받은 자격을 갖는 클라이언트들만이 상기 세션에 대한 액세스를 허가받도록 하는 단계,
    (c) 상기 세션에 대한 액세스를 허가받은 제1 클라이언트에게, 상기 서버에 의해 승인받은 자격을 갖는 하나 이상의 다른 클라이언트를 식별하는 리스트를 제공하는 단계,
    (d) 상기 제1 클라이언트가 상기 리스트로부터 제2 클라이언트를 선택할 수 있게 하는 단계 - 상기 제1 클라이언트에 의해 선택된 제2 클라이언트는 상기 서버에 알려짐 -, 및
    (e) 상기 제2 클라이언트에 관한 접속 정보를 상기 서버로부터 상기 제1 클라이언트로 전송하는 단계 - 상기 접속 정보는 상기 제1 클라이언트와 상기 제2 클라이언트 간에서 피어-투-피어 통신이 확립될 수 있게 함 -
    를 포함하는 방법.
  42. 제41항에 있어서,
    상기 제2 클라이언트에 관한 정보를 수신한 후에, 상기 제1 클라이언트가 상기 제2 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우,
    (a) 피어-투-피어 통신을 확립하기 위한 상기 제1 클라이언트의 시도가 실패했음을 상기 서버에 통지하는 단계,
    (b) 상기 제1 클라이언트에 관한 정보를 상기 서버로부터 상기 제2 클라이언트로 전송하는 단계 - 상기 정보는 상기 제1 클라이언트와 상기 제2 클라이언트 간에 피어-투-피어 통신이 확립될 수 있게 하는 데에 요구됨 -, 및
    (c) 상기 제2 클라이언트에게 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 것을 요청하는 단계
    를 더 포함하는 방법.
  43. 제41항에 있어서,
    상기 제1 클라이언트에 관한 정보를 수신한 후, 상기 제2 클라이언트가 상기 제1 클라이언트와의 피어-투-피어 통신을 확립할 수 없는 경우, 상기 제1 클라이언트와 상기 제2 클라이언트 간의 모든 통신을 상기 서버를 통해 라우팅하는 단계를 더 포함하는 방법.
KR1020040074456A 2003-09-25 2004-09-17 피어-투-피어 통신의 서버 제어 KR101122939B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/671,397 2003-09-25
US10/671,397 US7464272B2 (en) 2003-09-25 2003-09-25 Server control of peer to peer communications

Publications (2)

Publication Number Publication Date
KR20050030548A true KR20050030548A (ko) 2005-03-30
KR101122939B1 KR101122939B1 (ko) 2012-03-20

Family

ID=34194846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040074456A KR101122939B1 (ko) 2003-09-25 2004-09-17 피어-투-피어 통신의 서버 제어

Country Status (4)

Country Link
US (1) US7464272B2 (ko)
EP (1) EP1519531A3 (ko)
JP (1) JP2005100419A (ko)
KR (1) KR101122939B1 (ko)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100793420B1 (ko) * 2006-07-12 2008-01-11 임승빈 네트워크상에서 데이터 전송 서비스를 제공하기 위한 서버및 클라이언트의 연결 시스템 및 이를 이용한 서버와클라이언트 또는 클라이언트와 클라이언트간의 연결 방법
WO2009070718A1 (en) * 2007-11-28 2009-06-04 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US7623476B2 (en) 2004-06-29 2009-11-24 Damaka, Inc. System and method for conferencing in a peer-to-peer hybrid communications network
US7623516B2 (en) 2004-06-29 2009-11-24 Damaka, Inc. System and method for deterministic routing in a peer-to-peer hybrid communications network
US8009586B2 (en) 2004-06-29 2011-08-30 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
US8050272B2 (en) 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US8139578B2 (en) 2004-06-29 2012-03-20 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
US8694587B2 (en) 2011-05-17 2014-04-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US8862164B2 (en) 2007-09-28 2014-10-14 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8948132B2 (en) 2005-03-15 2015-02-03 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US9015258B2 (en) 2010-04-29 2015-04-21 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US9031005B2 (en) 2010-10-11 2015-05-12 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
KR101521978B1 (ko) * 2006-08-15 2015-05-20 소니 주식회사 통신시스템, 무선통신장치 및 그 제어방법
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US9128927B2 (en) 2010-09-24 2015-09-08 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US9356997B2 (en) 2011-04-04 2016-05-31 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
US9432412B2 (en) 2004-06-29 2016-08-30 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US9491233B2 (en) 2013-07-16 2016-11-08 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9712507B2 (en) 2010-06-23 2017-07-18 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US10050872B2 (en) 2010-02-15 2018-08-14 Damaka, Inc. System and method for strategic routing in a peer-to-peer environment
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US10355882B2 (en) 2014-08-05 2019-07-16 Damaka, Inc. System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems
US11770584B1 (en) 2021-05-23 2023-09-26 Damaka, Inc. System and method for optimizing video communications based on device capabilities
US11902343B1 (en) 2021-04-19 2024-02-13 Damaka, Inc. System and method for highly scalable browser-based audio/video conferencing

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949606B1 (en) * 1999-12-03 2011-05-24 William Sweet Intellectual property brokerage system and method
US7717791B2 (en) * 2002-06-05 2010-05-18 Igt Method for fault and/or disaster tolerant cashless gaming
US8639819B2 (en) 2004-02-05 2014-01-28 Nokia Corporation Ad-hoc connection between electronic devices
US7534169B2 (en) 2005-07-08 2009-05-19 Cfph, Llc System and method for wireless gaming system with user profiles
US8616967B2 (en) 2004-02-25 2013-12-31 Cfph, Llc System and method for convenience gaming
US20070060358A1 (en) 2005-08-10 2007-03-15 Amaitis Lee M System and method for wireless gaming with location determination
US8092303B2 (en) 2004-02-25 2012-01-10 Cfph, Llc System and method for convenience gaming
US7637810B2 (en) * 2005-08-09 2009-12-29 Cfph, Llc System and method for wireless gaming system with alerts
US7672255B2 (en) * 2004-04-05 2010-03-02 Oomble, Inc. Mobile instant messaging conferencing method and system
GB2446529B (en) * 2004-06-25 2008-11-05 Sony Comp Entertainment Europe Game processing
US20070078720A1 (en) * 2004-06-29 2007-04-05 Damaka, Inc. System and method for advertising in a peer-to-peer hybrid communications network
US7656870B2 (en) * 2004-06-29 2010-02-02 Damaka, Inc. System and method for peer-to-peer hybrid communications
US7778187B2 (en) * 2004-06-29 2010-08-17 Damaka, Inc. System and method for dynamic stability in a peer-to-peer hybrid communications network
US20060206310A1 (en) * 2004-06-29 2006-09-14 Damaka, Inc. System and method for natural language processing in a peer-to-peer hybrid communications network
US20060095365A1 (en) * 2004-06-29 2006-05-04 Damaka, Inc. System and method for conducting an auction in a peer-to peer network
US7491123B2 (en) * 2004-07-29 2009-02-17 Nintendo Co., Ltd. Video game voice chat with amplitude-based virtual ranging
US7785197B2 (en) * 2004-07-29 2010-08-31 Nintendo Co., Ltd. Voice-to-text chat conversion for remote video game play
US20060040742A1 (en) * 2004-08-20 2006-02-23 Wright Steven A Methods, systems, and computer program products for coordinating peer-to-peer communication sessions across a communication network by uploading a coordination module to a hosting server
US7596690B2 (en) * 2004-09-09 2009-09-29 International Business Machines Corporation Peer-to-peer communications
US7695369B2 (en) * 2004-11-22 2010-04-13 Planetwide Games, Inc. Systems and methods for accessing online content during online gaming
US7558862B1 (en) * 2004-12-09 2009-07-07 LogMeln, Inc. Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer
US7577759B2 (en) * 2005-03-01 2009-08-18 International Business Machines Corporation Method and apparatus for in-kernel application-specific processing of content streams
EP1880304A4 (en) * 2005-04-22 2011-12-28 Shrihari B Pandit METHOD AND SYSTEMS FOR TRANSLATING LANGUAGE, AUDIO, VIDEO, TEXT AND / OR MULTIMEDIA DATA
US7980954B2 (en) * 2005-05-19 2011-07-19 Wms Gaming Inc. Wagering game system with shared outcome determined by a gaming machine
US10510214B2 (en) 2005-07-08 2019-12-17 Cfph, Llc System and method for peer-to-peer wireless gaming
US8070604B2 (en) 2005-08-09 2011-12-06 Cfph, Llc System and method for providing wireless gaming as a service application
US7640297B2 (en) * 2005-07-14 2009-12-29 Gemini Mobile Technologies, Inc. Protocol optimization for wireless networks
US20070025342A1 (en) * 2005-07-14 2007-02-01 Gemini Mobile Technology, Inc. Protocol optimization for wireless networks
US8509853B1 (en) * 2006-08-14 2013-08-13 At&T Mobility Ii Llc Dynamic scrolling-ticker for initiating telecommunications services
US20070072678A1 (en) * 2005-09-28 2007-03-29 Dagres Todd A Method and system of online gaming organization
US20070076750A1 (en) * 2005-09-30 2007-04-05 Microsoft Corporation Device driver interface architecture
US9467322B2 (en) * 2005-12-27 2016-10-11 Rovi Solutions Corporation Methods and apparatus for integrating media across a wide area network
US8296437B2 (en) * 2005-12-29 2012-10-23 Logmein, Inc. Server-mediated setup and maintenance of peer-to-peer client computer communications
US9604146B2 (en) * 2006-01-06 2017-03-28 International Business Machines Corporation Apparatus and method to play a multiplayer, online game
US20070173325A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Join in-progress on-line game session
AU2006336486A1 (en) * 2006-01-24 2007-08-02 Acei Ab Game session management
US8219678B2 (en) * 2006-02-13 2012-07-10 Google Inc. Application verification for hosted services
US7549576B2 (en) * 2006-05-05 2009-06-23 Cfph, L.L.C. Systems and methods for providing access to wireless gaming devices
US7644861B2 (en) 2006-04-18 2010-01-12 Bgc Partners, Inc. Systems and methods for providing access to wireless gaming devices
JP5275225B2 (ja) * 2006-04-27 2013-08-28 ビージーシー パートナーズ,インコーポレイテッド ゲームまたはその他の環境内で匿名性を維持するためのシステムおよび方法
US8939359B2 (en) 2006-05-05 2015-01-27 Cfph, Llc Game access device with time varying signal
CA2659987A1 (en) 2006-07-20 2008-01-24 Wms Gaming Inc. Wagering game with special-event eligibility feature based on passive game play
KR100821722B1 (ko) * 2006-08-24 2008-04-15 엔에이치엔(주) 다중 접속 온라인 게임에서 p2p 메시지 전송 시스템 방법
EP2080110A4 (en) * 2006-10-05 2014-01-15 Nat Ict Australia Ltd MULTI-USER AND DECENTRALIZED ONLINE ENVIRONMENT
CN101529908A (zh) * 2006-10-25 2009-09-09 夏普株式会社 内容分发服务器、内容提供服务器、内容分发系统、内容分发方法、内容提供方法、终端装置、控制程序和计算机可读取的记录介质
US9306952B2 (en) 2006-10-26 2016-04-05 Cfph, Llc System and method for wireless gaming with location determination
US8510567B2 (en) 2006-11-14 2013-08-13 Cfph, Llc Conditional biometric access in a gaming environment
US8645709B2 (en) 2006-11-14 2014-02-04 Cfph, Llc Biometric access data encryption
US9411944B2 (en) 2006-11-15 2016-08-09 Cfph, Llc Biometric access sensitivity
US8319601B2 (en) 2007-03-14 2012-11-27 Cfph, Llc Game account access device
US8581721B2 (en) 2007-03-08 2013-11-12 Cfph, Llc Game access device with privileges
US9183693B2 (en) 2007-03-08 2015-11-10 Cfph, Llc Game access device
US20080227548A1 (en) * 2007-03-13 2008-09-18 Microsoft Corporation Secured cross platform networked multiplayer communication and game play
US20080261698A1 (en) * 2007-04-18 2008-10-23 Technology Assurance Laboratory, Inc. Automated method and system for a gaming opportunity
GB2450473A (en) 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US20100100723A1 (en) * 2007-07-13 2010-04-22 Tencent Technology (Shenzhen) Company Ltd. Service application platform and method for accessing service application platform
US7938727B1 (en) * 2007-07-19 2011-05-10 Tim Konkle System and method for providing interactive content for multiple networked users in a shared venue
KR100906812B1 (ko) * 2007-07-23 2009-07-10 주식회사 마이엔진 클라이언트를 통한 릴레이션 서비스 제공방법 및 그 시스템
US8167712B2 (en) * 2007-08-08 2012-05-01 Sony Computer Entertainment America Inc. Method and apparatus for player replacement in an on-line game
US8360862B2 (en) * 2007-09-24 2013-01-29 Wms Gaming, Inc Integrating social contact identifiers into wagering games
JP2009119150A (ja) * 2007-11-16 2009-06-04 Square Enix Co Ltd ネットワークゲームシステム、及びプログラム
WO2009070713A1 (en) 2007-11-29 2009-06-04 Bigfoot Networks, Inc. Remote message routing device and methods thereof
CN101217534A (zh) * 2007-12-27 2008-07-09 腾讯科技(深圳)有限公司 网络游戏的通信方法、系统及实现网络游戏的方法、系统
WO2009086489A1 (en) * 2007-12-27 2009-07-09 Wms Gaming, Inc. Group games and rewards in wagering systems
US9067150B2 (en) * 2008-01-19 2015-06-30 Lamplight Games System and method for providing interactive content for multiple networked users in a shared venue using short messaging service communication
US20090192848A1 (en) * 2008-01-30 2009-07-30 Gerald Rea Method and apparatus for workforce assessment
US9277004B2 (en) * 2008-02-19 2016-03-01 Microsoft Technology Licensing, Llc Prediction of network path quality among peer networking devices
US20090281833A1 (en) * 2008-05-09 2009-11-12 Tele Video Md, Inc. System and method for secure multi-party medical conferencing
US8196186B2 (en) * 2008-05-20 2012-06-05 Microsoft Corporation Security architecture for peer-to-peer storage system
US9077699B1 (en) 2008-09-11 2015-07-07 Bank Of America Corporation Text chat
US20100088520A1 (en) * 2008-10-02 2010-04-08 Microsoft Corporation Protocol for determining availability of peers in a peer-to-peer storage system
US8271509B2 (en) * 2008-11-20 2012-09-18 Bank Of America Corporation Search and chat integration system
US7962627B2 (en) * 2008-12-04 2011-06-14 Microsoft Corporation Peer-to-peer network address translator (NAT) traversal techniques
US8156323B1 (en) * 2008-12-29 2012-04-10 Bank Of America Corporation Secured online financial transaction voice chat
US8156324B1 (en) * 2008-12-29 2012-04-10 Bank Of America Corporation Secured online financial transaction text chat
US8195809B2 (en) * 2009-03-02 2012-06-05 Microsoft Corporation Multigame multiplayer party session
CN101534309B (zh) * 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
WO2010138035A1 (en) * 2009-05-28 2010-12-02 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for implementing policy rules in peer-to-peer communication
US9003033B2 (en) * 2009-06-02 2015-04-07 Centurylink Intellectual Property Llc IP session-based regulation and billing
EP2482946A1 (en) 2009-09-30 2012-08-08 Zynga Inc. Apparatuses, methods and systems for an engagement-tracking game modifier
FR2956501B1 (fr) * 2010-02-17 2012-03-09 Evidian Procede de verrouillage/deverrouillage a distance d'une machine
KR20130018708A (ko) * 2010-03-05 2013-02-25 브래스 몽키, 인크. 웹 브라우저에서의 양방향 통신 및 컨텐츠의 제어를 하기 위한 시스템 및 방법
US8689307B2 (en) * 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
US8812657B2 (en) 2010-04-15 2014-08-19 Qualcomm Incorporated Network-assisted peer discovery
US8446900B2 (en) 2010-06-18 2013-05-21 Damaka, Inc. System and method for transferring a call between endpoints in a hybrid peer-to-peer network
US8956231B2 (en) 2010-08-13 2015-02-17 Cfph, Llc Multi-process communication regarding gaming information
US8974302B2 (en) 2010-08-13 2015-03-10 Cfph, Llc Multi-process communication regarding gaming information
US9514437B2 (en) 2010-08-23 2016-12-06 Cubic Corporation Apparatus and methods for creation, collection, and dissemination of instructional content modules using mobile devices
CN102448023B (zh) * 2010-09-30 2014-10-08 中国移动通信集团公司 实现群组聊天的方法和装置
US20130198273A1 (en) 2010-10-16 2013-08-01 James Charles Vago Methods, devices, and systems for video gaming
US9961550B2 (en) 2010-11-04 2018-05-01 Itron Networked Solutions, Inc. Physically secured authorization for utility applications
JP5023210B2 (ja) * 2010-12-27 2012-09-12 株式会社東芝 電話システム、呼制御サーバ装置及び通信接続方法
US8838722B2 (en) 2011-02-16 2014-09-16 Masque Publishing, Inc. Communications adaptable to mobile devices
US9270784B2 (en) 2011-02-16 2016-02-23 Masque Publishing, Inc. Peer-to-peer communications
US9021607B2 (en) 2011-02-25 2015-04-28 Avaya Inc. Advanced user interface and control paradigm including digital rights management features for multiple service operator extended functionality offers
US9183514B2 (en) * 2011-02-25 2015-11-10 Avaya Inc. Advanced user interface and control paradigm including contextual collaboration for multiple service operator extended functionality offers
US8819729B2 (en) 2011-02-25 2014-08-26 Avaya Inc. Advanced user interface and control paradigm for multiple service operator extended functionality offers
AU2012202623B2 (en) 2011-05-06 2014-05-15 Wms Gaming, Inc. Game of chance utilizing social network contact attributes
US10681021B2 (en) * 2011-06-01 2020-06-09 Qualcomm Incorporated Selective admission into a network sharing session
JP5853424B2 (ja) * 2011-06-03 2016-02-09 ソニー株式会社 無線通信装置、情報処理装置、通信システムおよび通信方法
US8478890B2 (en) 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
TWI627987B (zh) 2012-02-28 2018-07-01 Cfph有限責任公司 提供遊戲服務的方法及裝置
US8577355B1 (en) 2012-05-21 2013-11-05 At&T Intellectual Property I, L.P. Intelligent long term evolution peer-to-peer management
JP6162929B2 (ja) * 2012-06-01 2017-07-12 任天堂株式会社 投稿情報共有システム
US9489804B2 (en) 2012-09-28 2016-11-08 Bally Gaming, Inc. Community gaming system with varying eligibility criteria
WO2014123224A1 (ja) * 2013-02-08 2014-08-14 株式会社ニコン 電子制御装置、制御方法、及び制御プログラム
GB2513845B (en) * 2013-05-02 2015-06-10 Sony Comp Entertainment Europe Identification apparatus and method
CN104185208B (zh) * 2013-05-20 2017-06-20 华为终端有限公司 接近业务授权方法及装置、系统
GB2520532A (en) * 2013-11-22 2015-05-27 Zzish Ltd System for authenticating multiple users
JP6334940B2 (ja) * 2014-02-12 2018-05-30 キヤノン株式会社 通信装置、通信装置の制御方法およびプログラム
US9575741B2 (en) * 2014-03-20 2017-02-21 Google Technology Holdings LLC Methods and devices for wireless device-to-device software upgrades
US10732804B2 (en) * 2015-05-27 2020-08-04 Rockwell Automation Technologies, Inc. Device-to-device communication in an industrial automation environment
US9913079B2 (en) 2015-06-05 2018-03-06 Apple Inc. Cloud-based proximity pairing and switching for peer-to-peer devices
US11197331B2 (en) 2016-06-10 2021-12-07 Apple Inc. Zero-round-trip-time connectivity over the wider area network
US10542001B1 (en) * 2016-12-19 2020-01-21 Amazon Technologies, Inc. Content item instance access control
US11213754B2 (en) * 2017-08-10 2022-01-04 Global Tel*Link Corporation Video game center for a controlled environment facility
US10953332B2 (en) * 2018-12-20 2021-03-23 Roblox Corporation Online gaming platform voice communication system
US20200228911A1 (en) * 2019-01-16 2020-07-16 Roblox Corporation Audio spatialization
CN109731345B (zh) * 2019-01-31 2022-03-04 网易(杭州)网络有限公司 语音处理方法及装置、电子设备、存储介质
JP7465960B2 (ja) * 2020-03-13 2024-04-11 グーグル エルエルシー ピアツーピアマルチプレイヤークラウドゲーミングアーキテクチャ
WO2023282957A1 (en) * 2021-07-08 2023-01-12 DraftKings, Inc. Systems and methods for controlling and modifying access permissions for private data objects
US20230141686A1 (en) * 2021-11-08 2023-05-11 Rockwell Automation Technologies, Inc. Symbolic access of industrial device systems and methods based on an off-premise gateway device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
US5779549A (en) * 1996-04-22 1998-07-14 Walker Assest Management Limited Parnership Database driven online distributed tournament system
US7192352B2 (en) * 1996-04-22 2007-03-20 Walker Digital, Llc System and method for facilitating play of a video game via a web site
JPH10164094A (ja) * 1996-10-02 1998-06-19 Nippon Telegr & Teleph Corp <Ntt> Isdn回線を用いたコンピュータ間の通信路確立方法及びシステム及びisdn回線を用いたコンピュータ間の通信路確立プログラムを格納した記憶媒体
US6339784B1 (en) * 1997-05-20 2002-01-15 America Online, Inc. Self-policing, rate limiting online forums
JP4097240B2 (ja) * 1998-10-26 2008-06-11 株式会社バンダイナムコゲームス ゲームシステム及び情報記憶媒体
US6845389B1 (en) * 2000-05-12 2005-01-18 Nortel Networks Limited System and method for broadband multi-user communication sessions
JP2002041430A (ja) * 2000-07-26 2002-02-08 Sony Communication Network Corp ネットワークサーバ、通信サービス提供方法、及び記憶媒体
KR20020009650A (ko) * 2000-07-26 2002-02-02 김인광 원격제어 방법
KR20000072726A (ko) * 2000-09-22 2000-12-05 박정석 인증서버를 통한 인터넷상에서의 1대1방식의 직접데이터전송방법
WO2003014955A1 (en) * 2001-08-09 2003-02-20 Gigamedia Access Corporation Hybrid system architecture for secure peer-to-peer-communication
JP2003203023A (ja) 2002-01-09 2003-07-18 Sony Corp 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム
JP2003209547A (ja) 2002-01-15 2003-07-25 Nippon Telegr & Teleph Corp <Ntt> 端末間通信の課金方法、及び端末、並びにサーバ

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497181B2 (en) 2004-06-29 2016-11-15 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US9432412B2 (en) 2004-06-29 2016-08-30 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US7623476B2 (en) 2004-06-29 2009-11-24 Damaka, Inc. System and method for conferencing in a peer-to-peer hybrid communications network
US7623516B2 (en) 2004-06-29 2009-11-24 Damaka, Inc. System and method for deterministic routing in a peer-to-peer hybrid communications network
US8009586B2 (en) 2004-06-29 2011-08-30 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
US8050272B2 (en) 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US8139578B2 (en) 2004-06-29 2012-03-20 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
US10673568B2 (en) 2004-06-29 2020-06-02 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
US9172703B2 (en) 2004-06-29 2015-10-27 Damaka, Inc. System and method for peer-to-peer hybrid communications
US8867549B2 (en) 2004-06-29 2014-10-21 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US9172702B2 (en) 2004-06-29 2015-10-27 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
US9106509B2 (en) 2004-06-29 2015-08-11 Damaka, Inc. System and method for data transfer in a peer-to-peer hybrid communication network
US8948132B2 (en) 2005-03-15 2015-02-03 Damaka, Inc. Device and method for maintaining a communication session during a network transition
KR100793420B1 (ko) * 2006-07-12 2008-01-11 임승빈 네트워크상에서 데이터 전송 서비스를 제공하기 위한 서버및 클라이언트의 연결 시스템 및 이를 이용한 서버와클라이언트 또는 클라이언트와 클라이언트간의 연결 방법
KR101521978B1 (ko) * 2006-08-15 2015-05-20 소니 주식회사 통신시스템, 무선통신장치 및 그 제어방법
US9648051B2 (en) 2007-09-28 2017-05-09 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US8862164B2 (en) 2007-09-28 2014-10-14 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US9654568B2 (en) 2007-11-28 2017-05-16 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
WO2009070718A1 (en) * 2007-11-28 2009-06-04 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US9264458B2 (en) 2007-11-28 2016-02-16 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US10050872B2 (en) 2010-02-15 2018-08-14 Damaka, Inc. System and method for strategic routing in a peer-to-peer environment
US10027745B2 (en) 2010-02-15 2018-07-17 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US9866629B2 (en) 2010-02-15 2018-01-09 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US10033806B2 (en) 2010-03-29 2018-07-24 Damaka, Inc. System and method for session sweeping between devices
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US9781173B2 (en) 2010-04-16 2017-10-03 Damaka, Inc. System and method for providing enterprise voice call continuity
US9356972B1 (en) 2010-04-16 2016-05-31 Damaka, Inc. System and method for providing enterprise voice call continuity
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US9015258B2 (en) 2010-04-29 2015-04-21 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US9781258B2 (en) 2010-04-29 2017-10-03 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US10148628B2 (en) 2010-06-23 2018-12-04 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US9712507B2 (en) 2010-06-23 2017-07-18 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US10506036B2 (en) 2010-08-25 2019-12-10 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US9128927B2 (en) 2010-09-24 2015-09-08 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US9497127B2 (en) 2010-10-11 2016-11-15 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US9031005B2 (en) 2010-10-11 2015-05-12 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US10097638B2 (en) 2011-04-04 2018-10-09 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9742846B2 (en) 2011-04-04 2017-08-22 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US10771556B2 (en) 2011-04-04 2020-09-08 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US9356997B2 (en) 2011-04-04 2016-05-31 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US8694587B2 (en) 2011-05-17 2014-04-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US9210268B2 (en) 2011-05-17 2015-12-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US9578092B1 (en) 2013-07-16 2017-02-21 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9491233B2 (en) 2013-07-16 2016-11-08 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US10387220B2 (en) 2013-07-16 2019-08-20 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
US9825876B2 (en) 2013-10-18 2017-11-21 Damaka, Inc. System and method for virtual parallel resource management
US10355882B2 (en) 2014-08-05 2019-07-16 Damaka, Inc. System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US11902343B1 (en) 2021-04-19 2024-02-13 Damaka, Inc. System and method for highly scalable browser-based audio/video conferencing
US11770584B1 (en) 2021-05-23 2023-09-26 Damaka, Inc. System and method for optimizing video communications based on device capabilities

Also Published As

Publication number Publication date
US20050071481A1 (en) 2005-03-31
US7464272B2 (en) 2008-12-09
EP1519531A2 (en) 2005-03-30
EP1519531A3 (en) 2006-05-24
JP2005100419A (ja) 2005-04-14
KR101122939B1 (ko) 2012-03-20

Similar Documents

Publication Publication Date Title
KR101122939B1 (ko) 피어-투-피어 통신의 서버 제어
JP4685397B2 (ja) 現在の音声発話者の視覚的指示
US6905414B2 (en) Banning verbal communication to and from a selected party in a game playing system
US6935959B2 (en) Use of multiple player real-time voice communications on a gaming device
US20050245317A1 (en) Voice chat in game console application
US7647560B2 (en) User interface for multi-sensory emoticons in a communication system
US7836192B2 (en) Parental controls for a media console
EP1475938B1 (en) Web access to secure data
US7966376B2 (en) Preventing the capture of chat session text
JP2008022552A (ja) 会議方法および会議システム
US8152644B2 (en) Data stream processing
JP2010525430A (ja) 分散会議システムにおける、ルームロック機能およびロビー機能のエミュレーション
US20220394067A1 (en) System and method for facilitating interaction among users at real-time
JP2022514398A (ja) ネットワークゲームシステムにおける安全なデータチャネル
US20110173275A1 (en) Messaging Between Events
JP7232846B2 (ja) ボイスチャット装置、ボイスチャット方法及びプログラム
JP4583078B2 (ja) ネットワーク化されたセッションにおけるパーティ間の対話の制限
KR102467097B1 (ko) 음악 방송 컨텐츠를 제공하는 서버의 동작 방법
KR100587772B1 (ko) 음성 통신 방법 및 시스템
KR20100128546A (ko) 음악 제공 서비스 장치 및 방법
KR20040024409A (ko) 진동기능이 부가된 usb 사운드 장치, 그 장치를포함하는 컴퓨터 시스템 및 상기 컴퓨터 시스템을사용하여 음성 서비스를 제공하는 방법 및 그 시스템

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: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8