An Introduction to NCIP October 2, 2002 Mark H Needleman Sirsi Corporation NCIP Implementers Forum Revised January 2, 2008 Lynne Branche Brown Innovative.

Slides:



Advertisements
Similar presentations
Deconstructing NCIP: What is NCIP and Why Should I Care? Northwest ILL 2012 Peter Collins.
Advertisements

Use Case & Use Case Diagram
Linking Systems Transforming Resource Sharing Through ISO ILL and Other Standards CLA June 2:20 pm Session 206 Background on Library Communications.
Hobart 6 th November 2009 New standards for resource delivery Janifer Gatenby.
Tutorial 9 Working with XHTML. XP Objectives Describe the history and theory of XHTML Understand the rules for creating valid XHTML documents Apply a.
XCON architecture and protocol musings Henning Schulzrinne Columbia University.
1 Using Account Status Web Service to design value-added services for your online applications Ivan Chan Media & Systems Services 8th Annual HKIUG Meeting.
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Universal Plug and Play (UPnP) Presented by: Kamal Kamal Kamal Kamal Mohammad Atieh Mohammad Atieh.
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
The future of interoperability for ILL and resource sharing by Clare Mackeigan Relais International.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
NISO Circulation Interchange Protocol A Standard in Development Pat Stevens, OCLC July 13, 2000.
Future of MDR - ISO/IEC Metadata Registries (MDR) Larry Fitzwater, SC 32 WG 2 Convener Computer Scientist U.S. Environmental Protection Agency May.
Requirements for DSML 2.0. Summary RFC 2251 fidelity Represent existing directory protocols with new transport syntax Backwards compatibility with DSML.
1 CIM User Group Conference Call december 8th 2005 Using UN/CEFACT Core Component methodology for EIC/TC 57 works and CIM Jean-Luc SANSON Electrical Network.
XML & Library Applications ELAG 2001 Poul Henrik Jørgensen, Danish Bibliographic Centre,
XP The University of Akron Summit College Business Technology Department Computer Information Systems 2440: 140 Internet Tools Instructor: Enoch E. Damson.
Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes, Harvard University Extension School — Cambridge, MA The Web Wizard’s Guide.
Why XML ? Problems with HTML HTML design - HTML is intended for presentation of information as Web pages. - HTML contains a fixed set of markup tags. This.
FIX Repository based Products Infrastructure for the infrastructure Presenter Kevin Houstoun.
1 © 2005 course technology University Of Palestine Chapter 6 Storyboarding the User’s Experience.
Benefits of NCIP in VDX VUGANZ September 18, 2006 John Bodfish Senior Technical Designer.
NISO Circulation Interchange Protocol Briefing SiteSearch User Meeting May 4, 2000 Pat Stevens, OCLC.
The NISO Question/Answer Transaction Protocol (QATP) AVIAC January 2004 Donna Dinberg Library and Archives Canada Mark Needleman Sirsi Corporation.
Almost Ready for Prime Time ILLiad Z39.50 Searching & ISO ILL Margaret W. Ellingson / Western ILLiad Users Meeting / Portland,
TEXT ENCODING INITIATIVE (TEI) Inf 384C Block II, Module C.
What is XML?  XML stands for EXtensible Markup Language  XML is a markup language much like HTML  XML was designed to carry data, not to display data.
Web Services Description Language CS409 Application Services Even Semester 2007.
ISO ILL, NISO NCIP or OpenURL? ELAG 2005 workshop 2 report Ed. Poul Henrik Jørgensen.
Distributed Processing and Client/Server
SDMX Standards Relationships to ISO/IEC 11179/CMR Arofan Gregory Chris Nelson Joint UNECE/Eurostat/OECD workshop on statistical metadata (METIS): Geneva.
The NISO NETREF Protocol Mark H Needleman Product Manager- Standards Sirsi Corporation LITA National Conference 2004.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
Transparent to the User: User-Initiated and Mediated Resource Sharing Services Mary E. Jackson Product Manager, Resource Sharing Northwest ILL & Resource.
(Business) Process Centric Exchanges
Web Services Standards. Introduction A web service is a type of component that is available on the web and can be incorporated in applications or used.
1 CS 502: Computing Methods for Digital Libraries Lecture 19 Interoperability Z39.50.
1 Web Services Web and Database Management System.
NISO Circulation Interchange Protocol A Standard in Development ZIG Tutorial January 19, 2000.
NCIP (NISO Circulation Interchange Protocol) Mark Needleman Sirsi Corporation Steve Gregory Colorado State Library Access 2004.
Holdings Search Janifer Gatenby Geac Computers. Holdings Attribute Set n Ability to search holdings n Allied to Holdings Schema –new architecture access.
Introduction to the NCIP DTDs and XML Schemas Tony O’Brien Oct 2 nd 2002.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.2.
UB & UC An Update on Resource Sharing Developments.
VDX 3.1 (incorporating VDX 3.0) Presenter : Patricia Burke.
CEN/ISSS eBIF GTIB Project Meeting, Brussels Mar , 2009 CEN/ISSS eBIF GTIB Project Meeting, Brussels 1 CEN/ISSS eBIF Global eBusiness Interoperability.
Metadata and Meta tag. What is metadata? What does metadata do? Metadata schemes What is meta tag? Meta tag example Table of Content.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
XP Tutorial 9New Perspectives on HTML and XHTML, Comprehensive 1 Working with XHTML Creating a Well-Formed Valid Document Tutorial 9.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
A SSOCIATION OF R ESEARCH L IBRARIES Intra-Consortium Patron Online Borrowing (ICBOP) An Overview of Options and the Standards that Will Make.
Tutorial 9 Working with XHTML. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Describe the history and theory of XHTML.
PIX/PDQ – Today and Tomorrow Vassil Peytchev Epic.
Tutorial 9 Working with XHTML. XP Objectives Describe the history and theory of XHTML Understand the rules for creating valid XHTML documents Apply a.
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 9 Web Services.
Case Study: HL7 Conformance in VA Imaging Mike Henderson Principal Consultant Eastern Informatics, Inc.
Metadata Schema Registries: background and context MEG Registry Workshop, Bath, 21 January 2003 Rachel Heery UKOLN, University of Bath Bath, BA2 7AY UKOLN.
Geospatial metadata Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
XML BASICS and more…. What is XML? In common:  XML is a standard, simple, self-describing way of encoding both text and data so that content can be processed.
Everything You Wanted to Know and Weren't Afraid to Ask!
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Architecture Competency Group
Using Use Case Diagrams
Business Process Management
Relational Database Design
WEB SERVICES From Chapter 19, Distributed Systems
Proposal of a Geographic Metadata Profile for WISE
Exceptions and networking
Presentation transcript:

