Técnicas de Programação para a Web

7
1 Técnicas de Programação para a Web Luiz Cláudio Silva Novembro de 2005 Apresentação Objetivos Gerais Identificar os diversos modelos de funcionamento de uma aplicação Web Citar as caracterísitcas de uma aplicação Web, suas vantagens e desvantagens Utilizar HTML, JavaScript e CSS na criação de páginas Utilizar recursos básicos de Servlets para a criação de aplicações Web Utilizar recursos básicos de JSP para a criação de aplicações Web Utilizar o modelo MVC 2 para a criação de aplicações Web

Transcript of Técnicas de Programação para a Web

Page 1: Técnicas de Programação para a Web

1

Técnicas de Programação para a Web

Luiz Cláudio SilvaNovembro de 2005

Apresentação

• Objetivos Gerais

– Identificar os diversos modelos de funcionamento de uma aplicação Web

– Citar as caracterísitcas de uma aplicação Web, suas vantagens e desvantagens

– Utilizar HTML, JavaScript e CSS na criação de páginas– Utilizar recursos básicos de Servlets para a criação de

aplicações Web– Utilizar recursos básicos de JSP para a criação de

aplicações Web– Utilizar o modelo MVC 2 para a criação de aplicações Web

Page 2: Técnicas de Programação para a Web

2

Apresentação

• Sumário de Tópicos– Conceitos Gerais sobre Aplicações Web– Criação de Páginas (revisão)– Servlets– JSP– Modelo MVC 2

• Metodologia– Aula expositiva

– Prática dirigida

Apresentação

• Infra-estrutura– Java (J2SE SDK)– Tomcat – HSQLDB (drive JDBC)

– Editores de texto

• Avaliação– Trabalho Final

Page 3: Técnicas de Programação para a Web

3

Conceitos Gerais

• Funcionamento da Web

– Sistema distribuído: clientes e servidores– Protocolo definido: HTTP (aplicação TCP/IP)– Modelo de comunicação síncrono: requests e responses– Tipo básico de arquivo: HTML (JavaScript ? CSS ? XHTML

?)– Outros tipos de arquivos: texto e binários (MIME)

– Organização hierárquica de arquivos (diretórios)

Conceitos Gerais

• Páginas Estáticas

– HTML, JavaScript, CSS e recursos de animação (Flash, Applets, ActiveX e outros)

– Conteúdo gerado diretamente de arquivos armazenados– Páginas estáticas ou dinâmicas (DHTML) ?– 2 camadas: navegador e servidor HTTP

Page 4: Técnicas de Programação para a Web

4

Conceitos Gerais

• Páginas Dinâmicas (Integração por CGI)

– HTML, JavaScript, CSS e recursos de animação (Flash, Applets, ActiveX e outros)

– Conteúdo gerado por chamadas a programas executáveis ou interpretados utilizando CGI (Common Gateway Interface)

– Programas executáveis: C, C++, outros– Programas interpretados: UNIX Shell (bahs, ksh, etc.), Perl,

Python, Ruby, outros– 2 ou 3 camadas: navegador, servidor HTTP e servidor BD

(nem sempre)

Conceitos Gerais

• Páginas Dinâmicas (Pré-processamento pelo Servidor HTTP)

– HTML, JavaScript, CSS e recursos de animação (Flash, Applets, ActiveX e outros)

– Conteúdo gerado pelo processamento de arquivos “mistos”: HTML, JavaScript, CSS e, também, linguagem de programação (código fonte) e/ou Server-Side Includes (SSI)

– Funcionamento: chamadas a interpretadores ou uso de extensões do servidor HTTP (CGI “encapsulado”)

– Linguagens mais usadas: ASP, PHP, JSP– 2 ou 3 camadas: navegador, servidor HTTP e servidor BD (nem

sempre)

Page 5: Técnicas de Programação para a Web

5

Conceitos Gerais

• Páginas Dinâmicas (Servidor HTTP + Servidor de Aplicação)

– HTML, JavaScript, CSS e recursos de animação (Flash, Applets, ActiveX e outros)

– Conteúdo gerado por chamadas a servidores de aplicação (padrão definido pelo fabricante)

– Padrões mais utilizados: Java Servlets, DLL (MS IIS) e MS .Net– 3 ou 4 camadas: navegador, servidor HTTP, servidor de aplicação

e servidor BD (nem sempre)– Alguns servidores de aplicação também atuam como servidores

HTTP (ou vice-versa)– Pode haver uma camada a mais: servidor de objetos distribuídos

(Java RMI, J2EE EJB, MS DCOM, MS .Net, CORBA)

Conceitos Gerais

• Plataformas Proprietárias (Exemplos)

– Quem não é ?– Cold Fusion– Zope– Lotus Notes

Page 6: Técnicas de Programação para a Web

6

Conceitos Gerais

• Vantagens das Aplicações Web

– Manutenção e administração centralizada– Liberdade de tráfego por firewalls: porta 80 TCP– Pouco processamento do lado do cliente (será ?)– Pouca exigência de padronização no cliente (será ?)

Conceitos Gerais

• Desvantagens das Aplicações Web

– Interface “pobre” (será ?)– Dificuldade em controlar o contexto e a navegação– Muito processamento do lado do servidor: máquinas mais

caras– Aumento de tráfego na rede (comparado a aplicações

“desktop”)

Page 7: Técnicas de Programação para a Web

7

Conceitos Gerais

• Balanço Final

– Web: tecnologia de sucesso (viva Tim Berners-Lee !!!)– Amplamente utilizada: Internet, Intranet, Extranet– Escalável: do web server pessoal até o Google– Padrão para desenvolvimeto de aplicações corporativas

(incentivo dos grandes fornecedores)– Emprego ultrapassando o previsto: configuração de

software, programação de dispositivos, WBEM, WebDAV, Web Services, etc.

Conceitos Gerais

• Web Services

– Modelo aberto para a integração de aplicações (RPC ?)– Infra-estrutura baseada em HTTP: conhecida, extensível

(cabeçalho) e sem problemas com firewalls– Uso de XML para definição dos protocolos– SOAP (Simple Object Access Protocol): troca de mensagens– WSDL (Web Services Description Language): descrição do

funcionamento– UDDI (Universal Description, Discovery and Integration): diretório e

busca– Padrões WS-I (Web Services-Interoperability Organization):

controle de acesso, segurança, BPM, etc.