Integrating Koha with RFID system Dobrica Pavlinušić Faculty of Humanities and Social Sciences, University of Zagreb, Croatia.

Slides:



Advertisements
Similar presentations
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Advertisements

A Blackboard Building Block™ Crash Course for Web Developers
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Ford Library Career Tools Viewing and Downloading Vault Guides: Using Adobe Digital Editions.
(insert Presenters Name) (insert Title)
Google Web Toolkit Dudeanu Ermoghen Ib ă nescu Diana Melinte Laurenţiu-Ionuţ Petrişor Ionuţ C ă t ă lin.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Browsers and Servers CGI Processing Model ( Common Gateway Interface ) © Norman White, 2013.
1 Chapter 12 Working With Access 2000 on the Internet.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
Proxy Cache Leonid Romanovsky Olga Fomenko Winter 2003 Instructor: Konstantin Sinyuk.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Bar|Scan ® Asset Inventory System The leader in asset and inventory management.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Workflow API and workflow services A case study of biodiversity analysis using Windows Workflow Foundation Boris Milašinović Faculty of Electrical Engineering.
Nikto LUCA ALEXANDRA ADELA. Nikto  Web server assessment tool  Written by Chris Solo and David Lodge  Released on December 27, 2001  Stable release:
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Submitted by: Madeeha Khalid Sana Nisar Ambreen Tabassum.
OCLC Online Computer Library Center CONTENTdm Migration Training Craig Yamashita Vice President, Technology and Product Development DiMeMa, Inc. July 2005.
© 2011 Delmar, Cengage Learning Chapter 9 Collecting Data with Forms.
Java Application Accessibility Awareness Lawrence Najjar.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
Why Open-Source? No Vendor-Locking In a proprietary software --- Your supports lock with it. freedom to customize and improvements in software needs,
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
JavaScript, Fourth Edition
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
Introduction The PrinterOn Campus Printing System is an innovative solution that: Makes printing easier Reduces your support costs Enables wireless.
The Internet  Internet Hardware connected together Creates a massive worldwide network  Hardware Computers Communication lines  Interlinked collection.
Chapter 8 Browsing and Searching the Web. Browsing and Searching the Web FAQs: – What’s a Web page? – What’s a URL? – How does a browser work? – How do.
1 Week 1 l HTML l Applets Applets and HTML. 2 Overview l Applets: Java programs designed to run from a document on the Internet l HTML: Hypertext Markup.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
Introduction to Databases Trisha Cummings. What is a database? A database is a tool for collecting and organizing information. Databases can store information.
Chapter 6 Server-side Programming: Java Servlets
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
©SoftMooreSlide 1 Introduction to HTML: Forms ©SoftMooreSlide 2 Forms Forms provide a simple mechanism for collecting user data and submitting it to.
Institute for the Protection and Security of the Citizen HAZAS – Hazard Assessment ECCAIRS Technical Course Provided by the Joint Research Centre - Ispra.
Wes Preston DEV 202. Audience: Info Workers, Dev A deeper dive into use-cases where client-side rendering (CSR) and SharePoint’s JS Link property can.
1 (c) 2013 FabSoft. MOST Cloud Service What is a Cloud Service? A cloud service is internet-based, meaning that MOST is hosted on a server farm on the.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Mobile Packet Sniffer Ofer Borosh Vadim Lanzman Dr. Chen Avin
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Take Your Data Analysis and Reporting to the Next Level by Combining SAS Office Analytics, SAS Visual Analytics, and SAS Studio David Bailey Tim Beese.
SoftUpdate New features and management technique.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Web Development. Agenda Web History Network Architecture Types of Server The languages of the web Protocols API 2.
ArcGIS for Server Security: Advanced
10/09/2018 The eFolio Arrives John Sewell.
Creating Novell Portal Services Gadgets: An Architectural Overview
Post-relational databases What's wrong with web development?
PHP / MySQL Introduction
USING ADOBE ACROBAT READER DC
Ambir nSign Presentation Synopsis
Getting Started.
Getting Started.
Testing RESTful Web APIs
PrinterAdmin Print Release Station 3.0
TracCloud.
Presentation transcript:

Integrating Koha with RFID system Dobrica Pavlinušić Faculty of Humanities and Social Sciences, University of Zagreb, Croatia

What can software geek expect from RFID?

Our Integrated Library System

Which parts are RFID related?

3M self-check station: 1.patron's card 2.book 3.touch-screen 4. printer 5.cabinet 2 RFID readers Windows computer o TomCat o 3M Java Web app o Adobe Flash SIP2 single-line protocol

