🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: comp.protocols.misc
2 messages
2 total messages Started by Philip Earnhardt Fri, 20 Jul 1990 03:24
Re: RPC Technologies
#216
Author: Philip Earnhardt
Date: Fri, 20 Jul 1990 03:24
135 lines
8919 bytes
In <4b8742f6.20b6d@apollo.HP.COM> mishkin@apollo.HP.COM (Nathaniel Mishkin)
writes:

>>This seems to be a bit of a 'back-off' from your previous postings ... are
>>we calling it a draw (i.e. yes there are dangers in customization and yes
>>there are instances where they are neccesary)?
>
>No.  I am simply not interested in trying to convince you any more that
>customization is a bad idea.  I believe (a) that you strongly believe that
>it's a good idea, and (b) that I'm not going to change your mind.

I agree, however there may be others following this dialogue who still hang
in the balance. In my previous posting (and I do realize that it is more
than a bit confusing as to who is posting -- we have a bit of a problem with
our news feed) there were a number of issues that the Netwise RPC Tool solves
through customization (for example asynchronous RPC) that you have done a fair
amount of hand waving about. As you have stated, threads will provide a way
to do asynchronous RPC (for environments that support threads), but you also
seem to believe that asynchronous RPC is blasphemous (i.e. your religion
says that it is a bad thing). You really can't have it both ways. And though 
threads will provide a method to accomplish async, it is clearly a much less
straightforward mechanism for an application programmer to use. This is one of 
the reasons that I believe customization is by and large a good thing. The 
Netwise tool does not inflict its users with the biases of the tool designers.

>>Maybe I am misunderstanding here, but it sounds like you are saying that NCS 2.0
>>will provide methods for authentication and for privacy that are 'hardcoded' 
>>into the system. If (for some reason) a customer has their own method that they
>>wish to use (i.e. their own encryption scheme) they will not be able to use it
>>and that instead they must use the method provided by NCS 2.0 ... am I jumping
>>to conclusions?
>
>The authentication facilities of NCS 2.0 are modularized in a way that
>permits their replacement.  I'm sure someone will jump up and down and
>say "So you do have customization!" so I guess I might as well address
>it now.  While there seems to be a strong movement to MIT Project
>Athena's Kerberos system (which is what NCS 2.0 works with), we (the
>NCS developers) are not empowered by anyone (not even ourselves :-) to
>declare that this is the one that everyone will eventually use.  In case
>Kerberos doesn't become a standard (based on the OSF DCE RFT decision,
>it *is* now an OSF standard) or in case someone really wants to use
>something else, we arranged that the Kerberos piece can be removed and
>another one plugged in.  We DO NOT consider this something that would
                             ^^^^^^
>be done by application developers.  We consider our design as a safety
         ^^^^^^^^^^^^^^^^^^^^^^^^^
>net in case things don't go in the way we have high confidence they will
>go.  It's not very useful if everyone in a single environment is
>not using the same authentication mechanism (protocol, key distribution
>center, etc.).  For these reasons, we think of the design of NCS's 
>authentication component as a good engineering decision, not as the
                               ^^^^^^^^^^^^^^^^^^^^^^^^^
>creation of a general customization facility.

So, to paraphrase, the authentication and privacy features of NCS 2.0 are
hardcoded. They could be changed by you folks if Kerberos doesn't make it 
as a standard, but application developers (i.e. customers who buy NCS) are
stuck with it. I would not try to claim that there is something inherently
wrong with Kerberos, but if some developer has a legitimate problem with it
(perhaps because it uses the DES), and they are working under NCS 2.0, they are
stuck ... true? I suppose if an NCS user really had to change it for their own
reasons, they could buy the NCS source and replace the Kerberos module...

In addition, I think it would be more fair to say that modularizing the 
Kerberos portion of NCS is a standard engineering decision. I think that most 
folks in this day and age would be flabbergasted that a conceptually seperate 
portion of the system was not put into a seperate module.

>>BTW, in some hallway discussions that we have had around here, the concept of
>>uniform transport behavior (sp?) has come up and it leaves me a bit puzzled. 
>>From my (perhaps somewhat limited) understanding of the current thinking in the 
>>networking community, there appear to be two camps, connection-oriented and
>>connection-less (thus the CO/CL split in the OSI) and what uniform transport
>>behavior in effect does is to come down clearly in the CO camp. (i.e. whether
>>the transport is CO or CL is unimportant (except in the case of broadcast) as
>>NCS establishes a CO protocol in either case). Is this the intent? The Netwise
>>approach is to have uniform CO transport behavior and uniform CL transport 
>>behavior and to therefore recognize this fundamental split ... I am curious
>>as to your thinking on this.
>
>I don't know about your "two camp" notion.  If two camps are present
>anywhere, it's at the network layer:  some people think it's important
>to have CL network protocols (like IP) and some people don't think it's
>so important (and are happy to have [only] a CO network protocol).  No
>one disagrees about the need for CO transport protocols.

Am I missing something here? Isn't UDP a CL transport protocol that is used
by a fair number of current applications (including NFS which is likely the
most widely used RPC application in the world today)? Aren't there provisions
for a CLTP in the OSI reference model? I think that there are those who would
disagree about _only_ having a COTP (which may be stretching your statement a
bit).

