Enterprise data may come from multiple data “sources” across the enterprise. These sources of data may exist in relational databases such as Oracle, Microsoft SQL Server, or IBM DB2. Some of the sources of data, however, exist as Web Services. A DataSource is an important, first class object in the NetQuarry platform. A DataSource is specified by name (and properties) in metadata, and the physical connection to it is specified in the server’s configuration file.

NetQuarry uses a DatabaseProviderFactory pattern to create the correct connection type for each database. The provider pattern allows the data access code to treat different source types the same because they are all subclasses of the same base class. As far as the developer is concerned, the physical source of data is mostly immaterial.