Koha, SIP2 and self-checks 3M protocol for communication with self-check stations Koha is SIP2 server for self-checks single-line protocol with CR/LF endings (Java, UTF-8) 3M SIP2 (Windows) emulator is pain to work with simple SIP2 protocol debugging and testing tool with: acs-proxy - capture communication between 3M SC and ACS servere (Koha in this example) sc-emulator - send simple SC sessions to ACS from perl includes protocol pdf files for easy reference

3M RFID RFID 501: RFID Standards for Libraries SID - unique serial number E AA26 7 blocks * 4 bytes = 28 bytes

3M RFID 810 pads 3M software for library staff o Visual Basic application from last century o Doesn't show SID from RFID cards  required for integration with Xerox SafeQ  other systems usually can't read RFID 501! o Maximum of 5 RFID chips readable o Copy/paste into Windows application based on browser title USB serial protocol

3M RFID protocol Portmon for sniffing USB traffic o Windows running under KVM What is hardware capable of? o 25 RFID chips in neat arrangements o real capacity of RFID card (depending on type: sticker, card...) o how is security implemented (RFID doors, self-check) Protocol uses CCITT checksum o StackOverflow user selwyn solved my problem! October 5, 2008: first reverse engineered protocol working June 1, 2009: 3M released documentation for 3M RFID Reader Module 210 RFID 501 data format still undocumented!

Comet = Meteor + RFID

ETOOMUCH Meteor Comet server: single point of falure

KISS: JSONP browser pulls RFID reader using JSONP

RFID + HTTP/JSONP

REST Scan GET foo({"time": ,"tags":[{"sid":"E F778B5D", "custom":0,"content":"","library":0,"branch":0,"total":0, "u1":0,"u2":0,"security":"00","type":0,"set":0}]}) Program GET Location GET Source code:

REST Security o check-in, protect chip (door beep!) o check-out, unprotect chip o automatic on programming GET Location GET Location GET JSONP GET JSONP

HTTP tweaks Etag: visible-E F77478C o Not supported in our jQuery until 943e1ae3409b23fe69303df0bc9ebhttp://github.com/jquery/jquery/commit/28ab4d e1ae3409b23fe69303df0bc9eb o RFID driver zna promjene pa bi ih mogao gurnuti klijentu za DOM update HTTP je state-less o Omogućava povezivanje više klijenata istovremeno (trenutno lokalni i Koha)

Koha modifications Find element to hook into Append your data Minimal Koha modifications intranetuserjs $.getScript(' o 3K of JavaScript

Koha + RFID = RIA In-browser! JSONP /scan Custom form fill-in + submit Screen scraping for security info No modifications to Koha! Single-origin policy is pain

RFID door beep on specified security byte

CUPS source code from EVOLIS: support/Dualys-3 support/Dualys-3 rastertoevolis segfaults with duplex options, always in color and then downgraded to back and white requirements: o pixel-exact output for black ribbon (K) o two-side printing Inkscape for SVG design $ inkscape-render.pl card/ffzg-2010.svg Ime Prezime $ evolis-driver.pl out/ front.pbm out/ back.pbm \ > evolis # or send directly to /dev/lp $ evolis-simulator.pl evolis ; qiv evolis*.pbm $ evolis-command.pl # REPL with printer with /search Printing on RFID cards EVOLIS Dualys

Combine RFID and printer driver...

833 cards, 4.5 hours, 2 ribbons

Biblio::RFID Supported readers: 3M 810, CPRM02, librfid Make prototype If it looks too comprex - it's too complex! KISS – keep it simple and stupid! Everything can be web-enabled!

RFID SID stored in Koha borrower extended attributes!

Virtual LDAP ldap-koha: export Koha users to SafeQ as LDAP server pager=E F77E111 LDAP search for RFID SID stored in Koha's extended patron's attributes one SQL file per objectClass rewrites LDAP filter into SQL where Koha groups as LDAP organizationalunit and group ldap-rewrite: proxy between Koha and OpenLDAP server bind ⇨ uid=dpavlin,dc=ffzg,dc=hr augment LDAP attributes with static local YAML data unroll repeatable attributes in LDAP for easier Koha import

Additional information Portmon for Windows (serial sniffer) Portmon for Windows Sources CCITT checksum question on StackOverflow Related blog posts: Hitchhiker's guide to RFID web scraperhttps://github.com/dpavlin/Biblio-Z3950

Immaterials: the ghost in the field by Timo

Qestions? 42

Integrating Koha with RFID system Back in 2008, we moved our libraries in new building equipped with 3M RFID hardware. Since then I examined hardware a little and wrote Open Source driver for it which provide simple HTTP/JSONP interface for it. This allows adding RFID support to Koha's intranet using nothing more than JavaScript include file using jquery. Is repository of source code which also provides nice event-driven API on top of 3M and few others RFID readers which we used with great success every year to print hundreds of new RFID cards for our users using related project: More information about by RFID projects is available at:

Our Integrated Library System