doc/XDR_NDR.txt
changeset 0 2b3e5ec03512
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/XDR_NDR.txt	Thu Apr 21 14:57:45 2011 +0100
@@ -0,0 +1,55 @@
+*******************************
+* Ideas on Data Serialization *
+*******************************
+
+1. Overview of XDR
+(1) What are the features of XDR
+    a. Used in SunRPC
+    b. Symmetric conversion
+    c. No tags
+    d. Primitive data types:
+       integers, floating point numbers, enumerations and booleans
+    e. Constructed data types:
+       strings, arrays, opaque data, unions, pointers
+
+(2) How to use XDR for data serialization
+    a. Don't have to use RPCGEN 
+    b. Use XDR library routines plus programmer-supplied conversion routines
+    c. XDR streams: memory streams, I/O streams, record streams
+    d. Example of memory streams:
+       xdrmem_create (xdrs, buf, BUFSIZE, XDR_ENCODE);
+       xdr_int (xdrs, &i);
+       xdr_destroy (xdrs);
+    e. Construct conversion routines for more complicated data types 
+
+2. Overview of NDR
+(1) What are the features of NDR
+    a. Used in DCE RPC
+    b. Asymmetric conversion
+    c. Architecture tag to specify:
+       big endian or little endian for integer representation
+       ASCII or EBCDIC for character representation
+       IEEE or IBM or CRAY or VAX for floating-point representation
+    d. Primitive data types:
+       booleans, integers and enumerated types, floating-point numbers, uninterpreted octets 
+    e. Constructed data types:
+       arrays, strings, structures, unions, pipes, pointers 
+
+(2) How to use NDR for data serialization
+    a. Use IDL encoding services stubs which are generated by IDL compiler
+       with Interface Definition File and Attribute Configuration File
+    b. Similar to XDR libray routines, but can't be provided by programmer
+
+3. Comparison of XDR and NDR
+(1) Symetric v. Asymetric conversion
+    a. Asymetric conversion allows more flexibility
+    b. Symmetric conversion doesn't require the architecture tag
+
+(2) NDR supports more data types
+    a. Conformanent arrays, varying arrays, conformanent-varying arrays
+    b. Array of strings, structures containing arrays
+    c. Pipes
+
+(3) Availability
+    a. XDR library is widely available
+    b. DCE IDL compiler for NDR is not