Opportunity Lost

SOA has become the new silver bullet solution to the old problem of data integration and access. Unfortunately this shift in emphasis is closing the door on the truly significant opportunity that SOA presents to the distributed enterprise - encapsulation of behavior with improved coordination across large distributed teams. This obsession with data will lead to an explosion in complexity as we attempt to build the “one true schema” for all of the enterprise.

SOA has the ability to encapsulate behavior, to make the need for cross domain knowledge to simply vanish. This is possible because SOA provides access to processes that act on data as well as the data itself. This is an old paradigm for those familiar with object oriented design. By asking an object to do the job for you, you are spared the problem of understanding the fine grained details of processes that are not directly relevant to your problem.

As illustration, consider the Google map service. The Google service does more than provide map data, it also composes, renders, and binds hyperlink information to points on the map. The consumer of the service needs know only the minimum types of information such geographic coordinates, hyperlink format, and selecting map layers. The fine grained detailed knowledge of rendering map data, creating images, providing AJAX web controls, etc. are provided by the service. A purely data centric approach would have each consumer of map data, develop the entire stack of knowledge needed to manipulate that data.

As further illustration, consider aircraft simulation data. Do you really want to understand flight dynamics in order use the data about an F-22 or rather invoke an F-22 simulation as a service and cherry-pick information from the running simulation? The data centric approach to enterprise architecture promotes heavy replication of business logic across the enterprise, SOA gives us an alternative.