2010-10-18 2 views
6

Ho un servizio Web distribuito e pronto per l'uso. L'applicazione client utilizzerà questo servizio in modo sincrono ed estremamente frequente. Anche la quantità di dati restituiti dal servizio web è considerevole.Pattern di progettazione client di servizio Web (best practice)

Il client del servizio Web è un'applicazione Web (portlet liferay). Ho generato la parte client con l'asse all'interno di eclipse.

Nei miei primi test, in ogni richiesta sto istanziando un nuovo ServiceProxy e chiamando i suoi metodi. Non sono sicuro della robustezza e affidabilità di questa struttura (creazione di un nuovo oggetto proxy ogni volta).

L'ho modificato in classi statiche con proxy singleton, ma non sono sicuro di cosa succederà durante le chiamate simultanee del client di applicazioni Web (problemi di concorrenza).

Desidero che il disegno disaccoppiare la mia applicazione Web dal client di servizio Web e abbia qualcosa come la cache del proxy client (non la cache di dati poiché la mia applicazione è in tempo reale) o qualcosa di simile.

Penso che ci dovrebbe essere un modello di progettazione o una best practice per le parti client del servizio web.

risposta

1

Sembra che il servizio Web utilizzi il protocollo HTTP, quindi non c'è motivo di avere qualche cache proxy o qualcosa del genere, la connessione viene creata su ogni chiamata, quindi è possibile chiamare contemporaneamente l'istanza client WS inizializzata.

Ma in ogni caso pagherete 200ms per ogni chiamata (dalla mia pratica), ed è principalmente l'elaborazione XML se la rete è super.

+0

Zaletniy, grazie. Alla fine ha catturato l'attenzione di qualcuno dopo un mese! Per riformulare quello che hai detto, è OK avere un oggetto proxy singleton che ogni client usa per accedere al servizio? –

+0

Sì, n.p. credo. Inoltre, mi piacerebbe suggerire di fare un pesante test multithread, perché ho dovuto affrontare quando il framework di elaborazione xml è dichiarato come thread-safe, ma in realtà i problemi concomitanti arrivano. – zaletniy