Telescript Technology: Scenes from the Electronic Marketplace

Copyright 1996 by General Magic.



Introduction

Today's networks -- especially public networks -- pose an insurmountable barrier to the development of communicating applications. These are applications that have a functional need to distribute themselves among both the computers of individual users and the servers, the computers that users share. Such distribution is not possible in practice for reasons of logistics, portability, and safety.

General Magic has developed a software technology that overcomes these barriers. That technology, Telescript(tm) technology, enables the creation of a new breed of value-added network that supports the development of communicating applications by making the entire network an open platform for developers. While conceived for a new breed of consumer electronics product, the personal intelligent communicator (PIC), Telescript technology is equally at home in more familiar settings, for example, the personal computer.

A companion white paper, Telescript Technology: The Foundation for the Electronic Marketplace, provides a technical overview of the Telescript technology and presents the vision of an electronic marketplace based upon it. This paper explores a variety of communicating applications that could, but do not yet, exist. These are scenes from the electronic marketplace of the future.

This paper has four main sections. The first, intended especially for those who haven't read the companion paper, provides an abbreviated overview of Telescript technology. The other three sections present varied scenarios that illustrate the technology's use in communicating applications. Each of these three sections has a theme, develops one variation on the theme, and sketches others.

Telescript technology will appear initially in products and services offered byApple, AT&T, France Telecom, Fujitsu, Matsushita, Motorola, NTT, Philips, Sony, and Toshiba.


Telescript Technology Overview

The Electronic Marketplace

Telescript technology integrates an electronic world of computers and the networks interconnecting them. This world is filled with Telescript places occupied by Telescript agents. In the electronic world, each place or agent represents an individual or organization in the physical world, its authority. A place's or agent's authority is revealed by its telename, which can't be falsified.

A place, but not an agent, has a teleaddress, which both designates the place's location in this electronic world and reveals the authority of the individual or organization operating the computer in which the place is housed.

The typical place is permanently occupied by an agent of the place's authority and temporarily occupied -- visited -- by agents of other authorities. A theater ticketing place, for example, might be occupied by a ticketing agent able to provide information about theater events and sell tickets to those events. The ticketing place might be visited by agents of other authorities wishing to avail themselves of the service the ticketing agent offers.

A Telescript agent is a computer program -- in modern terms, a software object -- with the unusual ability to transport itself from one place in this electronic world to another. The place to which an agent travels may be either in the same computer as the place from which it travels or in a different computer. In the latter case, the agent's travel involves the use of a network.

An agent travels to obtain a service that is offered remotely. A user's agent, for example, might travel to the ticketing place, from a place in the user's personal communicator, to obtain theater tickets from the ticketing agent. In general, one agent travels to first meet and then interact with another agent. The agents interact programmatically using object-oriented techniques.

We describe the electronic world that Telescript technology enables as an electronic marketplace because it provides a setting in which the agents of the providers and consumers of goods and services can find and interact with one another. Varied forms of electronic commerce are possible as a result.

The Telescript Language

The centerpiece of Telescript technology is a computer language for remote programming developed by General Magic. The Telescript language supplements, not replaces, system programming languages such as C and C++. Only the parts of

an application that require the ability to move from one place in a network to another -- the agents -- are written in the Telescript language. Telescript technology makes such movement not only possible but also safe.

The Telescript language is communication-centric. Just as PostScript(TM) is designed for describing complex images, and Mathematica(TM) for performing complex mathematics, the Telescript language is designed for carrying out complex networking tasks: navigation, transportation, authentication, and so on.

Agents travel using the Telescript language's go instruction. The agent need merely present a ticket that identifies its destination. An agent executes go when it must get from one place to another. After an agent executes go, the next instruction in the agent's program is executed at the agent's destination, not at its source. Thus, the Telescript language reduces networking to a single program instruction.

A ticket designates either a particular place by name, any place of a specified authority, any place at a specified address, any place at an address of a specified authority, or any place of a specified class, that is, any place providing a specified service. These constraints can be imposed in combination.

