While the ToolTalk and action mechanisms encourage cooperation
between applications, the desktop also defines cross-user collaboration
technologies. This means distributed access to shared user data.
The desktop has defined some basic sharing mechanisms and has also
built on top of existing mechanisms.
An example of building on an existing mechanism is the
remote procedure call (RPC) client/service implementation of calendar
management. The desktop provides a client-side library and API,
RPC protocol, and daemon/service that enables users to share appointment
information. (The API is being standardized through
X.400 Application Programming Interface Association (XAPIA) to enable
a cross-UNIX, PC, and palmtop calendar standard.) The RPC protocol
enables a user to browse and directly edit another user's calendar.
Access is controlled by a user-specific access control mechanism.
Calendars are tied to hosts, and a calendar's data is maintained
by a host- specific daemon. The desktop names calendars through
a user@host format.
The Common Desktop Environment uses conventional distributed
file systems to name files that are sharable on the network. To
provide an interface that is independent of the distributed file
system, the desktop provides an API to translate host-relative file
names into locally expressible file names. Although the desktop
is based on the NFS® system, it can be ported to run on
top of other distributed file systems. Using the desktop file-name
mapping API, an opaque file name object can be constructed and passed
between desktop clients across the network and resolved in a host-specific
way. Also, to simplify the programming task and end user metaphor,
Common Desktop Environment applications should present remote file
references as local file paths.
One of the fundamentals of building multiuser collaboration
applications is the ability to share files. The conventions for
naming network files, in conjunction with a ToolTalk file-sharing
mechanism called file scoping, enable multiuser
collaboration through file sharing. File scoping is more than a
mechanism for simple, exclusive access control. Cooperating clients
can use file-scope access to negotiate for access to files. For
example, an application that has exclusive access to a file could
ask whether the user was done with the file when another application
wanted to gain exclusive access to the file.