SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
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
   –   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




                                               2
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




                                                             3
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)




                                                                     4
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




                                                                       5
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”)




                                                             6
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.




                                                                           7

Más contenido relacionado

La actualidad más candente

Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHPledsifes
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
 
Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxHelder da Rocha
 
TDC 2010: Ambiente de Integração Contínua
TDC 2010: Ambiente de Integração ContínuaTDC 2010: Ambiente de Integração Contínua
TDC 2010: Ambiente de Integração ContínuaHelder da Rocha
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesRafael Ponte
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoEduardo Bregaida
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)andreluizlc
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Douglas Roeder
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 

La actualidad más candente (20)

Apresentação JSF
Apresentação JSFApresentação JSF
Apresentação JSF
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Java web
Java webJava web
Java web
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
Conexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao AjaxConexão Java 2006: Introdução ao Ajax
Conexão Java 2006: Introdução ao Ajax
 
TDC 2010: Ambiente de Integração Contínua
TDC 2010: Ambiente de Integração ContínuaTDC 2010: Ambiente de Integração Contínua
TDC 2010: Ambiente de Integração Contínua
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
JavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em DesenvolvimentoJavaServer Faces Produtividade em Desenvolvimento
JavaServer Faces Produtividade em Desenvolvimento
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Aula 8 php (intro, get e post)
Aula 8   php (intro, get e post)Aula 8   php (intro, get e post)
Aula 8 php (intro, get e post)
 
ObjectDB
ObjectDBObjectDB
ObjectDB
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01Palestra Ruby on Rails SETA 2008/01
Palestra Ruby on Rails SETA 2008/01
 
Web Services
Web ServicesWeb Services
Web Services
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
1 jdbc
1 jdbc1 jdbc
1 jdbc
 

Similar a Técnicas de Programação para a Web

Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasSusana Oliveira
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaElvis Fusco
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise EditionDaniel Arndt Alves
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 

Similar a Técnicas de Programação para a Web (20)

Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
2006 - ASP.NET.ppt
2006 - ASP.NET.ppt2006 - ASP.NET.ppt
2006 - ASP.NET.ppt
 
Introdução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticasIntrodução ao desenvolvimento de páginas web estáticas
Introdução ao desenvolvimento de páginas web estáticas
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Ria
RiaRia
Ria
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 

Más de Luiz Cláudio Silva

Servindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemServindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemLuiz Cláudio Silva
 
Desenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonDesenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonLuiz Cláudio Silva
 
Ensinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonEnsinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonLuiz Cláudio Silva
 
Python na Google App Engine (v3)
Python na Google App Engine (v3)Python na Google App Engine (v3)
Python na Google App Engine (v3)Luiz Cláudio Silva
 
Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Luiz Cláudio Silva
 
Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Luiz Cláudio Silva
 
Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Luiz Cláudio Silva
 
Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Luiz Cláudio Silva
 
Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Luiz Cláudio Silva
 
Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Luiz Cláudio Silva
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwareLuiz Cláudio Silva
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App EngineLuiz Cláudio Silva
 

Más de Luiz Cláudio Silva (17)

Servindo Aplicações Python na Nuvem
Servindo Aplicações Python na NuvemServindo Aplicações Python na Nuvem
Servindo Aplicações Python na Nuvem
 
Usando BDs NoSQL com Python
Usando BDs NoSQL com PythonUsando BDs NoSQL com Python
Usando BDs NoSQL com Python
 
Computacao em Nuvem
Computacao em NuvemComputacao em Nuvem
Computacao em Nuvem
 
Desenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com PythonDesenvolvendo Aplicações Web com Python
Desenvolvendo Aplicações Web com Python
 
Ensinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com PythonEnsinando Computação e Fazendo Ciência com Python
Ensinando Computação e Fazendo Ciência com Python
 
Python na Google App Engine (v3)
Python na Google App Engine (v3)Python na Google App Engine (v3)
Python na Google App Engine (v3)
 
Usando Python na Google App Engine v2
Usando Python na Google App Engine v2Usando Python na Google App Engine v2
Usando Python na Google App Engine v2
 
Integrando Python e JavaScript
Integrando Python e JavaScriptIntegrando Python e JavaScript
Integrando Python e JavaScript
 
Apresentando AngularJS
Apresentando AngularJSApresentando AngularJS
Apresentando AngularJS
 
Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3Praticas Ágeis de Desenvolvimento de Software v3
Praticas Ágeis de Desenvolvimento de Software v3
 
Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre Computação em Nuvem, Padrões Abertos e Software LIvre
Computação em Nuvem, Padrões Abertos e Software LIvre
 
Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?Já ouviu falar em Extreme Programming?
Já ouviu falar em Extreme Programming?
 
Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2Praticas Ágeis de Desenvolvimento de Software v2
Praticas Ágeis de Desenvolvimento de Software v2
 
Python na Nuvem
Python na NuvemPython na Nuvem
Python na Nuvem
 
Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)Extreme Programming (Agile Tour 2011)
Extreme Programming (Agile Tour 2011)
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de Software
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App Engine
 

Técnicas de Programação para a Web

  • 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 1
  • 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 2
  • 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 3
  • 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) 4
  • 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 5
  • 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”) 6
  • 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. 7