Arquitetura de Aplicação

– camada UI(User Interface): Nesta camada vc implementa a interface com usuário. Ex: formulario Cliente, formulario Contas, etc…

– camada de comunicação: Aqui, é implementado a comunicação com as outras camadas do sistema. Por exemplo vc pode definir um ValueObject( objeto genérico que conterá os dados da interface gráfica) que será utilizado pela camada de acesso aos dados. o Value Object pode ser uma interface e pode ser definido uma implementação para cada formulario q vc tenha.

– camada de negocios Nesta camada vc implementa os objetos que encapsularão os dados que serão persistentes(gravados/recuperados do BD). Ex: Cliente, Conta.

– Camada de Acesso aos dados: nesta camada vc implementa os DAOs, que tem a resposabilidade de se comunicar com o banco de dados, através das ‘querys’. Ex: DaoCliente, DaoConta, etc…


Na epoca estavam discutindo que a MVC implementa 1 camada (e não 3….). Eu entendi o conceito (camada de apresentação=MVC) mas como os padrões mudam e hoje existe camada pra tudo queria saber como isso está hoje??… eu li muito sobre o assunto e minha opinião é mais o menos o que essa figura diz…

0
– Camadas == Layers
O padrão que descreve a separação do sistema em camadas é o Layers, publicado em [Busch98] (referências no final). Este padrão mostra uma divisão do sistema em camadas, onde idealmente uma camada conhece e acessa apenas a camada imediatamente inferior, ou no máximo as camadas adjacentes.

– MVC = Model-View-Controller
Padrão usado na implementação do toolkit gráfico do Smalltalk. Uma descrição pode ser encontrada aqui.

Eu acredito que a confusão existe por causa da correspondência numérica que muitas vezes ocorre entre os padrões: MVC e Apresentação/Negócio/Persistência. Então, muitos acham que é a mesma coisa, o que não é verdade.

O padrão MVC, como implementado no Swing, funciona da seguinte maneira:
O componente recebe o input do usuário, interpertando-as; este componente envia ao modelo as alterações causadas pelo input; se o modelo for alterado, este envia uma notificação às views (que também são componentes), que por sua vez solicitam ao modelo os novos dados, para que possam se atualizar. Aqui pode se notar um triângulo, Controlador -> Modelo -> Visualização -> Controlador. Assim, o conceito de separação em camadas não é válido, pois a vizualização acessa diretamente o modelo (isto é, não existe a separação estrita em camadas).

Idealmente, acredito que o MVC faz parte da camada de apresentação (como era no conceito original), e não como divisor de camadas (o que deturpa o conceito de MVC e confunde a separação correta em camadas).

A minha concepção ainda é semelhante (MVC é parte da camada de apresentação), embora o modelo, como dito na discussão, pode ter conceitos distintos.
Acho que o seu diagrama simplifica um pouco o paradigma de arquitetura, e assim sendo, deveria distribuir melhor os componentes de negócio.

Um exemplo é que um web service não concentra suas atividades no modelo de negócio.
É mais uma interface de comunicação com outros sistemas e portanto, faria parte de uma camada chamada “integração”.
O mesmo se daria com códigos como RMI, ou CORBA por exemplo.
DAO’s fariam parte da camada de persistência.
Session Beans fariam parte da camada de negócio, assim como os DTO’s (que fariam parte do Model do MVC).
Porém, Entity Beans fazem parte da camada de persistência. Assim como outras alternativas como LDAP.

Certo?

Arquitetura de sistemas muitas vezes é semelhante a um jogo de xadrez: possui certo nível de subjetividade e muitas vezes, um mesmo problema pode ter diversas soluções com arquiteturas bem distintas e igualmente eficazes. 

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: