Library and Archives Canada – Interlibrary Loans (ILL)

Senior Web Developer, 05/2009 – 04/2010
Gatineau, QC

The Interlibrary Loans (ILL) project is a complex corporate web application consisting of a PHP web application built using the open source Model-View-Controller (MVC) application framework called Zend Framework. The architecture of the application leverages data from the core legacy Amicus application and the existing ILL protocol implementations in order to provide a harmonized interface for managing the lending of collection materials. Its architecture makes use of SOAP web services to integrate the services of the Amicus application so that existing functionality is maintained while new functionality is enabled that extends the capabilities of the service as a whole. It also provides a new multilingual, harmonized, web-based interface tier using HTML, CSS and Javascript. This multi-tier application consists of multiple main modules running on an OpenSuse Linux server with an Oracle database back end. The application architecture has 3 tiers: a presentation level tier consisting of the end user client’s web browser running Common Look and Feel 2.0 compliant HTML and CSS, a middle tier consisting of the business logic layer served up by PHP and C, and a data-access tier running Oracle and Ingres databases as well as self-encapsulated data sources accessed via web services. Multiple languages are supported through internationalization.

This complex enterprise system was developed using HTML, CSS, Web Services, Apache Web Server, Eclipse IDE, Zend Framework, JQuery, and PHP on OpenSuse Linux connecting to an Oracle 9i/10g (RDBMS) and Ingres 9.1.1 databases under a continuous integration development environment. The ILL application has several primary modules which deliver the functionality of materials circulation, maintenance, digitization and automated communications between institutions using various protocols. These modules function to support significant areas of the enterprise and also as an integrated system to support the main business areas of Library and Archives Canada. The database manages over 5 million records under a complex relational structure with many (over 100) large variable size text fields, an average record length greater than 1,000 bytes, and approximately 86 inter-related tables. The ILL application plans to support at least 25 concurrent users but is capable of scaling to much more.

Job scope includes working with the team to architect, refine, and implement solutions in the creation of an Interlibrary Loan component for the AMICAN – Care of Collections project. Object oriented programming and MVC techniques are used via PHP5 to develop a harmonized Library and Archive content management system utilizing an extended Zend Framework. Oracle 9i/10g is the main database, but some work is done against an Ingres database as well. Web services using SOAP and WSDLs are utilized to provide access between separate and external components to the system being developed. Unit and regression testing is accomplished via a combination of PHPUnit, Simpletest, and Webtest.


  1. Use Subversion to track and manage changes to the systems being worked on.
  2. Find and fix bugs by rewriting problematic code.
  3. Create automated unit tests to ensure robust and complete code.
  4. Assist in the selection, usage best practices, and instantiation of 3rd party code libraries.
  5. Design high-usability web pages to meet the project requirements.
  6. Developed using the open source Zend Framework.
  7. Use Zend Frameworks implementation of the MVC pattern to build the application.
  8. Create and modify WSDLs to handle SOAP requests.
  9. Produce, propose, and request database changes to the data management group for new and modified components.
  10. Work with XHTML and CSS on GUI pages throughout the system.
  11. JQuery used in with graceful degradation in mind.
  12. Unit and regression testing is accomplished via a combination of PHPUnit, Simpletest, and Webtest.

Environment: Linux, PHP5, Eclipse IDE, Zend Framework 1.9 & 1.10, ZendX JQuery , SOAP, WSDL, XML, XHTML, CLF, CSS, Javascript, Oracle 9i/10g, Bash, Subversion, PHPUnit, Simpletest, Webtest

Recent Related Posts

Comments are closed.