# 1 Introduction
[NULL]

## 1.1 Purpose
The purpose of this Software Requirements Specification (SRS) is to describe the functional and nonfunctional requirements for the System Administration Module of an Integrated Library System (ILS). This module is designed to replace and enhance the current capabilities of commercially available ILSes, as well as to add new functionality. The requirements outlined in this document are specifically developed for the King County Library System but are believed to be applicable to many large, urban, multiple-branch, centralized library systems. The System Administration Module aims to facilitate the management of every aspect of the ILS, supporting activities such as configuring the system, monitoring performance, managing user accounts, and ensuring data backup and security.

## 1.2 Scope
The software product to be produced is the System Administration Module of an Integrated Library System (ILS). This module is designed to facilitate the management of various aspects of the ILS, including configuring the system to support library management processes, monitoring and controlling server and application performance, managing user accounts and privileges, and handling software installations and updates.

The System Administration Module will enhance and replace the current capabilities of commercially available ILSes, adding new functionalities to support large, urban, multiple-branch, centralized library systems like the King County Library System. The module aims to improve the efficiency and effectiveness of library operations by providing tools for monitoring, troubleshooting, and managing library resources and services.

The application of this software is focused on the functional characteristics of system administration within a library context. It is intended to support library managers and staff in their operational tasks, providing a robust platform for managing library branches, patrons, collections, and circulation transactions. The ultimate goal is to streamline library operations and improve service delivery to patrons.

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The System Administration Module is a component of a larger Integrated Library System (ILS) designed to manage various library operations. It is intended to replace and enhance the capabilities of existing commercial ILS solutions while introducing new functionalities. The module is specifically developed for the King County Library System but is adaptable for other large, urban, multi-branch, centralized library systems.

#### System interfaces
The System Administration Module interfaces with other components of the ILS, such as Acquisitions, Serials Management, Circulation, and Cataloging modules. It also interacts with external vendor websites through published APIs and automated data file transfers (e.g., USMARC21, EDIFACT).

#### User interfaces
The module is accessible through a web browser or a Windows-compatible client, supporting screen-reading and screen-magnification software to enhance accessibility. The user interface is designed to be intuitive for library staff, including managers, librarians, and system administrators.

#### Hardware interfaces
The module operates on Linux or Solaris servers and is accessible via Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later). It supports various devices and protocols necessary for library operations.

#### Software interfaces
The System Administration Module relies on a fully relational, SQL-based database system. It interfaces with other software components of the ILS and supports secure protocols such as SFTP, SSL, and SSH for data transfer.

#### Communications interfaces
The module supports local network protocols and provides full support for SNMP for system monitoring and alerts.

#### Memory constraints
[N/A]

#### Operations
The module supports both interactive and unattended operations, including real-time processing, data backup, and recovery operations. It allows for user-initiated operations and provides data processing support functions.

#### Site adaptation requirements
The module requires site-specific data and initialization sequences to adapt to different library systems. This includes configuration settings for library branches, patrons, collections, and circulation transactions.

#### Interfaces with services
The System Administration Module interacts with cloud services and other external services through secure protocols and APIs, ensuring seamless integration with third-party solutions.

### 1.3.2 Product functions
The System Administration Module of the Integrated Library System (ILS) is designed to manage various aspects of library operations. The major functions include:

- **Configuration Management**: Configuring the ILS to support features and processes necessary for managing library branches, patrons, collections, and circulation transactions.

- **Performance Monitoring and Troubleshooting**: Monitoring, troubleshooting, and controlling server, database, and application performance, as well as services, ports, and application programming interfaces.

- **User and Account Management**: Managing user and group accounts and privileges, ensuring secure access and control over library system resources.

- **Software Management**: Overseeing server and client software installation, upgrades, and updates to maintain system integrity and performance.

- **Data Backup and Recovery**: Backing up databases, configuration files, and log files to ensure data integrity and facilitate recovery in case of data loss.

These functions are essential for the effective administration and operation of a large, urban, multiple-branch library system.

### 1.3.3 User characteristics
The intended users of the System Administration Module include a diverse group of individuals with varying roles and responsibilities within the library system. These users are expected to have a general understanding of library services and processes. The user groups are as follows:

- **Patrons**: These are customers of the King County Library System, who may or may not possess a library card. They can be on-site at a community library or accessing library resources remotely. Patrons use print materials, media materials, or electronic resources.

- **Staff**: This group includes managers, librarians, library technicians, library assistants, and library pages. They are involved in designing and providing services for the library. Staff members are expected to have a working knowledge of library operations and may contribute additional requirements or commentary.

- **System Administrators**: These users are responsible for managing servers, databases, applications, services, ports, and APIs related to the Integrated Library System (ILS). They are expected to have technical expertise in system administration and a deep understanding of the library's IT infrastructure.

- **Managers**: This group includes management staff who oversee library processes. They are likely to have a higher level of understanding of library operations and may be involved in decision-making processes.

- **Library Managers**: These include Cluster and Site Managers who provide input into the design and implementation of library services. They are expected to have a comprehensive understanding of library operations and management.

- **Library Directors**: Members of the Library Executive Team who plan and direct library services and priorities. They are expected to have strategic oversight and a broad understanding of library services and management.

The usability of the System Administration Module may be influenced by the varying levels of technical expertise and experience among these user groups. The system is designed to be accessible and user-friendly, accommodating users with different levels of technical proficiency.

### 1.3.4 Limitations
- **Regulatory Requirements and Policies**: [N/A]
- **Hardware Limitations**: The System Administration Module shall operate on a Linux or Solaris server.
- **Interfaces to Other Applications**: The System Administration Module interfaces with a variety of vendor websites via published APIs and/or automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- **Parallel Operation**: [N/A]
- **Audit Functions**: [N/A]
- **Control Functions**: User rights and privileges will be controlled through security groups and/or "roles" that allow access control for individuals, workgroups, and arbitrary staff groups.
- **Higher-Order Language Requirements**: [N/A]
- **Signal Handshake Protocols**: [N/A]
- **Quality Requirements**: It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.
- **Criticality of the Application**: The System Administration Module is part of an enterprise-level Library Automation System.
- **Safety and Security Considerations**: System supports secure protocols, including SFTP, SSL, and SSH. Patron data is secure in all transfers to and from the system.
- **Physical/Mental Considerations**: System Administration shall be accessible with screen-reading software, screen-magnification software, and other software programs designed to increase accessibility.
- **Limitations from Other Systems**: The System Administration Module relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules. The system provides real-time processing, such as up-to-date pull lists at the time of viewing or printing.

## 1.4 Definitions
- **Patron**: A customer of King County Library System, either possessing a library card or not, either on-site of a community library or not, using either print materials, media materials, or electronic resources.
- **Staff**: Includes managers, librarians, library technicians, library assistants, and library pages involved in designing and providing services for the Library.
- **System Administrators**: Staff responsible for managing servers, databases, applications, services, ports, and APIs related to the Integrated Library System (ILS).
- **Managers**: Management staff who oversee Library processes.
- **Library Managers**: Cluster and Site Managers who provide input to the design and implementation of Library services.
- **Library Directors**: Members of the Library Executive Team who plan and direct Library services and priorities.
- **Integrated Library System (ILS)**: A system that facilitates the management of library operations, including cataloging, circulation, and inventory management.
- **OPAC (Online Public Access Catalog)**: A patron interface for accessing the library's catalog and services online.
- **SNMP (Simple Network Management Protocol)**: A protocol used for network management and monitoring of network devices.
- **SIP2/NCIP2**: Protocols used for communication between library systems and self-service devices.
- **MARC (Machine-Readable Cataloging)**: A standard format for the representation and communication of bibliographic and related information.
- **SQL (Structured Query Language)**: A standard programming language used for managing and manipulating relational databases.
- **ODBC (Open Database Connectivity)**: A standard API for accessing database management systems.
- **SFTP (Secure File Transfer Protocol)**, **SSL (Secure Sockets Layer)**, **SSH (Secure Shell)**: Protocols used to secure data transfer and communication over networks.
- **EMC NetWorker**: A third-party backup software used for data protection and recovery.
- **VNC (Virtual Network Computing)**, **Remote Desktop**: Tools used for remote management and control of computers.
- **CSV (Comma-Separated Values)**, **Excel**: File formats used for data storage and exchange.
- **MARC21**, **EDIFACT**: Standard formats for data exchange in library and commercial transactions.
- **USMARC21**: A specific implementation of the MARC standard used in the United States.
- **API (Application Programming Interface)**: A set of protocols and tools for building software and applications.
- **HTML (Hypertext Markup Language)**: The standard markup language used for creating web pages.
- **SMTP (Simple Mail Transfer Protocol)**: A protocol for sending email messages between servers.

