MODELLING RELATIONSHIPS WITHIN AN ON-LINE CONNECTIVITY UNIVERSE
TECHNICAL FIELD The present invention relates, to enhanced presentations and management of online information and, in particular, to techniques for modeling a user's connectivity relationships with network accessible devices, services, people, and data.
BACKGROUND On-line communications have become an increasingly important aspect of people's lives. These communications can take many forms, including explicit person-to-person communication such as email, instant messaging, or other forms of sending electronic messages; communication with on-line services such as web sites, email servers, and other Internet Service Provider ("ISP") services; and communication with local and remote devices, such as printers, scanners, or fax machines on a home network or, for example, on-line phones, cameras, PDAs, and other portable computers or devices. Managing and communicating with the morass of types of devices and connections has become difficult and not very "user-friendly" to a casual, or not necessarily technically savvy, user. Interfaces to devices are inconsistent, and the requirements for accessing services are not uniform or even well-known. In a typical conventional computing environment, a user conducts such communications by locating a user interface ("Ul") associated with the desired target or task, figuring out how to use it, and then invoking it to conduct the desired communication. For example, to set up access to or to change default properties associated with access to a particular printer, a user is forced to find and invoke a "setup" tool (e.g., a printer configuration tool) from a user interface presented by the underlying operating system, for example the Microsoft Windows™ "desktop." The setup tool displays a series of dialog boxes or other windows, whose user interface controls are dedicated to interacting with the target printer. The user is then forced to find the correct control, dialog, or other Ul component to perform a desired operation. If the user can locate the appropriate user interface, recognize it as the needed one, and find the appropriate specific component to invoke, then the user can perform the desired task. However, for many users, management
tools such as this one are impenetrable black boxes with limited options for control and little instruction. One reason for these difficulties is that the current metaphor for operating system user interfaces for personal computers is typically an "office" desktop or derivative thereof. The desktop metaphor was developed in the 970's and was originally targeted to the office automation market. However, the office automation environment for which these user interfaces were designed no longer represents a reasonable facsimile of or metaphor for how many people today incorporate computers in everyday life.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is an example screen display of an example connectivity universe presented by an example WorldView Display System. Figure 2 is an example screen display of a device ring displayed by an example WorldView Display System. Figure 3 is an example screen display of a data collection ring displayed by an example WorldView Display System. For example, Figures 4A and 4B illustrate still images from an example screen display of a cycling presentation of an active photo collection. Figure 5 is an example screen display of an animated representation of an active device. Figure 6 is an example screen display of a data collection ring with a sub-collection ring displayed by an example WorldView Display System. Figure 7 is an example block diagram of how components of an example WorldView Display System are incorporated in a computer system to provide a user interface to an example user's universe of devices, collections, and connections. Figure 8 is an overview flow diagram of operations performed by an example WorldView Display System. Figure 9 is an example block diagram of a portion of one internal model of an example connectivity universe by an example WorldView Display System. Figure 10 is an example screen display of an example Buddy Room proximity band. Figure 11 is an example screen display of an example Web proximity band.
Figure 12 is an example screen display of a close-up view of an example Web proximity band. Figure 13 is an example screen display of a media view of an example WorldView Display System. Figure 14 is an example screen display of media viewers presented by a media view of an example WorldView Display System. Figure 15 is an example screen display of objects displayed as a result of filtering a media view of an example WorldView Display System. Figure 16 is an example screen display of uber-collections presented by a media view of an example WorldView Display System. Figure 17 is an example screen display of a combined device and media view of an example WorldView Display System. Figures 18A and 18B are an example flow diagram of proximity band rendering supported by an example rendering system of a WorldView Display System. Figure 19 is an example screen display of a presentation of objects grouped by access proximity as displayed by an example WorldView Display System. Figure 20 is an example screen display of an example connectivity universe from a different viewing angle and level of perspective. Figure 21 is an example screen display of a close-up view of a user interface displayed for an active device. Figure 22 is an example screen display of a close-up view of a user interface displayed for an active collection. Figure 23 is an example block diagram of an access control card for configuring access rights of a device or a collection for an individual. Figure 24 is an example screen display of a data sharing relationship established between two collections. Figure 25 is a block diagram of a general purpose computer system for practicing embodiments of a WorldView Display System.
DETAILED DESCRIPTION Embodiments of the present invention provide enhanced computer- and network-based methods, systems, computer-readable instructions, and techniques for modeling and interacting with a user's universe of on-line relationships, including, for example, people, devices, content, services, and other entities that are connected to the user, directly or indirectly, via one or more networks. Each entity is associated with the user through an object, such as a physical or logical device, data collection, or service that is connected to the network. The objects associated with the entities to which a user has or potentially can have relationships are referred to collectively as a user's connectivity universe. Thus, for ease of description, a user's relationships with a set of entities are considered synonymous with the user's relationships with the objects that correspond to such entities, and the words "entity" and "object" are used interchangeably unless noted otherwise. Example embodiments provide a WorldView Display System
("WVDS"), which automatically organizes a user's online relationships with such entities according to similarities of "access proximity" and provides a user interface for accessing and interacting with these entities. Access proximity is an assessment of the "closeness" of the relationship between an object, such as a device, a collection of data, a service, or other entity, and the user, as evaluated according to (or measured by) any one of a number of characteristics. Example characteristics include: • physical proximity (e.g., location of the object); • prior access history (e.g., access of the object by the user within a specified period of time); • extent to which the object is under the user's control (e.g., access rights to the object can be set by the user for the user and for others; object is hosted on a device controlled by the user as opposed to remotely hosted); • type of device (e.g., a PC, server, PDA, media-oriented device, such as a camera or phone, etc.); • operational characteristics (e.g., object is a public service such as "Hotmail" or "AOL Instant Messenger," a controlled-access device such as a personal computer, a physical, or a virtual device such as a "Buddy Room" that contains remotely hosted content);
• portion of the object that corresponds to the user (e.g., percentage of a device occupied by the user's content); • network connectivity characteristics (e.g. , type of object's connection to a network such as a wireless connection, object resides on a network dedicated to the user or resides on a network dedicated to a controlled- access group that includes the user, or object resides on a public shared network such as the Internet).
One skilled in the art will recognize that an assessment of access proximity may be determined, for example, as numeric values, ranges, the presence or absence or likeness of certain characteristics, or any other measurements, evaluations, or heuristics that provide a classification scheme (i.e., a "taxonomy" of access proximity). Also, other types of characteristics may be used to assess access proximity and that combinations of characteristics can also be used. The WVDS automatically determines the universe of objects that the user has relationships with, automatically groups objects having similar assessments of access proximity, displays a multi-dimensional representation of these groups of objects on a display device, and provides a uniform user interface for initiating an interaction with any displayed (represented) object. For example, the user can activate an object and "zoom in" to see what data content it contains; invoke a native user interface of the object; set up a data sharing relationship between data content; configure access permissions; etc. The user invokes these operations in a uniform way, that does not rely upon knowledge specific to the object. Thus, in one aspect the WVDS provides an operating environment that models a connectivity universe from a user's point of view and that provides a metaphor for interacting with objects of potential interest to the user that is on-line centric as opposed to desktop centric. In addition, WVDS orients the user to focus on the media and media types that are present on devices in the user's connectivity universe as opposed to the configuration settings of particular devices. In another aspect, the WVDS provides a navigational model for viewing and interacting with a three-dimensional representation of the user's connectivity universe using graphics and rendering techniques that give an impression of moving (e.g., "flying") through a virtual world (a 3-D universe) to locate and activate objects. In yet another aspect, the WVDS provides a graphical user interface for easily setting up data sharing relationships between any two objects in a uniform manner. Other aspects will be apparent and can be gleaned from the description that follows.
Figure 1 is an example screen display of an example connectivity universe presented by an example WorldView Display System. Figure 1 shows five different groupings of objects based upon access proximity classifications, including: My Computer 101; a Home Network group 102, a Wireless Devices group 103; an Internet Services group 104; and The Web group 105 from a particular user's perspective. Each group is related to the user through at least one network, in this case a wide area network 120 (a "WAN," e.g., the Internet). In one embodiment, the WVDS groups objects and displays each group as a "proximity band" in the user's connectivity universe. Each proximity band displays a set of objects that are related to each other, from the user's perspective, in that they have similar characteristics as measured by access proximity. That is, each proximity band corresponds to a different class of access proximity, as assessed by whatever characteristic(s) is(are) currently configured for evaluating access proximity. Each proximity band displays representations of the one or more objects that belong to (are grouped in) that band and a representation of the data content that is present on each such object. For example, in the example embodiment illustrated in Figure 1 , the WVDS represents each of groups 101-105 as a proximity band in the user's connectivity universe. Each proximity band displays a representation of the objects that are grouped in that proximity band (have similar access proximity). For example, the proximity band labeled "Home Network" 102 displays a representation of four objects (physical devices) 110-113 with which the user has a relationship through the user's home local area network ("LAN"). These devices include a computer system 110 representing the "Kids' computer;" a computer system 111 representing "Sue's computer;" and a photo printer 112 and a personal video recorder 113 that are shared resources connected to the user's home LAN. Note that each device is represented by the WVDS as a model of the device surrounded by a graphical indicator such as a "device ring," which displays a "hint" as to the type of content contained or managed by the device. The representation of the device, (i.e., the device "model") may include, for example, an icon, character, symbol, label, drawing, or any other representation that is indicative of the device. Device rings are described further below with respect to Figure 2. In the illustrated scenario, physical proximity, device type, prior access history, extent of user control, operational characteristics, and network connectivity characteristics have been used to measure similarities of access proximity. The groups of objects (hence the proximity bands) are automatically determined by the WVDS relative to the user based upon similarities of access proximity characteristics and, in the
view of the connectivity universe illustrated in Figure 1 , are displayed relative to a designated (host) device associated with the user, such as My Computer 101. One skilled in the art will recognize that if a different user initiates a session with the WVDS using computer system 101, if the same user initiates a session but designates a different host device or different access proximity characteristics, or if the user designates a different view that may not include displaying or designating a host device or certain proximity bands, then the layout displayed by the WVDS will be accordingly adjusted. In one embodiment, each device representation is displayed along with a device ring that simultaneously shows the contents (as data collections) associated with that particular device. One skilled in the art will appreciate that other embodiments may incorporate different types of graphical indicators, which may partially surround or totally surround a device representation. The represented device may indicate a physical or virtual device, such as a virtual "device" that represents a means to get access to a relationship such as another user's data collection. Other embodiments may require the user to navigate to a closer "level of perspective" (or other ways of "zooming in" to the object) before displaying an associated device ring. Figure 2 is an example screen display of a device ring displayed by an example WorldView Display System. (It also shows navigation by zooming in closer to an object.) The represented computer system 201 , labeled "My Computer," is shown in the center of a ring formed by at least one cable 210. (Multiple cables are used to indicate data sharing relationships and are described further below with respect to Figure 24.) The printer and scanner devices attached to computer system 201 are shown as devices 207 and 208, respectively. Each data collection present on the computer system 201 is represented along the ring as data collections 202-206. For example, video data is represented as data collection 202, contact data is represented as data collection 203, files are represented as data collection 204, photos are represented as data collection 205, and music data is represented as data collection 206. Each device (or other displayed object) is considered active or inactive. The WVDS typically allows only one object (device or data collection) to be active at a time to control clutter and confusion. In some embodiments, the device needs to be made active before its device ring is displayed. In other embodiments, a device ring is displayed if appropriate to the device type. In a typical WVDS, the user activates a device (or data collection) by selecting the object using an input device, such as, for example, clicking on the object with a mouse cursor. The user can also select the object by "hovering" an input device
cursor over the object representation. Once an object is active, a user interface is displayed, such as palette 230, to allow the user to change WVDS device related attributes or access privileges associated with the object. The user can also change the level of perspective (zoom in or out) or can invoke a native user interface associated with the device. The object's representation is typically changed to indicate that the device is active. Also, in some embodiments, the WVDS may recognize that a device is not currently on-line (accessible). In such a case, the WVDS may display an indication (not shown), such as a dashed line, or otherwise demarcated indicator, connecting the device ring associated with the device representation to the network cabling displayed in the associated proximity band. Note that, in the illustrated embodiment shown in Figure 1 , there is a single data collection represented for each type of data - other embodiments may organize the data differently. For example, when a device has multiple disk drives or types of internal or external storage, the WVDS may represent each drive's files as separate data collections or may represent all the files as a single collection which contains sub-collections associated with each drive. As another example, when a device has multiple groups of music (or other media) content, the WVDS may represent each group of music content as a separate music data collection (each potentially having sub-collections) on the device or as a single music collection which contains a sub-collection for each group of music (each potentially having sub-collections). In any case, any hierarchical organization of content present on devices is preserved through the notion of sub-collections, which are data collection groupings within a particular collection. A sub-collection also may correspond, for example, to a playlist, an album, a particular video, etc. For example, the music data collection 206 may have associated with it some number of sub-collections. When a data collection having sub-collections is viewed at a level of perspective ("LP") that presents its contents, then, in one embodiment, the WVDS displays each data sub-collection on a data collection ring of its parent collection. Figure 3 is an example screen display of a data collection ring displayed by an example WorldView Display System. In Figure 3, music data collection 301 is displayed in a center of a data collection ring formed by a representation of a cable 320. Music data collection 301 comprises three sub- collections: favorites sub-collection 302, workout music sub-collection 303, and classical music sub-collection 304. In one embodiment, when a collection (or a sub-collection) is made active and displayed, an animation or cycling presentation
indicative of the contents of the data (e.g., a slide show of the data contents) is also displayed to allow the user to better ascertain the contents of the data collection. For example, Figures 4A and 4B illustrate still images from an example screen display of a cycling presentation of an active photo collection. The user gets a "preview" of the photos (contents) present in the active collection. Note that, although the representations of devices don't display data content directly as depicted in a WVDS universe (they display data collections which contain data content), the device representations may also be associated with some form of animation to highlight when they are active, or at other times. Figure 5 is an example screen display of an animated representation of an active device. The indicated Internet service 501 is an email account that uses Earthlink email. The animated presentation 502 hints at the functionality of the service and indicates that there is some sort of mail accessible as content. Figure 6 is an example screen display of a data collection ring with a sub-collection ring displayed by an example WorldView Display System. Music data collection 301 from Figure 3 is displayed as music collection 601 with its surrounding data collection ring 320. When an active sub-collection, for example, the workout sub-collection 303, contains further sub-collections (e.g., further groupings of data such as a particular album or a playlist), then a sub-collection ring of the further sub-collections is also displayed, if appropriate based upon the WVDS configuration settings. For example, in Figure 6, Workout music sub- collection 603 (which represents music sub-collection 303 from Figure 3) is displayed surrounded by a sub-collection ring 630, which further contains sub- collections Workout Albums music sub-collection 631 and From Pat music sub- collection 632. In one embodiment, the WorldView Display System comprises one or more functional components/modules that work together with other parts of a user's online environment to model a user's connectivity universe. One skilled in the art will recognize that the components and/or sub-components of a WVDS may be implemented in software or hardware or a combination of both. Figure 7 is an example block diagram of how components of an example WorldView Display System are incorporated in a computer system to provide a user interface to an example user's universe of devices, collections, and connections. The WVDS 700 comprises WorldView display support modules 701 and one or more WVDS data repositories 702. The display support modules 701 support functions such as rendering a multi-dimensional representation, managing the information associated with the objects in users' connectivity universes (such as lists of devices, data
collections, connections, and configuration data), input device handling and management; status information regarding connectivity relationships, navigation support, and interfaces to various devices where appropriate. The data repositories 702 maintain information corresponding to the devices, collections, connections, access proximity groups, synchronization/sharing relationships, rendering information, and WVDS configuration data. In overview, the WVDS 700 communicates with other devices and collections 720 that are connected via one or more networks to obtain status information regarding objects and to share data content when appropriate. The WVDS 700 communicates with the native operating system 710 of the host device to obtain connectivity universe information and to interface to a particular device's native user interface (such as the default user interface on a Microsoft Windows-based computer system or whatever interface was last presented on the device). The WVDS 700 renders a representation of the user's connectivity universe on display system 704, and receives input from input devices, such as mouse 705. One skilled in the art will recognize that the environment demonstrated in Figure 7 is one example environment that can incorporate a WVDS and that many other environments with different components and different means for interacting with the various devices may be supported. Figure 8 is an overview flow diagram of operations performed by an example WorldView Display System. In step 801, the WVDS determines the objects that comprise a particular user's connectivity universe. In step 802, the WVDS determines a measure of access proximity for each object in the inventory. In step 803, the WVDS arranges the objects with similar measures into groups according to an internal model of groups and any relevant WVDS configuration parameters. In step 804, the WVDS renders the groups of objects in a multidimensional rendering in accordance with an internal model. In step 805, the WVDS awaits input, for example from a user through user interface commands, or for example through a programming interface provided via an applications programming interface ("API"). The commands may include instructions to the WVDS to navigate to a particular location in the display, change the viewing angle, or change the detail shown, modify a user's access control relative to a particular object, configure WVDS parameters, set up data sharing connections, or invoke the native interface of an object. These commands are examples, and one skilled in the art will recognize that a variety of other commands additionally could be implemented by a WVDS. When a particular command is recognized by the
system, the WVDS returns to execute the appropriate step 801-804. Each of these steps is described in further detail in the description that follows. Although the techniques of modeling a user's connectivity universe and the WorldView Display System are described with reference to a external application running as a separate module(s) in addition to a native operating system, one skilled in the art will recognize that the techniques of the present invention can also be used directly by an operating system to present an alternative metaphor to its own devices and data collections. In addition, the concepts and techniques described are applicable to other environments, including other applications, embedded systems, network management, etc. In brief, the concepts and techniques described are applicable to any display management environment or any other environment that desires to present a uniform interface to on-line entities and relationships. Example embodiments described herein provide applications, tools, data structures and other support to implement a WorldView Display System to be used for managing relationships in a user's online world. One skilled in the art will recognize that other embodiments of the described techniques may be used for other purposes, including for other types of user interfaces. In the following description, numerous specific details are set forth, such as data formats and code sequences, etc., in order to provide a thorough understanding of the described techniques. One skilled in the art will recognize, however, that the present invention also can be practiced without some of the specific details described herein, or with other specific details, such as changes with respect to the ordering of the code flow or module arrangement. As referred to in step 801 in Figure 8, the WVDS determines the objects that comprise a particular user's connectivity universe. The user's connectivity universe comprises a variety of objects, which include physical and virtual devices, services, and data collections. Typical devices supported include, and are not limited to: personal computers, portable computers, PDA's, phones, cameras, network servers, including email servers or messaging servers, web servers, buddy rooms, printers, scanners, disk drives, card readers, biometric scanners, music players, video players, etc. Typical data collection types include, and are not limited to: music, photos, video, files, contacts, email, web pages, newsgroups, favorites, history, and other types of media. Although "favorites" and "history" traditionally aren't treated as types of data, for the purposes of the WVDS they can be treated as such since a designation of "favorite" or on a recent "history" list connotes a determinable characteristic of the associated data. The
devices and data types recognized and supported by a WVDS may change over time. In some embodiments, the WVDS supports an interface for adding new devices, collections, and types of data collections. By initiating a user interface dialog with the WVDS from a particular location on the displayed presentation, the user can bring up a dialog with the WVDS to specify a new device, collection, or collection type (media viewer/player). For example, by right clicking on a proximity band, the user can indicate a new device to be recognized (e.g., a specific computer system or a newly attached printer) and added to that particular proximity band. In an alternative embodiment, the dialog and new device is not proximity band specific (or the user can specify that it is not) and the WVDS automatically determines where to add it in its internal model. Similarly, the user can right click on the Media Viewers proximity band to add a new type of collection viewer to be discoverable. Media Viewers are described below with reference to Figure 14. The user can also, for example, right click on a device to add a new collection. The WVDS may also support a general "settings" user interface, accessible from a button or other component on the screen, which also allows the user to configure devices, collections, collection types, access proximity characteristics, proximity band groupings, etc. When initially executed, the WVDS creates and stores an initial inventory of the objects with which the user has a relationship. Since objects may come and go and relationships may change, this inventory is modified on some determined basis. For example, the WVDS may perform updates at specific times (such as the beginning of a session), at preprogrammed times (such as once a day), by registering a callback routine to be invoked by the operating system when a device is accessed or its settings changed, or, for example, in response to a specific update request initiated by the user. The initial inventory of objects may be constructed by discovering objects from a variety of resources, including, for example, from operating system services, which enumerate registered devices (e.g., local disk drives, connected printers, scanners, email servers, and web page histories); application programs that interact with network devices; and user input provided in response to a specific query or provided as configuration information using a user interface of the WVDS, etc. Once the universe of objects is determined, then the WVDS determines as assessment of access proximity for each object in the inventory. (See step 802 in Figure 8.) As described above, access proximity can be assessed by examining and evaluating the characteristics of the network
connectivity associated with the object relative to the user and the amount of control the user has over the object. For example, devices directly attached to the host device may be associated with one class of access proximity; devices that are connected via the same LAN to which the host device is connected may be associated with a second class of access proximity; devices to which the user relates through wireless connections may be associated with a third class of access proximity; objects to which the user shares data over the Internet but the source ofthe data is determined remotely may be associated with a fourth class of access proximity; and objects which the user has recently accessed over the Internet but has no control over may be associated with a fifth class of access proximity. One skilled in the art will recognize that many alternative classification schemes exist, and that the above example represents one of those contemplated. After automatically determining the access proximity for each object, the WVDS arranges the objects with similar measurements into groups according to an internal model of groups and any relevant WVDS configuration parameters. (See step 803 in Figure 8.) One skilled in the art will recognize that the grouping of objects comprising the connectivity universe and the layout that supports representing the groupings is based upon an internal model of connectivity and access proximity that the WVDS dynamically builds and maintains over time and any relevant WVDS configuration parameters. In one embodiment, this model is configurable to the extent desired, including, for example, the characteristics used to determine access proximity, the number of groups (e.g., proximity bands) and to what class (or characteristics) of access proximity each group corresponds, and a specification of the circumstances under which a particular group is displayed. For example, in an embodiment supporting proximity bands, certain bands may always be displayed, others displayed only if they contain objects, others displayed based upon rules such as the presence of another alternative band, and others displayed based upon particular viewing parameter settings. Other rules can also be incorporated as desired. Figure 9 is an example block diagram of a portion of one internal model of an example connectivity universe by an example WorldView Display System. In Figure 9, the model 900 schematically illustrates objects organized according to five different groups 901 , 910, 920, 930, and 940, each corresponding to a defined class of access proximity. An example WVDS may display many different graphical representations of the same model, including, for example, 2-D and 3-D representations, proximity bands, and other displays of groupings of objects. For purposes of illustration, the groups shown in Figure 9 correspond to
the proximity bands shown in Figure 1 , although the particular objects shown in the model are not the same as those presented in Figure 1. Group 901 "My Computer" contains a single object computer system 902, with attached devices laser printer 903 and scanner 904. Group 901 is attached to all ofthe other groups through a "trunk" network 950, in this case the Internet (and to the user's Home Network group 910 through a LAN connection). Group 910 "Home Network" contains three devices that communicate with the user through a LAN 960: computer system 911, portable computer system 912, and computer system 913 with an attached photo printer 914. Group 920 "Wireless Devices" contains two devices, cellular phone 921 and PDA 922, that communicate with the user through trunk network (Internet) 950 and wireless connections 960 and 961. Group 930 "Internet Services" contains three services, two email services 931 and 933 and a messaging service 932, which communicate with the user through the Internet 950, and whose associated server devices are attached through Internet connections 970. Group 940 "The Web" contains links to pages of web sites 941 that the WVDS determines are of interest to the user based upon (optionally settable) parameters, such as newsgroups, favorites, and access history. Table 1 below illustrates an example inventory created by a WVDS using one or more sources as described in step 801 and arranged according to the access proximity assessments described in steps 802-803.
The objects shown in Table 1 are arranged according to the internal model of the WVDS, a portion of which is depicted in Figure 9. Although not shown in Table 1, the WVDS also keeps track of the particular types of data and collections of data associated with each object. One skilled in the art will recognize that any number of well-known ways can be used to do track the content of the objects, including querying a service, invoking the operating system to list a devices' contents, searching registries, etc. The "Buddy Rooms" indicated in Table 1 are virtual devices that are used to navigate to or represent data collections to which the user has access rights but that are hosted remotely and are not represented to the user through some other device relationship that the user has sufficient access rights to see as a device in some other grouping. Thus, Buddy Rooms provide a means of user interface access to the user that otherwise wouldn't be available from the other groupings of objects. For example, if a data sharing relationship is established with a second user's photo collection, and that photo collection resides on a disk drive of the second user to which the user does not otherwise have access, then the WVDS may present the second user's photo collection as a Buddy Room in the user's connectivity universe. Figure 10 is an example screen display of an example Buddy Room proximity band. Buddy Room proximity band 1001 contains three shared data collections: photo collection 1010, music collection 1011, and photo collection 1012. In one embodiment, each data collection is shown with a corresponding set of access cards 1020, 1021, and 1022, respectively, so that the user can see which users have what type of access to each shared data collection (presuming the user is authorized to see this information). The front of each access control card summarizes the access privileges associated with a particular user. Access control cards are described below with reference to Figure 23.
Once an inventory of objects (and their data collections) has been created and grouped according to the WVDS internal model (or modified as directed), then the WVDS renders the groups of objects in a multi-dimensional rendering such as the proximity bands illustrated in Figure 1 in accordance with the internal model. (See step 804 in Figure 8.) One skilled in the art will recognize that a different rendering engine may be incorporated into the WVDS to generate displays other than those described with reference to Figures 1-6. In some embodiments, the WVDS represents the groups of objects in a user's connectivity universe using proximity bands and renders them to look three dimensional. In one such example embodiment, the WVDS defines several different views of default proximity bands - a device centric view, a media centric view, and a combination view. In an example embodiment, a device view displays data content present in the user's connectivity universe from within the context of the devices on which the data resides. Using device view, a user can easily view and specify settings for, and interact with devices. A media view displays data content present in the user's connectivity universe based on its media type, independent of the devices on which the data resides. Using media view, a user can easily view and manipulate data based upon its type regardless of where the data resides - and thus does not have to search for the data and perform a desired operation multiple times in multiple locations. The different views are toggled on and off using buttons 130 and 140. A mixed view can be achieved by toggling on device view and media view. Other combinations and other views, including filters of existing views, can similarly be incorporated. In a typical default device view, such as that shown in Figure 1, several proximity bands are presented. A "My Computer" proximity band (e.g., band 101) is typically displayed when the user's host device is a personal computer or when the user has designated a particular device as "My Computer" through the WVDS configuration tools. A "Home Network" proximity band (e.g., band 102) is typically displayed if there is a home network. If the host device is on a LAN that isn't a home network, then a "LAN" proximity band is typically displayed. A "Wireless Devices" proximity band (e.g., band 103) is displayed by default whether there are devices present within in or not. A "Buddy Room" proximity band is displayed if the user has access to shared data collections that are hosted remotely (on someone else's devices) and the shared data collections not already accessible through one or more devices that are shown in one of the other proximity bands. Each such shared data collection appears as a collection within the Buddy Room proximity band. If the source of the shared data is
controlled by or belongs to a device controlled by the user (as determined, for example, through access rights), then the shared data shows up as a collection on that device ring in an appropriate proximity band. A "Network Services" proximity band (e.g., band 104, also referred to as "Internet Services" when the wide area network ("WAN") of interest is the Internet) is displayed by default whether there are objects present within it or not. A "Web" proximity band (e.g., band 105, also referred to as a "Web Deck" or "The Web") is present if the underlying WAN is the Internet. The Web proximity band is described further with reference to Figures 11 and 12. Note that the behaviors of one or more of these proximity bands can be configured through the configuration interfaces ofthe WVDS, and proximity bands can be added or deleted. Figure 11 is an example screen display of an example Web proximity band. Figure 12 is an example screen display of a close-up view of an example Web proximity band. The Web proximity band 1100 in Figure 11 and 1200 in Figure 12 is configured by default to show some number of the user's Favorites and History (as determined from parameters associated with the user's Internet browsers) websites, as well as public collections such as Usenet newsgroups. For example, in one embodiment the Web proximity band 1200 contains Favorites web pages 1202; History web pages 1203, which, for example, shows web pages access within a designated time frame; and Newsgroups 1204. The Web deck 1201 represents an "animation" of the data collections contained in the Web proximity band 1200. In one embodiment, when one of the data collections 1202- 1204 is made active, the Web deck animation 1201 is changed to shown a representation of the contents of the data collection. One skilled in the art will recognize that many other data collections of web pages, for example, by search or sorting filters, etc., could be incorporated in a similar fashion. Figure 13 is an example screen display of a default media view of an example WorldView Display System. Several proximity bands are displayed by default. For example, the "Media Viewers" proximity band is displayed by default whether there are objects present within it or not. This band groups all of the viewers for the different types of content (data collection) supported by the WVDS. An "All My Media" proximity band 1301 is used to group each type of data collection regardless of the device where the data collection is found, e.g., all music collections accessible to the user across all devices with which the user has a relationship. That is, the data collections displayed in the All My Media proximity band 1302 are "uber-collections" - they represent all of the data found in data collections of a particular type, with which the user has a relationship, regardless of
location. The uber-collections displayed in proximity band 1302 in media view can be filtered based upon the buttons 105. Buttons 105 include support currently for several different "types" of media, including: files, videos, contacts, photos, music, favorites, newsgroups, IM messages, email, and history. One skilled in the art will recognize that different and/or additional media types are supportable by a WVDS. In one embodiment, two proximity bands are additionally displayed by default regardless ofthe view: an Internet Services proximity band 1303, and a The Web proximity band 1304. These are as described with reference to Figure 1. Figure 14 is an example screen display of example media viewers presented by an example media view of an example WorldView Display System. It is a "close-up" of a portion of the Media Viewers proximity band 1301 representation illustrated in Figure 13, and can be achieved by navigation to that area of the representation. Specifically, the illustrated portion of the Media Viewers proximity band 1301 contains four data collection viewers: photo viewers 1410 and 1411 for interacting with photos and music viewers (players) 1412 and 1413. Each viewer is shown as a device ring (or data collection ring) without any collections. As mentioned, a user can add new media viewers to be discovered (recognized) by the WVDS by adding a new media viewer/player to the Media Viewers proximity band through a user interface available from the WVDS. Figure 15 is an example screen display of objects displayed as a result of filtering a media view of an example WorldView Display System. In this case, the media view has been filtered to view "photos" only by pressing filter button 1524. (In one embodiment, each button cancels any prior filters and applies the a filter that corresponds to the current pressed button. Other filters can be cumulatively added by pressing a key in combination with the button. Other embodiments provide other behavior such each button is an on/off toggle, etc.) When filtered, the Media Viewers proximity band 1501 only contains the media viewers that correspond to the filtered data type(s), in this case the photo viewers 1410 and 1411 shown in Figure 14. The All My Media proximity band 1502 contains one uber-collection, photo collection 1503, which represents all of the photos that the user has a relationship with. When present, the contents of other proximity bands, such as the Internet Services proximity band and the Web proximity band, are also correspondingly filtered. Figure 16 is an example screen display of a close-up of an uber- collection presented by a media view of an example WorldView Display System. In this case, the photo uber-collection 1503 is shown in close-up form, as a data
collection ring with several sub-collections 1601 -1605. When a user activates one of these sub-collections, it may display further sub-collection rings as appropriate. Figure 17 is an example screen display of a combined device and media view of an example WorldView Display System. Although it is not possible to view the whole universe in Figure 17 (the Web proximity band 1706 is not displayed at this camera angle and zoom setting), the representation shows all of the proximity bands 1701-1703 and 1705-1706 present in Figure 1 plus the uber- collections represented in the All My Media proximity band 1704. In addition, the buttons 1705 continue to be displayed so that the user can filter the uber- collections displayed in proximity band 1704 and any objects displayed within the other proximity bands. As mentioned, views other than a device view or a media view can be supported by a WVDS. For example, a view that filters the connectivity universe by a user's relationships with certain individuals can be incorporated. In one embodiment, a People filter button (not shown) is presented along with the Media and Device view buttons (see, for example, button 130 and 140 in Figure 1 ). When the People view is toggled on, an additional row of filter buttons, with labels corresponding to the individuals with which the user has a relationship (as discovered by the WVDS or configured by the user) is presented like the media filter buttons 1705 in Figure 17. When a user selects a particular person filter button, then the WVDS adjusts the layout of the connectivity universe representation to show devices, media, viewers, etc. that are related to the relationship between the user and the designated person. For example, the devices, collections, and Buddy Rooms displayed are those to which the user and the persons designated by the selected filters have access. Other representations can also be adjusted as appropriated. For example, email viewers can be adjusted to only show data collections (email content) that relates to the filter universe of people. One skilled in the art will recognize that a variety of other types of filters could also be accommodated by a WVDS. Once the WVDS has rendered a representation of the connectivity universe associated with a user, the user (or a program through an API) can navigate within the representation to perform a variety of functions. (See step 805 in Figure 8.) These functions include, for example, navigating to a particular location in the display; progressively examining the detail ofthe content associated with an object (such as the data collections available on a device); setting up sharing of data content; modifying a user's access control relative to a particular object; configuring aspects of the WVDS; adding devices and collections to be
recognized by the WVDS; and invoking the native interface or an object-specific interface provided by the WVDS that is associated with a particular object. In one embodiment of the WVDS, the user can navigate to view different locations in the representation (e.g., by changing a rendering viewport), view the representation from different viewing angles (e.g., by changing camera angles), and can zoom in and out according to different levels of perspective, where each level can be configured to present a different level of detail. A user navigates the connectivity universe presented by the WVDS using an input device, such as a mouse, to control which portion ofthe universe is currently displayed on the display screen or to control the level of perspective (i.e., the "zoom" level). The level of perspective controls how close or far the user appears to be from the objects in the displayed connectivity universe. In one embodiment, the WVDS provides the following levels of perspective in increasing order (farthest away to closest): 1. World 2. Proximity Band 3. Device 4. Active Device 5. Native Ul 6. Collection 7. Active Collection 8. Sub-collection 9. Active Sub-collection 10. etc. (further levels of sub-collections) Level 1 represents the outermost level of perspective. For example, in this embodiment, the definition of Level 1 specifies that the entire world is displayed and accessible (to the extent it can be viewed on the device). In Level 2, the focus is on proximity bands. Level 10 represents further inner levels of perspective until there are no more sub collection levels to be displayed or accessed. Level 5 represents displaying^ in a "zoomed in" manner, the native user interface that is specific to the object or one provided by the WVDS (for example, if the device is not capable of providing access to its user interface from within the WVDS). Thus, when a user accesses a native user interface of an object in the WVDS, the user does so in the context of the user's entire connectivity universe and, by changing levels of perspective, the user can zoom in and out to access different portions of the user's universe.
Depending upon the WVDS configuration settings, different levels may also correspond to transitions in the amount of detail displayed. According to one WVDS definition, the level of perspective at which device rings are displayed around devices is termed the "device ring display level." Typically, the device ring display level is the Proximity Band level, although it is configurable. The level of perspective at which collections are displayed on the device rings is known as the "collection display level." Typically, this also occurs at the Proximity Band level, although, like all of the other levels, this behavior is configurable. The level of perspective at which sub-collections are displayed on the data collection rings is known as the "sub-collection display level." Typically, this occurs at the Active
Collection level, although, like all of the other levels, this behavior is configurable. The WVDS renders the objects in the user's connectivity universe based upon the current configuration of these levels of perspective. Figures 18A and 18B are an example flow diagram of proximity band rendering supported by an example rendering system of a WorldView Display System. One skilled in the art will appreciate that other steps could be implemented, and in different orders, yet still achieve the rendering functions of the WVDS. Steps 1801 -1816 are executed for each (topmost level) object in each proximity band in the system, appropriate to the current level of perspective. In step 1801 , the WVDS determines and renders the device image, size, and detail according to the current level of perspective (LP) and whether the device is active or not. In step 1802, the WVDS determines whether the device is active, and, if so, continues in step 1803, else continues in step 1804. In step 1803, the WVDS displays the device's WVDS user interface associated with manipulation at the connectivity universe level and may also display auxiliary features such as access control information or other information. In step 1804, the WVDS determines whether the current LP is at or below the device ring display level, and, if so, continues in step 1805 to display a corresponding device ring, else returns. In step 1806, the WVDS determines whether the current LP is at or below the collection display level, and, if so, continues in step 1807 to display any corresponding data collections, else returns. In step 1808, the WVDS determines whether any one of the data collections is active, and, if so, continues in step 1809 to display the collection ring associated with the active collection, else returns. In step 1810, the WVDS displays the active collection's Ul and may also display auxiliary features such as access control information or other information. In steps 1811-1816, the WVDS executes a loop for each contained sub-collection to display the sub-collections and their associated sub-collection rings, as well as the sub-collection's Ul. More
specifically, in step 1811, the WVDS determines whether the current LP is at or below the next sub-collection display level, and, if so, continues in step 1812, else returns. In step 1812, the WVDS determines whether there exist any sub- collections to display, and, if so, continues in step 1813, else returns. In step 1813, the WVDS displays the sub-collections. In step 1814, the WVDS determines whether a sub-collection is active, and, if so, continues in step 1815 to display the sub-collection ring associated with the active sub-collection, else returns. In step 1816, the WVDS displays the sub-collections Ul, and may also display auxiliary features such as access control information or other information, and then returns to step 1811. Assuming that, at least at some point, the representation of the connectivity universe is larger than can fit on the display screen, the user controls the portion of the universe displayed by moving the input device to reflect the user's position. According to one embodiment, the input device behaves like a camera view finder. That is, as the user moves (as the input device indicates motion) in a forward direction, the user will see more objects ahead while those objects that were previously closest to the user will move behind the user and fall out of view. Also, as the user moves in a direction so that the user appears to be looking more directly downward (moves the point of view source higher), the user will see more of the top of objects and less of a side view. Similarly, as the user moves to the side, the user will see those objects to that side while objects on the other side fall out of view. Many different graphics and rendering techniques are available to navigate through a two or three dimensional representation of the connectivity universe displayed on a display device. The following definition describes one user interface to effectuate the camera position, angle, and orientation movements described above. One skilled in the art will recognize that many equivalent user interface definitions can be similarly incorporated and that different user interfaces can be optimized for different input devices. For example, definitions may be created to support other input devices, such as joy sticks, that can control multidirectional, 3-D movement. • Movement forward, backward, and side-to-side: the user's point of view follows the mouse (or similar input device) movement. This movement changes location, but doesn't change the direction the user is facing. • Changing the view angle: pressing the two main mouse buttons simultaneously and moving the mouse changes the view angle in the direction of the mouse movement. A move right shifts the view to the
right; a move left shifts the view to the left; a move forward shifts the view downward; and a move backward shifts the view upward (or visa versa). • Changing the level of perspective: rolling the mouse wheel moves the level of perspective up or down (closer or farther away) depending upon the direction of the roll. These various movements may also be combined by the WVDS to automatically provide the user with user views. For example, as the level of perspective is changed to a closer level (showing more detail), the viewing angle may automatically be changed to provide a more front-on view of the objects. Figure 19 is an example screen display of a representation of a user's connectivity universe as displayed by an example WorldView Display
System after navigating to a new location. In Figure 19, only some of the proximity bands that represent the entire universe are displayed, the display viewing angle has been changed to appear as if the user is viewing the universe from a position closer to the ground (e.g., the "floor" of the universe) as opposed to further up in space, and the various objects represented in the proximity bands appear larger. Figure 20 is an example screen display of an example connectivity universe from a different viewing angle and a different level of perspective. In Figure 20 the user has navigated from the Proximity Band level of perspective
("LP") to the Active Collection LP. This transition results in the display of a photo sub-collection 2002 on the collection ring 2001 , which is consistent with a WVDS configuration that specifies the Active Collection LP as the sub-collection display level. Note that the photo sub-collection 2002 comprises further sub-collections 2031-2035, whose contents (or further sub-collections) are displayed when the user zooms in to closer levels of perspective. In comparison to Figure 1 , the viewing angle has also been changed to reflect a view source that is more level with the object, yielding a perception of traveling down and into the object, when the movement is rendered as a smooth animation. In addition to general navigation, the user can also further manipulate objects and their content by activating them. As briefly mentioned with reference to Figure 2, when an object (device/service or data collection) is made active, the
WVDS displays a user interface tool for further manipulating the object. Figure 21 is an example screen display of a close-up view of a user interface displayed for an active device. The cellular phone device 2101 is depicted with a Ul palette
2120. Palette 2120 comprises two buttons: a "robot" button 2121 for setting up characteristics of the device (using the native user interface associated with the
device where available) and a "policeman" button 2122 for invoking an access control dialog (e.g., to set up access permissions) with the user. The user can also manipulate an active device in other ways. In one embodiment, the user can bring up a user interface (for example, by right clicking on the device with a mouse or by selected the robot button 2121) to add new collections to be recognizable on the device. In addition, a maximize button 2102 is displayed to allow the user to easily (e.g., in a single click) change the level of perspective to zoom into a native user interface associated with the device, for example, into whatever is currently being displayed on the display 2130 of device 2101. In one embodiment, the maximize button 2102 lets whatever is displayed on the display 2130 of device 2101 "take over" a majority of the screen, such as in a "full screen" mode. The user can use zoom handles button 2103 to adjustably zoom into whatever is currently being displayed on the display 2130 of the device 2101, for example, to see more of what is on display 2130 in the context of the connectivity universe. In one embodiment, the zoom handles button 2103 presents a handle which can be dragged by the user to adjust the zoom level. Also, in some embodiments the user can "open" the active device, for example, by double-clicking on the device representation (or through another button), to redirect input from the host system to be forwarded to a native user interface, or a WVDS provided one, associated with the active device. From the user's perspective, the user then appears to be interacting directly with the active device. One skilled in the art will appreciate that other buttons for other capabilities can be easily incorporated and that other iconic representations or symbols can be displayed. A more distant view of a Ul palette displayed for an active device is shown as palette 230 in Figure 2. Figure 22 is an example screen display of a close-up view of a user interface displayed for an active collection. A music data collection 2201 is depicted with a Ul palette 2220. Palette 2220 comprises three buttons 2221-2223 and a sync/share interface cable 2224. The buttons include a "robot" button 2221 for setting up characteristics of the data collection, a "policeman" button 2222 for invoking an access control dialog (e.g., to set up access permissions) with the user, and a "rose" button 2223 for opening the data collection using an appropriate media viewer. A further out view of a Ul palette displayed for an active data collection is shown as Ul palette 340 in Figure 3. One skilled in the art will appreciate that other buttons for other capabilities can be easily incorporated and that other iconic representations or symbols can be displayed. For example, in one embodiment, the WVDS supports a uniform "media control" type interface on a data collection for manipulation ofthe
contents of the collection. Media controls includes commands such as a "play" command, "pause" command, a "next" command, a "previous" command, a "fast forward" command, and a "rewind" command, which are supported in the form of buttons or other Ul components. The user can invoke these media controls to easily cycle through the data contents of a collection and to invoke the appropriate player/viewer to present the contents. Using the access control button of either a device or data collection Ul palette, for example buttons 2122 or 2222, the user can cause the WVDS to display an access control dialog (not shown) to configure access permissions on the corresponding device or collection to the extent that the user has permission to do so. Setting access permissions from this dialog allows the user to easily specify access permissions at the object level instead of setting them for each other user to whom the user desires to give access. Access control cards can be used to manage access permissions at an individual level. As described above, in one embodiment, access control cards are presented along with an active object's representation (and at other times). Figure 23 is an example block diagram of an access control card for configuring access rights of a device or a collection for an individual. Access control card 2300 includes an indication of the user's identification 2301 and an indication of current state of access rights 2302. To change access rights, the user presses the Modify button 2303. One skilled in the art will recognize that many alternative yet equivalent implementations and presentations exist for setting up access permissions for a device or data collection of a WVDS. In one embodiment, each access card has a front side and a back side. Once an access control card has been set up for a particular object, the WVDS may be configured to display the current settings on the front side of the card or a symbol of the user (or an avatar representing the user) as part of the representation of the object. In addition, an access control card may be displayed associated with a device or data collection for each user that has some type of access to the object. Typically, the WVDS displays the (front side of) associated access control cards for active objects. When a user then selects an access control card (to the extent the user's permissions allow), an animation turns the card from the front to the backside, resulting in the card as shown, for example, in Figure 23. The user can then modify the access permissions for the associated object. For example, in Figure 2, access control card 240 is displayed as part of the device ring presentation. Similarly, in Figure 10, access control cards 1020- 1022 are displayed with shared collections 1010-1012.
In other embodiments, the WVDS can incorporate other types of settings and/or access control parameters. For example, controls that limit access based upon the type of content or device in combination with certain characteristics of a user, or based upon other limits such as time, may be implemented to effect a parental control interface. Such interfaces can be integrated into the WVDS, for example, as part of the settings or access control buttons available on the Ul palettes, for example, robot button (2121 and 2221 in Figures 21 and 22, respectively) or policeman button (2122 or 2222 in Figures 21 and 22, respectively), The sync/share interface cable present on a Ul palette of a data collection, for example the cable 2224 in Figure 22, is used to set up a data sharing relationship, which may be synchronized in some manner, between two (or more) collections of data. Two collections have a synchronized data sharing relationship when data is automatically transferred between them as either acquires new or modified data. For example, when a music data collection on the user's My Computer device (on the My Computer proximity band) has a synchronized data sharing relationship set up with a music data collection on the user's portable device (accessible for example, via a Home Network proximity band), then the two collections are automatically synchronized whenever one of them is changed. This functionality is useful in a variety of scenarios, for example, keeping address books and contact lists synchronized between a user's personal computer and cell phone; sharing photos with family members and friends; and sharing photos between a user's personal computer and a portable device such as a PDA. In all such cases, the WVDS is responsible for synchronizing updated content and no further actions need be taken by the recipient user. Note that in some alternative embodiments, the data may be shared and not automatically synchronized, or such aspects may be configurable. Data sharing relationships may be one-way or two-way. A one way relationship implies that one data collection serves as a source for data updates and one data collection servers as a target. A two-way relationship implies that each collection acts as a source collection for the other when their respective data content changes and that each collection acts as a target collection (recipient) for the other's changed data content. Thus, the shared data is transferred in two directions and the sharing relationship can be termed bi-directional. Also, data sharing relationships may involve the actual transfer of data or may involve "virtual" transfers, in which the device associated with the target collection receives a description ofthe modified data content, but the actual
transfer is delayed until a user tries to access it (e.g., the recipient collection may contain a link to the shared source data). The WVDS also provides a user with an ability to set up "functional agents" at each end of the data sharing relationship. These functional agents provide hooks into code that is executed as appropriate upon the sending or receiving of data by a collection. One skilled in the art will appreciate that many such functional agents can be defined. In an example embodiment, the WVDS supports the following functional agents: • Send New - A basic sending agent that detects when new data is deposited in the associated collection and sends the new data to the other collections that have data sharing relationships with the associated collection. • Filter and Send - A sending agent that detects when new data is deposited in the associated collection and only sends it when the data passes user-configured (or WVDS-defined) filters. • Receive and Store - A basic receiving agent that detects when new data is received and stores it in the associated collection. The agent is responsible for storing the received data in local storage associated with the device that corresponds to the receiving collection (or other data repository) and adjusting any records that define the receiving collection's content. • Receive and Filter - A receiving agent that detects when new data is received and only stores it (and updates appropriate records) when the data passes user-configured (or WVDS-defined) filters. • Receive and Display -A receiving agent that detects when new data is received and displays it. • Receive and Notify - A receiving agent that detects when new data is received and notifies the user that the data has been received. The type and location of the notification can be configured by setting corresponding WVDS parameters. In one embodiment, data sharing relationships are established by connecting (such as by dragging or using other direct manipulation input commands) a representation of a sync/share cable from a source collection or device onto a target collection or device. More specifically, the user drags a "sharing cable" with a plug within the displayed universe (using other navigation commands as appropriate) and "plugs" the cable plug into a "receptor" on a target data collection or device by, for example, a drop movement. Upon plugging in the
sharing cable, the WVDS automatically establishes a (typically) synchronized data sharing relationship between a corresponding source data collection and a (direct or implied) target data collection. Optionally, a sharing "settings" configuration dialog or a confirmation dialog may be displayed before completing the connection. In one embodiment that utilizes a mouse, when the user clicks on a sharing cable with the plug, the mouse can be used to drag the cable (which is pulled out from the collection/device as needed to follow the mouse around) without depressing any buttons. (The WVDS accomplishes this functionality by implementing modal operation when the mouse is used to click on the cable with the plug.) The user is thus able to use full navigation commands, including changing the level of perspective, to find an appropriate target collection. While a cable is being dragged, appropriate candidate target collections may be highlighted or otherwise given emphasis (or devices when the level of perspective is too far to present collections). In some embodiments, inappropriate targets are dimmed. When the cable plug nears a candidate collection, the candidate collection may display a receptor or other target indicator to indicate to the user that the cable can be attached to that collection. Devices can also display receptors when a cable plug comes near them. Even though data sharing relationships are ultimately established between data collections, the WVDS will automatically attempt to set up a relationship between corresponding types of data collections when the user specifies a device as either the source or target of a drag operation of a sharing cable. For example, when the user drags a cable from a collection to a target device, the WVDS creates a data sharing relationship between the source collection and a collection of the same type on the target device. If there is more that one collection of that type on the device, then the user is queried to determine the desired target. If there are no collections of that type yet on the device, then a new collection is created. Both data collections and devices can include sharing cables with plugs. For example, the sync/share interface cable 2224 in Figure 22 is an example sharing cable with a plug associated with a data collection. Similarly, a sync/share interface cable 220 is an example sharing cable with a plug associated with a device. When a sharing cable plug of a device is plugged into a receptor of a target data collection, then a matching type of data collection on the source device is presumed to be the source data collection for the data sharing relationship. Again, if there is more than one possible match, the user is queried to determine the intended source. When, instead the sharing cable plug of the
device is plugged into a receptor of a target device, then, the WVDS queries the user to specify which collections on the source and target devices should be shared and sets up new collections on the target device if they are non-existent. Data sharing relationships also may be set up between an external source object to which the user has limited current access rights (the user can access data from the object and is not currently viewing the object within the WVDS display) and a target object to which the user has access rights and which is being displayed in the current WVDS representation. The WVDS will display an appropriate indication to show that data for the data sharing relationship is coming from an external object. For example, the WVDS may display a cable representation that appears to go "off-screen" with a terminator that indicates the source of the data. A corresponding data sharing relationship can be set up with an external object as the target object and an appropriate indicator displayed to indicate that data sharing relationship. When a data sharing relationship is established, the WVDS may present a user interface to allow the user to configure the parameters and settings of the relationship, including whether the relationship is one-way or two-way (uni- or bi-directional), parameters such as frequency of updates, desirability of virtual transfers, etc., and the specification of special functional agents. Once the relationship is fully established and configured, in one embodiment, the WVDS indicates the data sharing relationship graphically on the presentation of the connectivity universe, for example, using a colored cable between the relevant collections. Figure 24 is an example screen display of a data sharing relationship established between two collections. In Figure 24, a data sharing relationship has been established between a music data collection 2410 on a device ring that surrounds the computer system 2401 and a music data collection 2420 on a device ring that surrounds a different computer system 2402 in a different proximity band. Colored cabling, for example, the red cabling 2430, is added between the two collections with the data sharing relationship. One of the functions available through the WVDS interface is to allow a user to invoke the native interface (or WVDS provided object-specific interface) associated with a particular object. In one embodiment of the WVDS, a device's display screen (for example, the computer system 101 in Figure 1) is generally always active; that is, a smaller replica of what the native operating system interface is displaying is reflected in the device representation provided by WVDS. (The user is thus viewing what is on the device in the context of the user's connectivity universe.) When a device is active, the user can cause input from an
input device to be "redirected" to the active device, such as by "opening" the active device as described with reference to Figure 21. The WVDS can display an appropriate simile if the host's input devices aren't appropriate for indicating input to the active device. (For example, if the host device is a cell phone and the active device is a computer system, the WVDS can display a representation of a keyboard for entering input.) In addition to interacting with the native Ul of a device within the connectivity universe representation, the user can zoom in to a device by changing the level of perspective to a closer level until the device's native Ul becomes "full screen" on the host device's display screen. The standard navigation techniques for changing levels of perspective can be used to accomplish this function. In addition, on device representations with which a user can interact in full screen mode, the user is able to select an area within the device representation display screen to invoke the underlying user interface - effectively zooming in (and changing the level of perspective) to "maximize" the interface shown on the device representation display screen. For example, as shown in Figure 21 , the user can click on the maximize button 2102 as a shortcut to zoom into the native user interface and display the device's native Ul "full screen" on the host device's display screen. In some embodiments, the WVDS also supports an adjustable zoom handle(s) for changing the size of what is displayed so that more or less of the content displayed on the device can be shown. For example, the user can select the zoom handles button 2103 to invoke an adjustable zoom into the display screen content. Once the user has maximized a device representation so that the user is viewing only the native Ul of the device's underlying system, the user can return to the WVDS connectivity universe representation by selecting a "WVDS Restore" button or other user interface component superimposed on (or otherwise integrated with) the native Ul's display presentation. The specific user interface component added to each device's native interface to accomplish this restore functionality depends upon the type of device, its native user interface, and the operating system of the device. If the device is a Window's operating system driven device, then typically the WVDS can add a WVDS Restore button on each window's title bar that invokes a type of "restore" function to render the window(s) containing the native Ul to their prior size - as a smaller replica within the connectivity universe representation. The WorldView Display System also supports the ability for a user to "open" a collection to invoke a native user interface associated with the collection.
The "rose" (open) button in an active data collection's Ul palette (see, for example, button 2223 in Figure 22) can be selected to open the underlying content using an appropriate media viewer. When the user selects the open button, the WVDS directs the host device's operating system to execute the host system's default application for displaying (or otherwise presenting) the active collection's content. For example, if the user opens an active music collection, then the default media player for presenting music is activated as playing the designating collection of music. Similarly, if the user opens an active photo collection, then the default photo viewer is invoked and displays the designed photos. In other embodiments, different techniques that incorporate the native Ul of the associated device also may be used and the WVDS can allow the user to choose among available techniques. As mentioned with reference to Figures 21 and 22, the Ul palettes presented on active devices and collections also provide users an ability to change settings of the corresponding device or collection. Many different functions can be made available through such an interface, including using the settings button (or a Ul component presented in a further response) to invoke a native Ul that corresponds to the active device. This native Ul can also be presented in a "full screen" mode, as described with reference to activating an active device's native Ul. In addition, the WVDS can select between using a native Ul to configure the active device or collection and using WVDS specific interfaces. Combinations between them are also possible. In addition to the operations and functions described, one skilled in the art will appreciate that the WVDS can offer many additional enhancements. For example, the WVDS may also support a general "settings" user interface, accessible from a button or other component on the screen for configuring devices, collection types, and other WVDS configuration parameters. Such an interface can be used, for example, to configure the modeling parameters of the WVDS; configure thresholds such as the maximum number of proximity bands to display at certain levels of perspective; hide and unhide the display of particular proximity bands; set up characteristics to assess access proximity; map access proximity classes to proximity bands; specify that particular devices are mapped to particular proximity bands; specify collections on devices, etc. Lots of alternative interfaces to these functions can also be easily incorporated and are contemplated to operate with the techniques described herein. Figure 25 is a block diagram of a general purpose computer system for practicing embodiments of a WorldView Display System. The general purpose
computer system 2500 may comprise one or more server and/or client computing systems and may span distributed locations. In addition, each block shown may represent one or more such blocks as appropriate to a specific embodiment or may be combined with other blocks. Moreover, the various blocks of the WorldView Display System 2510 may physically reside on one or more machines, which use standard interprocess communication mechanisms to communicate with each other. In the embodiment shown, computer system 2500 comprises a computer memory ("memory") 2501, a display 2502, a Central Processing Unit ("CPU") 2503, Input/Output devices 2504, and Network Connections 2505. The WorldView Display System ("WVDS") 2510 is shown residing in memory 2501. The components of the WorldView Display System 2510 preferably execute on CPU 2503 and manage the generation and use of connectivity universes, as described in previous figures. Other downloaded code 2530, terminal emulators as required 2540 and potentially other data repositories, such as data repository 2520, also reside in the memory 2501, and preferably execute on one or more CPUs 2503. In addition, one or more components of the native operating system for the computer system 2550 reside in the memory 2501 and execute on one or more CPUs 2503. In a typical embodiment, the WVDS 2510 includes one or more Display Managers 2511, at least one Rendering Engine 2512, user interface support modules 2513, API support 2514, and WVDS data repository 2515, which contains for example WVDS configuration and connectivity universe information. In an example embodiment, components of the WVDS 2510 are implemented using standard programming techniques, including object-oriented techniques as well as monolithic programming techniques. In addition, programming interfaces to the data stored as part of the WVDS can be available by standard means such as through C, C++, C#, and Java API and through scripting languages such as XML, or through web servers supporting such. The WVDS data repository 2515 is preferably implemented for scalability reasons as a database system rather than as a text file, however any method for storing such information may be used. One skilled in the art will recognize that the WVDS 2510 may be incorporated into a distributed environment that is comprised of multiple, even heterogeneous, computer systems and networks. For example, in one embodiment, the Display Manager 2511, the Rendering Engine 2512, and the WVDS data repository 2515 are all located in physically different computer systems. In another embodiment, various components of the WVDS 2510 are
hosted each on a separate server machine and may be remotely located from the tables which are stored in the WVDS data repository 2515. Different configurations and locations of programs and data are contemplated for use with techniques ofthe present invention. In example embodiments, these components may execute concurrently and asynchronously; thus the components may communicate using well-known message passing techniques. One skilled in the art will recognize that equivalent synchronous embodiments are also supported by an WVDS implementation. The capabilities of the WVDS described above can be implemented on a general purpose computer system, such as that described with reference to Figure 25, using well-known programming techniques. One of the capabilities of WVDS interface available to a user once the connectivity universe is presented, allows a user to invoke a native interface associated with a particular device. In one embodiment, the WVDS supports the ability to "open" an active device (that is not the host device), thereby enabling the user to send input to the active device. The manner in which the WVDS can implement a native user interface mode of a device is device, and its underlying operating system, dependent. Some devices and their native systems support drawing directly to a window that is contained within the display provided by the WVDS. In this case, the WVDS does not need to intervene to handle display from the native user interfaces to a display screen associated with the host device (that is hosting the WVDS software). In other cases, where the device cannot draw directly to a WVDS display "window," other techniques are incorporated. For example, in one embodiment, the WVDS requests the operating system of the host device to execute a terminal emulator for communicating between the WVDS and the active device. The WVDS also invokes a corresponding host software routine (code) on the active device's native operating system for communicating with the terminal emulator on the host device. Input received by the WVDS host input devices is passed to the terminal emulator, which forwards the input to the corresponding software routine on the active device. Screen updates that originate on the active device are then passed from the corresponding software routine to the terminal emulator residing on the host device, which are then forwarded through to the WVDS to render them on the display screen representation of the active device representation. (In an alternative implementation, the terminal emulator can write directly to a WVDS display "window" thus expediting screen updates.) One skilled in the art will appreciate that other alternative implementations are possible.
Some devices, for example, currently cameras, do not support even terminal emulation capabilities. In such cases, if there are no alternatives for displaying the native Ul of a device, then the WVDS may disable this function for that device or offer an alternative user interface. The user can also "open" an active collection to invoke a native user interface associated with the collection. In one embodiment, when the collection resides on the host device, the WVDS directs the host device's operating system to execute the default application for displaying (or otherwise presenting) the active collection's content. In other embodiments, for example when the collection resides on a device other than the host device, the WVDS may use terminal emulation techniques as described above, or other means of communicating with the native Ul of the device associated with the collection, to present the designated collection. From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. For example, one skilled in the art will recognize that the methods and systems for performing presentation and rendering discussed herein are applicable to other architectures other than a Microsoft Windows operating system architecture. One skilled in the art will also recognize that the methods and systems discussed herein are applicable to differing protocols, communication media (optical, wireless, cable, etc.) and devices (such as wireless handsets, electronic organizers, personal digital assistants, portable email machines, game machines, pagers, navigation devices such as GPS receivers, etc.).