Fórum Web Service X View #418446

13/06/2012

0

Temos uma aplicação A que precisa acessar dados de uma aplicação B. Pensamos em duas alternativas:
1) criar uma view no banco Oracle da aplicação B e criar um usuário com acesso somente a esta view. A aplicação A deverá se conectar no banco da aplicação B com este usuário criado e realizar o select na view.
2) criar um web service que acesse as tabelas do banco da aplicação B. A aplicação A deverá chamar este web service.

Quais as vantagens e desvantagens de cada alternativa? Considerem que a aplicação A já acessa um outro banco de dados Oracle.

Qual oferece mais flexibilidade, baixo acoplamento, escalabilidade, potencial de reusabilidade?
Veronica Santos

Veronica Santos

Responder

Posts

08/07/2012

Rodrigo Nogueira

Defendo o seguinte ponto de vista:
- Se a informação que vc pretende acessar é muito específica de um sistema, então use um webservice, pois essa informação pode ser complexa de ser obtida. Por exemplo, se vc precisa acessar dados de um sistema de RH, não faz muito sentido vc criar uma view que vá juntando os dados de várias tabelas da mesma forma que o sistema de RH já foi concebido para fazê-lo. Neste caso é natural usar um webservice, aproveitando a implementação já feita no sistema e, principalmente, tornando o seu novo sistema escalável. Imagine se um dia o sistema de RH mudar, vc terá um (re)trabalho enorme tentando juntar todos os sistemas que usam a view do sistema de RH para, depois, alterar um a um. É um risco que provavelmente vai impactar cronogramas futuramente, além de elevar sobremaneira os custos.
- Se a informação que vc pretende acessar é de baixa complexidade e não tem relação com o seu negócio use uma view. Exemplo para informações de UF, cidades, IDH e outras.

O principal é que tudo depende do negócio da sua empresa. Dois exemplos:
1) Na minha realidade eu posso usar uma view contendo o IDH das cidades brasileiras, pois essa informação é atualizada através de rotinas ETL de tempos em tempos. Mas talvez um sistema do IBGE não possa usar essa informação na forma de view para seus sistemas, devido a restrições do negócio e complexidade da informação.
2) Posso usar informações de marca/modelo de veículos através de views de um suposto sistema de patrimônio, pois meu negócio não tem nada a ver com os aspectos formais e legais de criação de novas marcas e modelos. O mesmo pode não ser realidade nos sistemas do DENATRAN.

Não trate como religião o uso de somente webservices no ambiente corporativo. O melhor é julgar o que será view e o que será webservice, juntamente com a opinião de colegas e assumir os riscos de uma ou outra abordagem.
Particularmente, acho desnecessário, na maioria dos casos, ter webservices para acessar, por exemplo, códigos de UF, nome dos estados/cidades, pois são informações que, sempre que mudam, vc provavelmente irá atualizá-las diretamente no banco de dados pegando arquivos dos correios, IBGE, etc. Usando views, vc consegue muito mais facilmente usar configurações de cache de segundo nível, índices de busca e outras funcionalidades no seu framework de persistência para este caso.
Mas, como eu disse, julgue a situação com base no seu negócio. Já adianto que essa discussão webservices X view é muito controversa e muitas vezes as opiniões divergem.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar