This document will detail the planning and installation procedures for Aeries and the Reporting Service.


Phase 1.    Planning for adequate server resources

Phase 2.    Preparing the server(s)

Phase 3.    Installing Aeries and Reporting service

                                                                             

 



Phase 1. Planning for adequate server resources





Aeries Web Server Hardware Requirements**

 


Minimum***

Recommended 

Notes

Aeries IIS Server

 

 

Quantity

1

2


OS

Windows Server 2016 Standard***

Windows Server 2022 Standard


Processors

1

1

 

Cores (per processor)

4

4 or more

 

Min. Processor Speed

2.4 GHz

2.4 GHz or more

 

Memory

16 GB

32 GB

 

Hard Drives

1

1

Consider hard drive configuration – SSD or RAID 1, 5, or 10

Min. Free Disk Space

40 GB

100 GB

 

Installed Software

IIS 8.0

IIS 10.0

Newer .NET Frameworks often support the functional level of Aeries.

Aeries Reporting Server



Quantity

1

1


OS

Windows Server 2016 Standard***

Windows Server 2022 Standard

 

Processors

1

1

 

Cores (per processor)

4

4 or more

 

Min. Processor Speed

2.4 GHz

2.4 GHz or more

 

Memory

16 GB

32 GB

 

Hard Drives

1 (Separate Volumes for OS and Data)

2 or more (Separate Volumes for OS and Data)

Consider hard drive configuration – SSD or RAID 1, 5, or 10

Min. Free Disk Space

300 GB

500 GB

 

Aeries will function on any device with a modern browser

NOTE: Workstations or devices that have undesirable elements on them will adversely affect the performance and usability of any Web Application such as Aeries. Please remove viruses, malware, and browser plugins/extensions that cause issues.

 

**    Based on a school district with an enrollment of 10,000 students. More servers or greater resource for each server is likely needed for larger models. Aeries is optimized to present a low burden to SQL allowing small provisioning of cores for SQL and saving licensing costs.


***    Deploying older server operating systems is likely not the best approach if they will reach end-of-life sooner than newer ones.


Aeries Web Server Topology Examples

Small Shared Load



Larger Model 

Larger student counts approaching 10,000 students or more


 

Load Balanced (session affinity)

Larger student counts approaching 10,000 students or more

Each server is symmetrical having all portal types

                                                            

 


Load Balanced (session state cache)

Larger student counts approaching 10,000 students or more

Each server is symmetrical having all portal types

                                                           

 

Multiple Reporting Servers

Larger student counts approaching 10,000 students or more                                                             

Each server may have Staff, Teacher, and Parent/Student

 

 

 

      

 

Virtual vs. Physical Machines


Even though virtualization is very flexible providing greater hardware independence, snapshots, and the ability to migrate from one host to another, be mindful of how many virtual machines are running on the host machine(s).

 

Checking the performance of your VM in Task Manager’s performance tab may not reveal why it behaves slower than expected.


 

If the VM performs slow while having no apparent load, the host that is running it may be oversubscribed. Check the host machine and if it has processors or memory nearly 100% committed, then that could be why the VM is slow. Consider hosting the VM on a less obligated host. If the host is not oversubscribed while the VM is still slow for no apparent reason, then check the I/O utilization of the pipeline connecting to the storage array where your virtual machine’s virtual drives are located. (Is the connection to your SAN full of traffic?)


 


 

Phase 2.   Preparing the server(s)



 

NOTE: Add the Web Server Role (IIS) before applying windows updates so newer Microsoft .NET Frameworks will be properly associated with IIS. Otherwise, the use of ASPNET_REGIIS to uninstall and reinstall ASP.NET may be required.


Server Setup Tasks:

  • Check and/or add server roles and services:
    • Web Server
    • ASP.NET
    • .NET Extensibility
    • Static Content Compression
    • Dynamic Content Compression

 

  • Check and/or add server features:
    • Recent .NET Framework
      • WCF Services (all sub features)
    • Message Queuing
      • HTTP Support (optional)

 

NOTE: A separate Aeries Reporting server does not require IIS to perform the Aeries Reporting task, however, it does need a current .NET Framework. The server hosting the Aeries Reporting Service will need the RSWIDE39.TTF and Wingdings2.TTF fonts installed to produce barcodes and checkboxes on certain print jobs.

 

Minimally Microsoft .NET Framework 4.8 should be installed on older servers if not already present.  You may install newer .NET frameworks as they come available

 




Phase 3.    Installing Aeries and Reporting service




Use the following steps to install Aeries and the Reporting engine on your web server.

You’ll need to login and download the following files from our website at www.aeries.com:

AeriesNetUpdate.zip            (Needed each time you perform an update)

