Title: Crossnet Systems Limited
1- Crossnet Systems Limited
- ------
- Z39.50 Toolkits
Rob Bull bull_at_crxnet.com
2What toolkits ?
- Z39.50 toolkits for applications in C, C
- ZedKit - UNIX platforms
- ZedKit - Win-tel platforms
- Z39.50 toolkit for applications in JAVA
- ZedJAVA
3ZedKit - UNIX
- Its 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
4Whats 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.
5Using 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
6For 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 )
7API 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
8Other 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
9Test 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
10Whats 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
11Whats 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.
12Zedkit - history
- 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
13Complementary 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)
14Future Releases...
- ONE-2 Project will add more features
- remaining extended services
- more ISO-ILL
- ZSQL support has been added for use in the ZSQL
DSTC test-bed - toolkit code is currently being tested by DSTC
Pty Ltd. and built into applications
15Availability
- www.crxnet.com
- follow links from Products button
- anon. Ftp popeye.crxnet.com
- /pub/dbvosi /pub/one
16ZedKit - 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
17Whats in the Package ?
- pre-built API libraries
- sample client and server projects
- documentation, postscript, html
- warranty, support and updates
18Features...
- compliments UNIX application code
- server is a multi-threaded application
- same Z39.50 support as the UNIX version
- services, record formats etc.
19Future Releases...
- Version 2.2 will compliment new features added to
UNIX version later this year - version to support ZSQL testbed
- an OCX is in the labs
20Demos
- ZedKit - Windows server application linked to the
US EPR database - ICONE Windows client
- Web/Z39.50 client
- (http//batman.crxnet.com/zedlib/index2.html)
21Availability
- Enquiries to
- info_at_crxnet.com
- can supply
- electronic transfer
- ship CD-ROM
22ZedJAVA
- 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
23Whats 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
24Example code
PresentRequest pr new PresentRequest() pr.s_res
ultSetId new ResultSetId() pr.s_resultSetId.val
ue new InternationalString() pr.s_resultSetId.v
alue.value new ASN1GeneralString("Default") pr.
s_resultSetStartPoint new ASN1Integer(1) pr.s_n
umberOfRecordsRequested new ASN1Integer(1) pr.s
_recordComposition new PresentRequest_recordComp
osition() pr.s_recordComposition.c_simple new
ElementSetNames() pr.s_recordComposition.c_simple
.c_genericElementSetName new
InternationalString() pr.s_recordComposition.c_si
mple.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().ou
tput(dest) dest.flush()
25Features
- 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
26Future Releases...
- support for ZSQL testbed and the SQL-RS record
syntax - support for ASN.1 real types
- support for Z39.50-1995 amendments
- possible version for XER
27Demos
- ZedJAVA documentation
- ZedJAVA with a test Applet
28Availability
- Enquiries to
- info_at_crxnet.com
- can supply
- electronic transfer
- ship CD-ROM
29Thank you for your time !! Any questions ?