Shared Data Space Submitted to the Fourth International Conference on Cyberspace - REJECTED? Mark D. Pesce Network Zero 45 Henry Street #2 San Francisco, CA 94114 mpesce@netcom.com Introduction Cyberspace has a history which is still _all_ in front of it. While some efforts, such as DIS and LambdaMOO, produce some of the effects of cyberspace, neither is without serious tradeoffs. DIS requires that each participant in the Cyberspace know everything about it, whereas LambdaMOO creates in a world entirely without space. An effective implementation of Cyberspace needs to be able to "discover" itself interactively; must be able to employ to a wide-area, distributed storage mechanism for its content; and it must maintain a consistent, unified definition of space across its entirety. Given these basics, implemented at the protocol level, it is possible to construct Cyberspaces which can effectively contain at least billions of simultaneous participants. The Cyberspace Protocol Cyberspace (in Gibsonian terms) provides "place" on a computer internetwork. Into a unidimensional name space of network addresses, such as IP's dotted octets {x.y.z.w}, Cyberspace places a map of three dimensions, so that any "place" can be uniquely identified by the tuple {x.y.z}. The one basic service Cyberspace Protocol must provide is a "binding" between a given space and a network address or set of network addresses. Once this binding is available, other, higher-level protocols and processes can access the "content" and "behavior" of a Cyberspace through an addressing of its location. The participants within a Cyberspace are one form of its content. Using the ISO/OSI model of computer internetworking, Cyberspace is constructed to fill the session layer, layer 5, providing information of value to the network layer, which is communicated to it by the presentation layer. Implementation Cyberspace is provided through a straightforward client-server mechanism. The client makes a request, containing a tuple, and receives a reply from the server, of a network address. All the client application need know is where to find one Cyberspace server, which is implemented through the well-known socket mechanism. The Cyberspace server functions as an interface and data-filtering point between the client application and the near-infinite quantity of data within the whole of Cyberspace. The server itself maintains an incomplete map of Cyberspace; in fact its contents are determined by the requests made to it by its clients. These requests are principally determined by the position of the virtual egocenter, which is the locus of participant-initiated events in Cyberspace. Furthermore, any server is equivalent to any other; the all contain the database in potentia. Using a methodology analogous to the "Six Degrees of Separation", Cyberspace servers use a progressive, refined query approach toward other servers when resolving client requests. This methodology has a few side effects, the most pronounced of which is that Cyberspace "assembles" itself, gradually, over a period of time, and to a level of detail which is controlable by the client. In this it reflects Benidict's writings on persistence and Cyberspace. It also implies that level-of-detail is a quality intimate to Cyberspace itself. Multicast Cyberspace In order to create participatory environtments which are driven by a real-time exchange of events, a multicast, or many-to-many networking methodology must be imployed. Participants within a shared Cyberspace bind that space to a multicast address, and use that address for all objects and occrances which populate that space. In the most desirable case, any participant could subscribe simultaneously to an arbitrarily large number of multicast addresses. Very Large Cyberspaces It is necessary to propose an example with which to test the implementation as defined above. Given the worst-case scenario which planet Earth can currently provide, 5 billion simultaneous participants (not counting agents or other self-actuated entities present in Cyberspace) must be able to co-act within a single protocol and networking framework. A hierarchy of multicast addresses, arranged according to the topolology and population characteristics of inhabited Cyberspace will provide a maximum level of potential participation while minimizing bandwidth. Cyberspace topologies reflect level-of-detail in the "volume" of the space. In most situations, large volumes require lower levels of detail than human-scale, proximal environments. The construction of a multicast topology which satisfies these requirements enables a consistent, dynamic view of a highly populous Cyberspace. Shared Data Spaces of One Dimension This methodology can be applied to name spaces of any dimension. In the case of one dimension, an analogy to Shared Data Space exists in the Domain Name Service. A name service constructed on the components described above would have the advantage of being highly dynamical, enough so to contain a global filespace. A unique advanage arises out of servers controlling the mapping of data name to data set; the abstraction of data from its storage location on the network. This means that the choice of data host is up to the disscression of the server, which could select a storage locale based upon latency, throughput, load, cost, and so forth. It could also create an environment where data "follows" its users, moving from machine to machine so as to facilitate its immediate utility. Conclusions Shared Data Spaces are powerful extentions to the addressing methodology of computer internetworks. They abstract the symantic address of data from its physical storage and therefore provide a bandwidth-effective methodology for the creation of participant-intensive spaces. The complete 'C++' class libarary which implements the functionality as outlined above is being placed into the public domain and will be available in June 1994 from fool.netzero.com on the Internet. A demonstration of the technology will be available.