A Arquitetura de Camadas e muito utilizada para separar responsabilidades em uma aplicacao moderna. Apesar de a ideia da divisao de uma aplicacao em Camadas ter se popularizado nos anos 90, muitos desenvolvedores ainda nao conhecem a tecnica a fundo, boa parte por documentacao ineficiente sobre este Padrao Arquitetural. Junto com a popularizacao da Arquitetura de Camadas, ressurgiu o modelo MVC de desenvolvimento. Este modelo foi criado em Smalltalk e traz simplicidade e coerencia a interfaces. Um problema com a popularizacao simultanea destes dois Padroes Arquiteturais e que estes passaram a ser eternamente confundidos. O objetivo deste breve artigo e mostrar como MVC e Camadas sao conceitos diferentes, que podem ser aplicados em conjunto ou nao. Nota: O termo componente e utilizado aqui para significar qualquer artefato de software. Pode ser substituido por classe, camada, objeto ou mesmo um componente no sentido dado por Component-Based Design (CBD).JAVA PLATFORM ENTERPRISE EDITION APRESENTACAODecorating FilterFront ControllerView helperComposite ViewService to workerDispatcher ViewNEGOCIOBusiness DelegateValue ObjectSession FacadeAggregate EntityValue Object AssemblerValue List HandlerService LocatorINTEGRACAO Data Access ObjectService Activator Oficina de ProgramacaoEstatistica ContextoO mecanismo de movimentacao da camada de apresentacao pedido deve controlar e coordenar o processamento de cada usuario em varias solicitacoes. Tais mecanismos de controle podem ser gerenciados em qualquer forma centralizada ou descentralizada.ProblemaO sistema requer um ponto de acesso centralizado para solicitar a apresentacao de camada de manipulacao de apoiar a integracao dos servicos do sistema, recuperacao de conteudo, gerenciamento de visualizacao e navegacao. Quando o usuario acessa a view diretamente, sem passar por um mecanismo centralizado, dois problemas podem ocorrer: Cada vista e obrigada a fornecer os seus servicos proprio sistema, resultando muitas vezes em duplicado codigo. Ver a navegacao e deixada a vista. Isso pode resultar em visualizar conteudos misturados e navegacao vista.Alem disso, o controle distribuido e mais dificil de manter, ja que as mudancas, muitas vezes, precisam ser feitas em diversos lugares.Forcas Sistema comum de servicos de processamento de concluida por pedido. Por exemplo, o servico de seguranca completa verificacoes de autenticacao e autorizacao. Logico que e melhor tratada em um local central em vez disso e replicado dentro vistas numerosas. existem pontos de decisao com relacao a recuperacao e manipulacao de dados. Varias visoes sao utilizadas para responder as solicitacoes de empresas similares. Um ponto central de contato para tratar uma solicitacao pode ser util, por exemplo, para controle e registro do andamento de um usuario atraves do site. Servicos do sistema e da logica de gestao de exibicao sao relativamente sofisticados.SolucaoUse um controlador como o ponto inicial de contato para tratar uma solicitacao. O controlador gerencia o tratamento do pedido, incluindo os servicos de seguranca invocando como a autenticacao e autorizacao, a delegacao de processamento de negocios, gerenciar a escolha de uma visao adequada, tratamento de erros e gerenciar a selecao de estrategias de criacao de conteudo.O controlador fornece um ponto de acesso centralizado que controla e gerencia a manipulacao de pedido web. Ao centralizar os pontos de decisao e de controlo, o controlador tambem ajuda a reduzir a quantidade de codigo Java, chamada de scriptlets, embutido na pagina JavaServer Pages