1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Multiple Processor Systems
Distributed Processing, Client/Server and Clusters
Scheduling in Web Server Clusters CS 260 LECTURE 3 From: IBM Technical Report.
Database Architectures and the Web
Network+ Guide to Networks, Fourth Edition
Online Educational Game of Snakes and Ladders -Shalini Pradhan -Manali Joshi -Uttara Paingankar -Seema Joshi.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Chapter 10 Site Architecture McGraw-Hill/Irwin Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved.
Distributed Processing, Client/Server, and Clusters
Business Continuity and DR, A Practical Implementation Mich Talebzadeh, Consultant, Deutsche Bank
Technical Architectures
City University London
Introduction to Web Database Processing
1 Database Architectures Modified from …..Modern Database Management Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
Architecture & Performance Community Place case study Presented by u Jin Hyung, SEO.
Network+ Guide to Networks, Fourth Edition Chapter 1 An Introduction to Networking.
DISTRIBUTED COMPUTING
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
Online Game JAVA for PDA WAP for Mobile Phone. Java for PDA  Hardware limit - Java API Power Memory  JDK 2M byte. Connectivity Display size.
N-Tier Architecture.
For more notes and topics visit:
Massively Multiplayer Online Games and Mobile Devices.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Network+ Guide to Networks, Fourth Edition Chapter 1 An Introduction to Networking.
A brief overview about Distributed Systems Group A4 Chris Sun Bryan Maden Min Fang.
Database Design – Lecture 16
Version 4.0. Objectives Describe how networks impact our daily lives. Describe the role of data networking in the human network. Identify the key components.
Application Layer CHAPTER 2. Announcements and Outline  Administrative Items  Questions? Recap 1.Introduction to Networks 1.Network Type 2.N etwork.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
1 Client Server Architecture over the Internet Week - 2.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
1 Network Gaming. History of Network Gaming MUD MUD –Multi-user Dungeons Modem Games Modem Games Match Makings Match Makings –Real-time strategy –FPS.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
1 Distributed Systems: an Introduction G53ACC Chris Greenhalgh.
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
© 2005 Erlang Training and Consulting Ltd Massively Multiplayer Online Game Servers Analysing the needs of an Erlang/OTP Virtual World Distributed Server.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
OS2- Sem ; R. Jalili Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Cloud Computing Computer Science Innovations, LLC.
1 CEG 2400 Fall 2012 Network Servers. 2 Network Servers Critical Network servers – Contain redundant components Power supplies Fans Memory CPU Hard Drives.
Cluster computing. 1.What is cluster computing? 2.Need of cluster computing. 3.Architecture 4.Applications of cluster computing 5.Advantages of cluster.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
A Complete Guide to Select the Best VPS Hosting Providers.
Chapter 1 Characterization of Distributed Systems
COMPSCI 110 Operating Systems
OpenMosix, Open SSI, and LinuxPMI
Integrating HA Legacy Products into OpenSAF based system
SCTP Handoff for Cluster Servers
Definition of Distributed System
Principles of Network Applications
Network Load Balancing
#01 Client/Server Computing
Parallel Programming in C with MPI and OpenMP
An Introduction to Computer Networking
Mobile Agents.
Introduction to Databases Transparencies
#01 Client/Server Computing
Presentation transcript:

1 MMORPG Servers

2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society & Community Friends Friends Combat Combat NPCs / Monsters NPCs / Monsters Experience Points Experience Points Extended Game Contents Extended Game Contents Online Customer Services (GM) Online Customer Services (GM)

3 MMORPGs Technical Elements Client-server Architecture Client-server Architecture Servers Servers Network Bandwidth Network Bandwidth Network Data Packet Network Data Packet Network Security Network Security Graphics Graphics Database Database

4 MMORPG Servers Stand Alone Servers Stand Alone Servers Distributed System Distributed System

5 Standalone Server Using a Set of Large Servers as the Game Servers Using a Set of Large Servers as the Game Servers Each Server Plays as a Single Function Each Server Plays as a Single Function Login server internet Game playCommunity Database

