\subsection{UKA Serialization.}

The UKA serialization \cite{Phlipp99a} can be used instead of the
official serialization (and as a supplement to it) and saves 76\%--96\%
of the serialization time. It is based on the following main points:

\begin{itemize}

\item Explicit serialization routines (``marshalling routines'')
are faster than those used by classical RMI that automatically derive
a byte representation with the help of type introspection.

\item A good deal of the costs of the serialization are needed for the
time-consuming encoding of the type information that is necessary
for persistent object storage. For the purposes of communication,
especially in work station clusters with common file systems, a
reduced form of the type encoding is sufficient and
faster. The Java Grande Forum has convinced Sun Microsystems to make
the method of type encoding plugable in one of the next versions.

\item Copied objects need to be transferred again for each call
in RMI. RMI does not differentiate between type encoding and useful
data, meaning that the type information is transferred redundantly.

\item Sun has announced (without concretely naming a version) it will
pick
up on the idea of a separate reset of type information and user
data.

\item The official serialization uses several layers of streams that
all possess their own buffers. This causes frequent copying
operations and results in unacceptable performance. The UKA
serialization only needs one buffer, which the byte representation can
be directly written in.

\item Although Sun remains steadfast about layering for reasons of
clearer
object-oriented design, they are at least improving the
implementation of the layers.

\end{itemize}
