Annotation of researchv10no/cmd/dist/talk/outline, revision 1.1

1.1     ! root        1: "Automatic Software Distribution and the Tower of Bable"
        !             2:        (really the Tower of Babble, or more accurately, the Network of Babble)
        !             3: ### slide: chopped down version of this outline
        !             4: * motivation and history
        !             5:        * consistency across a network of machines
        !             6:        * first publicly described for unix by Koenig (ship)
        !             7:        * rdist (Berkeley)
        !             8:        * coda (Rich $alz, BBN)
        !             9: * previous work
        !            10:        * samples of ship, rdist, and coda
        !            11:        ### slide: samples of ship, rdist, and coda
        !            12:                * simple ship command, command options
        !            13:                * rdist Distfile
        !            14:                * coda Codafile
        !            15:        * differences between ship rdist and Coda
        !            16:                * ship is command-oriented
        !            17:                * rdist and coda work from a configuration file
        !            18:                * ship and rdist work from master machines to slave machines
        !            19:                * coda provides a service--client machines in control
        !            20:        * problems with previous designs
        !            21:                * ship and rdist have too much control
        !            22:                * ship usage is strange
        !            23:                * rdist and coda config files are hard to use for simple things
        !            24:                * config files do not interact well with the rest of the system
        !            25:                * rdist and coda are monolithic
        !            26:                * ship, rdist, and coda are network dependent
        !            27: * the design of dist
        !            28:        * problems to solve
        !            29:                * distribution on a heterogeneous network of heterogenous machines
        !            30:                * cascaded redistribution
        !            31:                ### slide: picture of cascaded redistribution
        !            32:        * completing the square
        !            33:        ### slide: square containing ship, rdist, dist, and coda
        !            34:                * dist is command-line driven
        !            35:                * dist provides a service machine for client machines
        !            36:                * example of dist usage
        !            37:                * dist operates on multiple networks
        !            38:        * implementation
        !            39:        ### slide: picture of distribution crossing a network
        !            40:                * cleanly dividing along functional lines
        !            41:                * packaging
        !            42:                * queueing and transmission
        !            43:                * unpackaging
        !            44:                * packaging is decoupled from transmission
        !            45:                * written mostly as a collection of shell programs
        !            46: * problems and their solutions
        !            47:        * problem: whining about networks
        !            48:        ### slide: sample v10 & Berkeley network code, sample machine names
        !            49:                * network programming interfaces
        !            50:                * incompatible naming conventions
        !            51:        * solutions: isolate network dependencies
        !            52:                * we want reliable byte streams but don't care how
        !            53:                * isolate network dialers from the rest of the program
        !            54:                * provide easily-replaced heuristics to make sense of names
        !            55:        * problem: atomic installation
        !            56:                * hypothetical case study of partial installation
        !            57:                * want dist to succeed completely or fail completely
        !            58:        * solution: install package script in the unix style
        !            59:        ### slide: excerpt from insdist shell script
        !            60:                * build a backup copy of stuff to be replaced
        !            61:                * install new stuff
        !            62:                * remove any remaining old stuff not replaced by new stuff
        !            63:        * problem: writing bulletproof programs
        !            64:                * bulletproof is necessary for security
        !            65:                * funny names confuse people and are insecure
        !            66:                * funny names confuse programs and are insecure
        !            67:        * solution: new shell utilities
        !            68:                * qargs and uargs
        !            69:                * serendepitous interaction with xargs
        !            70: * conclusions and lessons learned
        !            71:        * problem decomposition wins again
        !            72:                * dist is smaller than ship
        !            73:                * network pain is isolated and easily replaced with future upgrades
        !            74:                * security issues are isolated and hence more easily controlled
        !            75:                * careful use of existing tools allowed atomic installation to be
        !            76:                  coded and tested within an hour
        !            77:        * shell programs are a tremendous benefit
        !            78:                * they aid and in fact encourage clean problem decomposition
        !            79:                * contrary to popular belief, can easily be made bulletproof
        !            80:                * shell programs are very easy to make portable
        !            81: * future work
        !            82:        * demonstrate cascaded redistribution (use dist to maintain itself)
        !            83:        * focus on the notifier (isolate security/policy dependencies here)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.