- host architectures - data types and structures
- each host potentially has a different architecture and representations
- local and remote representations
- the presentation layer - conversion to a common data format
- asymmetric conversion - one side converts to the other side
- at the server - many possible client hosts; serial execution
- at the client - fewer server hosts; exploits natural concurrency
- keeping up with many and varying architectures is a pain
- portable software encounters the NxM problem
- symmetric conversion - both sides convert to a common format
- each side does constant work, but both sides do it
- ip's standard network byte order for multi-byte values
- each side writes to the common format, ignoring the other side
- generic common formats can be expensive in time and space
- sun's external data representation (xdr)
- an ietf standard - rfc 1832
- specifies data types and formats for transmittable data
- the atomic and composite data types - bool int array struct union
- xdr representations are not self-describing - both sides must agree
- xdr conversion routines
- the xdr stream - the receiver of encoded data or the supplier of
decoded data
- xdr streams may involve a memory buffer (
xdrmem_create()
), a
tcp socket (xdrstdio_create()
), or a udp socket
(xdrmsg_create()
)
- tcp xdr streams are a bit obscure
- call translation type routines on the stream
-
xdr_bool(xdrs, &boolv);
- direction (encode, decode) determined by the stream definition or
operation (stream read or write)
- open-system interconnect (osi)
- abstract syntax notation one - asn.1 (x.208)
- basic encoding rules - ber (x.209)
- an iso standard
- asn.1 is self-describing - arbitrary other sides can receive and decode
asn.1 encoded messages (almost)
- used in simple network management protocol (snmp)
- an expensive protocol
- object management group (omg) common object request broker architecture
(corba) intermediate definition language (idl)
This page last modified on 26 February 2002.