Complementing network discovery with physical discovery

Methods and systems for complementing network discovery with physical discovery are provided. In one embodiment, a universal physical discovery layer and a legacy network discovery layer are provided. The legacy network discovery layer is implemented using a legacy network discovery protocol. The legacy network discovery layer is separate from and communicates with the universal physical discovery layer. Data representing a physical relationship type between the physical entities is obtained and used to establish the physical relationship type at the universal physical discovery layer.

RELATED APPLICATIONS

This Application is related to U.S. patent application Ser. No. 10/192,487 by Philippe Debaty, Patrick M. Goddi, William Alex Vorbau, Nicolas P. Lyons filed on the Jul. 10, 2002 as the present application and entitled “Web Presence for Physical Entities”, assigned to the assignee of the present invention and incorporated herein by reference as background material.

This Application is related to U.S. patent application Ser. No. 10/922,409 by Philippe Debaty, filed on the same date as the present application and entitled “Providing a Development Tool for Building an Application that Provides Portable Computing in a Ubiquitous Computing Environment”, assigned to the assignee of the present invention and incorporated herein by reference as background material.

TECHNICAL FIELD

Embodiments of the present invention relate to ubiquitous computing. More specifically, embodiments of the present invention relate to complementing network discovery with physical discovery.

BACKGROUND ART

The fact that technology is moving beyond the personal computer to everyday items is becoming a reality as computing devices are becoming progressively smaller and more powerful. Ubiquitous computing (also known as “pervasive computing”) is the result of computer technology advancing at exponential speeds—a trend toward all man-made and some natural products having hardware and software associated with them. Ubiquitous computing goes beyond the realm of personal computers: it is the idea that almost any item, such as clothing, tools, appliances, vehicles, buildings, the human body, eating utensils, can be associated with a device, that logically represents the item. The device can in turn be connected to an infinite network of other devices to create, as much as possible, an environment where the connectivity of the devices is unobtrusive and always available.

In the field of ubiquitous computing, emerging network discovery protocols (also known as “service discovery protocols”), such as Plug and Play (UPnP), Apple Rendezvous™, Jini™ Bluetooth™, Salutation™, SLP™, enable any device on an Internet Protocol (IP) network, associated with a ubiquitous computing environment for example, to discover and control networked consumer electronics devices, such as printers, projectors, television sets, stereo sets, Web cameras, etc. Due to these technologies, a mobile user equipped, for example, with a networked mobile device, such as a laptop computer or a Personal Digital Assistant (PDA) with a wireless network connection, such as 802.11b for example, can discovery all the devices on the network and decide whether to control the discovered devices. For example, the mobile user can use the network discovery protocol to “discover” a printer on the IP network and use it to print a document stored on the mobile user's mobile computer.

However, these network discovery protocols do not provide information about the physical location of the devices, as will be described in more detail. For these and other reasons, a method and/or a system that provides information about the physical location of physical entities would be valuable.

DISCLOSURE OF THE INVENTION

Embodiments of the present invention pertain to methods and systems for complementing network discovery with physical discovery. In one embodiment, a universal physical discovery layer and a legacy network discovery layer are provided. The legacy network discovery layer is implemented using a legacy network discovery protocol. The legacy network discovery layer is separate from and communicates with the universal physical discovery layer. Data representing a physical relationship type between the physical entities is obtained and used to establish the physical relationship type at the universal physical discovery layer.

BEST MODE FOR CARRYING OUT THE INVENTION

Overview of Complementing Network Discovery with Physical Discovery

Any object, such as a printer, is referred to as a physical entity, according to one embodiment. A physical entity is represented in a computer system as a logical representation, according to yet another embodiment, that are implemented on devices, such as printers. Computer systems use legacy types of tools referred to as a network discovery protocol to obtain information about the devices.

However, the network discovery protocols do not provide standardized and contextually relevant information about the physical location of physical entities. For example, a mobile user can “discover” a printer on the network but cannot determine whether the printer is located right in front of the user or at the other end of the building or in another room of the building. According to one embodiment, the universal physical discovery layer complements the information obtained from the one or more network discovery protocols to establish a relationship between physical entities and to provide standardized and contextually relevant information about the physical location of physical entities.

