Mobile Patrons: Better Services on the Go (For Techie)


Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • % of overall website usage?
  • (2008)
  • The backend is a J2EE (Java 2 Platform, Enterprise Edition) application. It runs in a clustered Tomcat environment with an Oracle database. It was modeling after the work that MIT had done.
  • 2499 overall hits
  • Ezproxy has a ‘static’ html login page that can be configured to appear how you like. Since Ezproxy uses Apache – First idea is to incorporate a mobile detection library possibly using PHP. Once we found a library that looked promising, we tried to incorporate it. Unfortunately it failed. We contacted OCLC and found we cannot incorporate PHP into the html login page.
  • This was suggest by OCLC. Bypasses the built-in Authentication page. OCLC has sample code in the support section of their website.
  • Ezproxy must be configured to use the same “secret” (shhh) for a ticket to be generated. The ezproxyticket.php library is available for download from the OCLC website This gets us the ability to use Ezproxy; however, we still need to incorporate an authentication mechanism.
  • Public Libraries … it is my understanding that most libraries have access to some ‘flavor’ of the SIP protocol by 3M. For example, one public library uses TLC. They would need to create a mobile login page and communicate to the TLC system using SIP.
  • IU CAS response is easier to code for; however, applications that have built-in support for CAS will not typically work with IU CAS.
  • Explain, again, that these steps are specific to CAS
  • Mention Accuracy – The “Sticky” Problem.
  • Planning for a mobile site article
  • Mobile Patrons: Better Services on the Go (For Techie)

    1. 1. Mobile Patrons: Better Services on the Go October 3, 2010 Vincci Kwong and Gary Browning Indiana University South Bend 13 th Annual LITA National Forum
    2. 2. Mobile Internet Usage
    3. 3. Mobile Data Applications Usage
    4. 4. Statistics for Library Website
    5. 5. First Version of Library Mobile Site
    6. 6. Mobile Library Site Homepage <ul><li>Ask a Librarian </li></ul><ul><li>WorldCat </li></ul><ul><li>RefWorks </li></ul><ul><li>Hours </li></ul><ul><li>Contact </li></ul><ul><li>Address </li></ul><ul><li>IU Mobile </li></ul><ul><li>Schurz Library Homepage </li></ul>
    7. 7. IU Mobile Initiative
    8. 8. Graphic Icon for Mobile
    9. 9. Schurz Library Mobile Interface
    10. 10. Statistics for Library Mobile Website
    11. 11. Mobile Friendly Authentication <ul><li>Remote access to subscription databases is done through OCLC’s EZproxy Authentication and Access software. </li></ul><ul><li>EZproxy does not have built-in support for mobile devices. </li></ul>
    12. 12. How to make EZproxy Mobile Friendly Incorporate a mobile device detection library?
    13. 13. EZproxy Ticket Authentication <ul><li> </li></ul><ul><li>“ 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 </li></ul>
    14. 14. Sample PHP code <ul><li><?php require(&quot;ezproxyticket.php&quot;); $ezproxy = new EZproxyTicket(&quot;;, &quot;shhhh&quot;, &quot;someuser&quot;); </li></ul><ul><li>?> </li></ul><ul><li><a href=&quot;<?php echo($ezproxy->url(&quot;;)) ?>&quot;>Some Database</a><br /> </li></ul><ul><li>EZproxy user.txt </li></ul><ul><li>::Ticket </li></ul><ul><li>TimeValid 90 </li></ul><ul><li>MD5 shhhh </li></ul><ul><li>Expired; Deny expired.htm </li></ul><ul><li>/Ticket </li></ul>
    15. 15. Central Authentication System (CAS) <ul><li>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. </li></ul><ul><li> </li></ul>
    16. 16. CAS vs IU CAS <ul><li>Standard CAS response – XML </li></ul><ul><li><cas:serviceResponse xmlns:cas=''> <cas:authenticationSuccess> <cas:user>username</cas:user> <cas:proxyGrantingTicket>PGTIOU-84678-8a9d... </cas:proxyGrantingTicket> </cas:authenticationSuccess> </cas:serviceResponse> </li></ul><ul><li>IU CAS response – </li></ul><ul><li>If validation is successful, CAS sends back a two-line response with 'yes' on the first and 'username' on the second. </li></ul>
    17. 17. Connecting Ezproxy with IU CAS <ul><li>Detect mobile or desktop </li></ul><ul><li>If mobile, set CASSVC to mobile </li></ul><ul><li>Check with CAS to see if already authenticated </li></ul><ul><li>If authenticated, display database; otherwise present a login screen </li></ul>
    18. 18. Sample Code – login.php <ul><li><?php </li></ul><ul><li>include('mobile_device_detect.php'); </li></ul><ul><li>if(mobile_device_detect(true,true,true,true,true,true,false,false)){ </li></ul><ul><li>header(&quot;Location:;); </li></ul><ul><li>}else{ </li></ul><ul><li>header(&quot;Location:;); </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul>
    19. 19. Sample Code – casauth.php <ul><li><?php </li></ul><ul><li>session_start(); //start session </li></ul><ul><li>if( isset($_GET['casticket']) ){ //check to see if a ticket has been passed </li></ul><ul><li>$ticket = $_GET['casticket']; </li></ul><ul><li>} else { </li></ul><ul><li>$ticket = &quot;&quot;; </li></ul><ul><li>} </li></ul>
    20. 20. Sample Code – casauth.php cont. <ul><li>/* </li></ul><ul><li>* check CAS ticket authenticity and get the user's uid back </li></ul><ul><li>* the variable $contents will have the string </li></ul><ul><li>* &quot;ticket '<ticket value>' not recognized&quot; if a bad ticket </li></ul><ul><li>* has been provided. </li></ul><ul><li>*/ </li></ul><ul><li>$casXML = fopen(&quot;$ticket&service=;,&quot;r&quot;); </li></ul><ul><li>$contents = fread($casXML, 1024); </li></ul><ul><li>fclose($casXML); </li></ul>
    21. 21. Sample Code – casauth.php cont. <ul><li>list($yesno, $netid) = split(&quot; &quot;, $contents, 2); </li></ul><ul><li>$authok = trim($yesno); </li></ul><ul><li>$iuid = trim($netid); </li></ul><ul><li>if ($authok == &quot;no&quot;) { </li></ul><ul><li>header(&quot;Location:;); </li></ul><ul><li>} </li></ul><ul><li>else { </li></ul><ul><li>$_SESSION['auth'] = $iuid; </li></ul><ul><li>header(&quot;Location:;); </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul>
    22. 22. A Better Idea – Can IU Mobile do it? <ul><li>IU Mobile is already connected to IU CAS </li></ul><ul><li>Need ability to </li></ul><ul><li>Check if authenticated </li></ul><ul><li>Display alternative information if not </li></ul><ul><li>Restrict to campus level </li></ul>
    23. 23. Yes, IU Mobile Can do it! <ul><li><authenticated> </li></ul><ul><li><list-item> </li></ul><ul><li><link type=&quot;xml&quot; xml=&quot;; title=&quot;Subscription Databases&quot; /> </li></ul><ul><li></list-item> </li></ul><ul><li></authenticated> </li></ul><ul><li><not-authenticated> </li></ul><ul><li><list-item> </li></ul><ul><li><link type=&quot;xml&quot; xml=&quot;; title=&quot;Subscription Databases&quot; /> </li></ul><ul><li></list-item> </li></ul><ul><li></not-authenticated> </li></ul>
    24. 24. Authenticated vs. Not-Authenticated
    25. 25. Sample restriction to South Bend <ul><li><list-item> </li></ul><ul><li><authenticated> </li></ul><ul><li><if permission=&quot;southbend&quot;> </li></ul><ul><li><link type=&quot;external&quot; url=&quot;<?php echo($ezproxy->url(&quot;;)) ?>&quot; title=&quot;HW Wilson&quot; /> </li></ul><ul><li></if> </li></ul><ul><li></authenticated> </li></ul><ul><li></list-item> </li></ul>
    26. 26. Computer Availability Mobile Webpage
    27. 27. System Requirements <ul><li>Computer Availability </li></ul><ul><ul><li>Web Server such as Apache or IIS </li></ul></ul><ul><ul><li>PHP </li></ul></ul><ul><ul><li>Database such as MySQL </li></ul></ul><ul><ul><li>Ability to run login and logout scripts </li></ul></ul>
    28. 28. How it works <ul><li>Script run at login updates database </li></ul><ul><li>Script run at logout updates database </li></ul><ul><li>Standard html version available at </li></ul>
    29. 29. For mobile, output data as XML <ul><li><seats> <?php </li></ul><ul><li>foreach ($regions as $region) { </li></ul><ul><li>$region_id = $region['region_id']; </li></ul><ul><li>$region_display_name = $region['display_name']; </li></ul><ul><li>$region_location = $region['location']; </li></ul><ul><li>$region_mac_status_counts = get_status_counts_for_region($region_id, 'Mac'); </li></ul><ul><li>$region_pc_status_counts = get_status_counts_for_region($region_id, 'PC'); </li></ul><ul><li>$total_idle_mac_computers = $region_mac_status_counts['idle']; </li></ul><ul><li>$total_busy_mac_computers = $region_mac_status_counts['busy']; </li></ul><ul><li>$total_idle_pc_computers = $region_pc_status_counts['idle']; </li></ul><ul><li>$total_busy_pc_computers = $region_pc_status_counts['busy']; </li></ul><ul><li>$total_idle_computers = $total_idle_mac_computers + $total_idle_pc_computers; </li></ul><ul><li>$total_online_computers = $total_idle_computers + $total_busy_computers; </li></ul><ul><li>print &quot;<seat lab=&quot;$region_building $region_location&quot; building=&quot;$region_display_name&quot; availability=&quot;$total_idle_computers/$total_online_computers&quot; campus=&quot; </li></ul><ul><li>SB&quot; /> ”; } </li></ul><ul><li>?> </seats> </li></ul>
    30. 30. Texting Reference Service
    31. 31. Planning for Mobile Website <ul><li>Needs assessments </li></ul><ul><li>Integrate with existing library services </li></ul><ul><li>Project planning </li></ul><ul><li>Build the site </li></ul><ul><li>Testing, marketing, launching </li></ul><ul><li>Keeping up </li></ul>
    32. 32. Library Resources with Mobile Platforms <ul><li>Ebscohost </li></ul><ul><li>H.W. Wilson </li></ul><ul><li>PubMed </li></ul><ul><li>WorldCat </li></ul><ul><li>Lexis/Nexis Get Cases and Shepardize </li></ul><ul><li>Fastcase </li></ul><ul><li>RefWorks </li></ul><ul><li>Hoovers </li></ul><ul><li>Encyclopedia Britannica </li></ul><ul><li>arXiv Browse </li></ul><ul><li>Factiva </li></ul><ul><li>IEEE Xplore </li></ul><ul><li>Westlaw </li></ul>
    33. 33. Mobile Services Offered by Other Libraries <ul><li>SMS notification services </li></ul><ul><ul><li>Kansas State University Libraries </li></ul></ul><ul><li>Mobile collections </li></ul><ul><ul><li>Duke University </li></ul></ul><ul><li>Mobile instruction </li></ul><ul><ul><li>Open University Library </li></ul></ul><ul><ul><li>LibGuides </li></ul></ul><ul><li>Library tour </li></ul><ul><ul><li>Temple Universities Libraries </li></ul></ul><ul><ul><li>University of Illinois at Urbana-Champaign </li></ul></ul>
    34. 34. Resources <ul><li>Mobile Access 2010 - </li></ul><ul><li>Detect Mobile Browsers - </li></ul><ul><li>OCLC Ezproxy - </li></ul><ul><li>CAS - </li></ul><ul><li>XML Tutorial - </li></ul><ul><li>AOL Mobile - </li></ul><ul><li>M-Libraries Success Wiki - </li></ul>
    35. 35. Questions? <ul><li>Feel free to contact us at </li></ul><ul><ul><li>Vincci Kwong </li></ul></ul><ul><ul><ul><li>Email: [email_address] </li></ul></ul></ul><ul><ul><ul><li>Phone: 574-520-4444 </li></ul></ul></ul><ul><ul><li>Gary Browning </li></ul></ul><ul><ul><ul><li>Email: [email_address] </li></ul></ul></ul><ul><ul><ul><li>Phone: 574-520-5516 </li></ul></ul></ul>