OSSP CVS Repository

ossp - Check-in [527]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 527
Date: 2001-Jun-28 16:08:00 (local)
2001-Jun-28 14:08:00 (UTC)
User:simons
Branch:
Comment: Documented design decision against supporting complex data types in libxds.
Tickets:
Inspections:
Files:
ossp-pkg/srpc/BRES      1.1 -> 1.2     18 inserted, 6 deleted

ossp-pkg/srpc/BRES 1.1 -> 1.2

--- BRES 2001/06/21 05:16:05     1.1
+++ BRES 2001/06/28 14:08:00     1.2
@@ -7,6 +7,18 @@
   - eXtendable Data Serialization Library: libxds
   - Simple Remote Procedure Call Library: libsrpc
 
+- libxds does intentionally NOT support the concept of arrays and
+  structures ("sequence" and "record" in ASN.1-speak), because not all
+  encoding systems support structured data. Hence, someone who'd want
+  to decode the serialized buffer cannot rely on this information
+  actually being included in the encoded data.
+
+  The only use of having these capabilities nonetheles would be that
+  the decode function could type-check the specification of what has
+  been received against the actual contents of the data. While this is
+  nice to have, we did not consider this to be reason enough to add
+  complexity to our interface and implementation.
+
 - The server actually performing the function call has to interpret
   the transferred data according to the functions prototype. This may
   be done in one of the following ways:
@@ -27,14 +39,14 @@
   because
   o constant function prototype on server-side
     (foreign function call problem!)
-  o only application knows how to convert 
+  o only application knows how to convert
     complex data structures (foo_t) into
     serialized octet-stream
   o greater flexibility in data transfer
   o rpc library complexity is reduced
     (on cost of application complexity)
 
-  instead remote procedure call 
+  instead remote procedure call
   only message passing
 
 - auditing/logging:
@@ -46,7 +58,7 @@
   sepatered from data serialization
 
 - error semantics:
-  transaction, ACID 
+  transaction, ACID
   o exactly-once (== 1) bank transaction
   o at-least-once (>= 1) muss passieren, mehrfach tut nicht weh (seiteneffekte) SunRPC
   o at-most-once (<= 1) logging of not important data, video conferneces
@@ -61,7 +73,7 @@
 
 - asynchronous vs. synchronous
   Ideee: intern immer asynchrouns
-  aber in API wrapper function 
+  aber in API wrapper function
   rpc_call == rpc_send+rpc_wait+rpc_result
   und auch rpc_abort
   trotzdem wird beide male ein timeout vorgesehen
@@ -135,7 +147,7 @@
 
 - Firewalls? Sollen die Filtern koennen
   Encryption nur von Data, nicht von Meta-Data
-- Proxies? 
+- Proxies?
 
 - Sowohl AMP als auch XDR muessen backends von
   Application implementieren lassen!
@@ -153,7 +165,7 @@
   - Fail Over
 
 - IPv6 in AMP unterstuetzen
-- Multicasting in AMP unterstuetzen (trivial I/O seitig, 
+- Multicasting in AMP unterstuetzen (trivial I/O seitig,
   aber muss bei error semantics beruecksichtig werden)
 
 =========================================================================================

CVSTrac 2.0.1