KR20130095855A - 분산 처리 시스템 및 방법 - Google Patents

분산 처리 시스템 및 방법 Download PDF

Info

Publication number
KR20130095855A
KR20130095855A KR1020137020389A KR20137020389A KR20130095855A KR 20130095855 A KR20130095855 A KR 20130095855A KR 1020137020389 A KR1020137020389 A KR 1020137020389A KR 20137020389 A KR20137020389 A KR 20137020389A KR 20130095855 A KR20130095855 A KR 20130095855A
Authority
KR
South Korea
Prior art keywords
server
client
program
processor module
module
Prior art date
Application number
KR1020137020389A
Other languages
English (en)
Inventor
할란 티튜스 베버리
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20130095855A publication Critical patent/KR20130095855A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • A63F13/12
    • 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
    • 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/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • 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/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/538Features 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 for performing operations on behalf of the game client, e.g. rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 네트워크 구성요소들(elements) 사이의 통신 상호작용을 관리하는 솔루션을 기술한다. 본 개시의 교시들을 통합한 시스템은 사용자 기기상에 상주하는 프로그램과 사용자로부터 멀리 떨어져 있는 컴퓨팅 장치상에 상주하는 서버 프로그램 사이의 통신들을 모니터링하는 처리기 모듈을 포함할 수 있다. 처리기 모듈은 클라이언트 프로그램과 서버 프로그램 사이에서 실제로 전송되는 통신들의 수를 효과적으로 감소시키도록 사용될 수 있다. 예를 들어, 처리기 모듈은 서버 프로그램에 대하여 의도된 특정 클라이언트 시작 통신들을 인터셉트하고, 서버 프로그램 없이 이들 통신을 처리하며, 클라이언트 프로그램에 응답을 할 수 있다.

Description

