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:
- 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.
- 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.)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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:
- Chris learns by chance that the Grateful Dead are in town next
month. He tries to get tickets but finds that the concert sold out
in 12 hours. Thereafter, Chris's agent monitors Ticketron every
morning at 9 a.m. The next time a Grateful Dead concert is listed
in Chris's area, the agent will snap up two tickets. If Chris
can't go himself, he'll sell the tickets to a friend.
- Chris buys a television from The Good Guys. Chris's agent
monitors the local consumer electronics market for 30 days after
Chris's purchase. If it finds the same set for sale at a lower
price, the agent notifies Chris so that he can exercise the
low-price guarantee of the store he patronized.
- Chris invests in several publicly traded companies. Chris's
agent monitors his portfolio, sends him biweekly reports, and
notifies him of any sudden change in stock price. The agent also
monitors the wire services and relays to Chris any news stories
about the companies whose stock he owns.
- Mortgage rates continue to fall. Chris refinances his house at
a more favorable rate. Thereafter, Chris's agent monitors the
local mortgage market and notifies him if rates drop 1 percent
below his new rate. With banks foregoing closing costs, such a
drop is Chris's signal to refinance again.
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:
- 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.
- 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.)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- John hasn't talked to his college friend, Doug, in 20 years.
He remembers that Doug was a computer science major. John's agent
searches the trade journals and conference proceedings -- even
very specialized ones -- in the hope that Doug has written or
spoken publicly. The agent discovers that Doug has published
several papers, one as recently as two years ago. The agent
returns with Doug's address in Los Angeles where he has lived, as
it turns out, for five years.
- It's Friday and John has been in Chicago on business all week.
Expecting to go home today, John is asked to attend a Monday
morning meeting in New York instead. He faces an unplanned weekend
in midtown Manhattan. John's agent discovers that Charles Aznavour
-- John has every recording Aznavour ever made -- is performing at
Radio City Music Hall on Saturday night. With John's approval,
John's agent purchases him a seat for the concert.
- John is in the market for a used car. He's had great
experience with Toyotas. John's agent examines the classified
sections of all 15 Bay Area newspapers and produces a tabular
report that includes all used Toyotas presently on the market. The
report lists the cars by model, year, and mileage, allowing John
to easily make comparisons between them.
- John yearns for a week in Hawaii. John's agent voices his
yearning in the electronic marketplace, giving details that John
has provided: a few days on Kauai, a few more on Maui, beach-front
accommodations, peace and quiet. The agent returns with a dozen
packages -- from American Airlines, Hilton Hotels, Aloha
Condominiums, Ambassador Tours, and so on. Unlike the junk mail
John routinely receives by post, many of these offers are designed
specifically for him. Their providers, in effect, are competing
for his business.
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:
- Mary's agent maintains a record of the films it selected on
past Fridays to avoid selecting one of those films a second time.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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:
- Mary plans to take Paul to see Phantom of the Opera
next weekend. Her agent tries to book orchestra seats for Saturday
or Sunday evening, succeeds in getting them for Sunday, reserves a
table at a highly regarded Indian restaurant within walking
distance of the theater, and orders a dozen roses for delivery to
Paul's apartment that Sunday morning.
- Mary's travel plans change unexpectedly. Rather than return
home this evening as planned, she's off to Denver. Mary's agent
alters her airline reservation, books her a nonsmoking room at a
Marriott Courtyard within 15 minutes of her meeting location,
reserves her a compact car, and provides her with driving
instructions, both to the hotel and to the meeting. The agent also
supplies Mary with a list of Japanese restaurants in the vicinity.
- Mary has begun to receive and to pay her bills electronically.
Mary's agent receives each bill as it arrives, verifies that Mary
has authorized its payment, checks that the amount of the bill is
in the expected range, and issues instructions to the bank to pay
it if it is. Mary's agent prepares a consolidated monthly report
and, at tax time, sends a report of her tax-deductible expenses to
her accountant.
- Mary subscribes to a daily newspaper, but it isn't her idea of
news. Mary's agent prepares and delivers a personalized newspaper
to her each morning. It includes synopses of the major national
and international news stories, but goes on to provide the local
news from her hometown in Virginia, the major events of yesterday
in her field (physics), the market activity of the stocks in her
portfolio, and Doonesbury (which she always finds gives her a
chuckle).
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.