AeriesReportingUpdate.zip    (Needed each time you perform an update)

AeriesNetInstaller.msi

AeriesReporting_SQL.zip

AeriesReportingConfig.zip

AeriesNetConnections.zip

AppSettings.zip

Database Setup Tasks:

  • Create a new database named “AeriesReporting”.
  • Run the SQL script(s) found in the AeriesReporting_SQL.zip file that was downloaded from the website.
  • Create an SQL login named “AeriesNetUser”.  Set a secure password for the account.
  • Map the new login to the AeriesReporting database with the role of db_owner.
  • Map the new login to the current year (DSTxx000Suffix) database with the roles db_datareader, db_datawriter.  Repeat for any past years' databases that need to be available in the Aeries Web Version
  • Run the following SQL statement on the current year (and past years, if applicable) database:
    • GRANT EXECUTE TO [AeriesNetUser]
  • If you have no prior use of the Aeries Web version, run the following SQL statements on the current year database to create the initial Admin login to Aeries and create a District School.
    • Replace someone@example.com with your actual email address
    • After running the statements below, you can login to Aeries Web with the username of admin and the password of welcome
INSERT INTO UGN ([UID], UN, PW, SY, TY, UTY, HT, EM)
VALUES (1, 'admin', 'welcome', 'AERIES.NET', 1, 'admin', -1, 'someone@example.com')
GO

INSERT INTO LOC ([SC], [NM]) VALUES (0, 'District')
GO
SQL


File System Tasks:

  • Create the following directories.  Can be installed on either the main system drive or other drives on the server.
    • C:\Updates\Aeries\
    • C:\AeriesReporting\
    • C:\AeriesReporting\FileStore\
    • C:\AeriesReporting\Service\
    • C:\AppSettings\                          OR      x:\WebSettings\
    • C:\inetpub\wwwroot\Aeries\      OR      x:\WebRoots\

 

Unzip and place the previously downloaded file AeriesReportingConfig.zip to C:\AppSettings\

Configure as follows:

Reporting Database Connection

 

<ReportingDatabaseSettings>

          <ServerName>Name or IP address of the SQL Server </ServerName>

          <DatabaseName>AeriesReporting</DatabaseName>

          <UserName>AeriesNetUser</UserName>

          <Password>Password that was set for the AeriesNetUser SQL Login</Password>

</ReportingDatabaseSettings>


Salt For Greater Encryption of Database Names and Passwords (recommended)

This is an optional section that allows for increased security of database name and password storage within the reporting database. The Authentication Salt is required to be at least 4 characters long and it is recommended to be highly variable or randomly generated.


Note: This section must be added to both the AeriesReportingConfig.config files in the AppSettings directory on the webserver and in the Service directory on the Aeries Reporting server. If the values don't match, or one is missing, the system will not work correctly.


 <SaltForEncryption>Authentication Salt</SaltForEncryption>


IMPORTANT: It is critical that if multiple services are accessing the same reporting database, that all of the AeriesReportingConfig.config files use the same salt value. If it is determined that a salt value must be removed (not recommended) after it has been implemented, all Scheduled Processes within Aeries must be re-created. 

 

Message Queue Settings

<RecieveFromRemoteQueue> is only set to True when a central message queue is used

 

<MessageQueue>

<LocalMessageQueue>.\private$\AeriesReporting</LocalMessageQueue>

<RemoteMessageQueue>See Below*</RemoteMessageQueue>

<ReceiveFromRemoteQueue>False</ReceiveFromRemoteQueue>

</MessageQueue>

 

  • *If the reporting service is on the same server: .\private$\AeriesReporting
  • *If the reporting service is on a different server, choose an option below (the first option is recommended):
    • FormatName:DIRECT=HTTP://#.#.#.#/msmq/private$\AeriesReporting
      • Replace #.#.#.# with the IP address of the reporting server
    • FormatName:DIRECT=OS:ServerName\private$\AeriesReporting
      • Replace ServerName with the reporting server name
    • FormatName:DIRECT=TCP:#.#.#.#\private$\AeriesReporting
      • Replace #.#.#.# with the Machine Name or IP address of the reporting server

 

Threads

<ScheduledReportProcessingThreads> should be set to 0 on all but one reporting server.


<MessageProcessingThreads>30</MessageProcessingThreads>

<ScheduledReportProcessingThreads>30</ScheduledReportProcessingThreads>

<LongRunningProcessThreads>30</LongRunningProcessThreads>

 

SMTP Settings

 

 <SMTPSettings>

          <Port>The port used to send SMTP traffic.  Default is 25</Port>

          <Server>Name or IP address of the SMTP server</Server>

          <AddressFrom>Email address used in the “From” field for reporting emails</AddressFrom>

          <RequiresAuthentication>See Below*</RequiresAuthentication>

          <UserName></UserName>

          <Password></Password>

          <Domain></Domain>

          <UseSSL></UseSSL>

