Trip Report: ExLibris Developers Meeting 2009

MPDL,Aleph,ExLCustomers

Event: 2nd ExLibris Developers' Meeting, Jerusalem, 04/05 November 2009

Participants MPDL: Erik

Summary: What started in 2008 was continued by this year's Ex Libris Developer Meets Developer Meeting: A group of 12 developers building features and functionality on top of Ex Libris products (such as Primo, Aleph, SFX, MetaLib) came together to discuss current practices and the future of Ex Libris Open Platform activities.

Documents:
 * see Links

News:
 * EL Commons, wiki software upgraded to new version of Confluence right before the meeting
 * Codeshare section of the EL Commons platform now open to the public (as requested by developers).
 * new Aleph RESTful API implementing ILS Discovery Interface Task Force (DLF-DI) Technical Recommendation
 * Primo heading towards support of multiple Opacs - data integration customizable through URLs, XSLT - and Java plugins (planned)
 * Oracle views - new interface implemented by Ex Libris to prevent Oracle licensing and Ex Libris support issues
 * Migration of MetaLib databases to Primo on sketch. Necessity of persistent identifiers of Set/Resource IDs acknowledged during Primo/MetaLib WS
 * Daniel Forsman's presentation - Open Services, Open Platforms vs. "Open Data" - libraries ought to carefully consider the value of their data

Notes:
 * Meeting partly sponsored by Oracle

Status of the Ex Libris Open Platform Program
by Tamar Sadeh, Revital Marck


 * Project start in May 2008
 * Responsibilies - Tamar: "outward", Revital "internals"
 * New version of wiki launched right before this meeting
 * Codeshare section publicly available
 * List of Open Interfaces added to products
 * Grouped lists available
 * > 80 code contributions so far, ELympics contest started to encourage even more
 * Recommendation: Make more use of ratings
 * Notes about web interface (from participants)
 * Do not use font bold for mouseover of navigation items (spoils layout)
 * Sometimes page elements overlap (hides navigation items, looks ugly)
 * Bug detected: Click on top navigation main item causes weird behavior

Opac functionality via Primo
by Tamar Sadeh
 * Project launched: Aleph/Voyager functionality in Primo, to be implemented with Primo 3
 * Redesign of Primo
 * Facets on the left - as many users expect but ads on the right? Questioned by participants
 * Full records to display on summary page (in iframe) - different views (e.g. native, locations) and additional services (e.g. SFX, bX) presented as tabs
 * Full page of full record, with "Primo frame"
 * Holdings tab: Number of items available (on the fly lookup)?
 * Template engine: jsp, xslt
 * No "themes" (user group specific views)

Representational State Transfer (REST) services
by Lionel Zerbib


 * Primo/Aleph based on REST architecture
 * Principles
 * cacheable (stable URLs, bookmarks) - indicate if a URL is not cacheable
 * stateless
 * Closeness to (original) www architecture
 * Security: SSL (http for username/password, X.509 for certificates)
 * Reliability is up to application (example: retry)
 * Use actions GET, POST, PUT, DELETE, HEAD, ...
 * REST vs. SOAP
 * REST: good performance, availability of resources
 * SOAP: support of transactions, more standards
 * Aleph perspective
 * Do not wait for Primo but map all resources (-> URLs), be resource-oriented
 * Aleph-X not quite restful
 * However, new RESTful API (DLF-REST implementation)

Standards-based ILS discovery interfaces
by Moshe Shechter
 * DLF - ILS DI (Discovery Interface) Task Force - established by NA Libraries
 * Acquisition, cataloging, circulation, report are library-specific operations which are not done elsewhere
 * Usage of library services (by applications) from "outside"
 * Define API for effective operation, not restricted to existing standards (MARC, z39.50)
 * Abstract definition of services - e.g. Harvest (= data aggregation) - abstract services: HarvestBibliographicRecords, HarvestAuthorityRecords, HarvestHoldingsRecords
 * Categories - e.g. Patron Services (parameters: patronID, ...)
 * Berkeley Accord - basic DI signed by OCLC, CDL, Ex Libris, ...

Implementation of Opac functionality via Primo, using RESTful services in Aleph
by Moshe Shechter
 * Example: Patron services
 * Remarkable: Drilldown to more specific service URLs
 * Question: Security (through API)? - Attempt to set up task force Ex Libris, participants
 * Aleph, additional attributes (in addition to implementation of abstract service specification), e.g. view=brief, full
 * Client, JBOSS, Apache
 * Identification of Primo as client by certificate
 * API based on Aleph-X, other Aleph tools, files (all of which will be continued)
 * Implementation: Aleph 20, backwards implementation Aleph 18 planned by 2010 Q III
 * API xml vocabulary not part of DLF-DI technical recommendation (still at completely abstract level)

