Portable object (computing)

In distributed programming, a portable object is an object which can be accessed through a normal method call while possibly residing in memory on another computer. It is portable in the sense that it moves from machine to machine, irrespective of operating system or computer architecture. This mobility is the end goal of many remote procedure call systems.
The advantage of portable objects is that they are easy to use and very expressive, allowing programmers to be completely unaware that objects reside in other locations. Detractors cite this as a fault, as naïve programmers will not expect network-related errors or the unbounded nondeterminism associated with large networks.