Professional Documents
Culture Documents
Gilberto Pederiva
Wandner Valdivino Meirelles
Dourados-MS
março de 2007
Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e Tecnológicas
Gilberto Pederiva
Wandner Valdivino Meirelles
Dourados-MS
março de 2007
Projeto Final de Graduação sob o título "Experimento de Avaliação dos Benefícios da
Tecnologia AJAX", defendido por Gilberto Pederiva e Wandner Valdivino Meirelles e aprovado
em março de 2007, na cidade de Dourados, Mato Grosso do Sul, pela banca examinadora
constituída pelos professores:
Agradecemos primeiramente à Deus que nos conduziu e sustentou durante essa trajetó-
ria acadêmica. Concedeu-nos perseverança e disposição para a conquista de nossos objetivos.
Ao nosso orientador, professor Marcelo de Castro Carvalho, que contribuiu para o nosso
aprimoramento intelectual, profissional e pessoal durante o desenvolvimento desse projeto.
Resumo
This work represents the study of the AJAX technology (Asynchronous Javascript and
XML) in the Web programming. Its initial focus is to show the context of the expansion of
the internet and its evolution in the last decades, followed for the understanding of the used
technologies in the AJAX programming, culminating in the development of the three aplicati-
ons. Two of them functions and equivalent appearances, however they are programmed with
distinct techniques, one with asynchronous recovery of content (AJAX) and other without,
having in these a aplications there is a purpose to compare both the technologies (traditional
and AJAX) and avaliable the preferences of the users. The third application represents the
end item of all theory and the practical experience on the programming methods AJAX. It’s
about a system of control of materials that uses the AJAX and traditional methodology, thus
demonstrating a perfect integration between them.
Keywords: AJAX, asynchronous, comparison, programming and Web
Lista de Figuras
Introdução p. 15
1 Programação AJAX p. 22
1.3.3 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 32
1.3.4 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
1.3.5 Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
2 AJAX na prática p. 42
3 Aplicativos de comparação p. 52
3.1 Delimitação do módulo implementado . . . . . . . . . . . . . . . . . . . . . . p. 52
5 Conclusões p. 71
Referências p. 73
Glossário p. 76
A Internet pode ser definida como um conjunto de redes que utilizam o protocolo
TCP/IP com um espaço de direcionamento uniforme para o intercâmbio de dados entre os
equipamentos ligados em rede [1].
Tecnicamente a Internet por si só não foi auto-suficiente para conquistar grande popu-
laridade, ela necessitou da World Wide Web para ganhar mais recursos, inclusive uma interface
gráfica.
A forma de editoração textual que acabou por determinar a estrutura básica da rede
mundial de computadores foi o hipertexto, uma forma intuitiva e dinâmica de apresentação
Introdução 16
textual. O termo, mencionado inicialmente por Ted Nelson1 , tomou forma em 1965 com o
projeto Xanadu2 , porém já havia sido exemplificado nas experimentações do físico e matemá-
tico americano Vannevar Bush3 , que em 1945 apresentou seu famoso artigo intitulado As We
May Think [5].
O início da explosão da Internet nasceu com a World Wide Web, que foi proposta
por Tim Berners-Lee4 , da CERN, em 1989. A WWW representa uma rede de computa-
dores conectados a Internet que fornece informação em forma de hipermídia, como vídeos,
sons, hipertextos e figuras. Inicialmente a sua utilização foi restrista a CERN e em 1991 foi
disponibilizada mundialmente [6].
Nesse contexto histórico merece destaque, também, a formação da World Wide Web
Consortium 5 , por Tim Berners-Lee em 1994, que hoje assume a função de direção das políticas
e padrões da Web.
De 1968 a 1984 a Internet passou de 4 (quatro) para 1.000 (um mil) de terminais
conectados. Entre 1985 e 1992 a rede expandiu-se para mais de 1.000.000 (um milhão) de
conexões, iniciando seu iminente caráter comercial. O desenvolvimento do protocolo TCP, em
1974 pelos cientistas da ARPA, foi crucial para a rápida expansão da Internet, pois antes o
acesso remoto ao recursos compartilhados era permitido a apenas para um terminal de cada
vez. Esse padrão de protocolo permitiu o acesso simultâneo aos programas [1].
WAIS (Wide Area Information Service), o Yahoo, de Stanford, o The McKinley Group e o
InfoSeek, que são empresas privadas localizadas no Vale do Silício.
A quantidade de pessoas conectadas a rede saltou de um milhão e quinze mil para vinte
e cinco milhões e noventa mil usuários entre 1997 e 2005, abrangendo 0.7% (zero ponto sete
por cento) contra 13.9% (treze ponto nove por cento) da população brasileira nesse período [8].
Esse saldo positivo se deve ao rompimento do tradicional paradigma de distância, comunicação
e comércio. O crescente público que utiliza a Web levou às empresas a preocupação de se
estabelecer um vínculo de confiança com o internauta, ocasionando a elevação da qualidade
dos serviço online.
Nesse contexto, e com o objetivo de cativar o usuário com uma concepção diferente de
Internet, surge a Web 2.0. A história tem início em outubro de 2004 na reunião entre O’Reilly
Media e MediaLive, com o cunho do termo e o surgimento das primeiras conferências sobre o
assunto [9].
No começo a Web era feita de sites que publicavam conteúdo. Era uma forma digital
de fazer exatamente a mesma coisa que a mídia impressa já fazia. Tim O’Reilly em seu artigo
"What Is Web 2.0" [9] descreveu a Web 2.0 como uma plataforma central suceptiva ao usuário,
o retorno ao simples e agradável, sempre orientada a serviços. A compreensão do usuário como
um cooperador, um parceiro, é fundamental para essa nova abordagem. Na Web 2.0 o usuário
não somente lê a informação, ele interage com ela.
gratuitamente.
Simultaneamente e complementar à Web 2.0 surgia uma nova forma de conceber aplica-
ções para Internet chamada AJAX. Essa não é uma tecnologia nova, mas sim um agrupamento
de tecnologias que culminam numa aplicação em que o Cliente Web responde atualizando ape-
nas o que for necessário, tornando a navegação pela Internet muito mais rápido e muito
semelhante a um aplicativo standalone [10][11].
As vantagens trazidas pelas aplicações Web, aliadas à possibilidade das técnicas AJAX
em oferecer velocidade semelhante a um software desktop, têm cultivado maciços investimentos
e cooperação na multiplicação desse conhecimento. Afinal, AJAX une-se perfeitamente com
o definição de uma Internet dinâmica e atraente. Aplicativos como Google Maps6 , Gmail7 ,
Del.icio.us8 , Flickr9 e Start10 mostram bem a amplitude e aceitabilidade dessa nova forma de
conceber soluções para a Web.
Objetivos do trabalho
Elaborar um tutorial básico para compreender como a técnica de programação AJAX
provê a recuperação assíncrona de conteúdo, bem como produzir dois aplicativos Web que
se diferenciam apenas na técnica de programação utilizada: AJAX e tradicional, os quais
serão submetidos a uma pesquisa de opinião online que estará disponível no endereço eletrô-
nico <http://www.wannd.com> entre os dias 01/02/2007 à 23/02/2007, pesquisa essa que
avaliará a sensação do internauta quanto a velocidade, a facilidade, o designer, a avaliação
geral e a preferência entre as duas técnicas programação utilizadas nos aplicativos. Também
é foco desse trabalho a concepção de um aplicativo de controle patrimonial para demonstrar
o enriquecimento que a técnica AJAX pode proporcionar aos aplicativos Web.
6
http://maps.google.com
7
http://mail.google.com
8
http://del.icio.us
9
http://www.flickr.com
10
http://www.start.com
Introdução 20
Metodologia
O estudo foi iniciado com revisão bibliográfica do termo AJAX na Web, por meio de
ferramentas de busca na Internet: Google, Yahoo e Cadê. A pesquisa foi o subsídio para
seleção das bibliografias e linhas de pensamento, das quais o primeiro foco foi lançado sobre o
artigo de Garret [11], devido ao seu pioneirismo na abordagem desse assunto.
A etapa seguinte foi a publicação das duas versões do aplicativo de comparação16 , a fim
de identificar a sensação do internauta quanto as diferenças que a programação AJAX pode
proporcionar comparada a forma tradicional de programação para Web.
O último passo foi construir um aplicativo que comprovasse que uma aplicação Web
tradicional pode ser enriquecida com a técnica AJAX. Daí surgiu o produto final de nossos
estudos, ou seja, um sistema de controle de controle patrimonial que foi programado unindo
a técnica AJAX com a forma tradicional de programação.
Estrutura do trabalho
11
http://www.imasters.com.br
12
http://www.tableless.com.br
13
http://www.ajaxbox.com.br
14
http://www.big.com.br/alimentar
15
http://www.paodeacucar.com.br
16
http://www.wannd.com
Introdução 21
No Capítulo 1, são abordados aspectos relativos a programação Web, com foco principal
na técnica AJAX. Posicionamento histórico, elenco e discussão das tecnologias que compõem
a programação com recuperação assíncrona de conteúdo são os pontos precípuos dessa seção.
A Web está evoluindo a medida que seus usuários se tornam mais exigentes e propícios
de serem alcançados remotamente. Sites graficamente bem elaborados, interativos, repletos de
conteúdo atrativo e as crescentes possibilidades comerciais foram ferramentas decisivas para
conquistar os internautas. Contudo, a limitada velocidade das aplicações Web sempre foi uma
barreira que impedia uma concorrência direta com os programas standalone. Atualmente,
essa barreira já não é mais tão distante como nos anos 90, isso graças a grande aceitação e
popularidade da Internet.
O termo AJAX foi usado pela primeira vez em fevereiro de 2005 com a publicação do
artigo Ajax: A New Approach to Web Applications de Garrett. Nesse ensaio, Garrett define
AJAX como um agrupamento das seguintes tecnologias: (X)HTML e CSS para apresentação
de conteúdo; Document Object Model para prover uma maneira comum de se acessar e alterar
objetos (X)HTML via Javascript; XML e XSLT para manipulação de dados; XMLHttpRequest
para recuperação assíncrona de conteúdo e JavaScript para unir todas as tecnologias [11].
No ciclo de vida de um aplicação Web clássica, existe uma interação estrita de requisição
e resposta entre o lado cliente e o servidor, ou seja, o usuário cria uma requisição clicando,
por exemplo, em um link e o navegador de Internet gera uma solicitação HTTP. Por sua
vez, o servidor recebe a requisição e a processa, gerando uma resposta que geralmente é um
1.1 O que é AJAX 24
documento (X)HTML. Portanto, o fluxo de dados para navegação é controlado apenas pelo
servidor, como mostra a Figura 3.
Já no ciclo de vida de uma aplicação AJAX o navegador não fica limitado a tarefa
pura e simples de exibição do conteúdo recebido do servidor. O navegador de Internet passa
a participar diretamente do gerenciamento da aplicação, ou seja, controla eventos, executa
scripts e remodela páginas (X)HTML, como mostra a Figura 4. Nesse novo cenário, quando
o usuário inicia a aplicação o código gerado é entregue ao navegador, o qual permanece com
essa página durante toda a sessão com o usuário. A partir daí, por intermédio de ações
programáticas feitas em Javascript, o navegador faz os processamentos necessários (seja no
lado do cliente ou servidor), sem carregar um novo documento a cada requisição disparada
pelo usuário.
1.1 O que é AJAX 25
A busca acima descrita poderia ser melhorada utilizando o AJAX para exibir e executar
as informações de acordo com o que é fornecido ao navegador, sem carregar toda a página
novamente. Isso seria possível graças a combinação das seguintes tecnologias: servidor Web,
(X)HTML, Javascript, XML e XMLHttpRequest.
Abaixo segue a descrição seqüencial de acontecimentos que o AJAX provê para executar
o exemplo de busca ilustrado na Figura 5:
1. o usuário acessa uma página Web de busca de cidades, digita os caracteres “são” no
campo apropriado do formulário e pressiona o botão “buscar”;
servidor para buscar no banco de dados as cidades que iniciam com a palavra “são”;
4
http://www. youos.com
1.3 Tecnologias envolvidas 28
Para as aplicações Web simples pode-se projetar uma arquitetura em que os clientes
utilizem um navegador para fazer requisições a um servidor Web, que localiza o arquivo soli-
citado e o devolve processado ao cliente. A forma mais usual de tratamento de dados do lado
do servidor é utilizando o tratamento dinâmica dos dados, ou seja, empregam-se técnicas mais
aprimoradas, como a utilização de banco de dados ou da linguagem de marcação XML, para
prover as alterações do conteúdo Web em tempo de execução.
Servidor Web pode ser designado como um computador composto de hardware e softwa-
res específicos ou um programa de computador o qual é responsável por aceitar e respon-
der requisições de outras aplicações realizadas através do protocolo HTTP. Essas requisições
referem-se habitualmente a páginas de Internet e são feitos normalmente através de browsers
[16].
Essas requisições ocorrem quando uma página de Internet necessita de alguma informa-
ção. Ela então o solicita ao servidor Web o qual recebe o pedido, processa e devolve os dados
necessários para a exibição correta do site. Por essa razão o servidor Web é de fundamen-
tal importância para o desenvolvimento de aplicativos para a Internet, sem ele não haveria
a possibilidade de linguagens com o PHP e Perl existirem, pois são processadas dentro do
servidor.
Atualmente os servidores Web mais utilizados são o Apache desenvolvido pelo grupo
Apache com 58.62% (cinqüenta e oito ponto sessenta e dois por cento) e o Internet Information
Services (IIS) desenvolvido pela Microsoft com 31.02% (trinta e um ponto zero dois por cento)
do mercado de servidores Web do mundo [17].
A tecnologia AJAX não exige um servidor Web específico, assim o desenvolvedor tem a
liberdade de escolher um de sua preferência, desde que esse tenha suporte as diversas linguagens
de programação que compõem o AJAX. Nesse contexto destaca-se o Apache, que além de ser
o mais utilizado possui inúmeros recursos, dentre os quais destacam-se [18][19]:
3. Compatibilidade com PHP, Perl e outras linguagens em script. A maioria das aplicações
Web ainda são escritas em script, o que torna perfeita a integração com o Apache;
o Solaris possuem também grande papel, ampliando assim o número de usuários que
utilizam o Apache;
5. Suporte para o protocolo HTTP 1.1. O Apache foi um dos primeiros servidores a serem
compatíveis com a versão 1.1 do protocolo HTTP. Essa nova versão possibilita que uma
conexão seja estabelecida para enviar várias requisições em seqüência sem a necessidade
de esperar por cada resposta;
7. Suporte para CGI. Importante tecnologia que permite gerar páginas dinâmicas e passar
parâmetros para um programa alojado em um servidor Web;
8. Suporte para FastCGI. Possui as mesmas características da tecnologia CGI, contudo são
mais persistentes, ou seja, quando uma aplicação em FastCGI estabelece uma conexão
com um banco de dados ela a mantém para todos os pedidos subseqüentes;
9. Suporte para Hosts Virtuais. Um host representa um computador ou outra máquina co-
nectado a uma rede, sendo assim Hosts Virtuais representam endereços de computadores
virtuais que não existem fisicamente;
10. Suporte para Java Servlet, possibilitando que página de Internet criadas com a tecnologia
Java Servlet sejam executadas;
O principal elemento do HTML, assim como nas linguagens de marcação, são as tags.
Elas são rótulos usadas para informar ao navegador como deve ser apresentado o site, todas
possuem o mesmo formato, começam com um sinal de menor "<" e terminam com o sinal
de maior ">". Existem dois tipos de tags: de abertura (<comando>) e a de fechamento
(</comando>). Existem ainda elementos que são constituídos de uma única tag, nesse caso
a deve-se usar o seguinte formato: (<comando / >)[21].
1.3 Tecnologias envolvidas 31
2. Cabeçalho. É composto das tags <head> e </head>, vários elementos são inseridos
entre elas, como a de título <title></title>.
3. Corpo. Formado pelas tags <body> e </body>, agrupam os demais elementos que não
são inseridos dentro do cabeçalho, formando assim o corpo do documento.
Criada para ser uma linguagem de conteúdo em conformidade com o XML ela segue
algumas diretrizes simples de compatibilidade com o HTML 4. Sua primeira versão a 1.0 foi
disponibilizada em 26 de janeiro de 2000 pela W3C [23].
4. Uma página XHTML tem compatibilidade maior com os browsers e outros aplicações,
incrementando interoperabilidade e portabilidade aos documentos Web.
1. Todas as tags devem ser escritas com letras minúsculas. O XML é uma linguagem
case-sensitive e como o XHTML possui características do XML, também herdou essa
propriedade;
2. Os documentos devem estar bem formatados. Todos os elementos XHTML devem estar
corretamente aninhados dentro do elemento raiz <html ></html >;
4. Os elementos vazios devem ser fechados. Todos os elementos vazios devem ter tags de
fechamento ou a tag de abertura deve terminar com "/>";
5. Diferenças nos atributos. Assim como as tags, os atributos também são case-sensitive,
desta forma todos os atributos devem ser escritos com em letras minúsculas;
7. Em XHTML o uso do atributo alt para todas as imagens é obrigatório. Caso for uma
imagem decorativa, deve-se usar o atributo alt vazio;
8. Caracter "&" deve vir acompanhado das letras "amp" sendo a sua forma correta "&";
1.3.3 CSS
margens, linhas, alturas, larguras, imagens de fundo, posicionamento dos elementos além de
outras características, possibilitando assim separação entre o conteúdo e a formatação do
documento [25].
A sintaxe da linguagem CSS é muito simples como pode ser observada na Figura 9
sendo dividida em três elementos principais:
1. Seletor - Define em qual tag será aplicado a nova propriedade. Exemplo: "body";
2. Tag style. O estilo é adicionado entre as tags "<style ></style>". Exemplo: <style
type="text/css"> body {background-color: #FF0000;} </style>;
3. Externo. O método mais recomendado é criar um arquivo com a extensão ".css" contendo
todos os estilos a serem aplicados ao documento e adicionar a referência para esse entre as
tags <head > e </head > do HTML. Exemplo: <link rel="stylesheet"type="text/css"
href="estilo.css"/>.
O uso do CSS em páginas de Internet traz muitos benefícios, pois além de permitir a
separação entre conteúdo e apresentação possibilita a formatação de vários documentos a partir
de uma simples folha de estilo, assim como uma maior precisão no controle da formatação,
tornando essa linguagem uma ferramenta indispensável no desenvolvimento de sites.
1.3.4 XML
A sintaxe do XML é muito simples devido a possibilidade da criação das tags. A criação
de um arquivo deve seguir quatro regras simples, o resultado por ser observado na Figura 10:
2. Tag de abertura e fechamento. Assim como no HTML, mas de forma obrigatória toda
tag de abertura deve ter uma de fechamento. Exemplo: <comando> </comando>.
3. Tag raiz. É obrigatório sua declaração, pois todas as demais tags estarão dentro dela.
4. Tag sub raiz. É obrigatório sua declaração quando o documento contém diversas infor-
mações com a mesma estrutura. Exemplo: Figura 11.
Apesar de ser uma excelente linguagem o XML não é um substituto para o HTML pois
cada uma tem utilizações distintas. Enquanto o XML estruturas os dados, o HTML formata
e exibe os mesmos em uma página de Internet [27].
A utilização do XML é muita ampla e está crescendo cada vez mais, dentre essas
destacam-se [28]:
1.3 Tecnologias envolvidas 35
2. Troca de dados. A troca de informações entre sistemas distintos pode ser facilmente
implementada com o XML, fazendo com que diversas aplicações possam ler esses dados;
3. Criação de novas linguagens. Por ser uma metalinguagem, existe a possibilidade de criar
novas linguagens a partir dela como a WAP e WML, destinadas a aparelhos portáteis
como telefones celulares;
1.3.5 Javascript
Por permitir essa interatividade existem diversas utilizações para o Javascript, que vão
desde uma simples saudação quando um site é carregado até validação de formulários, criação
de menus, criação dinâmica de elementos dentro do código HTML e a orientação a objeto.
6. Controle de cookies. Pode-se guardar informações sobre cada visita do usuário a deter-
minada página de Internet;
Antes de poder usar o objeto XMLHttpRequest é necessário criá-lo, mas como esse não
é um padrão da W3C cada Navegador tem uma implementação diferente. O Internet Explorer
o implementa como um objeto ActiveX e outros Navegadores como o Firefox, NetScape, Opera
e Safari como um objeto nativo do Javascript [30].
Para que esse problema seja contornado não existe a necessidade de identificar qual o
Navegador do usuário, apenas é verificado se esse tem suporte ao ActiveX. Caso tenha, deve-
1.3 Tecnologias envolvidas 38
se criar o objeto XMLHttpRequest através do ActiveX, caso contrário ele é criado usando a
técnica de objeto nativo do Javascript [31]. Processo simples o qual é demonstrado na Figura
12:
Existem várias linguagem de programação e banco de dados que podem ser utilizados
para a criação de arquivos XML dinâmicos, assim o desenvolvedor pode optar por linguagens
como o Java, ASP, PHP entre outras, assim também pode optar por qualquer banco de dados
para armazenar as informações como o PostgreSQL, MySQL, Oracle entre outros. Nesse
contexto são utilizados a linguagem de programação PHP e o banco de dados MySQL, os
quais possuem vários recursos na criação de sites, além de serem gratuitos e de fácil utilização.
PHP
PHP é uma linguagem em script Open Source muito utilizada em aplicativos Web.
Diferente de outras linguagens executadas no lado do cliente, ou seja, dentro do browser como
o Javascript, ela é executada dentro do servidor Web, possibilitando entre outras funções o
acesso a banco de dados característica que o Javascript não possui [32].
1.3 Tecnologias envolvidas 39
A sintaxe do PHP é de fácil compreensão como pode ser observada na Figura 13 pois
possui características de linguagens conhecidas como o C e Perl. Todo código pode ser embu-
tido dentro ou fora do código HTML, mas para ser reconhecido pelo servidor o arquivo deve
ter uma das extensões do PHP como por exemplo ".php", também deve ser delimitado por
duas tags que possuem quatro formas distintas [33]:
1. <?php ?>;
2. <? ?>;
4. <% %>.
2. Código Aberto (Open Source). Por ser uma linguagem de código aberto o PHP pode
receber contribuições de desenvolvedores de todas as partes do mundo;
3. Licença GNU. Esta licença garante que o PHP seja distribuído e utilizado livremente
por todas as pessoas;
5. Compatível com várias plataformas. O PHP pode ser executado em plataformas Win-
dows, UNIX e inclusive em Mac OS X. Além disso é compatível com os três principais
servidores Web, o Apache, o Microsoft Internet Information Server e o Netscape Enter-
prise Server;
MySQL
MySQL é um servidor e gerenciador de banco de dados (SGBD) completo, robusto e
extremamente rápido que utiliza a linguagem SQL como interface, projetado inicialmente para
trabalhar com aplicações de pequeno e médio porte, hoje atende também aplicações de grande
porte.
O Mysql possui muitas características que o tornam um dos bancos de dados mais
aceitos e utilizados em sites, principalmente por integrar-se perfeitamente com o PHP. Também
vale ressaltar as seguintes características[38]:
4. Velocidade. Maior rapidez no acesso aos dados em razão de vários fatores em seu de-
senvolvimento, tais como tabelas ISAM, além de caches para consultas e utilização de
algoritmos de busca.
2 AJAX na prática
Neste capítulo, será desenvolvido um código que recupera de forma assíncrona infor-
mações básicas sobre os livros de uma biblioteca fictícia. Para obtenção de um resultado
satisfatório cada seguimento do desenvolvimento será analisado de forma detalhada, permi-
tindo assim uma melhor compreensão do exemplo proposto.
O primeiro procedimento que deve ser realizado é a criação do banco de dados como
pode ser observado no script SQL da Figura 14. O comando "create database" é responsável
por criar o banco de dados "biblioteca".
Na criação da tabela "livros" (Figura 15) foram utilizados vários comandos da lingua-
gem SQL, os quais serão analisados a seguir:
1. "CREATE TABLE". Comando utilizado para criar uma tabela em um banco de dados.
2. "varchar" e "int". Esses comandos definem o tipo do dado dos campos da tabela.
O primeiro comando (varchar ) permite que qualquer caracter seja inserido no campo,
podendo esse ser composto de números, letras ou símbolos, o segundo comando (int)
permite que somente números inteiros sejam inseridos no campo.
3. "NOT NULL". Esse comando não permite que o campo tenha o valor nulo.
4. "PRIMARY KEY". Define a chave primária da tabela, ou seja, um campo que é definido
como primary key não pode ter seu valor repetido tornando-se assim único.
A estrutura básica para a inserção dos dados em uma tabela é definido a seguir:
Para que o AJAX recupere as informações referente aos livros é necessário a criação de
dois arquivos XML dinâmicos. Para isso, utilizaremos a linguagem PHP. O primeiro arquivo
nomeado de "lista_livros.php" é responsável pela recuperação do "título" e "código" do livro,
os quais serão inseridos dinamicamente no componente "combobox" da página principal (Figura
25). O segundo arquivo nomeado de "detalhe_livros.php" é responsável pela recuperação de
todas as informações referentes ao livro selecionado no componente "combobox" da página
principal. Os detalhes de cada livro são exibidos em uma tabela que é carregada dinamicamente
no centro da página.
1. Linha 15. O comando "if" verifica se a variável "$row" possui algum valor. Caso pelo
menos 1 (um) livro tenha sido selecionado, o bloco de código compreendido entre as
linhas 17 e 33 é executado;
2. Linhas 17 e 18. Todo o código gerado para a criação do arquivo XML dinâmico é arma-
zenado dentro da variável "$xml". Nessas duas linhas foram adicionados o cabeçalho e
a tag raiz do XML;
3. Linha 20. O comando "for" é responsável por criar uma repetição dos comandos entre as
linhas 22 a 28. Esse processo é repetido até que os dados de todos os livros selecionados
sejam adicionados à variável "$xml";
5. Linhas 25 a 28. São responsável pela criação das tags que conterão os dados dos livros;
7. Linha 36. O comando "echo" é responsável pela visualização de todo o arquivo XML
dinâmico;
Para uma melhor compreensão dos principais elementos que compõem o arquivo HTML,
esse foi dividido em 3 (três) blocos, os quais serão analisados a seguir:
• Linha 21. Definição da tag <body> e do evento "onload". Toda vez que o docu-
mento é carregado o método definido nesse evento é executado.
• Linhas 22 a 26. Essa estrutura é responsável por criar o componente "combobox"
que receberá dinamicamente o "título" e o "código" do livro.
O código CSS utilizado (Figura 22) é responsável por alguns efeitos na página principal,
como pode ser observado nas Figuras 25 e 26. A tabela contendo os dados dos livros não é
visível logo no início, mas ao ser selecionar-se algum livro os dados aparecem automaticamente.
Esse efeito é realizado através da propriedade "visibility" do CSS que define a visibilidade dos
elementos, a qual é alterada pelo Javascript.
2.5 Criação do Javascript 48
• Arquivo "option_livro.js". O código desse arquivo (Figura 23) é responsável por retirar
as informações do XML criado dinamicamente (Figura 17 e 18) e inseri-los dentro
do componente "combobox" (Figura 25). O primeiro bloco de código (linhas 1 à 17 da
Figura 23) é responsável por recuperar as informa do arquivo "lista_livros.php", já o
segundo bloco (linhas 18 à 32 da Figura 23) é responsável por inseri-las dinamicamente
no componente "combobox" na página principal (Figura 25).
Por meio da implementação proposta obtém-se uma aplicação que recupera dinamica-
mente as informações sobre os livros de uma biblioteca. A Figura 25 apresenta o componente
"combobox" o qual possui uma lista de todos os livros cadastrados no banco de dados. Ao
selecionar um desses livros a tecnologia AJAX encarrega-se de recuperar dinamicamente as
informações, exibindo-as em uma tabela, conforme mostra a Figura 26.
2.6 Resultado final 50
O e-commerce escolhido como base para a implementação das duas versões do módulo
de comparação da programação AJAX e tradicional foi um supermercado. Trata-se de prover
um ambiente Web para cadastro e apresentação de produtos, conforme descrito a seguir:
3. Exibição dos itens cadastrados na página principal do site. Todo item incluído é apre-
sentado na tela principal do site, possibilitando a visualização dos seguintes atributos:
imagem ilustrativa (quando cadastrada e atribuída ao produto), chamada de destaque e
preço;
3.1 Delimitação do módulo implementado 53
3. Privilegio_acessa_Paginas: define quais páginas podem ser acessadas por cada privi-
légio. Exemplo: usuário tem permissão para acessar a página de id (identificador da
página) número 1 e 2;
3.1 Delimitação do módulo implementado 54
1. O ator inicia o Caso de Uso escolhendo a opção "Cadastros base" ou logando no sistema;
2. O sistema oferece uma interface para cadastro e lista os materiais já cadastrados logo
abaixo;
3. O ator seleciona um grupo e subgrupo para o produto. Informa um nome, uma descrição
detalhada, uma chamada que irá aparecer na tela principal e o valor e seleciona salvar; [A1,
A2]
4. O sistema emite uma mensagem de confirmação da operação e finaliza o Caso de Uso; [A3]
Participaram da pesquisa 112 (cento de doze) pessoas que deram suas opiniões sobre
os aplicativos. Os resultado obtidos podem ser observados na Tabela 3, os quais indicam a
preferência do usuário pela programação AJAX em relação a Tradicional.
Neste capítulo, será apresentado um sistema de controle patrimonial, o qual foi pro-
gramado mesclando a técnica AJAX com a tradicional. O trabalho exemplifica como uma
aplicação Web tradicional pode ser aprimorada empregando os conceitos AJAX.
5. Relatórios de materiais por lotação - essa página possui como principal caracte-
rística a simplicidade, pois apresenta de forma objetiva as possibilidades de emissão de
relações de materiais para cada lotação. Os relatórios disponíveis são: Relação de Geral
de Materiais (com ou sem histórico de alterações) e Relatório de Materiais por Lotação
(com ou sem histórico de alterações);
2. Pagina: armazena um identificador para cada página que compõe o sistema. Através
dessa tabela torna-se possível estabelecer uma conexão lógica para determinar as páginas
que podem ser acessadas por cada privilégio;
6. Material: tabela para armazenamento dos materiais cadastrados. Destaque para o rela-
cionamento com as tabelas Imagem, Sublotacao e Subgrupo, pois assim torna-se possível
representar um material por intermédio de um imagem, bem como identificar sua lotação
e grupo;
8. Sublotacao: representa um local dentro de uma lotação. Exemplo: uma Sala de Servi-
dores pode possuir um rack para organização de equipamentos de rede;
10. Subgrupo: representa outro nível dentro do grupo. Exemplo: um grupo de materiais de
informática possui um subgrupo de monitores, bem como um grupo eletroeletrôni-
cos pode ter um subnível de condicionadores de ar.
4.1 Descrição do aplicativo 61
1. O sistema identifica o usuário logado por intermédio de uma variável de sessão criada
durante a entrada no sistema;
2. O sistema identifica a página que se quer acessar por intermédio de uma variável
específica;
3. O sistema confirma, por intermédio de consulta no banco de dados, que o usuário tem
permissão de acesso à página pretendida. O Caso de Uso é encerrado normalmente [A1];
3. O sistema identifica que o usuário não tem permissão de acesso à página pretendia.
4. O sistema emite uma mensagem de permissão de acesso negada, redireciona para a tela de
login e encerra o Caso de Uso.
1. O ator inicia o Caso de Uso escolhendo a opção "Página principal" ou logando no sistema;
2. O ator seleciona uma lotação e sublotação de material; [A1]
3. O sistema exibe o nome e número de patrimônio de todos os materiais que pertencem à
sublotação selecionada.
1. O ator inicia o Caso de Uso escolhendo "Lotações", da opção "Materiais"; [A1, A2, A3]
2. O sistema verifica a permissão de acesso e lista todas as lotações já cadastradas; [usa:
Verificar Permissão]
3. O ator seleciona a opção de incluir nova lotação; [A4, A5]
4. O sistema verifica a permissão de acesso; [usa: Verificar Permissão]
5. O sistema oferece uma interface para cadastro;
6. O ator informa um nome e uma descrição para a lotação e seleciona salvar;
7. O sistema emite uma mensagem de confirmação da operação e finaliza o Caso de Uso; [A6]
1. O ator inicia o Caso de Uso escolhendo "Lotações", da opção "Materiais"; [A1, A2, A3]
2. O sistema verifica a permissão de acesso e lista todos os grupos cadastradas;[usa: Verificar
Permissão]
3. O ator seleciona a opção de incluir novo grupo; [A4, A5]
4. O sistema verifica a permissão de acesso; [usa: Verificar Permissão]
5. O sistema oferece uma interface para cadastro;
6. O ator informa um nome e uma descrição para o grupo e seleciona salvar;
7. O sistema emite uma mensagem de confirmação da operação e finaliza o Caso de Uso; [A6]
1. O ator inicia o Caso de Uso selecionando "Gerenciar", da opção "Usuários"; [A1, A2, A3,
A4]
2. O sistema verifica a permissão de acesso e lista todos os usuários cadastrados; [usa:
Verificar Permissão]
3. O ator seleciona a opção "Novo Usuário"; [A5, A6]
4. O sistema verifica a permissão de acesso; [usa: Verificar Permissão]
4.1 Descrição do aplicativo 69
A tecnologia AJAX (Asynchronous Javascript and XML) é certamente uma das mais
inovadoras dos últimos anos, pois possibilita que as páginas de Internet assemelhem-se muito
a aplicações desktop.
Bruno Martins dos Santos, gerente de hunting da consultoria paulista Conquest One3 ,
em entrevista concedida a revista info no dia 13/12/2006, assevera que os projetos voltados
para AJAX ainda são poucos no Brasil. Na prática existem muitos profissionais com algum
conhecimento de AJAX, mas poucos com o gabarito para tornar uma aplicação totalmente
assíncrona. Na prática, o AJAX é aplicado de forma seletiva, servindo como complemento à
criatividade do programador, sem, no entanto, cercear sua liberdade de explorar os diversos
recursos presentes na Web.
1
http://www.empregonaweb.com/
2
http://idgnow.uol.com.br/empregos
3
http://www.conquestone.com.br
73
Referências
[1] MAÑAS, José Antônio. Mundo IP. In: . Internet: Funciona no ¡lo toques!. Espa-
nha, Madrid: Ediciones Nowtilus S.L., 2004. cap. 3, p. 25-28.
[5] BUSH, Vannevar. As We May Think. USA: Boston, 1945. Disponível em:
<http://www.theatlantic.com/doc/194507/bush >. Acesso em: 30 out. 2006.
[6] CERN. The website of the world’s first-ever web server. France. Disponível em:
<http://info.cern.ch/>. Acesso em: 02 nov. 2006.
[7] MINIWATTS Marketing Group. Usage and Population Statistics. USA. Disponível
em: <http://www.internetworldstats.com/>. Acesso em: 02 nov. 2006.
[9] O’REILLY, Tim. What Is Web 2.0. USA: Sebastopol, 2005. Disponível em:
<http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-
20.html?page=1>. Acesso em: 24 out. 2006.
[10] MCLAUGHLIN, Brett. Mastering Ajax, Part 1: Introduction to Ajax. USA: New
York, 2005. Disponível em: <http://www-128.ibm.com/developerworks/web/library/wa-
ajaxintro1.html>. Acesso em: 24 out. 2006.
[13] BRASIL, Cyclades. Guia Internet de Conectividade. In: . Wide Area Networks
(WANs). 11a edição. São Paulo: SENAC, 2004. p. 64.
[14] CRANE, D.; PASCARELLO, E.; JAMES, D. Ajax In Action. USA, Greenwich, CT:
Manning Publications, 2006.
[15] BAUDISCH, A. O que é AJAX e como aplicá-lo com PHP, parte 1. Brasil. Dispo-
nível em: <http://www.plugmasters.com.br/sys/materias/251/1/O-que–AJAX-ecomo-
aplic-lo-com-PHP,-parte-1>. Acesso em: 10 out. 2006.
[18] KABIR, Mohammed J. Apache Server 2 Bible. In: . Apache: The Number One In
This Chapter Web Server. USA, New York: Hungry Minds, Inc., 2002, cap. 1, p. 03.
[19] KABIR, Mohammed J. Apache Server 2 Bible. In: . Apache: The Number One
In This Chapter Web Server. USA, New York: Hungry Minds, Inc., 2002, cap. 1, p.
05-07.
[23] W3C. XHTML 1.0 The Extensible HyperText Markup Language (Second Edi-
tion). Disponível em:<http://www.w3.org/TR/2002/REC-xhtml1-2002801/#xhtml>.
Acesso em: 05 nov. 2006.
[35] CONVERSE, T.; PARK, J.; MORGAN, C. PHP5 AND MySQL Bible. In: . PHP:
The Basics. USA. Indianapolis, Indiana: Wiley Publishing, Inc., 2004, cap. 1, p. 03-12.
[36] CONVERSE, T.; PARK, J.; MORGAN, C. PHP5 AND MySQL Bible. In: . PHP:
The Basics. USA. Indianapolis, Indiana: Wiley Publishing, Inc., 2004, cap. 1, p. 04.
[38] MILANI, André. Mysql - Guia do Programador. In: . Bem-Vindo ao MySQL. Brasil,
São Paulo: Novatec. 2007, cap. 1, p. 26 e 27.
Glossário
WWW ou World Wide Web área da Internet que contém documentos em formato
de hipermídia, uma combinação de hipertexto com
multimídia. Os documentos hipermídia da WWW
são chamados de páginas de Web e podem conter
textos, imagens e arquivos de áudio e vídeo, além
de ligações com outros documentos na rede. A carac-
terística multimídia da Web, tornou-a a porção mais
importante da Internet.
1. Oficina da NET(http://www.oficinadanet.com.br/webforum/index.php?showtopic=250);
3. CódigoFonte.NET (http://forum.codigofonte.net/index.php?showtopic=7441);
4. Imasters (http://forum.imasters.com.br/index.php?showtopic=213536);