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.