• Nenhum resultado encontrado

9. O Padrão Z350

9.2. Conceitos Básicos sobre o Padrão Z39.50

O padrão Z39.50 é um protocolo de troca de mensagens (especifica a estrutura e a

forma dos dados, e as regras de intercâmbio) permitindo que um cliente pesquise em bancos

de dados situados em servidores e recupere a lista de registros que satisfaz o critério de

pesquisa e os registros individuais (EVANS, 1997a).

O Z39.50 não especifica uma Interface de Programas de Aplicação (API

-Applications Program Interface) para os serviços de cliente e servidor, fornecendo uma

interface padronizada para lidar com as interações entre eles. (LYNCH, 1997).

Fazendo uma analogia com um banco de dados tradicional - que consiste em três

seções básicas, como indicado na figura abaixo - a interface do usuário é o computador ou o

terminal onde o usuário entra com os termos de pesquisa, utilizando uma interface API. Entre

a interface do usuário e o mecanismo de pesquisa existe uma camada (layer) que faz a ponte

entre os dois.

Figura C- Esquema de Banco de Dados Tradicional

O sistema Z39.50 substitui o componente da interface do usuário por um cliente

Z39.50 e a camada do SGBD por um servidor Z39.50. Pode-se, também, utilizar um cliente

WWW ou browser (como o Netscape ou Explorer) ao invés de um cliente Z39.50 e acionar um

serviço de tradução WWW–Z39.50 (o gateway) através de formulários (web-forms), como

indicado na figura abaixo:

Figura D - Esquema do Sistema Z39.50 com Cliente WWW

O servidor Z39.50 estabelece um mecanismo padrão de fazer pesquisas, o qual,

junto com um dicionário de dados, traduz para cada Sistema Gerenciador de Banco de Dados

a pesquisa requerida. A vantagem desse esquema sobre o esquema tradicional reside na clara

separação entre a interface do usuário e o mecanismo de pesquisa, significando, na prática,

que uma única interface possa ser usada para acessar diferentes tipos de mecanismos de

pesquisa e bancos de dados. Este novo componente - o servidor Z39.50 - fornece um serviço

de tradução de forma a tornar todo esse processo possível.

Analisando-se as três interações (“frontend”, cliente-servidor e “backend”) indicadas

na figura acima, tem-se um panorama básico sobre o protocolo Z39.50, como apresentado nas

próximas seções (SIRSI, 1996).

9.2.1. Interação “Frontend”

Para passar dados entre um cliente WWW (1) e um servidor Z39.50 (6) se utiliza, no

cliente WWW (1), um formulário para entrada dos dados que se quer consultar, com váriaveis

predefinidas, tudo montado numa cadeia (string) de consulta CGI. A Interface de Portão

Comum (CGI - Common Gateway Interface) é um padrão que define como intermediar um

servidor WWW com quaisquer outros programas. Esta cadeia é então enviada para um

servidor WWW (2). Um programa CGI, agindo como um gateway (portão) WWW/Z39.50 (3),

extrai as variáveis da cadeia de consulta, e as traduz num formato que possa ser reconhecido

pelo servidor Z39.50 (6).

No retorno, os dados recebidos pelo gateway, a partir do servidor Z39.50 (6), são

formatados adequadamente e enviados, como saída, dentro de uma estrutura de documento

html. Assim, se os registros retornados como resultado de uma pesquisa estiverem com um

formato particular (por exemplo, representado na linguagem SGML -Standard Generalized

Markup Language - que visa a estruturação de documentos eletrônicos, e descrita no capítulo

5), então o gateway deve ser capaz de formatar os registros adequadamente.

Embora a transmissão e a tradução de dados entre o WWW (1) e o Z39.50 (6) seja

relativamente simples, existe uma diferença em como os dois protocolos (http e Z39.50)

tratam as conexões. No protocolo http uma conexão permanece ativa enquanto o documento é

transmitido. O protocolo Z39.50, por outro lado, requer que durante a sessão a ligação seja

mantida (stateful), e composta de, no mínimo, três interações (init, search e present), definidas

na próxima seção.

O frontend age também como um filtro, permitindo que um cliente faça pesquisas

dirigidas através de parâmetros específicos para a base de dados disponibilizada. Por

exemplo, no capítulo 10 é apresentada uma conexão Z39.50 com o servidor da CPRM. Do

formulário de pesquisa exemplificado na seção 10.3.2, pode-se extrair o seguinte fragmento,

apresentado na figura abaixo, cujo correspondente código HTML é descrito logo em seguida.

Figura E - Fragmento de uma Tela de Pesquisa Z39.50

<SELECT NAME=”use_1”>

<OPTION VALUE=”1035”><!FullText> Qualquer Campo

<OPTION VALUE=”4”><!Title>Título

<OPTION VALUE=”3815”><!Edition>Edição

<OPTION VALUE=”1003”><!Originator>Autor

<OPTION VALUE=”3004”><!cntorpg>Organização para contato

<INPUT NAME=”rel_1” VALUE=”3” TYPE=”hidden”> contém

<INPUT NAME=”term_1” VALUE=>

