3M Standard Interchange Protocol (SIP) is an industry standard protocol by 3M to allow automate check out terminals communicate with library systems (ILS).
JSIP2 is an Open Source (MIT) library that implements the 3M SIP version 2 protocol including the 3M SIP2 Extensions for SIP2 clients. The library contains the necessary functionality for SIP2 client socket based implementation supporting all the SIP2 messages and fields, including also the fields defined in the the 3M SIP2 Extensions.
The SIP2 messages are listed below.
In addition to the official SIP2 messages listed above, each ILS may have their own extensions that are not included in the official documentation, but are described in the documentation of the ILS in question only. By default JSIP2 does not include these messages.
All communication between the system using the JSIP2 library and the ILS is initiated by the system. The ILS only responds to the messages sent by the system, it does not initiate messages. For each message sent from the system, there is a required response message from the ILS.
Each request/response pair should stand on its own, irrespective of any previous or future request/response pair. However, there are some exceptions to this rule, because usually it's not possible to complete any patron or item related actions without authentication and patron validation.
Authentication happens by sending the Login Request message containing a valid username and password. Some additional information, like circulation location for example, may also be required, as the parameters needed in the Login Request message vary between different library systems.
After a succesful login, the SC Status request should be sent to the library system, that responds with the ACS Status message, which contains information about the operating parameters and supported messages. After receiving the ACS Status response the system is ready for normal operation.
Validating the patron happens by sending the Patron Status Request or the Patron Information Request to the ILS, which response contains the information about the validity of the patron. This information should be checked programmatically before any circulation transactions take place.
Please see the complete SIP2 Developers Guide by 3M for further information.
Source: SIP2 Developers Guide.