Improved discovery techniques are provided. For example, in one aspect of
the invention, a technique for making providers of a particular kind of
data available to an application program includes the following
steps/operations. The technique discovers whether one or more data
providers are capable of providing the particular kind of data, wherein a
discovered data provider is either a connected data provider or a virtual
data provider. When a data provider capable of providing the particular
kind of data is discovered and the discovered data provider is a virtual
data provider, the technique instantiates the virtual data provider. When
a data provider capable of providing the particular kind of data is
discovered, the technique makes a data-provider handle for the discovered
data provider available to the application program, with a common
interface.