34
Breaking Out of the Breaking Out of the Box: Box: Creating Customized Creating Customized Metasearch Services Using an Metasearch Services Using an XML API XML API Roy Tennant, California Digital Library

Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library

Embed Size (px)

Citation preview

Page 1: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library

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

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

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

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

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

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

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

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
Page 10: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 11: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 12: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 13: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library

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

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

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

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

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

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

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
Page 21: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library

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

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
Page 24: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 25: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 26: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 27: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 28: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 29: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 30: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 31: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 32: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library
Page 33: Breaking Out of the Box: Creating Customized Metasearch Services Using an XML API Roy Tennant, California Digital Library

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

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