Mobile Patrons: Better Services on the Go Vincci Kwong and Gary Browning Indiana University South Bend 13th Annual LITA National Forum October 3, 2010 Mobile Internet Usage Mobile Data Applications Usage Use of Mobile Data Applications (Age 18-29) Send/receive text messages 95% Take a picture 93% Access the Internet 65% Play music 64% Record a video 60% Play a game 60% Send/receive email 52% Use a social networking site 48% Send/receive instant messages 46% Watch a video 40% Post a photo or video online Use a status update service Make a purchase 33% 21% 20% 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 120 100 80 60 40 20 0 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 Authentication http://ezproxy.yourlib.org:2048/login?user=rdoe&ticket=a6911a5d021 9f428b33e190a80818625%24c20041222220203&url=http://www.s omedb.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://ezprox y.yourlib.org:2048", "shhhh", "someuser"); ?> <a href="<?php echo($ezproxy>url("http://www.somedb.co m")) ?>">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 CAS Standard 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.e du/~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&servic e=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. 2. 3. 4. 5. 6. Needs assessments Integrate with existing library services Project planning Build the site Testing, marketing, launching 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_Mob ile_Access_2010.pdf • Detect Mobile Browsers - http://detectmobilebrowsers.mobi/ • OCLC Ezproxy http://www.oclc.org/support/documentation/ezproxy/usr/default.ht m • 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: vkwong@iusb.edu • Phone: 574-520-4444 • Gary Browning • Email: gary@iusb.edu • Phone: 574-520-5516