A Distributed Architecture for Massive Multiplayer Online Role-Playing Games
|
|
|
- August Barrett
- 9 years ago
- Views:
Transcription
1 A Distributed Architecture for Massive Multiplayer Online Role-Playing Games Marios Assiotis Velin Tzanov May 13, 2005 Abstract We present an approach to support Massively Multiplayer Online Role-Playing Games using a centralized distributed architecture by splitting the large virtual world into smaller areas. Our approach takes significant advantage of the locality of interest such games exhibit to reduce the bandwidth requirements for both game servers and clients. We also propose a solution to the hard problem of interaction between players residing on areas handled by different servers. We have also implemented a simple game, AlienBorder which demonstrates the correctness of our approach as well as the relative performance benefits of writing new games using a distributed architecture versus a non-distributed one. 1 Introduction In this paper we propose a centralized, distributed architecture for Massive Multiplayer Online Role- Playing Games (MMORPG), to support a large number of concurrent users, without sacrificing efficiency or security. The primary contribution of this paper is architectural. We take advantage of the locality of interest data exhibits in an MMORPG to separate the large world into smaller individual regions and assign each region to a different physical machine. Our most important technical contribution is a design that handles game scenarios occurring in an area near the virtual border separating two or more servers. Existing systems solve this problem by using inner-game mechanisms such as water, tunnels or teleports. We present a novel way that allows for game event to execute normally in such areas while being completely transparent to the user and not increasing the latency between game client (player) and server significantly. Although we do not discuss fault-tolerance, our design allows for a number of techniques to be applied. A short discussion about faulttolerance is included in the end. The rest of the paper is organized as follows: Section 2 presents some previous work done on MMORPG systems while section 3 provides background material for MMORPGs. Sections 4 and 5 present the challenges we faced and how our design solves the major issues identified. Section 6 discusses the implementation of AlienBorder, a simple game built using our architecture, used to demonstrate the feasibility of our design as well as evaluate the performance of it. Finally section 7 concludes with our results and discusses shortcomings and future work. 2 Related Work In this section, a number of other approaches are discussed as well as the various problems each one has. Client/Server In this architecture a single server is responsible for holding the entire game state and han- 1
2 3.1 Virtual World Assiotis, Tzanov dling all clients. Obviously this can not handle the extremely big load required by MMORPG. Such an approach is typically used in First Person Shooter games such as Quake and Doom. Mirrored Game Architecture Similar to the client/server architecture, although the clients are balanced across a large number of servers. Each server holds an identical copy of the game world. Cronin et al[cfkj01], discuss such an architecture as well as an efficient yet complex synchronization scheme[cfkj02]. Unfortunately, it becomes very hard to maintain consistency among all servers in such a highly variable environment, with thousands of concurrent players. In addition to that, each single server may not have the processing power to evolve the entire world(game AI). Peer-to-peer A lot of current research trends are towards P2P systems[klxh, BRS02], which although interesting are not pragmatic in a real-world commercial setting. P2P systems exploit the locality of interest feature in MMORPG, much like our proposed architecture. However, in P2P systems, the game state is stored in the clients, with each client being responsible for a small region. Clients multicast updates to other peers. However, lack of an established IP Multicast solution, forces such architectures to consume a lot of bandwidth. In addition, P2P systems do not currently have a reasonable way to handle cases were areas of interest overlap 1, other than use game mechanisms such as a tunnel or a teleport. 3 MMORPG We now move to discuss a few key characteristics of MMORPG. Readers familiar with Role Playing Games can skip this section. 1 the so-called player on region border scenario which we discuss extensively 3.1 Virtual World MMORPG attempt to simulate real-life as much as possible. As such it is necessary to constantly evolve the game world using a set of laws. These laws are a complex set of rules that the game engine applies with every clock tick. A trivial example of such a rule is a player walking near an animal (NPC) and as a consequence of that action, the animal would attack the player. The virtual world consists not only of human players but also of all game elements that are not living objects. These elements are immutable and include the area terrain, trees, mountains, rivers, etc. 3.2 Player A player is defined as a single human player, that controls a single character represented by an avatar in the virtual world. Each player has a unique state consisting of several character properties. Such properties typically are health, abilities, belongings and other depending on the specifics of the game. In a typical game the player would take on missions or quests that require traveling in different parts of the virtual world. 3.3 Non-player characters A large number of non-player characters (NPC for short) such as animals and even computer controlled opponents make their appearance throughout MMORPG. Human players can interact with NPC just as if they are other human players. 3.4 Events An event is an action that happens in the world and changes some state in it. Examples are a player walking, shooting a gun or casting a spell. These actions have direct and indirect consequences to the state of the world. For example a player walking changes the players own internal state which is a subset of the world state. Events contain all the information required for the game 2
3 Design Assiotis, Tzanov engine to execute the event. For example, if the event is shoot a bullet, the included information might be the type of gun used, the location of the player shooting the bullet as well as the location of the target. 4 Goals and Challenges We list some of the challenges faced while developing an MMORPG. Ability to handle a very large number of simultaneous users. As the information transferred between the players and the game server is large, the bandwidth required to support a huge number of players if enormous. Very large virtual worlds require huge computational power to simulate the existence of life (AI Algorithms). No single processor machine can handle the computational load required. As it will be explained in detail later, our proposed architecture works by splitting the large virtual world into different smaller areas and assigning each area to be handled by a separate physical machine (server). Therefore both the bandwidth and computational load is spread out. Although our proposed architecture is straightforward, we faced a number of challenges specific to our architecture. These were : Players are not interested in receiving events that do not pertain to them. For example, a player should not receive an event update about a bullet being fired far away from the players current location. It is unclear what should happen when a player is near the border that separates the virtual area handled by two or more servers. Players near the border should be able to see each other and interact. Events that occur in an area near a border separating two or more servers can affect players that reside on different servers. Thus there exists a non-trivial probability that the game state will be invalid if an appropriate synchronization scheme is not in place. Our goal was to develop an architecture that solves all the above problems. The hardest problem by far was to maintain consistency when events occur near the border between two or more machines. Our design can be easily extended to be faulttolerant. Although fault-tolerance and quick recovery from crashes is a major concern for MMORPG, it is a separate issue that escapes the scope of this paper. There exists an abundance of previous work done on fault-tolerance in real-time on-line games. Although we do not discuss these in detail, a short discussion about fault-tolerance is included. 5 Design 5.1 Overall Architecture Figure 1: The squares represent different servers each one with handling a separate area of the virtual world The overall system architecture builds upon the locality of interest players exhibit. Based on this players can be grouped together based on their location in the virtual world. Therefore the virtual world can be divided into smaller areas - with each area being assigned to a different 3
4 5.4 Inter-Server Interaction Assiotis, Tzanov Each subdivision of the virtual world, although smaller than the entire virtual world, is still quite large. However the area of interest of a single player is very limited and usually relates simply to the sensory capabilities of the players character. Naturally, a player would not be interested in things that he can not see or hear[klxh]. We can therefore reduce the communication required between the game server and the game client (the player) by defining Areas of Interest. An example is shown in figure 2. The size of the area of interest depends on the player type. For example a player with a sniper rifle will have a larger area than a player without one. Using a publish/subscribe system [FWW02, CKSW02] allows players to subscribe only for events that interest them. A novelty of our architecture is that the subscription of players to events inside their area of interest happens automatically depending on the players location inside the virtual world. The server is responsible for updating the player for any events that occur inside his area of interest. Figure 2: The concept of an area of interest with multiple servers. From left to right, the first players area of interest lies entirely in the first server. The second and third players also lie entirely inside the second server. The fourth players area of interest spans across server 3 and server 4. server as shown in figure 1. This section discusses the various design decisions 5.2 Events We abstract all actions during a game by introducing the notion of an event. Our events follow the general principles described in section Area of Interest 5.4 Inter-Server Interaction As multiple servers handle different areas of the same virtual world, there are instances when a server would be required to communicate with another server. In our architecture this is not very different from client-server communication. Servers subscribe to their neighboring servers much like players, with an area of interest of all points close enough to the border between the two servers. For example, assume a virtual world handled by two servers, R and L, such that R handles the rightmost area and L the leftmost area. In our system, R will be subscribed to L rightmost area. The benefits of this approach will become more apparent as we discuss interaction among players near server borders. 5.5 Player on region border A very hard yet interesting problem is when a players area of interest covers an area that spans across servers as shown in figure 2. There are four distinct scenarios 1. A player whose area of interest spans multiple servers needs to be able to see events that occur in multiple servers. For example consider a player standing near the border looking towards a region handled by a different server. The player should be able to see other players within his area of interest, even if those players are in a region handled by a different server than the players one. 2. A player while moving may suddenly move into a region that is handled by a different server 3. An event that originated in an area covered by one server may end in a region covered by a different server. For example, consider 4
5 5.5 Player on region border Assiotis, Tzanov Figure 3: An example of two adjacent game servers and two clients P 1 and P 2 each inside an area handled by a different server yet being able to see each other a player shooting a rocket that must land in a region handled by a different server 4. An event that occurs near the border may simultaneously affect regions covered by one or more different servers than the one it originated at. An example of this would be a large bomb exploding near the border, affecting players nearby; players could possibly reside in separate servers. To see how our architecture handles each scenario, first recall that servers are subscribed to their neighboring servers and receive events that happen near the border. Assume a player P 1 inside an area handled by server R and a player P 2 inside an area handled by server L. Servers R and L are adjacent to each other - i.e they handle adjacent areas. This setup is shown in figure 3. We now proceed to describe each scenario. First Case Under this scenario if players P 1 and P 2 are near the border then they should see events originating from each other. As soon as P 2 walks to the rightmost area of server L, server R will automatically subscribe P 2 to it. P 2 will now begin to receive events in R, such as the existence of P 1. Similarly P 1 who is inside an area handled by R is also able to receive events about player 5 P 2 from L, reason being that P 1 is automatically subscribed to L when he enters L s area of interest. The entire process is transparent to the player who does not notice he is receiving events from two different servers. Second Case Moving from one region to the other implies a transfer of game state from one server to another. Suppose P 1 moves towards the area handled by server L and eventually crosses over. What will happen is that server R will send an event to server L and let it know that it now owns player P 1. The event will include all of P 1 state. In our architecture the players state also includes a set of all other players and servers that currently know about P 1. In our specific example this includes P 2 and servers R and L. Events for P 1 that occur while the transfer is in progress will be forwarded to L and will arrive after the state transfer is over as the network protocol preserves the order of messages. After the state transfer has finished, L will contact P 1 with a message to contact L from now on instead of R. The entire state transfer operation consists of a single message between the two servers. Therefore it executes very quickly and the player does not notice. Third Case Assume a player shoots a rocket from server L towards server R. In this case server R will receive two event notifications. The first event is a natural consequence of servers being subscribed to each other and is received when the rocket is shot. Server R now knows the velocity of the rocket can predict its position at any point in time. The second time server R receives the event from server L is when the rocket actually crosses the border boundary. Server R can now recalculate the position of the rocket and accept one of the two calculations - naturally it chooses
6 5.6 Fault Tolerance Assiotis, Tzanov the one that allows the rocket to go through a given place sooner. This entire process is not noticeable to the players. All players will receive event notifications about the rocket as soon as it is shot or when it enters their area of interest. Players may receive additional event notifications regarding possible effects of the rocket (i.e the rocket hit someone). In the unlikely event that an event should occur during the short time in which the state is transfered, the user will experience a delay equal to a one-way trip between the two servers. Assuming a fast network back-end connecting all the game servers, this added latency will not be noticeable at all to the end user. Fourth Case The fourth case although the hardest, reflects the distinctive features of the entire architecture. It is paramount to clearly conceptualize the difference between local events and shared events. Local events occur on only one server although another server may see them if they close to the border. Shared events affect more than one server at the same time. The biggest challenge with shared events is to maintain consistency during the event across multiple servers. It can easily be seen that these events must affect the state of the game in a way that is equivalent to some serial order or execution of those events. On every neighboring pair of servers, we introduce the notion of a primary server. Without loss of generality arbitrarily designate the primary server to be the one with the lowest ID. Each server takes care of ordering its own local events. The primary server is responsible for ordering among shared events. Therefore whenever a shared event originates on the primary server (such as a large bomb exploding), the primary server executes it and notifies the other interested servers. If a shared event however originates on a secondary server, it first notifies the primary server of the event and waits until the primary server sends a notification event back. This technique guarantees serializability of the events and it introduces an additional latency to the client equal to at most the cost of a round-trip inter-server communication message in the case the event originates on a secondary server. No additional latency is introduced if the shared event originates at the primary server. Naturally, the same technique can be generalized for border corners - locations on the world where there is an intersection of three or four different server areas. In this case we again notify the primary server, which has the lowest ID. Then it notifies the server with the next smaller ID and then, if needed, the latter notifies the server with the next smaller ID. Since we can arrange the servers so that at most three servers have a common border, we can obtain an upper bound on the number of inter-server messages equal to three. 5.6 Fault Tolerance In the event of a server crash, the system should recover the entire state of the world it represents as it was prior to the crash very quickly and as transparently as possible. Our architecture is not inherently fault-intolerant, unlike P2P architectures. As every communication in the system is encapsulated inside an event, it is easy for each server to maintain a log file of all events received and in the event of a crash replay the log. Of course players that happen to be located in the area handled by the server that failed would be locked out while the server is restarting. To prevent that from happening a mirrored, replicated system as described by Cronin et al [CFKJ02] could be used. 6 Implementation We have implemented a simple game unimaginatively called AlienBorder, to demonstrate the most important aspects of our architecture as 6
7 Evaluation Assiotis, Tzanov well as measure the relative performance gains of the distributed approach. ConnectEvent Sent from a player to a server during the initial connection 6.1 RPC Subsystem AlienBorder is built on top of the Java Remote Method Invocation subsystem. Although this is inefficient from a performance perspective, it allows for a clear event-driven design that clearly demonstrates how our architecture works. JAVA RMI presents a lightweight broker to the programmer with robust facilities for remote method invocation[jav] Asynchronous Calls Java RMI does not support asynchronous remote method calls. We have therefore implemented When an event is sent between a client and a a separate subsystem for asynchronous method server, vice-versa or event between two servers, it invocations. The ThreadManager object manages is placed in a queue. On the game client a timer a pool of threads for each server. When the server wishes to invoke a remote method without blocking, it wraps the method call inside a which ticks as to accommodate the refresh rate of the users graphical display, executes events in the queue. Callback object and passes it to the ThreadManager On the game server events are executed immediately object, which in turn assigns it to a HelperThread object running in a separate thread. The method call returns immediately and the ThreadManager becomes now responsible for executing the call in a separate thread. but they only change the internal state of the server. A timer which ticks as to simulate the passing of time then executes a procedure during which the changes in the servers internal state are reflected in the game clients and neighboring servers. 6.2 Map and Objects The game map is simply a terrain of variable size. For our demo purposes we have implemented two kinds of objects, mobile ones that can be picked up by players (rockets, flying rockets) and static ones (planets, walls). Players are also mobile game objects. 6.3 Events and Event Handling Our architecture requires that all updates in the state of the game occur via an event. Below is a non-exhaustive list of the events in AlienBorder : 7 ConnectACKEvent Sent from the game server to the player confirming the connection and loading the initial player state on the game client NewPosEvent Sent during position updates MeetPlayerEvent Sent from the game server to the player when another player enters the first players area of interest. TransferPlayerEvent Sent from one server to another when a player crosses the border boundary. 7 Evaluation This section presents the results we obtained using AlienBorder, built on top of Java RMI. 7.1 Empirical Results We run a version of AlienBorder on a local network of PCs using a GUI game client which drew the world on screen and allowed to user to move and fire rockets using the mouse. The GUI also displayed the server borders. As such we tried to manually create failure scenarios by simultaneously firing, constantly crossing the virtual server border back and forth, etc.
8 7.2 Experimental Results Assiotis, Tzanov Our solution passed all tests successfully. Despite the lack of optimizations, the game was very playable. 7.2 Experimental Results We run a version of AlienBorder on a large heterogeneous cluster. To do so we used Emulab [WLS + 02] to configure a network topology of multiple servers and clients. All game servers were connected to a high-speed LAN with virtually zero latency and zero packet loss rate. Game clients were configured with various latencies ranging from 10ms to 200ms and variable packet loss rates, ranging from 0 to 0.3%. The hardware configuration consisted of 3GHz Pentium IV PCs with 1GB of RAM running Red- Hat Linux 9.0 for the game servers and i586 variants for the game clients. We used a game client which simulated player behavior on the virtual world. We measured the total cumulative time our program took to perform 4000 clock ticks in steps of 1000 ticks. From that we measured how much was spent evolving the virtual world (recall that the world evolves once per tick) and how much time was spent in handling events. To evaluate our experimental results we used four metrics : 3. Time the game server spent evolving the world during each tick. 4. Percentage of game events received by single client compared to the overall number of game events sent by the server over the duration of a game. The first metric is an overall good measure of how overloaded a CPU is. A large number here 2 evolve the world 1000 times Figure 4: The performance of a single server when one hundred players and when two hundred. All server metrics are displayed. It can be seen that the server performs much worse as more clients gradually connect. In the end it requires six times more than optimal to evolve the world at each tick shows that the server was forced to waste cycles on other tasks and could not keep up. In a real world deployment this would significantly reduce gameplay. For comparison we show the results of a single server with no clients. The second metric shows if the game server is forced to spent most of the time processing events received by clients. The third metric is similar to the previous one but shows if the game server is forced to 1. Time server required to execute 1000 virtual clock ticks 2. spent too many CPU cycles at each tick. Lastly, the fourth metric shows if areas of interest have 2. Time the game server spent processing events it received. helped reduced the number of events received by the client and thus are a useful measure of not only CPU consumption by the clients but also of the network bandwidth usage per player. Figure 4 shows the results when testing a single server. It can be easily seen that a single server can not scale very well. Figure 5 shows the results when testing our architecture with just three servers and four hundred clients. Our architecture with three servers performs vastly better than a single server architecture, being able to handle twice as many players and taking a smaller performance hit at the same time. 8
9 Conclusions and Future Work Assiotis, Tzanov Figure 6 compares our architecture when a large number of players are located near the border. Our solution for the border case performs very well, no worse than when players are dispersed randomly in the game world. Evidently, our results have shown that our distributed architecture performs significantly better than a non-distributed one. In addition to that, we show that even with heavy activity near server borders our architecture does not take a significant performance hit. 8 Conclusions and Future Work Figure 5: The performance of three servers using our architecture when two and four hundred players. With four hundred clients our architecture needs just four times more than optimal to evolve the world at each tick Figure 6: The performance of three servers using our architecture with two hundred players. This time the players initialized and remained near the virtual server borders. For comparison the previous results from the normal case when players spawned randomly are included. In this paper we present a novel centralized, distributed architecture for MMORPG. Our solution takes advantage of the locality of interest to distribute the game across several game servers and reduce both the computational strain as well as the bandwidth requirements on each one. Furthermore a solution to the problem of handling game events occurring near virtual borders is shown and a proof-of-concept demo is provided. Even though our architecture was built with MMORPG in mind, there is no reason why it can not be extended to other types of games such as First Person Shooters. In conclusion, we have shown that a new game written with our architecture in mind can perform much better than a game written as a simple client/server and discuss why non-centralized peer-to-peer have problems that make them nonpragmatic for real-world commercial deployment. In the future, much work is needed especially in the area of fault-tolerance. We are experimenting with techniques such as log files and replication to see how well they perform inside our design. In addition, this paper does not account for persistent world states stored in databases or very computationally intensive game AI algorithms. Our architecture however could be extended to support all the above. 9
10 REFERENCES Assiotis, Tzanov References [BRS02] [CFKJ01] [CFKJ02] Ashwin R. Bharambe, Sanjay Rao, and Srinivasan Seshan. Mercury: a scalable publish-subscribe system for internet games. In NETGAMES 02: Proceedings of the 1st workshop on Network and system support for games, pages 3 9, New York, NY, USA, ACM Press. Eric Cronin, Burton Filstrup, Anthony R. Kurc, and Sugih Jamin. A distributed multiplayer game server system. May Eric Cronin, Burton Filstrup, Anthony R. Kurc, and Sugih Jamin. An efficient synchronization mechanism for mirrored game architectures. In NETGAMES 02: Proceedings of the 1st workshop on Network and system support for games, pages 67 73, New York, NY, USA, ACM Press. [CKSW02] Sergio Caltagirone, Matthew Keys, Bryan Schlief, and Mary Jane Willshire. Architecture for a massively multiplayer online role playing game engine. J. Comput. Small Coll., 18(2): , [FWW02] Stefan Fiedler, Michael Wallner, and Michael Weber. A communication architecture for massive multiplayer games. In NETGAMES 02: Proceedings of the 1st workshop on Network and system support for games, pages 14 22, New York, NY, USA, ACM Press. [HB03] Tristan Henderson and Saleem Bhatti. Networked games: a qos-sensitive application for qosinsensitive users? In RIPQoS 03: Proceedings of the ACM SIGCOMM workshop on Revisiting IP QoS, pages , New York, NY, USA, ACM Press. [jav] Java Distributed Systems Home Page. [KLXH] [LP04] Björn Knutsson, Honghui Lu, Wei Xu, and Bryan Hopkins. Peer-topeer support for massively multiplayer games. Hunjoo Lee and Taejoon Park. Lecture Notes in Computer Science, chapter Design and Implementation of an Online 3D Game Engine, pages Springer-Verlag GmbH, [Mac04] Dean Macri. The scalability problem. Queue, 1(10):66 73, [SSR + 04] Anees Shaikh, Sambit Sahu, Marcel Rosu, Michael Shea, and Debanjan Saha. Implementation of a service platform for online games. In SIGCOMM 2004 Workshops: Proceedings of ACM SIGCOMM 2004 workshops on NetGames 04, pages , New York, NY, USA, ACM Press. [WLS + 02] Brian White, Jay Lepreau, Leigh Stoller, Robert Ricci, Shashi Guruprasad, Mac Newbold, Mike Hibler, Chad Barb, and Abhijeet Joglekar. An integrated experimental environment for distributed systems and networks. In Proc. of the Fifth Symposium on Operating Systems Design and Implementation, pages , Boston, MA, December USENIX Association. 10
A Survey of MMORPG Architectures
A Survey of MMORPG Architectures Sakib R Saikia March 20, 2008 Abstract This paper discusses the main architectural considerations for a Massively Multiplayer Online Role Playing Games. It outlines the
An Efficient Hybrid P2P MMOG Cloud Architecture for Dynamic Load Management. Ginhung Wang, Kuochen Wang
1 An Efficient Hybrid MMOG Cloud Architecture for Dynamic Load Management Ginhung Wang, Kuochen Wang Abstract- In recent years, massively multiplayer online games (MMOGs) become more and more popular.
Architecture for a Massively Multiplayer Online Role Playing Game Engine
Architecture for a Massively Multiplayer Online Role Playing Game Engine Sergio Caltagirone [email protected] Bryan Schlief [email protected] Matthew Keys [email protected] Mary Jane Willshire, PhD [email protected]
The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.
The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide
QoS Issues for Multiplayer Gaming
QoS Issues for Multiplayer Gaming By Alex Spurling 7/12/04 Introduction Multiplayer games are becoming large part of today s digital entertainment. As more game players gain access to high-speed internet
Using Fuzzy Logic Control to Provide Intelligent Traffic Management Service for High-Speed Networks ABSTRACT:
Using Fuzzy Logic Control to Provide Intelligent Traffic Management Service for High-Speed Networks ABSTRACT: In view of the fast-growing Internet traffic, this paper propose a distributed traffic management
Extensible Network Configuration and Communication Framework
Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood Applied Research Laboratory Department of Computer Science and Engineering: Washington University in Saint Louis
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 [email protected] Chapter 2 Architecture Chapter Outline Distributed transactions (quick
The Matrex Client/Server Specification 1.1
The Matrex Client/Server Specification 1.1 Table of Contents The Matrex Client/Server Specification 1.1...1 Introduction...1 A usage scenario...2 New project...4 Open project...5 Recently used projects...6
Implementing a Distributed Architecture for MMO based Asteroids
Implementing a Distributed Architecture for MMO based Asteroids DANIEL TRUONG GEORGE ZHANG RODRICK YU SERGUEI MICHTCHENKO ABSTRACT We present a distributed architecture for a Massively Multiplayer Online
Technical document. Group 3 Mate Tomin Pieter van Ede Raymond Weijermars Daniel Faustino Stefan Hospes
Technical document Group 3 Mate Tomin Pieter van Ede Raymond Weijermars Daniel Faustino Stefan Hospes Table of contents 1) Introduction... 2 2) System setup... 2 3) Implementation overview... 4 3.1) Client-side...
Virtual machine interface. Operating system. Physical machine interface
Software Concepts User applications Operating system Hardware Virtual machine interface Physical machine interface Operating system: Interface between users and hardware Implements a virtual machine that
How To Understand The Concept Of A Distributed System
Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz [email protected], [email protected] Institute of Control and Computation Engineering Warsaw University of
Distributed Dynamic Load Balancing for Iterative-Stencil Applications
Distributed Dynamic Load Balancing for Iterative-Stencil Applications G. Dethier 1, P. Marchot 2 and P.A. de Marneffe 1 1 EECS Department, University of Liege, Belgium 2 Chemical Engineering Department,
There are a number of factors that increase the risk of performance problems in complex computer and software systems, such as e-commerce systems.
ASSURING PERFORMANCE IN E-COMMERCE SYSTEMS Dr. John Murphy Abstract Performance Assurance is a methodology that, when applied during the design and development cycle, will greatly increase the chances
Lab - Dual Boot - Vista & Windows XP
Lab - Dual Boot - Vista & Windows XP Brought to you by RMRoberts.com After completing this lab activity, you will be able to: Install and configure a dual boot Windows XP and Vista operating systems. Explain
Chapter 1 - Web Server Management and Cluster Topology
Objectives At the end of this chapter, participants will be able to understand: Web server management options provided by Network Deployment Clustered Application Servers Cluster creation and management
A Service Platform for On-Line Games
A Service Platform for On-Line Games Debanjan Saha Sambit Sahu Anees Shaikh Network Services and Software IBM TJ Watson Research Center Hawthorne, NY 10598 {dsaha,sambits}@us.ibm.com, [email protected]
Load Testing and Monitoring Web Applications in a Windows Environment
OpenDemand Systems, Inc. Load Testing and Monitoring Web Applications in a Windows Environment Introduction An often overlooked step in the development and deployment of Web applications on the Windows
TIBCO ActiveSpaces Use Cases How in-memory computing supercharges your infrastructure
TIBCO Use Cases How in-memory computing supercharges your infrastructure is a great solution for lifting the burden of big data, reducing reliance on costly transactional systems, and building highly scalable,
INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)
INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print), ISSN 0976 6367(Print) ISSN 0976 6375(Online)
Microsoft DFS Replication vs. Peer Software s PeerSync & PeerLock
Microsoft DFS Replication vs. Peer Software s PeerSync & PeerLock Contents.. Why Replication is Important. 2 The Original Purpose for MS DFSR. 2 Best Scenarios for DFSR. 3 When DFSR is Problematic. 4 The
The Service Availability Forum Specification for High Availability Middleware
The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum [email protected], [email protected],
Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration
Efficient Scheduling Of On-line Services in Cloud Computing Based on Task Migration 1 Harish H G, 2 Dr. R Girisha 1 PG Student, 2 Professor, Department of CSE, PESCE Mandya (An Autonomous Institution under
Dynamic Thread Pool based Service Tracking Manager
Dynamic Thread Pool based Service Tracking Manager D.V.Lavanya, V.K.Govindan Department of Computer Science & Engineering National Institute of Technology Calicut Calicut, India e-mail: [email protected],
Adaptive Tolerance Algorithm for Distributed Top-K Monitoring with Bandwidth Constraints
Adaptive Tolerance Algorithm for Distributed Top-K Monitoring with Bandwidth Constraints Michael Bauer, Srinivasan Ravichandran University of Wisconsin-Madison Department of Computer Sciences {bauer, srini}@cs.wisc.edu
A Framework for Highly Available Services Based on Group Communication
A Framework for Highly Available Services Based on Group Communication Alan Fekete [email protected] http://www.cs.usyd.edu.au/ fekete Department of Computer Science F09 University of Sydney 2006,
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking
Quantifying the Performance Degradation of IPv6 for TCP in Windows and Linux Networking Burjiz Soorty School of Computing and Mathematical Sciences Auckland University of Technology Auckland, New Zealand
Benchmarking Data Replication Performance for The Defense Integrated Military Human Resources System
Benchmarking Data Replication Performance for The Defense Integrated Military Human Resources System Venkata Mahadevan, Mahdi Abdelguerfi, Shengru Tu, Golden Richard Department of Computer Science University
EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications
ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani
Cloud Based Distributed Databases: The Future Ahead
Cloud Based Distributed Databases: The Future Ahead Arpita Mathur Mridul Mathur Pallavi Upadhyay Abstract Fault tolerant systems are necessary to be there for distributed databases for data centers or
- An Essential Building Block for Stable and Reliable Compute Clusters
Ferdinand Geier ParTec Cluster Competence Center GmbH, V. 1.4, March 2005 Cluster Middleware - An Essential Building Block for Stable and Reliable Compute Clusters Contents: Compute Clusters a Real Alternative
SCALABILITY AND AVAILABILITY
SCALABILITY AND AVAILABILITY Real Systems must be Scalable fast enough to handle the expected load and grow easily when the load grows Available available enough of the time Scalable Scale-up increase
Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB
Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB Executive Summary Oracle Berkeley DB is used in a wide variety of carrier-grade mobile infrastructure systems. Berkeley DB provides
Fast Synchronization of Mirrored Game Servers: Outcomes from a Testbed Evaluation
Fast Synchronization of Mirrored Game Servers: Outcomes from a Testbed Evaluation Stefano Ferretti, Marco Roccetti, Alessio la Penna Department of Computer Science University of Bologna Mura Anteo Zamboni,
Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services
Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Seth Gilbert Nancy Lynch Abstract When designing distributed web services, there are three properties that
Best Practices for Deploying SSDs in a Microsoft SQL Server 2008 OLTP Environment with Dell EqualLogic PS-Series Arrays
Best Practices for Deploying SSDs in a Microsoft SQL Server 2008 OLTP Environment with Dell EqualLogic PS-Series Arrays Database Solutions Engineering By Murali Krishnan.K Dell Product Group October 2009
Chapter 2: Getting Started
Chapter 2: Getting Started Once Partek Flow is installed, Chapter 2 will take the user to the next stage and describes the user interface and, of note, defines a number of terms required to understand
Real-Time Analysis of CDN in an Academic Institute: A Simulation Study
Journal of Algorithms & Computational Technology Vol. 6 No. 3 483 Real-Time Analysis of CDN in an Academic Institute: A Simulation Study N. Ramachandran * and P. Sivaprakasam + *Indian Institute of Management
Attunity RepliWeb Event Driven Jobs
Attunity RepliWeb Event Driven Jobs Software Version 5.2 June 25, 2012 RepliWeb, Inc., 6441 Lyons Road, Coconut Creek, FL 33073 Tel: (954) 946-2274, Fax: (954) 337-6424 E-mail: [email protected], Support:
It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.
Session Layer The session layer resides above the transport layer, and provides value added services to the underlying transport layer services. The session layer (along with the presentation layer) add
JoramMQ, a distributed MQTT broker for the Internet of Things
JoramMQ, a distributed broker for the Internet of Things White paper and performance evaluation v1.2 September 214 mqtt.jorammq.com www.scalagent.com 1 1 Overview Message Queue Telemetry Transport () is
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
Informix Dynamic Server May 2007. Availability Solutions with Informix Dynamic Server 11
Informix Dynamic Server May 2007 Availability Solutions with Informix Dynamic Server 11 1 Availability Solutions with IBM Informix Dynamic Server 11.10 Madison Pruet Ajay Gupta The addition of Multi-node
Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms
Distributed File System 1 How do we get data to the workers? NAS Compute Nodes SAN 2 Distributed File System Don t move data to workers move workers to the data! Store data on the local disks of nodes
VPN. Date: 4/15/2004 By: Heena Patel Email:[email protected]
VPN Date: 4/15/2004 By: Heena Patel Email:[email protected] What is VPN? A VPN (virtual private network) is a private data network that uses public telecommunicating infrastructure (Internet), maintaining
COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters
COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly
Performance Comparison of Assignment Policies on Cluster-based E-Commerce Servers
Performance Comparison of Assignment Policies on Cluster-based E-Commerce Servers Victoria Ungureanu Department of MSIS Rutgers University, 180 University Ave. Newark, NJ 07102 USA Benjamin Melamed Department
Integrated Application and Data Protection. NEC ExpressCluster White Paper
Integrated Application and Data Protection NEC ExpressCluster White Paper Introduction Critical business processes and operations depend on real-time access to IT systems that consist of applications and
Distributed Data Management
Introduction Distributed Data Management Involves the distribution of data and work among more than one machine in the network. Distributed computing is more broad than canonical client/server, in that
Why ClearCube Technology for VDI?
Why ClearCube Technology for VDI? January 2014 2014 ClearCube Technology, Inc. All Rights Reserved 1 Why ClearCube for VDI? There are many VDI platforms to choose from. Some have evolved inefficiently
A Case for Dynamic Selection of Replication and Caching Strategies
A Case for Dynamic Selection of Replication and Caching Strategies Swaminathan Sivasubramanian Guillaume Pierre Maarten van Steen Dept. of Mathematics and Computer Science Vrije Universiteit, Amsterdam,
<Insert Picture Here> Oracle In-Memory Database Cache Overview
Oracle In-Memory Database Cache Overview Simon Law Product Manager The following is intended to outline our general product direction. It is intended for information purposes only,
IBM Global Technology Services September 2007. NAS systems scale out to meet growing storage demand.
IBM Global Technology Services September 2007 NAS systems scale out to meet Page 2 Contents 2 Introduction 2 Understanding the traditional NAS role 3 Gaining NAS benefits 4 NAS shortcomings in enterprise
Load Balancing in Distributed Data Base and Distributed Computing System
Load Balancing in Distributed Data Base and Distributed Computing System Lovely Arya Research Scholar Dravidian University KUPPAM, ANDHRA PRADESH Abstract With a distributed system, data can be located
Routing with OSPF. Introduction
Routing with OSPF Introduction The capabilities of an internet are largely determined by its routing protocol. An internet's scalability, its ability to quickly route around failures, and the consumption
Introduction to Parallel Programming and MapReduce
Introduction to Parallel Programming and MapReduce Audience and Pre-Requisites This tutorial covers the basics of parallel programming and the MapReduce programming model. The pre-requisites are significant
Windows Server Performance Monitoring
Spot server problems before they are noticed The system s really slow today! How often have you heard that? Finding the solution isn t so easy. The obvious questions to ask are why is it running slowly
A Survey Study on Monitoring Service for Grid
A Survey Study on Monitoring Service for Grid Erkang You [email protected] ABSTRACT Grid is a distributed system that integrates heterogeneous systems into a single transparent computer, aiming to provide
Oracle Applications Release 10.7 NCA Network Performance for the Enterprise. An Oracle White Paper January 1998
Oracle Applications Release 10.7 NCA Network Performance for the Enterprise An Oracle White Paper January 1998 INTRODUCTION Oracle has quickly integrated web technologies into business applications, becoming
Web Server Software Architectures
Web Server Software Architectures Author: Daniel A. Menascé Presenter: Noshaba Bakht Web Site performance and scalability 1.workload characteristics. 2.security mechanisms. 3. Web cluster architectures.
Comparison between client-server, peer-to-peer and hybrid architectures for MMOGs
Comparison between client-server, peer-to-peer and hybrid architectures for MMOGs Vítor de Albuquerque Torreão School of Electronics and Computer Science University of Southampton Southampton, United Kingdom
Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware
Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware Priya Narasimhan T. Dumitraş, A. Paulos, S. Pertet, C. Reverte, J. Slember, D. Srivastava Carnegie Mellon University Problem Description
Fault-Tolerant Framework for Load Balancing System
Fault-Tolerant Framework for Load Balancing System Y. K. LIU, L.M. CHENG, L.L.CHENG Department of Electronic Engineering City University of Hong Kong Tat Chee Avenue, Kowloon, Hong Kong SAR HONG KONG Abstract:
SwanLink: Mobile P2P Environment for Graphical Content Management System
SwanLink: Mobile P2P Environment for Graphical Content Management System Popovic, Jovan; Bosnjakovic, Andrija; Minic, Predrag; Korolija, Nenad; and Milutinovic, Veljko Abstract This document describes
Scalable Data Collection for Internet-based Digital Government Applications
Scalable Data Collection for Internet-based Digital Government Applications [ Appeared in Proceedings of the 1st National Conference on Digital Government Research, 2001 ] W. C. Cheng C.-F. Chou L. Golubchik
USING REPLICATED DATA TO REDUCE BACKUP COST IN DISTRIBUTED DATABASES
USING REPLICATED DATA TO REDUCE BACKUP COST IN DISTRIBUTED DATABASES 1 ALIREZA POORDAVOODI, 2 MOHAMMADREZA KHAYYAMBASHI, 3 JAFAR HAMIN 1, 3 M.Sc. Student, Computer Department, University of Sheikhbahaee,
ELIXIR LOAD BALANCER 2
ELIXIR LOAD BALANCER 2 Overview Elixir Load Balancer for Elixir Repertoire Server 7.2.2 or greater provides software solution for load balancing of Elixir Repertoire Servers. As a pure Java based software
q for Gods Whitepaper Series (Edition 7) Common Design Principles for kdb+ Gateways
Series (Edition 7) Common Design Principles for kdb+ Gateways May 2013 Author: Michael McClintock joined First Derivatives in 2009 and has worked as a consultant on a range of kdb+ applications for hedge
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging
Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging In some markets and scenarios where competitive advantage is all about speed, speed is measured in micro- and even nano-seconds.
PORTrockIT. Veeam : accelerating virtual machine replication with PORTrockIT
1 PORTrockIT Veeam : accelerating virtual machine replication 2 Executive summary Business continuity solutions such as Veeam offer the ability to recover quickly from disaster by creating a replica of
A NETWORK CONSTRUCTION METHOD FOR A SCALABLE P2P VIDEO CONFERENCING SYSTEM
A NETWORK CONSTRUCTION METHOD FOR A SCALABLE P2P VIDEO CONFERENCING SYSTEM Hideto Horiuchi, Naoki Wakamiya and Masayuki Murata Graduate School of Information Science and Technology, Osaka University 1
V:Drive - Costs and Benefits of an Out-of-Band Storage Virtualization System
V:Drive - Costs and Benefits of an Out-of-Band Storage Virtualization System André Brinkmann, Michael Heidebuer, Friedhelm Meyer auf der Heide, Ulrich Rückert, Kay Salzwedel, and Mario Vodisek Paderborn
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level. -ORACLE TIMESTEN 11gR1
CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level -ORACLE TIMESTEN 11gR1 CASE STUDY Oracle TimesTen In-Memory Database and Shared Disk HA Implementation
Quick Start for Network Agent. 5-Step Quick Start. What is Network Agent?
What is Network Agent? Websense Network Agent software monitors all internet traffic on the machines that you assign to it. Network Agent filters HTTP traffic and more than 70 other popular internet protocols,
Distributed Systems Lecture 1 1
Distributed Systems Lecture 1 1 Distributed Systems Lecturer: Therese Berg [email protected]. Recommended text book: Distributed Systems Concepts and Design, Coulouris, Dollimore and Kindberg. Addison
Cisco Application Networking for Citrix Presentation Server
Cisco Application Networking for Citrix Presentation Server Faster Site Navigation, Less Bandwidth and Server Processing, and Greater Availability for Global Deployments What You Will Learn To address
Automatic job scheduling software for AIX, HP-UX, Linux, Solaris and Windows
JobQue/X Automatic job scheduling software for AIX, HP-UX, Linux, Solaris and Windows JobQue/X is simple to use, yet powerful automated job scheduling software that defines and schedules interdependent
Fault Tolerant Servers: The Choice for Continuous Availability
Fault Tolerant Servers: The Choice for Continuous Availability This paper discusses today s options for achieving continuous availability and how NEC s Express5800/ft servers can provide every company
LCMON Network Traffic Analysis
LCMON Network Traffic Analysis Adam Black Centre for Advanced Internet Architectures, Technical Report 79A Swinburne University of Technology Melbourne, Australia [email protected] Abstract The Swinburne
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 ISSN 2229-5518
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 Load Balancing Heterogeneous Request in DHT-based P2P Systems Mrs. Yogita A. Dalvi Dr. R. Shankar Mr. Atesh
Berkeley Ninja Architecture
Berkeley Ninja Architecture ACID vs BASE 1.Strong Consistency 2. Availability not considered 3. Conservative 1. Weak consistency 2. Availability is a primary design element 3. Aggressive --> Traditional
AN OVERVIEW OF QUALITY OF SERVICE COMPUTER NETWORK
Abstract AN OVERVIEW OF QUALITY OF SERVICE COMPUTER NETWORK Mrs. Amandeep Kaur, Assistant Professor, Department of Computer Application, Apeejay Institute of Management, Ramamandi, Jalandhar-144001, Punjab,
Middleware and Distributed Systems. System Models. Dr. Martin v. Löwis. Freitag, 14. Oktober 11
Middleware and Distributed Systems System Models Dr. Martin v. Löwis System Models (Coulouris et al.) Architectural models of distributed systems placement of parts and relationships between them e.g.
LinuxWorld Conference & Expo Server Farms and XML Web Services
LinuxWorld Conference & Expo Server Farms and XML Web Services Jorgen Thelin, CapeConnect Chief Architect PJ Murray, Product Manager Cape Clear Software Objectives What aspects must a developer be aware
InfiniBand Clustering
White Paper InfiniBand Clustering Delivering Better Price/Performance than Ethernet 1.0 Introduction High performance computing clusters typically utilize Clos networks, more commonly known as Fat Tree
Technical White Paper Integration of ETERNUS DX Storage Systems in VMware Environments
White Paper Integration of ETERNUS DX Storage Systems in ware Environments Technical White Paper Integration of ETERNUS DX Storage Systems in ware Environments Content The role of storage in virtual server
Facility Usage Scenarios
Facility Usage Scenarios GDD-06-41 GENI: Global Environment for Network Innovations December 22, 2006 Status: Draft (Version 0.1) Note to the reader: this document is a work in progress and continues to
