| Backgrounder: |
Many organizations recognize the need to reduce complexity in existing silo application portfolios, to reduce application integration effort, to establish common views of key information types such as customer, product, reference data etc. and to reduce data errors and information inconsistency.
Whilst these have been intractable issues for many years, we don’t need to look far for the cause. Silo projects together with the absence of effective data management have resulted in widespread data duplication and inconsistency.
To address these fundamental issues we need to recognize two problem domains:
* Immature SOA practices, and
* Inadequate data management
Early usage of SOA concepts is usually driven by the business process. This is because early SOA activity is likely to be project specific and there is no mandate for taking a broader view. However, with experience it becomes apparent that the project and process driven perspectives are sub optimal, merely adding to existing complexity. And with that SOA experience there is likely to be emerging consensus for action to create a common services layer.
An important step towards SOA maturity is to adopt improved data management practices as part of the architecture and application delivery processes as an essential precursor to establishing common information services for core data assets. Typically these will be delivered as facades for disparate existing back end systems that publish consistent, single point of access, information services. The effective service architecture will specialize service layers, separating process from data behaviors, recognizing the inherent behavioral differences between information and process services and establishing stable information service layers that can support the more rapidly changing process layer.
For a major corporation or government department, with high complexity in the existing back end systems, the realization of the core business enterprise service layer requires a major undertaking to publish services from inconsistent, unsynchronized back end systems that span multiple architectures, delivery and runtime technologies. A very big part of this effort is managing the data inconsistencies and this usually requires a major transformation and orchestration effort together with ongoing version management that must encompass new composite applications, the core business services and the existing back end systems. |