Como arquitetar esse sistema?

Ola pessoal. Eu precisava criar um sistema para controle vendedores.
Mas estou perdido como arquiteta esse sistema.

1°) Ideia Fazer uma aplicação swing estilo delphi, ou seja, a aplicação teria as regras de negocio e as regras de apresentação. Mas isso seria inviavel em java… pois daria muito trabalho e ficaria um “merda”…

o que eu estava pensando. separar as regras do negocio da apresentação das informações , mas eu não sei como fazer isso.

eu estou abismado. muita gente fala usa uma servelt como controladora.

Mas como ? eu poderia fazer uma aplicação baseada em web mas com cliente desktop/swing ao inves de jsp ?

e questões como persistencia de dados como analizar ?

Muito obrigado, qualquer informação sera bem vinda.Lembrando to iniciando nisso.

Você pode deixar toda sua regra de negócio no servidor rodando sobre um servidor de aplicação sem problemas.
Você pode usar Swing e para fazer essa comunicação ao servlet, você usa o URLConnection, mas lembre-se, não coloque regras de negócio no seu servlet, apenas o use como Controlador.
Sobre camada de persistência você pode usar o Hibernate, aqui no GUJ tem um tutorial legal para iniciar o seu uso e a documentação do hibernate é muito boa.
Se você tiver um tempo legal para estudar e testar algumas ferramentas, você pode dar um olhada no Xwork da opensymphony, se eu não me engano, ele já implementa boa parte do Controller para você.

tipo eu não tenho muito tempo para estudar não infelizmente.

por exemplo eu tenho o meu JTree quando ele clica em um elemento eu quero que atualiza um JTable…

tipo como eu passaria as informações da view para o controller e depois para o model…

e ai sou de Bauru tb :slight_smile:

opa, mais um de Bauru na área :lol:

Faz um bom tempo que eu não mexo com Swing :oops: , mas acredito que o JTree deva ter um ActionListener para Click (como o evento onClick do Delphi), nesse Listener você chama o servidor passando o seu valor. O Servlet irá capturar esse valor e chamar o modelo. Depois que tiver todos os dados corretos, retorna para a View.

então cara…

eu tava pensando agora esse negocio vai complicar muito assim… vou ter que aprender servlet… mais outras coisas.

eu tava pensando fazer tudo com desktop. mas mesmo assim usar o MVC para separar a view do model… o que acha ?

[quote=“ualex”]então cara…

eu tava pensando agora esse negocio vai complicar muito assim… vou ter que aprender servlet… mais outras coisas.

eu tava pensando fazer tudo com desktop. mas mesmo assim usar o MVC para separar a view do model… o que acha ?[/quote]

quando eu estava brincando com Swing eu fazia desse jeito :wink:

é então… só que eu to enrolado nisso… tipo o model eu fiz com design pattern Observable e a view é um observer. tipo toda vez que ocorrer mudanças no model a view é notificada.

é isso mesmo ?

outra coisa… tipo as view tem uma referencia para o controller né ? uma unica referencia para todas a views ? e quando a view executar um metodo no controller tipo :

controller.execute(String viewName,Object args)

dae esse metodo execute deve saber que model instanciar e executar a regra de negocio e pare onde direcionar a view ?

Ola Ualex,

Voce pode montar esse sistema utilizando o seguinte:

  1. Web services / SOAP: se o sistema for de pequeno porte. Vc pode montar a parte
    do servidor em Java, e o cliente no desktop em Delphi.

  2. RMI: se cliente e servidor forem em java. Muito mais rapido a comunicao do que
    SOAP. Porem o desenvolvimento do cliente é bastante demorado (nem vou colocar
    aqui a possibilidade de EJB).

A vantagem da segunda opcao é que seus clientes poderao rodar Java…sendo assim
Linux e Windows. Sem contar na velocidade de comunicacao. Nessa opcao os dados sao binarios…enquanto o SOAP é atraves de mensagens XML.

Porem se o sistema for de pequeno porte, talvez faze-lo com SOAP seja a melhor opcao. A partir do Delphi 6 já tem cliente SOAP (e servidor também).

Voce precisara pesquisar as seguintes tecnologias:

Web services: SOAP, Jakarta Axis
RMI

Padroes uteis: session facade, business delegate, ServiceLocator.

então eu queria fazer tudo em java.

tipo o banco de dados vai ser firebird. é assim na verdade eu queria fazer o cliente Flash(RIA). só que como agente ta sem tempo resolveu fazer em Java com o SWING. só que eu queria separar a view da logica de nogocio para depois quando for implementar em flash só tem que mudar o cliente as regras de negocio continuam as mesmas.

nesse caso que plataforma eu poderia usar ? eu to ficando louco :wink: quanta coisa…

Se eu tivesse apertado no tempo, com certeza eu faria a parte servidor em Java
e a parte cliente usando Delphi (com SOAP).

Quanto ao Flash RIA, ee eu nao me engano, só o servidor Flash custa lá fora US$ 12 mil.

Se for usar Swing, ele já é MVC.

A necessidade de uma solucao para seu problema, acredito que seja geral. Eu estou pesquisando uma solucao assim já fazem uns 4 meses.

Se optar mesmo por java, comece pelo lado do servidor. Estude o seguinte:

RMI.

HIBERNATE para pesistencia (aceita o Firebird).

Os seguintes padroes: SessionFacade.

No cliente vc. precisara do seguinte:

SWING: Pesquise sobre o Spring RCP; SwingSet, JDNC. veja qual melhor encaixe no seu projeto. Além disso, nao deixe de ver o JGoodies , sobre FormLayout.

Padroes: ServiceLocator e BusinessDelegate.

Quanto aos relatorios…acho Java uma m****. Faca somente em Java as impressoes de formularios (nota fiscal). Os relatorios vc pode fazer a parte, usando Crystal Reports ou até mesmo o Delphi.

Se tiver apressado, contrate uma consultoria para auxiliar o projeto…com certeza vc economizara dinheiro.