130 likes | 288 Views
Z39.50 & XML. Poul Henrik Jørgensen, phj@dbc.dk Danish Bibliographic Centre www.dbc.dk. Background. Moderate number of Z39.50 Servers Little take-up outside major research libraries Many limited to basic search and retrieval Mostly used for Web-to-Z gateways
E N D
Z39.50 & XML Poul Henrik Jørgensen, phj@dbc.dk Danish Bibliographic Centre www.dbc.dk
Background • Moderate number of Z39.50 Servers • Little take-up outside major research libraries • Many limited to basic search and retrieval • Mostly used for Web-to-Z gateways • Requirements for related services, e.g. Item Order or Circulation • Time-consuming to implementZ39.50 Poul Henrik Jørgensen, DBC
Issues • Technology is alien to mainstream IT infrastructure • Limited development tools • Few developers • Proprietary C-libraries • Inaccessible specifications. • Plethora of esoteric features • No common (object-based) API • BER data format is not eye-readable Poul Henrik Jørgensen, DBC
Objectives • Leverage investments in existing Z39.50 Services and specifications • Simplify Z39.50 implementation • Facilitate interoperability with other relevant standards • Foster migration of Z39.50 functionality to mainstream IT technologies Poul Henrik Jørgensen, DBC
First Steps • Introduce XML as Z39.50 Transfer Syntax • Specify new Z39.50 data structures as XML Schemas • Encode complex hierarchical data within XML documents • Use XML as alternative to GRS-1 Poul Henrik Jørgensen, DBC
XML structures in Z39.50 • Holdings XML Schema • www.portia.dk/zholdings/Holdings6a/HoldingsSchema6a.xsd • ExplainLite Server information • www.one-2.org • Dublin Core/RDF • Extended Services Task Packages Poul Henrik Jørgensen, DBC
SOAP Overview • SOAP is a protocol to transport XML data • Initially designed for Remote Procedure Calls • Utilise normal HTTP POST to send a Request and receive Response from a Web (SOAP) Server • Parameters are carried as XML structures within normal HTTP body • Primary input to W3C XML Protocol work • http://www.w3.org/TR/SOAP/ Poul Henrik Jørgensen, DBC
ZML: Z39.50 over SOAP • Existing ASN.a protocol elements encoded as XER Structures • Relevant Z39.50 Services mapped to SOAP Request/Response functions over HTTP • Protocol parameters encoded as XML SOAP parameters via XER • Existing Web-to-Z gateways may be enhanced with SOAP-to-Z gateways Poul Henrik Jørgensen, DBC
Init Request Example <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Body> <ez:Init xmlns:ez="urn:ez3950:api" version="1.0"> <ez:protocolVersion xsi:type="xsd:string"> version-1 version-2</ez:protocolVersion> <ez:options xsi:type="xsd:string">search present scan</ez:options> <ez:preferredMessageSize xsi:type="xsd:int">16384</ez:preferredMessageSize> <ez:exceptionalRecordSize xsi:type="xsd:int">500000</ez:exceptionalRecordSize> <ez:implementationId xsi:type="xsd:string">1995</ez:implementationId> <ez:implementationName xsi:type="xsd:string"> OCLC z39.50 API</ez:implementationName> <ez:implementationVersion xsi:type="xsd:string">3.0</ez:implementationVersion> </ez:Init> </SOAP:Body> </SOAP:Envelope> Poul Henrik Jørgensen, DBC
Interface Specs. in WSDL • WSDL is a formal top-down method to specify interfaces to Web (SOAP) Services • http://www.w3.org/Submission/2001/07/ • General interfaces to eZ3950, NCIP and related protocols can be specified with XML Schemas and WSDL • http://www.portia.dk/pubs/NCIP/NCIP_v0_1a.xsd • http://www.portia.dk/pubs/NCIP/PortTypes.wsdl Poul Henrik Jørgensen, DBC
NCIP WSDL Example <!--Authenticate User porttype--> <message name="AuthenticateUserRequest"> <partname="body" element="xsd1:AuthenticateUser" /> </message> <message name="AuthenticateUserResponse"> <partname="body" element="xsd1:AuthenticateUserResponse"/> </message> <portType name="AuthenticateUserPortType"> <operation name="AuthenticateUser"> <inputmessage="tns:AuthenticateUserRequest" /> <outputmessage="tns:AuthenticateUserResponse"/> </operation> </portType> Poul Henrik Jørgensen, DBC
ZML Development • ZML Profile of Z39.50 over SOAP • Optional Init & Close • Search & Scan based on Bath Profile • ISO2709/XML Present format • by Ray Denenberg & P.H. Jørgensen • ZML Server & Client prototypes • Common Z39.50 Testbed Poul Henrik Jørgensen, DBC
Conclusions • XML is already implemented within several Z39.50 functions • XML is easier and more flexible than ASN.1/BER in practice • Most of Z39.50 can be migráted to XML/SOAP (eZ3950) • Interoperability with related SOAP based protocols can be facilitated via comon WSDL interface specifications Poul Henrik Jørgensen, DBC