Pen-Based Computing The Journal of Stylus Systems

Executive View: A Conversation with General Magic’s Jim White

Volume 4, Number 1 · January 1994 · Pages 12, 13, 14, 15

From the Original Pages

Click a page to enlarge · Alt-click to open the full issue

General Magic and AT&T have recently become the focus of curious interest, as people attempt to visualize an entirely novel paradigm in communications, news gathering, and maybe even commerce. At the core of this new paradigm is the concept of an electronic surrogate, known as an agent.

But what exactly is an agent? And perhaps even more interesting, who would dream up such a thing? The person is Jim White, Vice President of Communication Engineering at General Magic, and in the next few pages, you’ll read White’s own description of the history of Telescript along with some of the power behind the new paradigm.

Entering the Field

White entered the world of communications while an undergraduate student at UC Santa Barbara. There he accepted the challenge of designing and writing the network software for, what happened to be, node number 3 on the ARPANET, the forerunner to today’s massive Internet.

Life is often a series of unexplained coincidences, and as White explained, “it’s the complete reason why I have anything to do with communications today.”

Following university, White returned to his home in the San Francisco Bay Area and accepted a position to work with Douglas Engelbart at the Stanford Research Institute in 1972. It was here that White contributed a piece of technology that would later become synonymous with client-server computing.

As White tells it: “While I was there, Engelbart had this very inventive system called NLS which ran on a mainframe. He had the ambition of splitting it into a front-end and back-end. So I was responsible for developing the approach for doing that, and I developed a new paradigm for how to use a network, which is now called Remote Procedure Calls.”

The World of Messaging

Following SRI in 1977, White joined Bob Metcalfe, the inventor of Ethernet, at Xerox PARC to bring RPC to a range of office products being created by Xerox. This position presented White with the opportunity to make his second major contribution.

“While I was at Xerox, I got involved in what was then a brand new international standardization effort that ultimately gave rise to what is known as X.400.”

As you’ll recall, X.400 is an international standard for electronic messaging, and White was instrumentally involved in the first four years of work on X.400, which included contributing some of the foundation technologies for the standard, including RPC.

Besides contributing to the contents, White also served as the Editor of the 1984 version of the standards. This involvement in X.400 last about 10 years and contributed greatly in shaping his thinking about what electronic interpersonal communication really means.

After working at Xerox, 3Com, and a division of US Sprint, White started a small consulting firm with two colleagues, Rich Miller and Ted Myer. At this point, White began to think seriously about his X.400 experience.

“I started wondering why things are so complicated. Coincidently I got interested in a completely unrelated technology called PostScript. I got interested because I had worked at Xerox where the PostScript idea originally took root with InterPress.”

White was curious to see how PostScript functioned and, after buying a book on the language, began writing small programs to learn how the system worked.

“Then one day, I don’t remember exactly what day it was but I remember the feeling very well, I thought ‘Oh my God, what if you thought of a network the way Warnock and Geschke thought of the printer? What if you thought of the network as a computing environment rather than as a bunch of plumbing that just carries data.'”

White’s mind started racing and, working through the process, realized that he had come across an entirely new way of thinking about communications. Fortunately, his partners appreciated the innovation and provided White with some extra time to pursue the idea.

White explained: “We began to flesh out these ideas and we actually wrote six versions of the specification, continually refining it. At that point, it was the idea of a language for communications, nowhere near as well developed as it is now, but it was the basic idea—the basic paradigm shift from moving data in a network to moving code through a network.”

Enter General Magic

And then came General Magic. White explained: “My colleague, Rich Miller, told me that he had this engagement with a company called General Magic. When Marc [Porat, CEO of General Magic] got to the point in the life of General Magic where it was important to start developing the communications side of the strategy, he turned to Rich to develop the business approach.”

White continued: “Up to that point, General Magic had an initial grip on what is now Magic CAP and had prototypes working.” Of course, communication was always an important theme, dating back to the initial market research for Pocket Crystal at Apple. However, they weren’t completely sure how to attack the communications part.

“The people who founded the company, principally Bill Atkinson and Andy Hertzfeld, were not particularly communication people; they were wizards in the fields of personal computer software and user interface design. It was at this point at about a year and a half into the life of the company when Rich Miller was engaged to think through the business strategy.”

“Miller was the one to propose the idea not to develop the service but rather to team with a large service providing company which ultimately became AT&T. He gets the credit for that whole strategy and the actual execution of it.”

At this time, Porat needed someone to oversee the engineering aspects of communications. Asking around for recommendations, Porat quickly realized that White’s name kept appearing in many of the lists.

White described his initial contact with General Magic: “I was invited to come on board initially as a consultant, but the day I arrived, Marc [Porat] said ‘We want you to consult and interview for a job at the same time.'”

Putting ‘You’ into the Network

In a series of sessions, Porat described General Magic’s vision to White; in particular the concept of the “whole person paradigm.” White described that it was during one of these sessions that Porat drew three intersecting circles describing common human activities and wrote that word “YOU” in the center.

“The moment he said ‘you’ in the center of that, it occurred to me that this idea that I’d been developing, which at the core involves moving programs in the network, was a way of putting ‘you’ into the network.”

“And so I said, have you ever thought of putting ‘you’ into the network. That was the first expression of this thinking in the context of large scale public networks and the ambitions for personal communications.”

White continued by stating that this lead to a wholesale rethinking of electronic mail, especially since email was the principal paradigm for personal communications at that time.

By this time, General Magic had already secured three alliance partners: Sony, Apple, and Motorola. White was encouraged: “I thought, since we have such influential partners, if we decided to do something really different and unusual, we stood a chance of getting away with it. I didn’t feel that I had to stay within the bounds of current technology.”

