I'd like to know about best practices for designing web services and WSDL for big projects. 1) Is it better to go WSDL -> Java or Java -> WSDL in terms of code generation or it is better to hand code everything. If you're going from Java -> WSDL I dont see a way of getting header messages defined inside the WSDL automatically. I think you have to hand code that part any way. 2) Is it useful to separate complex types out from your WSDL and define them in a separate xsd and import into the WSDL? I think it might be useful when you have some complex types that are common across web services. However it may become problematic if one web services changes and the other doesn't. Is it just better to keep all structures separate from other web services even if they are very similar? 3) Is it useful to use WSDL imports and separate out different elements in a WSDL? If so how should they be separated? 4) Is it better to group together all advertised web services in one WSDL or keep it as one service per WSDL? Does it make sense to group WSDLs into logically coherent blocks using object oriented paradigms for instance grouping operations on addresses into one WSDL and operations on contact details into another WSDL?
I'd would prefer answers from people experienced using web services on big projects.