With the adoption of SOA, differences of vocabulary and terminology are becoming increasingly exposed as a major source of interoperability problems, and a huge cost sink. A global service that can translate between the terms used by different computer applications could provide a solution, enabling interoperability at the semantic level similar to that of the Internet Domain Name Service (DNS) at the network level. What would such a service look like, and is it achievable?
The Semantic Challenge
Each group of people within an enterprise has its own specialist vocabulary. The order processing department talks about product codes, quantities, and delivery dates; the accounts department talks about assets, expense categories, and currencies; the human resources department talks about employee numbers, grades, and salaries; and so on.
These vocabularies can be different, even within the same business domain. For example, in one order-processing department they might speak of “quantity ordered”, while in another they speak of “number ordered”. Even more confusingly, in the first they might use “delivery date” to mean “date when the customer has requested delivery”, while in the other they use the same term to mean “date when we can deliver” – which is not at all the same thing!
If these different groups of people never need to communicate with each other, there is no problem, and if the communication is directly between the people, many of the problems can be sorted out, as people are good at coping with slight differences of vocabulary and language. But in the boundaryless organization of today, communication within and between different groups of people is essential. And in our increasingly technological world, that communication will probably involve computer systems, which do not have human language skills.
This is the problem of Semantic Interoperability, which is of increasing concern to CIOs. It is emphasized by the trend towards service-oriented architectures (SOA), where loosely coupled services inherit different vocabularies from their users and programmers, and those vocabularies must be translated in order to communicate with each other. One major manufacturing corporation estimates that the cost of a single interface in a traditional architecture ranges from $10K to $1M depending on scope and complexity, and that 35-40% of that is spent on semantic analysis. A service-oriented approach can reduce some of this cost, by providing a common framework for inter-connecting services, but in and of itself can do nothing about the semantic component. From being a significant but still minor share of the cost in a traditional architecture, semantic interoperability will become the dominant cost in SOA, unless something is done.