A. XHTML5
As described above, one of the purposes of this work is
executing applications at remote server and allowing users to
interact with these applications from mobile platforms. This
is achieved through XHTML5, which. as the name implies,
is the combination of X server and HTML5.
HTML5 is the next version of HTML standard and it is
still under development. It introduces various features to
make browser software easy to include and handle complex
content, such as multimedia or graphic drawing, without any
plug-ins installation. XHTML5 incorporates two features of
HTML5, namely canvas and websocket. Canvas is used to
draw graphics, on the fly, in web pages and provides many
functions to support 2D drawing, while websocket improves
the communication by setting up a full-duplex channel so
that the server can proactively push data to client instead of
waiting for being pulled by client.
X window system (the latest version is commonly known
as X11) is a software system which includes a set of network
protocols. It provides a basis for implementing graphic user
interfaces (GUI) for networked computers and consists of X
server and X clients. An X client, also called X application,
executes its application logic and requests X server to draw
user interface while X server assumes the responsibility of
managing the display hardware and handling the drawing
request from X client. The interaction between X server and
X client is the basis of X application development. At the
start of an X application, it must firstly connect to an X
server. After the connection is successfully built, the X client
typically listens on events forwarded from X server or sends
requests to X server. As a general pattern, an X application
executes looping to handle events and send requests based on
processing events. The interaction between application logic
and user interface in X window system can be manipulated
to fit the functional requirements of AASMP.
Fig. 3 shows the architecture of XHTML5 and outlines
the basic flow of control and data. When the client-side user
operates the browser running on mobile platform to execute
applications on server, the connection is set up between the
client and the server, which relies on HTTP protocol. In
order to have better efficiency, once the connection arrives at
CM, CM will upgrade this HTTP connection to websocket
connection. CM is implemented using libwebsocket [22].