Opac functionality via Primo, using ILS APIs in Primo
by Amichay Elnekave, Ori Miller
 * Primo 3 Adapters - ILS URI templates (type Aleph, Voyager)
 * Data flow: Primo ILSG Manager (gateway), ILS Request Handler (URL, xml - xslt) - ILS Adapter - ILS Opac - and back: ILS Adapter - ILS Request Handler (xml - xslt) - ILSG Manager ("concetrate" xml) - Primo
 * Integration with other Opacs
 * Generally yes, as based on
 * request URL templates/POST request xslt
 * xslt to process response
 * Full integration planned (Adapter Java plugins - for example, to send specific http request) - challenge: patron identification
 * Selection of adapters is dynamic (naming convention: institution code, service name)
 * Ere: Again, security problem: How to protect resources through API request, working group on JBOSS security implementation, also within the scope of native iPhone applications (different working group, Matthew)

Porting the Reserves Catalog into Electronic Reserves
by Mark Dehmlow, Notre Dame University

Abstract: At the University of Notre Dame, we are working on a project to bring Aleph's reserve catalog into our Electronic Reserves system to provide a one stop location for users to find all reserves items. The first part of this presentation will give some background on our electronic reserves system—why we have a system just for this purpose and its functionality; the second part will detail the project plan for integrating Aleph's reserve catalog into our electronic reserves system utilizing Aleph's open interfaces.

Building on top of Ex Libris products
by Yosef Branse, University of Haifa

Abstract: The presentation will open with a brief introduction to University of Haifa and the university library, the library’s technological infrastructure, the tools used by the library for developing local applications, and the cooperation with other university divisions. Developments done by the library such as a local course reading interface based on the Aleph module, generation of payment orders for invoices, SMS messages to readers, and the generation of statistics related to readers’ helpdesk queries will be described. The session will end with some plans for the future.

Text, XML, and Excel files in an Aleph environment
by Dror Berger, the National Library of Israel

Abstract: Gawk—the GNU software for manipulating text files—the way it perfectly suits the environment of the National Library of Israel and some implementations; transforming Aleph records to XML records; and loading Excel files to Aleph.

To OPAC or not to OPAC?
Or How you can use other people's experience to your library's advantage - by Roxana Popistasu, University of Amsterdam

Abstract: A few words on the ongoing process of customizing and improving the Aleph OPAC at the University of Amsterdam, using ideas from other Aleph libraries, EL Commons, presentations from IGeLU conferences and so on.

Curtin Library Mobile
by Matthew Robinson, Curtin University, Western Australia

Abstract: In July of this year Curtin University Library launched a mobile website targeted at mobile devices such as the iPhone and Windows Mobile. The mobile website provides a number of facilities for mobile users, including the ability to retrieve information from Ex Libris applications. The Aleph X-Server API are used for searching the catalogue and for retrieving borrower information, and a list of all the library’s electronic databases is generated directly from the MetaLib database.

Curtin Library is about to redevelop its main website and the development of the mobile website has presented some new ideas for the implementation of the dynamic components of this site. As a bonus, the server-side implementations of these new techniques can be reused without modification for other methods of delivery, such as iPhone applications and web widgets.

From the presentation:
 * XML is big and bulky
 * JSON is small and light

Oracle 11g new features for developers in an Ex Libris environment
by Tali Poliak (Oracle Israel)
 * New intelligent layer, based on statistics
 * GUI-based
 * Gives advice (e.g. problem with CPU, self-healing, etc.)
 * Replaces "bad" queries during runtime
 * Reduce gap between test and production system (e.g. capture workload of production environment, simulate in test environment)
 * Standby database - has nothing to do, may be made available in read mode
 * Snapshot while db is up and running
 * New data type secure files to replace binary files (easy migration)
 * Results cache
 * Stop bad processes, transfer resources to processes
 * Table compression (requires a bit of performance, but pays back)
 * Partitioning of tables
 * Flashback data archive ("rewind" single actions)
 * Search engine Oracle Text (Oracle 10, used to collect irrelevant data as SQL queries normally do)
 * Re-create text index online (without downtime)
 * Oracle 10 MDATA vs. Oracle 11 SDATA (e.g. "price of book" < 10)
 * Incremental indexing (scheduled times of indexing)
 * Language auto-detection, segmentation, stemming
 * Monitor health of text indexes
 * Name search (e.g. Steven vs. Stephen)

