RPC Technologies

Nathaniel Mishkin mishkin at apollo.HP.COM
Wed Jun 5 04:40:00 AEST 1991


In article <1990Aug9.180750.5568 at athena.mit.edu>, pae at athena.mit.edu (Philip Earnhardt) writes:
|> In <4bc8788d.20b6d at apollo.HP.COM> mishkin at apollo.HP.COM (Nathaniel Mishkin)
|> writes:
|> >At worst.  If the demand appeared to exist, I suppose we could document
|> >the interface between the authentication module and the rest of NCS.
|> >This would allow people to write authentication modules without having
|> >the source to NCS.
|> 
|> I'd rather not beat a dead horse, but ... 

Me neither.

|> this would then allow customization by application developers ...
|> clearly a limited form of customization (as the 'RPC protocol' would
|> presumably be left intact).

I think the word "limited" is key.

|> Which leaves open the question of what other sections of NCS may need
|> to be 'customized' by the end user.  I do not believe that you would
|> claim that you have thought of all possible applications of NCS and
|> therefore you could not have included all things that the users may
|> find neccesary.  For this reason, Netwise-style customizations, while
|> not allowing all possible customizations, certainly allows the users
|> a great deal more flexibility in building their applications.

I won't deny that customization gives programmers more options.  We
obviously have philosophically different opinions about whether increasing
the programmer's options in this way is ultimately a good thing, i.e.,
whether it yields a system that makes it easier to write and maintain
correct distributed applications or whether it would be better to learn
(admittedly, over time) what the programmer's real needs are an address
them in a coherent way in future versions of the product.

|> >>But again, you folks are constraining the choices of your customers. 
|> >
|> >As does the C compiler writer who chooses to make his compiler save
|> >registers on ALL procedure calls, not just on those generated by a
|> >compiler targeted for a particular hardware architecture.
|> 
|> This is a very odd defense.  To defend constraining your customers
|> by pointing the finger at other folks who have done so in the past
|> is ludicrous.

I guess I don't see why it's an odd defense.  I'm not pointing my finger
at any one else.  I thought I was making a humorous analogy.  I guess
I mixed up my complaints about Netwise's lack of (what we call) "transport
transparency" (i.e., ensuring constant call semantics regardless of what
transport you happen to be running RPC over) with my complaints about
customization.  The analogy was that building a system that sometimes
yields one call semantics and sometimes another (depending on what
transport the application was running over) was like having a C compiler
sometimes preserve registers (that contains useful values) across calls
and sometimes not (depending on what hardware architecture the C compiler
was targetted for), yielding different program behavior.

I'll try to re-draw the analogy to apply to customization.  If someone
said to a C compiler writer:  "Hey look, I know what I'm doing and I
don't want you to save registers when I make this call; give me a way
of telling the compiler to not save registers", I think people would
argue that that kind of customization is a bad idea.

|> And if one of your customers chooses to use NCS/TCP, what will declaring
|> a procedure as idempotent do for them?  Specifically what optimizations
|> will be applied?

I'm aware of none that can be applied.  Is this a problem?  The programmer
states an invariant fact about his procedure.  Seems appropriate.  The
underlying system may or may not be able to take advantage of this fact.

|> >We've been over this again and again.  People don't want "CL and CO RPC".
|> >They want RPC.  They want to make certain performance tradeoffs made
|> >available to them.  NCS addresses this desire in an appropriate way.
|> 
|> I am not sure how you can make such a sweeping generalization. Is
|> this the result of some HP marketing survey or do you believe that
|> just by saying it, you can make it true?

The day marketing can get me correct answers to questions like this will
be a happy one for me, believe me.  Unfortunately, my experience has been
that it's hard or impossible to answer these questions by survey.  Sometimes
one just applies one's own engineering sense and more limited interactions
with application builders.

All I know is that it has always been my impression (reinforced, BTW,
by things that marketing people tell me) that there's a large body of
programmers to whom "network programming" is a daunting prospect.  I
have always taken the RPC model as a way to help those programmers by
hiding the network from them -- to relieve them from having to understand
things that you and I understand only too well.  I am trying to develop
a system where, as the system evolves, programmers have to know less
and less about the network.  In service of this goal, I try to make it
the case that the system doesn't require me to talk about "CL vs. CO"
in describing the system to its users.

                    -- Nat Mishkin
                       Cooperative Object Computing Operation
                       Hewlett-Packard Company
                       mishkin at apollo.hp.com
                    -- Nat Mishkin
                       Cooperative Object Computing Operation
                       Hewlett-Packard Company
                       mishkin at apollo.hp.com




More information about the Comp.sys.sun mailing list