by Dave Linthicum

Support for Abstract Data Types Required by SOA

analysis
Apr 12, 20072 mins

Once again, in the world of SOA, we need to focus a bit more on data. Let's look at critical data management mechanisms, including abstract data types. Transformation mechanisms, which are part of SOA (e.g., semantic mediation), also need to support abstract data types (ADTs). ADT allow different representation of data and behavior to meet the requirement of the application integration scenario, or in the case o

Once again, in the world of SOA, we need to focus a bit more on data. Let’s look at critical data management mechanisms, including abstract data types.

Transformation mechanisms, which are part of SOA (e.g., semantic mediation), also need to support abstract data types (ADTs). ADT allow different representation of data and behavior to meet the requirement of the application integration scenario, or in the case of SOA service deployment.

What’s the value? ADTs provide a mechanism with a clear separation between the interface and implementation of the data type, including the representation of the data, or choosing the data structure, and the operations of the data. Thus, they support agility by providing a configuration layers between the core physical databases and the data services. This is technology you find in data services project, from guys like Composite Software, and others.

The interface with the abstract data type is created through an associated operation. What’s more, the data structures that store the representation of an abstract data type are invisible to the integration view. The ADT also includes any operations, or algorithms, contained with the ADT.

The internal representation and executions of these operations is changeable at any time and won’t affect the interface to the ADTs. Thus, a completely different representation is possible for sets storing information in the ADT.

Having said all that, ADTs consist of:

  • An interface or a set of operations that can be performed.
  • The allowable behaviors, or the way we expect instances of the ADT to respond to operations.

The implementation of an ADT consists of:

  • An internal representation data stored inside the source or target system’s variables.
  • A set of methods implementing the interface.
  • A set of representation invariants, true initially and preserved by all methods.