Another instruction available to the Telescript programmer is meet, which enables one agent to meet another. The agent presents a petition, which identifies the agent to be met. An agent executes meet whenever it wants assistance. By meeting, the agents receive references to one another that enable them to interact as peers using object-oriented programming techniques.

A petition designates either a particular agent by name, any agent of a specified authority, or any agent of a specified class, that is, any agent providing a specified service. These constraints can be imposed in combination.

The Telescript Engine

A Telescript agent is powerless in the absence of a Telescript engine, which implements the Telescript language by interpreting programs written in it. To date, General Magic has developed two implementations of the Telescript language. One of these two engines is designed for personal intelligent communicators, the other for public services and enterprise servers.

Any Telescript engine -- at least conceptually -- has three application program interfaces (APIs) through which the engine draws upon the resources of the computer platform on which it runs. The storage API provides access to the platform's nonvolatile store, which the engine uses to preserve agents in the face of a crash. The transport API provides access to the platform's communication media, which the engine uses to send agents to other engines, and to receive agents from other engines. The external applications API, finally, allows the bulk of an application written, for example, in C to create and interact with the parts written in the Telescript language, that is, the agents.


Monitoring Changing Conditions

The User Experience

Two weeks from now, Chris must make a two-day business trip to Boston. He makes his airline reservations using his personal communicator. He's ready to go. Chris's schedule in Boston proves hectic. On the second day, he's running late. Two hours before his return flight is scheduled to leave, Chris's personal communicator informs him that the flight has been delayed an hour. That extra hour enables Chris to avoid cutting short his last appointment.

The hour Chris saved was important to him. He could have called the airline to see whether his flight was on time, but he was extremely busy. Chris was startled -- pleasantly so -- when notice of his flight's delay hit the screen of his personal communicator. When he used his communicator to arrange his trip two weeks ago, Chris had no idea that this was part of the reservation service (his trip planning application).

How Agents Provide the Experience

Chris can thank one Telescript agent for booking his round-trip flight to Boston, another for monitoring his return flight and notifying him of its delay. The first of these two tasks was accomplished in the following steps:

