The RMI protocol makes use
of two other protocols for its on-the-wire format: Java Object
Serialization and HTTP. The Object Serialization protocol is used
to marshal call and return data. The HTTP protocol is used to
"POST" a remote method invocation and obtain return data
when circumstances warrant. Each protocol is documented as a
separate grammar. Nonterminal symbols in production rules may refer
to rules governed by another protocol (either Object Serialization
or HTTP). When a protocol boundary is crossed, subsequent
productions use that embedded protocol.
Notes about Grammar
Notation
We use a similar
notation to that used in The Java Language
Specification.
Control codes in the
stream are represented by literal values expressed in
hexadecimal.
Some nonterminal
symbols in the grammar represent application specific values
supplied in a method invocation. The definition of such a
nonterminal consists of its Java programming language type. A table
mapping each of these nonterminals to its respective type follows
the grammar.