UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Aplicações em camadas
Modelo de 2 camadas No início da utilização do modelo Cliente/Servidor, as aplicações foram desenvolvidas utilizando-se um modelo de desenvolvimento em duas camadas. Neste modelo, um programa, normalmente desenvolvido em um ambiente de desenvolvimento, como o Visual Basic, Delphi ou Power Builder, é instalado em cada Cliente. Este programa acessa dados em um servidor de Banco de dados.
Modelo de 2 camadas
Modelo Cliente/Servidor O cliente é quem acessa; O servidor é quem é acessado.
Clientes Clientes: Tem-se por definição de cliente; àquele que acessa algo ou alguém, eles são: Navegadores de internet Browser. Firefox, Chrome e Opera (não considero o IE um navegador) têm como finalidade acessar à internet a qual esta espalhada ao redor do mundo. Clientes de Email: Thunder Bird, MS Outlook entre outros. Têm como finalidade de acessar os serviços de email, (Gmail, Igmail, Yahoomail e etc.). Programas de Chat. Para se existir um chat (MSN, ICQ, Jabber, Gtalk) tem que se existir uma entidade que forneça o serviço Servidor e os programas que são usados para acessar tais serviços também são clientes.
Servidores Servidores: Por definição são aqueles que são acessados ou requisitados, na classe de servidores temos: Servidores Web. Tanto pode ser uma máquina dedicada a este fim ou pode ser um aplicativo (programa) destinado a este fim; o apache, por exemplo, que pode coexistir ou não com outros aplicativos servidores na mesma máquina. Banco de Dados. Os programas como Oracle, MYSQL entre outros são programa que armazenam grande quantidade de dados organizando-os de forma que os programas clientes possam acessar esta base de dados de uma forma organizada.
O Modelo de desenvolvimento em duas camadas No modelo de duas camadas, temos um programa que é instalado no Cliente, programa esse que faz acesso a um Banco de dados que fica residente no Servidor de Banco de dados.
O Modelo de desenvolvimento em duas camadas No modelo de 2 camadas, a aplicação Cliente é responsável pelas seguintes funções: Apresentação Lógica do Negócio Já o servidor é responsável por: Armazenar os dados
Apresentação O Código que gera a Interface visível do programa, faz parte da aplicação Cliente. Todos os formulários, menus e demais elementos visuais, estão contidos no código da aplicação Cliente. Caso sejam necessárias alterações na interface do programa, faz-se necessária a geração de uma nova versão do programa, e todos os computadores que possuem a versão anterior, devem receber a nova versão, para que o usuário possa ter acesso as alterações da interface.
Apresentação - Problemas Uma simples alteração de interface, é suficiente para gerar a necessidade de atualizar a aplicação, em centenas ou milhares de computadores. O gerenciamento desta tarefa, é algo extremamente complexo e caro.
Lógica do Negócio As regras que definem a maneira como os dados serão acessados e processados, são conhecidas como "Lógica do Negócio". Fazem parte das Regras do Negócio, desde funções simples de validação da entrada de dados, como o cálculo do digito verificador de um CPF, até funções mais complexas, como descontos escalonados para os maiores clientes, de acordo com o volume da compra, legislação fiscal, escrita contábil, etc.
Lógica do Negócio - Problemas Qualquer alteração nas regras do negócio, é suficiente para gerar a necessidade de atualizar a aplicação, em centenas ou milhares de computadores. O gerenciamento desta tarefa, é algo extremamente complexo.
Modelo de 3 camadas (3-tier) Como uma evolução do modelo de 2 camadas, surge o modelo de três camadas. A idéia básica do modelo de 3 camadas é: Retirar as Regras do Negócio do cliente e centralizá-las em um determinado ponto, o qual é chamado de Servidor de Aplicações.
Modelo de 3 camadas (3-tier) Modelo em três camadas, derivado do modelo 'n' camadas, recebe esta denominação quando um sistema cliente-servidor é desenvolvido retirando-se a camada de negócio do lado do cliente. O desenvolvimento é mais demorado no início comparando-se com o modelo em duas camadas pois é necessário dar suporte a uma maior quantidade de plataformas e ambientes diferentes.
Modelo de 3 camadas (3-tier) Camada de Apresentação Camada de Negócios Camada de Dados
Camada de Apresentação É a chamada GUI (Graphical User Interface), ou simplesmente interface. Esta camada interage diretamente com o usuário, é através dela que são feitas as requisições como consultas, por exemplo.
Camada de Negócio Também chamada de Lógica empresarial, Regras de negócio ou Funcionalidade. É nela que ficam as funções e regras de todo o negócio. Inexiste uma interface para o usuário e seus dados são voláteis, ou seja, para que algum dado seja mantido deve ser utilizada a camada de dados.
Camada de Dados A terceira camada é definida como o repositório das informações e as classes que a manipulam. Esta camada recebe as requisições da camada de negócios e seus métodos executam essas requisições em um banco de dados. Alterando o banco de dados alteraria apenas as classes da camada de dados, e o restante das camadas não seriam afetados por essa alteração.
Modelo de 3 camadas (3-tier)
Modelo de 4 camadas (ou 3/4) Como uma evolução do modelo de três camadas, surge o modelo de quatro camadas. A idéia básica do modelo de 4 camadas, é retirar a apresentação do cliente e centralizá-las em um determinado ponto, o qual na maioria dos casos é um servidor Web. Com isso o próprio Cliente deixa de existir como um programa que precisa ser instalado em cada computador da rede. O acesso a aplicação, é feito através de um Navegador, como o Internet Explorer, Firefox, Opera, Chrome, etc.
Modelo de 4 camadas (ou 3/4)
Modelo de 'n' camadas (n-tier) Um programa de aplicação em n camadas é um aplicativo desenvolvido de forma a ter várias camadas lógicas. Cada camada é auto-contida o suficiente de forma que a aplicação pode ser dividida em vários computadores em uma rede distribuída.
Modelo de 'n' camadas (n-tier) A forma mais comum da arquitetura é a aplicação em três camadas (3-Tier), comumente usada em aplicações web. Cada camada da arquitetura é normalmente mantida em um servidor específico para tornarse mais escalonável e independente das demais. Com o mesmo objetivo são utilizadas tecnologias de middleware como, por exemplo, CORBA, COM+/DCOM, RMI ou Web Services.
Modelo de 'n' camadas (n-tier) Esta arquitetura tem como características: Baixos custos de disponibilização; Baixos custos na mudança da base de dados; Baixos custos na mudança da lógica de negócios; Eficiente armazenamento e reutilização de recursos.
Modelo de 'n' camadas
Padrão Camadas (Padrão Layers) Problema Imagine que esteja projetando um sistema cuja característica principal é uma mistura de assuntos de alto nível com assuntos de baixo nível, em que os assuntos de alto nível usam os assuntos de baixo nível. A parte de baixo nível está frequentemente perto do hardware A parte de mais alto nível está frequentemente perto do usuário O fluxo de comunicação tipicamente consiste de pedidos fluindo do alto para o baixo níveis As respostas andam na direção contrária