Você está na página 1de 49

PROGRAMAÇÃO PARA

WEB

Arquiteturas de Aplicações Web

Ademar Alves Trindade


Arquiteturas de Aplicações
Web
Arquitetura de Sistemas Web

Criação de Camadas

Com o advento da Internet houve um movimento


para separar a lógica de negócio da interface com o
usuário.

A ideia é que os usuários da Web possam acessar


as mesmas aplicações sem ter que instalar estas
aplicações em suas máquinas locais.
Arquitetura de Sistemas Web
Criação de Camadas

Como a lógica do aplicativo, inicialmente contida


no cliente, não reside mais na máquina do
usuário.

O aplicativo é executado em servidores Web com


os quais o navegador Web se comunica e gera o
código HTML para ser exibido no cliente.
Arquitetura de Sistemas Web

Criação de Camadas

Resumindo .....

Trata-se de uma quebra de sistemas de software.


Arquitetura de Sistemas Web
Benefícios
 Facilita a compreensão do software como um
todo;
 Compreensão única de partes de sistemas e
como elas interagem com as demais;
 Permite a independência entre os serviços de
software;
 Facilita a manutenção, substituição e
integração de camadas.
Arquitetura de Sistemas Web

Benefícios
 Reduz o acoplamento entre diferentes partes
de sistemas;
 Permite a definição de padrões;
 Pode-se compartilhar camadas entre software,
serviços, etc.
Arquitetura de Sistemas Web

As três camadas principais


Camada Responsabilidades
Apresentação Fornecimento de serviços;
Exibição de informações;
Tratamento de solicitações do usuário;

Lógica/Negócio O real propósito do sistema;


Ponte entre as camadas de apresentação e
dados;
A camada “inteligente” do sistema;
Camada de Fonte e Comunicação com bancos de dados;
Armazenamento de dados persistentes;
Gerenciamento de Dados
(persistência)
Arquitetura de Sistemas Web

Camada de Apresentação/Visão

 É a chamada GUI (Graphical User Interface), ou


simplesmente interface.
 Esta camada interage diretamente com o usuário
 Oferece conteúdo estático e conteúdo dinâmico
personalizado.
 As classes dessa camada utilizam os serviços
oferecidos pela camada de negócios.
Arquitetura de Sistemas Web

Camada de Negócio/Lógica

 Também chamada de Lógica empresarial,


Regras de negócio ou Funcionalidade.

 É nela onde as funções e regras de todo o


negócio são implementadas.
Arquitetura de Sistemas Web

Camada de Dados/Persistência

 É responsável pela persistência e acesso aos


dados da aplicação.

 Esta camada recebe as requisições da camada


de negócios e seus métodos executam essas
requisições em um banco de dados.
Arquitetura de Sistemas Web

Camada de Dados/Persistência

 Ela isola o resto da aplicação do meio de


armazenamento usado de maneira que, se o
meio de armazenamento for trocado, apenas
as classes desta camada precisarão ser
modificadas ou substituídas.
Arquitetura de Sistemas Web

As 3 principais camadas
 Cada camada resolve e cuida de problemas
específicos;
 Cada camada envolve um componente;
 Cada componente é facilmente identificável;
Arquitetura de Sistemas Web

As 3 principais camadas
 As camadas podem ser implementadas em um
ou mais computadores/servidores;
 A separação e o uso de camadas irá depender
da complexidade da aplicação em questão;
Arquitetura de Sistemas Web

Objetivos da Arquitetura em camadas

Modularidade
dividir a aplicação em módulos tão independentes
quanto possível.

Manutenibilidade
reduzir o custo de manutenção da aplicação.
Arquitetura de Sistemas Web
Objetivos da Arquitetura em camadas

Extensibilidade
permitir que novas funcionalidades sejam
adicionadas sem grande impacto nas já existentes.

Reusabilidade
permitir que classes e componentes sejam reusados
em outros módulos da mesma aplicação ou em
outras aplicações.
Arquitetura de Sistemas Web

As 3 principais camadas
Arquitetura de Sistemas Web
As 3 principais camadas
Faça a correspondência entre as tecnologias Web abaixo e
em quais camadas elas atuam :
1. PHP
2. MySQL
3. HTML
( ) Camada de Apresentação/Visão
( ) Camada Lógica/Negócio
( ) Camada de Gerenciamento de Dados/Persistência
Arquitetura de Sistemas Web
As 3 principais camadas
Faça a correspondência entre as tecnologias Web abaixo e
em quais camadas elas atuam :
1. PHP
2. MySQL
3. HTML
(3) Camada de Apresentação/Visão
(1) Camada Lógica/Negócio
(2) Camada de Gerenciamento de Dados/Persistência
Arquitetura de Sistemas Web
As 3 principais camadas
Faça a correspondência entre as tecnologias Web abaixo e
em quais camadas elas atuam :
1. MySQL
2. CSS
3. JSP
( ) Camada de Apresentação/Visão
( ) Camada Lógica/Negócio
( ) Camada de Gerenciamento de Dados/Persistência
Arquitetura de Sistemas Web
As 3 principais camadas
Faça a correspondência entre as tecnologias Web abaixo e
em quais camadas elas atuam :
1. MySQL
2. CSS
3. JSP
(2) Camada de Apresentação/Visão
(3) Camada Lógica/Negócio
(1) Camada de Gerenciamento de Dados/Persistência
Arquitetura de Sistemas Web

