When it comes to designing reusable software assets it is important to spend the extra bit of time in design before rushing into implementation. This is very relevant when designing schema definitions (or interfaces or contracts as they are also called) for your services. Thomas Erl in his book SOA Principles of Service Design points out several facets of ‘coupling’ that one needs to be cognizant about when designing services.
If you want to design reusable services minimizing contract to implementation coupling is extremely essential. When your service contract has dependencies or references to platform annotations, programming language, vendor product, or platform specific technical idioms it greatly reduces the potential for reuse. Why? Because, all these factors contribute negatively to service interoperability across platforms.
Service interoperability directly impacts service reuse. If it is harder to use your service from several platforms, it is unlikely that your service will be reused heavily.