One of these challenges is how to best integrate components written in different languages. Four implementation techniques were explored. Transmitting data via a socket is analogous with writing to a file and the reception of data from a socket with file reading. The efficiency of the serialisation affects the length of the resulting representation - typically a string. The longer the string the longer it takes to transmit.
Serialisation therefore has some bearing on the time taken to transmit an object via sockets.
Communication between different languages must also provide compatibility and consistency between base types such as integers. One obvious way to solve the type compatibility problem is to use Java sockets for communication on both the client and the server. This was the second technique explored. While this technique increases the complexity of the server and appears to merely shift the location of the problem it actually facilitates a solution. JNI provides type mappings and methods for inter-operation between the languages.