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.
Location transparency is the ability to access objects without the knowledge of their location. A main facilitator of this is to use a resource naming scheme in which the names of resources are location-independent.
In computer networks, location transparency is the use of names to identify network resources, rather than their actual location. For example, files are accessed by a unique file name, but the actual data is stored in physical sectors scattered around a disk in either the local computer or in a network.
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, √
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With