What is a centralized data dictionary for messages in WSDLs? Is it a good idea to have an enterprise data dictionary or is it defeating the whole notion of SOA?
It's an excellent idea to define standard XML data types and vocabularies to enable better information exchange and process integration within your enterprise. (It definitely does not defeat the whole notion of SOA -- in fact, vocabulary management is a prerequisite to gaining advanced SOA benefits.) As a general rule, WSDL messages should use standard data types whenever possible rather than proliferating redundant, incompatible, and inconsistent ways to represent enterprise data. The actual WSDL message elements, though, are typically unique to a specific service. For example, if you have a service that exposes the operation "getCustomer", you should define WSDL message elements called "getCustomer" and "getCustomerResponse", specifically for this WSDL, but the elements should use corporate standard types, such as "Customer".