DESENVOLVIMENTO EM AMBIENTE WEB Desenvolvimento Baseado em XML WWW: World Wide Web • Tecnologia Cliente-Servidor • Inclui mecanismos para: – Download de arquivos – Upload de mensagens – Visualização de múltiplos formatos de arquivos no cliente. PROTOCOLO HTTP REQUISIÇÃO Arquivos RESPOSTA Documentos Web • • • • 1) O cliente requisita a página HTML 2) O servidor envia a página HTML para o Cliente 3) O browser do cliente interpreta a página HTML. 4) Se a página HTML fizer referência a outros arquivos o browser solicita cada arquivo separadamente para o servidor. 1 – get index.html 3 HTML (index.html) 2 – index.html 4 – get img.jpeg 5 –img.jpeg Figura JPEG (img.jpeg) Tecnologias WWW • WWW é o resultado da combinação de várias tecnologias: • TCP/IP: infra-estrutura de rede • Arquitetura cliente/servidor: estratégia para implementação dos serviços • HTTP: Protocolo de aplicação • MIME: padrão de codificação dos dados – Multipurpose Internet Mail Extensions • HTML: padrão de apresentação dos dados – Hypertext Markup Language PROTOCOLO DE APLICAÇÂO PADRONIZADO (HTTP) MIME Programa servidor HTTP 80 PERMANENTEMENTE ATIVO. 80 Servidor Programa cliente WWW (navegador) r Programa cliente WWW (navegador) Cliente Cliente Dados armazenad os HTML HTML HTML HTML OUTROS OBJETOS HTML HTML HTML Internet ou Intranet (REDE TCP/IP) URL: Universal Resource Locator protocolo://host.domínio/arquivo.html Formato Geral da URL Exemplo de URL http://www.pucpr.br/teste.html Idenfica o recurso desejado . www.pucpr.br servidor host teste.html PORTA 80 domínio Isso implica que uma conexão TCP deve ser feita na porta 80, usando o protocolo HTTP. recurso solicitado sistema de arquivos Interface Universal • WWW: Interface Universal para Dados e Aplicações WWW Informações Aplicações Aplicações • Sistemas de Informação – Estáticas – Dinâmicas: • Integração com Banco de Dados • Transações Financeiras – Home Banking – Comércio Eletrônico: B2C e B2B • Interface para outros sistemas – Gerência de Redes – Web Mail – Aplicativos Legados Integração com a base existente Navegador (cliente universal) Base de documentos não estruturados Páginas HTML Servidor Web Bases de sistemas de ERP mainframe Acesso via WWW legacy system Migração de Aplicativos e Sistemas MainFrame Interface e lógica da aplicação anos 70 DownSizing Cliente - Servidor Interface gráfica separada da lógica de aplicação anos 80 Browsers + Objetos Intranet interfaces homogêneas e Integração de Redes MicroBrowsers + Browsers de Voz Novos Meios de Acesso WML/WAP eVoiceXML anos 90 anos 00 Extensões da Tecnologia WWW Concorrentes VoiceXML PHP Facultativas Servlet s Perl JavaScrip t Applets JSP Plug-ins XML CGI HTTP HTM L Sempre presentes AS P WML Tecnologias Básicas • HTTP: – HyperText Transfer Protocol – Protocolo de Comunicação • HTML: – Hypertext Markup Language – Linguagem definida de acordo com SGML • CGI – Commong Gateway Interface HTTP - HyperText Transfer Protocol • Protocolo de aplicação da arquitetura TCP/IP usado para estabelecer a comunicação entre clientes e servidores no ambiente WWW. GET teste.html servidor sistema de arquivos requisita arquivo recebe arquivo codificado em MIME HTTP/1.0 MIME-Version: 1.0 Server: www.pucpr.br Content-Type: text/html <HTML> <BODY> .... </BODY> </HTML> A formatação MIME inclui um cabeçalho que descreve o tipo de conteúdo do documento. No caso de havem imagens ou outros arquivos não texto anexados, o cabeçalho MIME descreve também o padrão de condificação utilizado. MIME – MultiPurpose Internet Mail Extensions DOCUMENTO – página html TIPO MIME – arquivo texto – text/plain – arquivo de imagem – image/gif, image/jpg, etc. – arquivo de som – audio/wav, audio/xmpeg, etc. – text/html HTTP: Funcionamento • HTTP é um protocolo sem estado (stateless) – O servidor não guarda o estado do último cliente-servidor. – O cliente não guarda o estado do andamento da transação com o servidor. Conexão TCP 1 HTTP 1.1 2 3 4 5 Requisição HTTP Resposta HTTP Requisição HTTP Resposta HTTP … N Desconexão TCP HTTP Funcionamento 1 2 3 HTTP 1.1 Conexão TCP Requisição HTTP Resposta HTTP ARQUIVO 4 Desconexão TCP 10 Mbytes Neste ponto o arquivo de ter sido carregado por completo t STATELESS X STATEFULL Dados relativos a cada usuário, armazenados no servidor enquanto durar a conexão. STATELESS •GRANDE NÚMERO DE USUÁRIO •TEMPO DE RESPOSTA LONGO STATEFULL •PEQUENO NÚMERO DE USUÁRIO •PEQUENO TEMPO DE RESPOSTA HTML: Hypertext Markup Language • MARKUP: Linguagem baseada em TAGS TAG <HTML> <HEAD> <TITLE> TITULO QUE APARECE NO BARRA SUPERIOR DA JANELA </TITLE> </HEAD> link para outra <BODY> página <P> Texto Normal <P> <B> Texto em Negrito </B> <P> <A HREF=“http://www.pucpr.br”> link para outra pagina </A> <P> <IMG SRC="mail.gif" HEIGHT=20 WIDTH=20> </BODY> </HTML> Tranferência de Documentos Hipertexto hiperlink para outra página página 1 página 2 página 4 CAPÍTULO 1 SEÇÃO 1 bláblábláblábláblá ... seção1 bláblábláblábláblá ... INTRODUÇÃO hiperlink para mesma página bláblábláblábláblá bláblábláblábláblá ...... capítulo1 capítulo2 ...... observação ....... bláblábláblábláblá ...... OBSERVAÇÃO bláblábláblábláblá solicita página recebe página página 3 CAPÍTULO 2 bláblábláblábláblá ... servidor sistema de arquivos Exemplo de Tags • • • • <HTML> ... </HTML> <HEAD> ... <HEAD> <BODY> ... </BODY> <TABLE> <TR><TD></TD></TR></TABLE> • <P> ... </P> • <BR/> Tags para Formulários <FORM ACTION=“POST” ACTION = “logon.cgi”> <P>Login: <INPUT TYPE=“Text" NAME = “Login"> <P>Senha: <INPUT TYPE=“Password“NAME = “Senha"> <P> <INPUT TYPE = “Submit“ VALUE=“Logar"> </FORM> Login: Senha: Logar XML • HTML: Hypertext Markup Language – Conjunto de TAGS pré-definidos • XML: eXtensible Markup Language – Quem fornece a informação pode definir novos tags e atributos conforme sua necessidade. • Aplicações para o XML. – Mediação entre dois ou mais sistemas heterogêneos utilizando a Internet. – Distribuição do processamento para o cliente XML X HTML – HTML: As informações estão em formato livre. – XML: As informações estão categorizadas por TAGS especiais < Código HTML> <H1> Invoice </H1> <P>From: Joe <P>To: A. Another <P>Date: 01/01/2000 <P>Quantia: R$100,00 <P>Taxa: 21% <P>Total: R$121,00 < Código XML> <Invoice> <From> Joe </From> <To> A. Another </To> <Date:> 01/01/2000 </Date:> <Quantia “moeda” = ‘Real’ > 100,00 </Quantia > <TaxadeJuros>: 21 </TaxadeJuros> <Total “moeda” = ‘Real’> 121,00 </Total > </Invoice> Visualização no Internet Explorer 5.0 • O Internet Explorer utiliza folhas de estilo para visualizar páginas XML. PÁGINA XML Ref a uma folha de estilo: <?xml-stylesheet href='bookorder.xsl' type='text/xsl'?> …. <TAGS XML> PÁGINA XSL A FOLHA DE ESTILO DEFINE COMO MOSTRAR OS TAGS XML EM HTML .XML .XSL Implementação com XML Definição dos TAGS: DTD (Document Type Definition) • <!ENTITY % address SYSTEM "http://www.myco.org/messages/XML/address.xml" > • <!ENTITY % items SYSTEM "http://www.edifact.org/messages/XML/items.xml"> • <!ENTITY % data "(#PCDATA)"> • <!ELEMENT order (order-no, deliver-to, invoice-to, item+) > • <!ELEMENT order-no %data; > • <!ELEMENT deliver-to (address) > • <!ELEMENT invoice-to (address) > • <!--Import standard address class--> %address; • <!--Import standard item class--> %items; Aplicações • MathML. – Matemática. • CML. – Química. • PGML. – Gráficos de precisão. • SMIL. – Multimídia (webTV). • CDF. – Remessa automática de dados. • EDI – Intercâmbio eletrônico (e-business) • VOICEXML – Acesso a Internet via Voz. • WML – Wireless Markup Language EDI • Sistema de intercâmbio ou troca de documentos eletrônicos – Permite trocar informações entre empresas sem a intervenção humana. SISTEMA DISTRIBUIDOR ENVELOPE ENCOMENDA DE PRODUTOS Coleção de documentos do mesmo tipo Documento = message ou transaction set SISTEMA FABRICANTE Exemplo: Encomenda de Livro • • • • • • • • • • • • • • <?xml version='1.0'?> <?xml-stylesheet href='bookorder.xsl' type='text/xsl'?> <BOOKORDER> <DATE>Friday, January 5, 19101 </DATE> <ORDER-NO>ECC741220</ORDER-NO> <BUYER> <NAME>Edgard Jamhour</NAME> <ORG>PUCPR</ORG> <ADDRESS> <STREET>Imaculaca Conceicao</STREET> <CITY>Curitiba</CITY> <STATE>PR</STATE> <ZIP>80000</ZIP> </ADDRESS> • <PHONE>3301675</PHONE> • <FAX>3301669</FAX> • <EMAIL><A HREF='[email protected]'>[email protected]</A> • </EMAIL> • </BUYER> • <MAINORDER><ORDER> • <TITLE>SSN</TITLE> • <AUTHOR>Tom Clancy</AUTHOR> • <QTY>1</QTY> • <ISBN>0-425-15911-6</ISBN> • <LANGUAGE>English</LANGUAGE> • </ORDER> • <ORDER> • </MAINORDER> • <COMMENT>Apenas um teste ....</COMMENT> • </BOOKORDER> Common Gateway Interface • CGI: – Gateway entre WWW e outras aplicações. – CGI é uma interface que permite executar programas e aplicações externas sob o controle de um servidor HTTP. Requisição HTTP WWW 1 Dados enviados pelo Cliente 2 APLICAÇÃO 4 3 Servidor Mensagem MIME e cabeçalho HTTP Resposta não WWW Seqüência De Eventos Da Chamada CGI Idade minima: 30 3 1 Formulario de Consulta anos Idade=30&Depto=Producao& Temporario=SIM Selecione o Departamento: 2 Informatica Producao Marketing Contabilidade programa servidor WWW IIncluir funcionários em regime aplicação externa 4 temporário: 5 SUBMIT Pressione para consultar 6 7 servidor Abraão José Paulo Carlos ...... ..... 30 40 23 50 consulta anos anos anos anos sistema de arquivos banco com os dados de todos os funcionários de uma empresa. Banco de Dados em Ambiente WWW Servidor de Banco de Dados cliente Servidor WWW tabelas CGI cliente • Servidor WWW CGI tabelas As consultas são sempre processadas no servidor. Web substitui outros ambientes? Deve ser capaz de reproduzir os mesmos recursos de aplicações servidoras Deve ser capaz de reproduzir os mesmos recursos de interface das aplicações legadas HTTP Cliente (Navegador Web) Servidor WEB Aplicação Legada Limitações do Esquema CGI + Scripts + Forms • A INTERFACE DO CLIENTE TABALHA APENAS COM TEXTO. – Não é possível inserir informações gráficas ou som nos campos de um formulário HTML. • O CGI PERMITE EFETUAR APENAS PROCESSAMENTO EM BATCH – Não é possível fazer processamento no lado do cliente. – Não é possível manter a conexão entre o cliente e o servidor. Extensões da Tecnologia WWW Concorrentes VoiceXML PHP Facultativas Servlet s Perl JavaScrip t Applets JSP Plug-ins XML CGI HTTP HTM L Sempre presentes AS P WML JavaScript <HTML> 1 <HEAD> <SCRIPT LANGUAGE="JavaScript"> function calculo(form) { form.meses.value = eval(form.anos.value*12); } </SCRIPT> </HEAD> <BODY> <FORM> Como o documento aparece para o usuário Formulario de Consulta Idade em anos: <P>Idade em Anos: <INPUT TYPE="text" NAME="anos" SIZE=15></P> CALCULAR 2 <P><INPUT TYPE="button" VALUE="CALCULAR" onClick="calculo(this.form)"> iidade em meses: <P>Idade em Meses: <INPUT TYPE = "text" NAME="meses" SIZE=15></P> </FORM> </BODY> </HTML> Quando o usuário pressiona o botão calcular, o programa JavaScript efetua um cálculo e atualiza o campo "idade em meses". Tecnologias WEB - Comparação PLUG-INS DESENVOLVEDOR JAVASCRIPT compilado interpretado Fonte Fonte JAVA bytecode Fonte Compilador Compilador ByteCode USUÁRIO Executável Interpretador Interpretador Executável Executável Internet com Java • OBJETIVO: – Disponibilizar qualquer tipo de aplicação sem precisar instalar nenhum tipo de software no cliente. • CUSTO DE DEPLOYEMENT = ZERO • CUSTO DE ATUALIZAÇÃO = ZERO aplicações Programa a ser instalado RISC com UNIX WINDOWS com INTEL Applets e Servlets • Applets e Servlets são denominações dadas a programas escritos em java para Internet. • Applets: aplicações para clientes – pequenas aplicações embutidas no navegador web. – implementam uma interface gráfica com o usuário. • Servlets: aplicações para servidores – aplicações sem interface gráfica, executadas no servidor. – funcionam de maneira similar ao CGI, mas possuem um conjunto amplo de APIs que facilitam o desenvolvimento de novas aplicações. <HTML> Exemplo de página HTML com applet <BODY> <P>Exemplo de página HTML com applet<P> Saldo Atual: <APPLET CODE=saldo.class WIDTH=420 HEIGHT=240 > </APPLET> Valor da Transação: </BODY> Crédito Débito </HTML> www.pucpr.br 1 GET formulário.html 2 formulário.html 3 GET saldo.class 4 texto formulário.html Saldo.class texto bytecode bytecode saldo.class Instalação de applets Aplicações Nativas para Web • Baseados em scripts interpretados em módulos colocados no servidor. • Falam apenas pela porta 80 via HTTP. aplicações HTML HTML requisição 80 resposta HTML SERVIDOR WEB INTERPRETADO R JSP Scripts JSP INTERPRETADO R ASP Scripts ASP INTERPRETADO R PERL Scripts PERL INTERPRETADO R PHP Scripts PHP Interpretador FUNCIONA COMO UM CGI GENÉRICO SERVIDOR WEB HTML INTERPRETADO R requisição 80 resposta HTML HTML + Código SERVIDOR WEB HTML Scripts Scripts Scripts