Estou implementando um aplicativo para instalar em milhares de pontos de venda. O processamento eh central e as transacoes sao pequenas e enviadas pela WEB.
O servidor recebera dezenas de requisicoes, muitas ao mesmo tempo e tem q ficar disponivel 24h.
Estou pensando em utilizar um aplicativo cliente conversando com o servidor atravez de WebServices (SOA) com a dupla Tomcat e Axis no servidor (por traz de um firewall, obvio). O q vcs acham? Muito pesado para uma aplicacao como essa? Dispensavel o SOA?
Fiquei tentado a usar o WebService pela sua facilidade de integracao.
Os dados sao sigilosos, WS eh realmente seguro?
Ou eh melhor usar algum outro metodo de comunicacao?
Antes eu pensava em usar apenas URLs enviando dados no metodo POST… e https padrao, a resposta viria em txt no lugar do html.
Agradeço antecipadamente sua opniao.
Valeu colegas
Posso falar com toda a franqueza com o melhor conselho que posso dar?
Um aplicativo para milhares de pontos de venda e com dados sigilosos precisa de uma análise cuidadosa de muita responsabilidade e um fórum não lhe fornecerá uma resposta comprometida. Contrate um consultor.
Cara isso é uma questão muito complexa, mas para dar uma luz no final do tunel:
Contrate uma empresa responsável para a segurança desse servidor;
Contrate uma empresa responsável pela arquitetura desse sistema (ela precisa ser voltada para a segurança, muitos servidores seguros são comprometidos por falhas de programação e validação de dados pelo software);
Contrate um empresa responsável para a certificação do seu SSL;
A partir daí escolha qual tecnologia irá utilizar;
Depois de tudo pronto faça muitos testes de invasão tanto no servidor como no seu software para saber como ele se comporta perante esses riscos.
Beleza pessoal!
Realmente sao conselhos que ninguem pode negar…
Nao estou trabalhando sozinho, temos empresas conceituadas trabalhando no projeto. Desde a configuracao dos servidores (S.O. firewall, BD, etc…) qto dos softwares envolvidos no processamento da informação.
Talvez eu nao tenha sido muito claro e colocado uma pergunta q exige muita responsabilidade na resposta.
O objetivo era saber em qual tecnologia vcs apostariam para dar conta do recado… entao, onde vcs colocariam todas as suas fichas? em aplicativo especifico (Java+aplicativo e soh), algum outro framework, aplicativo, script? Axis?
Você saberia informar qual vai ser a tecnologia no client? Java, dot.net ?
Se for java, pode trabalhar diretamente com IIOP sem onerar a performance da sua aplicação com os parses de xml e nem largura de banda com arquivos monstros xml.
Caso faça a opção pelo modelo WebServices, procure utilizar um framework como XFire ao invés do Axis, pois sua performance em alguns casos chega a ser 4 vezes superior.
Se eu fosse escolher um framework para essa questão, faria com Spring e exportaria os serviços RMI.
Com o Spring também será simples você adicionar suporte à JMS, camada de infra-estrutura para possíveis processamentos de forma assíncrona, quando se está trabalhando com diversos pontos ao mesmo tempo.
Poderá controlar as transações de forma declarativa, via AOP de forma não intrusiva e se quiser adicioanar maior controle / segurança, pode fazer uso da camada Acegi, que o framework suporta muito bem.
[quote=petter]Dá uma olhada em JSP + Servlet + BD.
Se preferir pode utilizar algum framework também.[/quote]
Petter,
O desenvolvimento esta indo por esse caminho mesmo: jsp/servlet (Jakarta Tomcat) + BD
Chamadas com urls para inserir e consultar.
Kenobi,
Como disse acima, eh java puro!!! nao vai ter nem php no servidor, soh jakarta tomcat mesmo!
Existia a hipotese de instalar o Axis, mas achei, segundo opnioes de varios colegas (incluindo aqui no forum) e de testes que o XML eh muito pesado (volume de dados) para essa aplicação (ateh q me convença o contrario hehehe)… e ainda como vc mesmo disse: alem do tamanho tem os parses de xmls, tomaria processamento desnecessario.
Mas tah beleza, vou procurar pelos RMI, Spling, JMS, AOP, Acegi, pois nao conheço nenhum, assim poderei comparar com a atual escolha.
Alguma dica de material? tipo apostila ou documentacao tecnica?