Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB 02 Camadas de software Martin Fowler afirma que a criação de camadas é uma das técnicas mais comuns que os projetistas usam para quebrar a complexidade de um sistema de software. Para ele a camada em um nível mais alto usa os serviços disponibilizados pela camada imediatamente inferior, mas esta ignora a existência da camada mais alta. Além disso, cada camada normalmente, esconde suas camadas mais baixas das camadas acima. Vantagens em dividir sistemas em camadas: - Você pode compreender uma única camada como um todo coerente, sem saber muito sobre as outras camadas. - Você pode substituir uma camada por implementações alternativas dos mesmos serviços básicos. - Você minimiza as dependências entre as camadas. - Camadas são bons lugares para padronização. - Uma mesma camada pode ser usada por muitos serviços nos níveis mais altos Arquitetura de duas camadas Os sistemas cliente-servidor se utilizam da arquitetura de duas camadas. Nesses sistemas, os clientes, aplicações desktop, desenvolvidas em ambientes como Delphi, mantinham a lógica de apresentação e do negócio (domínio), enquanto a lógica dos dados ficava no servidor, geralmente um SGBD relacional. Opcionalmente, parte da lógica do negócio poderia ser implementada no lado do servidor, com a criação de procedimentos desenvolvidos no próprio SGBD através de linguagens como a PL-SQL da Oracle. Para aplicações de pequeno porte, essa arquitetura se apresentava bastante eficaz, contudo, para 1 aplicações corporativas, apresentava enormes problemas de manutenção e disponibilização. Imagine que deva ser feita uma alteração em um módulo de geração de relatórios, uma vez feita a alteração na lógica do negócio, esta deve ser propagada em todos os clientes para que tenha o efeito desejado. Se essa aplicação é executada em dez clientes, o processo é relativamente rápido, mas, se for executada em mil, a possibilidade de haver clientes como a versão errada é bastante significativa. Arquitetura de três camadas A solução encontrada para solucionar o problema do acoplamento da apresentação com o negócio foi à divisão em três camadas. Para Martin Fowler teríamos: - Lógica de Apresentação: A lógica de apresentação entre o usuário e o software. As responsabilidades primárias da camada de apresentação são exibir informações para o usuário e traduzir comandos do usuário em ações sobre a camada de domínio e a camada de dados. - Lógica de Negócio: A lógica de domínio, também chamada de lógica de negócio, consiste na inteligência da aplicação, isto é, aquilo que os stakeholders esperam que a aplicação faça. Ele envolve cálculos baseados nas entradas e em dados armazenados, validação de quaisquer dados provenientes da camada de apresentação e a compreensão exata de qual lógica de dados executar, dependendo dos comandos recebidos da apresentação. - Lógica de Camada de Dados: Consiste, na maioria das vezes, no armazenamento dos dados persistentes da aplicação em uma banco de dados. Layer x Tier É comum encontrarmos nas traduções do inglês para português a tradução de Layer, como de Tier como camadas; o que vai diferenciá-las é que uma arquitetura three-tier possui uma separação física entre as camadas e uma three-layer tem uma separação lógica entre as camadas. Aplicações Web com Java Primeiramente, é importante definir o que vem a ser uma aplicação web: Segundo Kurniawan, um aplicativo web é um web site cujos conteúdos 2 são gerados dinamicamente antes de serem enviados ao navegador do cliente. Para o desenvolvimento de aplicações web com Java, teremos a plataforma Java Enterprise Edition, que disponibiliza uma série de tecnologias que visam suprir as mais diversas necessidades dos desenvolvedores quanto à geração de conteúdo dinâmico. Dentre as especificações disponíveis podemos citar como sendo as principais: - Servlet. - JavaServer Pages – JSP. - A Standard Tag Library for JavaServer Pages. - JavaServer Faces. O Web Container (Java Application Servers) As aplicações web desenvolvidas em Java devem ser disponibilizadas para os clientes em um ambiente denominado Web Container. Basicamente, podemos considerá-lo como um servidor web contendo uma implementação capaz de tratar e manipular Servlets. Esse container é responsável pelo ciclo de vida dos componentes Web (inicialização, chamada, destruição...). Podemos citar como principais servidores de aplicação Java disponíveis no mercado: - JBoss Application Server. - Apache Tomcat. - Jetty. - WebLogic Server. - GlassFish Application Server. Cada servidor tem uma estrutura de organização interna das aplicações web nele disponibilizadas, tal estrutura é descrita na documentação do servidor e define como devem ser dispostos os arquivos físicos da aplicação de modo apropriado. Arquitetura das aplicações Web Java Apache Tomcat é um Software livre que atua como servidor de aplicações Java com suporte as tecnologias Servlet e JSP. Apesar de suportar a arquitetura JEE, não suporta EJBs. Totalmente escrito em Java; dessa forma precisa somente da JRE para ser executado. GlassFish é um servidor de aplicação open source liderado pela Sun Microsystems para a plataforma Java EE. Assim como o Tomcat 3 também é um software livre. GlassFish suporta todas as especificações da API Java EE. Seu container de Servlets utiliza uma variante do Apache Tomcat. O NetBeans IDE Ambiente (software) multiplataforma de desenvolvimento integrado (IDE) gratuito e de código aberto para desenvolvedores de software nas linguagens Java, C, C++, PHP, Groovy, Ruby, entre outras. A IDE oferece aos desenvolvedores ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais, Web e móveis multiplataformas. Java Servlet Um Servlet é uma classe Java que pode ser automaticamente carregada em e executada por um servidor web especial. Esse servidor web cliente de Servlet é chamado de um contentor Servlet, que também era chamado de uma máquina Servlet. (BUDI KURNIAWAN, 2002, pág. 5). Por que usar Servlets? Por serem basicamente classes Java, contam com todas as vantagens dessa linguagem; sendo uma tecnologia: Madura, Eficiente, Robusta, Segura, Independente de navegador e Multiplataforma. Ciclo de vida do Servlet 4
Compartilhar