\documentclass{llncs}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[portuges]{babel}
\usepackage{aeguill}
%\usepackage{a4wide}
\usepackage{url}
\usepackage{graphicx}
\usepackage{fancyvrb}
\fvset{fontsize=\small, numbers=left, frame=single, numberblanklines=false, xleftmargin=6mm}
\begin{document}

\def\NAVEGANTE{\textsf{Navegante}}

\title{\NAVEGANTE{}: Um proxy de ordem superior\\
  para navegação intrusiva}

\author{José João Almeida \and Alberto Simões}


\institute{  \url{{jj|ambs}@di.uminho.pt}}

\maketitle

Um proxy é um serviço disponível na Internet que permite que clientes
façam ligações indirectas a outros serviços. Os casos mais típicos são
as proxy de instituições que fazem \emph{caching} de documentos, sem
de qualquer forma os alterar. Outros proxies limitam-se a barrar
determinadas páginas.

No entanto, existe um conjunto de ferramentas que podem ser vistas
como proxies que processam e \textbf{alteram} estruturalmente
documentos HTML. Exemplos destas ferramentas são um ``corrector
ortográfico on-line,'', ``detector de língua'' ou mesmo um
``melhorador de acessibilidade'' de páginas Web.

Todas estas ferramentas podem ser vistas como um processador genérico
que, mediante uma função de processamento, analisa os documentos HTML.
Este processador (\NAVEGANTE{}) funciona como um proxy que aplica o
processador às páginas HTML. Na verdade, o \NAVEGANTE{} não está
implementado (actualmente) como um proxy habitual, mas como uma CGI
com um comportamento semelhante ao de um proxy.

Dado um URL, o \NAVEGANTE{} processa-o e mostra o resultado ao
utilizador. Ao seguir ligações para outros documentos HTML o
\NAVEGANTE{} intromete-se de forma a que continue a ser utilizado nos
documentos seguintes.
Para obter este funcionamento, o \NAVEGANTE{} tem de ter em atenção
três pontos durante a sua actuação:
\begin{itemize}
\item \textbf{chamada recursiva a outros documentos HTML:}\\
  Depois de analisada uma página HTML é natural que o utilizador
  queira seguir uma ligação do documento que está a ver, e continuar a
  analisar as páginas a si ligadas. Dessa forma, é importante que o
  \NAVEGANTE{} altere as ligações do documento de forma a que os
  URL invocados sejam passados ao processador.

\item \textbf{preservação de ligações a documentos externos:}\\
  As ligações a imagens, CSS e outros elementos externos (documentos
  PDF, PS, ZIPs, etc) não devem invocar o \NAVEGANTE{} mas
  precisam de ser alteradas para URLs absolutos.

\item \textbf{preservação de determinados elementos HTML:}\\
  Existem elementos HTML que não devem ser processados. Exemplos
  típicos desses elementos são o \texttt{script} e \texttt{style} que,
  por conter código, não devem ser analisados pelo processador.
\end{itemize}
Actualmente estamos a usar o \NAVEGANTE{} para um corrector
ortográfico on-line. A função de processamento é chamada para cada
elemento PCDATA existente no documento. A função analisa o texto e
retorna um HTML em que o texto aparece com os erros ortográficos
marcados.

\end{document}
