# Presentation: 048379

## NISO Circulation Interchange Protocol	

- A Standard in Development
- Pat Stevens, OCLC
- July 13, 2000

## Topics

- Background
- Work to date
- Approach
- Progress
- Challenges

## What Do Users Want?

- Simple access
- Reliable, fast delivery
- I.e., services like Amazon.com

## More Specifically...

- Easy, powerful, one-stop search and find
- “Request” requiring minimal keying
- Ability to track request (e.g. UPS)
- Guaranteed, fast delivery
- Integrated management of their loans (from local collection and outside...)

## Make it Easy!  (example)

- John Smith - items charged:
- _British Art in the 20th Century_        	Due 8/15/00
*	**	**[borrowed from local collection]*
- Bradshaw, T.  _Bloomsbury Artists_    	Due 7/30/00
- 		*[requested and borrowed directly from consortial partner]*
- Holroyd, M.  _The Art of Dora Carrington_  	Due 7/15/00
*	**	**[not in local collection or consortium; borrowed from *
*	**	**unaffiliated library via traditional ILL]  *
- Gombrich, E.  _History of Art_  		Due 7/10/00 10:00 pm
*	**	**[E-book, charged for use online]*

## New Supply Models

- Local Library

## Vendors & Systems - potential uses of  protocol