A Diagram of the First Steps of the Experience Process

  1. Chris gives to the trip planning application he bought for his personal communicator the dates of his trip, his means of payment (e.g., the number and expiration date on his Visa card), his choice of airline, and so on. If he has used the application before, it already has much of this information.
  2. The application creates a Telescript agent of Chris's authority and gives Chris's flight information to the agent. The part of the application written in C creates and interacts with the part written in the Telescript language, the agent, using the Telescript engine in Chris's personal communicator. (The Telescript engine is accessed via its external applications API.)
  3. The agent travels from Chris's personal communicator to the electronic marketplace's airline place. It does this by executing the Telescript language's go instruction with a ticket that designates the airline place by its authority and class.
  4. The agent meets with the airline agent that it finds in the airline place. It does this by executing the Telescript language's meet instruction with a petition that designates the airline agent by its authority and class.
  5. The agent gives Chris's flight information to the airline agent, which compares the authority of Chris's agent to the name on Chris's Visa card and then books his flight, returning a confirmation number and itinerary. The agents interact using object-oriented programming techniques.
  6. The agent returns to Chris's personal communicator. It does this by executing the go instruction with a ticket that designates home by its name and address, information the agent noted before leaving the communicator.
  7. The agent gives the confirmation number and itinerary to the trip planning application (the agent accesses the application through the Telescript engine's external applications API). Its work complete, the agent terminates.
  8. The application conveys the confirmation number and itinerary to Chris, perhaps making an entry in his electronic calendar as well.

    The remaining task, that of monitoring Chris's return flight and informing him if it's found to be delayed, is carried out in the following additional steps:

    A Diagram of the Remaining Steps of the Experience Process

  9. Before leaving the airline place (in step 6), the agent that made Chris's reservation creates a second agent also of Chris's authority, and gives Chris's confirmation number and itinerary to that agent.
  10. Noting that the flight is two weeks hence, the newly created agent puts itself to sleep until the day of Chris's trip. The airline place may charge the agent (and thus Chris) a fee for its room and board.
  11. On the day of Chris's flight, the agent arises. Throughout the day, the agent checks Chris's flight once an hour. On each occasion, the agent first meets with the airline agent by executing the meet instruction with a petition that designates the airline agent by its authority and class, and then interacts with the airline agent using object-oriented programming techniques. In one of these checks, it notes the delay in Chris's flight.
  12. The agent (as in step 6) returns to Chris's personal communicator, and (as in step 7) notifies the trip planning application of the delay in Chris's return flight and then terminates. The application (as in step 8) gives Chris the information that allows him to complete his meeting.

Variations on the Theme

This first scenario demonstrates how Telescript agents can monitor changing conditions in the network. There are many variations:


Doing Time-Consuming Legwork

The User Experience

John is in the market for a camera. He's read the equipment reviews in the photography magazines and Consumer Reports and he's visited the local camera store. He's buying a Canon EOS A2. The only question that remains is, from whom? John poses that question to his personal communicator. In 15 minutes, John has the names, addresses, and phone numbers of the three shops in his area with the lowest prices. A camera store in San Jose, 15 miles away, offers the A2 at $70 below the price his local camera shop is asking.

The $70 that John saved, needless to say, was significant to him. John could have consulted the three telephone directories covering his vicinity, made a list of the 25 camera retailers within, say, 20 miles of his office, and called each to obtain its price for the EOS A2, but who has the time? John now considers his personal communicator to be an indispensable shopping tool.

How Agents Provide the Experience

John can thank a Telescript agent for finding the camera store in San Jose, a task that it accomplished in the following steps:

A Diagram of the Legwork Process

  1. John gives to the shopping application he bought for his personal communicator the make and model of the camera he's selected. He also identifies the geographical area for which he wishes pricing information.
  2. The application creates a Telescript agent of John's authority and gives John's shopping instructions to the agent. The part of the application written in C creates and interacts with the part written in the Telescript language, the agent, using the Telescript engine in John's personal communicator. (The Telescript engine is accessed through its external applications API.)
  3. The agent travels from John's personal communicator to the electronic marketplace's "yellow pages" directory place. It does this by executing the go instruction with a ticket that designates the directory place by its authorityand class.
  4. The agent meets with the directory agent it finds in the directory place. It does this by executing the meet instruction with a petition that designates the directory agent by its authority and class.
  5. The agent obtains from the directory agent the directory listing for every camera retailer about which the directory has information. The two agents interact using object-oriented programming techniques. The agent then narrows the list of retailers to those shops in the geographical area it was asked to explore.
  6. The agent visits, in turn, the electronic storefronts of those retailers. Each storefront is another place in the electronic marketplace. For each trip the agent uses the go instruction with a ticket that designates the agent's destination by its name and address, information the agent obtained from the storefront's directory listing.
  7. The agent meets with the camera agent it finds in each camera place it visits. It does this by executing the meet instruction with a petition that designates the camera agent by its authority and class.
  8. The agent gives to the camera agent the camera's make and model and receives a price in return. The agents interact using object-oriented programming techniques. The agent retains information about this particular shop only if the shop proves a candidate for the agent's top-three list.
  9. Once it has visited all the shops on its list, the agent returns to John's personal communicator. It does this by executing the go instruction with a ticket that designates home by its name and address, information the agent noted before starting its journey.
  10. The agent makes its report to the shopping application (the agent accesses the application through the Telescript engine's external applications API). Its work complete, the agent terminates.
  11. The application in turn presents the report to John, perhaps making an entry in John's electronic datebook or rolodex as a permanent record.

Variations on the Theme

This second scenario demonstrates how Telescript agents can find and analyze information in the electronic marketplace. There are many variations:


Using Services in Combination

The User Experience

Mary and Paul have been seeing each other for years. Both lead busy lives. They don't have enough time together. But Mary has seen to it that they're more likely than not to spend Friday evenings together. She's arranged -- using her personal communicator -- that a romantic comedy is selected and ready for viewing on her television each Friday at 7 p.m., that pizza for two is delivered to her door at the same time, and that she and Paul are reminded, earlier in the day, of their evening together and of the movie to be screened for them.

Paul and Mary recognize the need to live well-rounded lives, but their demanding jobs make it difficult. Their personal communicators help them achieve their personal, as well as their professional, objectives. And it's fun.

How Agents Provide the Experience

Mary relies upon a Telescript agent to orchestrate their Friday evenings. Born months ago and waiting patiently in a quiet corner of the electronic marketplace for most of each week, the agent takes these steps each Friday at noon:

A Diagram of How the Agents Work

  1. Mary's agent maintains a record of the films it selected on past Fridays to avoid selecting one of those films a second time.
  2. The agent travels, within the electronic marketplace, from its place of resting to the video place. It does this by executing the go instruction with a ticket that designates the video place by its authority and class.
  3. The agent meets with the video agent it finds in the video place. It does this by executing the meet instruction with a petition that designates the video agent by its authority and class.
  4. The agent obtains from the video agent the catalog listing for each romantic comedy in its inventory. The agent selects a film at random from among the more recent comedies, but avoids the films it has selected before (information it carries with it). The agent orders the film from the video agent, charging it to Mary's Visa card and instructing the video agent to transmit the film to her home at 7 p.m. The video agent compares the authority of Mary's agent to the name on the Visa card. The two agents interact using object-oriented programming techniques.
  5. The agent goes next to their favorite pizza place. It does this by executing the go instruction with a ticket that designates the pizza place by its authority and class.
  6. The agent meets with the pizza agent it finds in the pizza place. It does this by executing the meet instruction with a petition that designates the pizza agent by its authority and class.
  7. The agent orders one medium-size pepperoni pizza for home delivery at 7:00 p.m. The agent charges the pizza, as it did the video, to Mary's Visa card. The pizza agent, like the video agent before it, compares the authority of Mary's agent to the name on the Visa card the agent presents. The two agents interact using object-oriented programming techniques.
  8. Mary's agent returns to its designated resting place in the network. It does this by executing the go instruction with a ticket that designates that place by its name and address, information the agent noted before leaving the resting place earlier in the day.

What remains is for the agent to notify Mary and Paul of their evening appointment. This is accomplished in the following additional steps:

A Diagram of the Additional Steps

  1. The agent creates two new agents of Mary's authority and gives to each the catalog listing of the selected film and the names of Mary and Paul, respectively. Its work complete, the agent awaits another Friday.
  2. One of the newly created agents goes to Mary's mailbox place, while the other goes to Paul's. They do this by executing the go instruction with tickets that designate the mailbox places by their class and authorities.
  3. The agents meet with the mailbox agents they find in the mailbox places. They do this by executing the meet instruction with petitions that designate the mailbox agents by their authorities and class.
  4. The agents deliver electronic messages to the mailbox agents that include the film's catalog listing and that remind Mary and Paul of their appointment with one another. The agents interact using object-oriented programming techniques. The visiting agents terminate. The mailbox agents subsequently convey the reminders to Mary and Paul themselves.

Variations on the Theme

This third scenario demonstrates how Telescript agents can combine existing services to create new, more specialized services. There are many variations:


Telescript Products

The Telescript technology is embodied in two products offered by General Magic. Both involve the Telescript engine for services and servers.

The Telescript Developer's Kit (TDK), available for several different platforms, comprises object code for the Telescript engine and for platform-specific implementations of its APIs. This product includes the tools, sample programs, and documentation required to use Telescript technology to create communicating applications. The product is aimed at developers of such applications.

The Telescript Engine Porting Kit (TPK) comprises source code for the Telescript engine, along with the ancillary software and documentation needed to port the engine to a new platform. This product is aimed at platform manufacturers.

Additionally, General Magic has developed a communicating application that enables personal, intelligent, multimedia messaging. Parts of the application run on personal intelligent communicators, the sources and destinations of messages. Other parts run on servers, which house the mailboxes through which messages are routed. This work, along with the Telescript software that underlies it, is the basis for AT&T PersonaLinkSM Services, a consumer messaging service that AT&T will offer to the public in the second half of 1994. Arising from this work, additional electronic-mail-specific products will be available from General Magic.