We have identified a couple of specific requirements.

First, we need a uniform, user-implemented namespace. User-implemented means users control the mappings from names to resources seen by applications. This is the naming layer from the previous slide, and we take a cue from Plan 9 and Spring, which have demonstrated the feasability and usefulness of user-level namespaces.

When objects connect using the namespace, they should communicate using explicit, rich interfaces. With a least-common denominator interface like read/write, any communication is actually structured using some implicit interface inside the bytestream. Explicit interfaces allow objects to reliably determine if they are compatible, and to export multiple interfaces to enhance compatibility.

The second requirement is a flexible security framework. In a system where users distribute resources freely, some administrators will need to require stronger authentication than others. Administrators at high-security sites may require users to authenticate using a physically-secure thumbprint reader. Such users obviously won't be able to access those secured parts of their single-system image from remote sites. However, insofar as users are given freedom to access resources remotely, our framework should help users exploit that freedom.