Since data is rarely in a form required by applications and services, and is often not even in a single data source, a key requirement for data services is that they abstract the data from its physical persistence structure, presenting it in a form that is closer to the needs of the using application. This effectively decouples consuming applications from the structure of the underlying data.
Hand-in-hand with abstraction, a federated query engine is required to execute the transformations defining the abstraction layers in an efficient manner, and to expose the abstracted structures through uniform and standard APIs.
The two key components of a data services architecture, then, are:
- Modeling environment, to define the abstraction layers -- views and Web services
- Execution environment, to actualize the abstract structures from the underlying data, and expose them through standard APIs. A query engine is a required part of the execution environment, to optimally federate data from multiple disparate sources.
See SOAs and Data Services for more information on the role data services play in an SOA.
Technical and Business Viewpoints
Data services can be viewed from both a technology vantage point, or from a business viewpoint.
The Technology Viewpoint
Teiid provides a suite of projects that provide data services to business applications. That is, Teiid provides a means to access integrated data from multiple data sources, through your preferred standards-based API. Teiid provides access to federated information through JDBC (SQL or XQuery), ODBC (SQL or XQuery), and SOAP (Web services).
The Business Viewpoint
A more business- or user-centric view of data services is that they are information representations required by business applications. From this perspective, data services are defined and designed by business analysts, modelers, and developers to represent the information structures required by business applications. Often, a key design goal is one of interoperability - the requirement that systems work together seamlessly, including when exchanging data. Teiid provides graphical and other tools for defining these interoperable data services, essentially relational and XML views that can be used by business applications in a semantically-meaningful manner.
These two viewpoints roughly correspond to the Execution and Modeling components of a data services solution, respectively.
Data Services - An Essential Part of an SOA
Data services are a key part of a service-oriented architecure, or SOA. They provide the necessary interface to data for all business services.