This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
A distributed system is defined as a collection of independent computers that appear to the users of the system as a single computer. In this definition, there are two essential points. The first is computers are "independent", which means that, architecturally, the computers are able to be operated independently. The second point is that the computers connected with each other are seen as a single computer, which is enabled by software. This is known as the term "single system image". When designing distributed systems that are easy to maintain and operate, it is the major goal of achieving single system image.
This essay will mainly focus on the distributed technique implemented in MMO, also known as Massive-Multiplayer-Online games.
Most MMORPGs are deployed using aÂ client-serverÂ system architecture. The server software generates aÂ persistentÂ instance of theÂ virtual worldÂ that runs continuously, and players connect to it via client software. The client software may provide access to the entire playing world, or further 'expansions' may be required to be purchased to allow access to certain areas of the game.Â World of Warcraft is an examples of games that use such a format. Players generally must purchase the client software for a one-time fee, although an increasing trend is for MMORPGs to work using pre-existing "thin" clients, such as a web browser.
Depending on the number of players and the system architecture, an MMORPG might actually be run on multiple separate servers, each representing an independent world, where players from one server cannot interact with those from another;Â World of WarcraftÂ is a prominent example, with each separate server housing several thousand players. 
Price/performance ratio. You don't get twice the performance for twice the price in buying computers. Processors are only so fast and the price/performance curve becomes nonlinear and steep very quickly. With multiple CPUs, we can get (almost) double the performance for double the money (as long as we can figure out how to keep the processors busy and the overhead negligible).
Distributing machines may make sense. It makes sense to put the CPUs for ATM cash machines at the source, each networked with the bank. Each bank can have one or more computers networked with each other and with other banks. For computer graphics, it makes sense to put the graphics processing at the user's terminal to maximize the bandwidth between the device and processor.
Computer supported cooperative networking. Users that are geographically separated can now work and play together. Examples of this are electronic whiteboards, distributed document systems, audio/video teleconferencing, email, file transfer, and games such as Doom, Quake, Age of Empires, and Duke Nuke'em, Starcraft, and scores of others.
Increased reliability. If a small percentage of machines break, the rest of the system
remains intact and can do useful work.
Incremental growth. A company may buy a computer. Eventually the workload is too great for the machine. The only option is to replace the computer with a faster one. Networking allows you to add on to an existing infrastructure.
Remote services. Users may need to access information held by others at their systems. Examples of this include web browsing, remote file access, and programs such as Napster and Gnutella to access MP3 music.
Mobility. Users move around with their laptop computers, Palm Pilots, and WAP phones. It is not feasible for them to carry all the information they need with them.
Distributed System Architecture(DSA)
Most MMO take advantage of the Client-Server Model as the distributed system architecture. Distributed System Architecture (DSA) is the ideal solution for integrating processes when there are multiple units, control rooms or geographically distributed locations. With Distributed System Architecture, users experience a single, totally integrated system instead of several independent systems, while retaining the ability to autonomously manage each system. The benefits include optimum functionality and flexibility.
Several aspects need to be taken into consideration when implementing a distributed MMO system, like transparency, flexibility, reliability, performance, and scalability. This essay will discuss two most significant and critical issues, transparency and scalability. The former has direct influence on gaming experience, and the latter is associated with the maintenance and ongoing development during its operation lifetime.
MMO implements a system architecture of Client-server Model, with all the data from clients transmitted firstly to the server, which then forward information to other clients.
Figure1. Client-Server Model
The client-server model (Figure 1) is a popular networked model consisting of three components. A service is the task that a particular machine can perform. For example, offering files over a network, the ability to execute certain commands, or routing data to a printer. A server is the machine that performs the task (the machine that hosts the service). A machine that is primarily recognized for the service it provides is often referred to as a print server, file server, and so on. The client is a machine that is requesting the service. The labels client and server are within the context of a particular service; a client can also be a server. A particular case of the client-server model is the workstation model, where clients are generally computers that are used by one user at a time (e.g. a PC on a network).
Distributed System Architecture allows multiple computers to operate as one across multiple units, sites and facilities across the MMO system. This single integrated system enables seamless global access to data, alarms, alerts, interactive operator control messages and history across groups of systems.
Configuration takes just minutes through automatic discovery of points, thus reducing engineering costs and improving system integrity. This also eliminates costly, error-prone database duplication.
DSAÂ delivers this integration amongst multiple systems while retaining a coherent, global security scheme. Individual computer systems can also be operationally integrated while retaining their own engineering autonomy.
Distributed System Architecture dynamically adjusts to changing user and application demands for information. Point data, alarms, history, and operator messages are delivered only to current subscribers, and only when there is a change in status. Additional efficiencies are achieved through the transfer of information between clusters of interested users, rather than between individual users. Therefore, if multiple users are interested in the same data on another site, the request is sent only once.
These and other techniques allow Distributed System Architecture to be extremely efficient with its network usage, allowing low bandwidth or high latency networking possibilities. DSA being aÂ single integrated system also doesn't require any dedicated networking and can leverage existing WAN infrastructure. Firewall friendly features allow Distributed System Architecture to adapt to existing firewall configurations to allow existing infrastructure to be used.â€‹ Distributed System Architecture (DSA) technology offers users unmatched scalability by seamlessly integrating the operational data of computer systems together at the same site or across different geographical locations without additional engineering or configuration
There are a number of issues with which a designer of a distributed MMO system has to
At the high levels, transparency means hiding distribution from the users. At the low levels, transparency means hiding the distribution from the programs. There are several forms of transparency:
Within an MMO, players don't care where the resources are located. Scenes, items, even other players just appear like local data. Loading a new scene, acquiring and using an item, or interact with other online players is transparent in locations.
MMO resources may move at will. For example, When information of a specific player is moved and stored onto another server, that player is not supposed to experience any changes.
Players cannot tell whether there are multiple copies of the same resource. In some scenarios, a single game is running on several servers located geographically separated. When a player travels to another area, data may be accessed from the closest server, and this should be transparent to the player.
Players share resources transparently with each other without interference. This is extremely important for MMO, as there can be millions of players online simultaneously, thus data transmitted among them should not be interfered by each other.
Operations can take place in parallel without the players knowing. This is also necessary for MMO as there is a need of maintenance or background control frequently.
Ideally, a distributed system of MMO can scale indefinitely. This is generally not possible, but the extent of scalability is an important consideration. For example, MMO have periodical updates, and sometimes the need of abandoning contents out of date. During the period of maintenance, the data should be easily modified. Another example is that when hardware is upgraded, for example adding new servers in remote areas, the network and hardware should be scalable.
Here is a more specific scenario:
As the MMO gains increasing popularity, the number of players grows rapidly, thus it becomes necessary for the game publisher to update the infrastructure. Below is a simple mechanism used in the update for joining a new game server Snew to the network
1. Snew subscribes to its adjacent servers for all regions at most distance R from its boundaries.
2. All servers adjacent to Snew subscribe to receive events occurring in regions at most distance R from their respective boundaries.
3. Snew becomes operational.
Adding new nodes can be an effective means to increase the size of the virtual world, in order to accommodate for an increasing user base. 
There is an assumption that MMO can implement P2P technique in the design of its distributed system architecture.
Figure2. P2P Model
CS model (Figure 2) defines the way of communication between clients and server, with each client host or application sending messages to the server, which processes each message individually, then send feedback to clients. This model is the most commonly used in MMO, in which all the information is united, yet obviously, the server has a great workload.
Meanwhile, P2P is a technique that defines resource sharing among multiple clients during downloading. In this scenario, the server is regarded as merely a special client. In other words, each client can be regarded as a server, providing services to other clients. This model is widely used in file and video downloading, as the information can be shared, and the original data source does not strictly require the integrity and security on the information, which stay unchanged in most situations.
CS model is still the mostly used architecture model in MMO. With server-clusters, massive players are able to play online simultaneously. However, the server can be overly consumed with the growth of online players. What is more, CS model requires heavy investment, which produces a high cost. Thus designing a new generation of MMO in P2P model can achieve a virtual world with greater number of online players.
However, there are a series of problems to be solved when designing P2P model. One of them is consistency. In traditional CS model, all information is transmitted to the server, then forwarded to other clients. This architecture can easily handle timing sequence and inconformity problems among clients. While in a P2P environment, due to lack of united management, some problems can be challenging. For example, due to network latency, each peer may receive information of events on different time and orders, thus no one can ensure the sequences, which stops the game from running normally. To make it straightforward, each event is supposed to appear in the same way for each player, such as attacking and fleeing will lead to different results when take place in different orders. This is very critical to MMO.
Until now, implementing P2P in online games is still in discussion. Those MMO that require high instantaneity and synchronism are less likely to use P2P. However, this is not a strictly scenario. When loading a new scene, all users are supposed to be able to download with P2P. The position information of players can also be shared by clients, instead of the server.
Implementing P2P in MMO can be revolutionary, as it can bring higher downloading speed, and greatly reduces the workload of the server. Yet it is also challenging due to technical issues, compared with using server to process the entire data.
In the future, further improvements are possible, especially in the area of fault-tolerance. In addition, this paper does not deal with security and authentication. However, given the fact that our architecture retains game state control in the hands of the game publisher, security and authentication could be incorporated in our architecture relatively easily.
Overall, 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 we present a solution to the problem of handling game events occurring near virtual boundaries, provide seamless transfer of objects between servers, describe an algorithm for dealing with hotspots, and discuss an algorithm that allows the entire game to scale horizontally. In conclusion, through experimentation we have shown that a new game written with our architecture can scale to handle a large number of players.