Copyright 1996 by General Magic.
"Telescript technology will make electronic markets a mass culture reality. The Telescript language is an agent-based language that allows supply to find demand. It is machinery that gives people the magical ability to project their desires into Cyberspace; that ties together networks of all sorts in one seamless, invisible, central nervous system; that gives people the freedom to fly into the farthest reaches of the electronic marketplace to buy, sell, barter all things imaginable." -- Marc Porat, Chairman of the Board, Chief Executive Officer, General Magic, Inc.
The economics of computing, the convergence of computers and communication, and recent advances in graphical user interfaces enable powerful new electronics products to be placed in the hands of the consumer. (Some of these products will employ Magic Cap (TM), a software platform from General Magic that makes computer technology accessible to the consumer.) Personal digital assistants, or personal intelligent communicators as we call them here, are one example. Intelligent televisions, which provide access to vast amounts of scheduled program material and video on demand, are another.
In principle, such products could put people in closer touch with one another (e.g., by means of electronic postcards), simplify their relationships (e.g., by helping them make and even keep appointments), provide them with information (e.g., television schedules, traffic conditions, restaurant menus, and stock market results), and assist them in carrying out financial transactions (e.g., purchase theater tickets, order flowers, and buy and sell stock).
Devices alone will not deliver to the consumer services like those listed above. A new breed of computer software we call the communicating application is also required. Unlike the word processing and spreadsheet programs of today's personal computer, communicating applications will adeptly use the communication infrastructure, to which the new devices will provide access, to find and interact with people and information on the consumer's behalf.
Communicating applications will have qualities of timeliness and effectiveness that today's uncommunicative applications do not. One such application would maintain a person's stock portfolio, buying and selling stock under conditions that he or she establishes for it in advance. Another might arrange -- every Friday evening -- that a romantic comedy it selects is ready for viewing on television, and that pizza is delivered to the door.
Today's communication infrastructures, or networks, pose a barrier to the development of communicating applications. The barrier stems from the need for such applications to distribute themselves among the computers that are dedicated to individual users and the computers that users share, the servers.
The barrier posed by a nationwide public network is insurmountable. While users of an enterprise network might be allowed to install any application they wish on their own desktop computer, and while they even might succeed in persuading their network administrator to install a new application on the departmental servers, users of a public network would quickly find that no amount of cajoling would suffice to get their software onto a public server.
The information superhighway will languish if third-party developers are not engaged in its development as they were in the development of the personal computer -- if only because the network will respond much too slowly to new requirements. The state of the art in networking, however, creates a conflict making such participation impossible. The developer of the application that manages stock portfolios would require that users place, outside of their personal communicator and inside a public server, the part of the application that monitors the market. The company operating the public server, however, cannot reasonably provide users with such access to its critical shared resource.
General Magic has developed a software technology that resolves this conflict. That technology, Telescript(tm) technology, enables the creation of a new breed of network that supports the development of communicating applications by making the network a platform for developers. Telescript technology provides the "rules of the road" for the information superhighway, which leads to the electronic marketplace.
Today networking is based upon remote procedure calling (RPC). A network carries messages -- data -- that either request services or respond to such requests. The sending and receiving computers agree in advance upon the messages they will exchange. Such agreements constitute a protocol.
A client computer with work for a server computer to accomplish orchestrates the work with a series of remote procedure calls. Each call comprises a request, sent from client to server, and a follow-up response, sent from server to client. To delete from a file server, for example, all client files that are at least two weeks old might require one call to list the files and to obtain their dates of modification, and a subsequent call for each file to be deleted. The analysis that determines which files are old enough to delete is done by the client. If there are N old files, a total of 2(N+1) messages must be sent and received.
The salient characteristic of remote procedure calling is that each interaction between client and server entails two acts of communication, the first to ask the server to carry out a task, the second to inform the client that indeed the server did what was asked of it. Thus, interaction requires ongoing communication.
A different approach to networking is remote programming (RP). The network carries objects -- data and procedures -- that the receiving computer executes. We call such objects agents to highlight the fact that they act on behalf of the sending computer even while in the receiving computer.
To execute an agent is to perform its procedure in the context of its data. The procedure is a sequence of instructions, each chosen from a set of allowed instructions. Some instructions enable the agent to examine and modify its data. Others enable the agent to make requests of the service and to obtain the service's responses -- as if the agent and service were exchanging messages. Still other instructions enable the agent to make decisions that influence its behavior. The two computers agree in advance upon the instructions from which procedures are formed. Such agreements constitute a language.
A client computer with work for a server computer to accomplish orchestrates the work by sending to the server an agent whose procedure makes the required requests (e.g., "delete") using the data (e.g., "two weeks"). Deleting the old files -- no matter how many -- requires just the message that transports the agent between computers. All of the orchestration, including the analysis deciding which files are old enough to delete, is done "on-site" at the server.
The salient characteristic of remote programming is that client and server computers can interact without the network's help once it has transported an agent between them. Thus, interaction does not require ongoing communication.
The opportunity for remote programming is bidirectional. Server computers, like client computers, can have agents, and a server agent can transport itself to and from a client computer. Imagine, for example, that a client computer makes its graphical user interface accessible to server agents. The client computer might do this, for example, by accepting a form from a server agent, displaying the form to the user, letting the user fill it out, and returning the completed form to the agent. The completed form might instruct a file server's agent to retrieve files meeting specified criteria.
The new approach offers a tactical advantage, one of performance. Rather than "shout" commands across a network, an agent transports itself to the computer where work must be done and directs the work locally, rather than remotely. Thus, the network is called upon to carry fewer messages. The more work the agent must do, the more messages remote programming avoids.
The performance advantage of remote programming depends partly upon the network: the lower its throughput or the higher its latency or cost, the greater the advantage. The public telephone network presents a greater performance improvement opportunity than does a LAN. Current wireless networks provide greater opportunities still. Thus, remote programming is well suited to personal communicators, whose networks are slower and more expensive than those, for example, of personal computers in an enterprise.
Remote programming is especially well suited to computers that are connected to a network not permanently, but rather only occasionally. If a user instructs an agent to carry out a task -- or a long sequence of tasks -- the user's computer must be connected to the network only long enough to send the agent on its way and, later, to welcome it home. It need not be connected while the agent actually carries out its assignment. Thus, remote programming enables occasionally connected devices to do things that would be prohibitively expensive with remote procedure calling. The new approach provides to such devices a qualitative, not just a quantitative, advantage. Note that personal communicators -- especially wireless ones -- fall into this category.
The new approach offers a second advantage, one with far-reaching implications. This strategic advantage is customization. With agents, manufacturers of client software can extend the functionality offered by manufacturers of server software.
If a file server, for example, provides one operation for listing files and another for deleting a file by name, a client can add to that repertoire an operation that deletes all old files. The new operation, which takes the form of an agent, effectively customizes the server for that client. In a similar way, manufacturers of server software can extend the functionality offered by manufacturers of client software. A file server might provide an agent that effectively extends a client user interface to encompass filing.
The remote procedure call paradigm assumes that programs are immobile. Thus, each component of a distributed or communicating application is statically installed on a client or server computer. Remote programming enables programs to move between computers. A communicating application, statically installed on a client computer, for example, can dynamically install its server components on the appropriate server computers.
The advantage of remote programming is significant in an enterprise network, but it is profound in a public network whose servers are owned and operated by public service providers. In a public network based upon remote procedure calling, introducing a new communicating application requires a business decision, for example, on the part of CompuServe(tm) A network using remote programming requires a buying decision on the part of one user. Remote programming therefore makes a network, like a personal computer, a platform.
Telescript technology seeks to integrate an electronic world of computers and the networks that interconnect them. The computers include everything from personal intelligent communicators to mainframes. The networks include both local and wide area networks, public and private. We describe the Telescript world as an electronic marketplace, because, in practice, Telescript technology might provide a setting within which providers and consumers of goods and services, both electronic and physical, could find and interact with one another. Indeed, such a marketplace is the ultimate expression of the Telescript vision.
The electronic marketplace is full of Telescript places. One place, representing home, might exist in a user's communicator. Another place, representing an electronic shopping center, might exist in a mainframe operated by a public service provider (e.g., AT&T). Places can be nested. Thus, the shopping center in the illustration might have interior places (three of which are shown). A ticketing place might enable the purchasing of tickets to theater and sporting events, a florist place the purchasing of flowers. Since these goods are physical, not electronic, they must be delivered by physical means (e.g., the mail). A directory place might list and describe the other places in the shopping center.
Telescript places lend structure and consistency to the electronic marketplace. As illustrated above, they provide venues for the provision of services of all kinds. Each place represents, in the electronic world, an individual or organization -- the place's authority -- in the physical world. Several places may have the same authority. A place's authority is revealed by its telename.
The Telescript technology includes a programming language, and places are programmed in it.
A place is occupied by Telescript agents. Whereas places give the electronic marketplace its static structure, agents are responsible for its dynamic activity. Agents transact the business for which the marketplace is designed.
The typical Telescript place is occupied by a Telescript agent of the place's authority. (This situation is so common that Telescript allows this one agent's functionality to be incorporated in the place, so that a separate agent is not required.) The ticketing place, for example, is managed by an agent that can provide information about events and that can sell tickets to those events. The florist place, in a similar way, is overseen by an agent that knows about flowers and floral arrangements and that can initiate their delivery. The directory agent offers information about the shopping center itself, for example, providing directions to its other places, and thus to the agents those places contain. A user's home place is occupied by one or more agents representing that user.
Telescript agents, as the illustration suggests, represent potential providers and consumers of goods and services. Like a place, an agent has a telename that discloses its authority. Several agents may share that authority.
A Telescript agent is an independent process. The Telescript environment executes the programs of the various agents that occupy the marketplace in parallel with one another. The purpose and progress of one agent, therefore, have no influence, in general, over the purpose and progress of another.
Agents, like places, are programmed in the Telescript language.
As described so far, the electronic marketplace is full of potential energy but devoid of kinetic energy. The marketplace is in tension because the agents of would-be buyers and sellers are separated by networks. By far the most important characteristic of the Telescript language is that it enables this tension to be resolved. Buyers' and sellers' agents can find one another by traveling.
Every Telescript agent can transport itself from one place in a network to another. An agent travels to obtain a service offered remotely and to return to its starting place. A user's agent, for example, might travel from home to a ticketing place to obtain two orchestra seats for Phantom of the Opera.
An agent travels using go, an instruction drawn from the Telescript instruction set. The agent must present a ticket in order to travel. The ticket identifies the agent's destination, for example, using its telename. It specifies the terms under which the trip is undertaken, for example, the time within which it must be completed and possibly the means (e.g., wireless) by which it must be made. If the trip fails (e.g., because it takes too long), Telescript technology so informs the agent, which handles the situation programmatically however it sees fit.
An agent executes go whenever it must get from one place to another. As a consequence of 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. To the programmer it's like magic.
Once in the same Telescript place, two Telescript agents can interact. Agents interact so that one can obtain a service from the other. In the example we've been exploring, the ticketing agent is designed to provide information about theater tickets, a service involving information exchange. The ticketing agent, however, also is prepared to provide (with help from the postal system) the theater tickets themselves. This second service goes beyond information exchange; it involves transactions. As in this example, electronic transactions between agents can stand for and imply financial transactions between the agents' authorities. The world of Telescript agents can influence the external world of goods and services.
Two agents must meet before they can interact. One agent initiates the meeting using meet, an instruction in the Telescript instruction set. The second agent, if present, accepts or declines the meeting (using another Telescript instruction). The agent initiating the meeting presents a petition. The petition identifies the other agent, for example, by telename, and specifies the terms of the meeting, for example, how long one agent will wait for the other. If the meeting fails, Telescript technology so informs the agent that initiated the meeting, and that agent handles the situation programmatically however it wishes.
An agent executes meet whenever it wants another agent's help. As a consequence of meet, the agents receive references to one another. The references let them interact as peers using object-oriented programming techniques.
While in the same place, two agents interact by meeting. While in different places, they interact by communicating. Agents communicate to exchange information, often for the benefit of a human user who is "browsing." The agent sent to purchase theater tickets, for example, might send, to an agent left at home, a diagram of the theater that shows the seats still available. The agent at home might present the floor plan to the user, allow him to indicate the seats he prefers, and then send their locations to the agent on the road.
Two agents communicate via a connection between them. Using Telescript instructions, one agent requests the connection, the other accepts or declines it. The initiating agent identifies the responding agent, the place the latter occupies, and the quality of service required of the connection. Once established, the connection carries Telescript objects between the two agents.
If agents represent the newest communication paradigm, connections represent the oldest. Telescript technology makes both available for use in an integrated way. Often, as in the illustration, the two agents that create and use a connection are of the same authority and are parts of the same communicating application. As a result, the protocol that governs the connection's use is of concern to the application's designer alone; the protocol need not be standardized.
The power of Telescript technology and its remote programming paradigm is fully apparent only when one considers an agent whose program uses several basic services in combination. Such an agent itself can provide a higher-level, composite service using the basic services as raw materials.
An agent, for example, can travel to several places in succession. It might link trips in this way to obtain several services or to select one from among them. Booking theater tickets, for example, might be only the first task on our user agent's to-do list. The second might be to travel to the florist place and there arrange for a dozen roses to be delivered the day of the theater event. The agent would use the results of its interaction with the ticketing agent -- namely, the day for which it obtained tickets -- to influence its interaction with the florist agent.
This simple example has broad implications. Built to understand the separate concepts of tickets and flowers, the shopping center has later come to understand the higher-level concept of a special occasion, which involves both tickets and flowers. This increased understanding was achieved not by changing the shopping center, but by using it in a more sophisticated way. Alternatively, a new place indeed might be added to the shopping center. It could be in the business of arranging special occasions for others. A variant of the user agent that arranged the date in our example might do nicely as its proprietor.
Whether as shopper or shopkeeper, a Telescript agent emanating from a personal communicator can extend the functionality of the value-added communication services to which the communicator has access, provided those services are implemented using Telescript technology. The agent is a part of a communicating application that the user purchases and installs on his or her personal communicator. Telescript technology makes the whole network, not just one of the computers attached to it, a platform for such applications.
The Telescript language is interpreted rather than compiled. The instructions from which a place's or agent's program is constructed are not those of any "real" computer, nor are the objects the program manipulates those of any "real" operating system. Thus, Telescript places and agents lack even the vocabulary required to directly examine or modify the memory, file system, or other physical resources of the computers on which they execute.
Computer viruses are often discussed in the trade press these days. A virus is an unseen and unwanted program that insinuates itself into a computer and does damage there.
The typical virus is parasitic, attaching itself to an existing program and, by means of that program, avoiding detection. Programs written in the Telescript language lack the essential characteristics of a virus: access to the physical resources of their host computer and invisibility, or anonymity. The subjects of anonymity -- and its antithesis, identification -- have been considered in the development of Telescript technology.
Every Telescript place or agent, as already described, represents an individual or organization in the physical world, from which its authority derives. A place's or agent's authority, as well as its identity, are revealed by its telename, which distinguishes the place or agent from others in the marketplace.
It's one thing to claim a particular authority, or identity, and another to actually have it. Telescript technology requires that such things be proved. In the electronic marketplace, highly reliable -- cryptographic -- forms of proof are demanded.
Because agents move, their authorities and identities are of special concern. An agent must prove them at various turning points in its life. In particular, an agent's authority and identity must be reestablished whenever the agent goes from one region of the marketplace to another, a region being a set of Telescript places all operated by the same individual or organization. The destination region denies the agent entry unless its credentials are in order.
An agent's credentials play a crucial role in the electronic marketplace. They enable a shopkeeping agent to bill a shopping agent for services rendered. They enable the shopkeeper to provide the shopper with personalized service or deny it service altogether. More fundamentally, an agent's credentials prevent viruses by denying agents the anonymity characteristic of viruses.
Every Telescript place or agent has a permit that limits its capabilities in the electronic marketplace. Permits help protect the marketplace from malicious or misprogrammed agents by preventing their unbridled consumption of resources. Permits also protect the authorities under which agents operate by providing misprogrammed agents with a safety net.
Because agents move, their permits, like their credentials, are of special concern. An agent's permit is established when the agent is created programmatically, and it is renegotiated whenever the agent travels between regions. The destination region may deny the agent capabilities that it received at birth as long as the agent is in that region. (The region may not extend the agent's capabilities, however.) The region denies the agent entry unless it agrees to the restrictions the region imposes. When the agent eventually leaves the region, the restrictions are lifted (although those of another region are imposed).
Two kinds of capability are granted an agent by its permit. One kind is the right to use a certain Telescript instruction. An agent in the role of shopkeeper, for example, typically is denied the use of the go instruction. Another kind of capability is the right to use a particular Telescript resource, but only in a certain amount. An agent is granted, among other things, a maximum lifetime, measured in seconds (e.g., a 5-minute agent); a maximum size, measured in bytes (e.g., a 1K agent); and a maximum overall expenditure of resources, the agent's allowance, measured in teleclicks (e.g., a 50¢agent). (In theory, the teleclick is an abstract unit of measurement. In practice, however, an "exchange rate" between teleclicks and money is established.)
The Telescript engine that supports an agent constantly monitors its resource consumption. If the agent exceeds any of its quantitative limits, the engine destroys the agent unceremoniously. No grace period is extended. The agent has, as the saying goes, "no place to run, no place to hide."
An agent's permit plays an important role in the electronic marketplace by enabling the agent's authority to constrain the agent's activities a priori.
The Telescript technology has several elements: the Telescript language, the Telescript engine, Telescript protocols, and Telescript products.
Telescript technology includes, first and foremost, a programming language designed by General Magic to facilitate the development of communicating applications. Despite its name, the Telescript language is not a scripting language in the usual sense of the term. The Telescript language doesn't merely allow users to create macros that direct applications written in "serious" languages such as C. The Telescript language enables developers to implement major components of their communicating applications. Indeed, entire communicating applications can written in the Telescript language.
The Telescript language supplements, not replaces, such systems programming languages as C and C++. The typical communicating application is written partly in the Telescript language and partly, say, in C. The Telescript parts have the inherent ability to transport themselves between computers joined by networks. Thus, the Telescript language is a language for remote programming.
Some characteristics of the Telescript language are shared by other programming languages. A Telescript program, for example, can make decisions, handle exceptional conditions, schedule its activities, and examine its surroundings. A Telescript program can gather, organize, analyze, and modify information. Some types of information are built into the Telescript language, others are defined by the programmer. These capabilities make the Telescript language a language.
As described below, other characteristics distinguish the Telescript language from many other programming languages. And one characteristic -- the fact that it is communication-centric -- distinguishes the Telescript language from all other programming languages. Each of these characteristics helps the Telescript language serve its intended purpose as a language for remote programming.
A Telescript agent or place is powerless in the absence of a Telescript engine, which implements the Telescript language by interpreting programs written in it. General Magic has developed two implementations of the Telescript language. One of these two engines is integral to Magic Cap personal intelligent communicators and was designed for the new category of communicating devices to which Magic Cap technology belongs. The other, designed for use in the construction of public services and enterprise servers, is written for portability in C++.
A Telescript engine performs several important functions. It maintains one or more places in the electronic marketplace, as well as the agents that occupy those places. The engine in a personal communicator might maintain just a few places and agents, but the engine underlying a value-added communication service maintains thousands. In either case, the engine backs up to disk, or some other nonvolatile storage medium, the places and agents it maintains. It also executes their programs, concurrently. To do the latter, the engine implements the constructs and features of the Telescript language in which the programs are expressed. Finally, a Telescript engine encodes and transports agents to other engines, whenever they execute the go instruction.
Any Telescript engine -- at least conceptually -- has three application program interfaces (APIs). Through them, the engine draws upon the resources of the computer platform on which it runs. In the C++ implementation of the Telescript language alluded to previously, these APIs occur in practice, not just in principle. The engine's reliance upon these APIs is largely responsible for its portability.
A Telescript engine's APIs give the engine access to its environment. The storage API provides access to the platform's nonvolatile store, which the engine uses to preserve the engine's places and agents, even 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 them. The transport API is high-level so that a wide variety of transport media can be used by means of it. The external applications API allows the parts of a communicating application written, for example, in C to create and interact with other parts written in the Telescript language, and vice versa.
If the electronic marketplace were small enough to be maintained by a single Telescript engine, it wouldn't be large enough to be worth visiting, or even building. Nationwide from the start, the electronic marketplace will be worldwide eventually. An important part of Telescript technology, therefore, is the communication protocols that Telescript engines use to communicate with one another.
Telescript engines are interconnected so that Telescript agents can be moved between engines in response to the go instruction. Broadly speaking, the Telescript protocols operate at two levels. The higher level encompasses the encoding (and decoding) of agents, the lower level their transport.
The Telescript encoding rules explain how an agent -- its program, data, and execution state -- are encoded for transport, and how parts of the agent sometimes are omitted as a performance optimization. While engines can maintain agents in their own private, internal formats (e.g., on a disk), they must agree upon a standard format for purposes of communication. Loosely speaking, the Telescript encoding rules occupy the presentation and application layers of the seven-layer cake of Open Systems Interconnection (OSI). Telescript does not involve OSI protocols. The OSI model is mentioned here merely to provide a frame of reference for readers acquainted with OSI.
The Telescript platform interconnect protocol (PIP) specifies how an agent's encoding, once formed, is transported between engines. It also describes how -- for example, using public key cryptography -- the engines authenticate one another. PIP is designed as a "thin veneer" over any of a wide variety of communication media, existing and future.
The Telescript technology is embodied in two products offered by General Magic. Both involve the portable Telescript engine already mentioned.
The Telescript Developer's Kit (TDK), which is 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 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.
In addition, General Magic has developed a communicating application that does personal, intelligent, multimedia messaging. Parts of the application run on Magic Cap personal 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 a consumer messaging service that AT&T will offer to the public beginning in 1994. Arising from this work are additional, electronic mail-specific products available from General Magic.
The electronic marketplace not only will be hosted by agents acting in the capacity of shopkeeper, and visited by agents acting in the capacity of shopper, but it also will be run with the aid of agents acting in the capacities of operator, administrator, and manager (OAM).
Much like the staff at Disneyland occupy subterranean places and corridors while not "on stage" at street level, so network management places, to which access is restricted, will exist invisibly within the electronic shopping center. Network management agents will inspect and adjust the shops above them so as to ensure their proper functioning and that of the shopping center overall. Other such agents will be authorized to enter the shops themselves, just as the security guards at a mall may enter its shops to check for problems.
Network management tools are crucial to the success of any large-scale communication system. Telescript technology is an ideal vehicle for network management, in part because of the ease with which troubleshooting agents can be constructed to diagnose problems, many of which have never arisen before.
An important enterprise in the electronic marketplace is the electronic postal system, which can be composed of any number of interconnected post offices.
Telescript technology, as it turns out, is a perfect vehicle for the implementation of electronic mail systems. Following the remote programming paradigm, messages, since they are mobile, are implemented as agents. Mailboxes, since they are stationary, are implemented as places. Each mailbox is occupied by an agent of the mailbox's authority. A message's delivery is a transaction between two agents: the sender's message and the agent attending the recipient's mailbox. The transaction transfers the message's content between the two.
The beauty of Telescript technology, as it pertains to electronic mail, is that both the message and the mailbox can be customized. A message is customized by the sender, a mailbox by the receiver. Indeed, messages and mailboxes might be considered communicating applications in their own right. ("Buy my new and improved mailbox to replace the old and lifeless mailbox you're using now.")
Messages and mailboxes can be customized in numerous ways. If the post office provided an electronic directory of its subscribers, a message could be customized to allow its recipients to be addressed by telephone number. The message would go first to the directory, where it would use the telephone numbers to find the telenames of the recipients' mailboxes. Then it would go to the mailboxes themselves. A user could, for example, customize her mailbox to bring to her immediate attention, perhaps by pager, messages from her spouse; discard without ceremony all messages from that persistent landscaping company; and hold other messages so she can deal with them later.
AT&T will offer a Telescript-based consumer messaging service that brings these and related ideas to fruition.
By its focus, this paper might be construed to imply that the electronic marketplace is a consumer phenomenon, not a business one. But this is not its intent. The electronic world of Telescript technology embraces the enterprise as well.
An enterprise is an electronic marketplace in its own right, just one with restricted access and encompassing places and agents playing different roles. The corporate "mall" comprises engineering and marketing departments, for example, rather than ticketing and florist shops. Within its walls, however, information is exchanged and transactions are carried out just the same. Imagine, for example, an agent that electronically walks your travel expense report up the approval ladder and sends you an electronic note each time it arrives on another of the electronic desktops it must visit on your behalf. Telescript technology and its remote programming paradigm are as well suited to the private commerce of the enterprise as they are to public commerce.
The public and private agent-based electronic marketplaces of the future will coexist and be interconnected, just as are the public and private electronic mail systems of today. The resulting composite marketplace will appeal to and serve the whole person, whether at home, at work, or in between.
The electronic marketplace is substantially software. It will comprise numerous communicating applications, varied in purpose yet able to work together.
Telescript technology provides powerful tools for building the communicating applications that the electronic marketplace requires. Telescript places provide the basis for shops. Telescript agents provide the basis for shoppers and shopkeepers. The go instruction provides the means of transportation, and the meet instruction the means of social interaction. The Telescript language as a whole enables agents to act purposefully and provides the basic vocabulary of electronic commerce.
Telescript technology thus provides a foundation for the electronic marketplace.
Telescript technology is only a foundation. Before the marketplace can begin to rise on its foundation, software developers must create particular kinds of shops -- for example, the pizza parlor -- and the kinds of shopkeepers such establishments require. A Telescript template for a pizza parlor, developed by just one company, would enable thousands of pizza parlors to open their electronic doors for business. Classes of agents, of which there can be many, that will be able to visit electronic pizza parlors knowledgeably and effectively, are also required.
The electronic marketplace also requires support structures. White pages, yellow pages, information desks, and other directories are needed, as are catalogs, order forms, advertisements, and other commercial accessories.
The electronic marketplace will be constructed over the course of many years. Its value will grow as the number and variety of shops increase. A number of important shops, however, can be erected almost at once. Among them are travel places, selling airline tickets; and newspapers, publishing the news. These and other shops can be built easily because the information upon which they depend is already maintained and, in some cases, disseminated electronically. In effect, these shops exist today but lack Telescript "facades."
The scale of the electronic marketplace requires that it be created by many organizations working independently yet collaboratively. Standards are essential. The software technology used in the marketplace's construction, therefore, must satisfy two criteria: it must be adequate to the task, and it must be widely adopted for the purpose. We offer Telescript as one such standard.
Telescript will appear initially in products and services from Apple, AT&T, Matsushita, Motorola, Philips, and Sony. We at General Magic invite other organizations to join us in this ambitious and exciting endeavor.