🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #8502

Re: IPC

#8502
From: SLMYQ
Date: Thu, 14 Apr 1988 06:15
78 lines
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!SLMYQ

Show 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