This lead to a rethinking from first principles. White explains:

“I thought, Oh my God, what if you thought of a network the way Warnock and Geschke thought of the printer?”

“The innovation was this idea of thinking of a network in the context of a programming language analogous to the way PostScript thinks about imaging.”

Even though it’s simple to state, White acknowledges that this idea has proven to be conceptually difficult for some people. One reason, of course, is that there is no look and feel, no user interface. “It’s also hard for people to understand initially what it’s good for, you know, who cares?”

It is similarly hard to describe the value of an agent. White explained: “The agent idea, oddly enough, wasn’t part of the original thinking. We didn’t get that far when we were doing it alone. The agent idea was an evolution—first the idea was just a language with a program in the same language running at both ends.”

White continued by describing that “the idea of the program moving itself under its own programmatic control was a refinement that came at some point in the development here at General Magic.”

This idea came to be embodied in the Telescript communication primitive “go”, however, White explained that “initially my thinking was that it was too off-the-wall, it was too unusual.”

So why include something so different into a system that hopes for mass appeal? White replied by saying: “The power is that you can write a single, self-contained program that orchestrates its own movement through an arbitrarily complex electronic world.”

“While in this world, it gets information, engages in transactions, and the returns home. [In Telescript] you can express that as one thought, because it’s one object programmed for that behavior.”

On Telescript

Telescript has three major concepts or abstractions: agents, places, and go. A place is an abstraction for a service such as messaging, home shopping, or travel reservations. White described that Telescript is designed to facilitate the creation of new places, which could serve as the home for a new service provider.

Agents, on the other hand, are an abstraction of the customer of the service. White explained that “The innovation is that the user is mobile, whereas in client-server computing, the user is tied to the PC. The agent is an extrapolation of the user and allows users to project themselves into the network.”

The go operation provides the ability of getting an agent from here to there. This is essentially a high-level programmer’s construct that greatly facilitates the creation of communicating applications and services. This is because it frees developers from having to deal with APIs, protocol layers, and stacks.

Agents travel from one place to another to interact with agents there. “For two agents to interact, they have to be in the same place. To allude to the laws of physics, we have no action at a distance.”

So how does an average user acquire new agents? Of course, the enterprising user can program them. However, under normal circumstances, the user will acquire agents by purchasing applications that support the agent.

There is no reason to stop here though. White described that: “The reverse is also a very interesting scenario. When a new service comes on line out in the network, agents that are part of this service can come visit you and offer you things. They offer essentially to be your agent as buyer for that service—the virtue they have is that they are expert in the use of that service because they are part of the service.”

White continued by presenting an analogy: “It’s like the Fuller Brush salesperson, the door-to-door person that comes to you. In fact, that’s how you learned that there was a Fuller Brush person. You probably had never heard of them until one day one showed up on your doorstep and you could purchase a brush.”

“Here, a service provider sends an agent into your personal communicator and now you know

“… if we decided to do something really different and unusual, we stood a chance of getting away with it. I didn’t feel that I had to stay within the bounds of current technology.”

of a service you never heard of before, and furthermore you can now avail yourself of it.”

Depending on the application, the agent can come and leave with your order, or the agent can come and stay for future use. It’s up to the developer, the language is flexible by providing both options.

The Little Engine That Could

The engine that runs Telescript programs actually comes in two versions. As it stands today, these two engines are completely different pieces of software, however the are focused entirely on the same language.

The difference lies with the type of device that the engine is designed to support. One engine is for use with Magic CAP, General Magic’s Communicating Application Platform; the other is for use with desktop workstations and enterprise networks, including AT&T servers.

White explained: “The Magic CAP version is designed as an integral part of Magic CAP, you can’t easily see the boundary in the software between the two because the whole objective there is to minimize the size of the implementation.”

“The two object models are not designed independently, they are designed in collaboration. If you are writing Telescript inside of Magic CAP, you can leverage heavily off the operating system to get Telescript functionality.

The other implementation is written in a subset of C++ and is designed for much greater portability.

“There you can very carefully see the boundaries of the software. In fact, there are APIs that have been carefully defined and documented that describe how this Telescript software relies on the underlying operating system for non-volatile storage, for transport, and external applications.”

“The engine that runs as part of a service has to be manageable. The engine has to provide information about its status, usage of resources, and so on. That’s the other major difference between the two versions.” White estimated that size of this version of the Telescript engine to be about 600 KB.

Building Support

White acknowledges the importance of two significant considerations for any platform: application development and security. In terms of development, White makes a simple analogy: “The way I depict this graphically is like a cookie-cutter, where you have the square as the whole application written in C with circles cut out of it which are written in Telescript.”

“The circles that are written in Telescript are the agents, the parts of the application that need the mobility. So the typical application statistically will be almost all in C with these critical little parts written in Telescript.”

With respect to security, White stated that they were very careful about the type of code that is permitted to move around the network.

“We are not permitting machine code to be moved around for several reasons: the first is security, and the other is portability—we don’t want an architecture that is limited to any particular processor.”

White noted: “You can’t rely on complexity as a source of security because there’s always some one who’ll figure out the complexity.”

White was clear in the goals of Telescript. “I’m committed, and General Magic as a company is committed, to open architectures because you can’t create a de facto industry standard communication technology without being completely open. There is a need to spread the technology in the hope that it will take root and eventually lead to a worldwide Telescript fabric that will allow the service to be global.”

Transcribed from Pen-Based Computing, Volume 4, Number 1 — January 1994. Pages 12, 13, 14, 15.