The server component of RTAI-XML is a C++ application running as a daemon in a RTAI box, waiting for incoming TCP/IP calls using a specific RPC protocol. So far, the only RPC protocol implemented is XML-RPC. Future versions will provide complete support for wider implementations, such as SOAP.
The RTAI-XML server publishes over XML-RPC a set of logic operations that a remote client can execute to interact with the Target:
The abstraction of XML is fundamental for flexibility and standardization, but it is characterized by a diffuse verbosity: the data overhead could achieve 90% of the information transmitted. This lack of efficiency is not justified where the application switches from command execution to signal monitoring. At this stage the XML structure becomes redundant and it would be better to have direct access to the data. In order to maintain good performance also in this case, we adopted an hybrid strategy, using an approach similar to data streaming over the Internet. Whenever the communication has to deal with a huge amount of data transfer, the server and the host start communicating using a socket, opened after XML negotiation of its parameters.