An apparatus comprising: a first processor core running: a local agent comprising a local process for handling local processing carried out on the first processor core and a proxy agent for transferring processing requests to a remote agent running on a second processor core; and a local data management process; a local transport agent configured to be instantiated in the first processor core in case of multi-core processing and to instantiate a thread in the second processor core to receive a connection request and to send a connection request to the second processor core; the second processor core running: the remote agent that is an instance of the local agent except that the remote agent does not spawn a local process; a remote data management process; and a main transport agent configured to be instantiated upon receiving a request from the local agent and configured to instantiate a server transport process for constructing the remote agent;a memory coupled to the first processor core and the second processor core, wherein at runtime the local agent and the remote agent communicate by reading from and writing to a same block of memory addresses in the memory; and a communication link between the first processor core and the second processor core, wherein the proxy agent communicates with the remote agent via the communication link and the local and remote data management processes manage data exchange via the same block of memory addresses in the memory. a first processor core running: a local agent comprising a local process for handling local processing carried out on the first processor core and a proxy agent for transferring processing requests to a remote agent running on a second processor core; and a local data management process; a local transport agent configured to be instantiated in the first processor core in case of multi-core processing and to instantiate a thread in the second processor core to receive a connection request and to send a connection request to the second processor core; a local agent comprising a local process for handling local processing carried out on the first processor core and a proxy agent for transferring processing requests to a remote agent running on a second processor core; and a local data management process; a local transport agent configured to be instantiated in the first processor core in case of multi-core processing and to instantiate a thread in the second processor core to receive a connection request and to send a connection request to the second processor core; the second processor core running: the remote agent that is an instance of the local agent except that the remote agent does not spawn a local process; a remote data management process; and the remote agent that is an instance of the local agent except that the remote agent does not spawn a local process; a remote data management process; and a main transport agent configured to be instantiated upon receiving a request from the local agent and configured to instantiate a server transport process for constructing the remote agent;a memory coupled to the first processor core and the second processor core, wherein at runtime the local agent and the remote agent communicate by reading from and writing to a same block of memory addresses in the memory; and a communication link between the first processor core and the second processor core, wherein the proxy agent communicates with the remote agent via the communication link and the local and remote data management processes manage data exchange via the same block of memory addresses in the memory.