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 1
Apresentação Sumário de Tópicos 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 2
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) 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 3
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) 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) 4
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) Plataformas Proprietárias (Exemplos) Quem não é? Cold Fusion Zope Lotus Notes 5
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á?) 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 ) 6
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. 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. 7