mobile patrons: better services on the go (for techie)
DESCRIPTION
Several mobile friendly initiatives which improve mobile user’s experience with library resources will be discussed. These initiatives include creation of a mobile library website, development of mobile friendly authentication user interface, implementation of a computer availability mobile page and offering of texting reference service.TRANSCRIPT
October 3, 2010
Mobile Patrons: Better Services on the Go
Vincci Kwong and Gary BrowningIndiana University South Bend
13th Annual LITA National Forum
Mobile Internet Usage
Mobile Data Applications Usage
Statistics for Library Website
First Version of Library Mobile Site
Mobile Library Site Homepage
• Ask a Librarian• WorldCat• RefWorks• Hours• Contact• Address• IU Mobile• Schurz Library Homepage
IU Mobile Initiative
https://m.iu.edu/miu-prd/about/index.shtml
Graphic Icon for Mobile
Schurz Library Mobile Interface
http://m.library.iusb.edu
Statistics for Library Mobile Website
Mobile Friendly Authentication
Remote access to subscription databases is done through OCLC’s EZproxy Authentication and Access software.
EZproxy does not have built-in support for mobile devices.
How to make EZproxy Mobile Friendly
Incorporate a mobile device detection library?
http://detectmobilebrowsers.mobi/
EZproxy Ticket Authenticationhttp://ezproxy.yourlib.org:2048/login?
user=rdoe&ticket=a6911a5d0219f428b33e190a80818625%24c20041222220203&url=http://www.somedb.com/
“Ticket authentication allows remote systems to short-lived URLs that EZproxy will automatically recognize as being authorized to login and permit access to a resource with no need for EZproxy to check back with the program that creates the URL.” – OCLC website
Sample PHP code<?php
require("ezproxyticket.php"); $ezproxy = new EZproxyTicket("http://ezproxy.yourlib.org:2048", "shhhh", "someuser");
?>
<a href="<?php echo($ezproxy->url("http://www.somedb.com")) ?>">Some Database</a><br />
EZproxy user.txt
::Ticket
TimeValid 90
MD5 shhhh
Expired; Deny expired.htm
/Ticket
Central Authentication System (CAS)
Central Authentication Service (CAS) is a login service that allows you to access multiple password-protected web systems after logging in once on a central authentication server; this is often referred to as single sign-on.
http://www.jasig.org/cas
CAS vs IU CASStandard CAS response – XML
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationSuccess> <cas:user>username</cas:user> <cas:proxyGrantingTicket>PGTIOU-84678-8a9d... </cas:proxyGrantingTicket> </cas:authenticationSuccess> </cas:serviceResponse>
IU CAS response –
If validation is successful, CAS sends back a two-line response with 'yes' on the first and 'username' on the second.
Connecting Ezproxy with IU CAS
1. Detect mobile or desktop
2. If mobile, set CASSVC to mobile
3. Check with CAS to see if already authenticated
4. If authenticated, display database; otherwise present a login screen
Sample Code – login.php<?php
include('mobile_device_detect.php');
if(mobile_device_detect(true,true,true,true,true,true,false,false)){
header("Location: https://cas.iu.edu/cas/login?cassvc=MOBIU&casurl=https://www.domain.edu/~site/cas/casauth.php");
}else{
header("Location: https://cas.iu.edu/cas/login?cassvc=IU&casurl=https://www.domain.edu/~site/cas/casauth.php");
}
?>
Sample Code – casauth.php<?php
session_start(); //start session
if( isset($_GET['casticket']) ){ //check to see if a ticket has been passed
$ticket = $_GET['casticket'];
} else {
$ticket = "";
}
Sample Code – casauth.php cont./*
* check CAS ticket authenticity and get the user's uid back
* the variable $contents will have the string
* "ticket '<ticket value>' not recognized" if a bad ticket
* has been provided.
*/
$casXML = fopen("https://cas.iu.edu/cas/validate?cassvc=IU&casticket=$ticket&service=https://www.domain.edu/~site/cas/casauth.php","r");
$contents = fread($casXML, 1024);
fclose($casXML);
Sample Code – casauth.php cont.list($yesno, $netid) = split("\n", $contents, 2);
$authok = trim($yesno);
$iuid = trim($netid);
if ($authok == "no") {
header("Location: https://www.domain.edu/~site/cas/login.php");
}
else {
$_SESSION['auth'] = $iuid;
header("Location: https://www.domain.edu/~site/cas/success.php");
}
?>
A Better Idea – Can IU Mobile do it?
IU Mobile is already connected to IU CAS
Need ability to • Check if authenticated• Display alternative information if not• Restrict to campus level
Yes, IU Mobile Can do it!<authenticated>
<list-item>
<link type="xml" xml="http://it.iusb.edu/demo2.php" title="Subscription Databases" />
</list-item>
</authenticated>
<not-authenticated>
<list-item>
<link type="xml" xml="http://library.iusb.edu/miuxml/oopsSubscribed.xml" title="Subscription Databases" />
</list-item>
</not-authenticated>
Authenticated vs. Not-Authenticated
Sample restriction to South Bend<list-item>
<authenticated>
<if permission="southbend">
<link type="external" url="<?php echo($ezproxy->url("http://vnweb.hwwilsonweb.com/mobile/jumpstart.jhtml")) ?>" title="HW Wilson" />
</if>
</authenticated>
</list-item>
Computer Availability Mobile Webpage
http://m.iusb.edu
System Requirements
Computer Availability
• Web Server such as Apache or IIS• PHP• Database such as MySQL• Ability to run login and logout scripts
How it works
• Script run at login updates database
• Script run at logout updates database
• Standard html version available at www.iusb.edu/~labseats
For mobile, output data as XML<seats> <?php
foreach ($regions as $region) { $region_id = $region['region_id'];
$region_display_name = $region['display_name'];
$region_location = $region['location'];
$region_mac_status_counts = get_status_counts_for_region($region_id, 'Mac');
$region_pc_status_counts = get_status_counts_for_region($region_id, 'PC');
$total_idle_mac_computers = $region_mac_status_counts['idle'];
$total_busy_mac_computers = $region_mac_status_counts['busy'];
$total_idle_pc_computers = $region_pc_status_counts['idle'];
$total_busy_pc_computers = $region_pc_status_counts['busy'];
$total_idle_computers = $total_idle_mac_computers + $total_idle_pc_computers;
$total_online_computers = $total_idle_computers + $total_busy_computers;
print "<seat lab=\"$region_building $region_location\" building=\"$region_display_name\" availability=\"$total_idle_computers/$total_online_computers\" campus=\"
SB\" /> \n”; }
?> </seats>
Texting Reference Service
Planning for Mobile Website
1. Needs assessments
2. Integrate with existing library services
3. Project planning
4. Build the site
5. Testing, marketing, launching
6. Keeping up
Library Resources with Mobile Platforms• Ebscohost
• H.W. Wilson
• PubMed
• WorldCat
• Lexis/Nexis Get Cases and Shepardize
• Fastcase
• RefWorks
• Hoovers
• Encyclopedia Britannica
• arXiv Browse
• Factiva
• IEEE Xplore
• Westlaw
Mobile Services Offered by Other Libraries
SMS notification services
• Kansas State University Libraries
Mobile collections
• Duke University
Mobile instruction
• Open University Library
• LibGuides
Library tour
• Temple Universities Libraries
• University of Illinois at Urbana-Champaign
Resources• Mobile Access 2010 -
http://www.pewinternet.org/~/media//Files/Reports/2010/PIP_Mobile_Access_2010.pdf
• Detect Mobile Browsers - http://detectmobilebrowsers.mobi/
• OCLC Ezproxy - http://www.oclc.org/support/documentation/ezproxy/usr/default.htm
• CAS - http://www.jasig.org/cas
• XML Tutorial - http://www.w3schools.com/xml/default.asp
• AOL Mobile - http://mobile.aol.com/product/sms-text/aim-txt/
• M-Libraries Success Wiki - http://www.libsuccess.org/index.php?title=M-Libraries
Questions?
Feel free to contact us at• Vincci Kwong
• Email: [email protected]• Phone: 574-520-4444
• Gary Browning• Email: [email protected]• Phone: 574-520-5516