Article View: comp.sys.amiga.tech
Article #8502Re: IPC
From: SLMYQ
Date: Thu, 14 Apr 1988 06:15
Date: Thu, 14 Apr 1988 06:15
78 lines
4328 bytes
4328 bytes
OK, since this IPC discussion is not really getting anywhere, it's time to
start defining what we need. Has Usenet EVER finished defining something?
Anyway, this is just an abstraction of what I think we need.
I'm posting this to comp.sys.amiga.tech because THAT'S WHERE IT BELONGS!
I think there should be two basic types of IPC: user-controlled IPC and
program-controlled IPC.
User-controlled IPC
In user-controlled IPC, the user provides or defines the link between
processes or tasks. Piping would be considered user-controlled, because
the user sets up the pipe. The Clipboard would also be user-controlled
IPC, but indirect - a program first posts something to the clipboard,
and later another one reads it. They communicate with each other
through the clipboard, which the user controls.
These are two good examples of user-controlled IPC already built into
the Amiga. However, piping has some serious limits (stream-only,
CLI-only, and mostly text), and the Clipboard is hard to use and
indirect. We need something that can pass any kind of data,
including structured data, works *efficiently* with the Workbench, and
is easy to use for the programmer.
Program-controlled IPC
This is the kind of IPC that the user doesn't need to know about, such
as devices, messages and ports, etc. This kind of IPC works between
two processes - the server and the client. The client calls on the
server to perform a service. I think there are three forms of major
services - output, conversion, and input/editing.
Output
The printer device could be an example of an output service - it
outputs data to the printer. A "show picture" service would open a
screen, display the specified picture, wait for the user to tell it
that he's done, close the screen, and signal the client.
Conversion
Conversion services would convert data from one format to another.
The Translator would be considered a conversion service - it
converts from English to phonetics. One "standard" conversion
service I would like to see is a compression service which
compresses or decompresses data in a variety of ways, like
run-length and Lempel-Ziv encoding.
Editing
Most applications would go into the input/editing category. A
painting program would be a "picture editor", and a music program
would be a "music editor". Their service to the client would be to
let the user edit something under the client's supervision.
Although this may seem quite useless, consider this. Many people,
including me, are against compilers including integrated editors.
I prefer to use my own favorite editor than be confined to the
limits the compiler's editor imposes. The good thing about
integrated editors is that the compiler "controls" the editor, so
it can bring up the editor at a certain line, saying "Syntax
error", and the user would know exactly where the problem was.
Certain keys could be defined in the compiler's interest, for
example, a "next-error" key. Same with menus. If we carefully
define this kind of IPC, we can create very flexible environments
for the user. Obviously, text editors would have the biggest job in
this category, but that doesn't mean other editors wouldn't want
IPC. For example, an animation system might want to have IPC so
specific external programs can create special effects, such as
neato explosions or fractal animation.
Anyway, this is just a big jumble of ideas, and you won't find a single
drop of code or structure definitions here. I'm just trying to define the
various uses for IPC. We'll have to mess with it a bit, and maybe we can
come up with something useful.
Bryan Ford (SLMYQ@USU.BITNET)
Technical Details
Message-ID:
<8804140625.AA11723@jade.berkeley.edu>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!lll-winken!lll-tis!ames!pasteur!ucbvax!USU.BITNET!SLMYQShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!lll-winken!lll-tis!ames!pasteur!ucbvax!USU.BITNET!SLMYQ From: SLMYQ@USU.BITNET Newsgroups: comp.sys.amiga.tech Subject: Re: IPC Message-ID: <8804140625.AA11723@jade.berkeley.edu> Date: 14 Apr 88 06:15:00 GMT Sender: uucp@ucbvax.BERKELEY.EDU Lines: 77