Ex Libris Reporting Schemas and the new Util O (DBOT)
by Shlomo Sanders
 * Direct database access within the scope of Ex Libris products is both an Oracle licensing and an Ex Libris support problem.
 * Solution introduced by Ex Libris: Reporting schema as open interface .rpt
 * Data may be added to interface on request (send an Email to Shlomo Sanders)
 * Available in Primo, Digitool, Rosetta, ...
 * New Oracle cross-product tool by Ex Libris: DBOT
 * Table space and file management
 * Logs
 * Schemas (Oracle 10+)
 * Oracle 11 rel 2 implementation delayed due to support of platforms (Linux, Solaris)
 * Question: Implementation status Aleph (MetaLib?)

Primo/MetaLib

 * Ex Libris: Hanan (Primo), Noam (MetaLib)
 * Differing topics/concerns of participants
 * Compatibility Primo - Xerxes?
 * Primo 3 web harvesting, problem to get metadata from html
 * Primo plugins
 * Enrichment
 * PLX extension (?)
 * Primo session management: Problem with Single Sign Out, PDS (NYU: User not signed out, session data available to next user after logout/timeout, huge problem)
 * Redirect on logout may be realized by
 * Custom tile
 * Server app
 * Complaint: Ex Libris products (even new ones) are run on non-standard port by default - problem changing to port 80 (plus proxy) - empty screens - desire that Ex Libris products are distributed with internal proxies taking care of port 80 operation
 * Primo logfiles are difficult to analyze (documentation desired)
 * Heavy traffic/on the fly queries between Primo and Aleph - can more data be stored in Primo?
 * Find DB looks nice in Primo
 * Locate/By Category, etc. on top
 * Resource List (all, db results, selected) comes with A-Z list
 * Resources selected = base for Primo search
 * MetaLib Set/Resource IDs persistent in Primo? Noam: Still on sketch, but IDs are unlikely to change.
 * comments on MetaLib API
 * slightly inconsistent - processing of single services required?
 * no customized full record views for services retrieve_resources_by_quick_set, retrieve_resources_by_category (security, performance)

SFX

 * bX: API required
 * Makes SFX menu slow - Ajax?
 * Proposal (Ere): generally more Ajax for SFX?
 * KB update SFX4 - "light" update process, central global schema, table splits (global, local), no matches with local data; positive effect on performance, enables more frequent updates
 * object availability
 * RSI
 * notification of admin (object has been searched for - cached search - availability notification)
 * SFX upgrade process
 * migrate parsers, templates, conf files
 * report of local files to be moved manually
 * customer expectations? (required)

Aleph

 * Problem: Customization of html (also MetaLib)
 * util o - Aleph? (example, move table to different table space), Oracle Enterprise Manager
 * Lacking contact with End Users
 * Students - example: iPhones
 * Marc D.: Systems are sold to librarians, not students

Making your Aleph OPAC go a little further
by Mark Watmough, Edinburgh Napier University

Abstract: This presentation will demonstrate some simple ways to extend your Aleph OPAC. These include new additions feeds, top loans lists and a JSON based spelling suggestion service.

Customizing and Integrating Primo at BYU
by Curtis Thacker, Brigham Young University, USA

Abstract: How BYU is tailoring Primo to its library website through extensive customizations, close integration with other services such as Blackboard and Google Books, and a look at possible future customizations such as a custom front-end using the APIs offered by Primo.

Ex Libris products and open sources at NYU
by Scot Dalton, New York University

Abstract: NYU recently integrated Umlaut, an open source OpenURL resolver, into Primo to provide additional delivery services to patrons. Our experience has been mostly positive, but there have been a few issues that we are addressing. I will discuss the implementation and the issues we have experienced.

We also are working on integrating Sun's OpenSSO software, which is the university's access management solution, into PDS to provide single sign-on for the NYU community. Since NYU is part of a consortium whose members are not all in the OpenSSO access management system, the integration has provided challenges regarding both authentication and authorization, which I will discuss.

Finally, we are continually looking to integrate the Ex Libris suite further into our environment. Efforts such as implementing bX and leveraging the Aleph and Primo APIs in the NYU Scholar's Portal are central to our vision. I will briefly outline some of these future projects.

(Auto-)create user interface
by Erik Altmann, Max Planck Digital Library

Abstract: As we can never anticipate what sort of views or services librarians wish to present to their users, one of our strategies as a central service unit is to facilitate the creation of direct links, forms, html snippets, etc., to be included in library web pages. We do so by using the (RESTful) API services of Ex Libris products.

What's hot in Finland
by Ere Maijala, National Library of Finland

Abstract: The presentation will give an update on recent initiatives, such as the Aleph central catalog implementation and MetaLib and SFX tweaks.