</SMTPSettings>

 

  • *If the SMTP server requires authentication to send emails, set this value to True (case sensitive), if not, set it to False
    • If the SMTP requires authentication, provide the remaining information, otherwise, leave blank:

 

<UserName>Authentication Email Username</UserName>

<Password>Authentication Email Password</Password>

<Domain>Only populate if there is a specific domain for the authentication email</Domain>

<UseSSL>Set to True if SMTP server requires a secure SSL/TLS connection</UseSSL>

 

FileStore

 

  <FileStore>

          <Path>Directory of the Reporting FileStore, C:\AeriesReporting\FileStore\ or a UNC</Path>

  </FileStore>


 

Unzip and place the previously downloaded file AeriesNetConnections.zip to C:\AppSettings\

Configure as follows:


 

<DatabaseGroup id="Your District Name" Default="True">

    <Year id="2019-2020" Default="True">

        <Server><![CDATA[SQL Server Name or IP Address]]></Server>

        <Database><![CDATA[DST19000DatabaseSuffix]]></Database>

        <UserID><![CDATA[SQL Login Username Created for Aeries Web Version]]></UserID>

        <Password><![CDATA[SQL Login Password for Aeries Web Version]]></Password>

    </Year>

    <Year id="2018-2019">

        <Server><![CDATA[Same as above]]></Server>

        <Database><![CDATA[DST18000Same as above]]></Database>

        <UserID><![CDATA[Same as above]]></UserID>

        <Password><![CDATA[Same as above]]></Password>

    </Year>

</DatabaseGroup>

 

Copy each <Year> node for as many additional years as needed.

If you would like to establish access to other databases other than your regular year databases, i.e. “Training”, “Sandbox”, “Test”, you can create additional <DatabaseGroup> nodes.

 

For the primary database group only, add Default=“True” after the id=“Your District Name”

For the first year within EACH database group, add Default=”True” after the id=”20xx-20xx”

 

Create a file named AppSettings.config and place it in the C:\AppSettings\ directory.  Copy and paste the information below


Configure as follows:

<?xml version="1.0" encoding="utf-8"?>

<AppSettings>

          <SystemType>Admin*</SystemType>

          <LimitToCurrentPortalType>True**</LimitToCurrentPortalType>

</AppSettings>

 

 

*SystemType can be set to Admin, Parent, or Teacher.  To install Aeries, use “Admin”

**LimitToCurrentPortalType can be set to True or False.  Set this node to “True” to only allow aeries users and admins access to login, restricting parent, student, and teacher type accounts.

 

 

Install the reporting service on the drive letter you wish. The highlighted C below could be D instead.

 

  • Create InstallService.bat in C:\AeriesReporting\Service     

@echo off

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe C:\AeriesReporting\Service\AeriesReportSvc.exe

 

  • Create UninstallService.bat in C:\AeriesReporting\Service

@echo off

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /u C:\AeriesReporting\Service\AeriesReportSvc.exe

 

Configure and Run:

  • Install the Aeries Installer – Set to always run as administrator
  • Configure and run the installer
  • Run InstallService.bat – Confirm the service has been installed.  Start the service twice as there is an expectable error the first time. Change the Aeries Reporting Service’s login from 'System' to 'Network Service' (which has no password). Cycle the service again.
  • Install the reporting service again using the stop/start buttons since it didn’t exist yet
  • Change the “Aeries Reporting” event log size:

Event Viewer – Applications and Services Logs – AeriesReporting – Properties – Maximum log size (KB) = 20096 (larger than default)

 

IIS Setup:

  • Create an AppPool for the new Aeries site.  It must use .NET framework v4.0 - Integrated
  • Select Advanced Settings on the new App Pool and change the identity configuration setting to “Network Service” or you may choose to use a domain account.
  • Convert the Aeries website directory to an application.
  • Create a virtual directory for the “AppSettings” folder under the Aeries directory.
  • Browse to the page and confirm that it is up and running.
  • Log in to Aeries Web Version with username “admin”, password “welcome”.  Go to Security and customize the admin account for your use.  You may now explore setting up your security if you have never done so. There is a separate document covering Aeries Web Security.

 

Performance Monitor and Aeries Security:

  • Select the “Start” menu, Administrative Tools, Performance. 
    • Select “Add Counters”, “Performance Object”, “AeriesReporting”, and any of the available counters.

NOTE: The school access tab references the USR table.  Users who also have school access limits in Aeries Client should have a different username in Aeries if you want differing school access between each system type.