**ILS/**
**Circ Sys**

**ILL**

**ILL**

**ILS/**
**Circ Sys**

**ILS/**
**Circ Sys**

**Self**
**Service**

**ILS/**
**Circ Sys**

## The Standard and Scope

- A repertoire of messages & associated rules of syntax and semantics
- Between and among computer-based applications
- to effect circulation
- to support controlled access to certain electronic resources or other library services
-  Not to define circulation functions

## Supports 3 application areas

- Direct consortial borrowing
- Circulation/Interlibrary Loan Interaction
- Self-service Circulation
- The standard’s test bed
- It *must *support these, *may *support others

## Standards environment

- 3M Standard Interchange Protocol
- ISO 8459-4:1997 Bibliographic Data Element Directory:  Part 4: Circulation Application
- ISO 10160/61 Interlibrary Loan Application Service Definition & Protocol Specification
- ANSI/NISO Z39.50-1995 Information Retrieval:  Application Service Definition and Protocol (ISO 23950)

## 3M SIP

*De facto* standard for self checkout
- Extended to support other functions
- Allows the committee to build from a base of practical applications
- 3M and other vendors experienced with the SIP are active participants

## A Goal -- as possible

- Use existing definitions and terminology
- Permit developers to meld standards into a single application

## Technical Assumptions and Design Principles

- Keep it simple and within purpose
- Confirmed Service -- Pairs of messages
- Initiation -- response pairs
- Each message carries full context necessary for processing
- Requires connection-oriented transport
- Simple State Table
- governs messaging not circulation

## Message Syntax, Transport Protocol and Encoding

- Message Syntax and Encoding
- Syntax -- XML DTD
- Message encoding -- XML following DTD
- Transport
- To be decided at August, 2000 meeting
- Directly on top of TCP/IP
- Wrapped in another protocol

## 3 Service Types 

- Lookup	  	tell me something about
- Update  	please take an action
- Notification 	I have taken an action

## Messages

- about 3 things (objects)
- Users
- Items
- Agencies (Libraries)

## Lookup Services

- Lookup
- Lookup Agency
- Lookup Item
- Lookup User
- Authenticate User
**Not** Authorize User
- Authorization request implicit in an update
- Lookups require a Unique ID

## Lookup Response

- Did not Understand Message
- Understood Message
- Cannot Supply Information and Reason
- Can Supply and the Information

## Unique ID’s

- Agency ID’s
- Registration scheme
- Value in Scheme
- Example OCLC and OCLC Symbol
- User ID and Item ID are compound
- Include the Agency ID

## Update Services 

- CheckOut Item and Undo Checkout Item
- CheckIn Item
- Recall Item and Cancel Recall Item
- Renew Item and Cancel Renew Item
- Request Item and Request Item
- Send User Notice
*Typical Circulation Transactions*

## Update Services continued

- Create Agency and Update Agency
- Create Item and Update Item
- Create User and Update User
- Update User Fiscal Account
*Create Services used for new objects*
*Update Services include modify and delete*

## Update Responses

- Did Not Understand Message
- Understood Message
- Cannot take Action Requested with Reason
- Did Take Action
- Response includes information on action taken,
- Examples:  Due Date, Item or User ID

## Notification Services

- Item CheckedOut
- Item Checked In
- Item Recalled and Item Recalled Cancelled
- Item Renewed and Item Renewed Cancelled
- Item Requested
- User Fiscal Account Updated
- User Notice Sent

## Notification Service ...

- Agency Created and Agency Updated
- Item Created and Item Updated
- User Created and User Updated

## Notification Service Response

- Did not understand message
- Understood message

## Messages defined in a DTD

- Each service has 2 messages
- Initiation and Response
- All messages have
- Header and Body
- Header provides identifying information
- Body provides details
- Extensibility a goal

## Checkout Message

- <NCIPMessages>
-  <CheckOutItem>
-   **<InitiationHeader>**
-     <FromSystemID>*data*</FromSystemID>
-     <FromSystemAuthentication>*data*</ FromSystemAuthentication>
-     <FromAgencyID>*data*</FromAgencyID>
-     <FromAgencyAuthentication>*data*</FromAgencyAuthentication>
-     <ToSystemID>*data*</ToSystemID>
-     <ToAgencyID>*data*</ToAgencyID>
-   </InitiationHeader>
**<AuthenticationValue>**
-      <Ordinal>*data*</Ordinal>
-      <AuthenticationInput>*data*</AuthenticationInput>
-   </AuthenticationValue>

## Checkout Message continued

-  **<UniqueUserID>**
-   <UniqueAgencyID>
-      <Scheme>*data</Scheme>*
*     **<*Value>*data*</Value>
* *</UniqueAgencyID>
-   <Value>*data*</Value>
- </UniqueUserID>
**<UniqueItemID>**
-   <UniqueAgencyID>
-     <Scheme>*data*</Scheme>
*     **<*Value>*data*</Value>
- </UniqueAgencyID>
-   <Value>*data*</Value>
- </UniqueItemID>

## Checkout Message continued

**<UserElementId>**
-    <UserElementName>*data*</UserElementName>
-    <UserLookUpType>*data*<UserLookUpType>
- </UserElementID>
**<ItemElementId>**
-    <UserElementName>*data*</UserElementName>
-    <UserLookUpType>*data*<UserLookUpType>
- </ItemElementId>

## Checkout Message continued

-   **<FeeAmountAcknowledged>**
-      <CurrencyCode>
-        <Scheme>*data*</Scheme>
-        <Value>*data*</Value>
-      </CurrencyCode>
-      <CurrencyValue>*data*</CurrencyValue>
-   </FeeAmountAcknowledged>
-  </CheckOutItem>
- </NCIPMessages>

## Approach

- GOAL -- Draft Standard for Trial Use
- Allow for implementations prior to ballot
- Identify early implementers
- Implementers invited to August meeting
- Develop tests
- Message level testing
- Application level testing
- DSFTU -  August 2000

## Structure of standard 	

- Protocol: services, high-level objects, message state
- Cross Application profile:  specifies encoding via XML schema for
- messages, data objects, transport
- 3 Application-specific profiles:
- Self-Service, Direct Consortial Borrowing, ILL to Circulation

## Challenges

- Allowing for local practice
- Within libraries and consortia
- Allowing for international use
- Moving target
- Technology
- Library practice
- Allowing for new applications

## Questions?

- pat_stevens@oclc.org