MacOS System 7
Apple Computer, Inc. -- 1990
In MacOS System 7, Apple added the low-level infrastructure necessary for programs to establish direct links with each other for communication and control. This provides the transport mechanism for AppleEvents, and on top of that AppleScript (the system-wide scripting facility).
A Security Flaw
When Bill started to investigate user interface issues for this new capability he found a major security flaw: programs anywhere on the network could establish communication links with programs running on your computer, and could read your data or even take control of your programs, and short of unplugging your computer from the network you couldn't stop them!
When Bill pointed this out the flaw was recognized, but the software was soon to go to beta and there was concern that nothing could be done without slipping the entire System 7 release.
Bill dug into the software APIs, consulted with the lead programmer, and determined that with a small change to one system call they could use the same password authentication mechanism as the new Personal File Sharing facility, and this solution was implemented.
Bill coined the term "Program Linking" to be used in the user interface as a user-friendly term for inter-application communication.
Bill was able to integrate access control for Inter-Application Communication and for Personal File Sharing into the same set of windows, which he designed.
System Level Access Control
This window allows users to turn on or off all available forrms of remote access to a given computer. In MacOS 7 this consisted of only File Sharing and Program Linking, but Bill envisioned this as a robust UI model to which other forms of remote access could be added in the future. Indeed MacOS X (as of 2004) continues to group the "master switches" for all remote access facilities into one "Sharing" control panel that has been extended to include Remote Login, Windows File Sharing, Printer Sharing, Personal Web Sharing and FTP Access.
User Level Access Control
This window allows a computer owner to specifiy the privleges granted to an authorized, remote user of the computer (in this example, to all remote users). "Program Linking" is the end-user term Bill coined to refer to inter-application communication.
Program Level Access Control
This window allows a computer owner to specify whether or not a given program should be remotely controllable.
This window allows a remote user to navigate an AppleTalk network to find the specific program on the specif compter to which he/she wishes to establish a program-to-program communications link.