300 likes | 562 Views
Crossnet Systems Limited ------ Z39.50 Toolkits. Rob Bull bull@crxnet.com. What toolkits ?. Z39.50 toolkits for applications in C, C++ : ZedKit - UNIX platforms ZedKit - “Win-tel” platforms Z39.50 toolkit for applications in JAVA : ZedJAVA. ZedKit - UNIX.
E N D
Crossnet Systems Limited ------ Z39.50 Toolkits Rob Bull bull@crxnet.com Zig Tutorial, Stockholm
What toolkits ? • Z39.50 toolkits for applications in C, C++ : • ZedKit - UNIX platforms • ZedKit - “Win-tel” platforms • Z39.50 toolkit for applications in JAVA : • ZedJAVA Zig Tutorial, Stockholm
ZedKit - UNIX • It’s a Z39.50-1995 toolkit for C, C++ developers supporting TCP/IP and OSI • supports client and server development • Originally developed for the German Library Project - DBV OSI II • Its freeware • compile it with the GNU compiler or native compiler • for 32 or 64 bit platforms Zig Tutorial, Stockholm
What’s in the Package ? • toolkit libraries : • static libraries, shared libraries • daemon listener for server applications • working client and server test programs • test tool for batch testing • documentation : postscript, html • conventional GNU-like installation scripts • ./configure ./make • all source code included. Zig Tutorial, Stockholm
Using the API... • Z39.50 PDUs are represented by C-structures • structure naming closely matches ASN.1 naming in the Z39.50 standard annotated by the “Hungarian” notation • To send a PDU: • fill in a structure, call the appropriate send function • Receiving a PDU: • call the receive function, and the received PDU elements are put onto a C structure Zig Tutorial, Stockholm
For Example : typedef struct DbvInitializeReq { DbvOctetString *psReferenceId; DbvProtocolVersion pcProtocolVersion; DbvOptions pcOptions; Ulong ulPreferredMessageSize; Ulong ulMaximumMessageSize; DbvAuthentication *psAuthentication; DbvInternationalString *psImplementationId; DbvInternationalString *psImplementationName; DbvInternationalString *psImplementationVersion; DbvASN1External *psUserInformationField; DbvOtherInformation **ppsOtherInformation; } DbvInitializeReq; int DbvInitializeRequest( DbvAssocId lAssocId, DbvInitializeReq *psInitializeReq, DbvError **ppsDbvError ); Zig Tutorial, Stockholm
API Library Features... • API checks your structures when you call a function to send a PDU • it reports an error if a structure is incomplete or contains an illegal value • State Machine verifies orderly operations • PDUs can be logged to files • any bad or unknown PDUs are reported • memory release functions supplied for freeing structure content Zig Tutorial, Stockholm
Other Features... • BER encoding/decoding code is derived from an ASN.1 compiler • Client-side supports multiple associations • Server side is multi-process • 1 session per process • Supports concurrent operations Zig Tutorial, Stockholm
Test Facilities • These provide many examples of working sample code • Examples cover most of the API • Menu driven options • Test tool enables PDU parameters to be represented in files for batch testing Zig Tutorial, Stockholm
What’s supported ? • All Z39.50-1995 services • Record formats including : • GRS.1, MARC, OPAC, Explain, ES Task-Package, SUTRS, Summary • Extended Services: • periodic query schedule; export specification; export invocation; item order • User-Info Format - search result 1 Zig Tutorial, Stockholm
What’s supported ? • Character set and language negotiation • ISO-ILL (request and status) • some private externals registered by European Space Agency • some private externals registered for the CIP profile. Zig Tutorial, Stockholm
Originally developed for German Library Project, DBV OSI II in 1995 Subsequently extended for: German Library project - phase 2 with document ordering - version 1.9 in 1997 Several services and externals added during the ONE project, producing version 2.1 in 1997 Add-on for UCP Update, new sort response field and Char. Set/Language Negotiation 2 All versions have been independently tested Zedkit - history Zig Tutorial, Stockholm
Complementary Utilities • ONE project toolkit has some complimentary utilities: • Explain database toolkit (Crossnet) • CCL string to RPN conversion (Danish Library Centre) • RPN/SQL conversion (Joanneum Research) Zig Tutorial, Stockholm
Future Releases... • ONE-2 Project will add more features: • remaining extended services • more ISO-ILL • Z+SQL support has been added for use in the Z+SQL DSTC test-bed • toolkit code is currently being tested by DSTC Pty Ltd. and built into applications Zig Tutorial, Stockholm
Availability • www.crxnet.com • follow links from “Products” button • anon. Ftp : popeye.crxnet.com • /pub/dbvosi /pub/one Zig Tutorial, Stockholm
ZedKit - Windows • same API specification as UNIX version • for Windows 95, 98, NT and seems to like beta of Windows 2000 • commercial - development license • no run-time licenses, no royalties • out-of-the-box package: • Installshield installation • suited for Microsoft Visual C++ versions 5, 6 • can supply Win-32s version for client side Zig Tutorial, Stockholm
What’s in the Package ? • pre-built API libraries • sample client and server projects • documentation, postscript, html • warranty, support and updates Zig Tutorial, Stockholm
Features... • compliments UNIX application code • server is a multi-threaded application • same Z39.50 support as the UNIX version • services, record formats etc. Zig Tutorial, Stockholm
Future Releases... • Version 2.2 will compliment new features added to UNIX version later this year • version to support Z+SQL testbed • an OCX is in the labs Zig Tutorial, Stockholm
Demos • ZedKit - Windows server application linked to the US EPR database • ICONE Windows client • Web/Z39.50 client • (http://batman.crxnet.com/zedlib/index2.html) Zig Tutorial, Stockholm
Availability • Enquiries to: • info@crxnet.com • can supply: • electronic transfer • ship CD-ROM Zig Tutorial, Stockholm
ZedJAVA • joint product from DSTC/Crossnet • commercial - development license • no run-time licenses, no royalties • out-of-the-box: • Installshield kit for Windows platform • tar archive for UNIX platform • supplied for: JAVA 1.1 JAVA1.2 Zig Tutorial, Stockholm
What’s in the Package ? • set of JAVA packages and classes for all of Z39.50-1995 specification • application types: • applet, servelet, application • on-line documentation (javadoc) • tutorial • example applications Zig Tutorial, Stockholm
Example code: PresentRequest pr = new PresentRequest(); pr.s_resultSetId = new ResultSetId(); pr.s_resultSetId.value = new InternationalString(); pr.s_resultSetId.value.value = new ASN1GeneralString("Default"); pr.s_resultSetStartPoint = new ASN1Integer(1); pr.s_numberOfRecordsRequested = new ASN1Integer(1); pr.s_recordComposition = new PresentRequest_recordComposition(); pr.s_recordComposition.c_simple = new ElementSetNames(); pr.s_recordComposition.c_simple.c_genericElementSetName = new InternationalString(); pr.s_recordComposition.c_simple.c_genericElementSetName.value = new ASN1GeneralString(“B”); pr.s_preferredRecordSyntax = new ASN1ObjectIdentifier(recordSyntax_USmarc); PDU pdu = new PDU(); pdu.c_presentRequest = pr; // Send the PresentRequest pdu.ber_encode().output(dest); dest.flush(); Zig Tutorial, Stockholm
Features : • Inherent object-oriented design • ZedJAVA class code is created from an ASN.1 to JAVA tool from DSTC • encoding methods • decoding methods • tostring methods • sample code • applications, MARC classes Zig Tutorial, Stockholm
Future Releases... • support for Z+SQL testbed and the SQL-RS record syntax • support for ASN.1 real types • support for Z39.50-1995 amendments • possible version for XER Zig Tutorial, Stockholm
Demos • ZedJAVA documentation • ZedJAVA with a test Applet Zig Tutorial, Stockholm
Availability • Enquiries to: • info@crxnet.com • can supply: • electronic transfer • ship CD-ROM Zig Tutorial, Stockholm
Thank you for your time !! Any questions ? Zig Tutorial, Stockholm