| ProtoPort |
 |
ProtoPort is a client-server software product for Windows which enables
independently developed I/O servers to transparently share a single
communications port in a fair, efficient manner. Consisting of an
executable and a dynamic link library (DLL), this software enables port sharing
via the Remote Procedure Call (RPC) mechanism. Essentially, ProtoPort is
a 32-bit server which arbitrates port usage among clients that request services
via the RPC mechanism. The difficulties in implementing an RPC client are
abstracted by the DLL, which provides a set of library functions which closely
resemble the standard communications functions in the Windows API.
The following is a list of advantages to be gained by using ProtoPort for
multi-protocol communication over a single channel:
-
Simple programming interface is nearly identical to standard Windows interface.
-
Sharing is accomplished without continually opening and closing the actual
physical port, which are relatively slow operations.
-
There is no need to fine tune any sharing parameters, since fair sharing is
automatic and guaranteed.
-
Applications waiting on the port do not waste ANY processor cycles.
-
When only one client application is using ProtoPort, performance is nearly
identical to that which would be attained by monopolizing the port using the
standard function calls; i.e., there are no artificial waiting periods to share
the port with other drivers that might not even be running.
-
Because of its reliance on RPC, ProtoPort facilitates the sharing of ports on
remote machines. For example, a driver running on Machine A and a driver
running on Machine B can easily share a port on Machine C.
-
Automatic crash detection ensures that a problem in one client application will
not affect other clients.
-
By writing drivers which utilize the ProtoPort interface, a developer is
assured that the resulting program will share a port with any other drivers
written to the ProtoPort interface. This assumes that the protocols used
by the drivers are capable of coexisting on one channel. The developer
does not need to know anything about the other drivers which will be sharing
the port.
-
ProtoPort supports dispatching unsolicited bytes, or cryout messages, to any
threads registered with the server for cryout services.
-
ProtoPort enables hot fail-over capability at the I/O server level.
|