An Introduction to NCIP October 2, 2002 Mark H Needleman Sirsi Corporation NCIP Implementers Forum Revised January 2, 2008 Lynne Branche Brown Innovative Interfaces, Inc. NCIP Implementers Group

Scope of the Standard zA repertoire of messages & associated rules of syntax and semantics zBetween and among computer based applications zDoes not define circulation functions or policies zDoes not define user interface

Functions Supported zDirect consortial borrowing zCirculation/InterLibrary Loan Interaction zSelf-service Circulation

NCIP Structure zPart 1: Protocol Definition zPart 2: Implementation Profile 1 zXML DTD and Schema zVendor Application Profiles NCIP Documentation has multiple parts:

Circulation Interchange Part 1: Protocol zDefines the Services zDefines the Messages zDefines the Data Elements zDefines the error codes zDefines the extensibility mechanism zProvides some lists of enumerated data types zProvides a simple state table

Circulation Interchange Part 1: Protocol, con’t zDefines the concept of profiles zProvides a template for building Implementation and Application Profiles zProvides guidelines for activities of maintenance and registration agencies zNot bound to any particular technologies

Circulation Interchange Part 2: Protocol Implementation Profile 1 zDefines the message encoding (XML) zDefines the underlying Transport Protocols - HTTP/HTTPS and TCP zDefines Character Set - Unicode/UTF-8 zDefines some behavior rules zProvides an encoding of enumerated datatypes

