RFID
Alma – RFID Integration
Note: This functionality is subject to changes.
Radio Frequency Identification (RFID) is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders. An RFID tag is an object that can be attached to or incorporated into a product for the purpose of identification using radio waves. RFID tags can be used in various implementations for attaching identification or other information to any object. Once in their receiving range, radio-enabled machines can identify the object or read other information that is attached to the object and use it a large range of purposes.
RFID tags are mainly used in libraries for the following purposes:
- Replacing barcode scanners and other traditional methods of identifying items
- Using security gates to detect an unauthorized check-out. RFID-enabled security gates can be placed at the library entrances. The gates can read the RFID tag of every item that comes into their radio range and detect whether or not the item has been tagged as ‘allowed for check-out’. If an item leaves the library without the RFID tag being updated, the gates will issue an alarm for the staff to act upon.
The purpose of this document is to describe how Alma works within a library that is RFID-enabled.
General
Alma communicates with RFID devices that are installed locally on a staff workstation. In order to allow communication between Alma and the locally running RFID software, a proxy should be installed on the workstation. The following diagram illustrates the communication:
Supported browsers | Firefox, Chrome |
Supported vendors |
|
Supported actions | Read barcode from item on pad Update security tag on loan and return Update item information (for single-piece items and multi-piece items) |
Communication protocol | HTTP |
Setup and configuration
The following steps are required in order to set Alma up to work within a library that is RFID-enabled:
- Install the RFID local server according to the vendor’s instructions.
- Configure a proxy to allow communication between Alma and the RFID software. Below are instructions for the nginx proxy. (Not needed for Seret)
- Define an integration profile in Alma
To configure nginx:
- Install Nginx from http://nginx.org/en/
- In nginx.conf, remove the section starting with “location / ” and instead add:
location / { proxy_pass http://127.0.0.1:21645; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # According to http://enable-cors.org/server_nginx.html if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; add_header 'Access-Control-Allow-Private-Network' 'true' always; add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always; } }
In the example above, the definition is with the 3M default port. For Bibliotheca use port 53535.
If you installed the RFID reader with a different port, it should be specified accordingly.
- In nginx.conf, define the port in which Nginx is listening. In the following example it is 5000:
server { listen 5000; server_name localhost;
To configure an RFID integration profile in Alma:
Regarding the RFID server URL:
- For 3M™ RFID Staff Workstation (Model 896): http://localhost:5000/TagService
- For Bibliotheca: http://localhost:5000/BibliothecaRFIDPadService.svc
- Note that for Bibliotheca it is possible to configure CORS headers for the underlying server (IIS), making the installation of NGINX unnecessary. In that case, you can configure http://localhost:53535/BibliothecaRFIDPadService.svc in the Integration Profile.
- For Nedap& Seret – Nginx isn’t needed so we link directly to the RFID driver: e.g. http://localhost:1801
- For Nedap: http://localhost:5000/NedapRfidWebService.asmx (and Nginx on localhost should proxy to the main server)
- For MK Solutions: http://localhost:4039/mkStaffStation_Alma
- Other integrations that support one central server which then proxies the requests to the readers: https://server-address:port/path (must be https)
Important: You can configure Nginx to listen on any port and then set the Server URL to http://localhost:{port}/TagService.
In the above example, Nginx was configured to listen on 5000.
Note: For Nedap it is possible to install BiblioCheckForLite, which then does not require clicking in Alma on “Read RFID” to initiate the loan/return.
Working with RFID-enabled Alma workstation
If an RFID integration profile is defined, then Alma displays a connection icon on the menu bar:
The connection is maintained per user and desk/department. When switching to a new desk, you will need to activate the connection again by clicking the connection icon.
When the connection is active, an RFID communication pop-up window is displayed.
This window must be left open in order to allow the RFID-enabled communication.
A “Read RFID” button will be displayed in the following places:
- Patron Services Workbench
- Return Workbench
- Scan In interface (both tabs)
- Repository Search
- Persistent search bar
- Physical item editor
- Quick Cataloging
- Receive
For example:
In case of a loan, return, and scan-in operation, the item’s security bit will be updated accordingly.
The ability to “Write RFID” will be displayed in the following places:
- Physical Item Editor
- Quick Cataloging
- Receive
In order to support multiple-piece items, Alma will write to each piece one at a time.
For more information, see Alma OLH.
Troubleshooting
In case of a problem, please include that log (as well as the nginx log) in the SF case.
Following are screen captures that illustrate monitoring in Chrome. Similar functionality exists in other browsers as well:
On the popup, press F12 or right-click and choose Inspect:
In the Network tab you’ll see a line for each API request sent to nginx:
Press on the red line (with status 500), and see the XML in the Response tab. This XML might be helpful in order to analyze the problem.
When there is no error message, it might be that the RFID driver isn’t installed on the PC. To verify it, open the Control Panel, double-click Administrative Tools, and then double-click Services. Look for the below services:
3M:
Bibliotheca:
We can verify that each component on the way from the popup to the RFID reader is functioning:
(Here we’ll assume that Nginx was configured to use port 5000 and we’ll use Biblioteca as an example, listening on port 53535).
Verify that the RFID software was properly installed by opening a CMD window and typing: telnet localhost 53535
You should see an empty black screen. If not, contact your RFID vendor Support.
Verify that nginx was properly installed and configured by opening a CMD window and typing: telnet localhost 5000
If you don’t get a black screen, check the last lines in the 2 log files under C:\path\to\nginx\logs