Domanda

Ho un'applicazione client / server. Uno dei client è una CLI. L'interfaccia della riga di comando esegue alcune convalide di base, quindi effettua richieste SOAP a un server. La risposta viene interpretata e le informazioni pertinenti vengono presentate all'utente. Ogni comando implicava una richiesta a un servizio Web.

Ogni volta che i servizi vengono modificati sul lato server, è necessario rilasciare una nuova CLI.

Quello che mi chiedo è se ci sarebbe qualcosa di sbagliato nel rendere la mia CLI incredibilmente sottile. Tutto ciò che farebbe sarebbe inviare la stringa di comando al server dove sarebbe stata validata, interpretata e restituita una stringa di risposta.

(Anche il completamento della TAB può essere fatto con la collaborazione del server.)

Ritengo che nel mio caso ciò semplificherebbe lo sviluppo e ridurrebbe i lavori di manutenzione.

Ci sono insidie ??che sto osservando?

Aggiorna

I problemi di scalabilità non sono una priorità assoluta.

È stato utile?

Soluzione

Penso che questa sia davvero solo una questione di gusti. La convalida deve avvenire da qualche parte; stai solo scambiando complessità nel tuo client per la stessa quantità di complessità nel tuo software. Non è necessariamente una brutta cosa per la tua architettura; stai davvero fornendo un servizio aggiuntivo che offre ai chiamanti un mezzo alternativo per accedere ai tuoi servizi esistenti. L'unica trappola che vorrei cercare è la duplicazione del codice; se ritieni che la convalida della CLI stia facendo le stesse cose di alcuni dei tuoi servizi (ad esempio l'analisi dei numeri), quindi rifattorizza per evitare la duplicazione.

Altri suggerimenti

in generale, andresti bene, ma la convalida lato client è un buon modo per ridurre il carico di lavoro se le richieste errate possono essere rifiutate in anticipo.

  

Quello che mi chiedo è se ci sarebbe qualcosa di sbagliato nel rendere la mia CLI incredibilmente sottile.

     

...

     

Ritengo che nel mio caso ciò semplificherebbe lo sviluppo e ridurrebbe i lavori di manutenzione.

Le persone lo fanno da anni usando telnet / SSH per remotare una CLI che gira sul server. Se comunque tutta l'intelligence deve trovarsi sul server, potrebbe non esserci motivo per fare in modo che la CLI sia un client distribuito con intelligenza. Basta che sia una sessione terminale - se riesco a cavarmela usando SSH, questo è quello che farei - allora il pezzo client viene fatto una volta (o forse solo un po 'di software standardizzato) e tutta la manutenzione e gli aggiornamenti avvengono sul server (benvenuto nel 1978).

Ovviamente questo vale davvero solo se non è davvero necessario che il client sia intelligente (il che sembra il caso nella tua situazione).

L'uso delle coppie nome / valore in una stringa di richiesta è in realtà piuttosto prevalente. Tuttavia, a quel punto, perché preoccuparsi del SOAP? Invece passare a un'architettura RESTful?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top