
The whole picture of virtual worlds
We have brief ideas on the socket server, client-server concept, and the application architecture now. It is time to put them together to get whole concept of how a virtual world works. The following figure shows the components for a virtual world:

The socket server is the core part. There is a database to store permanent data such as user account info. A server-side extension lets developers program server-side logic, which is related to the virtual world, such as a virtual items exchange or virtual money transaction.
A server-side management component is in charge of following tasks:
- Handles and manages all socket connections
- Manages the memory of zones, rooms, and users
- Dispatches events and messages to appropriate clients, such as send messages when someone left the room
- Calls server-side functions when client requests, such as create room or send public message
- Calls server-side extension by clients requests
Flash client will have some static data of the virtual world, for example, map terrain. It also contains an API for connection to server-side functions.
Usually, there is an admin panel for the virtual world moderator to monitor the whole server. The admin panel can access the server via API and query statistics from the server or perform some admin actions such as server configuration or kick-users.