Integrating and presenting library resources
by Daniel Forsman (Jonkoping University Library, Sweden)

Abstract: This presentation will give you an update on our work with JULIA, our local Aleph 500 OPAC. Since last years Developers meeting we have continued to explore the open architecture of Ex Libris products and to integrate and present library services using external APIs and data services as well as the MetaLib X-server and SFX API. We will also touch on the development of services adapted for mobile devices.

Austrian Library Network, experiences with Primo
by Ulrike Krabo, Austrian Library Network - no abstract
 * Good feedback from users (favorites: Did you mean? FRBR)
 * 12.5 million records duplicated from local bases
 * problems
 * backoffice, no user roles, i.e. global access rights for all partners - solutions: naming conventions for pipes, svn (diffs using svn web)
 * local fields
 * logs difficult to analyze, documentation desired
 * Plugins - .jar (+ some backoffic config, restart of server)
 * Enrichment
 * PNX Extension
 * waiting for Primo 3 to integrate Opac functionality

Codeshare, new developer zone, ELympics, other community-based activities
see above, Status of the Ex Libris Open Platform Program

Open discussion, conclusions, and plans for the future

 * Complaint: Provide config file with code, do not use local parameters within code
 * Proposal (Erik): Wiki page for complaints, requests, etc., to automatically create some guidelines? Probably not.
 * Programming (Erik): Should we take care to build on top of one another's code? No comment. Add-ons provided likely to be standalone solutions.
 * Everyone appreciated very good atmosphere.
 * Meeting very likely to take place next year.

Impressions
A few impressions and observations:


 * Ex Libris at its very best:
 * Meeting was extremely well planned and organized
 * Many developers present, evaluating ideas/input from customers, and presenting progress of implementation
 * General atmosphere of openness; participants were encouraged to talk to anyone at Ex Libris Office, about any topic of interest
 * The community (non Ex Libris developers): People are very innovative, creative, etc. But it looks as if contributions will remain individual ones, rather unlikely to be building on top of one another - to create proper extensions and new (standardized) web services APIs.
 * RESTful services taken seriously by Ex Libris, high http compliance targeted.
 * It's apparently still the one stop shop sort of service that is believed to "make it", i.e. to attract users and to serve users' needs.
 * ... and yes, the Opac is still considered to be a valuable web service which is worth considerable effort of customization and development.
 * MPS/MPDL:
 * Even though the MPS/MPDL is not licensing brand-new Ex Libris products/is not participating in the most recent developments, traditional/stable services (SFX, MetaLib) are still relevant enough to play a major role.
 * Aleph is clearly a major source of services and data, and will be vital for future development and integration of services.
 * Benefits of the meeting:
 * Touching the source of Ex Libris' development plans, discussing issues with Ex Libris developers, etc.
 * Being presented what others are doing, getting to know other developers' thoughts, plans, and strategies
 * I believe our concept (no central system design, single services wherever required, standard web services, stable URLs) sounded ok and was understandable (but was not considered outstanding).
 * A strategy how to take advantage of Ex Libris products in the future would probably be an asset for future participation.

Special Recommendations

 * Aleph
 * Text, XML, and Excel files in an Aleph environment by Dror Berger, the National Library of Israel - using (G)awk for Aleph administration, record validation, etc., assets of (G)awk: very fast, code easy to read; definitely worth a closer look
 * To OPAC or not to OPAC? by by Roxana Popistasu, University of Amsterdam - controlled extension of Opac is still worth the effort; here's why
 * Making your Aleph OPAC go a little further by Mark Watmough, Edinburgh Napier University - great add-ons: spelling suggestions, RSS feeds via Yahoo Pipes (Aleph-X), solution using Google Books + Syndetics
 * Bibliotheksportal
 * Standards-based ILS discovery interfaces
 * Implementation of Opac functionality via Primo, using RESTful services in Aleph
 * Library Data
 * Integrating and presenting library resources, by Daniel Forsman, Jonkoping University Library, Sweden - presentation contains considerations about the value of library data, and the necessity to avoid dumping data to vendors
 * New media
 * Curtin Library Mobile by Matthew Robinson, Curtin University, Western Australia - to take very seriously

Links

 * DLF-DI
 * Recommendations (pdf)
 * Google Group
 * Aleph RESTful API implementation
 * EL Commons Codeshare
 * ELympics
 * Contacts
 * Ex Libris, Open Platform project
 * Tamar Sadeh
 * Revital Marck
 * Find contacts via EL Commons People Directory
 * Meet participants via my EL Commons Network
 * Customer presentations on EL Commons
 * Ex Libris presentations on EL Commons (login required)