Buscar

PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB AULA 02

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

Continue navegando