Pergunta

Eu tenho um aplicativo cliente / servidor. Um dos clientes é um CLI. O CLI executa alguma validação básica, em seguida, faz solicitações SOAP para um servidor. A resposta é interpretada e informações relevantes apresentadas para o usuário. Cada comando envolveu uma solicitação para um serviço web.

Todos os serviços de tempo são modificados do lado do servidor, a novas necessidades CLI para liberado.

O que eu estou querendo saber é se haveria nada de errado em fazer o meu CLI incrivelmente fino. Tudo o que fazer é enviar a cadeia de comando para o servidor onde seria validada, interpretado e uma cadeia de resposta retornado.

(conclusão TAB Mesmo poderia ser feito com a cooperação do servidor.)

Eu sinto no meu caso isso iria simplificar o desenvolvimento e reduzir o trabalho de manutenção.

Existem armadilhas que eu estou com vista?

Atualizar

problemas de escalabilidade não são uma prioridade alta.

Foi útil?

Solução

Eu acho que isso é realmente apenas uma questão de gosto. A validação tem que acontecer em algum lugar; você está apenas trocando complexidade no seu cliente para a mesma quantidade de complexidade em seu software. Isso não é necessariamente uma coisa ruim para sua arquitetura; você está realmente apenas fornecendo um serviço adicional que dá chamadores um meio alternativo de aceder aos seus serviços existentes. A única dificuldade que eu olhar para fora é a duplicação de código; Se você achar que sua validação CLI está fazendo as mesmas coisas que alguns de seus serviços (Análise números, por exemplo), em seguida, refatorar para evitar a duplicação.

Outras dicas

Em geral, você estaria bem, mas a validação do lado do cliente é uma boa maneira de reduzir sua carga de trabalho se os pedidos maus pode ser rejeitada no início.

O que eu estou querendo saber é se haveria nada de errado em fazer o meu CLI incrivelmente fino.

...

Eu sinto no meu caso isso iria simplificar o desenvolvimento e reduzir o trabalho de manutenção.

As pessoas têm feito isso há anos usando telnet / SSH para comunicação remota um CLI que é executado no servidor. Se toda a inteligência deve estar no servidor de qualquer maneira, pode haver nenhuma razão para ter seu CLI ser um cliente distribuído com inteligência. Apenas tem que ser uma sessão de terminal - se você pode fugir usando SSH, que é o que eu faria -, então a peça do cliente é feito uma vez (ou, possivelmente, apenas um pouco off-the-shelf de software) e toda a manutenção e atualizações acontecer no servidor (bem-vindo a 1978).

É claro que isto só se aplica se há realmente nenhuma exigência para o cliente ser inteligente (que soa como o caso em sua situação).

Usando pares nome / valor em uma string pedido é realmente muito prevalant. No entanto, naquele momento, por que se preocupar com o SOAP em tudo? Em vez disso basta mover para uma arquitetura RESTful?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top