RPC is broken by design
These days lots of systems aim to provide distributed computation.
Most of them are based on the RPC mechanism.
Given that fact the title is a bit provoking. But before we get lost
in technical details until we run out of arguments, let's try to
reason it the way the non-computer person will understand it...
RPC is a mechanism to transfer a bit of information from one machine
to another. At the same time it provides a mechanism to notify the
receiver about the just arrived info and have it act upon it.
Finally it transfers the reply back to the sender.
First of all, let's forget that we could have invented something
new with computers. Neither are the communication processes new.
Now lets compare the RPC mechanism with the real world. Think of the
info exchange as of a letter. If it was the best way to send every
letter including an answer form and have the postman wait in front of
the receiver until it's completed -- we would do so.
But we don't. We use *at most* that much of an answer form, that the
postman fills in a receipt assuring the letter was actually handed
to the receiver. And even that is mechanism is used only for a small
percentage of all mail we send.
That much for one example. But let's look at nervous systems.
They exchange small amounts of information between the cells all time.
Again that's a one way transaction.
At the other hand RPC was expressivly invented to hide the distribution
of objects, and make calls appear as if they where local.
And it does a real good job at that. But's the wrong goal.
I love to compare the situation with actors at a stage. It's actually
possible for one artist to play multiple roles. Most of the time it's
done cause there's a lack of more artists, money etc., sometimes
because of other special intention. Most plays simply need more
artists.
The RPC coupled network really appears as if everything was local.
And though it's as powerful as if it was local.
But networks are much more powerful that single turing machines.
My claim: we need to base distributed computation on unidirectional,
asynchronous message exchange methods.
Related work
-
my 1994 ~/doc/PTProposal?.sgml
which I prepared to express data driven computation in FPGA? boards
-
A second invention of th same processing model can be found under:
http://www.cs.columbia.edu/dcc/netscript/
There the target are network components like routers and end nodes.
But that's virtualy the same. And look at the abstract data model
and see it's identical!
-
more at that under related work under http://www.isi.edu/xbone/
-
mail/news and irc are the strongest services of the net.
Napster is sort of irc for file sharing (dcc connections) and it
makes entertainment industry fear. http://opennap.sourceforge.net/
-
my wrapbit prototype!
Related Work: WrapBit? nochmal: http://aachen.amergin.org/
Last Modifikation (except editing): 2000-03-21T09:52:02+1:00