Escolar Documentos
Profissional Documentos
Cultura Documentos
Mdulo II:
Programao ladoservidor
Modelo Cliente-Servidor
Solicita servio
Envia resultado
Usurio
Rede
Cliente
Servidor
! "#%$ & '! $ "#( )+* , - . /0213 4 3576 89#4 8:3 ; <=> ? @ AB>
K
K
K
K
K
Arquitetura Cliente-Servidor
Hipertexto
Protocolo HTTP
Linguagem HTML
Endereamento atravs da URI
HTTP + URI
Documento
(arquivos
HTML)
Browser
(cliente)
Internet
Servidor
HTTP
; 9<9=>? @ > 5 A 9=!:? B9 C$5 <:9 A 4< D&9 E F G 9H+=? @ ?I-5 4< @ 4B? J <96 > 5 B?6
Aplicao
(programa)
Solicitao HTTP
Browser
Servidor
HTTP
Resposta do servidor
HTTP
HTTP
Software
de TCP/IP
Software
de TCP/IP
TCP
TCP
Ligao fsica
Internet
Cliente
Servidor
1 Usurio solicita
http://www.empresa.com/arq.html
z
2 DNS consultado e
fornece o endereo IP
Usurio
http://www.empresa.com
200.13.16.8
z
DNS
Browser
(cliente)
200.13.16.8
Internet
5 Servidor recebe
solicitao e procura pelo
recurso (arq.html)
6 Servidor:
HTTP/1.1 200 OK
Date: Thu, 23 Oct 1997
21:45:56 GMT
... (aps o cabealho segue o
contedo de arq.html)
7 Browser apresenta o
resultado na tela
arq.html
Servidor
Internet
Cabealho +
contedo de
arq.html
Browser
(cliente)
Usurio
Interface
de Usurio
HTML
(Forms)
CSS
Scripts
Hardware
Software
Ncleo funcional:
Programas utilizando
CGI, API, etc.
e Banco de dados
Internet
Cliente
Servidor
Tecnologias para
programao
lado-cliente
Scripts
Lado-cliente
Javascript
VBScript
Tecnologias para
programao
lado-servidor
Programas
Compilados
Java Applets
Scripts
Lado-servidor
Programas
Compilados
Perl + CGI
PHP
Active Server Pages
Cold Fusion
Outras solues
Programas + CGI
Programas + API
Java Servlets
ASP.NET
Tecnologias
hbridas
Macromedia Flash
DOM
HTML
Scripts
Mdulo Compilado
(Applets, ActiveX)
Plug-in
Internet
Cliente
Solicitao
HTTP
Servidor
HTTP
Arquivos
HTML,GIF,
Pgina
HTML
Programas
Servidor
aplicativos
Internet
Cliente
Sistema operacional
Unix (Aix, Solaris, Linux),
Windows NT
API Interface de
programao de
aplicaes
ISAPI, NSAPI
Java Servlets
Scripting
Server-side JavaScript
Active Server Pages - ASP
Cold Fusion - CFM
Banco de dados
Oracle, Sybase, SQLServer,
MSAccess
Programas Gateway
Perl, C/C++, TCL/TK, Lua,
PHP
Servidor HTTP
Apache
Internet Information Server
(IIS),
Personal Web Server
Database Middleware
Oracle Internet Platform
Informix Internet
Foundation.2000
Sybase web.sql
Arquitetura e
Tecnologias
Internet
Browser
Servidor HTTP
Formulrio no cliente
z Envio de dados para o servidor atravs da internet
usando o protocolo HTTP
z Execuo de programas no servidor
z
Formulrio no cliente
Nome:
Sobrenome:
Masculino
Enviar consulta
Feminino
Redefinir
Cdigo HTML
<FORM action=cgi-bin/programa1 method=GET>
<P>
<INPUT type=text name=primnome><BR>
<INPUT type=text name=sobrenome><BR>
<INPUT type=radio name=sexo value=M>Masculino
<INPUT type=radio name=sexo value=F>Feminino
<INPUT type=submit >
<INPUT type=reset></P>
</FORM>
O mtodo POST
O programa recebe os dados atravs da entrada padro
do sistema operacional
O nmero de dados a serem lidos informado pela
varivel CONTENT_LENGTH
primnome=Jair&sobrenome=Leite&sexo=M
Programas + APIs
Utiliza APIs do servidor Web
Ilustrao
Programa
Programa
Gateway
Gateway
Base de
Dados
SSS
SSS
Base de
Dados
API
API
Base de
Dados
Browser
(cliente)
%&
' ( como
)
*+
Base
,-
"de . Dados
"
! " #$
Servidor
Programas Gateway
Programas Gateway so aqueles que podem ser
ativados pelo servidor
z A Common Gateway Interface (CGI) define
mecanismos pelo qual servidores HTTP
comunicam com programas gateway
z
Query String
Solicitao
HTTP
Browser
(cliente) Pgina HTML
Arquivos
de dados
Servidor
HTTP
Arquivos
HTML,GIF,
CGI
Programas
Gateway
Servidor
de Banco
de Dados
Resultados
+
Cdigo HTML
A CGI
Interface para troca de dados servidor- programa
gateway
z No sentido servidor-programa
z
Variveis de ambiente
Argumentos de linha de comando
Entrada padro
z
No sentido programa-servidor
Sada padro
Servidor
HTTP
primnome=Jair&sobrenome=Leite&sexo=M
Programas
Gateway
Entrada padro
Arquivos
de dados
Decodificando os dados
O programa CGI deve decodificar os dados
z Separar cada par nome=valor identificando o &
z Identificar os nomes e valores
z Processar os valores adequadamente
z
Servidor
HTTP
<HTML><HEAD><TITLE>....
Programas
Gateway
Arquivos
de dados
Sada padro
Jair
Content-type: text/html
Linha em branco (CRLF)
<HTML><HEAD>
<TITLE>Documento HTML</TITLE>
...
<html><head><title>Teste HTML</title></head>
<body><h1>Ol Jair!</h1></body></html>
HTTP
Dados
CGI
HTML
HTML
Programa
Gateway
Query
SQL
Resultado
da Query
Base de Dados
CGI
Servidor
Apache
Arquivo Perl
Query
SQL
Resultado
da Query
Entrada/Sada padro
MySQL
Interpretao de SS Scripts
Arquivos
HTML,GIF,
+ SCRIPTS
Solicitao
HTTP
Servidor
HTTP
Pgina
HTML
Interpretador
Script
BD
Scripts
Internet
Server-Side JavaScript
Utilizado com a ferramenta LiveWire para servidores
Netscape
Integrao com componentes Java
Java Servlets
Programa Java no lado-servidor
Utiliza browsers especficos: Tomcat, Sun Java Web
Server, Allaire JRun, etc.
JavaServer Web Development Kit
VBScript
HTTP
Browser
ASP =
Doc HTML
+
VBScript
HTML
HTML
Interpretador
VBScript
Componentes
ActiveX
SQL
Base de Dados
Java Servlets
Programas Java do lado servidor
z Soluo Java para programas gateway
z Equivalentes aos Applets
z Funcionamento semelhante s APIs
z Programa compilado
z Gerao de cdigo HTML trabalhosa
z
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>\n" +
"<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
Exemplo de JSP -1
<HTML>
<HEAD><TITLE>Banco de Negcios</TITLE></HEAD>
<BODY>
<H1>Banco de Negcios</H1>
<P>Ol,
<! Se UserName for vazio, escreve Novo usurio -->
<% out.println(Utils.getUserNameFromCookie(request)); %>
Para acessar sua conta, clique
<A HREF="Account-Settings.html">aqui.</A></P>
<P>
Aqui segue o restante do cdigo HTML da pgina do banco.
</BODY></HTML>
Exemplo de JSP - 2
Solicitao
HTTP
Pgina
HTML
Servidor
HTTP
Arquivos
HTML,GIF,
API
BD
Programa compilado
Internet
Cliente
Usando a ISAPI
Internet
Information
Server
ISAPI
BD
HTTP
Browser
HTML
Arquivo.dll
GetServerVariable( )
ReadClient ( )
WriteClient ( )
ServerSupportFunction ( )
GetExtensionVersion( )
HttpExtensionProc( )
Extension_Control_Block
Browser
Responsvel pela apresentao
Gerencia
usurios,
aplicaes e
plataforma
Java
Servlets
Enterprise
JavaBeans
Sybase web.sql
Oferece acesso a BD relacionais
z Gera um documento HTML final de forma
dinmica e personalizada
z Comando SQL e scripts Perl podem ser
introduzidos no documento HTML
z Elimina a necessidade de CGI
z Processa dois tipos de arquivos
z
HTTP
Req. HTS
SQL
Web.sql
HTML
HTML
CGI ou NSAPI
SQL
BD1
BD2
Arquivo HTS
ou Perl
Plataforma integrada
Informix Dynamic Server.2000 maquina bsica
Informix J/Foundation implementa a JVM
Informix Office Connect conexo com produtos
MSOficce
Informix Web DataBlade consultas SQL a BD
Excalibur Text Data Blade Module pesquisa