Projeto Supervisionado no
Desenvolvimento de Aplicações
Profissionais na Web
Servidores
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores
– Histórico
– Conceitos básicos
• Design Pattern
• Camadas
• MVC
– Servidores HTTP
– Padrão JEE
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Histórico
– Conteúdo estático ( Web 1.0 )
• Apenas páginas Web estáticas
– Texto estático, link, imagens, ... .
• Servidores Web eram praticamente servidores de arquivos
– Contexto era traduzido em um diretório no disco
• Conteúdo não era separado da apresentação
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Histórico
– Conteúdo dinâmico ( Web 2.0 )
• “Scripts” capazes de gerar conteúdo dinamicamente a partir do processamento de dados
• Aplicações complexas
– Demandaram a criação de novas funcionalidades nos servidores
» Manutenção de estado das aplicações
» Performance
– Arquiteturas mais complexas
» Maior número de componentes de software envolvidos
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Padrões de Projeto
– Padrões de projeto são uma descrição sobre como objetos e classes interagem para
resolver um problema recorrente.
• É um modelo abstrato que pode ser aplicado a vários contextos diferentes
• Servem como uma maneira padronizada de “conversar” sobre o design dos projetos
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Padrão de Camadas
–
–
–
–
Separa um sistema em diversas camadas
Cada camada é responsável por uma funcionalidade específica
Cada camada só pode se comunicar com as camadas vizinhas
Interface entre as camadas é bem definida
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Padrão de Camadas
– Projeto Web é geralmente divido nas seguintes camadas:
• Camada de Apresentação
– Camada que cuida da interface com o usuário
» Dividido em Cliente ( Browser ) e Lógica de Apresentação ( muitas vezes no servidor )
• Camada de Aplicação
– Busca / Recupera os dados a partir da camada de dados, os processa e envia para a camada de
apresentação
» Servidor Web e scripts/código/classes de processamento
» Divido em Lógica de negócios (Business Logic Layer - BLL) e Acesso a Dados ( Data Access
Layer - DAL )
• Camada de Dados
– Fonte de dados
» Banco de dados
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Padrão MVC ( Model , View, Controller )
– Esse padrão atesta que o Modelo ( Model ) deve estar separado da Apresentação (
View ) e quem faz a coordenação entre os dois é o Controlador
• Modelo : Modelo de dados da aplicação e toda a sua manipulação
• Apresentação : Como os dados processados são apresentados ao usuário
• Controlador: Coordena a interação entre os dois, traduzindo dados, verificando quando
dados são atualizados a partir do modelo, assim atualizando a apresentação ou capturando
dados informados na apresentação e enviando ao modelo
– Essa separação garante independência entre a lógica e os dados do sistema e sua
representação para o usuário
• Mesmo dados podem ser visualizados como tabela, como gráfico de barras ou como texto.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores HTTP
– São aplicações que proveem funcionalidades e serviços padronizados para uma
aplicação web. Dentre eles estão ( nem todos têm ) :
• Tratam requisições HTTP
– Fazem o tratamento básico das requisições
• Proxy reverso / Host virtual
– Possibilita que várias aplicações web executem em uma mesma máquina
• Cache
– Fazem cache de respostas para responder rapidamente a clientes que queiram os mesmos
recursos
• Sessão de usuário
– Controlam as sessões de usuário que podem ser usadas para guardar estados das aplicações
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores HTTP ( Exemplos )
– Apache
• Proxy Reverso
• Processa scripts como PHP e Python
• Serve páginas estáticas
– NGINX
• Proxy Reverso
• Balanceamento de Carga
• Serve páginas estáticas
– Node.JS
• Processa scripts em JavaScript
– Precisa de scripts para fazer funcionalidades básicas como servir páginas estáticas
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores JEE
– JEE é o padrão Java para Aplicações Web ( Java Enterprise Edition )
• Multi-camadas
• Distribuidas
– Define
• Estrutura do projeto
• Conjunto de Objetos, Interfaces e Serviços
–
–
–
–
–
–
–
–
RMI
E-mail
JMS
Web Services
Servlets
Conectores
JSP/JSF ( Java Server Pages / Java Server Faces )
Acesso a Dados
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores JEE
– Como JEE é um padrão, há várias implementações disponíveis
• Virtualmente, uma aplicação JEE pode ser instalada em qualquer um dos servidores que
sigam o padrão JEE.
– Servidores disponíveis
•
•
•
•
•
Apache Tomcat
Jetty
Jboss
Oracle Weblogic
Glassfish
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
• Servidores JEE
– Servlet
• É uma Classe/Interface definida pelo padrão JEE que tem por objetivo permitir que uma
aplicação Web possa “estender” as capacidades de um Servidor Web JEE
• Ela é a classe responsável por atender a requisições
– Podem ser vários tipos de requisição
– O uso mais comum é atender à requisições HTTP ( usando a classe HttpServlet )
– http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web
Download

Apresentacao_Servidor_INF1802