<SELECT NAME=”BOOLEAN_OP_1”>

<OPTION SELECTED VALUE=”” >

<OPTION VALUE=”AND”>AND

<OPTION VALUE=”OR”>OR

<OPTION VALUE=”ANDNOT”>ANDNOT </SELECT>

<SELECT NAME=”use_2”>

<OPTION VALUE=”1035”><!FullText> Qualquer Campo

<INPUT NAME=”rel_2” VALUE=”3” TYPE=”hidden”> contém

<INPUT NAME=”term_2” VALUE=>

<SELECT NAME=”num_use_1”>

Este exemplo, usando o software ISite (apresentado no capítulo 10), usa os nomes

de variáveis rel_1 para o primeiro termo de pesquisa e use_1 para o valor do atributo

associado. Neste caso, o valor escondido 1035 representa o atributo bib1 (anexo 1) Anywhere

(Qualquer Campo), fornecendo uma pesquisa em todo o texto. Para uma pesquisa mais

detalhada, diferentes valores para a variável use_1 podem ser utilizados, correspondendo a

campos específicos listados no conjunto de atributos bib1 (anexo 1), como por exemplo: título

(valor escondido 4) ou edição (valor escondido 3815). Estes conceitos ficarão mais claros na

seção que explica os perfis, neste mesmo capítulo.

9.2.2. Interação Cliente-Servidor

É importante destacar que o servidor Z39.50 (6) é cliente para o servidor de Banco

de Dados. Nesse sentido, a interação descrita nesta seção é a que ocorre entre o cliente

Z39.50 e o servidor de Banco de Dados.

Os dados que transitam pelo Z39.50 são transportados em Unidades de Dados de

Protocolo (PDU - Protocol Data Units). Além dos dados propriamente ditos (termos de

pesquisa do cliente para o servidor, registros do servidor para o cliente, etc.), cada PDU

carrega informação adicional sobre a sessão, além de descrições dos dados e dos parâmetros

de pesquisa.

Uma sessão Z39.50 básica se compõe de três serviços:

Init: estabelecimento de uma conexão e negociação dos parâmetros da sessão.

Durante o intercâmbio Init, que começa quando um cliente Z39.50 conecta-se a

um servidor Z39.50, são trocadas informações sobre as capacidades e

preferências do cliente e do servidor.

Search: envio de comandos de pesquisa e o recebimento de um conjunto de

resultados da pesquisa. Uma PDU de search consiste de um conjunto de

atributos, de tipo de consulta, seguidos de uma consulta, segundo o formato de

Notação Polonesa Reversa2 (RPN - Reverse Polish Notation). Algumas

características desse serviço são:

♦ Podem existir, geralmente, dois tipos de consultas: os Tipo-1 e o

Tipo-101. O Tipo-1 é uma consulta RPN e o Tipo-101 é uma consulta

RPN Estendida (ERPN). Esta última permite a inclusão de atributos

que definem campos, proximidade, etc.

♦ Na versão 3 do protocolo Z39.50 (Z39.50-1995), apresentado no

apêndice 4, os dois tipos de consultas são efetivamente idênticos. Na

PDU são incluídas também as seguintes informações: sintaxe

preferencial de registro, nomes dos bancos de dados e limites do

conjunto de resultados.

♦ O servidor de banco de dados cria um conjunto de resultados

consistindo de ponteiros para registros que satisfaçam a requisição

de pesquisa, modificados, se necessário, por restrições no tamanho e

faixa de valores do conjunto de resultados.

Present: escolha de itens, a partir do conjunto de resultados da pesquisa, e o

recebimento dos registros correspondentes. A requisição Present do cliente

2

A Notação Polonesa Reversa foi apresentada, pela primeira vez, num livro do matemático

polonês Jan Lukasiewicz sobre lógica formal. Mostrou-se que as expressões matemáticas poderiam ser

especificadas sem parênteses, posicionando-se os operadores antes (Notação Polonesa) ou depois

(Notação Polonesa Reversa) dos operandos. Por exemplo, a expressão (4 + 5) * 6 pode ser

expressa em RPN como 4 5 + 6 * , ou seja, a expressão é avaliada da esquerda para a

direita, num esquema de pilha (o último elemento a entrar é o primeiro a sair). A Notação Polonesa

Reversa também é conhecida como notação pósfixada.

WWW, especifica alguns ou todos os ponteiros de registros referidos na

resposta Search. Em adição aos parâmetros descrevendo o número e faixa de

valores dos registros, a requisição Present também inclui a Sintaxe

Preferencial de Registro, como na requisição Search.

Estes três serviços constituem um conjunto mínimo de serviços para o

funcionamento do protocolo Z39.50.

9.2.3. Interação “Backend”

O backend do sistema é onde o servidor de banco de dados, através de um

mecanismo de pesquisa particular do Sistema Gerenciador de Banco de Dados, interage com

o servidor Z39.50.

O formato do banco de dados não é relevante, desde que o mecanismo de pesquisa

seja capaz de consultar os dados. A complexidade da interação backend depende da

sofisticação do mecanismo de pesquisa do Sistema Gerenciador de Banco de Dados utilizado.