6 Distributed System - Concept Distributed PC Clusters Distributed PC Clusters servers internet Game play servers servers Database servers servers Login servers

7 Distributed PC Clusters 1-U Web Server Based on PC Architecture 1-U Web Server Based on PC Architecture Two CPUs Two CPUs Two Network IPs Two Network IPs 1U server Net IP 1Net IP 2 Internal LAN Internet

8 Distributed System - Features Distributed PC Clusters Distributed PC Clusters –Two IPs Scalability Scalability Fault Tolerance Fault Tolerance Load Balance Load Balance Dynamic Zoning Dynamic Zoning “Blade Servers” “Blade Servers”

9 Distributed System - Scalability Serve concurrent 500 users Serve concurrent 1000 users Regional Operation Consideration Regional Operation Consideration Cost Effective Cost Effective Flexible Capacity Flexible Capacity

10 Distributed System – Fault Tolerance All Servers Can Not Be Down in Anytime All Servers Can Not Be Down in Anytime For Distributed Servers, Every Job Must Be Transferred Between Servers For Distributed Servers, Every Job Must Be Transferred Between Servers For Standalone Server, Use Redundant Policy For Standalone Server, Use Redundant Policy

11 Master server Slave server A Slave server B ! ! Internal LAN Internet

12 Master server Slave server A Slave server B X Internal LAN Internet

13 Server on duty Server off duty ZZZZZZ ! ! Redundant Policy

14 Server off duty Server on duty X Redundant policy

15 Master servers Slave server A Slave server B Internal LAN Internet....

16 Distributed System – Load Balance Distributed MMOGs Always Do the Load Balance by In-house Approach Distributed MMOGs Always Do the Load Balance by In-house Approach Load ? Load ? –CPU bound –Memory bound –Network bandwidth 1 server = 500 concurrent players 10 servers = 5000 concurrent players X ! It’s very important to move the jobs on a crowded server to another ones on a crowded server to another ones

17 Master server Slave server A Slave server B Internal LAN Internet Load balance – case 1

18 Master server Slave server A Slave server B ! ! Internal LAN Internet Load balance case 2

19 Master server Slave server A Slave server B Internal LAN Internet Load balance case 2

20 Zone Concept A “Zone” is Logically a Region of Game Happening on Servers A “Zone” is Logically a Region of Game Happening on Servers We Always Map the “Zone” to a Physical 3D Scene We Always Map the “Zone” to a Physical 3D Scene A Zone is Not Really a Physical Hardware Server A Zone is Not Really a Physical Hardware Server But a Software Region that the Players Communicating Directly (in the same memory block) But a Software Region that the Players Communicating Directly (in the same memory block)

21 Master server Slave server A Slave server B Internal LAN Internet

22 messaging Server A Server B combating transaction Zone X Zone Y Zone Z NPC messaging Server C

23 Interaction within/between Zones (Game Play) Within Zone Within Zone –Combating –Chatting –Transaction Between Zones Between Zones –Messaging –Transaction (remote) –Banking

24 Server A Server B Zone X Zone Y Zone Z NPC Server C If server B is over-loaded, move the “Zone Y” or “Zone Z” to an available server C Zone Z

25 Load Balance Using Zone Moving Under the Concept of “Zone Moving”, We Can Move the Zones Between Hardware Server to Achieve the Load Balance Under the Concept of “Zone Moving”, We Can Move the Zones Between Hardware Server to Achieve the Load Balance But is This a Total Solution to Solve the Load Balance ? But is This a Total Solution to Solve the Load Balance ? Condition : Condition : Server A Server B Server C If server A is over-loaded, the whole server is over-loaded due that server A is occupied only one zone. Thinking : “Can we divide the zone into two or more ? “ Zone X Zone Y Zone Z

26 Dynamic Zoning Dynamically Adjust the Zones to Meet the Loading Requirement Dynamically Adjust the Zones to Meet the Loading Requirement Moving Zones between Hardware Moving Zones between Hardware Divide the Zone into Small Ones According to the Load and Move the Small Ones to Different Hardware Divide the Zone into Small Ones According to the Load and Move the Small Ones to Different Hardware

