home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / sys / amiga / datacomm / 7800 < prev    next >
Encoding:
Internet Message Format  |  1992-11-20  |  7.8 KB

  1. Path: sparky!uunet!cs.utexas.edu!zaphod.mps.ohio-state.edu!uwm.edu!rutgers!cbmvax!dlarson
  2. From: dlarson@cbmvax.commodore.com (Dale Larson)
  3. Newsgroups: comp.sys.amiga.datacomm
  4. Subject: Re: amiga netwrk stdrd api
  5. Message-ID: <37176@cbmvax.commodore.com>
  6. Date: 20 Nov 92 16:47:44 GMT
  7. References: <1992Nov18.112117.9143@ghost.dsi.unimi.it>
  8. Reply-To: dlarson@cbmvax.commodore.com (Dale Larson)
  9. Organization: Commodore Engineering
  10. Lines: 170
  11.  
  12.  
  13. Newsgroups: comp.sys.amiga.datacomm
  14. Subject: Re: amiga netwrk stdrd api (LONG)
  15. Summary: 
  16. Expires: 
  17. References: <1992Nov18.112117.9143@ghost.dsi.unimi.it>
  18. Sender: 
  19. Reply-To: dlarson@cbmvax.commodore.com (Dale Larson)
  20. Followup-To: 
  21. Distribution: 
  22. Organization: Commodore Engineering
  23. Keywords: 
  24.  
  25. In article <1992Nov18.112117.9143@ghost.dsi.unimi.it> labenrsa@ICIL64.CILEA.IT writes:
  26. >Like it or not, all existing network APIs are designed to work well with the
  27. >OS they were born in. Porting them over to another system often results in
  28. >poor integration with the new environment, incompatibilities with the original
  29. >implementation and resorting to gory hacks to get things working.
  30.  
  31. How true!
  32.  
  33. >So, why not go for an All-Amiga networking API?
  34.  
  35. Good idea.
  36.  
  37. >Please note that changing the API has nothing to do with the protocol you
  38. >are using. You should be able to use TCP/IP, or any other transport, from
  39. >a standard (well designed) Amiga network API.
  40.  
  41. This isn't entirely true.  In theory, yes, and it is a noble goal, but in
  42. practice, it just doesn't work that way, at least not with current technology. 
  43. Hopefully, the state of the art will soon advance to make this more reasonable,
  44. but I'm not holding my breath.
  45.  
  46. When it comes to implementation and application, there are several problems.
  47.  
  48. One is that even if every Amiga program which is network aware can use any
  49. given protocol stack, there aren't equivalent programs on all other (non-Amiga)
  50. side.  For example, if you want to remotely log into another machine, you use
  51. a program like rlogin or telnet.  Those applications are generally implemented
  52. on machines with a TCP/IP transport.  There are other application protocols for
  53. other transports.  If you have to implement (or port) a dozen remote login
  54. programs anyway, you might as well do them for a particular protocol stack in
  55. that stack's "native" API.
  56.  
  57. Second, each transport has it's own quirks, provides slightly different
  58. services, etc.  Applications protocols must be designed with these in mind.
  59. Thus, to generalize an application protocol to several transports necessitates
  60. accounting for each individual protocol anyway.  It increases application size
  61. and complexity.  You might just as well write a few different versions of the
  62. app.
  63.  
  64. Fortunately, this isn't a big deal.  If one API standard is created (and
  65. implemented with some standard protocol stack) as the standard for Amiga-only
  66. applications, Amiga network-aware apps should be much easier to write and more
  67. abundant.  You can also run multiple protocol stacks on the Amiga easy as pie.
  68. If you need connectivity to machines using different transports (and thus
  69. different applications), you can have it by running multiple protocols.
  70.  
  71.  
  72. >Also note that it wouldn't be TOO hard to recode a socket (or other API)
  73. >application for a standard Amiga API. In fact the Amiga API would more or
  74. >less provide the same sort of services (connect/disconnect/accept/send/receive)
  75. >only through a *cleaner* interface.
  76.  
  77. NOT.  With very simple applications, maybe.  More complex applications (even
  78. things like the standard Berkeley networking utilities) are much more difficult.
  79. Try doing this with an application with truly complex networking needs (i.e.,
  80. real-time, atomic transaction processing, reliable multicast, etc.), and you
  81. will find really big problems.  
  82.  
  83. BTW, your example API appears to assume a stream-oriented service
  84. (connect/disconnect).  That alone precludes you from implementing a number of
  85. application protocols.
  86.  
  87. >Now let me picture how a sample Amiga network application should work. This
  88. >is NOT an API design (yet), but should clarify what I have in mind. No
  89. >flames, please. Comments are welcome.
  90.  
  91. Not trying to flame -- we're dealing with very yucky stuff.  For a long time,
  92. I wanted to do something like what you are after.  It is intellectually *very*
  93. appealing.  It took a long time for reality to sink in.
  94.  
  95.  
  96. >The main points I want to get through are : 
  97. >  1) I want to access multiple protocol stacks through the same API
  98.  
  99. What are you going to do if you can?  Again, you have to have an application
  100. on the other side.
  101.  
  102. >  2) I want the API to be *designed for the Amiga OS*, specifically
  103. >     supporting synchronous and asynchronous I/O, signals & c....
  104.  
  105. This is a reasonable expectation.
  106.  
  107. >- Should the  network.library actually be complemented by a network.device
  108. >  so that we can do I/O via Exec calls : SendIO/DoIO, etc.... ?
  109. >  (this is the sort of approach used by VMS/DECNET at the nontransparent
  110. >   level. I may be wrong but maybe DNET does something like this...)
  111.  
  112. You probably want something like device IO, but not exactly.
  113.  
  114. >- Should the network.library actually have a network.handler, so that
  115. >  we can do straight AmigaDOS I/O (both packet and file-oriented) ?
  116. >  This option somewhat overlays the case of 'transparent' network
  117. >  communication, discussed below.
  118.  
  119. There should be a network filesystem which is transparent to user and
  120. applications programmers.  This has nothing to do with writing network-aware
  121. apps.
  122.  
  123. >- Make it just a no-fuss library which resembles either but is none of
  124. >  them (as I sort-of did in the example)?
  125.  
  126. I guess that's what I said when I said "something like, but not exactly."
  127.  
  128. >Another big issue is the need to have standard AmigaDOS applications
  129. >operate over a network transparently, without calling a networking API.
  130.  
  131. It's called a network filesystem.
  132.  
  133. >It seems that the current approach taken by most Amiga networking software
  134. >works like "mount the remote file/device, then use it as if it were a
  135. >local filesystem". This scheme, notably used by NFS and most MS-DOS
  136. >networks, is fine for many applications, but not for all.
  137.  
  138. It's horrible for databases, for example.   Network filesystems are designed
  139. for reading and writing files, not for transaction processing.
  140.  
  141. >If the network gets very large and a lot of services are available which
  142. >you will not use on a regular basis, you definitely do _not_ want to
  143. >have them all mounted at all times, or to have to mount and dismount them
  144. >explicitely on occasion.
  145.  
  146. Huh?  Either you have them mounted at all times or you explicitly mount them
  147. once-in-a-while.  What other option could there possibly be.
  148.  
  149. >For instance, suppose you have a large LAN, where a single server hosts
  150. >most of the application software. You install a new release on the server
  151. >and that's fine. But then you have to install a license or just a 100 byte
  152. >preference file in _every client_ node. Would you want to mount them all
  153. >on the server, or walk to every machine with a disk, or just sit at the
  154. >server and type something like:
  155.  
  156. LAN configuration management (I think I've got the right buzz-word) is a whole
  157. business onto itself -- there are, for example, dozens of Netware products for
  158. remotely upgrading applications.
  159.  
  160. >What I'm suggesting is that there should be a _standard_ syntax to reference
  161. >remote file systems in a normal AmigaDOS path _without_ needing to mount
  162. >them.
  163.  
  164. This is a semantic game.  You just want a mount without an associated icon or
  165. device/volume name.
  166.  
  167. >                         Tnx for your attention
  168.  
  169. You're welcome.  It's clear that you've spent a lot of time thinking about
  170. this, and it's always nice to hear from thinking people.  :-)
  171.  
  172. >
  173. >---------------
  174. >Andy Zanna                           e-mail:   SDEVAX::ZANNA@icil64.cilea.it
  175.  
  176.  
  177. -- 
  178. Dale Larson, Software Engineer | Anyone who believes that what I say or do
  179.                           | represents the policies or procedures of
  180.                    | Commodore has more lawyers than they have 
  181. dlarson@commodore.com          | common sense.
  182.