분산 처리 시스템 및 방법{DISTRIBUTED PROCESSING SYSTEM AND METHOD}
본 출원은 2005년 5월 11일 출원되고, 발명의 명칭이 "METHOD AND SYSTEM FOR DISTRIBUTED SECURE PROCESSING"인 미국 가출원 60/679,904, 및 2005년 9월 12일 출원되고 발명의 명칭이 "MEHTOD AND SYSTEM FOR PASSIVE DATA UPDATE"인 미국 가출원 60/596,257의 우선권을 주장하고, 이는 현재 양수인에게 양도되고 본 명세서에 전체적으로 참조로써 통합된다.
본 발명은 일반적으로 네트워크 통신, 특히 분산 처리 시스템 및 네트워크 구성요소들 사이의 통신 상호작용들을 관리하기 위한 방법에 관한 것이다.
네트워크는 누가 네트워크를 사용할 수 있는지, 네트워크가 전달하는 트래픽의 유형, 트래픽을 운반하는 매체, 네트워크 접속의 전형적인 성질, 및 네트워크가 사용하는 전송 기술 등의 몇몇 요소를 특징으로 한다. 예를 들어, 하나의 네트워크는 공적이고 회로 스위칭 음성 트래픽을 운반할 수 있는 반면, 다른 네트워크는 사적이고 패킷 스위칭 데이터 트래픽을 운반할 수 있다. 어떤 구성이던지, 대부분의 네트워크들은 적어도 2개의 노드들 사이의 정보 통신을 용이하게 하고, 통신 네트워크들로서 작동한다.
최근에, 통신 네트워크의 2개 이상의 구성요소들 사이의 시기적절하고 효율적인 상호작용들에 의존하는 몇몇 애플리케이션들이 개발되어 왔다. 예를 들어, 온라인 게임 분야에서, 사용자 기기들에서 실행하는 수백 또는 수천의 게임 클라이언트들은 네트워크화된 컴퓨터에서 구현되는 중앙 서버와 상호작용할 수 있다. 이러한 아키텍처로, 네트워크화된 서버 컴퓨터는 주로 클라이언트들에 콘텐트를 제공하고, 클라이언트 요청들을 수신하고, 이들 요청들을 처리하고, 이들 요청들에 응답하고, 다른 클라이언트들의 요청들에 상기 요청들을 싱크로나이징(synchronizing)하는 일을 한다. 분산된 클라이언트들과의 이들 통신 상호작용들을 개시하기 위한 게임 서버의 인식되는 및/또는 실제 능력은 네트워크 조건들, 이용할 수 있는 대역폭의 양, 네트워크 서버의 계산 능력들, 및/또는 사용자 기기들의 계산 능력들 같은 몇몇 사항들에 의해 악영향을 받을 수 있다.
게임 환경에서, 통신 상호작용들이 악영향을 받거나 과도하게 다수이면, 게임 플레이어는 게임 프리즈(game freeze), 스터터링(stuttering), 와핑(warping) 등과 같은 혼란스러운 이벤트들을 경험할 수 있다. 이와 같이, 네트워크 구성요소들 사이의 통신 상호작용들을 관리하는 분산 처리 시스템 및 방법이 필요하다.
도면의 단순화 및 간략화를 위하여 도면들에 도시된 구성요소들이 반드시 크기에 맞게 그려지지 않는 것이 인식될 것이다. 예를 들어, 몇몇 구성요소들의 크기들은 다른 구성요소들에 비해 확대되었다. 본 개시의 교시들을 통합하는 실시예들은 도시되고 본 명세서에 제시된 도면들과 관련하여 기술된다.
도 1은 본 개시의 교시들을 통합한 네트워크 장치의 특정 실시예의 블록도.
도 2는 본 개시의 교시들을 통합한 컴퓨팅 장치의 특정 실시예의 블록도.
도 3은 처리기 모듈의 특정 실시예의 블록도.
도 4는 클라이언트 프로그램과 서버 프로그램 사이에서 이동하도록 의도된 통신들을 모니터링 및 관리하기 위한 기술의 특정 실시예의 흐름도.
아래 기술된 실시예들은 부분적으로 네트워크 구성요소들 사이의 통신 상호작용 모두 또는 그 일부를 관리하는 분산 컴퓨팅 솔루션들을 기술한다. 이런 환경에서, 통신 상호작용은 정보를 송신하기 위한 의도, 정보 송신, 정보 요청, 정보 수신, 또는 정보 요청 수신 중 하나 이상일 수 있다. 이와 같이, 통신 상호작용은 단방향, 양방향, 또는 다중 방향일 수 있다. 몇몇 환경들에서, 통신 상호작용은 비교적 복잡하고 2개 이상의 네트워크 구성요소들을 포함할 수 있다. 예를 들어, 통신 상호작용은 클라이언트와 서버 사이의 "대화(conversation)" 또는 일련의 관련 통신들일 수 있으며 - 각각의 네트워크 구성요소는 다른 네트워크 구성요소에, 다른 네트워크 구성요소로부터 정보를 송신 및 수신한다. 통신 상호작용이 어떤 형태를 취하든, 포함된 네트워크 구성요소들이 임의의 특정 형태를 취할 필요가 없다는 것이 인식되어야 한다. 네트워크 구성요소는 노드, 하드웨어의 일부, 소프트웨어, 펌웨어, 미들웨어, 컴퓨팅 시스템에서 몇몇 다른 요소 및/또는 이들 몇몇 조합일 수 있다.
아래 설명은 온라인 게이밍과 연관된 특정 문제들에 보다 많은 초점을 두었지만, 본 명세서에 기술된 교시들은 보다 넓은 응용력을 가질 수 있다. 이와 같이, 래그(lag), 게임 프리즈들, 스터터링, 와핑 등과 같은 게이밍 문제들과 관련한 논의는 본 개시의 범위를 제한하기 위한 것이 아니다. 또한, 도 1과 관련하여 기술된 특정 실시예가 대량 멀티플레이어 온라인 게임(Massively Multiplayer Online Game; MMOG)을 포함하지만, 주문형 비디오, 엔터테인먼트 분산, 정보 분산 등과 같은 다른 상호작용 응용이 본 명세서에 교시된 기술들을 통합하는 방식으로 실행될 수 있다.
높은 레벨로부터, 본 개시의 교시들을 통합하는 시스템은, 사용자 기기에 상주하는(resident) 클라이언트 프로그램과 사용자로부터 떨어져 있는 컴퓨팅 장치에 상주하는 서버 프로그램 사이의 통신들을 모니터링하는 처리기 모듈을 포함할 수 있다. 서버 프로그램은 허브 및 스포크 또는 중앙집중화된 서버 구성에 전개되는 2-단계 아키텍처(two-tier architecture)의 일부일 수 있다. 서버 프로그램은 또한 덜 집중화된 모델에서 사용될 수 있다. 예를 들어, 서버 프로그램은 서버 같은 기능을 수행하는 2개 이상의 클라이언트 프로그램들 중 하나로서 구현될 수 있다.
그러나, 서버 프로그램이 구현되고, 처리기 모듈은 클라이언트 프로그램과 서버 프로그램 사이에 실제로 전송되는 통신들의 수를 효율적으로 감소시키기 위하여 사용될 수 있다. 예를 들어, 처리기 모듈은 서버 프로그램을 위하여 의도된 특정 클라이언트 시작 통신들을 인터셉트(intercept)하고, 서버 프로그램 포함 없이 이들 통신들을 처리하고, 클라이언트 프로그램에 응답할 수 있다. 몇몇 환경들에서, 처리기 모듈은 서버에 본래 클라이언트 요청을 실제로 송신하는 것을 불필요하게 할 수 있다. 구현 세부사항에 따라, 다른 메시지 -본래 클라이언트 요청이 이미 처리되었다는 것을 가리키는 것- 가 처리기 모듈로부터 서버로 송신될 수 있다. 실제로, 서버 프로그램에 부담을 지우지 않으며 네트워크의 일부를 가로지르지 않고 통신들을 처리하는 것은 지연, 래그(lag), 및 데이터 코히어런시(coherency)의 손실 같은 문제들을 감소시킬 수 있다. 상기 설명이 클라이언트 대 서버 통신을 포함하지만, 처리기 모듈은 또한 서버 대 클라이언트 통신들에도 영향을 미치도록 구성될 수 있다.
상기된 바와 같이, 이 출원은 2005년 5월 11일 출원된 미국 가출원 60/679,904, 및 2005년 9월 12일에 출원된 미국 가출원 60/596,257에 대한 우선권을 주장한다. 상기 예비 출원들은 본 명세서에 개시된 교시들의 특정 실행들을 부분적으로 기술하지만 하기 첨부된 청구항들의 범위를 제한하기 위한 것이 아니다. 양측 가출원들 모두는 참조로서 본 명세서에 통합된다.
상기된 바와 같이, 도 1은 컴퓨팅 장치(103)에서 실행하는 서버측 프로그램(102), 네트워크(104), 및 컴퓨팅 장치(107)에서 실행하는 클라이언트측 프로그램(106)을 포함하는 네트워크 장치(100)의 블록도를 도시한다. 도시된 바와 같이, 컴퓨팅 장치(107)는 처리기 모듈(108)을 또한 포함한다. 처리기 모듈(108)의 실제 위치는 다른 전개에서는 변형될 수 있다. 예를 들어, 모듈은 처리기 동글(processor dongle), 즉 "마더보드상 랜(Lan on Motherboard)" 처리기 등으로서 실행될 수 있다. 도 1의 실시예에서, 네트워크(104)는 인터넷 같은 WAN, LAN 또는 몇몇 다른 적절한 네트워크 또는 버스일 수 있다. 장치(100) 내에서, 컴퓨팅 장치들(103 및 107)은 유사하거나 서로 다를 수 있다. 예를 들어, 컴퓨팅 장치(107)는 국부적인 사용자 컴퓨터, 랩톱, 셀룰러 전화, 게이밍 콘솔, 워크스테이션, 또는 몇몇 다른 적절한 장치일 수 있고, 컴퓨팅 장치(103)는 서버 컴퓨터, 워크스테이션, 컴퓨팅 장치(107)의 피어(peer), 또는 몇몇 다른 적절한 장치일 수 있다.
동작시, 클라이언트측 프로그램(106) 및 서버측 프로그램(102)은 네트워크(104)를 통하여 서로 통신할 수 있다. 일 실시예에서, 클라이언트측 프로그램(106)(때때로 클라이언트(106)라 불림) 및 서버측 프로그램(102)(때때로 서버(102)라 불림)은 컴퓨팅 장치(107)의 사용자에게 온라인 게이밍 경험을 제공하도록 함께 작동할 수 있다. 상기 환경에서, 서버측 프로그램(102)은 실제로 하나 이상의 게임 관련 프로그램들일 수 있다. 동작시, 클라이언트측 프로그램(106)은 서버측 프로그램(102)으로부터 콘텐트를 수신할 수 있고 때때로 콘텐트를 제공하려고 하는 노력에서 서버측 프로그램(102)에 요청들을 전송할 수 있다. 도시된 바와 같이, 도 1은 클라이언트 프로그램을 실행하는 단지 하나의 장치를 포함한다. 실제로, 서버측 프로그램(102) 및 컴퓨팅 장치(103)는 많은 클라이언트들에 또는 같은 시간 근처에서 콘텐트를 제공할 수 있다.
예를 들어, 몇몇 실시예들에서, 서버측 프로그램(102)은 수백 또는 수천 사용자들로의 대량 멀티플레이어 온라인 게임(MMOG) 환경을 호스팅 및 서비스할 수 있다. 상기 환경을 형성하는 콘텐트는 예를 들어 게임 오브젝트들, 게임 플레이어들, 이미지들, 사운드들, 텍스트 등을 포함할 수 있다. 이런 콘텐트는 궁극적으로 클라이언트측 프로그램(106)에 의해 수신되어 컴퓨터 스크린, 오디오 스피커들 또는 다른 적절한 장치를 통하여 컴퓨팅 장치(107)의 사용자에게 제시된다.
게이밍 예에서, 클라이언트측 프로그램(106)은 서버측 프로그램(102)에 의해 제공된 콘텐트의 수신을 포함하는 몇몇 임무들을 수행하는 국부적인 게임 프로그램 또는 클라이언트 애플리케이션일 수 있다. 클라이언트측 프로그램(106)은 특정 콘텐트를 처리하여 서버 프로그램과 사용자의 상호작용을 용이하게 할 수 있다. 예를 들어, 사용자는 장치(107)와 연관된 몇몇 사용자 입력 장치를 통해 게임 상호작용 요청을 입력할 수 있다. 입력은 게임 오브젝트들을 선택하고, 게임 오브젝트들을 이동시키고, 다른 게임 플레이어들과 상호작용하는 등을 하도록 게임 클라이언트에게 "명할 수 있다(tell)". 컴퓨팅 장치(103)에서 실행하는 서버측 게임 프로그램에 입력을 구현하도록, 클라이언트 게임 프로그램은 게임 입력 요청을 수신하고, 이를 처리하고, 요청을 송신할 수 있다.
몇몇 상황들에서, 상기 요청은 서버 프로그램(102)으로 이동할 수 있다. 응답시, 컴퓨팅 장치(103)에서 실행하는 서버 프로그램(102)은 상기 요청을 "허용(allow)"하고 상기 허용을 바탕으로 새로운 또는 대안의 콘텐트를 제공한다. 예를 들어, 게임 상호작용 요청이 게임 오브젝트를 이동시키는 것이면, 컴퓨팅 장치(103)에서 실행하는 게임 프로그램은 오브젝트가 이동되었다는 것을 나타내는 새로운 이미지 정보를 클라이언트측 프로그램(106)에 제공할 수 있다. MMOG 환경에서, 컴퓨팅 장치(103)에서 실행하는 게임 프로그램은 네트워크(104)를 통해 다수의 위치들에의 다수의 사용자들에게 새로운 또는 대안의 콘텐트를 제공하는 임무를 수행할 수 있다.
서버와 클라이언트들 사이에 통신 상호작용들의 수가 증가하면, 하나 이상의 클라이언트측 컴퓨팅 장치들에서의 혼란스러운 이벤트들에 대한 잠재적 가능성도 또한 증가할 수 있다. 온라인 게이밍 분야에서, 혼란스러운 이벤트들(때때로 래그(lag)라 불림)은 몇몇 형태를 가지며 몇몇 식별 가능한 소스(source)들을 가질 수 있다. 래그의 통상적인 형태는 게임 프리즈, 스터터링, 와핑 및 러버 밴딩(rubber banding)을 포함한다. 이들 형태의 래그는 통상적으로 움직임 또는 액션(action)과 연관된다. 다른 형태의 래그는 고스팅(ghosting), 바니싱(vanishing), "슬래시-슬래시-퍼즈(slash-slash-pause)" 및 낮은 초당 프레임들(FPS) 생성물들을 포함한다. 래그의 식별가능한 소스들은 150ms 이상의 지연 스파이크들(latency spikes), 라우터 혼잡, 광대역 오버로딩, 서버 붐빔, 및 클라이언트 느림(slowness)을 포함한다.
실제로, 클라이언트 느림은 종종 클라이언트측 프로그램을 실행하는 컴퓨팅 장치에 기인한다. 예를 들어, 도 1에서, 컴퓨팅 장치(107)는 몇몇 컴퓨팅 병목 현상을 가질 수 있다. 장치(107)는 제한된 중앙 처리 장치(CPU), 제한된 버스, 제한된 하드 드라이브 등일 수 있다. 다른 말로, 컴퓨팅 장치(103)에 의해 호스트되고 서비스되는 MMOG에 참여하는 사용자는 컴퓨팅 장치(107)에서 몇몇 결함의 결과로서 MMOG에 참여하는 동안 혼란스러운 이벤트들을 경험할 수 있다. 또한, 장치(107)와 장치(103) 사이의 네트워크는 느리거나 모든 형태의 래그를 방지하기에 충분히 빠른 비율 또는 속도로 데이터를 제공할 수 없을 수 있다. 도 1의 도시된 실시예에서, 처리기 모듈(108)은 컴퓨팅 병목 현상의 영향을 감소시키기 위하여 컴퓨팅 장치(107)에 부가될 수 있다.
상기된 바와 같이, 2개 이상의 장치들 또는 노드들 사이에서 코히어런트 데이터 상태를 유지하는 것에 의존하는 많은 애플리케이션들 및 플랫폼들이 있다. 게이밍 환경에서, 서버는 대부분의 게임에 대한 게임 상태를 유지할 수 있고, 하나 이상의 클라이언트들은 서버의 게임 상태와 코히어런트하게 유지될 필요가 있을 수 있다. 코히어런시를 유지하는 실행은 상태 데이터 업데이트들의 주기적 및 애드 혹(ad hoc) 통신을 포함할 수 있다. 이들 업데이트 통신들이 클라이언트 프로그램(106)과 서버 프로그램(102) 사이를 통상적으로 통과할 수 있지만, 처리기 모듈(108)은 컴퓨팅 장치(107)에 부가되고 모든 또는 일부의 이들 통신들을 "살피고(see)" 및 캐싱(cache)하는 중간 노드로서 작동할 수 있다. 처리기 모듈(108)이 상태 데이터의 몇몇 또는 모두의 복사본을 유지하면, 클라이언트(106)와 서버(102) 사이의 통신 가속은 가능할 수 있다.
실제로, 처리기 모듈(108)은 서버(102) 또는 클라이언트(106)에 의해 수행될 필요가 있는 정식 작업의 양을 감소시키기 위해 특정한 정식 책임을 요청할 수 있다. 서버(102) 또는 클라이언트(106)로부터 만들어지는 몇몇 결정을 오프로딩하는 것은 클라이언트와 서버 사이의 통신들을 효과적으로 가속시킬 수 있다. 처리 모듈(108)이 몇몇 방식 및/또는 위치에서 구현될 수 있다는 것이 주의되어야 한다. 예를 들어, 처리기 모듈(108)은 소프트웨어 모듈, 하드웨어 장치, 카드, 네트워크 카드, 인라인 이더넷-접속 동글, 칩, ASIC, FPGA, 또는 임의의 다른 적절한 장치 또는 소프트웨어일 수 있다. 유사하게, 클라이언트(106) 및 서버(102)는 나열된 바와 같은 임의의 몇몇 방식으로 구현될 수 있다.
처리기 모듈(108) 내에 게임 상태의 독립된 캐시(또는 복사본)를 유지하는 처리는 몇몇 다른 방식으로 수행될 수 있다. 예를 들어, 클라이언트(106) 및 서버(102)는 게임 상태와 같은 능동적 또는 수동적 교환 상태 정보일 수 있다. 처리 모듈(108)은 그들이 클라이언트(106)와 서버(102) 사이에서 송신될 때 이들 게임 상태 통신들을 인터셉팅 또는 "관찰(watching)"할 수 있다. 처리기 모듈(108)은 통신 경로에서 실제로 또는 가상으로 관찰을 수행할 수 있다. 실제로 클라이언트(106)와 서버(102) 사이에 있기 위하여, 처리 모듈(108)은 2개 이상의 인터페이스들을 가질 필요가 있고, 하나는 클라이언트(106)와 면하고, 다른 하나는 서버(102)와 면한다. 실제로, 인터넷 및 네트워킹 장치들과 일치하는 바와 같이 이들 각각의 노드들 사이에 임의의 수의 부가적인 "홉들(hops)"이 있을 수 있다. 가상으로 클라이언트(106)와 서버(102) 사이에 위치되기 위하여, 양쪽 클라이언트(106) 및 서버(102)는 적어도 게임 상태 업데이트 및 생성을 위해 중간 처리 모듈(108)을 통하여 서로 말할 수 있도록 프로그래밍될 수 있다. 이것은 예를 들어 네트워크 어드레스 또는 IP 어드레스를 처리 모듈(108)에 할당하고 그 처리 모듈 어드레스를 통하여 서로 통신하도록 클라이언트(106) 및 서버(102)를 가리키게 함으로써 달성될 수 있다.
처리 모듈(108)이 응용가능한 상태 데이터의 복사본의 몇몇 또는 모두를 유지할 수 있다면, 클라이언트(106)와 서버(102) 사이의 통신 가속은 가능할 수 있다. 상기된 바와 같이, 클라이언트(106)와 서버(102) 사이의 통신 가속을 달성하는 것은 게임 상태의 몇몇 또는 모두의 캐싱된 복사본을 사용할 때 처리 모듈(108)이 신뢰될 수 있게 힘을 줌으로써 용이해질 수 있다.
예를 들어, 클라이언트(106)가 캐릭터 움직임을 요청하고 서버(102)에 요청을 전송하기 시작하고, 처리기 모듈(108)이 승인 처리로 인해 서버(102)에 부담을 지우는 것을 저지하는 움직임을 승인할 수 있다면, 클라이언트(106)는 보다 빠른 움직임에 대한 "승인(approval)"을 얻을 수 있다. 실제로, 움직임 요청은 처리기 모듈(108)에 의해 정식으로 인증된다. 이것은 필요한 불변의 데이터 및 코히어런트 캐시 상태 데이터의 정확한 어카운팅이 처리기 모듈(108)에 존재하기 때문에 수행가능할 수 있다. 이런 정보로 인해, 처리 모듈(108)은 움직임 요청을 인터셉트할 수 있고, 서버(102) 또는 클라이언트(106)에 의해 이전에 계산된 계산들을 수행하고, 요청을 인증할 수 있다. 몇몇 실시예들에서, 처리 모듈(108)은 움직임 요청이 승인되었다는 것을 서버(102)에게 알려서 서버(102)가 자신의 상태 정보를 업데이트할 수 있게 하거나, 대안적으로 모듈(108)은 서버에 전혀 영향을 미치지 않으면서, 또는 최소한으로 미치면서 알 필요가 있는 다른 클라이언트들에 사전에 알릴 수 있다. 또한, 처리 모듈(108)은 게임 상태 업데이트 질의들 같은 서버(102)로부터의 통신을 인터셉트하고, 이들 통신들에 응답하여, 클라이언트(106) 상의 로드를 감소시킨다. 모듈(108)이 어느 방향으로 통신하든, 몇몇 실시예들에서 모듈 통신은 모듈 통신으로서 식별되고 결과적으로 수신부에 의해 신뢰될 것이다.
실제로, 처리 모듈(108)이 물리적으로 또는 가상으로 클라이언트(106)에 매우 근접하게 배치되면, 처리 모듈(108)과 클라이언트(106) 사이의 통신은 매우 빨라질 수 있고, 클라이언트(106)와 서버(102) 사이의 통신량은 감소될 수 있다. 유사하게, 처리 모듈(108)이 물리적으로 또는 가상으로 서버(102)에 매우 근접하게 배치되면, 처리 모듈(108)과 서버(102) 사이의 통신도 빨라질 수 있다.
도 1을 다시 참조하여, 예시적인 MMOG 구현에서, 클라이언트(106)는 그것이 지형 또는 게임 맵에 관한 요청된 움직임을 인증하기 위하여 서버(102)에 의지한다는 것을 믿을 수 있다. 인식된 처리는 클라이언트(106)가 "움직임 응답(movement response)"으로 응답하는 "움직임 요청(movement request)"을 서버(102)에 송신하는 것을 포함할 수 있다. 처리기 모듈(108)로 인해, 처리는 변경될 수 있다. 예를 들어, 클라이언트(106)가 시작될 때, 처리기 모듈(108)에 "지형 맵(terrain map)"이 로딩될 수 있다. 실제로, 지형 맵에 포함되지 않지만 사용자 움직임에 영향을 미칠 수 있는 오브젝트들은 처리기 모듈(108)을 통하여 서버(102)로부터 클라이언트(106)로 송신될 수 있다. 처리기 모듈(108)은 이들 통신들을 "보고(see)" 수동적으로 관련 지형, 클라이언트(106) 사용자 위치, 및 지형을 통한 클라이언트(106)의 사용자 움직임을 방해할 수 있는 임의의 오브젝트들을 계속 감시할 수 있다.
처리기 모듈(108)에 정확한 정보를 저장함으로써, 클라이언트(106)로부터의 움직임 요청들은 처리기 모듈(108)에 의해 능동적으로 인터셉트될 수 있고 서버(102)에 의해 직접적으로 보다 처리기 모듈(108)에 의해 명령적으로 허용되거나 불허될 수 있다. 상기된 바와 같이, 때때로 서버(102)는 지형 맵상 클라이언트 캐릭터 위치를 계속 알고 있는 것이 바람직하다. 이와 같이, 처리기 모듈(108)은 클라이언트 캐릭터의 새로운 위치를 나타내는 특정 메시지를 서버(102)에 송신하도록 구현될 수 있다. 몇몇 실시예들에서, 처리기 모듈(108)이 클라이언트(106)에 응답을 이미 제공하였기 때문에, 처리기 모듈(108)은 본래 요청을 서버(102)에 간단히 포워딩(forward)하고, 서버로부터의 응답을 무시할 수 있다.
특정 메시지가 서버(102)에 송신되는 구현들에서, 서버(102)는 처리기 모듈(108)이 올바르게 행동했다는 것을 검사하는 것과 같은 책임이 경감될 수 있다. 그러나 상기 구현은, 처리기 모듈(108) 같은 처리 모듈이 상기 흐름 내에 있을 때 서버(102)가 표준 요청들보다 '특별 메시지들(special messages)'을 얻고 이들 특별 메시지들이 신뢰되어야 한다는 것을 인식하도록, 서버(102)가 이해 또는 프로그래밍되는 것을 요청할 수 있다.
처리기 모듈(108)이 간단히 본래 움직임 요청을 서버(102)에 포워딩하고 그 다음 서버(102)로부터의 응답을 무시하는 구현들에서, 서버(102)는 임의의 "특별 메시지"를 위하여 변형될 필요가 없다. 어느 하나의 실행에서, 클라이언트(106)는, 처리 모듈(108)이 서버(102)가 할 수 있는 것보다 빠르고 신속하게 계산들을 수행하기 때문에 네트워크 응답이 이전보다 빠를 수 있다는 것을 인식한다.
구현 세부사항에 따라, 처리되도록 장착되는 처리 모듈(108)의 요청 유형은 프로그래밍, 고정, 업데이트 등이 될 수 있다. 또한, 처리 모듈(108)이 네트워크 구성요소들 사이의 다양한 통신 상호작용들에 반응하는 방법 또는 방식이 미리 프로그래밍, 고정, 업데이트 등이 될 수 있다. 몇몇 상황들에서, 처리 모듈(108)은 요청들이 만들어질 때 특정 클라이언트 또는 서버 요청들을 서비스하기에 충분한 정보를 수동적으로 또는 능동적으로 유지할 수 있다.
몇몇 상황들에서, 처리 모듈(108)은 클라이언트 요청을 예상하고 서버(102)로부터 대답을 프리페치(prefetch)하도록 구성될 수 있다. 예를 들어, 처리 모듈(108)은 클라이언트(106)로부터 서버(102)로 특정 유형의 클라이언트 요청이 통과하는 것을 "볼 것이다". 처리 모듈(108)은 서버(102)가 본래 요청에 응답하자마자 클라이언트(106)가 관련된 요청을 송신할 것이란 것을 "알 수 있다(know)". 이와 같이, 클라이언트(106)가 본래 요청에 대한 응답을 위하여 기다리는 동안, 처리 모듈(108)은 관련 요청을 만들 수 있다. 이런 방식으로, 클라이언트(106)가 심지어 관련 요청을 만들 필요가 있음을 알기 전에 처리 모듈(108)은 관련 요청에 대한 대답을 가질 수 있다.
처리 모듈(108)이 어떤 임무들을 구현하도록 설계되든, 처리 모듈(108)이 이들 임무들을 수행하는 행동은 서버(102)로부터 몇몇 부담을 잠재적으로 제거하고 및/또는 서버(102)에 대한 클라이언트(106)의 믿음을 감소시킨다. 부담 및 신뢰 제거의 양은 처리 모듈(108)에 "할당된(assigned)" 임무들의 수 및 유형에 따를 수 있다. 예를 들어, 게임 캐릭터가 칼을 사용하여 공격을 시작하기를 원하면, 처리 모듈(108)은 캐릭터가 공격하도록 허용되는지, 캐릭터가 어떤 칼을 사용하는지, 얼마나 많은 통계적 데미지가 유발되는지를 처리 모듈(108)이 결정하도록 구현될 수 있다. 이런 예에서, 처리 모듈(108)에는 공격이 성공하였는지를 결정하는 임무가 주어지지 않는다. 공격의 성공 또는 실패의 결정 임무는 처리 모듈(108)에 지워지기에는 너무 민감할 수 있다.
처리 모듈(108)의 임무는 하드웨어, 펌웨어, 소프트웨어 등에서 구현되고 어떤 임무들이 할당되는지에 대한 결정은 하나 이상의 설계 기준을 기초로 이루어질 수 있다. 예를 들어, 극도의 보호나 부가적인 사용자들 또는 네트워크 구성요소들의 상호작용을 요청하는 임무들과 같은 몇몇 민감한 임무들은 서버(102)에 비축될 수 있다.
게이밍 환경에서, 특정 민감한 임무들 - 비록 그들이 처리 모듈(108)에 할당되더라도 - 은 컴퓨팅 장치(107)의 사용자로부터 보호될 필요가 있을 수 있다. 민감한 임무들이 보호되지 않은 채로 있으면, 게임 사용자는 서버(102) 이외의 것이 계산들을 수행한다는 사실을 나타내도록 시도할 수 있다. 예를 들어, 보호되지 않은 채로 있으면, 처리 모듈(108)은 상기 나타낸 칼 공격으로부터 이중 데미지를 제공하도록 해킹(또는 악의적으로 변형됨)될 수 있다. 이러한 해킹은 불공평한 이점들을 해커에게 제공하고 규정을 지키는 게임 플레이어들의 전체 경험을 감소시킨다.
성공적인 해킹 가능성을 감소시키기 위하여, 처리 모듈(108)은 비교적 안전한 방식으로 실행될 수 있다. 상기 설명된 바와 같이, 처리 모듈(108)은 범용 처리 장치 또는 컴퓨터, 카드 같은 컴퓨터에 플러깅(plug)되는 한 부분의 하드웨어, ASIC 및/또는 몇몇 다른 실리콘 부분으로 구현될 수 있다. 또한, 각각의 이들 실행들은 하드웨어, 소프트웨어, 펌웨어, 및/또는 이들의 조합을 이용하여 안전한 분산 처리를 가능하게 할 수 있다.
하나의 구현에서, '해커-안전(hacker-safe)' 처리 모듈(108)은 처리 모듈(108)을 구현하는 카드상에 위치된 메모리 및 프로그램을 포함할 수 있다. 실제로, 메모리 및 프로그램은 퍼스널 컴퓨터(PC) 사용자에 쉽게 액세스할 수 없다. 이것은 예를 들어 카드가 플러깅된 기기(PC)에 의해 어드레싱할 수 있는 카드 메모리를 숨기거나 노출시키지 않음으로써 달성될 수 있다. 예를 들어, 처리 모듈(108)은 온-카드 메모리(on-card memory)가 PCI 또는 PCI-Express 메모리 맵에 맵핑되지 않도록 구성될 수 있다.
부가적으로, 몇몇 실시예들에서 "전자 서명(Digital Signature)"은 처리 모듈(108)을 보호하기 위하여 사용될 수 있다. 실제로, 처리 모듈(108) 임무의 모두 또는 일부를 수행하는 해킹되지 않는 펌웨어 또는 소프트웨어는 '서명(signed)'될 수 있거나 신뢰적인 엔티티에 의해 펌웨어 및/또는 소프트웨어가 기입되는 것을 보여주는 데이터의 트레일러(trailer) 또는 헤더를 포함한다. 이 '전자 서명' 승인은 SSL 및 IPSEC 같은 프로토콜들을 사용할 수 있다. 또한, 유사한 개념들이 공개 키 암호화 알고리즘(RSA)을 사용하고, 개인 키를 사용하여 '서명(signature)'을 생성하도록 펌웨어를 통하여 암호를 사용하여 실행될 수 있다. 실제로, 서명은 소프트웨어가 장치로 로딩될 때 공개 키에 의해 검증될 수 있다.
부가적인 보안 방법으로서, '전자적으로 서명된(Digitally Signed)' 펌웨어/소프트웨어의 콘텐트가 숨겨질 수 있다. 이것은 예를 들어 특정 환경들에서 대칭 키 암호화를 사용하여 구현될 수 있다. 예를 들어, 카드, 칩 등은 AES 키 또는 3-des 키와 같은 매우 비밀스러운 대칭 키로 미리 로딩될 수 있고, 펌웨어 업데이트가 다운로드되거나 실행될 때, 업데이트는 대칭 키를 사용하여 복호화될 수 있다. 유사하게, 무작위로 생성된 대칭 키는 애플리케이션이 '온라인(online)'에서 동작할 때마다 새로운 다운로드를 요청하는 각각의 다운로드를 위하여 사용될 수 있다. 이 교시는 예를 들어 무작위성 및 안정성을 보장하기 위하여 키 교환의 SSL, ISAKMP 또는 IKE 방법론들로 구현될 수 있다.
실제로, 암호화 키가 장치에 로딩된 후, 그 키는 중앙 처리 코어를 떠나는 데이터의 모두 또는 일부를 암호화하고 중앙 처리 코어에 입력되는 데이터의 모두 또는 일부를 복호화하도록 전체 세션 동안 사용될 수 있다. 이 보호의 레벨은 해커들이 실행 가능한 코드의 콘텐트들 및 저장될 필요가 있는 임시 데이터를 관찰 또는 변경하지 못하게 할 수 있다. 포팅(potting), 숨겨진 비아들(hidden vias), 비아 없음(no vias), 볼 그리드 어레이(ball grid array; BGA) 패키지들, 및 많은 다른 하드웨어 레벨 보안 기술들과 같은 하드웨어 보호를 사용하여 물리적 조사로부터 보드를 보호할 수 있는 것이 주의되어야 한다. 포팅은, 예를 들어 탬퍼링(tampering)으로부터 처리 모듈(108)을 보호하기 위하여 처리 모듈(108)의 일부에 인가된 특정 코팅 또는 기판(substrate)으로서 사용된다.
또한, 다양한 레벨들의 인증을 사용하여, 특정 임무가 처리 모듈(108)인 체하는 악의적인 코드의 일부에 대항하여 처리 모듈(108)에 의해 수행되는 것을 보장할 수 있다. 인증은 몇몇 방식으로 수행될 수 있다. 예를 들어, SSL 또는 IPSEC 클라이언트 인증이 사용되거나 RSA 및 유사한 공개 키 암호화 알고리즘이 새로운 비표준 인증 방법들을 생성하기 위하여 사용될 수 있고, 및/또는 다양한 조합들이 사용될 수 있다. 이들 기술들에서, 인증은 프로토콜의 일부로서, 또는 키 교환 동안, 또는 특정 인증 처리로서 달성될 수 있다. 이들 방법들은 주장된 장치 ID 및 공개 키 쌍이 실제로 유효함을 나타내는 증명서를 전자적으로 서명하는 신뢰된 중앙 권한(trusted central authority)으로 처리 모듈(108)의 몇몇 부분을 등록하는 것을 일반적으로 요청한다. 따라서, 해당 장치가 잘 알려진 공개 키와 연관된 '개인 키(private key)'를 사용하여 무작위로 제공된 데이터의 일부에 서명하고, 공개 키를 사용하여 전자적으로 서명된 무작위 번호를 검사할 수 있으면, 단지 내부에 슈퍼 보안 개인 키를 가진 장치만이 데이터의 무작위 부분에 서명하여 공개 키가 그것을 언로킹(unlock) 할 수 있기 때문에 상기 장치는 인증됐다고 할 수 있다.
일단 클라이언트가 인증되면, 서버 및 분산 처리 모듈로의 및 서버 및 분산 처리 모듈로부터의 메시지들은 개인 키 또는 몇몇 다른 키를 가지고 주기적으로 또는 연속적으로 전자적으로 서명될 필요가 있다. 대안적으로, 키 교환은 상기 언급된 공개/개인 키 교환 알고리즘을 사용하여 발생하고 그 다음 데이터 모두 또는 일부는 SSL 프로토콜들에서 행해진 바와 같이 주기적으로 변화될 수 있는 교환되는 대칭 키로 암호화되거나 서명될 수 있다. 후자의 방법은, 공개/개인 키 암호화가 일반적으로 계산적으로 보다 강력하고 교환되는 대칭 키들로 행해진 암호화보다 더 안전하지 않기 때문에 일반적으로 보다 우수하다.
구현 세부사항에 따라 그리고 '개인 키'를 잃거나 도난 또는 노출될 가능성에 대해 보호하기 위하여, 동일한 장치 내에 다수의 개인 키들이 존재할 수 있고, 하드웨어 또는 소프트웨어 토글(toggle)이 장치 내에서 새로운 개인 키에 "스위칭(switch)"하도록 사용될 수 있다. 처리 모듈(108)을 위한 키들을 저장 및 보호하는 것은 몇몇 방식으로 달성될 수 있다. 키들은 CHIP 또는 ASIC에 고정되고, FPGA 또는 프로그래밍가능 장치 내에 새성되고, 플래시 또는 ROM에 저장되고, 특정 기판에 '포팅(potted)' 등이 될 수 있다. 다른 보호로서, 각각의 장치(장치 ID)는 자신의 고유한 장치 ID 및 개인 키/공개 키 쌍을 할당받아, 치터(cheater)/해커가 인증에 사용되는 개인 키에 액세스하더라도, 키는 모든 보드들이 아닌 단지 하나의 보드만을 언로킹한다. 또한, 발견되면, 중앙 권한(central authority)은 증명서를 무효화하거나 종료시키고 더 이상 신뢰되지 않는다.
처리 모듈(108) 같은 처리 모듈의 일 실시예를 추가로 기술하기 위하여 도 2가 지금 참조된다. 상기된 바와 같이, 도 2는 컴퓨터 장치(200)의 특정 실시예의 블록도를 도시한다. 컴퓨터 장치(200)는 물리적 인클로저(enclosure)를 규정하는 하우징(202)을 포함한다. 하우징(202) 내에는 처리기(203), 분산 처리기 모듈(204), 네트워크 인터페이스(206) 및 메모리(208)가 배치된다. 메모리는 클라이언트 프로그램(210)을 저장한다. 메모리(208)는 처리기(203)에 액세스할 수 있다. 분산 처리기 모듈(204)은 처리기(203) 및 네트워크 인터페이스(206)에 접속된다. 몇몇 실시예들에서, 네트워크 인터페이스(206)는 분산 처리기 모듈(204) 내에 구축될 수 있고, 분산 처리기 모듈(204)은 처리기에 대한 네트워크 카드인 것처럼 보일 수 있고 PCI 버스를 통하여 동작할 수 있다.
처리기(203)는 마이크로처리기, 마이크로컴퓨터, 중앙 처리 장치(CPU) 또는 다른 처리 장치일 수 있다. 네트워크 인터페이스(206)는 이더넷 카드 또는 칩 또는 다른 네트워크 인터페이스 장치일 수 있다. 메모리(208)는 RAM, 하드 드라이브, 또는 다른 적절한 메모리 장치일 수 있다.
동작 동안, 처리기(203)는 클라이언트 프로그램(210)을 동작시킨다. 클라이언트 프로그램은 게임 프로그램, 비디오 또는 오디오 플레이어 같은 멀티미디어 플레이어, 또는 다른 프로그램일 수 있다. 클라이언트 프로그램(210)은 도 1과 관련하여 설명된 바와 같이 WAN 상에서 서버 프로그램과 상호작용한다.
예를 들어, 클라이언트 프로그램(210)은 게임 프로그램일 수 있다. 클라이언트 프로그램(210)의 실행 동안, 처리기(203)는 원격 서버상에 상주하는 게임 프로그램을 목표로 삼은 게임 상호작용 요청들을 송신할 수 있다. 분산 처리기 모듈(204)은 요청들을 모니터링하고, 어떤 요청들이 분산 처리기 모듈(204)에서 국부적으로 서비스될 수 있는지를 결정한다. 요청이 국부적으로 서비스될 수 있으면, 분산 처리기 모듈(204)은 요청을 인터셉트하고, 요청을 처리하고, 적절한 응답을 처리기(203)에 제공할 수 있다. 몇몇 실시예들에서, 분산 처리기 모듈(204)은 코히어런시를 보장하기 위하여 업데이트 정보를 서버 게임 프로그램에 제공할 수 있다.
게임 상호작용 요청이 분산 처리기 모듈(204)에 의해 국부적으로 서비스될 수 없거나 되지 않으면, 모듈은 네트워크 인터페이스(206)를 통하여 서버 게임 프로그램에 요청을 제공할 수 있다. 몇몇 경우들에서, 분산 처리기 모듈(204)은 분산 처리기 모듈(204)이 요청을 서비스할 수 있게 하는 요청을 부가적인 정보에 대한 서버 게임 프로그램에 전달할 수 있다. 분산 처리기 모듈(204)은 네트워크 인터페이스(206)를 통하여 요청된 부분들을 수신하고, 추후 게임 상호작용 요청들을 서비스하기 위하여 서버 게임 프로그램의 부분들을 저장할 수 있다.
상기 설명된 바와 같이, 모듈(204)은 자신의 처리기(212) 및 메모리(214)를 가질 수 있다. 실제로, 메모리(214)는 비밀을 유지할 수 있고 장치(200)의 임의의 시스템 대용량 메모리 맵에 포함되지 않는다.
도 3을 참조하여, 분산 처리기 모듈(302)의 특정 실시예의 블록도가 도시된다. 도시된 바와 같이, 모듈(302)은 2개의 인터페이스들(303 및 308)을 포함한다. 실제로, 인터페이스(303)는 '네트워크'로 진행하고, 인터페이스(308)는 '호스트' 처리기로 진행할 수 있다. 구현 세부사항에 따라, 인터페이스들 중 어느 하나 또는 양쪽은 버스, 이더넷 순응 인터페이스, USB 인터페이스, SCSI 인터페이스, 무선 인터페이스, 몇몇 다른 적절한 인터페이스, 및/또는 이들의 조합을 포함할 수 있다. 분산 처리기 모듈(302)은 또한 처리기(304), 휘발성 메모리(306), 및 비휘발성 메모리(310)를 포함할 수 있다. 도시된 바와 같이, 처리기(304)는 비휘발성 메모리(310) 및 휘발성 메모리(306)에 액세스할 수 있다. 또한, 처리기(304)는 각각 인터페이스들(308 및 303)을 통하여 호스트 및 네트워크에 "접속"될 수 있다.
처리기(304)는 마이크로처리기, 마이크로컴퓨터, 중앙 처리 장치(CPU), FPGA 또는 몇몇 다른 처리 장치일 수 있다. 인터페이스(308)는 PCI, PCI-E, 또는 USB, 백플레인(backplane) 버스, 이더넷 인터페이스, 또는 다른 통신 인터페이스와 같은 버스 인터페이스일 수 있다. 휘발성 메모리(306)는 RAM, 또는 다른 휘발성 메모리 장치일 수 있다. 비휘발성 메모리(310)는 ROM, 플래시 메모리, 또는 다른 비휘발성 메모리일 수 있다. 실제로, 휘발성 메모리(306)는 서버 상주 프로그램에 또한 저장될 수 있는 정보(312)를 저장한다.
동작 동안, 분산 처리기 모듈(302)은 클라이언트 컴퓨터(도시되지 않음)에 상주하는 프로그램과 서버 컴퓨터(도시되지 않음)에 상주하는 프로그램 사이의 통신들을 모니터링하고, 이들 통신들의 일부 또는 모두를 인터셉트하고, 인터셉트된 통신들에 응답하여 서버 대신 서버 상주 프로그램의 일부를 실행한다. 클라이언트-상주 프로그램과 서버-상주 프로그램 사이의 통신들을 인터셉팅하고 국부적으로 처리함으로써, 분산 처리기 모듈(302)은 래그, 지연 및/또는 서버-상주 프로그램들과 클라이언트-상주 프로그램들 사이의 다른 통신 문제들의 수를 감소시킬 수 있다.
실제로, 프로그램들 사이의 통신들은 클라이언트-상주 프로그램으로부터 통신들을 수신하는 인터페이스(308)를 통하여 처리기(304)에 의해 모니터링된다. 처리기(304)가 클라이언트 상주 프로그램과 서버 상주 프로그램 사이의 적절한 통신을 검출하면, 처리기(304)는 통신을 인터셉트하고, 휘발성 메모리(306)에 저장된 서버-상주 정보(312)의 일부에 액세스한다. 처리기(304)는 인터페이스(308)를 통하여 인터셉트된 통신에 응답한다. 이런 방식으로, 분산 처리기 모듈(302)은 클라이언트-상주 프로그램에 대하여 서버-상주 프로그램을 에뮬레이팅한다. 통신에 응답한 후, 처리기(304)는 또한, 서버-상주 프로그램 및 클라이언트 상주 프로그램의 상태가 싱크로나이징되도록 서버-상주 프로그램에 업데이트 정보를 송신할 수 있다.
실제 실시예에서, 서버 상주 프로그램은 온라인 게임 서버 프로그램이고 클라이언트-상주 프로그램은 온라인 게임 클라이언트 프로그램이다. 분산 처리기 모듈(302)은 온라인 게임 클라이언트 프로그램으로부터 온라인 게임 서버 프로그램으로의 게임 상호작용 요청들을 모니터링하고, 특정의 게임 상호작용 요청들을 인터셉트하고, 이들 요청들을 처리하고, 적절한 정보를 양쪽 클라이언트 및 서버 프로그램들에 제공한다.
예를 들어, 클라이언트 프로그램은 게임 캐릭터가 주문(spell)을 걸기를 원하는 것을 나타내는 게임 상호작용 요청을 시작할 수 있다. 분산 처리기 모듈(302)은 주문 요청(spell request)을 수신하고 요청이 국부적으로 처리될 수 있는지를 결정한다. 따라서, 처리기(304)는 주문 요청을 처리하기 위하여 서버 상주 정보(312)의 일부분들에 액세스한다. 이런 처리는 요청이 유효하고 다른 과정인지 여부를 결정하기 위하여 게임 규칙들을 검사하는 것을 포함할 수 있다. 주문 요청이 처리된 후, 분산 처리기 모듈(302)은 클라이언트 및 서버-상주 프로그램들 양쪽에 게임 업데이트 정보를 송신한다. 예를 들어, 분산 처리기 모듈(302)이 주문 걸기 요청이 유효했다는 것을 양쪽 프로그램들에 가리켜 주어, 프로그램들은 올바르게 게임 상태를 업데이트할 수 있다.
또한, 분산 처리기 모듈(302)은 서버-상주 정보(312)의 동작 및 부분들이 해킹 또는 다른 인증되지 않은 액세스로부터 보호되는 것을 보장하기 위한 몇몇 보안 특징들을 포함할 수 있다. 제 1 보안 레벨로서, 휘발성 메모리(306)의 어드레싱 가능성은 처리기(304)로 제한될 수 있으므로, 휘발성 메모리(306)는 클라이언트 기기의 처리기에 의해 어드레싱 불가능하다. 이것은 서버-상주 정보(312)의 부분들을 클라이언트 기기가 액세스하는 것을 보다 어렵게 만든다.
제 2 보안 레벨은 분산 처리기 모듈(302)로 펌웨어 인증 과정을 구성하여 구현될 수 있다. 특히, 비휘발성 메모리(310)는 처리기(304)에 대한 펌웨어를 저장할 수 있다. 처리기(304)는 부트 기능들, 디버그 기능들 등과 같은 시스템 기능들을 수행하기 위하여 펌웨어에 액세스할 수 있다. 보안 수단들의 부재시, 해커는 해커가 서버-상주 정보(312)의 부분들에 액세스하게 하는 특정 펌웨어로 분산 처리기 모듈(302)에 대한 표준 펌웨어를 대체시킬 수 있다. 따라서, 분산 처리기 모듈의 펌웨어는 전자 서명을 삽입하여 더욱 보호되고, 이 서명은 펌웨어 내의 SSL 및 IPSEC 프로토콜들에 따른다. 모듈(302)은 인증 키에 대해 이런 전자 서명을 검사하고, 인증 키를 포함하는 펌웨어만을 동작시킨다.
또한, 펌웨어는 펌웨어 자체를 해킹하기 어렵게 만들기 위해 암호화될 수 있다. 예를 들어, 분산 처리기 모듈(302)은 AES 키, 3-des 키 등의 대칭 키가 로딩되고, 처리기(304)는 대칭 키를 사용하여 펌웨어를 복호화할 수 있다. 이런 대칭 키는 공개-개인 키 쌍에 의해 더욱 보호될 수 있다. 따라서, 적절한 대칭 키로 암호화된 펌웨어만이 처리기(304)에 의해 사용될 수 있다. 다른 펌웨어 암호화 방법들이 또한 사용될 수 있다. 예를 들어, 무작위로 생성된 대칭 키가 사용될 수 있고, 여기서 새로운 키는 분산 처리기 모듈(302)이 사용될 때마다 다운로드된다.
또한, 이들 암호화 방법들은 펌웨어와 다른 데이터에 대하여 사용될 수 있다. 예를 들어, 서버-상주 정보(312)의 부분들 같은 비휘발성 메모리(306)에 저장된 데이터는 부가적인 보안을 제공하기 위하여 이들 방법들을 사용하여 암호화될 수 있다. 저장된 데이터는 데이터가 액세스될 때마다 처리기(304)에 의해 복호화되어, 암호화되지 않은 데이터는 처리기(304) 외부에 저장된다. 암호화된 데이터는 분산 처리기 모듈(302)이 사용될 때마다 어느 하나의 인터페이스(304)를 통하여 다운로드될 수 있는 대칭 키를 사용하여 암호화될 수 있다.
또한, 분산 처리기 모듈(302)의 하드웨어는 보안 수단들에 의해 보호될 수 있다. 예를 들어, 분산 처리기 모듈(302)은 탬퍼링으로부터 모듈을 보호하기 위하여 특정 코팅 또는 기판으로 포팅되거나 보호될 수 있다. 이들 수단들은 처리기(304) 및 휘발성 메모리(306) 같은 모듈 하드웨어가 외부 프로브(probe) 같은 하드웨어 해킹 장치를 사용하는 해커에 의해 액세스되기 어렵게 한다.
또한, 분산 처리기 모듈(302)은 보안 목적으로 인증 기술들을 사용할 수 있다. 예를 들어, 분산 처리기 모듈은 서버 상주 정보(312) 부분들을 다운로딩하기 전에 인터페이스(308)를 통해 서버로 패스워드, 대칭 키, 또는 다른 인증 정보를 송신할 수 있다. 서버가 부적절한 인증 정보를 수신하면, 서버는 서버 상주 정보(312)의 부분을 송신하는 것을 거절하거나, 대안적으로 모듈이 임의의 신뢰성 있는 계산들을 수행하게 하는 것을 거절한다. 부가된 보안을 위하여, 인증은 분산 처리기 모듈(302)과 서버 사이의 모든 통신에 대하여 요청될 수 있다. 다른 보안 방법들은 또한 사용될 수 있다. 예를 들어, 서버는 무작위로 또는 주기적으로 분산 처리기 모듈(302)의 인증을 요청할 수 있다.
도 4를 참조하여, 클라이언트 프로그램과 서버 프로그램 사이의 통신들을 모니터링하는 방법의 특정 실시예의 흐름도가 도시된다. 블록(402)에서, 분산 처리기 모듈은 인증 정보를 서버에 송신한다. 서버는 서버 프로그램을 실행하는 동일한 서버, 독립된 보안 서버, 또는 다른 서버일 수 있다. 이 인증 정보는 분산 처리기 모듈이 클라이언트 프로그램과 서버 프로그램 사이의 통신들을 모니터링하도록 인증되는 것을 보증하기 위해 사용될 수 있다.
블록(404)으로 이동하여, 분산 처리기 모듈은 클라이언트 프로그램과 서버 프로그램 사이의 통신들을 능동 또는 수동적으로 모니터링한다. 결정 블록(406)에서, 분산 처리기 모듈은 모니터링된 통신이 인터셉트될 수 있는지 여부를 결정한다. 특정 실시예에서, 인터셉트할 수 있는 통신들은 분산 처리기 모듈이 모듈에서 국부적으로 처리할 수 있고 처리가 허용되는 통신들을 포함한다.
블록(406)에서, 통신이 인터셉트할 수 없는 통신인 것으로 결정되면, 방법은 블록(408)으로 이동하고 통신은 서버 프로그램에 제공되어, 서버 프로그램이 통신을 처리할 수 있다. 상기 방법은 블록(404)으로 리턴하고 분산 처리기 모듈은 통신들을 계속 모니터링한다.
블록(406)을 참조하여, 통신이 인터셉트할 수 있는 것으로 결정되면, 방법은 블록(410)으로 진행하고 통신은 인터셉트된다. 방법은 블록(412)으로 이동하고 통신은 처리된다. 예를 들어, 통신이 게임 상호작용 요청이면, 분산 처리기 모듈은 상호작용 요청이 허용되는지를 결정하고, 상기 요청에 적절하게 응답하기 위해 게임 규칙들을 검사하거나, 궁극적으로 상호작용 요청을 유효화할 서버를 돕기 위하여 기본 사전-계산들을 간단히 수행할 수 있다. 방법은 블록(414)으로 이동하고 업데이트 정보는 처리된 통신에 기초한 서버 프로그램에 대안적으로 송신된다. 예를 들어, 통신이 게임 상호작용 요청이면, 분산 처리기 모듈은 요청이 생성됐음 및 요청이 어떻게 처리됐는지를, 또는 대안적으로 요청이 생성됐음 및 서버 대신 행해진 몇몇 사전-계산들의 결과들을 나타내는 정보를 서버 프로그램에 송신할 수 있다. 방법은 블록(404)으로 리턴하고 분산 처리기 모듈은 계속하여 통신들을 모니터링한다.
따라서, 분산 처리기 모듈은 서버 프로그램과 클라이언트 프로그램 사이의 통신들을 모니터링할 수 있고, 이들 통신들의 일부를 국부적으로 처리한다. 이는 분산 처리기 모듈이 서버 프로그램보다 통신에 보다 빠르게 응답하게 하여, 래그, 지연, 및 다른 통신 문제들을 감소시킨다.
상기 나타낸 것들은 예시적인 것일 뿐 제한적인 것은 아니라고 고려되며, 첨부된 청구항들은 본 발명의 실제 취지 및 범위 내에 속하는 이러한 변형들, 개선들, 및 다른 실시예들을 포괄하도록 의도된다. 따라서, 법에 의해 허용된 최대 범위까지, 본 발명의 범위는 다음 청구항들 및 그들의 등가물들의 가장 광범위한 허용가능 해석에 의해 결정되고, 상기 상세한 설명으로 제한 또는 한정되지 않는다.

