Title: Integrating Voyager Extensions with Open Source Components
1Integrating Voyager Extensions with Open Source
Components
- Jeffrey Barnett, Gail Barnett
- EndUser 2004 session 77
2Session Goals
- Information on Open Source
- Examples of Voyager Extensions
- Examples of Integration practices
- Dos and Donts
- Fostering Collaborative Development
3Open Source
- Too big for a definitive review
- A few informative web sites
- http//www.linuxworld.com/
- http//www.apache.org/
- http//opensource.org/
- http//sourceforge.net/
- http//creativecommons.org/
4Open Source
- Some thoughtful quotes
- As free as a free kitten - E.L.Morgan
- You have a moral imperative to use free
software - Patrick Ball, AAAS - Free software is a matter of the users' freedom
to run, copy, distribute, study, change and
improve the software. Richard Stallman
5Open Source at Yale University Library
- What we use
- Java
- CVS
- Tomcat
- NetBeans
- Why we use it
- How it works
6What else we use
- Linux
- PERL
- PHP
- Python
- MySQL
- Zope
-
7Open Source at Yale University Library
- Why we use it
- Code reuse and multi-platform
- TCO
- Portability
- Community support
8Open Source at Yale University Library
- How it works
- Command line
- Desktop
- Client-Server
- Web
- Toolkit
9Yale Extensions to Voyager
10Yale Extensions to Voyager
11Voyager Integration Details
- Voyager database and application server
configuration - /m1/voyager/xxxdb/local
- Operations and scheduling
12Voyager Integration Details - Server Configuration
Test / Development / Reports
Production
Gigabit switch
Test Web Server
Web Server(s)
Devt DB Apps
Reports DB Archive
Test DB Apps
Voyager DB
Voyager Apps
Yale/public network
Crossover cable
Private network
13 Test / Development / Reports
Production
Test Web Server
Gigabit switch
Devt DB Apps
Development Workstations
Reports DB ARCH
Test DB Apps
Yale/public network
Private network
14Voyager Integration Details Local Directories
- Components come together in /m1/voyager/xxxdb/loca
l/ on - Production, test, and development servers
- Local Java (.jar) programs and their
.properties - Record sets for Pbulkimport Pmarcexport, SIF
files for Pptrnupdt, Pbursar - Shell scripts combining locally written programs,
Voyager batch processes, and OS utilities
15Voyager Integration Example
- /m1/voyager/xxxdb/local/lsf/runprodacc.sh
- Script is scheduled in Voyager cron
- Steps in script
- FTP file of barcodes from LSF server
- Local program lsfaccession.jar to query Voyager
DB and create appropriate Pstrgvfy parameters to
process these barcodes - Voyager script(s) Pstrgvfy
- Send Email with results and error logs to
interested staff
16Voyager Integration Example
- /m1/voyager/xxxdb/local/extractq/runextractq.sh
- Script is scheduled in Voyager cron
- Steps in script
- Local program marcextractq.jar to query DB and
find bib_ids of records needing authority
control processing - Voyager script Pmarcexport to export MARC
records from this list of bib-ids - FTP exported MARC records to vendor for
processing - Send Email with results of extract, export, and
FTP
17Development Details
- Desktop
- Community tools
- Program Examples
18The Free Development DesktopAs a free kitten
19NetBeans Demo
- Multiple related tasks
- Intelligent Editing
- Templates!
- Ant build tools
- war/jar/ear packaging
- Debugging
- Potential desktop
20Tomcat Demo
- Common resources
- Separate Administration
- Separate JVMs
- Web Application Test and Deploy
- Potential Apache integration
21CVS Demo
- Shared Central file server
- Project structure
- Check_out, UPDATE, Commit, DIFF
- Annotation / history
- Recovery
- Keyword substitution
22LSF example
- Properties to control configuration variables
- I/O via stdin / stdout / stderr
- JDBC access to Voyager DB
- Pstrgvfy dependency
- Multi-platform testing and deployment
23VoyAuth Example
- Tomcat container for database connection pools
and CAS deployment - JSP to collect parameters and control CAS process
- Servlet to search Patron table, update WOPAC_PID
table, and control Voyager login process
24Collection Analysis Example
- Tomcat container / default context for Database
connection pools, session state, and operator
authentication filters - JSPs for Menu layout and workflow
- JavaScript for data validation
- Java Beans for dynamic SQL generation
- Pipe Delimited text for report generation
25Reports Example
- Tomcat
- Enhanced operator authority filtering
- Static SQL library
- HTML / XML / XSL reporting options
- CVS shared development
- NetBeans shared components
26Things that make Voyager integration easier
- MARC
- Voyager SIF files
- Common file system
- Common Database
- Separate Schema
- VACS (access)
- NCIP, OpenURL?
27Things that make Voyager integration harder
- VACS (restrictions)
- MS Windows
- Security
- FUD
- Short test windows (vs continuous)
28Collaboration
- Sample code available by request
- jeffrey.barnett_at_yale.edu
- http//www.library.yale.edu/jbarnett/EndUser2004
- .war files to be submitted to support web
- Open Source distribution under consideration
29More useful links
http//oss4lib.org/ http//www.gnu.org http//www.
netbeans.org http//jakarta.apache.org http//www.
mozilla.org/ http//www.mysql.com/ http//creative
commons.org http//www.cvshome.org/ http//www.lor
ia.fr/molli/cvs-index.html http//durak.org/cvswe
bsites/doc/ http//java.sun.com/ http//www.ibm.co
m/developerworks/java/
30QA