Further, different manufacturers of devices may use different types of legacy network discovery protocols that do not necessarily operate or communicate with each other. For example, one type of network discovery protocol can be used to obtain information about a printer that is bought from manufacturer “A” while another type of network discovery protocol can be used to obtain information about a scanner that is bought from manufacturer “B.” According to one embodiment, the universal physical discovery layer communicates with any type of legacy network discovery protocol to establish a relationship between physical entities and to provide standardized and contextually relevant information about the physical location of physical entities.

Physical Entities

A physical entity can be any person, place or thing, according to one embodiment. Although such types of physical entities are specifically stated, the present invention is well suited with various other types of physical entities. Physical entities are represented in computer systems by logical representations, according to one embodiment. Physical entities are devices, such as printers, according to one embodiment. According to another embodiment, physical entities are not devices. For example, the physical entity may be a room. In this case, the logical representation of the physical entity is implemented on a device that is associated with the physical entity, according to an embodiment. Continuing the example, a logical representation of the room may be implemented on an access point associated with the room, as will become more evident.

A Logical Representation of a Physical Entity

FIG. 1is a block diagram of a logical representation of a physical entity, according to embodiments of the present invention. As depicted inFIG. 1, the logical representation of physical entity (LRofPE)100includes an identifier (ID)101of the logical representation100, and a name102of the logical representation100, provided services104, and a state105. The optional services104is provided by one or more devices the LRofPE100is associated with, according to one embodiment. The optional state105is maintained for providing one or more of the provided services128, according to another embodiment. The LRofPE100further includes a universal physical discovery layer110for establishing relationships120between LRofPE100and other LRofPEs, as will become more evident, represented by identifiers122and/or names124.

The LRofPE100further includes a legacy network discovery layer130for discovering devices that implement LRofPEs. The legacy network discovery layer130is implemented using any conventional network discovery protocol, such as UPnP, Bluetooth™, SLP™, etc, according to one embodiment. Although such network discovery protocols are recited herein, embodiments of the present invention are also well suited for use with various other types of network discovery protocols. According to one embodiment, the legacy network discovery layer130is separate from and communicates with the universal physical discovery layer110.

According to one embodiment, IDs132, names134, and provided services136include an ID, name, and provided services for each device discovered by legacy network discovery layer130. Similarly, IDs122, names124, physical relationship types126, and provided services128includes an ID, name, physical relationship type, and provided services for each device for which the legacy network discovery layer130provides information to the universal physical discovery layer110about, according to one embodiment, as will become more evident.

Identifiers101,122,132are any identifiers, such as a media access control (MAC) address or a universally uniquely identifier (UUID), that uniquely identify the physical entities represented by logical representations, according to one embodiment. Identifier101identifies the logical representation with ID101. Identifiers122,132identify logical representations implemented on devices that the legacy network discovery layer130“discovers,” as already described herein.

Names102,124,134, are any human readable names that identify the physical entities represented by logical representations, according to one embodiment. For example, the name102for a particular logical representation100of a printer is text, such as “printer2on floor3,” or “HP printer2003020,” according to one embodiment. The name102is initialized by a user or at the manufacturer according to one embodiment. Name102identifies the logical representation with ID101. Names124,134identify logical representations implemented on devices that the legacy network discovery layer130“discovers,” as already described herein. According to one embodiment, names102,124,134uniquely identify physical entities represented by logical representations.

Provided services104,128,136, according to one embodiment, are descriptions of the type of services a physical entity provides. For example, if the physical entity is a printer, the provided service may be “printing service,” or if the physical entity is a stereo, the provided service may be “playing music service.” Other examples of provided services104,128,136, include but are not limited to, “play movie service,” “rendering control service,” “media transport service,” “flight booking service,” and “room booking service.” Provided services104identify the services provided by the devices that implement a logical representation with ID101. Provided services128,136identify the services provided by devices that the legacy network discovery layer130“discovers,” as already described herein.

