The State of the Art 75
mechanisms to programmatically deal with failure modes like this, so these
cases can be worked around. The big issue is that the use of the same syntactic
form (function invocations) for two different types of invocations with different
behaviors can be confusing and problematic when writing code. Code that
is written based on function calls within the same process can experience
very different error conditions when some of these functions are replaced with
remote invocations to other, potentially distributed, processes.
Readers who are interested in RMI and RPC are encouraged to refer to texts
on distributed systems (such as [24]) or specific implementations to learn more
about these issues. We will not discuss them in detail