Mobile access via handheld devices
Michael Doran, Systems Librarian doran@uta.edu
LITA 2009 National Forum
Salt Lake City, Utah
October 3, 2009
Where do we get our ILS data?
Integrated Library System
Our ILS data sits on a server, but to get at it we need an ILS client...
Woo-hoo!
Got SQL*Plus!
• Acquisitions
• Cataloging
• Circulation
• OPAC
• Reports
• etc.
This will fix things!
SQL> DROP DATABASE xxxdb; doran@uta.edu
Michael Doran, Systems Librarian
ILS data – the gate keepers cataloging client circulation client
“data” acquisitions client mobile client
OPAC
Michael Doran, Systems Librarian
1 doran@uta.edu
Where do we go to get the ILS data?
To a computer...
...on a desk
... and for non-OPAC data, (generally) in an office or behind a counter.
doran@uta.edu
Michael Doran, Systems Librarian
Michael Doran, Systems Librarian doran@uta.edu
You could carry your PC with you
Michael Doran, Systems Librarian doran@uta.edu
But wouldn’t it be nice...
If we could access ILS data with a wireless-enabled hand-held device?
Palm Windows
Mobile iPhone and iPod Touch
WiFi or cellular data networks
Michael Doran, Systems Librarian any smart phone doran@uta.edu
1
…not only for OPAC access…
Innovative Interface’s “AirPAC” catalog doran@uta.edu
Michael Doran, Systems Librarian
Stacks maintenance would be so much easier if I could look up stuff on a handset.
Michael Doran, Systems Librarian doran@uta.edu
A vendor perspective
John McCullough, “Redesigning Library Applications for PDAs:
ILS Vendor Perspective.” Library Hi Tech, 21:4 (2003), p. 396.
“At this time Innovative is releasing a wireless OPAC interface and developing wireless solutions for staff applications”
“Offline circulation suggests itself […and…] Inventory of the physical collection is a second area of great interest in PDAs.”
“Innovative Interfaces is currently developing a wireless Inventory product which will use a PDA to read barcodes using Bluetooth and populate an HTML form on a Web browser on the device. This form will then submit the barcodes over a wireless connection to the library database server and will return a response to the device indicating item status, whether the item is out of shelf order, and giving the option to dynamically, and from within the stacks, update the item record itself.”
Michael Doran, Systems Librarian
1 doran@uta.edu
Vendor products for staff use
Innovative Interface’s “wireless solution for inventory and circulation functions”
2004 – originally released as
Wireless Workstation
2008 – rebranded as Circa
SirsiDynix’s PocketCirc client
“for circulation and inventory functions”
2004 – Unicorn ILS version
2009 – Horizon ILS version
Note: dates are approximate doran@uta.edu
Michael Doran, Systems Librarian
1
Back to the future…
2003
2004
2005
2006
2007
2008
2009
AirPAC
Circa &
PocketCirc
Where’s my @#$% handheld app!
Michael Doran, Systems Librarian
7 doran@uta.edu
Waiting for Godot the vendor
How long must we wait for a handheld client for our ILS?
…or one that doesn’t cost us extra dough?
…or one that does what we want?
Michael Doran, Systems Librarian
4 doran@uta.edu
Waiting for Godot the vendor
Vendors are smart and competent
Aware of the growing demand for mobile data access
Have an intimate knowledge of the ILS systems
Have crackerjack programmers
So what’s the hold up?
ILS product life cycle
– saturation stage
No good pricing model for mobile clients
Vendor/ILS programming paradigm:
One client/app that does everything
Mobile device programming paradigm:
Many clients/apps that do one thing well doran@uta.edu
Michael Doran, Systems Librarian
Back to the future…
Inventory, SQL, Perl, wireless network,
PDA, …bingo!
2009
2005
2006
2007
2008
2003
2004
“…developing a wireless Inventory product which will use a PDA to read barcodes … and populate an
HTML form on a Web browser … then submit the barcodes over a wireless connection to the library database server and will return a response to the device indicating item status…”
Michael Doran, Systems Librarian
1 doran@uta.edu
ShelfLister 1.0 – released in 2003
Generates a shelf list shelf list - a file of bibliographic records arranged in the same order as the corresponding materials on the shelves
Oooohh
Additionally, includes any or all of...
Item status
Historical charges
Historical browses
Enhanced call number information
And allows user to save item information for batch updating ILS
1 doran@uta.edu
Michael Doran, Systems Librarian
Michael Doran, Systems Librarian
2 doran@uta.edu
ShelfLister 1.0
Start barcode
End barcode
Minimize data entry
Michael Doran, Systems Librarian
4 doran@uta.edu
Michael Doran, Systems Librarian
3 doran@uta.edu
Michael Doran, Systems Librarian
2 doran@uta.edu
Use as input file for bulk updating ILS
Michael Doran, Systems Librarian
2 doran@uta.edu
Paging Mr. Godot…
All this time, we’ve been waiting for the vendor to provide us with (and charge us extra for) handheld apps.
We could have been developing them ourselves .
But wait … we still can!
Michael Doran, Systems Librarian
3 doran@uta.edu
Rocket scientists
This is not the
Library Systems staff at the
University of Texas at Arlington.
Michael Doran, Systems Librarian doran@uta.edu
UT Arlington Library Systems staff
…before our first cup of coffee in the morning
Michael Doran, Systems Librarian doran@uta.edu
So, if we can do it, you can do it
If I just knew what button to push!
Michael Doran, Systems Librarian doran@uta.edu
All it requires is an “open” ILS system
They told me I didn’t need to know what was inside.
Michael Doran, Systems Librarian doran@uta.edu
All it requires is an “open” ILS system
This presenter really knows how to flog a metaphor.
All I see is an empty box… where are the donuts?
Did I say “donuts”?
I meant data.
Michael Doran, Systems Librarian doran@uta.edu
…and the “Four Knowings”
It’s really quite simple!
Know your ILS data
Know the available APIs
Know what you want to do
Know how to (web) program
Michael Doran, Systems Librarian doran@uta.edu
1) Know your ILS data
The leg bone’s connected to the knee bone…
Relational database system
data dictionary – “a list of all the tables in the database and all the fields in the tables” entity-relationship diagrams –
“a graphical representation of database entities and their relationships to each other”
mental model of data
BLOBs and other problems doran@uta.edu
Michael Doran, Systems Librarian
ShelfLister – 1 st knowing
“Know your ILS data”
Voyager ILS
It’s all up here, baby!
Oracle Database data
Michael Doran, Systems Librarian
2 doran@uta.edu
2) Know the available APIs
Application Programming Interface
Web services (XML, SOAP, RESTful, y.y.)
Aleph : “X-Services”
Voyager : Web Services
Your ILS : ???
Protocols… boor-ing!
Library protocols
Z39.50 ISO/ANSI/NISO Information Retrieval Protocol
3M SIP ( Standard Interchange Protocol ) 2.0
NCIP ( NISO Circulation Interchange Protocol )
DLF’s ILS Discovery Interfaces recommendation
Database connection
e.g. Oracle/MySQL/etc. listener doran@uta.edu
Michael Doran, Systems Librarian
1
APIs – getting around the gate keepers cataloging client circulation client
“data” acquisitions client
OPAC
Michael Doran, Systems Librarian
4 doran@uta.edu
Which API should you use?
All I see are zeros and ones!
What data can it read
database connection – everything!
web services, library protocols – eh, not so much
What data can it write
database connection – (effectively) nothing web services, library protocols – it depends
Mix and match
Response times/latency doran@uta.edu
Michael Doran, Systems Librarian
ShelfLister – 2 nd knowing
“Know the available APIs”
Voyager ILS
2003
2006
2007
2005
2004
Oracle listener
2008 listener
2009
Voyager ILS
Web services
Oracle Database data
3 doran@uta.edu
Michael Doran, Systems Librarian
3) Know what you want to do
Public access
Mobile OPAC?
????????
Staff access
Inventory tool?
???????
Be ambitious
But not too ambitious (at least the first time) doran@uta.edu
Michael Doran, Systems Librarian
ShelfLister – 3 rd knowing
“Know what you want to do”
Free the data!
Michael Doran, Systems Librarian
2 doran@uta.edu
4) Know how to (web) program
I.e. server-side, not client-side
Java
C/C++
Ruby
PHP
Perl
You must code in Perl.
It’s the Law.
Just kidding!
Use whatever you want!
Lisp
bourne shell whatever…
Michael Doran, Systems Librarian
1 doran@uta.edu
ShelfLister – 4 th knowing
“Know how to (web) program” shelflister.cgi
Perl DBI/DBD::Oracle
SQL queries form generation, data munging, and formatting output
Voyager ILS listener
Oracle Database data
Michael Doran, Systems Librarian
3 doran@uta.edu
ShelfLister – 4 th knowing
“Know how to (web) program”
Web programming… heh, that’s not a real iPhone app!
“Most of the folks I know in app development are moving to standardization on web versus device specific development.”
Linda Woods, AT&T Education Advocate
Industry & Mobility Application Solutions comment at 2009 Handheld Librarian Online Conference doran@uta.edu
Michael Doran, Systems Librarian
1
You can (and should) do this
If that imbecile Doran could do one…
How hard could it be?
Getting something to beta would only take me a couple weeks.
...and maybe a case of Red Bull.
Michael Doran, Systems Librarian
1 doran@uta.edu
The Tao of mobile web design
A mobile web app should do one thing and do it well.
A mobile web app must be as simple as possible, but no simpler.
standards compliance
web usability design
minimal user (data) input
design and testing
cross-browser
cross-platform doran@uta.edu
Michael Doran, Systems Librarian
Mobile design browser compatibility
Chrome
Internet Explorer
Firefox
Michael Doran, Systems Librarian
2 doran@uta.edu
XHTML/HTML/CSS validation
XHTML/HTML
CSS
Accessibility
Get right with these before you get to the platform compatibility.
Michael Doran, Systems Librarian
3 doran@uta.edu
iPhone web apps (according to Apple)
Three types content:
compatible with Safari on iPhone
optimized for Safari on iPhone
iPhone web application
W3C standards compliant
- no framesets or
- unsupported technologies
“Most of the folks I know in app development are moving to standardization on web versus device specific development.”
Linda Woods, AT&T Education Advocate
Industry & Mobility Application Solutions comment at 2009 Handheld Librarian Online Conference doran@uta.edu
Michael Doran, Systems Librarian
2
Mobile design – platform compatibility viewport
Michael Doran, Systems Librarian
4 doran@uta.edu
Mobile design – platform compatibility
Michael Doran, Systems Librarian
3 doran@uta.edu
Mobile design – platform compatibility
Larger buttons for finger tapping
Michael Doran, Systems Librarian
1 doran@uta.edu
Handheld emulators/simulators
Operating System
Generally come with handheld OS SDKs
webOS (Palm)
http://developer.palm.com/ iPhone (Apple)
http://developer.apple.com/iphone/
Software Development Kit
Android (Google & Open Handset Alliance)
http://developer.android.com/
Web-based simulators (be leery)
Opera Mini Simulator – good
http://www.opera.com/mini/demo/
TestiPhone.com – absolutely worthless doran@uta.edu
Michael Doran, Systems Librarian
Handheld emulators/simulators
Palm iPhone Android
Michael Doran, Systems Librarian
3
Opera Mini doran@uta.edu
Mobile design – platform compatibility
Michael Doran, Systems Librarian
2 doran@uta.edu
Test it on the real thing (handset), too!
Just need to… test… my app… one... more time.
Or, as a last resort…
Borrow from colleagues
Michael Doran, Systems Librarian doran@uta.edu
Don’t forget the documentation!
Mobile/handheld developer sites have useful information on how to “design for small”
Read it
Seriously. Read it.
A viewport?
Who knew?
It’s a small world after all.
Michael Doran, Systems Librarian doran@uta.edu
Example docs and websites
Reading?
I just want to code!
iPhone
Principles and Guidelines for
Creating Great iPhone Content
iPhone Human Interface
Guidelines for Web Applications
Safari Web Content Guide for iPhone OS
Others
Opera Mini Developer resources many, many, more… doran@uta.edu
Michael Doran, Systems Librarian
ShelfLister version 2.0 (for handhelds)
Start barcode
End barcode
Michael Doran, Systems Librarian
3 doran@uta.edu
ShelfLister version 2.0 (for handhelds)
Michael Doran, Systems Librarian
2 doran@uta.edu
ShelfLister version 2.0 (for handhelds)
UTA hereby grants USER permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee […]
Michael Doran, Systems Librarian
3 doran@uta.edu
Source code http://rocky.uta.edu/doran/
Michael Doran, Systems Librarian
2 doran@uta.edu
Open systems – ILSs
Hello ILS vendor?
I’d like to order an open system.
What does that mean?
It means I want database access. And web services.
Yeah, and an NCIP server.
Michael Doran, Systems Librarian doran@uta.edu
Open systems – your mobile client
Consider releasing your mobile app as free open source. It’s better than free beer!
Ask permission first, though!
Michael Doran, Systems Librarian
1 doran@uta.edu
Asking permission http://rocky.uta.edu/doran/ip/
Michael Doran, Systems Librarian
1 doran@uta.edu
Questions?
Doran
His lips are moving… but I can’t hear a thing he’s saying
.
Michael Doran, Systems Librarian doran@uta.edu