Claims (1)

  1. 발명의 상세한 설명에 기재된 방법.
KR1020137020389A 2005-05-11 2006-05-08 분산 처리 시스템 및 방법 KR20130095855A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US67990405P 2005-05-11 2005-05-11
US60/679,904 2005-05-11
US59625705P 2005-09-12 2005-09-12
US60/596,257 2005-09-12
PCT/US2006/017659 WO2006124357A2 (en) 2005-05-11 2006-05-08 Distributed processing system and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020077026296A Division KR101332911B1 (ko) 2005-05-11 2006-05-08 분산 처리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20130095855A true KR20130095855A (ko) 2013-08-28

Family

ID=37431806

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137020389A KR20130095855A (ko) 2005-05-11 2006-05-08 분산 처리 시스템 및 방법
KR1020077026296A KR101332911B1 (ko) 2005-05-11 2006-05-08 분산 처리 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020077026296A KR101332911B1 (ko) 2005-05-11 2006-05-08 분산 처리 시스템 및 방법

Country Status (4)

Country Link
US (2) US8167722B2 (ko)
EP (1) EP1891538A4 (ko)
KR (2) KR20130095855A (ko)
WO (1) WO2006124357A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9426207B2 (en) 2005-05-11 2016-08-23 Qualcomm Incorporated Distributed processing system and method
US9455844B2 (en) 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070060373A1 (en) * 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
US8874780B2 (en) * 2006-07-17 2014-10-28 Qualcomm Incorporated Data buffering and notification system and methods thereof
WO2008011253A2 (en) * 2006-07-17 2008-01-24 Bigfoot Networks, Inc. Host posing network device and method thereof
GB2443264A (en) * 2006-10-27 2008-04-30 Ntnu Technology Transfer As Integrity checking method for a device in a computer network, which controls access to data; e.g. to prevent cheating in online game
US8615562B1 (en) * 2006-12-29 2013-12-24 Google Inc. Proxy for tolerating faults in high-security systems
EP2115619B1 (en) 2007-01-26 2014-08-06 Qualcomm Incorporated Communication socket state monitoring device and methods thereof
EP2140350B1 (en) * 2007-03-23 2017-04-05 Qualcomm Incorporated Distributed processing method and computer program product
WO2008118807A1 (en) 2007-03-26 2008-10-02 Bigfoot Networks, Inc. Method and system for communication between nodes
WO2008129792A1 (ja) * 2007-04-18 2008-10-30 Sony Computer Entertainment Inc. ゲームシステムおよびゲーム機
KR100914771B1 (ko) * 2007-05-09 2009-09-01 주식회사 웰비아닷컴 일회용 실행 코드를 이용한 보안 시스템 및 보안 방법
WO2009014951A1 (en) * 2007-07-20 2009-01-29 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
WO2009014971A1 (en) * 2007-07-20 2009-01-29 Bigfoot Networks, Inc. Client authentication device and methods thereof
EP2225664A4 (en) * 2007-11-29 2010-11-10 Bigfoot Networks Inc TELEPHONE GUIDANCE GUIDANCE APPARATUS AND METHOD THEREFOR
JP5352178B2 (ja) * 2008-10-14 2013-11-27 任天堂株式会社 表示制御プログラム、表示制御装置、及び、表示制御システム
US20100274902A1 (en) * 2009-04-23 2010-10-28 Douglas Penman System and Method for N-Way Communication with and between Locking/Unlocking Morphing Game Peripherals
US8688776B1 (en) * 2009-12-29 2014-04-01 The Directv Group, Inc. Emulation tool and method of using the same for a content distribution system
US8978042B2 (en) * 2012-02-15 2015-03-10 Google Inc. Method and system for maintaining game functionality for a plurality of game instances running on a computer system
US9751011B2 (en) * 2012-05-25 2017-09-05 Electronics Arts, Inc. Systems and methods for a unified game experience in a multiplayer game
US9446306B2 (en) 2012-07-19 2016-09-20 The Regents Of The University Of California System and method for local multiplayer gaming
EP3726451A1 (en) * 2012-09-12 2020-10-21 IEX Group, Inc. Transmission latency leveling apparatuses, methods and systems
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US9959125B2 (en) * 2015-08-05 2018-05-01 Samsung Electronics Co., Ltd. Field update of boot loader using regular device firmware update procedure
CN105468358B (zh) 2015-11-17 2019-11-05 腾讯科技(深圳)有限公司 一种移动游戏的数据处理方法以及装置
US10855694B2 (en) * 2017-05-30 2020-12-01 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for monitoring encrypted packet flows within a virtual network environment
US10903985B2 (en) 2017-08-25 2021-01-26 Keysight Technologies Singapore (Sales) Pte. Ltd. Monitoring encrypted network traffic flows in a virtual environment using dynamic session key acquisition techniques
US10992652B2 (en) 2017-08-25 2021-04-27 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for monitoring encrypted network traffic flows
GB2566107B (en) * 2017-09-05 2019-11-27 Istorage Ltd Methods and systems of securely transferring data
US10893030B2 (en) 2018-08-10 2021-01-12 Keysight Technologies, Inc. Methods, systems, and computer readable media for implementing bandwidth limitations on specific application traffic at a proxy element
GB2578767B (en) 2018-11-07 2023-01-18 Istorage Ltd Methods and systems of securely transferring data
US11190417B2 (en) 2020-02-04 2021-11-30 Keysight Technologies, Inc. Methods, systems, and computer readable media for processing network flow metadata at a network packet broker

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355371A (en) * 1982-06-18 1994-10-11 International Business Machines Corp. Multicast communication tree creation and control method and apparatus
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
JP3602857B2 (ja) 1991-04-23 2004-12-15 株式会社日立製作所 多機種対応型情報処理システム、および、方法
CN1058417C (zh) 1993-03-31 2000-11-15 世嘉企业股份有限公司 游戏装置
AU122125S (en) 1994-02-08 1994-12-07 Sega Enterprises Kk Video game machine
USD374442S (en) 1995-01-10 1996-10-08 Sega Enterprises, Ltd. Cartridge for video game machine
USD374665S (en) 1995-05-12 1996-10-15 Sega Enterprises, Ltd. Cartridge for a video game machine
JP3365705B2 (ja) * 1995-05-24 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型データ処理システム
US6973656B1 (en) 1995-08-16 2005-12-06 International Business Machines Corporation Method and apparatus for linking data in a distributed data processing system
US6009458A (en) * 1996-05-09 1999-12-28 3Do Company Networked computer game system with persistent playing objects
US5771287A (en) * 1996-08-01 1998-06-23 Transcrypt International, Inc. Apparatus and method for secured control of feature set of a programmable device
US5890963A (en) * 1996-09-30 1999-04-06 Yen; Wei System and method for maintaining continuous and progressive game play in a computer network
US6015348A (en) * 1996-10-18 2000-01-18 Starwave Corporation Scalable game server architecture
US6278532B1 (en) 1996-12-20 2001-08-21 Link2It Apparatus and method for reception and transmission of information using different protocols
US5974496A (en) 1997-01-02 1999-10-26 Ncr Corporation System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
JPH10222618A (ja) * 1997-01-31 1998-08-21 Toshiba Corp Icカード及びicカード処理システム
JPH10314451A (ja) 1997-05-15 1998-12-02 Copcom Co Ltd ゲーム装置
US7240094B2 (en) 1997-07-03 2007-07-03 Centra Software Inc. Method and system for synchronizing and serving multimedia in a distributed network
US7249109B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Shielding manipulations of secret data
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
AU708668B2 (en) * 1997-11-21 1999-08-12 Xybernaut Corporation A computer structure for accommodating a PC card
US6314521B1 (en) * 1997-11-26 2001-11-06 International Business Machines Corporation Secure configuration of a digital certificate for a printer or other network device
US6904519B2 (en) 1998-06-12 2005-06-07 Microsoft Corporation Method and computer program product for offloading processing tasks from software to hardware
US6141705A (en) 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6615218B2 (en) * 1998-07-17 2003-09-02 Sun Microsystems, Inc. Database for executing policies for controlling devices on a network
US6424621B1 (en) * 1998-11-17 2002-07-23 Sun Microsystems, Inc. Software interface between switching module and operating system of a data packet switching and load balancing system
US7003548B1 (en) * 1999-03-29 2006-02-21 Gelco Corporation Method and apparatus for developing and checking technical configurations of a product
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
US6625661B1 (en) * 1999-06-21 2003-09-23 Kenneth G. Baldwin, Jr. Interactive entertainment system
US6788704B1 (en) 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
FI113146B (fi) * 1999-10-19 2004-02-27 Setec Oy Menetelmä autentikointiviestin käsittelemiseksi, puhelinjärjestelmä, autentikointikeskus, tilaajalaite ja SIM-kortti
US6810528B1 (en) * 1999-12-03 2004-10-26 Sony Computer Entertainment America Inc. System and method for providing an on-line gaming experience through a CATV broadband network
JP2001246147A (ja) 1999-12-28 2001-09-11 Sega Corp 遊戯施設運営システム
US6977899B1 (en) * 2000-01-20 2005-12-20 Lucent Technologies Inc. Method and apparatus for message-based overload control in a distributed call-processor communication system
US8161182B1 (en) * 2000-01-26 2012-04-17 Cisco Technology, Inc. Managing network congestion using dynamically advertised congestion status
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US7056217B1 (en) * 2000-05-31 2006-06-06 Nintendo Co., Ltd. Messaging service for video game systems with buddy list that displays game being played
US6829654B1 (en) 2000-06-23 2004-12-07 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US7114008B2 (en) 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
US20040015725A1 (en) * 2000-08-07 2004-01-22 Dan Boneh Client-side inspection and processing of secure content
US7487232B1 (en) 2000-09-13 2009-02-03 Fortinet, Inc. Switch management system and method
US7734688B2 (en) * 2000-09-28 2010-06-08 Qwest Communications International Inc. Portable wireless player and associated method
US6970943B1 (en) * 2000-10-11 2005-11-29 Nortel Networks Limited Routing architecture including a compute plane configured for high-speed processing of packets to provide application layer support
US7406539B2 (en) * 2000-10-17 2008-07-29 Avaya Technology Corp. Method and apparatus for performance and cost optimization in an internetwork
US7089335B2 (en) * 2000-10-30 2006-08-08 Microsoft Corporation Bridging multiple network segments and exposing the multiple network segments as a single network to a higher level networking software on a bridging computing device
US6763148B1 (en) 2000-11-13 2004-07-13 Visual Key, Inc. Image recognition methods
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US7046680B1 (en) * 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US20020131404A1 (en) * 2000-11-28 2002-09-19 4Thpass Inc. Method and system for maintaining and distributing wireless applications
US6988196B2 (en) * 2000-12-22 2006-01-17 Lenovo (Singapore) Pte Ltd Computer system and method for generating a digital certificate
US6761636B2 (en) 2001-01-16 2004-07-13 Fucom Company, Ltd. Real time data exchange system
US20020111995A1 (en) 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
US6908389B1 (en) * 2001-03-07 2005-06-21 Nokia Corporation Predefined messages for wireless multiplayer gaming
DE60215802D1 (de) 2001-05-18 2006-12-14 Bytemobile Inc Zweifachmodus dienstplattform in netzwerkkommunikationssystem
US20020198932A1 (en) * 2001-06-07 2002-12-26 Christopher Shaun Wagner System of server-client distributed computing using passive clients
US7000115B2 (en) * 2001-06-19 2006-02-14 International Business Machines Corporation Method and apparatus for uniquely and authoritatively identifying tangible objects
US7197550B2 (en) * 2001-08-23 2007-03-27 The Directv Group, Inc. Automated configuration of a virtual private network
US20030046330A1 (en) 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
US8473922B2 (en) 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7274702B2 (en) * 2001-11-27 2007-09-25 4198638 Canada Inc. Programmable interconnect system for scalable router
EP1502207A2 (en) 2002-01-18 2005-02-02 Idetic, Inc. A multi-tiered caching mechanism for the storage and retrieval of content multiple versions
EP1470466B1 (en) * 2002-02-01 2016-11-09 Panasonic Intellectual Property Corporation of America License information exchange system
WO2003063989A1 (fr) * 2002-02-01 2003-08-07 Aruze Corporation Systeme et procede d'execution d'un jeu
US7209449B2 (en) * 2002-03-27 2007-04-24 Intel Corporation Systems and methods for updating routing and forwarding information
JP3625285B2 (ja) * 2002-03-29 2005-03-02 コナミ株式会社 ネットワークゲームシステム、そのゲーム機及びそのコンピュータプログラム
DE10218795B4 (de) 2002-04-22 2009-03-19 Deutscher Sparkassen Verlag Gmbh Verfahren zum Herstellen eines elektronischen Sicherheitsmoduls
JP2003318337A (ja) * 2002-04-22 2003-11-07 Toshiba Corp 電子機器
US7711847B2 (en) * 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US7065756B2 (en) * 2002-08-22 2006-06-20 International Business Machines Corporation Optimization of portable operations in a client-server environment
TWI220713B (en) * 2002-10-04 2004-09-01 Hon Hai Prec Ind Co Ltd System and method for synchronizing documents between multi-nodes
JP2004129156A (ja) * 2002-10-07 2004-04-22 Ntt Docomo Inc 経路制御システム、経路制御装置、転送装置及び経路制御方法
US7225332B2 (en) 2002-12-17 2007-05-29 Intel Corporation Methods and apparatus to perform cryptographic operations on received data
US20040123113A1 (en) 2002-12-18 2004-06-24 Svein Mathiassen Portable or embedded access and input devices and methods for giving access to access limited devices, apparatuses, appliances, systems or networks
JPWO2004073269A1 (ja) * 2003-02-13 2006-06-01 富士通株式会社 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
US8326483B2 (en) 2003-02-21 2012-12-04 Gentex Corporation Monitoring and automatic equipment control systems
JP4300832B2 (ja) * 2003-03-14 2009-07-22 ソニー株式会社 データ処理装置、その方法およびそのプログラム
CA2464797A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Remote authentication of gaming software in a gaming system environment
US7313633B2 (en) * 2003-06-04 2007-12-25 Intel Corporation Methods and apparatus for updating address resolution data
US7376121B2 (en) * 2003-06-06 2008-05-20 Microsoft Corporation Method and system for global routing and bandwidth sharing
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
EP1515507A1 (en) * 2003-09-09 2005-03-16 Axalto S.A. Authentication in data communication
US7870268B2 (en) * 2003-09-15 2011-01-11 Intel Corporation Method, system, and program for managing data transmission through a network
US7864806B2 (en) 2004-01-06 2011-01-04 Broadcom Corp. Method and system for transmission control packet (TCP) segmentation offload
US20140067771A2 (en) * 2004-07-09 2014-03-06 International Business Machines Corporation Management of a Scalable Computer System
US20060203842A1 (en) * 2004-11-12 2006-09-14 Wollmershauser Steven M Dongle-type network access module
JP4130653B2 (ja) * 2004-12-20 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 擬似公開鍵暗号方法及びシステム
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
GB0428553D0 (en) * 2004-12-31 2005-02-09 British Telecomm Method PF operating a network
JP2008527772A (ja) * 2004-12-31 2008-07-24 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー コネクションレス通信トラフィックのためのコネクション型通信スキーム
US7993202B2 (en) * 2005-01-18 2011-08-09 Igt Server based meter model softcount and audit processing for gaming machines
US7561559B2 (en) 2005-03-30 2009-07-14 Ixia Hardware time stamping and processor synchronization
CN100492382C (zh) 2005-04-12 2009-05-27 国际商业机器公司 基于服务器/客户机的无缝游戏世界系统及其方法
JP2006324876A (ja) 2005-04-18 2006-11-30 Sony Corp 制御装置および方法、プログラム、並びに記録媒体
WO2006124357A2 (en) 2005-05-11 2006-11-23 Bigfoot Networks, Inc. Distributed processing system and method
US20060259632A1 (en) * 2005-05-13 2006-11-16 Yahoo! Inc. Redirection and invitation for accessing an online service
US8526463B2 (en) * 2005-06-01 2013-09-03 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
US20070298879A1 (en) * 2005-06-30 2007-12-27 Konami Digital Entertainment Co., Ltd. Game Device
US20070060373A1 (en) * 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
US7407162B2 (en) 2005-09-12 2008-08-05 Innovative Gaming Inc. Card game
US9455844B2 (en) 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method
US7613113B1 (en) * 2005-09-30 2009-11-03 At&T Corp. Method and apparatus for introducing a delay during a call setup in a communication network
US20080004116A1 (en) 2006-06-30 2008-01-03 Andrew Stephen Van Luchene Video Game Environment
US8284663B2 (en) * 2005-10-14 2012-10-09 Turbine, Inc. Selectively ordered protocol for unreliable channels
US20070094325A1 (en) 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US20070101408A1 (en) * 2005-10-31 2007-05-03 Nakhjiri Madjid F Method and apparatus for providing authorization material
US7551627B2 (en) * 2005-11-18 2009-06-23 At&T Intellecutal Property I, L.P. Offloading routing functions from network routers
US8856310B2 (en) 2005-12-22 2014-10-07 Alcatel Lucent ACORN: providing network-level security in P2P overlay architectures
US7789758B2 (en) 2006-03-10 2010-09-07 Electronic Arts, Inc. Video game with simulated evolution
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US8734254B2 (en) 2006-04-25 2014-05-27 International Business Machines Corporation Virtual world event notifications from within a persistent world game
US8128498B2 (en) 2006-06-21 2012-03-06 International Business Machines Corporation Configure offline player behavior within a persistent world game
JP4125762B2 (ja) * 2006-07-06 2008-07-30 株式会社スクウェア・エニックス オンラインビデオゲーム制御サーバ
US20080009337A1 (en) * 2006-07-08 2008-01-10 Jackson Mark D Self-authenticating file system in an embedded gaming device
US20080026845A1 (en) 2006-07-14 2008-01-31 Maximino Aguilar Wake-on-Event Game Client and Monitor for Persistent World Game Environment
US8874780B2 (en) * 2006-07-17 2014-10-28 Qualcomm Incorporated Data buffering and notification system and methods thereof
US7865717B2 (en) * 2006-07-18 2011-01-04 Motorola, Inc. Method and apparatus for dynamic, seamless security in communication protocols
AU2007203533B2 (en) * 2006-07-31 2009-11-19 Videobet Interactive Sweden AB Information updating management in a gaming system
JP2008043642A (ja) * 2006-08-21 2008-02-28 Square Enix Co Ltd ネットワーク育成ゲームシステム、育成ゲーム用サーバ装置及び育成ゲーム用端末装置、キャラクタ表示方法、並びにプログラム及び記録媒体
US20080090659A1 (en) 2006-10-12 2008-04-17 Maximino Aguilar Virtual world event notification from a persistent world game server in a logically partitioned game console
US8147327B2 (en) 2007-09-14 2012-04-03 Sony Ericsson Mobile Communications Ab Method for updating a multiplayer game session on a mobile device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9426207B2 (en) 2005-05-11 2016-08-23 Qualcomm Incorporated Distributed processing system and method
US9455844B2 (en) 2005-09-30 2016-09-27 Qualcomm Incorporated Distributed processing system and method

