There's a few messaging libraries out in the commercial world, mainly
used to connect to database servers for commercial client-server activity.
PeerLogic's Pipes is a big one there. Here, the model is more of a SEND/
RECEIVE activity. Asynchronous activity is the rule not the exception.
DCE is putting asynchronous calls into RPC, but unless your whole
application is event-driven, following a signal model is (IMHO) kind of a hack.
As for whether HTTP is RPC or not. We're definitely talking apples and oranges
here. HTTP is a an applicaiton protocol with high-level "opcodes" like
GET and PUT. Its implementation is completely unrelated to the protocol.
Most current implementation follow the READ/WRITE model. You can argue that
it would be more convenient to use the RPC CALL/RETURN model, or the
messaging SEND/RECEIVE model. It's really not a protocol issue. What I meant
in my previous posting was to replace the *implementation* of HTTP with
RPC calls (or messaging).
One advantage of the SEND/RECEIVE model is that the application can not
assume that it is going to immediately get a reply back. This forces
the developer to structure the application in such a way as to allow the
user to continue working while the RECEIVE activity is going on. Yes, this
is more complicated than doing a write and sitting there on a read until
all is done, but so was event-based GUI programming vs. prompt-based
command-line interfaces. Programmers were dragged kicking and screaming
into event-based programming, but everything seems to be fine now (:-)
What we really need is an event-based networking architecture that
takes care of all the underlying grunt work and just notifies the
program when something is done.
Cheers,
R.
-- Ramin Firoozye' rp&A Inc. - San Francisco, California Internet: rpa@netcom.COM - CIS: 70751,252--