Tuesday, July 24, 2007

Orchestra Architecture Overview


Orchestra; our clustered game server, is designed to provide a stable, powerful and easy to use environment for creating and deploying massive multi-player online games. Orchestra architecture is completely designed by Kernels team.
Orchestra is a secured cluster without limit on the number of participating machines. It is a pure software application that is easily expanded without the need to shutdown or suspend the system.
Massive multi-player online games have a common architecture, where the game is split up into zones, each zone have a list of players interacting in it and any other game objects. for example a zone might contain a map on which the players' actions are taking place.
Orchestra have what is called the zone server which is a group of machines hosting game zones with the full responsibility to create, deal and even move zones from one node to another, the last takes place in case where a great number of players are interacting in a zone applying a great load on the machine hosting the zone, so that zone needs a more powerful machine to host it.
The decision of where to move a loaded zone is taken by the Zone Load Balancer(ZLB) which is implemented in distributed manner to avoid single points of failure.
Orchestra has a standard communication layer called SRMI which abstracts all the overhead of networking issues and allows the application to be easily broken and distributed on separate machines.
Orchestra provides a very comprehensive enviroment for creation of MMOGs, the game developer is totally abstracted from the details of how to deal with networking issues through a logical layer that handels all the details of what the cluster is doing.
Another abstraction logical layer, is the object store, which encapsulates all database operations using aspects.