Search code examples
javascalaakkarmiremoting

Difference between transparent remoting and location transparency


I have googled a little to find a good explanation of the difference between the above two remoting strategies, i.e. transparent remoting and location transparency.

As far as I know, the former is at the base of Java RMI, the latter at the base of Akka. I know very well Java RMI and I understand what transparent remoting means, but what about Akka?

Thanks a lot for all the responses.


Solution

  • The two are actually opposites.

    "Transparent Remoting" is about making remote calls look like local calls. "Location transparency" is about making local calls look like remote calls.

    While this may not sound like a big deal—it is. It is all about the assumptions you can make. Typically local invocations have a much higher fidelity as there is a lot fewer possible error and failure modes. By embracing those failure and error modes in "Location transparency" it does no longer matter technically where the sender and receiver is located.

    With "Transparent Remoting" it is not evident that you are crossing a asynchronous and binary boundary, and as such, whether the calling thread will be able to make progress, whether there will be a notification on communication problems or information loss or corruption.

    I hope that answers your question,

    Cheers, √