Clients would like to use internal system resources, but access to these entities must be controlled.
How can a web service provide access to internal resources like database tables, stored procedures, domain objects, or files with a minimum amount of custom code?
Database tables, stored procedures, domain object models, and files must often be shared with clients that run on different computing platforms. It's usually impractical to migrate all clients to the same platform. One could, instead, provide access to these resources through web services. However, this can entail a significant amount of work. How can access to these resources be offered without having to write a lot of code?
Create a web service that uses a specialized Datasource Provider. Leverage developer tools that generate datasource metadata and produce controllers that not only encapsulate and interpret the rules for request processing, but also direct the actions of Datasource Providers and Message Formatters.
The Datasource Adapter is a variation on the Adapter pattern. Datasource Adapters make internal resources like database tables, stored procedures, domain objects, or files accessible to clients with a minimal amount of code. This pattern is also known by the name Data Service. Service frameworks that support this pattern intercept and translate requests into one or more actions against a specialized Datasource Provider that encapsulates the logic required to interact with a specific datasource type (e.g. Object-Relational Mapper, database, file, etc.). These frameworks also use Message Formatters to produce responses in the desired format.