# 2 References
[N/A]

# 3 Requirements
[NULL]

## 3.1 Functions
The System Administration Module of the Integrated Library System (ILS) is designed to manage various aspects of library operations. The fundamental actions include:

- **Input Validity Checks**: The system supports data validation, allowing specification of default values, automatic formatting, and required status for any field. This ensures that inputs are checked for correctness before processing.

- **Sequence of Operations**: The module facilitates the configuration of the ILS to support library management processes, including server and database performance monitoring, user account management, and software updates. It supports real-time processing, ensuring that operations like pull lists and shelf reading are up-to-date.

- **Responses to Abnormal Situations**:
  - **Overflow**: [N/A]
  - **Communication Facilities**: The system supports secure protocols such as SFTP, SSL, and SSH for secure data transfer.
  - **Hardware Faults and Failures**: The system provides server clustering for failover capability, ensuring continuity in case of hardware failures.
  - **Error Handling and Recovery**: The system logs data changes and provides "undo" functionality, allowing for data rollback and recovery from errors.

- **Effect of Parameters**: The system allows for the creation and modification of business rules, such as loan and requesting rules, which evaluate parameters like patron type and item status to determine system behavior.

- **Relationship of Outputs to Inputs**:
  - **Input/Output Sequences**: The system supports the import and export of MARC records, allowing for batch processing and manipulation of records.
  - **Formulas for Input to Output Conversion**: [N/A]

The module's functionalities are partitioned into sub-functions such as system monitoring, job scheduling, and client management, each supporting specific library management tasks.

## 3.2 Performance requirements
- The system must support a library system with 50 locations and handle 20 million circulations annually, processing over 500,000 items per year.
- It is highly desirable that searches and reports can be processed during open hours without disrupting other system functions.
- The system provides real-time processing, ensuring that pull lists are up to date at the time of viewing or printing, and supports live shelf reading and weeding.
- The system should allow multiple staff members and patrons to simultaneously access and update patron and item records, with record changes applied in a reasonable way and prompts to warn when a record has been changed since it was displayed.
- The system must support SNMP for monitoring system resources, with configurable alert thresholds and the ability to send alerts via administrative dashboards, email messages, and text messages to an unlimited number of recipients.
- The system should provide a dashboard for performance monitoring, identifying processes with process ID, owner username, IP address, CPU utilization, memory utilization, and run time, with visual indicators for system status.
- The system must support scheduling of maintenance tasks, reports, and data exports, with the ability to modify or cancel jobs prior to starting.
- The system should support secure protocols, including SFTP, SSL, and SSH, with SFTP supported in both active and passive modes, configurable per vendor.
- The system should provide the capability to perform live incremental and full backups of data and transaction logs, supporting the use of third-party backup software such as EMC NetWorker.
- The system should log data changes and provide "undo" functionality, ideally with revision control.
- The system should support clustering of servers for failover capability.
- The system should ensure that patron data is secure in all transfers to and from the system.
- The system should support SMTP for email transport. 

[N/A]

## 3.3 Usability requirements
[N/A]

## 3.5 Logical database requirements
- **Types of Information Used by Various Functions:**
  - The system runs on a fully relational, SQL-based database system, supporting SQL queries against any table.
  - Data types include authority records, bibliographic records, order records, item records, hold/request records, and other records maintained or accessed by the System Administration Module.

- **Frequency of Use:**
  - Real-time processing is supported, ensuring that data such as pull lists and shelf reading are up-to-date at the time of viewing or printing.

- **Accessing Capabilities:**
  - The database can be accessed as an ODBC source, with all data tables and data storage fully accessible.
  - Multiple staff members and patrons can simultaneously access and update patron and item records, with access controlled by assigned privileges.

