Download - An Introduction to NCIP
![Page 1: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/1.jpg)
An Introduction to NCIP
October 2, 2002Mark H Needleman Sirsi CorporationNCIP Implementers Forum
Revised January 2, 2008Lynne Branche BrownInnovative Interfaces, Inc.NCIP Implementers Group
![Page 2: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/2.jpg)
Scope of the Standard
A repertoire of messages & associated rules of syntax and semantics
Between and among computer based applications
Does not define circulation functions or policies
Does not define user interface
![Page 3: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/3.jpg)
Functions Supported
Direct consortial borrowing
Circulation/InterLibrary Loan Interaction
Self-service Circulation
![Page 4: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/4.jpg)
NCIP Structure
Part 1: Protocol DefinitionPart 2: Implementation Profile 1XML DTD and SchemaVendor Application Profiles
NCIP Documentation has multiple parts:
![Page 5: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/5.jpg)
Circulation Interchange Part 1: Protocol
Defines the ServicesDefines the MessagesDefines the Data ElementsDefines the error codesDefines the extensibility mechanismProvides some lists of enumerated
data typesProvides a simple state table
![Page 6: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/6.jpg)
Circulation Interchange Part 1: Protocol, con’t
Defines the concept of profilesProvides a template for building
Implementation and Application Profiles
Provides guidelines for activities of maintenance and registration agencies
Not bound to any particular technologies
![Page 7: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/7.jpg)
Circulation Interchange Part 2: Protocol Implementation Profile 1
Defines the message encoding (XML)Defines the underlying Transport
Protocols - HTTP/HTTPS and TCPDefines Character Set - Unicode/UTF-
8Defines some behavior rulesProvides an encoding of enumerated
datatypes
![Page 8: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/8.jpg)
XML DTD and Schema
Provides the XML encoding of the messages
Used by a parser or application to ensure received message is valid
![Page 9: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/9.jpg)
Vendor Application Profiles
Define how to use NCIP within a particular application domain
Conform to an Implementation ProfileDescribes application area and
participating applicationsDefines the business rulesDefines required servicesDefines required and conditionally
required data elements
![Page 10: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/10.jpg)
Vendor Application Profiles, con’t
Defines an event table and messages sent and received when those events occur
May provide additional enumerated data types
Defines transport protocolsMay define security and privacy
requirementsMay provide additional
implementation guidelines
![Page 11: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/11.jpg)
Vendor Application Profiles MAY NOT
Redefine data elements specified in the protocol
Add additional messages Define new objects Define additional transport protocols Add data elements to messages Make required data elements optional Specify a data type inconsistent to how its
defined in the protocol or implementation profile
![Page 12: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/12.jpg)
Technical Architecture
3 Service Types
3 Object Classes
![Page 13: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/13.jpg)
3 Service Types
Lookup “Tell me these things about this
object.”Update
“Please take this action.”Notification
“I have taken this action.”
![Page 14: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/14.jpg)
Service Definitions
Every “Service” is a pair of messages: an “Initiation Message” and a “Response Message”
Each message provides complete context for it to be understood The protocol is designed NOT to
require any particular sequence of services.
![Page 15: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/15.jpg)
3 Object Types
UsersItems Agencies (Libraries)
Transactions are associations between one or more of the objects
![Page 16: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/16.jpg)
Lookup Service Type
Lookup AgencyLookup ItemLookup UserAuthenticate UserLookup Version
![Page 17: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/17.jpg)
Lookup Service Type
Lookups are about a unique thing
They do not support discovery or searching.
![Page 18: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/18.jpg)
Update Services
Typical Update Transactions: Request Item and Cancel Request
Item Check Out Item and Undo Check Out
Item Renew Item Recall Item and Cancel Recall Item Send User Notice Check In Item
![Page 19: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/19.jpg)
Update Services
Object maintenance: Create Agency and Update Agency Create Item, Update Item and Update
Request Item Create User and Update User Create User Fiscal Transaction
Create Services used for new objectsUpdate Services include modify and
delete
![Page 20: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/20.jpg)
Notification Services
Typical Notification Transactions: Item Requested and Item Request
Cancelled Item Checked Out Item Renewed Item Recalled and Item Recall
Cancelled User Notice Sent Item Checked In
![Page 21: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/21.jpg)
Notification Services
Object maintenance: Agency Created and Agency
Updated Item Created, Item Updated and
Item Request Updated User Created and User Updated User Fiscal Transaction Created
![Page 22: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/22.jpg)
Notification Services
Item ShippedItem ReceivedCirculation Status Change
ReportedCirculation Status Updated
![Page 23: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/23.jpg)
Notification Response
Notifications occur after the fact - no ability to say “don’t do that”
Only possible responses: Did not understand message Understood message
![Page 24: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/24.jpg)
Mandated Action
Flag on Request Messages
Used to turn a request into a de facto notification
May require out of band handling
![Page 25: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/25.jpg)
Syntax and Encoding
XML DTDUTF-8 encoding of Unicode (UCS-
2) ASCII is valid in this encoding. But other systems are NOT
restricted to ASCII, and you should be prepared to receive such data.
![Page 26: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/26.jpg)
Scheme/Values
Mechanism for extensibilityProvides mechanism for NCIP to
make use of other standardized lists
Some defined in NCIP ProtocolProvides ability for locally
defined values
![Page 27: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/27.jpg)
Schemes and Values
Two kinds of Schemes: Closed
Must be supported in order to conformCannot be extended
OpenCan be extended
For many (but not all) data elements NCIP provides some lists that must be supported for interoperability purposes
![Page 28: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/28.jpg)
Use of other Standardized Lists
Language CodesDefined by ISO 639-2 Bibliographic
Language Codes
Currency Codes Defined by ISO 4217 Codes for the
representation of currencies
![Page 29: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/29.jpg)
Allow for Extensibility
Bibliographic Record Identifier Code:ANBNBGFBNBNCARL: UNCOVERCNLCCNNLM TCNOCLCRLIN
![Page 30: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/30.jpg)
Allow for Local Practice
Agency User Privilege Type (Public)AdultChildSeniorStaffYoung Adult
Agency User Privilege Type (Academic)FacultyGraduatePostdoctoralStaffUndergraduate
![Page 31: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/31.jpg)
Scheme Defintion
Scheme names are URI’sValues within any Scheme must
be uniqueOnce published, the list of
Values must not change in any way - if changes are made a different URI is defined
![Page 32: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/32.jpg)
Example Scheme/Value<UserPrivilege>
<UniqueAgencyId><Scheme>http://www.librarylist.org </Scheme><Value> Needleman Library </Value></UniqueAgencyId><AgencyUserPrivilegeType><Scheme> http://www.needleman.com/patrons
</Scheme><Value> Platinum User </Value></AgencyUserPrivilegeType>...
</UserPrivilege>
![Page 33: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/33.jpg)
Datatypes Each PCDATA element has a datatype associated
with it
Datatypes are subset of those defined in W3C XML Schema Language:
dateTimestringpositiveIntegernonNegativeIntegerInteger
In DTD datatypes defined using #FIXED attributes
NCIP Schema uses “real” datatypes
![Page 34: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/34.jpg)
Headers
Each message has a header Initiation messages have an Initiation
Header Response Messages have a Response
Header
Header provides for security and identification From System and Agency From System and Agency Authentication To System and Agency
![Page 35: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/35.jpg)
Unique Id’s
Agency Id’s Registration scheme to ensure
uniqueness Value in Scheme
User Id’s, Item Id’s and Request Id’s are compound; they include the Agency Id
![Page 36: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/36.jpg)
Element Id’s
Lookup initiation messages (except Lookup Version and Authenticate User) must include “Element Id” elements.
These are used to specify “these things,” as in “Tell me these things about this object.”
Element Id can be used to ask for data about the object in other messages as well
![Page 37: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/37.jpg)
Use of Element Id
One of these for each object class: Agency Element Id Item Element Id User Element Id
Each of them has a corresponding Closed Scheme
Identifies which elements of the object are desired in a Lookup service (or other relevant messages)
![Page 38: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/38.jpg)
Element Id in a Request
<ItemElementType><Scheme>
http://www.niso.org/ncip/v1_0/schemes/itemelementtype/itemelementtype.scm
</Scheme><Value>Bibliographic Description
</Value></ItemElementType>
![Page 39: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/39.jpg)
Optional Fields in Response
<ItemOptionalFields>
<BibliographicDescription><Author> Mark Needleman </Author><Edition> 1st </Edition><PlaceOfPublication> St Louis
</PlaceofPublication><PublicationDate> 2003 </PublicationDate><Title> A Nobel Prize Winning Novel </Title></BibliographicDescription>
</ItemOptionalFields>
![Page 40: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/40.jpg)
Application Roles
For a given connection, there is: 1 and only 1 initiating application
(e.g., self-service machine), and 1 and only 1 responding application
(e.g., circ system). Initiators may NOT send a second
message until the first is responded to.Responders may NOT send initiation
messages EVER on that connection.
![Page 41: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/41.jpg)
Application Roles
Applications MAY establish multiple connections at the same time.
The Standard is written in terms of “initiating application” and “responding application”; this is always in the context of a given connection, not in the broader context of the application as a whole
![Page 42: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/42.jpg)
Application Roles
Initiating application waits for the response message or a timeout.
Applications may keep the connection open in an “Idle” state in anticipation of exchanging a series of message pairs (to avoid the costs of establishing a connection for each exchange).
![Page 43: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/43.jpg)
State Tables
Do NOT govern the state of the circulation transaction
DO govern the state of the exchange of the initiation/response message pair Initiating application is in IDLE or
WAITING state Responding application is in IDLE or
PROCESSING state
![Page 44: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/44.jpg)
Messaging State Tables
INITIATOR RESPONDER
IDLE
WAITING PROCESSING
IDLEInitiation Message
![Page 45: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/45.jpg)
Messaging State Tables
INITIATOR RESPONDER
IDLE
WAITING PROCESSING
IDLE
Response Message
![Page 46: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/46.jpg)
Transport Protocol Requirements
Confirmed Service Initiation/Response message pairs The Response message confirms
the service.The transport layer must
indicate that the peer has disconnected.
![Page 47: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/47.jpg)
Supported Transport Protocols
Initiator chooses from these 3: TCP/IP HTTP HTTPS
Responder must reply on same connection - and thus using the same protocol with which it got the initiation message
![Page 48: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/48.jpg)
Behavior Rules
Definition of SuccessOmission of requested elementsInclusion of unrequested elementsUpdate processingError identificationMessaging errorsProcessing errors
![Page 49: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/49.jpg)
Omission of Requested Items
Applies to entire Lookup Service Type and to “piggy-backed” lookups on Update Services.
Permits omission of some of the data the initiator asked for.
Example: Initiation message requests user’s date of birth but policy at responder does not allow it to be revealed
![Page 50: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/50.jpg)
Inclusion of Unrequested data
Some elements in the messages are defined so the requester can specify what information it wants to get back Element Id fields Information about holds on at item
Responder may not include such elements if not requested by Initiator
![Page 51: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/51.jpg)
Update Processing
Responding application will behave as if all deletions requested were performed before all additions requested in the same message
If an update to one element causes an update to another element not specifically asked - a Notification message may be used to inform the other side Example - change of birthday causes user
category to change
![Page 52: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/52.jpg)
Errors
Messaging Errors
Processing Errors
![Page 53: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/53.jpg)
Messaging Errors
Indicate lack of understanding of the message: Invalid XML XML not conformant to the DTD Unknown scheme
![Page 54: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/54.jpg)
Processing Errors
Indicate inability or unwillingness to perform the action requested User Delinquent Unknown item Item does not circulate (Checkout) Maximum renewals exceeded
(Renewal)
![Page 55: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/55.jpg)
Security
Encryption HTTPS
Authentication of Systems and Agencies
Application Profiles can defined other security requirements and mechanisms
![Page 56: An Introduction to NCIP](https://reader036.vdocument.in/reader036/viewer/2022062301/56814405550346895db097dc/html5/thumbnails/56.jpg)
Support for Future Versions
Version Attribute on each message to identify version - attribute contains the URI of the DTD or Schema it conforms to
Lookup Versions to find out what versions the other side supports
Responder may (but is not required to) respond with list of supported versions if it gets a message in a version it does not support