Home
About ProtoLink
Services
Clients
Testimonials
Projects
Employment
Location
Contact Us
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.