RE: ZNG: "Z39.50 Next Generation"

> -----Original Message-----
> From: Joe Futrelle [mailto:futrelle@ncsa.uiuc.edu]
> Sent: Friday, July 13, 2001 10:56 AM
> To: ZIG
> Subject: Re: ZNG: "Z39.50 Next Generation"
> What is the feeling of ZNG proponents about XER?  To me the advantage
> it has over XML-Schema is its nice, simple system for encoding binary
> data.
> 
> A much more conservative approach to "modernizing" Z39.50 is to encode
> protocol messages in XER and transport them over HTTP, say in SOAP.

We weren't looking for conservative.  We were looking to make it easy for
non-Z39.50 implementors to use our databases.  I have developers here at
OCLC that are desperate for something much lighter than embedded Z39.50
clients to fetch records out of databases.

If a developer needs the title of the record with ISBN of 12345, they can do
it either of these two ways:

Z39.50 Classic: Open a connection to a Z39.50 server.  Create an
InitRequest.  Send the request.  Try to read the response (not a trivial
task, especially with indefinite length BER).  Decode the response and
verify that a session has been established.  Create a SearchRequest for term
"12345" with Use attribute=7, Relation attribute=3, Position attribute=3,
Structure attribute=? (should that be a Word or a Phrase or a Key?),
Truncation attribute=100 and God only knows what the Completeness attribute
means anyway.  Send the request and wait for the response.  Verify that the
search worked.  Create a PresentRequest asking for the first (and hopefully
only) document in USMARC format.  Send the request and wait for the
response.  Get the record out of the response, give it to the USMARC record
handling utility and get the title.  Close the connection to the Z39.50
server.

ZNG: Make the URL, send it and get the response (done with these six lines
of Java code: URLConnection uc= new URLConnection(new URL(
"http://www.firstsearch.oclc.org/WorldCat/recordSchema=DublinCore?isbn=12345
"));
int reclen=uc.getContentLength(); InputStream is=uc.getInputStream(); byte[]
buf=new byte[reclen]; while((len=is.read(buf, offset, buf.length-offset))>0)
offset+=len; is.close(); )
Give the response to the XML record handling utility and get the title.

We've been developing Z39.50 utilities here at OCLC for more than ten years
now and have considerable expertise in the area.  But we constantly have
problems trying to explain how to do this to our programmers.  The new way
to do it is trivial and uses standard tools that we expect all programmers
to understand.

Ralph

Ralph

Received on Friday, 13 July 2001 11:41:07 UTC