- **Data Entities and Their Relationships:**
  - The system supports field and record sharing, allowing simultaneous access and updates.
  - Record lock management is available to identify where records are in use and to manage record locks.

- **Integrity Constraints:**
  - The system supports data validation, allowing specification of default values, automatic formatting, and required status for any field.

- **Security:**
  - Patron data is secured in all transfers to and from the system.
  - User account privileges are fully visible and controllable by system administrative staff.
  - The system supports secure protocols, including SFTP, SSL, and SSH.

- **Data Retention Requirements:**
  - The system provides full access to all log files, which can be reviewed without stopping the system. Logs can be enabled, disabled, and set to a specific retention threshold.
  - System backup capabilities include live incremental and full backups of data and transaction logs, supporting third-party backup software.

## 3.6 Design constraints
- The System Administration Module shall use a fully relational database back-end.
- The System Administration Module shall produce standards-compliant HTML.
- The System Administration Module shall provide a development and training environment with the ability to migrate configurations to a production environment.
- User rights and privileges will be controlled through security groups and/or "roles" that allow access control for individuals, workgroups, and arbitrary staff groups.

## 3.7 Software system attributes
a) **Reliability**: [N/A]

b) **Availability**: The system supports live incremental and full backups of data and transaction logs, ensuring data recovery and system availability. It also supports server clustering for failover capability.

c) **Security**: 
   - Patron data is secure in all transfers to and from the system.
   - System supports secure protocols, including SFTP, SSL, and SSH, with SFTP configurable per vendor.
   - System administrative staff has full visibility and control of user privileges.

d) **Maintainability**: 
   - The System Administration Module shall provide a development and training environment with the ability to migrate configurations to a production environment.
   - System supports administrator-programmable and user-programmable macros and/or keyboard shortcuts, centrally managed on the server.

e) **Portability**: 
   - System Administration shall operate on a Linux or Solaris server.
   - System Administration shall be accessible through a web-browser or a Windows-compatible client.
   - If web-browser based, System Administration shall be accessible through Microsoft Internet Explorer (v.6.0 and later) and Mozilla Firefox (v.2.0 and later).
   - Client software installation and updates must be centrally managed, allowing streaming updates from the server.

## 3.8 Supporting information
[N/A]

# 4 Verification
[NULL]

## 4.1 Functions
[N/A]

## 4.2 Performance requirements
[N/A]

## 4.3 Usability requirements
[N/A]

## 4.5 Logical database requirements
[N/A]

## 4.6 Design constraints
[N/A]

## 4.7 Software system attributes
[N/A]

# 5 Appendices
[NULL]

## 5.1 Assumptions and dependencies
- **AS-1**: The System Administration Module is part of an enterprise-level Library Automation System.
- **AS-2**: System Administration processes are consolidated at a central location, and accept input and provide services to multiple locations.
- **DE-1**: The System Administration Module relies on the data structures and functionality of an enterprise-level Library Automation System, including Acquisitions and Cataloging modules.
- **DE-2**: The System Administration Module interfaces with a variety of vendor websites, via published APIs and/or automated transfer of standard-format data files (e.g., USMARC21, EDIFACT).
- **DE-3**: The System Administration Module interacts with a patron interface, also known as an Online Public Access Catalog (OPAC).

## 5.2 Acronyms and abbreviations
- ILS: Integrated Library System
- OPAC: Online Public Access Catalog
- SQL: Structured Query Language
- ODBC: Open Database Connectivity
- SNMP: Simple Network Management Protocol
- SMTP: Simple Mail Transfer Protocol
- SFTP: Secure File Transfer Protocol
- SSL: Secure Sockets Layer
- SSH: Secure Shell
- EMC: Electromagnetic Compatibility
- VNC: Virtual Network Computing
- MARC: Machine-Readable Cataloging
- OCLC: Online Computer Library Center
- CSV: Comma-Separated Values
- SIP2: Standard Interchange Protocol 2
- NCIP2: NISO Circulation Interchange Protocol 2
- USMARC21: United States Machine-Readable Cataloging 21
- EDIFACT: Electronic Data Interchange for Administration, Commerce, and Transport
