Onlinelib Service
Online Librarian is a collaborative service from Murdoch university Library and Macquarie University Library. Through this service, the two universities can share their staff resources and two university communities can get extended service hours without change either university's existing service time.
Onlinelib business rules, this defines the rules about time-out, time of routing, etc.
Analysis and Design of Onlinelib
Requirements:
- security mechanism.
This service is only available to Murdoch University and Macquarie University's staff and students. Moreover, OLL is going to use the existing authentication data from two institutions. As the user group belong to two different institutions, and authentication information comes from two institutions and shouldn't be stored after consumed by authentication process.
- smart assign the user to most suitable registered operator to compose a conversation. The system need to real-time manage a pool of available registered operators and conversations.
- user can access online librarian service using any of their favoriate chat client: MSN, ICQ and our home-made web chat client.
- Interfaces to manage operator list and information.
- Some settings need to be configurable:
- How many calls one operator can handle at same time?
- How long is the timeout for the conversation?
- How long is the time before reassign the operator if the first operator doesnt pick up the call?
- Statistic: store the history of conversation and turn away calls.
Analysis:
Call procedure see below state diagram:

The user uses his favorite chat client(which could be MSN, ICQ, or they don't have any chat account or they prefer to use our web chat window) to send an message to OLL account, the system need to initalize a conversation for this user and assign a most suitable operator to this user. If there is not a available operator the system need to send back a message to notice the user and tell the user the alternative way to contact the librarian.
Design:
Based on the analysis, we decide to build a shibbolethed Java web application to meet the requirement of OLL.
- Security Mechanism is handled by shibboleth which has been adapted to set up Australian Access Federation for Australian High Education and Research community. Shibboleth is a Single Sign On implementation developed by internet2.
- Support multi-chat client will be handled by jabber server automatically.
- The main part will be a Java web application which use smack api to communicate with jabber server.
There are two web applications. One is onlinelib and the other is onlinelibAdmin. Onlinelib is the main application which handles the calls from the users. onlinelibAdmin provide a web interface for the librarians to maintain their operator list.
onlinelib application:
Class Diagram:

onlinelibAdmin application:
onlinelibAdmin provides a simple interface for the librarian to maintain the operator list by themselves.
Onlinelib Implementation
Environment and Components:
Technologies involved:
- Shibboleth
- Jabber instant message, smack api package, Psi client, jhb
- tomcat web application
- mysql database
Shibboleth
Shibboleth is used for authentication of OLL tomcat web application. Currently, OLL is deployed as a service provider in level-2 federation. Murdoch and MQ are two authoriszed Idp who can consume this services.
Jabber Instant Message:

There are three main parties involved in this context: Users, Operators, OLL.
Users only know the jabber account of OLL service, they just can use their favorite chat client: MSN, ICQ or any jabber client or they can even don't need any chat account/chat client and use the web chat page which provided at MQ and Murdoch's library web page.
Operators need to register themselves to OLL before they can accept any call from the users. They also got some extra commands such as: transfer, check status, email transcript....
OLL is like a hotline number and switch board in a phone help-desk system. It handles all the calls from the users and dispatch it to suitable operator, and also maintain registered operators and process the commands issued by the operators. At behind, a tomcat web application acts as OLL. It uses smack api using OLL account to contect to jabber server to listen to all the jabber messages sent to OLL account and then consumes all the messages based on our business rules.
There are two jabber servers set up for MQ and Murdoch operators.
- for MQ, it is idp.mq.edu.au(demo.federation.org.au);
- for Murdoch, it is jabber.federation.org.au(jabber.mams.org.au).
OLL tomcat application uses onlinelib@jabber.federation.org.au through smack api to communicate with jabber server.
Tomcat application
Tomcat server's version is 5.5.
See below is the implement diagram of OLL.

[MySQL] database:
There is a mysql database to store the statistic data.
There are three tables in this database:
- OLCONVERSATION
- OLOPERATOR
- TURNAWAY
Here is create_onlinelib.sql
Packages and deployment
There are two web packages: onlinelib and onlinelibAdmin.
- onlinelib is the main web application package for OLL.
- onlinelibAdmin package is the web application to provide a web page interface to edit operator list. For onlinelibAdmin we use JSF to speed up our development.
Below is the workflow of this web application.
