savannah-register-public
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-register-public] [task #3970] Submission of TLV communication


From: Sanjay Jaiman
Subject: [Savannah-register-public] [task #3970] Submission of TLV communication with automatic code generation
Date: Mon, 4 Apr 2005 21:43:25 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.54 [en]

URL:
  <http://savannah.gnu.org/task/?func=detailitem&item_id=3970>

                 Summary: Submission of TLV communication with automatic code
generation
                 Project: Savannah Administration
            Submitted by: sjaiman
            Submitted on: Mon 04/04/2005 at 21:43
         Should Start On: Mon 04/04/2005 at 00:00
   Should be Finished on: Thu 04/14/2005 at 00:00
                Category: Project Approval
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
                  Effort: 0.00

    _______________________________________________________

Details:


Site Admin. Approval/Edition URL:
 <https://savannah.gnu.org/admin/groupedit.php?group_id=7481>


###### ORIGINAL SUBMISSION DETAILS ######

System Group Name:
-----------------
  tlvcomm


Full Name:
----------
  TLV communication with automatic code generation
  

Type:
-----
  GNU


License:
-------- 
  GNU General Public License V2 or later


Other License: 
--------------
  


Description:
------------
  What does this package do
=========================
This package makes development of a client / server program(s) using TLVs
(type length value) easier by using an IDL (interface definition language). 
High level data structures and functions are defined in the IDL and a code
generator generates C++ code which is linked in both the client and server
side providing both sides access to all the funtions / data structures
defined in the IDL.

Brief description of the architecture
=====================================
This library to uses non-blocking TCP sockets for the client-server programs.
 All remote function calls are non-blocking so a callback mechanism is used
for remote function invocation as well as for completion.  Using this
architecture, the user can avoid multiple threads which would be needed for
blocking function calls.  The engine uses state based remote function
invocation.

To develop a high-performance client server interface, the following design
considerations are maintained -
       - The interface between the client and the server has to be
non-blocking.  To aid this feature,the following are the issues that need to
be addressed.
       - Handle incomplete writes to the socket by implementing buffering per
socket / connection.
       - Handle partial / excess reads of TLV messages coming on the socket.
       - Develop a infrastructure to handle multiple connections and
multiplex between them.
       - When a complete message has ben retreived on a socket, give control
back to the user.

This library addresses all of the above issues.

There are some tasks that fall under the "user responsibility" category. 
These tasks are are not implemeted in the library because typically every
user does things a little differently.  Besides, these
tasks are so simple that wrapping them in a library function makes little
sense.  These tasks are as follows -
  - Creating a non-blocking socket (sample code is provided).
  - Calling the system calls "bind", "listen", "accept", "select", "connect".
 These calls are not encapsulated in the library because typically, if they
are "wrapped" in a library, they shield the user from programming the socket
to his/her unique requirement.  The library does give example code which
could be used as a starting point for the development of client /server
programs. (sample code provided)





Other Software Required:
------------------------
  Linux system with g++


Other Comments:
---------------
  

#########################################







    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/task/?func=detailitem&item_id=3970>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]