>No one thinks that the behavior of a particular transport protocol (e.g.,
>TCP) should vary as a function of what (allowed) network protocol it
>runs on top of.  I.e., if someone were to make a TCP that ran over OSI
>CLNP (a not unthinkable scenario), I think people would be pretty annoyed
>if you (a) didn't make it reliable (in the way people generally think
>of TCP/IP as being reliable), and (b) you advertised your software as
>being TCP.  Similarly, our feeling is that people would be annoyed at
>someone's advertising something as "being RPC" yet making its behavior
>a function of some lower level network protocol choices.

But again, you folks are constraining the choices of your customers. There are
distinct sets of advantages and disadvantages to CO vs. CL transports and the
NCS product allows only the set for CO transports. BTW, if the home-brew CO
transport over UDP is so much better than TCP, why didn't you folks stay with
that for NCS 2.0 rather than adding TCP support?

With the Netwise approach, you get (in effect) _both_ CL and CO RPC and allow 
user of the tool to decide for themselves which of these two options is 'best'
for their application. If a user wishes the advantages of a CL RPC (largely
reduced overhead) and is willing to pay the price that implies (lost messages, 
etc.), they should have the opportunity to make that decision. Clearly there 
exist applications that will benefit from this.

My overall impression of NCS is that it is largely a 'do it our way' system.
The NCS designers made decisions about what RPC should be and how it should 
operate and that these are the only allowable ways to do RPC within NCS. In
my experience in dealing with customers, this simply will not work. These
folks have their own ideas about how RPC should work and they intend to use
it that way. Trying to convince them that certain things are not religiously
correct is a futile exercise. A much better alternative is to give users the
flexibility to decide for themselves and (as much as possible) to warn them
about potential problems with their approach. In the end, C programmers (as
opposed to Pascal programmers) are used to doing things their way even though
there is some (perhaps great) danger associated with it and IMHO this is as
it should be.

------------------------------------------------------------------------------
The verbiage above does not neccesarily reflect the views of my employer or
client (Netwise).

jake edge - L & E Technologies, Inc. 2888 Bluff St. Suite 142 Boulder, CO 80302 
    Ma Bell: (303) 440-1142                     UUCP: ...!onecom!wldrdg!jake
Re: RPC Technologies
#228
Author: Chuck McManis
Date: Fri, 27 Jul 1990 20:40
69 lines
4662 bytes
This discussion is great fun guys, keep it up. I'd like you to consider
a paradigm for a moment and see if both of you are talking about the same
thing. It goes something like this :

There are two distinct ways in which Remote Procedure Call technologies
are used. The first (and currently most common) is in the development 
of network services. The second is in the development of distributed
applications. Distinguishing between what type of program you are
writing can make a whole bunch of issues clear. First, lets look at
network services. 

A network service is an application that usually runs on a single
machine.  The application exports to the world "functions" (procedures
for you PASCAL types) which can be called by client applications when
they want to use the service. From the user's perspective there is a
well documented protocol and a bunch of "stubs" that they can call to
access the various exported procedures of the service. These services
are generally things like name servers or remote file servers. In this
environment developing applications is fairly straight forward. The
programmer looks at the "man" page for the functions they need to call
(let's say our name service exports the function "Lookup") and writes
in the code to call that function. The application programmer doesn't
care about "semantics" or "data encoding styles" or whatever. They 
just want to call the function and get a result. Once the application
is written the code is linked with the "stubs" and the programmers
work is done. From the network service developer's perspective, he
(forgive the sexist language) wants to be able to create a service
make it available but doesn't want to become some wizard sockets 
programmer. Here an environment such as ONC/RPC or NCS helps out because
they present a paradigm that looks like procedure calls as opposed to
networking calls and the grunt work is handled by a bunch of library
routines. (Compared to something like 'sendmail' which is very 
difficult to maintain and the protocol somewhat difficult to document)
Here the service designer can decide "how close to the metal" he
wants to write his code because only he knows the true requirements
being made of the underlying network. So to summarize network services,
they are easy to use by application programmers because they just link
to the service's library of client stubs. The service developers 
want to develop services that are reliable and easy to maintain and
the tools provided help them do that.

A distributed application on the other hand is a whole different
beast. Here we have a process (single execution context) which 
has pieces of itself operating on different machines (discontiguous
address spaces). Here the requirements of the underlying distribution
technology become very strict since ideally the system works identically
whether or not any piece of it is distributed. This is where such
overly marketed things like "at most once" semantics (or more commonly
"exactly once") semantics are required. The key differences between
these sorts of applications and network services are that while several
clients may access the functions of a network service, exactly one
client accesses a piece of itself across the network.[ As an aside,
I haven't found any research yet that suggests distributing an 
application has any positive effect on that application, much like
the parallel processor challenge. ] It is still unclear what the
ideal environment for developing distributing applications is, much like it
is unclear about how to write parallel applications in a general
way. (I know, lots of great work but no clear conclusions yet)

Bottom line, you decide. I'm always a bit suspicious when the snowmobile
salesman says "But this is clearly the superior snowmobile! Not very
many people own one so it's distinctive and it is the only one with
air conditioning!"

--
--Chuck McManis						    Sun Microsystems
uucp: {anywhere}!sun!cmcmanis   BIX: <none>   Internet: cmcmanis@Eng.Sun.COM
These opinions are my own and no one elses, but you knew that didn't you.
"I tell you this parrot is bleeding deceased!"
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads