Server-side
Modules
Figure 3: Server-side
architecture
Figure
3 illustrates the server-side architecture of OnME.
The
OnME server-side is a HTTP and socket server. Note that
the HTTP server is to support older version of J2ME implementation
since it only supports the HTTP protocol instead of low-level
socket connection. Socket server is general faster then
the HTTP server in terms of latency because of the small
overhead and the persistent connection feature. The underlying
functionalities are the same for both implementations.
The
important components are listed below:
Networking
library: For the server-side, the most important
module is the networking module. This library is to provide
efficient and reliable packet delivery. To achieve these
goals, the module provides the low-level communication
protocols like the UDP and TCP. In order to support older
version of J2ME, it also supports the HTTP protocol. This
module provides services like data/packet transmission,
fast transmission for object synchronization, user session
management, and non-voluntary disconnection and connection-resume
management.
Server-side
live version update module: This module provides
the server to communicate and to signal different users
about new version update. Again, version update is an
essential feature for mobile online game to incorporate
new story line or characters, as well as to inform new
software upgrade. The module can identify which clients
are using out-of-dated version and automatically push
the new version to mobile devices. In this project, we
will develop a communication protocol for this live version
update module.
Server-side
video streaming module: This module supports
server-side video streaming and provide features such
as
Admission control: to make sure that
the video server can support the appropriate number of
client connections so as to satisfy the video continuity
requirements.
VCR functionalites: to support any fast
forward, pause and resume operations issued by the client.
Error erasure support: since the network
delay is high under the wireless environment, it may not
be possible to ˇ§retransmitˇ¨ packet in case there is any
packet loss. To handle this situation, it is possible
for us to use the Reed-Solomon Code (or other error erasure
coding methods) to mask up any burst packet loss.
Server-side
Lobby system module: The server-side lobby system
maintain a list of lobby created by various users. Each
lobby is a spawn of multi-thread server that handles individual
lobby. Each server operates as an independent process
to exchange message and status update among the users
within the lobby. The design goals of lobby server are
to minimize network communication overhead and to ensure
the graphical synchronization among players within the
same lobby.
In
summary, we provide a complete game development engine
for designers of multi-player mobile online game. The
modules mention above allow designers to quickly create
game contents, provide efficient and reliable communications,
support continuity requirements of video streaming and
to maintain synchronization among players within the same
lobby.