All’indirizzo web www.pocketsoap.com è possibile trovare, tra cose molto apprezzabili da parte di chi sviluppa software, un’utility freeware che permette di analizzare il traffico tcp/ip tra un client ed un server e, volendo, anche di effettuarne un logging su file, si tratta di tcpTrace sviluppata da Simon Fell.
L’utility, che non necessita di installazione, si interpone nel canale di comunicazione tcp/ip tra client e server e quindi riesce ad analizzare il traffico tcp/ip da questi generato.
Quando si ha, per esempio, una chiamata SOAP tra un client Java ed un servizio in stato di running che utilizza Tomcat, la situazione sarà quella illustrata nella figura precedente.
Se però inseriamo un oggetto di monitoraggio del traffico, dovremo rivedere la configurazione nel modo seguente.
In particolare il server Tomcat, che normalmente è in listening sulla porta 8080, deve essere spostato sulla porta 8081.
Alternativamente potremmo cambiare la configurazione di tutti i client, ma questo comporterebbe molto più lavoro, per cui, di solito, si preferisce cambiare semplicemente la porta del server.
L’applicazione che effettua il monitoraggio deve essere inserita all’interno del canale tcp/ip, tra il client ed il server.
Per ottenere la situazione appena descritta è sufficiente lanciare il file tcpTrace.exe.
La prima finestra permette di configurare il canale di comunicazione ed eventualmente di impostare un file di log della tracciatura.
Ecco la finestra di configurazione.
La configurazione mostrata pone l’applicazione in listening sulla porta 8080 e, dopo aver monitorato il traffico tcp/ip sul server selezionato, effettua il tunneling sulla porta 8081. In questo modo, anche se il client ed il server si trovano su due porte differenti, riescono a comunicare in maniera trasparente.
La finestra di trace dell’applicazione è la seguente:
Nel caso specifico l’applicazione tcpTrace è stata utilizzata per monitorare il traffico HTTP tra un client ed un server SOAP, ma lo stesso discorso può essere fatto per qualsiasi comunicazione che utilizzi il protocollo Tcp/Ip per trasportare l’informazione.