beh, non vai a sviluppare un server da zero, si usa direttamente il webserver per queste cose

tu andresti sviluppare il codice che legge XML, lo interpreta, esegue la richiesta ed restituisce la risposta

Ma, nel caso specifico ... andando ad usare già delle classi che fanno questo lavoro tu non devi far altro che far gestire loro la lettura, l'interpretazione e la restituzione della risposta occupandoti esclusivamente di eseguirla in base ai parametri che ti vengono forniti

durante l'esecuzione della richiesta puoi operare come più ti serve ... ad esempio la richiesta, secondo me, non dovrebbe contenere sempre user e pass di connessione ma un codice di sessione onde evitare la continua trasmissione dei dati di accesso.

Inoltre le richieste dovrebberò stare su HTTPS e non su HTTP perché è imolto più facile intercettarle

per finire, si, il client invia il messaggio nel formato richiesto ... ma se hai già un client devi sviluppare il webservice seguendo le specifiche utilizzate dal client ... se è presente un file WSDL è estramente semplice perché ci sono tool che generano automaticamente il codice