TxRx - Tool Command Language extension for RPC programming
TxRx
is pronounced T.Rex because it's from the time when the SUN was young. T.Rex is still around to haunt us and is getting
ready to take a big bite of the future!
Cristian Mata, Dept. of Computer Science,
State University of New York at Stony Brook
Goal:
Provide a rapid
development tool for client-server applications using Remote Procedure
Calls (RFC 1831).
Manual pages:
- Txrx command
- Call interface
- Call interface using portmapper services.
Project will be released publicly in the near future. Test suite runs
without problems on Windows 95, SUN and SGI. Other platforms will
be tested as well, at least HP, Linux and Power Mac.
Example applications (see also To Do List):
- Support and compatibility with existing client-server applications
that use ONC RPC.
- WebNFS client (and server!) in Tcl that
can be downloaded and executed -- provided the extension is loaded --
on any machine on the Internet.
- Generalized client-server where the protocol
is defined at run-time. Agent systems where the downloaded code
defines its own communication protocol. Using custom communications
limited network bandwidth is used efficiently.
When a client-server
program desires to call or provide a remote service
it loads the protocol description file. Once loaded
the protocol is translated into bytecode (a compressed representation).
RPC calls/replies are executed using the specification given in the
byte code.
Steps:
- XDR/RPC language to bytecode
- Bytecode language defined
- Lexical analysis
- Parser and translation
- Language interface
- XDR interpreter to/from Tcl code
- Client and server functionality
- Memory/file streams tests - use with standard
implementation (sunrpc4.0) as a verifier.
- Simple client/server using TCP channels
- Bind protocol
- Web NFS
What is new:
The interpreted
approach. The rationale comes from the fact that XDR routines
generated by rpcgen(1) are in fact a translator for a user-defined
language (the protocol itself). An interpreter will offer about the same
performance. The goal of the project is to be a simple and
usable extension for C and Tcl programmers.
The Tcl world already has several distributed programming
environments. The drawback of these environments is they are not
compatible with existing network services, thus it is hard to
convince management to use Tcl in distributed applications.
By following a standard and providing compatibility with
existing applications TxRx removes this objection.
One question that might be asked about the project
is: why implement the RPC protocol when enhanced systems (like
CORBA) exist and are used. The answer is: they aren't as simple
as RPC thus they require an extensive implementation effort.