Browse Prior Art Database

Abstracted Socket Layer for Adding Transmission Control Protocol/Internet Protocol Socket Support to a Database Manager

IP.com Disclosure Number: IPCOM000105870D
Original Publication Date: 1993-Sep-01
Included in the Prior Art Database: 2005-Mar-20
Document File: 4 page(s) / 161K

Publishing Venue

IBM

Related People

Chang, DY: AUTHOR [+3]

Abstract

This invention provides an abstracted software interface layer that can be used to facilitate the integration of Transmission Control Protocol/ Internet Protocol (TCP/IP) socket support in the OS/2 */Database Manager (DBM). The layer is defined in two functional libraries: One to support client functions and one to support server functions. While all options for methods of adding TCP/IP socket support to a new DBM would be open, it is a much more restrictive problem to create a method that can be easily retrofitted to earlier versions of a DBM, thus providing TCP/IP connection support to those clients as well. The problem is aggravated by the differences between the DBM clients in different releases, and is further aggravated by the differences in the socket implementations on the different operating system platforms.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 39% of the total text.

Abstracted Socket Layer for Adding Transmission Control Protocol/Internet Protocol Socket Support to a Database Manager

      This invention provides an abstracted software interface layer
that can be used to facilitate the integration of Transmission
Control Protocol/ Internet Protocol (TCP/IP) socket support in the
OS/2 */Database Manager (DBM).  The layer is defined in two
functional libraries: One to support client functions and one to
support server functions.  While all options for methods of adding
TCP/IP socket support to a new DBM would be open, it is a much more
restrictive problem to create a method that can be easily retrofitted
to earlier versions of a DBM, thus providing TCP/IP connection
support to those clients as well.  The problem is aggravated by the
differences between the DBM clients in different releases, and is
further aggravated by the differences in the socket implementations
on the different operating system platforms.  A scheme that hides
socket implementation details in one or more functional portable
libraries, such as the ones provided by this invention, can greatly
simplify the design and implementation of retrofittable TCP/IP socket
support in DBM clients and server.

      Client Socket Library: This is an abstracted socket functional
layer used by the DBM client to abstract socket operations and socket
implementation dependencies.  Errors detected by any of the functions
in this library are mapped to a set of generic error codes used by
the DBM client.  Each function in this library is described next, and
a C language template of each function is shown.

      Socket creation: This function creates a stream socket and
returns its handle in the output parameter s.

     int sqlogsck(int * s);

      Socket deletion: This function deletes the stream socket
indicated by the s parameter.  That socket must have been allocated
through the sqlogsck() function.

     int sqlopsck(int s);

      Connect to well-known socket: This function opens a DBM
server's well-known port indicated by the port parameter at the node
indicated by the server_name parameter and connects the input socket
parameter s to the well-known port.  All subsequent reads and writes
to and from the well-known socket are made through the connected
socket s.

     int sqloodbp(int s, char * server_name, unsigned short port);

      Initialize socket for polling: This function initializes the
client socket internal list data structures used to poll reply
messages received by the client process.  This function is used to
support multiple concurrent socket connections by the client process.

     int sqloitcp(void);

      Register socket for polling: This function registers the
connected socket indicated by the s parameter in the internal list of
sockets used by the polling functions sqloktcp() and sqlortcp()

     int sqlostcp(int s);

      Deregister connected socket for polling: This functio...