GILS GILS logo Home |  About |  Technology |  Standards |  Policy |  Index |  Search |

Microsoft Add-In's for Z39.50 Support

Architecture: In a typical  Microsoft architecture, Internet browser support is provided by an HTTP server such as MS Internet Information Server or equivalent. This support may or may not include ActiveX Server Pages (ASP). Access to data and information resources is mediated by various "providers", including an interface defined by the ActiveX Data Objects (ADO) specification. 

GILS support in this architecture can be easily accomplished by the addition of two components: a GILS-compliant server interface (ZBig) to support existing Z39.50 clients, and a GILS-aware client interface (ZX) to exploit existing Z39.50 servers. Many types of clients (HTTP, Microsoft applications and Z39.50) thereby gain full search access to both types of resources (Microsoft and all other Z39.50-searchable resources).  

1* = Request for Microsoft Resources from within an application such as the browser or Word. The request is sent to an instance of IIS, which submits the request against a resource exposed through an ADO interface.

2* = Request for Other Z39.50 Resources from within an application such as the browser or Word where the ZX Z39.50 client is not locally installed. The request is sent to an instance of IIS with ZX installed, ZX is loaded and the request is sent via the Z39.50 protocol to Other Z39.50 Resources.

3* = Request for any Z39.50 resource from within an application such as the browser or Word where the ZX Z39.50 client is locally installed. The protocol handler is loaded, and the request sent directly to the Z39.50 resource(s) without the need to pass through IIS.

4* = Other z39.50 clients such as gateways (GILS, FGDC, etc) requesting information from Microsoft Resources direct the request to an instance of ZBigServer which directs the request against a Microsoft Resource that is exposed as an ADO resource. ZX allows any MS client or Server application to request Z39.50 content from any Z39.50 resource. ZBigServer exposes Microsoft resources as GILS (or other Z39.50 Profile) resources, allowing integration with existing content accessible through Z39.50.

ZBig Server: This component provides a Z39.50 server interface to the Microsoft architecture, supporting search access by Z39.50 clients, including support of both the GILS and the GEO Profiles. For further details, see ZBig Server.

ZX Client: The ZX Client provides a Z39.50 client interface to the Microsoft architecture, supporting search access from Microsoft to any server compliant with Z39.50 including support of both the GILS and the GEO Profiles. A demonstration of ZX in the Microsoft Office environment is described at ZX Client.

Details on ZBig Server

The Z39.50 server software provides search access to various data and information resources. ZBig Server runs as a service on Microsoft Windows NT (server or workstation) version 4.0 or later and Windows 2000. In response to external requests from a Z39.50 client (version 3 compliant), ZBig Server send as search query to an ADO (Active X Data Objects) Provider, or an OLE DB or ODBC data source. ZBig Server will cache the results and present the results to the client, typically using GRS-1 record syntax.

ZBig Server supports the GILS Profile and the Geo Profile of Z39.50. ZBig Server also supports several Z39.50 request/response operations: Init, Search, Present, Delete Resultset, Scan, and Close. In addition to supporting search via the Microsoft ADO Provider interface, ZBig Server has been verified to work directly with various databases including Microsoft Access, Fox Pro, Paradox, Sybase, Oracle and Informix.

To provide access to a specific collection through ZBig Server, there must be an appropriate "view" ("Query" in MS Access) defined in the data source associated with the ADO Provider. This database view sets up the database access in the manner expected by the ZBig Server software.

Installation of the ZBig Server software involves:

  1. Copying the software to a location on your hard disk
  2. Editing two configuration files
  3. Creating a new view in your database
  4. Starting the server
  5. Registering the server so that others may discover it's whereabouts

Details on ZX Client

A Microsoft VB script shows how the ZX client software may be used to in the MS Office environment to perform a simple search and retrieval. The user selects text (such as a book title), then selects Z39.50 | Search from the menu bar associated with this document. This action launches a search against the Library of Congress test server for Z39.50. A new document is then created that contains a summary of the results of the search. 

This is the macro "searchOnSelection" that invokes the script "UserForm1"

Sub searchOnSelection()
Dim sTerm As String
Dim dlgSearch As UserForm1
sTerm = Selection.Text
Set dlgSearch = New UserForm1
dlgSearch.tbQueryString.Text = "@attr 3=3 @attr 1=1016 """ & sTerm & """"
End Sub

And, this is the VB Script launched by "UserForm1"

Sub RunSearch(sTarget, sDatabase, sQuery)
Dim sURL As String
Dim ox As DOMDocument
Dim osty As DOMDocument
Dim responseDoc As Document
Dim htmlProj As HTMLProjectItem
Dim output As String

sURL = "z3950://" & sTarget & "/" & sDatabase & "/search?query="
sURL = sURL & sQuery
sURL = sURL & "&recsyntax=USMARC"

'Load the query response into an XMLDOM
Set ox = New DOMDocument
ox.Load (sURL)
While ox.readyState < 4

'Load a stylesheet transformation
Set osty = New DOMDocument
osty.async = False
osty.Load ""

&apos;Apply the transformation
output = ox.transformNode(osty)

&apos;create a new document and insert the text as HTML
Set responseDoc = Documents.Add
Set htmlProj = responseDoc.HTMLProject.HTMLProjectItems(1)
htmlProj.Text = output
End Sub

Execution of this VB script occurs when the user selects Z39.50 | Search from the MS Word menu bar. This causes display of a dialog box ("UserForm1") populated with three values: the name of the host holding the Z39.50 database, the name of the database, and the search query string to be presented to the host/database. The script forms a zurl from these values plus the hard-coded record syntax parameter (USMARC). The script then defines a new DOMDocument and loads the DOMDocument, using the zurl as the parameter for the Load method.

When the DOMDocument is ready, the DOMDocument has been formed with its contents representing the results of the search given in the zurl. The script then presents this DOMDocument for processing against a stylesheet transform, which in this case is identified by a hard-coded value (

The final section of this script creates a new MS Office document and insert the transformed text as HTML.

Another Example (Javascript):

The following Javascript code takes a Z39.50 URL (zurl) as an argument. When the zurl is applied, a search will have been performed using the search query string and other parameters embedded in the zurl. (A description of the zurl format in use is found at /z-url.txt.)

function loadDocument(sURL)
  var oXML = new ActiveXObject("Microsoft.XMLDOM");
  oXML.async = false;
  return oXML;

// Specify the URL to load.  Note that with ZX installed, this can be a z39.50 URL.
var aURL = "z3950:// 1=1 \"falco p%25\")"

// load the xml document into the parser
var ox = loadDocument(aURL);

// do something with the document.  In this case, just dump the contents

RSS XML icon Comments |  Privacy Notice |  URL:/ms-addins.html