Further, relationships120includes physical relationship types126that describe the relationships between the physical entity for a particular logical representation with ID100and other physical entities with IDs122. The physical relationship types126, according to one embodiment, are text that describe the relationship between physical entities, such as a room that “contains” another physical entity, such as a printer or a stereo set. The physical relationship types126describe relative physical proximity between physical entities, according to one embodiment, such as “contains,” “contained in,” “near,” etc. The physical relationship types126describe relative physical proximity between physical entities, according to one embodiment.

Identifiers122, names124, and provided services128associated with the universal physical discovery layer110, according to one embodiment, is a subset of the respective identifiers132, names134, and provided services136associated with the legacy network discovery layer130, as will be described in more detail.

Embodiments of the present invention work with more than one network discovery protocol at a time, according to one embodiment. For example, the legacy network discovery layer130implements and/or communicates with more than one network discovery protocol, such as UPnP, Bluetooth,™, etc. In another example, the universal physical discovery layer110communicates with more than one legacy network discovery layer where each legacy network discovery layer implements a different network discovery protocol.

Ubiquitous Computing Environment

FIG. 2is a block diagram of a ubiquitous computing environment with physical entities and logical representations of those physical entities for the purpose of establishing relationships between the physical entities, according to embodiments of the present invention. The blocks inFIG. 2can be arranged differently than as illustrated, and can implement additional or fewer features than what are described herein.

The ubiquitous computing environment200includes physical entities, such as rooms1A,4A,6A, person2A, a PDA220, and stereos3A,5A,7A. The ubiquitous computing environment200also includes logical representations1B-7B of the physical entities1B-7B. For example, LRofPE1B represents room1A, LRofPE2B represents person2A, and so on.

The LRofPEs1B-7B may each be implemented on single devices, as depicted inFIG. 2, on a centralized server, or on a hybrid system involving single devices and a centralized server.

In an example of the first case, the LRofPEs1B-7B is implemented on single devices, such as access points210,240,260for rooms1A,4A,6A, a PDA220or stereos3A,5A,7A, to provide peer-to-peer communication between the devices on which the LRofPEs1B-7B are implemented, according to one embodiment.

In an example of the second case, the LRofPEs1B-7B are implemented on a centralized server, according to another embodiment. Further, devices associated with the physical entities1A-7A, such as access points210,240,270, PDAs220, and stereos3A,5A,7A, include sensors that communicate with the centralized server, according to yet another embodiment.

In an example of the third case, the software for the universal physical discovery layer110and/or the legacy network discovery layer130for each of the LRofPEs1B-7B are implemented on a centralized server, according to yet another embodiment. Further, the devices210,220,240,260,3A,5A,7A associated with the physical entities1A-7A include sensors103, identifiers101and/or names102, among other things, and means of communicating with the universal physical discovery layer110and/or the legacy network discovery layer130on the centralized server, according to still another embodiment.

The physical entities are devices on which logical representations can be implemented, according to one embodiment, or may not be devices, according to another embodiment. For example, stereos3A,5A,7A are not only physical entities but are also devices that their respective logical representations3B,5B,7B may be implemented on. However, although rooms1A,4A,6A and person2A are physical entities, they are not devices that their respective logical representations1B,4B,6B,2B can be implemented on. Therefore, devices, such as access points210,240,260, and PDAs220, may be used to implement the respective logical representations1A,4B,6B,2B and associated with the physical entities that the respective logical representations1A,4B,6B,2B represent.

The network that the devices210,220,240,260,3A,5A,7A use to communicate with each other are wireless, according to one embodiment or wired, according to another embodiment.

The devices210,240,260,220,3A,5A,7A associated with the physical entities1A-7A can use any network discovery protocol to discovery each other, according to one embodiment.

A person, such as person2A, is an “owner” of a particular LRofPE, such as LRofPE2B, according to one embodiment. For example, in this case, the device, such as PDA220, on which the LRofPE2B is implemented may remain in close proximity to the “owner” of the LRofPE2B.

State2B105associated with LRofPE2B is used to indicate what provided service128, such as music, person2A selected, according to one embodiment. According to another embodiment, the state2B105is maintained to indicate any change in providing the provided service128. For example, state2B105may indicate the position the music is playing, at any given point in time.

