Tuesday, February 06, 2007

Services Fabric and Data Management

Reflecting on the previous posts referring to events, content and semantics it's apparent to me that data management is ever more important in a world of services. Just because a database is buried deep behind a service interface doesn't mean we can ignore the basic principles of data management.

As we know semantics are critical at the service interface or the definition of an event, but how do we know that data passed through an interface is handled correctly? Given that we're moving to a service world in many cases by service enabling legacy applications we need to establish a framework for managing data across the service enabled landscape. We can not rely on a sea of services that are going to perform every validation for us - much of this will still be left embedded in applications. After all how would our services perform if every valdiation required a service invocation?

The framework needs to deal with:

Synchronisation (including translation) of content - ensuring that reference data or master data (not my favourite terms - see below) are up to date and distributed to where it's required when it's required. As above real time look up of content will not be performant in many situations. Therefore data needs to be 'cached' as part of the service implementation.

Synchronisation (including translation) of definition - as with any language, establishing a single dialect for the business and implementing it in its information systems is probably not a reality, especially when many system components are sourced from outside the enterprise and/or need to interoperate with customer and supplier services. Is Oracle's semantic model the same as SAP's?

Data (and service) ownership - as those that have tried will know, until this fundamental principle of data management is established many of the advertised benefits of service orientation will remain elusive. Unless ownership of data and associated rules are established multiple definitions and implementations will remain along with multiple service implementations performing similar functions.

As mentioned above these are the basic principles or needs of enterprise data management. However, apart from a few execution tools aimed at areas such as master data manaagement and canonicals I see very little discussion on this aspect of the services fabric. Of course this may be limited to whether SOA is treated as an IT or Business issue. The development and management of business ontologies has to be a cornerstone for establishing true SOA.

In this vein, what is the collective for the 'things' the business cares about (e.g. orders, customers, accounts)? Objects? Entities? Types?

(Note: Reference data or master data are not my favourite terms as these terms appear to lump in to one bucket what are probably a number of critical subject areas that define the enterprise. Indeed, MDM appears to be an IT persons response to the problem when of course managing information about the basic assets of the organisation is a business problem, requiring ownership and process.)