As 3 principais camadas
Camada Tecnologias
Apresentação HTML
CSS
Javascript
Lógica PHP
JSP
Camada de Fonte e MySQL
Gerenciamento de Dados PostgreSQL
Arquitetura de Sistemas Web

Escolhendo onde rodar camadas de software

As camadas podem ser implementadas em:


Clientes.
Servidores.

Próximas Aulas!
Arquitetura de Sistemas Web

Protocolo

Controla e possibilita uma conexão, comunicação


ou transferência de dados entre nós de uma rede.

Próximas Aulas!
Arquitetura de Sistemas Web

As 3 principais camadas
Cliente Servidor de Aplicação

Apres. Armaz.
CompraProduto

<html>
...
</html>
Pedido Item
1 1..*
0..*
1
Especificacao Produto
1 0.. *
Arquitetura de Sistemas Web
As 3 principais camadas
Cliente Servidor
Apresentação Armazenamento
?
<html>
...
</html>

Onde estão as REGRAS DE NEGÓCIO?


Arquitetura de Sistemas Web
As 3 principais camadas
Cliente Servidor Aplicação
Apres. Armaz.
CompraProduto

<html>
...
</html>
Pedido Item
1 1..*
0..*
1
Especificacao Produto
1 0..*
Arquitetura de Sistemas Web

As 3 principais camadas

28
Arquitetura de Sistemas Web

Arquitetura em Java - Fundamentos

JSP  Páginas HTML com código Java embutido

Servlet  Classes Java que rodam em servidores

JDBC  API de acesso a banco de dados em Java


Arquitetura de Sistemas Web

As 3 principais camadas
Cliente Apresentação Servidor Armazenamento

Servlet
CompraProduto

<html>
...
</html> JDBC
JSP
Arquitetura de Sistemas Web

Arquitetura em Java - Fundamentos

JSP  Páginas HTML com código Java embutido.

Servlet  Classes Java que rodam em servidores.

JDBC  API de acesso a banco de dados em Java.


Arquitetura de Sistemas Web

Arquitetura em Java - Fundamentos


1. Cliente solicita um Servlet usualmente após o
preenchimento de um formulário HTML.
2. Servidor interpreta o Servlet na camada de
aplicação.
3. Se necessário, a camada de aplicação se
comunica com a camada de armazenamento
através de JDBC.
Arquitetura de Sistemas Web

Arquitetura em Java - Fundamentos


4. Camada de aplicação redireciona o fluxo para
a camada de apresentação.
5. Servidor constrói uma página de resposta
usando JSP.
6. Servidor retorna a página de resposta.
Arquitetura de Sistemas Web

Arquitetura em Java - Fundamentos


Servidor GlassFish/Tomcat
Cliente
Apresentação Aplicação Armazenamento

<html> CompraProduto
...
</html>

JSF
(formularios) (regras de
(interface SGBD
Aplicação dinâmica) negócio)
Java

Próximas Aulas!
Arquitetura de Sistemas Web

Arquitetura Cliente/Servidor

O termo cliente/servidor refere-se a distribuição


computacional através de muitas plataformas,
que utiliza-se de dois ou mais computadores.
Cliente/Servidor

3
Arquitetura de Sistemas Web

Arquitetura Cliente/Servidor

Para que um computador possa fazer parte da


Web, ele deve estar rodando um software
especial para servidor Web que permita a
manipulação de transações HTTP.
Cliente/Servidor

Cliente Servidor

Próximas Aulas!
Protocolo HTTP
3
Cliente/Servidor

Próximas Aulas!

3
Cliente/Servidor

4
Cliente/Servidor

4
Cliente/Servidor

4
Cliente/Servidor

Próximas Aulas!

4
Cliente/Servidor

Próximas Aulas!

4
Cliente/Servidor

Próximas Aulas!

4
Cliente/Servidor

Próximas Aulas!

4
Arquitetura de Sistemas Web

Servidor Web

Programa de computador responsável por aceitar


pedidos HTTP de clientes, geralmente os
navegadores, e servi-los com respostas HTTP.

Próximas Aulas!
Arquitetura de Sistemas Web

Servidor Web
 Apache Tomcat da Apache

 Internet Information Server (IIS)

 Nginx (engine-ex)

 Google Web Server

 Glassfish
Próximas Aulas!
Arquitetura de Sistemas Web

Servidor Web - Métodos HTTP

Os dois métodos mais utilizados pelo Protocolo


HTTP para comunicação Cliente e Servidor são: GET
e POST.

Próximas Aulas!