Relationships

Relationships120, include, identifiers122, names124, physical relationship types126, and optionally provided services128, as already described herein. Identifiers122, names124, physical relationship types126, and provided services128are referred to herein as “attributes” of relationships120, according to one embodiment.

According to one embodiment, network discovery provided by legacy network discovery layer130is automatic. For example, Bluetooth™, UPnP, etc. can be used to allow all of the devices210,240,260,220,3A,5A,7A in the ubiquitous computing environment200to automatically discover each other. For example, in the case of PDA220, LRofPE2B may automatically receive values for the IDs101and/or names102from the LRofPEs (1B,3B-7B) for all the other devices (210,240,260,3A,5A,7A) associated with the ubiquitous computing environment200and store the values in the IDs132and names134associated with LRofPE2B.

The legacy network discovery layer130provides one or more values from the attributes132,134,136to the universal physical discovery layer110, according to one embodiment. Although the legacy network discovery layer130provides values for one or more IDs132, names134, and provided services136to the universal physical discovery layer110, the legacy network discovery layer130does not provide values for the physical relationship types126. Physical discovery, according to one embodiment, involves initializing the physical relationship types126. For example, the universal physical discovery layer110can initialize the physical relationship types126, as will be explained in more detail hereinafter. According to another embodiment, physical discovery provided by the universal physical discovery layer110ranges from completely manual to completely automatic.

In an example of the automatic physical discovery embodiment, Bluetooth™ has proximity capabilities that allow devices210,220,240,260,3A,5A,7A associated with a network to determine how close the devices are to each other. The proximity capabilities of Bluetooth™ may be used to automatically determine the physical relationship types126between the physical entities1A-7A. For example, if a person2A's PDA220is closer to stereo3A than to stereo5A, universal physical discovery layer110can determine that “near” should be stored in the physical relationship type126of LRofPE2B and3B respectively for the PDA220and stereo3A. Similarly, the proximity capabilities can be used to determine that person2A is “contained in” room1A and so on.

Infrared beacons, according to another embodiment and indoor positioning systems, according to yet another embodiment, can also be used for automatic physical discovery.

In an example of the manual physical discovery embodiment, the physical relationship type126, among other things, is initialized using a manual process, such as a graphical user interface (GUI). A GUI can, for example, display the IDs132and/or names134associated with the legacy network discovery layers130of a particular device, such as LRofPE2B of PDA220. The GUI can allow the user to enter one or more physical relationship types126for the LRofPEs1B,3B-7B represented by the displayed IDs132and/or names134, that the user wants to establish relationships between. More specifically, the user can, for example, enter a physical relationship type “contained in” to indicate that room1A contains PDA220, a physical relationship type “near” to indicate that PDA220is “near” stereo3A, and so on. In the event that a physical relationship type is entered, for example with a GUI, for a particular ID132and/or name134, values for that particular ID132, name134, and the entered physical relationship type are stored in the IDs122, names124, and physical relationship types126, according to one embodiment.

According to one embodiment, the IDs122and/or, names124associated with the universal physical discovery layer110are a subset of the IDs132, and/or names134associated with the legacy network discovery layer130. Similarly, provided services128may be a subset of provided services136. This may be accomplished by associating values for physical relationship types126with a subset of the IDs132and names134that are to be stored in IDs122and names124.

Semi-automatic physical discovery is partly automatic and partly manual, according to one embodiment. For example, bar codes can be associated with devices210,220,240,260,3A,5A,6A. The bar codes can, for example, represent the IDs101and/or names102of the LRofPEs1B-7B. In a specific example, a particular bar code can be associated with PDA220and a bar code reader can be associated with stereo5A. If the bar code reader associated with stereo5A is used to swipe the bar code associated with PDA220, software such as LRofPE2B can, for example, receive the IDs101and/or names102associated with LRofPE5B and use the IDs101and/or names102to initialize (e.g., establish) the IDs132,122, and/or names134,124associated with LRofPE5B, as already described herein. The physical relationship type126between the PDA220and the stereo5B can be established using a GUI, as already described herein according to one embodiment. In another embodiment, a radio frequency identification (RFID) scanning can be used in semi-automatic physical discovery.

