The Architecture supports several discovery techniques.
First, you can discover all the capabilities of a product by saying, "Tell me €€all about your self." If you are communicating with a Multifunction Peripheral, it would then describe its print, fax and scan capabilities. This is useful for Directory Services that serve to populate the Directory with information about all services in a network.
Second, you can discover the capabilities of a specific product class. You can say, "Tell me about your printer." Again if you are communicating with a Multifunction peripheral, it would describe its print capabilities, but not its fax or scan. If the device had no print capability it would respond indicating if did not print. This would be useful for a print server, which is only interested in locating and using the printing devices on a network.
Third, you can discover a specific service. If you are looking for a specific printer, one that can print in color, at high resolution, with stapling and duplexing capability, you can ask a product if it supports these functions. The device will respond positively or negatively to the request, indicating a match with your requirements.
Finally, in networks that support broadcast, the Architecture will support a global search.