XML DTD and Schema zProvides the XML encoding of the messages zUsed by a parser or application to ensure received message is valid

Vendor Application Profiles zDefine how to use NCIP within a particular application domain zConform to an Implementation Profile zDescribes application area and participating applications zDefines the business rules zDefines required services zDefines required and conditionally required data elements

Vendor Application Profiles, con’t zDefines an event table and messages sent and received when those events occur zMay provide additional enumerated data types zDefines transport protocols zMay define security and privacy requirements zMay provide additional implementation guidelines

Vendor Application Profiles MAY NOT zRedefine data elements specified in the protocol zAdd additional messages zDefine new objects zDefine additional transport protocols zAdd data elements to messages zMake required data elements optional zSpecify a data type inconsistent to how its defined in the protocol or implementation profile

Technical Architecture z3 Service Types z3 Object Classes

3 Service Types zLookup y“Tell me these things about this object.” zUpdate y“Please take this action.” zNotification y“I have taken this action.”

Service Definitions zEvery “Service” is a pair of messages: yan “Initiation Message” yand a “Response Message” zEach message provides complete context for it to be understood yThe protocol is designed NOT to require any particular sequence of services.

3 Object Types zUsers zItems zAgencies (Libraries) zTransactions are associations between one or more of the objects

Lookup Service Type zLookup Agency zLookup Item zLookup User zAuthenticate User zLookup Version

Lookup Service Type zLookups are about a unique thing zThey do not support discovery or searching.

Update Services zTypical Update Transactions: yRequest Item and Cancel Request Item yCheck Out Item and Undo Check Out Item yRenew Item yRecall Item and Cancel Recall Item ySend User Notice yCheck In Item

Update Services zObject maintenance: yCreate Agency and Update Agency yCreate Item, Update Item and Update Request Item yCreate User and Update User yCreate User Fiscal Transaction zCreate Services used for new objects zUpdate Services include modify and delete

Notification Services zTypical Notification Transactions: yItem Requested and Item Request Cancelled yItem Checked Out yItem Renewed yItem Recalled and Item Recall Cancelled yUser Notice Sent yItem Checked In

Notification Services zObject maintenance: yAgency Created and Agency Updated yItem Created, Item Updated and Item Request Updated yUser Created and User Updated yUser Fiscal Transaction Created

Notification Services zItem Shipped zItem Received zCirculation Status Change Reported zCirculation Status Updated

Notification Response zNotifications occur after the fact - no ability to say “don’t do that” zOnly possible responses: yDid not understand message yUnderstood message

Mandated Action zFlag on Request Messages zUsed to turn a request into a de facto notification zMay require out of band handling

Syntax and Encoding zXML DTD zUTF-8 encoding of Unicode (UCS-2) yASCII is valid in this encoding. yBut other systems are NOT restricted to ASCII, and you should be prepared to receive such data.

Scheme/Values zMechanism for extensibility zProvides mechanism for NCIP to make use of other standardized lists zSome defined in NCIP Protocol zProvides ability for locally defined values

Schemes and Values zTwo kinds of Schemes: yClosed xMust be supported in order to conform xCannot be extended yOpen xCan be extended zFor many (but not all) data elements NCIP provides some lists that must be supported for interoperability purposes

Use of other Standardized Lists zLanguage Codes xDefined by ISO Bibliographic Language Codes zCurrency Codes yDefined by ISO 4217 Codes for the representation of currencies

Allow for Extensibility z Bibliographic Record Identifier Code: xANBN xBGF xBNBN xCARL: UNCOVER xCN xLCCN xNLM TCN xOCLC xRLIN

Allow for Local Practice y Agency User Privilege Type (Public) xAdult xChild xSenior xStaff xYoung Adult yAgency User Privilege Type (Academic) xFaculty xGraduate xPostdoctoral xStaff xUndergraduate

Scheme Defintion zScheme names are URI’s zValues within any Scheme must be unique zOnce published, the list of Values must not change in any way - if changes are made a different URI is defined

