In terms of data integration, the notion of data virtualization lets us think about collections of data or services as abstract entities. Thus the abstractions can be represented in a form that is most useful to the integration server or the data integration architect. It’s this notion of abstraction that provides for the grouping of related pieces of information. These groups are independent of their physical location and structure, and allow us to define and understand what meaningful operations can be performed on the data or services.
We leverage data virtualization for a few core reasons:
- First, data virtualization allows us to move forward with existing physical databases and structures, without driving expensive and risky changes.
- Second, data virtualization has the ability to bind behavior to access data through the use of data services. This means we can place integrity and access logic decoupled from the core database.
- Finally, data virtualization provides us with the ability to place volatility into a domain. For instance, we’re able to deal with changes to the physical database without necessarily changing the exposed structure which is bound to the service.
Data virtualization, in its use with data integration, allows us to redefine the look, feel, and behavior of certain data sets and application services that are local to source or target systems. This means we can represent the data set or application service in a manner that best fits the needs of the data integration problem you are attempting to solve.
This also means enforcement of certain restrictions on the use of the data or service, based upon the needs of the data integration scenario, as well as streamlining the task of reasoning about the data or service. We’ve employed this concept with great success for years in the world of object-oriented technology, and then moved to the use of distributed object, and now services. The new generation of data virtualization combines the notion of abstraction and services with the ability to access data that is most flexible to those who need to access the data in specific ways, including customized structures and logic, defined for the specific needs of the consumer of those services.
So, we need to separate the implementation from the data virtualization itself. This allows us to change the internal representation and/or implementation without changing the abstract behavior, and lets people use the data virtualization in terms of data integration without needing to understand the internal implementation. While this seems complex, the use of this technology actually makes things simpler and easier to understand. It certainly makes data integration a much easier and less invasive technology to implement within the enterprise.