a- tion can be performed in context. Obje supports all standards, even those that have not yet been defined. The platform requires no central coordination, preconfiguring, or special setup and can be used by people with no technical expertise. It enables users to combine devices and build simple solutions, easily assembling applications from avail- able devices and services. The platform offers device manufacturers a simple and fast solution to the growing need to connect products. Obje works with devices of all kinds, including mobile phones, computers, PDAs, printers, set top boxes, bar-code scanners, and video displays, and from any manufacturer. Obje is designed to cut through complex protocols. Typically, communication among devices or services is structured into many protocol layers. Agreement on all layers is required before the devices and services are built. Developing and gaining acceptance of these agreements is a long, costly process that depends on broad industry consensus. Instead of working out all agreements in advance, Obje specifies a few very general agreements in the form of domain- independent programmatic meta-interfaces. The meta-interfaces use mobile code to allow new agreements to be put in place at run-time, enabling devices and services to dynamically extend the capabilities of their clients. The Obje meta-interfaces reduce the number of agreements that must be made between communicating entities. All Obje devices or services, called "components," implement and make use of one or more meta-interfaces. PARC researchers have developed a variety of components and applica- tions that use the architecture to cope with diverse performance, security, and usability requirements, as well as a variety of data types. Applications include a multimedia set top box, a public display system, and a system called "Casca," which allows team members to share documents and device resources such as cameras, printers, and speakers. Although Casca was designed to be a collab- orative tool, no component functi