Some network discovery protocols also discover the services that are provided by particular devices. For example, the legacy network discovery layer130associated with PDA220can discover that stereo3A provides a “playing music service.” The value “playing music service” can be stored in provided services136and provided services128where the IDs132,122identify stereo3A.

Values associated with attributes, such as IDs122, names124, physical relationship type126, and provided services128, are displayed to a user according to one embodiment. Filtering based on the attributes is used to display a subset of the values from the attributes, according to another embodiment. For example, a user may only be interested in seeing values from attributes where the provided services128are for playing music. In this case, the user can filter provided services128for “playing music” to see the IDs122, names124, and physical relationship types126associated with the LRofPEs3B,5B,7B for the stereos3A,5A,7A, for example.

In another example, the user may be interested in what printers are on the third floor. For example, person2A can use their PDA to display information about the printers on the third floor. In response to person2A requesting this information, the PDA220can access the names124. The names124may contain an entry such as “printer1on third floor,” and another entry such as “printer2on third floor,” etc. Similarly, the physical relationship types126may contain information indicating what printers are on the third floor.

Relationships120can be established and also re-established, according to one embodiment, as will become more evident. As defined herein, “established” shall include the initial establishment of a particular relationship but also the re-establishment of that particular relationship.

According to one embodiment, certain types of provided services104,128,136are accessible from almost any device associated with a ubiquitous computing environment. For example, a flight booking service may be available from any terminal at an airport. In this case, the physical relationship type126for a flight bookkeeping service may be established as “universal.” Another example of a possibly universally available service is a service that is used for booking conference rooms at a place of work. This room booking service may be available from any computer at the place of work.

Operational Example for Complementing Network Discovery with Physical Discovery

FIG. 3depicts a flowchart300for complementing network discovery with physical discovery, according to embodiments of the present invention. Although specific steps are disclosed in flowchart300, such steps are exemplary. That is, embodiments of the present invention are well suited to performing various other steps or variations of the steps recited in flowchart300. It is appreciated that the steps in flowchart300may be performed in an order different than presented, and that not all of the steps in flowchart300may be performed. All of, or a portion of, the embodiments described by flowchart300can be implemented using computer-readable and computer-executable instructions which reside, for example, in computer-usable media of a computer system or like device.

For the purposes of illustration, the discussion of flowchart300shall: (1) refer to the structures depicted inFIG. 1andFIG. 2; (2) assume that each of the LRofPE1B-7B (FIG. 2) are implemented as a LRofPE100(FIG. 1); (3) may refer at times to elements associated with each of the LRofPE2B-7B (FIG. 2) by concatenating the reference numbers of the individual LRofPE1B-7B with the reference numbers of the individual elements depicted inFIG. 1. For example, ID1B101refers to the ID101(FIG. 1) associated with LRofPE1B (FIG. 2); (4) assume that Bluetooth™ is used to form a network between the devices210,220,260,3A,5A,7A associated with the ubiquitous computing environment200.

In step310, a legacy network discovery layer is provided, according to one embodiment. For example, software implementing legacy network discovery layers130can be installed on each of the devices210,220,260,3A,5A,7A associated with the ubiquitous computing environment200to create legacy network discovery layers1B130-7B130.

In step320, a universal physical discovery layer is provided, according to one embodiment. For example, software implementing universal physical discovery layers110can be installed on each of the devices210,220,260,3A,5A,7A associated with the ubiquitous computing environment200to create universal physical discovery layers1B110-7B110.

In step330, data representing a physical relationship type between physical entities is obtained, according to one embodiment. For example, in the case of Bluetooth™, all of the devices210,220,240,260,3A,5A,7A in the ubiquitous computing environment200can discover each other automatically. In other words, the IDs132and names134associated with the LRofPE2B implemented on PDA220may be used to store the IDs101and names102from the LRofPEs1B,3B-7B for all the other devices210,240,260,3A,5A,7A associated with the ubiquitous computing environment200, and so on.

