diff options
Diffstat (limited to 'TAO/examples/PluggableUDP/DIOP/README')
-rw-r--r-- | TAO/examples/PluggableUDP/DIOP/README | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/TAO/examples/PluggableUDP/DIOP/README b/TAO/examples/PluggableUDP/DIOP/README deleted file mode 100644 index 3f00555185c..00000000000 --- a/TAO/examples/PluggableUDP/DIOP/README +++ /dev/null @@ -1,110 +0,0 @@ -DIOP - UDP Based Pluggable Protocol -=================================== - -This directory contains all of the code needed to use the UDP -Pluggable Protocol (DIOP). It should be considered a work in progress -and will eventually be integrated in with the other standard pluggable -protocols in tao/Strategies. - -Notes on the DIOP implementation: - -- The DIOP implemenation uses unconnected UDP sockets. - -- The server side implementation bypasses the actual TAO acceptor - and opens always a UDP socket on start-up. - -- The address of that UDP socket can be configured via - e.g. -ORBEndpoint diop://:1303 - - If nothing is specified, the implementation will select a port - and open a socket on all network interfaces. - (This is the default ORB behavior and can be overwritten using - the -ORBEndpoint switch) - -- Because no connections - no state - exist, all client requests - from different clients arrive at the same socket! - -- The client side DIOP implementation bypasses the actual - TAO connector. It installs a connection handler on the first - invocation on a remote CORBA object. - - -DIOP Installation: - -- Compile TAO/examples/PluggableUDP/DIOP to create the DIOP library. - -- Uncomment the following line in TAO/tao/corbafwd.h: - - #define TAO_TAG_UDP_PROFILE 0x54414f04U /* UDP */ - -- The application using DIOP should have a svc.conf file with the - following entry: - - dynamic DIOP_Factory Service_Object * TAO_DIOP:_make_TAO_DIOP_Protocol_Factory() "" - static Resource_Factory "-ORBProtocolFactory DIOP_Factory" - - -Issues: - -- Optimization of DIOP_Transport::{send,recv} - -- Default port is the same on client and server, therefore - the client ports need to be explicitly set by -ORBEndpoint option. - Maybe there is a way to find free ports? - -- Remove commented out code from DIOP_* files. - -Limitations: - -- No preconnections are supported. - -- Only single threaded servers are supported as we cache parts of a UDP - packet. If we would allow multiple threads this buffer could be corrupted. - -- No thread-per connection is supported. - -- Requests from multiple clients are received on the same socket. - - -Disclaimer: - - This UDP Pluggable Protocol has been developed for Siemens base station - software. We assumed certain requriements, which do not fit everybody, so - be careful applying this pluggable protocol to your application. - - The assumptions we had: - - - Almost 100% reliable UDP communication as we use IP over ATM - - (Even if it would be less reliable you can manage it by using one-way - request operations and one-way response operations in combination with - application level timeouts.) - - - TCP got ruled out as it behaves to sluggish on sudden disconnections, we - needed to be able to plug & play CPU cards without impacting any ORB - communicating to that CPU. - - (This is the main reason why we do not keep any state in the client side - of the Pluggable Protocol) - - - As we use a special hardware configuration we defined that every GIOP message - (and therefore every IDL signature) message is shorter than 4kB, which is the - maximum length of a UDP packet anyway. - - (Support for fragmentation, as GIOP 1.2 supports it might help, this is - a future option) - - -Appendix: - - The client understands the following options: - -d - -k <ior> - -t <timeout in ms> - -i <iterations> - -Comments, Suggestions, or Feedback: - - mailto:Michael.Kircher@mchp.siemens.de or, - mailto:John.Mackenzie.extern@icn.siemens.de or, - mailto:fhunleth@cs.wustl.edu |