Also Published As

Publication number Publication date
EP1891538A2 (en) 2008-02-27
US9426207B2 (en) 2016-08-23
KR101332911B1 (ko) 2013-11-26
WO2006124357A3 (en) 2007-08-30
EP1891538A4 (en) 2009-01-21
KR20080005551A (ko) 2008-01-14
US20060259579A1 (en) 2006-11-16
US8167722B2 (en) 2012-05-01
WO2006124357A2 (en) 2006-11-23
US20120150952A1 (en) 2012-06-14

Similar Documents

Publication Publication Date Title
KR101332911B1 (ko) 분산 처리 시스템 및 방법
US9455844B2 (en) Distributed processing system and method
JP4708688B2 (ja) コンテンツに対するアクセスを管理する方法及びシステム
US7565537B2 (en) Secure key exchange with mutual authentication
US7469343B2 (en) Dynamic substitution of USB data for on-the-fly encryption/decryption
KR101525292B1 (ko) 자산 리스 관리용 시스템 및 방법
JP5713531B2 (ja) 安全確実なインスタント・メッセージング
US8302199B2 (en) Anti-cheat facility for use in a networked game environment
US11595363B2 (en) System and method to secure the transmission of files to a valid client
JP4219965B2 (ja) ワンタイムidによる認証
JP2007525913A (ja) ネットワーク・ドメインのネットワークエンドポイントにおける組込みエージェントの間で暗号化キーを共有するための方法、装置及びコンピュータプログラム製品
EP3158491B1 (en) Securing communications with enhanced media platforms
JP5122225B2 (ja) サーバとクライアント・システムとの間の通信セッションにおける状態追跡機構を履行する方法
US10560439B2 (en) System and method for device authorization and remediation
US20050021469A1 (en) System and method for securing content copyright
US20100169647A1 (en) Data Transmission
EP1387522A2 (en) Apparatus and method for securing a distributed network
US20150220891A1 (en) Method and Apparatus for Securely Distributing Digital Vouchers
CN114629671A (zh) 一种数据检测系统
KR101292760B1 (ko) 이-디알엠 보안 관리 시스템 및 그 보안 방법
WO2008050146A2 (en) Protecting data from access in online game

Legal Events

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