14
ez3950 ez3950 SOAP & Z39.50 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto: phj @ dbc . dk

Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:[email protected]

Embed Size (px)

Citation preview

Page 1: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

ez3950ez3950SOAP & Z39.50 SOAP & Z39.50

ZIG December 2000 at LC

Poul Henrik Jørgensen, DBC

mailto:[email protected]

Page 2: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 2

Background & ObjectivesBackground & Objectives

Z39.50 Difficult to understand and debug– Use human-readable encoding

Technology seems obscure to implementors– Adopt emerging XML standards

Ignored by mainstream development tools– Use widespread XML tools

Object Oriented development paradigma– Specify Object RPC API

Page 3: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 3

Communication ModelsCommunication Models

Message-passing with optional queuing– E.g. ISO ILL (almost)– Applications must handle asynchronous messages from

concurrent external processes

Request/Response– E.g. Z39.50 (almost)– Client initiates request and waits for matching response

from remote process– Resembles Remote Procedure Calls (RPC)

Page 4: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 4

RPC StandardsRPC Standards

RPC Standards– SUN RPC, e.g. Network File System NFS– DCE RPC, e.g. Windows NT– HTTP

Object RPC Standards– CORBA Internet Inter-Orb Protocol, IIOP– MS Distributed COM, DCOM

Page 5: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 5

Object RPC ElementsObject RPC Elements

Request Object Id Interface Id Method Id Extension Headers Parameter Data

ResponseStatus codeExtension HeadersParameter Data

Page 6: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 6

SOAP OverviewSOAP Overview

HTTP supports most of the same functions as IIOP and DCOM (framing, connection management, object references)

XLM is well suited to represent to represent parameter data (cf. NDR and

SOAP = HTTP (transport) + XML (parameter encoding)

Page 7: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 7

SOAP ElementsSOAP Elements

HTTP Header– Request URI: SOAP ClassId and ObjectId– SOAPAction: InterfaceId and Method

SOAP Envelope (XML Structure)– Header (Optional protocol data)– Body

RPC Parameters Error Reports

Page 8: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 8

SOAP SOAP HTTP HTTP RequestRequest

POST /ZServ/Danbib HTTP/1.1Host: zoap.dbc.dkContent-Type: text/xml; charset="utf-8"Content-Length: 1234

SOAPAction: ="urn:ez3950:api" <soap:Envelope

...request parameters..</soap:Envelope>

Page 9: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 9

SOAPSOAP HTTP Response HTTP Response

200 OK

Content-Type: text/xml

Content-Length: 123

<Envelope

...response data & error reports...

</Envelope>

Page 10: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 10

eeZ3950Z3950: Z39.50: Z39.50 over SOAP over SOAP

Specification of e-Z39.50 APIComplete Z39.50 Protocol over SOAPASN.1 encoded by XERGeneral IR API (GIR:API) featuresAsyncronous Services excluded

– triggerResourceControlRequest– segmentRequest

Page 11: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 11

eZ3950 MethodseZ3950 Methods

Init search present deleteResultSet accessControl resourceControl

resourceReportscansortextendedServicesclose

Page 12: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 12

<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:preferredMessageSiz 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>

eZ3950 Init RequesteZ3950 Init Request

Page 13: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 13

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:initResponse xmlns:ns1="urn:ez3950:api" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="ns1:parm"> <implementationId xsi:type="xsd:string">"JAFER"</implementationId> <idAuthentication xsi:type="ns1:idAuthentication" xsi:null="true"/> <exceptionalRecordSize xsi:type="xsd:int">500000</exceptionalRecordSize> <preferredMessageSize xsi:type="xsd:int">16384</preferredMessageSize> <implementationVersion xsi:type="xsd:string">"JAFER"</implementationVersion> <result xsi:type="xsd:boolean">true</result> <options xsi:type="xsd:string">search present</options> </return> </ns1:initResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>

eZ3950 Init ResponseeZ3950 Init Response

Page 14: Ez3950 SOAP & Z39.50 ZIG December 2000 at LC Poul Henrik Jørgensen, DBC mailto:phj@dbc.dk

eZ3950 / Dec. 2000 Poul Henrik Jørgensen, DBC 14

Benefits of eZ3950Benefits of eZ3950

Supports entire Z90.50 protocol XER standard with tools to encode ASN.1 Readable XML encoding of Z39.50 Object RPC model of Z39.50 services Platform independent API for e-Z39.50 Tools from major vendors Acceptance among developers and executives