next up previous
Next: Anfragen (Queries) Up: Technische Grundlagen Previous: Technische Grundlagen

Protokoll-Dienste (Information Retrieval Services)

In Z39.50 sind die für das Information Retrieval notwendigen Operationen als Protokoll-Dienste spezifiziert. Nachfolgend werden diese mit ihrer Funktionsbeschreibung aufgeführt. Dienste, die mit einem `*' versehen sind, wurden erst ab der Protokoll-Version 3 (Z39.50-1995) aufgenommen.

Initialize:
Über diesen Dienst kann sich die Client-Anwendung gegenüber der Server-Anwendung authentifizieren. Weiterhin werden für die Dauer der Z39.50-Verbindung gültige, protokollspezifische Parameter (z.B. Protokollversion, anwendbare Dienste, maximale Größe zu übertragender Datenbank-Records) ausgehandelt.
Das Client-System initiiert diesen Dienst durch das Senden einer Initialize-Request-PDU. Der Server bestätigt in der zugehörigen Initialize-Response-PDU die Initialisierung oder lehnt diese ab. Im letzteren Fall sind - außer erneutem Initialisierungs-Dienst - keine weiteren Dienste anwendbar.

Search:
Der Dienst wird vom Client durch das Senden einer Search-Request-PDU initiiert. Die PDU enthält u.a. die im Server-System auszuführende Query, den Namen des durch Ausführung der Query zu erzeugenden ResultSets und den Namen des für die Übertragung der Rechercheergebnisse bevorzugten Formats. Die Server-Anwendung überträgt in der Search-Response-PDU das Resultat der Query (Anzahl der Treffer), Statusinformation und ggf. ein oder mehrere Records.

Retrieve:
(besteht aus 2 Diensten)

Present:
Die Client-Anwendung fordert über diesen Dienst die Übertragung von Suchergebnissen (Datenbank-Records) an. In der Present-Request-PDU spezifiziert der Client neben dem Namen des ResultSets, auf das sich der Present-Request bezieht, die Nummern der gewünschten Records und das bevorzugte Übertragungsformat. Die Server-Anwendung überträgt die gewünschten Records in der zugehörigen Present-Response-PDU.

Segment*:
Hiermit kann eine Optimierung speziell der Übertragung großer Datenbank-Records zwischen Server und Client-System vorgenommen werden. Für den Dienst sind zwei Varianten definiert:
Level 1 Segmentation läßt nur die Übertragung vollständiger Datenbank-Records innerhalb eines Segments zu (ein Datenbank-Record darf nicht gesplittet werden).
Level 2 Segmentation ermöglicht, daß ein zu übertragender Datenbank-Record auf zwei oder mehr aufeinanderfolgende Segmente aufgesplittet wird.

Result-Set-Delete:
Damit können einzelne oder alle im Server-System innerhalb der aktuellen Z39.50-Verbindung erzeugter ResultSets gelöscht werden. Der Server bestätigt in der Response-PDU die durchgeführten Aktionen.

Browse/Scan*:
Dieser Dienst bietet dem Benutzer die Möglichkeit, (im Server-System lokalisierte) geordnete Listen (z.B. Autoren-, Titel-Index) zu durchsuchen. Die Server-Anwendung liefert die Ergebnisse in der entsprechenden Scan-Response-PDU.

Sort*:
Mittels Sort erhält der Benutzer die Möglichkeit, ein im Server-System lokalisiertes ResultSet (das Ergebnis einer vorangegangenen Suche) zu sortieren. Die Server-Anwendung zeigt dem Benutzer in der zugehörigen Sort-Response-PDU das Ergebnis der Sortieroperation (erfolgreich, nicht-erfolgreich) an.

Access-Control:
Der Dienst wird von der Server-Anwendung initiiert und erlaubt es, eine laufende Operation zu unterbrechen, um von der Client-Anwendung weitere Authentifizierungs-Information für den Zugriff auf eine Datenbank oder einen einzelnen Datenbank-Record zu fordern. Die Client-Anwendung muß auf die Anforderung mit einer Respond-PDU antworten. Abhängig davon wird die Bearbeitung fortgesetzt oder nicht.

Accounting/Resource Control
(besteht aus 3 Diensten)

Resource-Control:
Mit diesem Dienst kann das Server-System eine laufende Operation unterbrechen, um das Client-System zu informieren, daß vereinbarte Ressourcen-Limits überschritten wurden, bzw. voraussichtlich überschritten werden. Dieser Dienst muß nur durch den Client quittiert werden, wenn das Server-System in der Resource-Control-Request-PDU anzeigt, daß es eine Antwort erwartet. Wenn ja, wird die laufende Operation bis zum Eintreffen der Resource-Control-Response-PDU unterbrochen. Im anderen Fall wird die Operation weiter ausgeführt.

Trigger-Resource-Control:
Der Dienst bietet dem Benutzer die Möglichkeit, vom Server-System das Senden einer zu bestätigenden Resource-Control-Request-PDU, das Senden einer nicht zu bestätigenden Resource-Control-Request-PDU oder den Abbruch der laufenden Operation zu fordern. Der Dienst ist nicht-bestätigt und es bleibt dem Server-System überlassen, ob es die geforderte Aktion ausführt oder nicht. Die Client-Anwendung kann diesen Dienst jederzeit anfordern. Falls der Benutzer den Abbruch der laufenden Operation angefordert hat und das Server-System die Operation abbricht, muß das Server-System eine der abgebrochenen Operation entsprechende Response-PDU (Search-Response-, Present-Response-PDU usw.) an das Client-System übertragen.

Resource-Report:
Das Client-System kann über diesen Dienst vom Server-System Information über die bis zum momentanen Zeitpunkt angefallenen Kosten (verbrauchten Ressourcen) anfordern. Das Server-System stellt die Information in einer entsprechenden Resource-Report-Response-PDU bereit.

Explain*:
Der Dienst erlaubt dem Benutzer bzw. der Client-Anwendung Informationen über das Server-System abzufragen. Die Server-Anwendung stellt dazu globale Information (Betriebszeiten, Nutzungskosten usw.) und Information über die verfügbaren Datenbanken (Namen der Datenbanken, unterstützte Attribute, Record-Syntax, Element-Spezifikationen usw.) in einer speziellen Explain Database zur Verfügung. Die Client-Anwendung kann diese Datenbank über die Dienste Search und Present abfragen.

Extended Service*:
Über diesen Dienst initiiert die Client-Anwendung die Ausführung einer sog. Extended Service Task im Server-System. Die Ausführung der Task erfolgt i.a. außerhalb der Z39.50-Verbindung. Über den Dienst Search kann sich der Benutzer, durch Abfrage einer speziellen, im Server-System lokalisierten Extended Services Database, über den Bearbeitungszustand der Task informieren. Derzeit sind folgende Extended Services definiert:

  • PersistentResult Set: Speicherung einer Ergebnismenge im Server zur späteren Verwendung
  • PersistentQuery: Speicherung einer Anfrage im Server zur späteren Verwendung
  • PeriodicQuerySchedule: Initiiere eine periodische Abfrage
  • ItemOrder: Bestellungen nicht rückgabepflichtiger Objekte (z.B. Aufsatzkopien etc.) können im entfernten System hinterlegt werden
  • DatabaseUpdate
  • ExportSpecification: besteht aus 2 Teilen

    1. Erzeuge eine neue Export-Spezifikation
    2. Verwende eine vorher definierte Export-Spezifikation

Termination*:
Dieser Service ermöglicht der Client- oder Server-Anwendung die Z39.50-Verbindung zu schließen, ohne dabei die physikalische Verbindung zu beenden.

Multiple-Concurrent-Operations*:
In den Protokollversionen 1 und 2 laufen alle Operationen streng sequentiell ab. Nach Senden beispielsweise einer Search-Request-PDU darf die Client-Anwendung bis zum Eintreffen der Search-Response-PDU keine weiteren Request-PDU´s versenden. In Version 3 sind, falls sich Client- und Server-Anwendung bei der Initialisierung der Z39.50-Verbindung darauf geeinigt haben, parallele Operationen erlaubt, d.h. der Benutzer (die Client-Anwendung) kann in diesem Fall mehrere z.B. Search-Request-PDU´s versenden, ohne auf das Eintreffen der Ergebnisse vorangegangener Requests zu warten. Die Unterscheidung dieser Anfragen wird durch einen Parameter (ReferenceId) gewährleistet.

Die Basis-Dienste (Basic-Services), die jede protokollkonforme Z39.50-Applikation unterstützen muß, sind Initialize, Search und Present. Zusätzlich werden von den existierenden Implementationen die Dienste Delete-Result-Set sowie Scan angeboten. Welche Dienste innerhalb einer Client-Server Verbindung anwendbar sind, wird dynamisch über den Dienst Initialize vereinbart.


next up previous
Next: Anfragen (Queries) Up: Technische Grundlagen Previous: Technische Grundlagen

Timo Boehme
Tue Jun 3 21:30:30 MET DST 1997