Collection Search – Technology Overview
The INIS Collection Search (ICS) enables its users to search and retrieve information both efficiently and effectively. This article gives a glance behind the scenes, looking at the software technology, search solutions and the development methodology which were used to make the ICS a high performance application.
The ICS is a web based application built on Microsoft technologies. It is programmed in C# (pronounced as C-Sharp), and targets Version 4.0 of the .Net Framework. A 3-tier client server architecture was designed, in which the user interface, functional process logic, computer data storage and data access are developed and maintained as independent modules.
The ICS uses a customized version of Google Search Appliance © (GSA) to perform its search operations. GSA is an enterprise level search solution offered by Google, made of a rack-mounted device providing document indexing functionality, which can be integrated into a web site using a Google search-like interface for end-user retrieval of results. GSA crawls and indexes the full text PDF documents and bibliographic data in the INIS and Library Collections. When a user performs a query on ICS, the query is first converted to a GSA compliant format. This query is then passed on to GSA, which uses its built-in algorithm to search through its index and fetch the most relevant search results for the given query. The search results are then sent back to ICS in XML format, where it is transformed and rendered on the user’s web browser. User authentication in ICS is achieved through NUCLEUS, the IAEA's common access point. NUCLEUS account holders have access to over 130 IAEA scientific, technical and regulatory resources. The mechanism of using a single user account to access various other websites and applications is called Single Sign On.
ICS uses a SQL Server database to store user settings, saved queries and workspace related information. It uses LINQ-To-SQL as the Object Relational Mapper for data access.
ICS was developed according to Ivar Jacobson’s model of Essential Unified Process (EssUP), focusing on the Iterative Software development method. Each software development cycle is divided into four iterations, namely, Inception, Elaboration, Construction and Transition:
- Inception: the scope of the project is agreed and the high level requirements are finalized.
- Elaboration: the user cases related to the requirements are further defined and a prototype with the implemented user cases is prepared and shared with project management and senior users. All technical risks are identified and mitigation plans outlined.
- Construction: the source code is modified adhering to the coding standard and best practices, and at the end of this iteration a release candidate is reached.
- Transition: the release candidate is tested for user acceptance and any bugs are fixed. At the end of this iteration, the software is deployed on the production environment for all users.
IT landscape evolves very quickly and today’s new technologies quickly become old. The key factor of a successful web application is to stay simple but innovative, always meeting users’ needs. NIS will continue to look at up-and-coming opportunities, embracing new technologies which could further improve the ICS.