breaking out of the box: creating customized metasearch services using an xml api roy tennant,...
TRANSCRIPT
![Page 1: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/1.jpg)
Breaking Out of the Box:Breaking Out of the Box: Creating Customized Metasearch Creating Customized Metasearch
Services Using an XML APIServices Using an XML API
Roy Tennant, California Digital Library
![Page 2: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/2.jpg)
A Cautionary TaleWherein a NitWit finds the courage to face his Disastrous and Idiotic Mistakes while his respected colleagues Justifiably Point and Laugh
![Page 3: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/3.jpg)
What is Breaking Out of the Box?
• Using an XML-based Application Program Interface (API) to an application instead of the native interface
• Requires building an interface layer to:– Accept user input, package it up, and send it to the API– Receive the XML response from the API and process it,
perhaps spawning additional requests to the API– Perform (optionally) other tasks not performed by the
application; e.g., querying another application and merging the response into the user interface
• Or: You do the work, the villain does not
![Page 4: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/4.jpg)
What is Breaking Out of the Box?
• Using an XML-based Application Program Interface (API) to an application instead of the native interface
• Requires building an interface layer to:– Accept user input, package it up, and send it to the API– Receive the XML response from the API and process it,
perhaps spawning additional requests to the API– Perform (optionally) other tasks not performed by the
application; e.g., querying another application and merging the response into the user interface
• Or: You do the work, the vendor does not
![Page 5: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/5.jpg)
Why Break Out of the Box?
• Much greater interface flexibility• Interface customizations remain despite system upgrades • Increased ability to integrate with other systems• Ability to add new functions and services not supported by
the vendor:– Spell checking– Recommendation services
• Upon which it finally occurs to the NitWit that Arrogance has its Price
![Page 6: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/6.jpg)
A Visit to the Scene of the
Crime: Part the 1st• Started shopping for metasearch software in
late 2002• Purchased MetaLib from ExLibris in Spring
2004• Trained in Fall 2004, then began studying how
to make it easy for campuses to customize the interface
• Interlude: A Discovery is Made
![Page 7: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/7.jpg)
Wherein the NitWit discovers
the full magnitude of his
Error• To customize one screen, change all of the
following file fragments:quick-1, quick-2-end, quick-3-body, quick-details, quick-1-body, quick-2-end.orig, quick-3-head, quick-details-info, quick-1-head, quick-2-head, quick-3-js, quick-full, quick-1-tail, quick-2-tail, quick-3-no-results, quick-help, quick-1-toolbar, quick-2-toolbar, quick-3-tail, quick-help-main, quick-1-toolbar-pd, quick-2-wait, quick-3-toolbar, quick-js, quick-2, quick-3, quick-8-body.spa, quick-main-help
• Then, watch other screens break later in the flow• Rinse and Repeat
![Page 8: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/8.jpg)
Why this was truly Tragic
• Our vision is of many search portals:– Tailored to specific audiences (earth science faculty and
grad students) and/or purposes (a few good things)– Branded locally (we serve ten campuses)
• Integrating many types of content or services not typical of library metasearch applications
• The native interface presented difficult, systemic barriers to customization
• The native interface was rife with browser-specific Javascript and substandard HTML
![Page 9: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/9.jpg)
![Page 10: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/10.jpg)
![Page 11: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/11.jpg)
![Page 12: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/12.jpg)
![Page 13: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/13.jpg)
Undergrad portal with suggestions of subject databases
![Page 14: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/14.jpg)
A Visit to the Scene of the
Crime : Part the 2nd• After struggling with interface changes,
decided to go with API access in late 2004
• Interlude: the NitWit discovers there is no API worthy of the name
![Page 15: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/15.jpg)
In which the NitWit overcomes despair
by Blind, Ill-Considered action• The MetaLib API was primitive, poorly documented, buggy, and lacked most of the functionality of the native interface
• We marshalled the community:– Established an X-Server listserv– Gathered input on upgrades, wrote document
summarizing our priorities
• Worked with ExLibris to improve the API• Began integrating MetaLib with the
Common Framework
![Page 16: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/16.jpg)
The Attentive Audience Asks:
The What?
![Page 17: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/17.jpg)
Common Framework: Principles
• Clear separation of applications from underlying services
• Consistent exposure of services thru SOAP and Java client API
• Separation of services from data storage and other resources
• Easy integration of 3rd-party solutions• Platform independence
![Page 18: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/18.jpg)
The CDL Common Framework
• Programmed in Java• Based on Web Services (e.g., SOAP/REST
interfaces)• Services often also have Java and/or Web-based
client applications• Uses METS & PREMIS (for metadata) and ARKs
(for persistent links), among other standards or draft standards (e.g., OAIS reference model)
• Integrates the Extensible Text Framework (XTF) XML searching and publishing platform — see xtf.sourceforge.net
![Page 19: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/19.jpg)
Common Framework Capabilities
• Presently:– Ingesting, managing, and preserving digital
content – Serving XML to the Web– Searching XML metadata and content
• In Development:– Web crawling – OAI harvesting (based on the UofM harvester)– Metasearching (using the MetaLib X-Server)
![Page 20: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/20.jpg)
![Page 21: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/21.jpg)
A Visit to the Scene of the
Crime : Part the 3rd
• Installed first major upgrade to the API in August 2005• Still coding (no Alpha yet!)• Next major upgrade to the API expected in late Spring 2005
• Wherein the NitWit discovers that implementation schedules are to be broken … once … twice … thrice
• Interlude: An attempt by the NitWit to justify his Dubious Decisions and StaggeringMistakes
![Page 22: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/22.jpg)
A panoply of Lame Excuses
• Most metasearch software is not designed for multiple, tailored deployments
• Product APIs are often incomplete or nonexistent• We would rather delay deployment than give up on our model of
tailored portals• It wasn’t my fault
• Meanwhile, the abject failure of this NitWit is made all the more clear by the work of David Walker at CSU San Marcos, who Rocks!
![Page 23: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/23.jpg)
![Page 24: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/24.jpg)
![Page 25: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/25.jpg)
![Page 26: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/26.jpg)
![Page 27: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/27.jpg)
![Page 28: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/28.jpg)
![Page 29: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/29.jpg)
![Page 30: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/30.jpg)
![Page 31: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/31.jpg)
![Page 32: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/32.jpg)
![Page 33: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/33.jpg)
The Agony is Nearly Over
• We conclude our Unfortunate Tale with advice for those who may be unable to avoid such Tragedy as befell this most Deserving Wretch
![Page 34: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library](https://reader036.vdocuments.us/reader036/viewer/2022070400/56649f0e5503460f94c22d4c/html5/thumbnails/34.jpg)
The Sad Morals of Our Tale
• Proprietary solutions sucketh; proprietary solutions without an API sucketh rocks
• “Excellent” is the sworn enemy of “easy”
• Neither early adopter nor latecomer be (Pain is best experienced by others)
• The first task of a Project Manager is to select upon whom to pin the Blame