Arquitetura de um sistema de segurança

Caríssimos,

Gostaria de pedir suas opiniões a respeito da arquitetura de um sistema de segurança que estou planejando.

Descrição:

O sistema necessita possuir uma arquitetura distribuída baseada em vários clientes e um servidor. Existem dois tipos de clientes: fixo e móvel. O cliente fixo deve ser executado em uma plataforma Windows, utilizando um PC comum. O cliente remoto deve ser executado em um smartphone com Windows Mobile e/ou Windows CE, que possui disponível somente a configuração CLDC (até onde pude verificar). Em ambos os tipos de clientes, será necessária realizar a comunicação com um grupo de DLL’s que dará acesso a um conjunto de dispositivos conectados via USB ou porta paralela. Para este aspecto, pude verificar que a biblioteca JNA (https://jna.dev.java.net) pode ser utilizada (ao menos no cliente fixo).

Problemas:

Qual seria a melhor abordagem a ser utiliza? WEB ou Swing? Se optar pela WEB, talvez a JNA possa ser utilizada através de applets assinados, mas até onde sei no cliente móvel os applets não estão disponíveis, pois a configuração é a CLDC. Então, seria melhor partir para desenvolver uma aplicação embarcada, mas quais tecnologias poderiam ser utilizadas para viabilizar a integração?

Desde já agradeço as sugestões.

Abraço,
Igor.


[quote=igorvalente]Caríssimos,

Gostaria de pedir suas opiniões a respeito da arquitetura de um sistema de segurança que estou planejando.

Descrição:

O sistema necessita possuir uma arquitetura distribuída baseada em vários clientes e um servidor. Existem dois tipos de clientes: fixo e móvel. O cliente fixo deve ser executado em uma plataforma Windows, utilizando um PC comum. O cliente remoto deve ser executado em um smartphone com Windows Mobile e/ou Windows CE, que possui disponível somente a configuração CLDC (até onde pude verificar). Em ambos os tipos de clientes, será necessária realizar a comunicação com um grupo de DLL’s que dará acesso a um conjunto de dispositivos conectados via USB ou porta paralela. Para este aspecto, pude verificar que a biblioteca JNA (https://jna.dev.java.net) pode ser utilizada (ao menos no cliente fixo).

Problemas:

Qual seria a melhor abordagem a ser utiliza? WEB ou Swing? Se optar pela WEB, talvez a JNA possa ser utilizada através de applets assinados, mas até onde sei no cliente móvel os applets não estão disponíveis, pois a configuração é a CLDC. Então, seria melhor partir para desenvolver uma aplicação embarcada, mas quais tecnologias poderiam ser utilizadas para viabilizar a integração?

Desde já agradeço as sugestões.

Abraço,
Igor.[/quote]

Bom ja que voce vai usar servidor de aplicação por ser distribuida eu partiria pra uma camada WEB pra dispositivo fixo e no movel (aplicacao JME+rmi)

Olá boneazul,

Desde a postagem da mensagem já pensei em algumas alternativas.

Sobre a configuração fixa, estou com a mesma opinião que a sua (estou pensando em utilizar o seam framework).

Sobre a configuração móvel, estava pensando em fazer a comunicação através de web services.

O que você acha?

[quote=igorvalente]Olá boneazul,

Desde a postagem da mensagem já pensei em algumas alternativas.

Sobre a configuração fixa, estou com a mesma opinião que a sua (estou pensando em utilizar o seam framework).

Sobre a configuração móvel, estava pensando em fazer a comunicação através de web services.

O que você acha?[/quote]

O seam é bacana viu …ja trabalhei com ele…e ta virando referencia MVC assim como o jboss AS…atualmente trabalho com VRaptor que acho bem mais legal…e ate mais simples que a maioria das coisas no Seam…ai vai de voce brincar nos dois pra sentir a diferença…

Cara eu tenho um programa rodando java pra JME que trabalha com RMI pra pedido…ai depende do numero de acessos…se voce partir pra web service tem que lembrar que o seus dispositivos móveis tem que ser no minimo novos segundo a especificação jme 1.0 ou 2.0(que tem outras api embutidas) isso te barra na versao do dispositivo movel…senao ja te adianto voce faz e depois de pronto descobre que o que implementou não vai funcionar em outros aparelhos…por isso ve a fundo quais aparelhos moveis voce vai usar…estuda bem qual API eles suportam ai voce ve qual a melhor solução…

Caro boneazul,

A respeito da configuração móvel, vou precisar utilizar umas dll’s do próprio equipamento. Por este motivo, pensei que a melhor solução seria um web service, pois provavelmente este cliente será desenvolvido em C++/C#.

Entretanto, poderia ver a possibilidade de fazer isso com JNA (será que rola no jme?), seguindo a sua sugestão para a comunicação. Você poderia me passar um trecho do seu programa que permita ver como funciona essa comunicação?

Obrigado!