Fixed Signature, Dynamic Data
Instead of constructing and deploying separate proxy/stub code for customized COM signatures for each OpenROAD 4GL procedure, the Application Server uses a generalized method signature, and the data passed through that signature is dynamically mapped to the actual signature of the called 4GL procedure. This is somewhat analogous to the way parameters are passed through the IDispatch Automation interface.
This generalized signature provides an easy-to-deploy baseline facility, which is the only interface the Application Server supports directly. Nothing prevents developers from building their own customized COM objects and method signatures to wrap the underlying interface, but the Application Server facilities do not yet provide any direct assistance for that.
OpenROAD 4GL procedures take named parameters. Parameters are passed through the COM interface through pairs of arrays: an array of parameter names and a corresponding array of parameter values. Constructing these paired arrays can be tedious (or impossible) in languages that have limited support for Automation array types. Therefore, additional objects (such as the Parameter DataObject and the OpenROAD 4GL RemoteServer system class) are provided to encapsulate the actual array structures and make it easier to construct and access the parameter data.