27 My Suggestion about Dynamic Zoning (1) A “Zone” is Mapping to a Physical Scene or Map (geometry) A “Zone” is Mapping to a Physical Scene or Map (geometry) A Zone is Composed by Several Groups A Zone is Composed by Several Groups A “Group” is a Collection of Players (Population) A “Group” is a Collection of Players (Population) All Players in the Same Group Running in One Same Process All Players in the Same Group Running in One Same Process Players in Different Group Communicate between Processes Players in Different Group Communicate between Processes –Inter-process communication (IPC) ?

28 My Suggestion about Dynamic Zoning (2) Group is More Dynamically Due to Based on the Concept of Population Group is More Dynamically Due to Based on the Concept of Population –Create –Delete –Move

29 Zone = A 3D Scene A 3D Scene A 3D Scene –3D models –Moving objects –NPCs –…–…–…–… Zones are Physically Neighboring Together Zones are Physically Neighboring Together Using Portals to Connect the Relationship Using Portals to Connect the Relationship Player Travels between Zones Player Travels between Zones –Logout current scene and login to another neighboring zone when stepping on the zone portal –Player in client will feel a little hanging during the moving

30 Zone Portals Zone X Zone Y Portal

31 Zone Portals Zone X Zone Y Portal

32 Population Group A Data Structure to Contain the Players A Data Structure to Contain the Players When a Player Logins into one Zone, He Should Be Assigned into One Available Population Group and Got the ID When a Player Logins into one Zone, He Should Be Assigned into One Available Population Group and Got the ID Players Should Not Be Moved Between Population Groups When He Is Staying in this Zone Players Should Not Be Moved Between Population Groups When He Is Staying in this Zone A Zone Can Be Divided into Several Groups A Zone Can Be Divided into Several Groups Group can be Created/Deleted/Moved by the Servers for Load Balance Group can be Created/Deleted/Moved by the Servers for Load Balance

33 Players in a Zone Zone X P1G1 P5G1 P2G2 P7G2 P12G2 P6G3 P5G3

34 Server A Server B Zone X Group 1Group 2 When a new player logins into Zone X, insert the player into group 2 which has space for new comer

35 Server A Server B Zone X Group 1Group 2 But if there are no groups with available space, create a new group for new comers Group 3

36 Server A Server B Zone X Group 1Group 2Group 3Group 4Group 5Group 6 If the Zone X on Server A is full for new comer, duplicate Zone X on Server B and create a new group for new players Zone X (2) Group 7

37 Server A Server B Zone X Group 1Group 2Group 3Group 4Group 5Group 6 Zone X (2) Group 7Group 8 IPC Network communication

38 The Challenge of Dynamic Zoning Physical Terrain and Models Are not Easy to Divide Dynamically Physical Terrain and Models Are not Easy to Divide Dynamically –If your zones are coupling with the physical scenes, to divide the geometric data in runtime needs some specific algorithms for 3D scenes –From my suggestion, don’t do it –Find a mechanism that makes the zone dividable –And that is the “Population Group” One Server Can Have Multiple Zones Running One Server Can Have Multiple Zones Running One Zone Can Run on Several Servers One Zone Can Run on Several Servers –Hard to code –Duplicated memory on servers –Synchronization between servers –Data communication overhead

39 The Challenge of Dynamic Zoning (2) Game Play Sensitive Game Play Sensitive Running Players in the Same Zone by Multiple Processes Running Players in the Same Zone by Multiple Processes –Duplicated memory on the same server –Synchronization between processes –Data communication between processes Players’ Attribute Data Should Be Classified as : Players’ Attribute Data Should Be Classified as : –Frequently used between players »Must be duplicated between processes –Seldom used between players »Send between players when necessary –Locally used by player himself Cross-platform Server API Design* Cross-platform Server API Design* * Hand drawing on white board