Table of Contents

System requirements

Operating system and software prerequisites

In principle any version of Windows + Internet Information Server (IIS) will do. We've got the software to run on IIS Express edition for demonstration purposes. We offer the following formal guidelines:

Component Minimum Suggested
Operating System Windows 2016 Server Windows 2022 Server
Web Server IIS 7.5 IIS 10.0
.Net Framework 4.7.2 4.7.2
RDBMS Microsoft SQL Server 2017 with Full-Text Search enabled Microsoft SQL Server 2019 with Full-Text Search enabled

Additional comments regarding SQLServer

SQL Server Express can be used but poses two limitations which have to be taken into account:

On-premise installation hardware requirements

Component Minimum Suggested
CPU cores 4 16
RAM 8GB 16GB
Disk 250GB HDD 500GB SSD
Cache disk 100GB HDD 1TB HDD
Network interface 100MBps 1Gigabit

SQL Server can also be installed in a separate machine. The requirements for the computer hosting only SQL Server are the following:

Component Minimum Suggested
CPU cores 4 8
RAM 8GB 16GB
Disk 250GB HDD 500GB SSD
Network interface 100MBps 1Gigabit

Security considerations

PMA.core does not offer any intrusion detection system. When installing the system on premises, it is highly recommended to review the security policies of the host computer and the network it belongs to and configure it accordingly.

Date and time configuration

PMA.core relies on the host computer's date and time for all operations that involve the current time, such as logging events. Hence, in order for the system to operate correctly and reliably, it is mandatory to configure the system's time correctly and have it periodically sync with a time server.

Installation on an AWS Virtual Machine

When installing PMA.core on AWS, it is highly recommended to use RDS to host SQL Server instead of installing it on the VM that PMA.core will be installed.

Component Minimum Suggested
PMA.core VM size t3.large t3.xlarge
SQL Server RDS VM size t3.medium t3.large
Cache disk 100GB EBS 1TB EBS

Additionally, slides can be stored either on local disks attached to the VM or in S3 buckets.

Installation on an Azure Virtual Machine

When installing PMA.core on Azure, it is highly recommended to use the Azure SQL Server service to host SQL Server instead of installing it on the VM that PMA.core will be installed.

Component Minimum Suggested
PMA.core VM size D2as v5 D4as v5
Azure SQL Server RDS VM size A2m v2 A4 v2
Cache disk 100GB standard HDD 1TB standard HDD

Additionally, slides can be stored either on local disks attached to the VM or in Azure Blob Storage. When possible, it is recommended to prefer Azure Data Lake Storage Gen2 over plain Azure Blob Storage, as this type of service performs directory management operations, such as moving and renaming slides and directories, a lot faster.

PMA.core cache requirements

Regardless of the choice or combination of the storage media used, the system requires some space on a local or network disk where cache data will be stored and accessed. PMA.core allows you to define the cache retention policy and informs you about it's size. As a general rule of thumb, the cache capacity should be around 10% of the total size of the available whole slide images.

Client Side

During development our software is continuously tested on the Microsoft Windows Operating System using the following browsers: Internet Explorer 10+ and the latest versions of Google chrome, Safari and Firefox.

Desktop or workstation hardware

The minimum requirements in terms of processor speed and memory (for end-users) are hard to determine. We are pretty sure that every computer younger than 5 years will be able to interface with the platform using a webbrowser without any problems. In case of doubt, we refer to the particular system requirements that apply to the specific version of flavor of webbrowser that is being used.

Web browser

A hosted web application is consulted through a (usually) remote computer on the internal company network (or Internet). To allow the delivery of content to as many clients as possible, we have very relaxed requirements in terms of client hardware and software requirements. Key is that we don't require any additional webbrowser-plugins such as Flash, Silverlight, WebGL, or Java.Nor do we depend on or do we install any additional browser add-ons (BHO - Browser Helper Objects) ourselves. You will need a modern HTML5-capable webbrowser. This means that your browser must be configured to allow JavaScript and accept cookies. Besides that, we've tested our software extensively on a host of different web browser environments, and found it to operate under almost all, except Internet Explorer 10 or lower. For the best user experience, we recommend using Mozilla Firefox, Microsoft Edge or any Chromium based browser such as Google Chrome and Opera. On a Mac, you are welcome to use Safari, Firefox or, again, any Chromium based browser.When a browser is not supported, an error message follows. Because of content delivery through a web browser, interfacing with our software is not limited to Windows-only machines (though the web applications themselves run on Microsoft infrastructure). Our communication implementation is based on REST web services and the standard HTTP protocol, so you can truly use our software from anywhere, any time

Our software uses dialogs as a means to interact with the end-user. These dialogs are implemented based on “best practice” industry standards (including libraries such as React and jQuery). These dialogs are not pop-ups, and during testing, no interference with known pop-up blockers was ever observed. That being said, it is possible that at some point in the future these pop-up blockers pick up features in our site and label them as popups, subsequently rendering them ineffective. If this happens, you should let us know and we will help resolve the issue in collaboration with you popup blocking software vendor. The same reasoning applies to webbrowser plugins that block advertisements. These oftentimes already target the kind of technology that we use ourselves to interact through dialogs (such as iframes). There is a large variety of possible interpretations of such features (in a website), and while we haven't come across this yet, it is possible that at some point a certain feature of our site gets interpreted as commercial content. If this happens, you should let us know and we will help resolve the issue in collaboration with you advertisement blocking software vendor. If you experience problems on your installation, please let us know and we will find a solution to resolve your particular issues

Configuration hints and scaling considerations

Improving disk I/O throughput

The system's response time can be greatly improved by installing it on a solid state disk. The cache directory should also be kept on an SSD as well. Thus an optimal setup would be to install the operating system and the application on an SSD while storing digital slides in regular hard disks (or network shares). Do not underestimate the importance of the regular disks' performance, where slides are stored, though. Whenever possible use 6Gbit SATA III disks.

Network

Multiple NICs may be installed onto the server machine to increase network bandwidth. The system can utilize multiple IP addresses or host names out of the box, thus special load balancing configurations are not required.

Parallel processing

The system is built to process requests in parallel and its performance depends on the available cores per processor, the performance per core, as well the total number of processors in the system. In environments with more than 50 simultaneous users, two processors should at least be available in the system.

Azure DataLake Storage Gen2

When possible, it is recommended to prefer Azure Data Lake Storage Gen2 over plain Azure Blob Storage, as this type of service performs directory management operations, such as moving and renaming slides and directories, a lot faster.