![]() |
||
Badumna Network Suite is a complete technology solution to build highly scalable multiplayer applications such as massively multiplayer online games and virtual worlds. It gives developers the power to build networked games with easy to use drag and drop features. The technology allows a large number of users to co-exist in a virtual space without the need for expensive server farms. The key to achieving this goal is in utilising a peer-to-peer network for most of the communication (which happens to be chat and object updates in a standard MMOG). Servers are used for operations that require arbitration, validation/authentication and intrusion detection. Its peer-to-peer architecture ensures that the technology can scale to support unlimited number of users. The technology comprises of the following modules: Badumna BadumnaBadumna is the core framework that resides with the game client and provides majority of the functionality. The diagram below shows the logical components of Badumna.
The interest management module takes into account the spatial information of all the objects in the 3-D virtual world and indexes that information on to a peer-to-peer network using sophisticated distributed spatial indexing techniques. The object management module provides a mechanism for application programmers to send reliable and unreliable updates via Badumna. Advanced clustering solutions ensure that updates arrive in real-time and dynamic scheduling and flow control techniques provide the support for handling flash crowds (impromptu gatherings of large number of people). There is a chat interface that provides a means to exchange messages between peers using Badumna. There are three different types of chat messages supported by Badumna - private chat, group chat and proximity chat. Security is provided for different operations within Badumna. The level of security varies depending on the nature of the operation. MMO developers have full control over the level of security they want to provide for the different operations. The transport layer is responsible for all the underlying communication between the different peers.There is a mechanism to transmit reliable and unreliable UDP packets. The transport layer also provides all the routing functionality within Badumna. The routing is done over a structured peer-to-peer network using the concept of a distributed has table (DHT). The network facade is the primary interface to Badumna. It consists of an API that can be used by applications programmers to call the various functions that are supported by Badumna. The primary aim is to provide a simple and flexible set of operations to the application developers and hide all the complex functionality from them. The identification of this set defines the application requirements of the networking subsystem, facilitating its use in many different multiuser applications. If you want to know more about the Badumna API, then you can read the complete API documentation here. Dei serverDei server provides the authentication and user management service used in conjunction with the Badumna framework. The service is responsible for authentication users, validating their permission to use the application and issueing certificates that can be used by other users to ensure they are trusted. The data flow diagram below shows the basic working of Dei.
When a user first starts a Badumna powered application, they connect to the Dei server with their login details over a secure SSL channel. Once the user is authenticated and verified as a valid user to join the network, the Dei server issues a series of tokens (symmetric key, participation key, permissions token and network time token) to the user. The user then sends their certificate to the Dei server over the secure channel. Dei server signs the certificate and sends it back to the user and provides the essential information to join the network.The user then joins the Badumna network. When a user wishes to establish connection with another user in the network, they exchange their signed certificates. The users verify the certificates and if the verification process is successful, they connect with each other. If the verification process is not successful for some reason (the signature is tampered or the certificate does not match the identity of the user) then Badumna will not permit the users to establish connection. The tokens issued by Dei have a time-out so they need to be renewed periodically (typically every 24 hours). Dei server therefore ensures that only valid users are allowed the join the network and also provides identity protection. If you want to know more about Dei and its API, then you can read the complete documentation here. HTTP serverThe http server provides an http tunnel for all users that cannot send or receive UDP traffic. This usually happens when a user is behind a proxy or a corporate firewall that blocks UDP traffic. In such instances, Badumna clients can communicate with the rest of the users in the network via this server. The http server acts as a gateway and provides an http tunnel so that Badumna clients can still send and receive relevant data using http protocol. The http server forwards the data to relevant users in the network using UDP protocol. The diagram below shows the operation of the http server.
It can be observed from the figure that users of this service do not connect to the Badumna network directly. Overload serverThe overload server helps to reduce the congestion in the network by providing off-loading services to any users that may experience high load. It uses a dynamic rate control algorithm to monitor the upstream and downstream capacities of all the users in the network. If any of the connections experience higher than normal load then their connections get off-loaded to the overload server. This operation keeps the network congestion free especially during flash crowds. The diagram belows shows the different steps taken by a node to use the overload service.
Arbitration serverArbitration server provides a mechanism to support third-party validation operations such as combat or e-commerce transactions. It provides a simple interface to define complex game logic. The server provides a byte stream interface so that the game logic operations can be optimised. The arbitration server has built-in serialisation so that the data is always sent/received and processed in the right order. The arbitration server uses Badumna's reliable channel to send the data so as to provide a reliable method to execute game logic. Control centreControl centre provides remote administration functionality to the game providers. It uses the concept of germs to support installation and removal of services on remote machines. Once a germ has been installed on a remote machine, it can be controlled from the control centre. The control centre provides a mechanism to add/remove services for a given game. Once a service has been installed on a remote machine it can be started or stopped at any time. You can monitor the status of the services and also view the load on the servers. The control centre has a web interface so you can access the functionality from anywhere as long as you have access to a web browser. Network structureThe figure below shows Badumna's network structure with all the major components. It is a ring based structure with different services being offered on each ring. For example, the outer most ring comprising of all the nodes in the network is used to provide services such as interest management (entity discovery), object replication and synchronisation, and chat. The inner ring comprising of only trusted nodes (these are operator controlled nodes) provides services such as authentication, arbitration, offloading and http tunnelling. Control centre, which is the central administration tool communicates with the trusted nodes to monitor the network and its status.
Want to know more about the technology, send us a note and we will get back to you with more information. |
||