300 likes | 413 Views
JAFER is a high-level, open-source Java toolkit developed by Oxford University Libraries, aimed at enabling users to build portals without delving into complex technical details. The toolkit consists of two main components—ZClient and ZServer—operating on a client/server architecture. JAFER supports multiple applications, including reading list generation and dynamic web page creation from Z39.50 sources, while promoting active development and maintenance. Its use of XML and Java facilitates seamless integration and customization for various library services.
E N D
JAFER Java-based high level Z39.50 toolkit Matthew Dovey; Colin Tatham; Antony Corfield; Richard Mawby Oxford University Libraries Systems Services Oxford University
Aims Aims Components enabling users to build portals without dealing with intricate technical aspects. Work with RAD Development Environments • Easy to use • Visual • Open Source • Encouraging ongoing development & maintenance of the software. Oxford University
Components Components • JAFER has two basic components • ZClient • ZServer • Software based on Client/Server • architecture. • Written in Java and uses XML. • Components used separately or in • various combinations. Oxford University
ZClient Uses • Reading List Generator • Using Z39.50 a web page reading list can be built. • Servlet • A link from a web page (e.g. reading list or abstracting service) to a record indicating the location of an item using OpenURL • Modified version of servlet for ZNG/ZML/SRW related work • Used in GFIS prototype • JSP (Java Server Pages) • Create dynamic web pages from Z39.50 sources. • Used in BookHAD and Music Libraries Online virtual union catalogue projects • UDDI to GILS Gateway Oxford University
Web Service Experiments • ZNG/ZML/SRW • Based on OpenURL servlet (modifying URL input and output XSLT) • SOAP Search Service (with Eliot Christian, Dave Vieglais) • Similar to ZNG but • Multiple database query • XML Type-101 Structure (useful for non-textual terms) • Support for multiple query structures and attributes via xmlns • SOAP over HTTP POST only • http://www.gils.net/search.html • WSDL/WSCL Encapsulation of Z39.50 ASN.1 • ASN.1 specification written as WSDL/WSCL specification (preferably auto-generated via XER) • Binding of WSDL to BER as well as to SOAP • http://www.lib.ox.ac.uk/jafer/ez3950/z3950-wsdl.htmlhttp://www.lib.ox.ac.uk/jafer/ez3950/ez3950.html Oxford University
Toolkit – Basic Components • ZClient • Development of Portals for Access to Z39.50 Information Sources • ZServer • Provides Access to Non-Z39.50 Information Sources Oxford University
Architecture • JavaBeans – Component Architecture allows Visual Configuration of Properties • Java Server Pages (JSP) – simple technology for building HTML pages with Dynamic Content • CrossNet Toolkit for BER (although working on modularisation for plugging in other Java BER toolkits) • XML – Serialising record formats to canonical XML forms • XSLT – Processing/converting records Oxford University
ZClient Architecture Oxford University
XML query (Not XMLQuery) • Based on ‘Search’ mechanism developed by Global Information Locator Service (GILS) • Boolean Queries (Z39.50 type 101) represented as XML • Search Z39.50 Attributes can be defined by Default Search Profile e.g. Bath Profile Oxford University
Query example <query><boolean> <and> <constraintModel> <constraint> ATTRIBUTES <semantic>4</semantic> title <position>3</position> any position </constraint> <model>Macbeth</model> search term </constraintModel> …. Oxford University
Query example (cont.) …. <constraintModel> <constraint> ATTRIBUTES <semantic>1003</semantic> author <relation>3</relation> equals </constraint> <model>Shakespeare</model> search term </constraintModel> </and> </boolean></query> Oxford University
Records – XML Serializers • XML Generated from retrieved Records • MARC to XML conforms to Open Archives Initiative (OAI) schema for MARC records • GRS to XML conforms to GILS schema for GRS1 records Oxford University
MARC to XML example MARC 21 Field 260 260##$aNew York, N.Y. : $bElsevier, $c1984. <varfield id=”260” i1=”” i2=””> <subfield label=”a”>New York, N.Y. :</subfield> <subfield label=”b”>Elsevier,</subfield> <subfield label=”c”>1984</subfield> </ varfield > Oxford University
XSL Transformations • Stylesheet used to Transform ‘raw’ XML to a form tailored to the user’s needs (such as “Yanks”) e.g. <publisher>New York, N.Y. : Elsevier, 1984 </publisher> Oxford University
JSP – Providing Dynamic Content • Specify & Submit Query query.submit ( query.and ( “Macbeth”, “use title”, “Shakespeare”, “use author” )) • Save Query saveCurrentQuery ( “query.xml” ) Oxford University
JSP – Providing Dynamic Content • Display Results setRecordCursor (n); record = getCurrentRecord () record.get( “title” ).getValue () record.get( “author” ).get( “name” ).getValue () Oxford University
Configuration of ZClient • Visual Configuration • Builder Tools (developers) • Graphical User Interface (simple) • XML Configuration • XML file in Web Server (administrators) Oxford University
Visual Configuration – Builder Tools • ZClient is a Java Bean • Java Beans have Properties which can be configured by using Visual Builder Tools • ZClient Bean properties include • Host or Target, Password etc. • Preferred Record Format, XML generation Oxford University
Configuration - JBuilder Oxford University
Visual Configuration using GUI • Simple, does not require Builder Tools • Bean Properties set using Tabbed Panes in User Interface Oxford University
Configuration via GUI Oxford University
Configuration via GUI Oxford University
XML Configuration • Properties set by specifying parameters • e.g. web.xml file in Tomcat servlet container <init-param> <param-name>target</param-name> <param-value>library.ox.ac.uk</param-value> </init-param> Oxford University
ZServer • Component Architecture • Configuration of Components provides different functions • Access to non-Z39.50 Information Sources • Distributed Searches (re-uses ZClient components) Oxford University
ZServer Components • ZServer • Manages Connections • Query Translation • Record Generation • Handler • Maps Attributes to Database Tables • Appropriate Database Driver ZServer Handler Oxford University
ZServer - Visual Configuration • Server configuration • IP Address & Port binding • IP Validation & User Authentication e.g. ATHENS • Data Source configuration • Attribute mapping to Tables • Mapping between Tables and Record Fields Oxford University
Server Configuration Oxford University
Attribute Configuration Oxford University
Downloads – org.jafer package • ZClient • Stable builds available as self-expanding Web Application Archive (WAR file) • Java code (Open Source) for developers • ZServer • Available from November 2001 Oxford University
Project Director Matthew.Dovey@las.ox.ac.uk Project Administrator Richard.Mawby@las.ox.ac.uk Project Developers Antony.Corfield@las.ox.ac.uk Colin.Tatham@las.ox.ac.uk Development Website www.jafer.org/ Downloads Join mailing lists General Website www.lib.ox.ac.uk/jafer/ Contacts & Information Oxford University