2010 sopac cosugi
DESCRIPTION
Description of how the connector were created for SOPAC to work with Sirsi/UnicornTRANSCRIPT
![Page 1: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/1.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Sopac connectors for Sirsi
Sean Robinson Allen County Public Library
Fort Wayne IN
![Page 2: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/2.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
The history
• 4-5 years ago I meet John Blyberg in Ann Arbor, Michigan and they has just integrated III into Drupal 4 but it was a very customized solution.
• 2-3 years ago I came to my first Sirsi conference and there seemed to be an interest in the Sirsi community to separate the data from the presentation layer.
• 1 -2 years ago John wanted abstract the SOPAC design so it could be integrated into any OPAC and he asked if I would be interested in writing the connector code for SIRSI.
• I said, Yes! He gave me the source code for III and I translated the code into Sirsi speak and made a few alterations.
![Page 3: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/3.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
How in the H*LL was I going to do this?
• I wanted all the data that could be real-time data to be real-time data.
• I wanted the design to simple, clean and easily understood.
• I wanted it to work across Sirsi/Dynix versions.
• I wanted to follow John’s vision and completely separate data layer from the presentation layer.
![Page 4: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/4.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Decisions
• How was I going to get the data? I had two choices, either the API or the XMLAPI. My choice was to use the XMPAPI.
• What is the most universally useful way to present the data? I felt that creating a set of independent building blocks that programmers could use independently was the design I wanted to follow. So, creating a set web services seem the most generic and logical solution. People could then use these services in the future for anything.
• The XMPAPI gave me the freedom to create these services in Perl simple and clear manner. Parsing XML would be easy.
![Page 5: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/5.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Design elements
![Page 6: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/6.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Webservices on Sirsi
• Hold_status.pl – Checks to see if in transit, available.
• Item_status.pl- Gets call number, home location, item number, item location now.
• Item_type.pl – Input is catkey and result it item type.
• Item_avail.pl – Does some location checking to find item. We want to check that the item is at the same location as the home location for the patron and then if this is not true to locate another item.
![Page 7: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/7.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
…more Webservices on Sirsi
• Patron_bib.pl – Dumps bib information based on cat key.
• Patron_details.pl – Gets patron information.
• Patron_dump.pl – Gets addition patron information.
• Patron_tools.pl Handles renew, cancel hold, place a hold.
![Page 8: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/8.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
How was I going to pass data to another computer?
![Page 9: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/9.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Adding Drupal into the equation
![Page 10: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/10.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Sopac structure
![Page 11: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/11.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
ILS Connector
• The connector is constructed using three standalone php classes. (Written in php because that is the development language of Drupal)
1 Sirsi_patronapi.php
2 Sirsitools_3125.php
3 Locum_sirsi_3125.php
![Page 12: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/12.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Sirsi_patronapi.php
• This gathers patron information, name, address, holds, bills, charged items, home library etc…
• All this data is then held in various a data structures.
• Only item of information that is passed to the web service is the patrons library card.
• This was the first connector piece that I wrote.
![Page 13: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/13.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Sirsitools_3125.php
• Creates and instance of the patron_api object and populates it with data.
• Renew of material.
• Cancel a hold.
• Places a hold.
• This was the second class that I wrote.
![Page 14: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/14.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Locum_sirsi_3125.php
• Returns bibliographic information. in locum ready array. This is done with the catalog key rather than item key.
• Returns item status. Is the item available, on hold, copies available, now many etc…
• Here we are using both previous classes to get data and perform functions to pass as data structures to locum.
• This was the last class that I wrote.
![Page 15: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/15.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Getting the data from MARC
Question: Why not just dump the data with the catalogdump command?
Answer: It would have involved a major rewrite of John’s code and effected compatibility and overall philosophy.
![Page 16: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/16.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Getting the data from MARC
![Page 17: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/17.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Getting the data from MARC
• Originally the catkey was feed to catalogdump and the MARC record was returned and then parsed into the MySQL database.
• Problem was that we had to spawn a catalogdump process to each catkey request. We have about 1.5 million records and it was going to take about a week to import the database.
• The other problem was the http protocol overhead with running this as a CGI.
• So here is the solution.
![Page 18: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/18.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Getting the data from MARC
![Page 19: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/19.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Getting the data from MARC
• We wrote a MARC server that has catalogdump running as a daemon. We only have to spawn the process once.
• The MARC server is constantly checking for connections.• Once it receives a connection is checks for completeness.• Sends it to the catalogdump.• Waits for response from catalogdump.• If there are errors they are sent to the errorlog file.• Sends MARC back to SOPAC• Performance increase of 200 records per second. • One day to process 1.5 million records.
![Page 20: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/20.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 21: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/21.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 22: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/22.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 23: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/23.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 24: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/24.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 25: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/25.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 26: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/26.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 27: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/27.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 28: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/28.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 29: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/29.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Look and feel
![Page 30: 2010 Sopac Cosugi](https://reader034.vdocument.in/reader034/viewer/2022051817/547eaa285906b5ba718b46c3/html5/thumbnails/30.jpg)
Lake Buena Vista, Florida – March 3-5, 2010
Contact information
Sean RobinsonEmail : [email protected] : www.tscrobinson.com