This RDCOMServer package is different from the other RCOM package from Thomas Baier which explicitly makes the R evaluator available. The model in this package allows S programmers to define new COM classes in S and make arbitrary S functionality and data available in different forms to non-S programmers. Users of the objects do not have to know anything about the S language and its syntax. Instead, they use the objects as if they were local to their language and simply invoke methods and access properties in the usual way for that language. In addition to exporting explicit COM definitions, it also supports returning arbitrary S objects, not limited to the primitive types and arrays of these. Also, the package allows S programmers to define how the objects are published, and provides a flexible and extensible mechanism for implementing the invocation of methods and properties. So in these regards, it is a framework for enabling S programmers to provide COM objects via S to clients in the regular COM manner. It simplifies the programming of COM clients using R and, together with the RDCOMClient package, provides greater choice in which language(s) one programs the computations. (See Paradigm.html for more details.)
This RDCOMServer package provides an example server which exports methods to access the R interpreter in much the same way that Thomas' RCOM does. This is just a special case and serves as an example. The server does not provide the important graphics device or R console however.
This package is also quite different from S-Plus's COM export facility. One can export collections of functions as regular COM methods and invoke them from clients atomically. This is different from having to set the arguments one at a time in the object, invoke the Run method, and then retrieve the result.
This RDCOMServer package provides a highly extensible mechanism for controlling the dispatch of methods and properties. It is easy to create new dispatch mechanisms that find and invoke methods and properties in different ways.
To use this package you will need to also install the following packages:
$R_HOME/library
directory.
examples/
directory illustrating how
to define and register COM classes from S. In that directory and also
the tests/
directory, there are examples of how to use
these from different higher-level languages inluding Java, Python,
Perl and Visual Basic).