“The concept of Web services is the beginning of a new service-oriented architecture in building better software applications. The change from an object-oriented system to a service-oriented one is an evolutionary idea that sublimated from the global Internet and Web system. To understand how to build Web Services into your computing architecture, you need to carefully understand the role they play. This article details the software engineering concepts behind the Web Services architecture, how it has evolved, how it is structured, and how it can be brought into your existing computing infrastructure”
there’s even a nod to the importance of semantics interface and services compatibility:
“The semantics of services — what they do and what data elements they manipulate mean — is the key issue. Business value results from B2B collaborations that do the right thing. If they do something else, the damage may be dramatic. How, then, do we trust that a service does the right thing before it is used? And how do we make that determination at Internet speeds?
In small-scale OO systems, interface compatibility usually implies semantic compatibility. That is, an object that implements the right set of messages with the right types of arguments probably does “the right thing.” This is true, in part, because small-scale systems tend to be built by a small team of programmers with shared understanding of how the system operates and, in part, because small systems offer little opportunity for ambiguity. However, in large-scale OO systems, the semantics provided by a given class cannot be reliably deduced from the message interface alone. Clearly, in an Internet populated with many thousands of services offered by thousands of different companies with very different agendas, compliance with some specified message set will not be sufficient to deduce the semantics of the service.”