[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    RPC Mechanisms (was: Re: [PATCH] bug in latest cvs
From:       Luke Kenneth Casson Leighton <lkcl () lkcl ! net>
Date:       2004-09-25 10:59:58
Message-ID: 20040925105958.GF15746 () lkcl ! net
[Download RAW message or body]

dear gary,

thank you for responding about kde's history with its RPC mechanism.

yes, i take the chill pills regularly.  oh.  damn, sorry - dried frog
pills.  --++* melon melon.  out of cheese error, redo from start. *++--.


okay, the reason why i am pissed is because you are struggling
with lack of assistance from the DCOP design itself: the
knowledge about the client-server infrastructure and usage is
locked into people's heads rather than codified in an "IDL"
format that causes compile-time errors.


perhaps i too should explain some history because it will help.

CORBA was dropped onto the open source scene in 1996 by olivetti labs,
under a GPL license (iirc).

DCE/RPC was developed and contributed to by Apollo (NCA/NCS), Fujitsu,
HP, DEC (now compaq) and others.

DCE is one of the most... unbelievably comprehensive bits
of engineering i have ever come across - and that's just the
runtime environment (let alone the projects that then used it,
such as DCE/DFS).

DCOM  was developed by microsoft as a distributed version of
COM (now an IETF RFC).

the best way to explain the relationship between CORBA and DCOM is as
follows:

DCE/RPC is to DCOM as what CORBA's-underlying-RPC-mechanism is to CORBA.

in other words:

* DCE/RPC and CORBA's-underlying-RPC-mechanism are "flat"
   functional-based mechanisms, and are suitable for use with c.

* DCOM and CORBA are "object-orientated" and suitable for use with c++.

from what i can gather, DCOP is a functional-based mechanism.

therefore, CORBA and DCOM are *not* suitable candidates for
replacing DCOP (because you have to do all sorts of hoops
including object-reference counting and de-counting)

whereas DCE/RPC most definitely is.

plus, microsoft still holds the copyright on the material it submitted
to the IETF as the COM RFC.


DCE/RPC 1.1 is OPEN SOURCE.  it's actually a BSD-style license, and as such
can be used by anyone.  it's intended as a reference implementation.


DCE/RPC is ***NOT*** patent encumbered.

the only patent that i am aware of is that some idiot patented
"sender makes right" in the byte order of transferring ints and
shorts.

consequently, DCE/RPC had to use "receiver makes right", which, apart from
anything else, is the better way to send data!

otherwise, you can't do UDP one-shot messaging, you have to do a 3-way
packet exchange "hello what byte order would you like to receive today?"
"oh, i want _this_ byte order thank you" "okay here you go" which is
just stupid!

"receiver makes right" you just format the data, tell the receiver
"bytes are this way round DEAL with it".


regarding other RPC mechanisms.

DBUS is about as close to the shit mechanism "XML-RPC" as you can get,
in fact it is WORSE.  DBUS duplicates most of the work _already_ done by
DCE/RPC except it doesn't have DCE/RPC's IDL compiler, which can take
IDL files in a near-c format and convert them to c-style header files,
complete with function prototypes and structs.


the reason why DCE/RPC hasn't been used is because of so many
misconceptions about what it can and can't do, its history and
its license.

_so_ many open source projects _waste_ their time reinventing RPC
mechanisms when there have been literally about 100 man-years of
development gone into DCE/RPC.

you should be aware that, at some point in time, time and
money permitting, i plan to do a complete and total coversion
of all KDE source code to use DCE/RPC instead of DCOP.  irrespective of
whether anyone actually "likes" it.

... because i want to see what happens, that's why!

:)

l.


-- 
--
Truth, honesty and respect are rare commodities that all spring from
the same well: Love.  If you love yourself and everyone and everything
around you, funnily and coincidentally enough, life gets a lot better.
--
<a href="http://lkcl.net">      lkcl.net      </a> <br />
<a href="mailto:lkcl@lkcl.net"> lkcl@lkcl.net </a> <br />

 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic