Providers and Consumers

You connect to providers using connection strings. For example, if an Oracle database is a provider, to connect to its services, you might need:

  • The IP address of the machine
  • The SID
  • The TCP port

These three pieces of information would comprise the connection strings required by a consumer, which are needed to connect to a service offered by that provider. For example, an Oracle connection string could contain the following information:

  • IP addresses: 1.1.1.1, 2.2.2.2
  • Port: 1521
  • SID: abcd

A consumer is aware of at least one connection string for a provider, and this connection string is found in a known location, such as a configuration document, a database table, Windows registry, and so on. By searching through these locations, dependencies between consumers and providers can be discovered.

If the connection strings of a provider are found in a certain configuration document, then the provider and the container of the configuration document are connected with a consumer-provider relationship.

The process of discovering consumer-provider dependencies then becomes straightforward: Connection strings from the provider are searched for in the consumer's configuration documents, and the search results contain all configuration documents owned by the consumers of the specified provider.