Example Scheme/Value Needleman Library Platinum User.

Datatypes zEach PCDATA element has a datatype associated with it zDatatypes are subset of those defined in W3C XML Schema Language: xdateTime xstring xpositiveInteger xnonNegativeInteger xInteger zIn DTD datatypes defined using #FIXED attributes zNCIP Schema uses “real” datatypes

Headers zEach message has a header yInitiation messages have an Initiation Header yResponse Messages have a Response Header zHeader provides for security and identification yFrom System and Agency yFrom System and Agency Authentication yTo System and Agency

Unique Id’s zAgency Id’s yRegistration scheme to ensure uniqueness yValue in Scheme zUser Id’s, Item Id’s and Request Id’s are compound; they include the Agency Id

Element Id’s zLookup initiation messages (except Lookup Version and Authenticate User) must include “Element Id” elements. zThese are used to specify “these things,” as in “Tell me these things about this object.” zElement Id can be used to ask for data about the object in other messages as well

Use of Element Id zOne of these for each object class: yAgency Element Id yItem Element Id yUser Element Id zEach of them has a corresponding Closed Scheme zIdentifies which elements of the object are desired in a Lookup service (or other relevant messages)

Element Id in a Request melementtype/itemelementtype.scm Bibliographic Description

Optional Fields in Response Mark Needleman 1st St Louis 2003 A Nobel Prize Winning Novel

Application Roles zFor a given connection, there is: y 1 and only 1 initiating application (e.g., self-service machine), and y1 and only 1 responding application (e.g., circ system). zInitiators may NOT send a second message until the first is responded to. zResponders may NOT send initiation messages EVER on that connection.

Application Roles zApplications MAY establish multiple connections at the same time. zThe 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

Application Roles zInitiating application waits for the response message or a timeout. zApplications 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).

State Tables zDo NOT govern the state of the circulation transaction zDO govern the state of the exchange of the initiation/response message pair yInitiating application is in IDLE or WAITING state yResponding application is in IDLE or PROCESSING state

Messaging State Tables zINITIATOR RESPONDER IDLE WAITING PROCESSING IDLE Initiation Message

Messaging State Tables zINITIATOR RESPONDER IDLE WAITING PROCESSING IDLE Response Message

Transport Protocol Requirements zConfirmed Service yInitiation/Response message pairs yThe Response message confirms the service. zThe transport layer must indicate that the peer has disconnected.

Supported Transport Protocols zInitiator chooses from these 3: yTCP/IP yHTTP yHTTPS zResponder must reply on same connection - and thus using the same protocol with which it got the initiation message

Behavior Rules zDefinition of Success zOmission of requested elements zInclusion of unrequested elements zUpdate processing zError identification zMessaging errors zProcessing errors

Omission of Requested Items zApplies to entire Lookup Service Type and to “piggy-backed” lookups on Update Services. zPermits omission of some of the data the initiator asked for. zExample: Initiation message requests user’s date of birth but policy at responder does not allow it to be revealed

Inclusion of Unrequested data zSome elements in the messages are defined so the requester can specify what information it wants to get back yElement Id fields yInformation about holds on at item zResponder may not include such elements if not requested by Initiator

Update Processing zResponding application will behave as if all deletions requested were performed before all additions requested in the same message zIf 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 yExample - change of birthday causes user category to change

Errors zMessaging Errors zProcessing Errors

Messaging Errors zIndicate lack of understanding of the message: yInvalid XML yXML not conformant to the DTD yUnknown scheme

Processing Errors zIndicate inability or unwillingness to perform the action requested yUser Delinquent yUnknown item yItem does not circulate (Checkout) yMaximum renewals exceeded (Renewal)

Security zEncryption yHTTPS zAuthentication of Systems and Agencies zApplication Profiles can defined other security requirements and mechanisms

Support for Future Versions zVersion Attribute on each message to identify version - attribute contains the URI of the DTD or Schema it conforms to zLookup Versions to find out what versions the other side supports zResponder may (but is not required to) respond with list of supported versions if it gets a message in a version it does not support