Bluetooth™ has proximity capabilities that allows devices210,220,240,260,3A,5A,7A associated with a network, such as that associated with a ubiquitous computing environment200, to determine how close the devices are to each other. The proximity capabilities of Bluetooth™ can be used to automatically determine the physical relationship types126between the physical entities1A-7A, according to one embodiment. For example, if person2A is closer to stereo3A than stereo5A, the universal physical discovery layer110for LRofPE3B may determine that the physical relationship type126for stereo3A can be initialized to “near.” Similarly, the proximity capabilities can be used to determine that person2A is “contained in” room1A.

In step340, the data is used to establish the physical relationship type. For example, the physical relationship types, such as “contained in,” and “near,” that were determined in step330can be stored in physical relationship types126of LRofPE2B and3B, etc.

The physical relationship type126can be used to provide standardized and contextually relevant information about the physical location of the physical entities1A-7A in a manner that is unobtrusive and always available, according to one embodiment. For example, the person2A can use their PDA220to indicate they want to play music. Person2A may not particular care which stereo the music is played on as long as the music is audible to them. The physical relationship types126associated with the LRofPE2B of their PDA220can be used to determine that stereo3A is nearer to person2A than stereos5A and7A. When the desired music begins to play on stereo3A, the state2B105associated with PDA220may indicate, among other things, the particular music that person2A selected and the position at which the music is playing at any given point in time.

At some point in time, person2A may decide to move out of room1A and into room4A. The sensors associated with devices that various LRofPEs (such as the LRofPE1B,2B,4B,5B) are implemented on can detect that person2A is carrying their PDA220out of room1A and into room4A, according to one embodiment. As a result of person2A moving from room1A to4A a different device, such as stereo5A, may become more appropriate for delivering the service, e.g., playing music, that the user selected. Further, state2B105associated with PDA220can be used to stop playing the selected music on stereo3A and start playing the selected music on stereo5A at whatever position the music had been playing on stereo3A when person2A left room1A.

The universal physical discovery layers110of various LRofPEs, such as the LRofPE1B,2B,3B,4B, and5B, can, for example, modify their associated physical relationship types126to indicate that room4A “contains” PDA220instead of room1A, and that PDA220is “near” stereo5A instead of stereo3A, and so on. This modifying of associated physical relationship types126is an example of “re-establishing” relationships120already referred to herein. Additionally, the proximity capabilities of Bluetooth™ can also be used, for example, to automatically determine the changes in the physical relationship types126that result from person2A moving from room1A into room4A.

According to embodiments of the present invention, physical entities, such as PDAs, stereos, printers, etc, can be moved around in a ubiquitous computing environment200and the physical relationship types126associated with the logical representations of the physical entities may be automatically re-established. For example, when PDA220was moved into room4A, in the above operational example, the physical relationship types126of the LRofPE2B was automatically re-established to indicate that PDA220was near stereo5A instead of stereo3A and that PDA220was contained in room4A instead of room1A. Similarly, if another physical entity, such as a stereo or a printer, were moved, the physical relationship types126associated with the LRofPEs for a particular ubiquitous computing environment can also be automatically re-established, for example.

Another implementation of embodiments of the present invention can use printers instead of stereos3A,5A,7A. Person2A may use their PDA220to automatically select the nearest printer that is available for printing a document (e.g., connected to the network and not already printing a large document). If person2A has a busy day, which causes them to move around their work place, and is printing many documents, the documents can be printed on whatever printers person2A is currently near. For example, if person2A is near printer2during the morning, then person2A's documents can be automatically printed at printer2. Then when person2A moves close to printer3, person2A's documents can be printed on printer3instead, and so on.

Although the above operational example assumed that Bluetooth™ was used for implementing the legacy network discovery layer130, UPnP is commonly used in homes. In this case, UPnP can discovery the devices210,220,240,260,3A,5A,7A associated with a ubiquitous computing environment200of a home. In so doing, each of the LRofPEs1B-7B can, for example, exchange their respective IDs101, names102, and possibly even provided services104to each other, among other things. The physical relationship types126for the respective LRofPEs1B-7B can, among other things, automatically, semi-automatically, or manually be established, as already described herein.

