Primeira aula da disciplina Programação Dinâmica para Web. Primeiros conceitos sobre Arquitetura de Aplicações web e informações gerais sobre a disciplina.
Prof. Daniel Brandão
• Graduado em Sistemas para Internet
• Especialista em Tecnologias Para Aplicações Web
• Na Informática desde 2003
• Programador Web desde 2006
• Professor em Informática desde 2011
• Professor Universitário desde 2013
• Contatos:
2
/DanielBrandao.com.br
@Daniel85br
professordanielbrandao@gmail.com
Objetivos
Aula 1: Introdução
• Apresentar a disciplina
• Apresentar o conceito de “Arquitetura
de Sistemas Web“
• Demonstrar como a arquitetura de
sistemas Web estrutura a disciplina
• Apresentar o modelo cliente-servidor
• Apresentar os protocolo HTTP e FTP
3
Apresentação
• Foco da disciplina
– Apresentação de algumas das principais
tecnologias utilizadas no desenvolvimento de
sistemas para a Web.
• Aulas teóricas e práticas em laboratório
5
Apresentação
• Ausência em Provas, Final e Presença
– Ausência em Provas:
• O aluno só poderá se ausentar em uma das duas primeiras
atividades (1º ou 2º estágio);
• A presença será obrigatória na prova do 3º estágio;
• Não há provas de reposição de estágio;
– Final:
• Prova Convencional (0 a 10 pontos);
• Todo o conteúdo do semestre;
– Presença
• Limite de faltas: 15 horas (7 aulas);
7
Apresentação
• Unipê Virtual (Ferramenta de Educação a
Distância)
– Material da disciplina (Slides, notas de aula,
indicação de livros, etc.);
– Divulgação e submissão das práticas em
laboratório (exercícios de fixação e de avaliação);
– Ferramenta para comunicação oficial (avisos,
lembretes, divulgação de datas, divulgação de
notas, etc.);
– http://virtual.unipe.br
8
Arquiteturas de Sistemas Web
• Criação de Camadas
– Trata-se de uma quebra de sistemas de software;
– 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;
• Reduz o acoplamento entre diferentes partes de sistemas;
• Permite a definição de padrões;
• Pode-se compartilhar camadas entre software, serviços, etc.;
12
Arquiteturas de Sistemas Web
• As três camadas principais
13
Camada Responsabilidades
Apresentação Fornecimento de serviços;
Exibição de informações;
Tratamento de solicitações do usuário;
Lógica O real propósito do sistema;
Ponte entre as camadas de apresentação
e dados;
A camada “inteligente” do sistema;
Camada de Fonte e
Gerenciamento de Dados
Comunicação com bancos de dados;
Armazenamento de dados persistentes;
Arquiteturas de Sistemas Web
• As três principais camadas
– Cada camada resolve e cuida de problemas
específicos;
– Cada camada envolve um componente;
– Cada componente é facilmente identificável;
– 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;
14
Arquiteturas de Sistemas Web
• Exercício: Faça a correspondência entre as
tecnologias Web abaixo e em quais camadas
elas atuam :
1. SQL Server
2. CSS
3. JSP
( ) Camada de Apresentação
( ) Camada Lógica
( ) Camada de Gerenciamento de Dados
16
Arquiteturas de Sistemas Web
• Exercício: Faça a correspondência entre as
tecnologias Web abaixo e em quais camadas
elas atuam :
1. SQL Server
2. CSS
3. JSP
(2) Camada de Apresentação
(3) Camada Lógica
(1) Camada de Gerenciamento de Dados
17
Arquitetura de Sistemas Web
• Exercício: 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
( ) Camada Lógica
( ) Camada de Gerenciamento de Dados
18
Arquitetura de Sistemas Web
• Exercício: 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
(1) Camada Lógica
(2) Camada de Gerenciamento de Dados
19
Arquiteturas de Sistemas Web
• Tecnologias (por camada) que serão
abordadas no curso
20
Camada Tecnologias
Apresentação HTML
CSS
Javascript
Lógica PHP
Camada de Fonte e
Gerenciamento de Dados
MySQL
PostgreSQL
Arquiteturas de Sistemas Web
• Escolhendo onde rodar camadas de software
– As camadas podem ser implementadas em:
• Clientes;
• Servidores;
21
Arquitetura de Sistemas Web
• Cliente
– Representa uma entidade (hardware, software) que
consome os serviços de outra entidade servidora, em geral
através do uso de uma rede de computadores;
• Servidor
– Sistema de computação centralizada que fornece serviços
para clientes em uma rede de computadores;
– Exemplos de serviços: arquivos, e-mail, software, etc.;
22
Protocolos
• Protocolo
– Convenção ou padrão;
– Controla e possibilita uma conexão, comunicação ou
transferência de dados entre dois sistemas operacionais;
– Exemplos de protocolo:
• HTTP (Hypertext Transfer Protocol) – Protocolo de transferência de
hipertexto;
• FTP (File Transfer Protocol) – Protocolo de transferência de
arquivos;
• POP (Post Office Protocol) – Protocolo de acesso remoto a uma
caixa de e-mail;
25
Protocolos
• Exemplo: O protocolo HTTP
– Hypertext Transfer Protocol
– Trata-se de um protocolo de comunicação;
– Conjunto de padrões e regras que definem e
disciplinam determinadas trocas de informação;
– O protocolo mais comum na Internet;
– Responsável pelo tratamento de pedidos e
respostas entre clientes e servidores na World
Wide Web (www);
26