A Device for Complementing Network Discovery with Physical Discovery

As already described herein, the present invention can be implemented using software. According to another embodiment, the present invention can be implemented using a device, such as an Application Specific Integrated Circuit (ASIC), that is installed on another device, such as a printer, stereo, etc.FIG. 4is a block diagram of a device for complementing network discovery with physical discovery, according to embodiments of the present invention. As depicted inFIG. 4, the device400implements, at least a part of a logical representation of a physical entity100, according to one embodiment. For example, device400includes a universal physical discovery layer component440for providing a universal physical discovery layer110(FIG. 1), a universal physical discovery layer interface470for receiving, at least in part, data representing a physical relationship type126(FIG. 1) between physical entities, such as physical entities1A-7A. The universal physical discovery layer component440uses the data to establish a physical relationship type126using a legacy network discovery layer interface460to communicate with a legacy network discovery layer130(FIG. 1). The legacy network discovery layer130can be implemented using a legacy network discovery protocol. The legacy network discovery layer130is separate from the universal physical discovery layer110and communicate with the universal physical discovery layer component440, according to one embodiment.

The device400further includes an ID accessor410for accessing an ID101(FIG. 1), a name accessor420for accessing a name102(FIG. 1), a provided services accessor430for accessing provided services104(FIG. 1), and an optional sensor103. The device400further includes a state maintainer480for maintaining the state105(FIG. 1) of providing a particular service associated with provided services128(FIG. 1) to a user.

According to one embodiment, device400can be implemented as an ASIC, among other things.

A device400is included in another device, such as a PDA, a stereo, a printer, a laptop, etc., according to one embodiment. The legacy network discovery layer130that the legacy network discovery layer interface460communicates with is installed on a device that includes the device400, according to one embodiment, or is installed on another device, such as a centralized server, that the device400communicates with, according to another embodiment.

The universal physical discovery layer interface470receives physical relationship types126manually, automatically, or semi-automatically, according to embodiments already described herein.

According to one embodiment, device400can be implemented as an Application Specific Integrated Circuit (ASIC), among other things.

According to another embodiment, interfaces460and470are ports. For example, interfaces460and470can be ports that USB cables are plugged into.

According to yet another embodiment, UPDL component440provides a means for communicating with universal physical discovery layer that is implemented on a device other than device400, such as a centralized server.

Code Samples for Complementing Network Discovery with Physical Discovery

The following is a sample of code that may be used to establish, remove, and re-establish a relationship between physical entities, according to one embodiment. As depicted in Table 1, a container is used for maintaining relationships. Relationships can be established by adding the relationships to the container, for example, by calling the addContainedEntity method. Relationships can be removed from the container, for example, by invoking the removeContainedEntity method. Relationships can be re-established, for example, by adding the relationship back into the container. Table 1: sample of code for establishing, removing, and re-establishing a relationship between physical entities.

Alternatives and Extensions for Complementing Network Discovery with Physical Discovery

Although the examples described herein described person2A carrying one device, e.g., PDA220, a person can in fact carry multiple devices, such as a camera, a laptop, a PDA, etc, according to one embodiment. According to another embodiment, a person is the “owner” of one of the devices, such as the PDA220. In this case, the state105associated with that PDA220can be used to maintain the state of whatever service the person has currently requested.

Databases can be used for storing and maintaining values for various elements depicted inFIGS. 1,2, and4, according to another embodiment. For example, relationships120, IDs132, names134, provided services136, among other things, can be stored and maintained in a database.

Conclusion to Complementing Network Discovery with Physical Discovery

By providing separate layers for the universal physical discovery layer and the legacy network discovery layer, existing legacy network discovery protocols are used for implementing the legacy network discovery layer, according to one embodiment. Further, the universal physical discovery layer can communicate with more than one legacy network discovery protocol, according to another embodiment.

By providing physical relationship types that describe relative physical proximities between physical entities, standardized and contextually relevant information about the physical location of physical entities are provided, according to yet another embodiment.