User Tools

Site Tools


EASA System Architecture

The EASA system is highly configurable to meet functional requirements specified by a User and implemented in an EASA application (an 'EASAP').

Consider which resources an EASAP requires such as:

  • A database
  • An Excel spreadsheet
  • Batch computation run in a dedicated environment
  • Other third party software

To a large extent, the particular resource requirements above will define the EASA system architecture, processing and performance requirements constrain the number and capability of machines required by EASA.

These requirements might include:

  • Number of simultaneous Users
  • Degree of complexity within an Excel spreadsheet
  • Availability of 3rd party software licenses
  • Intrinsic complexity of the EASAP

The following four architecture examples cover the most common use cases.


Default EASAP

The simplest EASA system combines several EASA computational roles within a single physical machine.

This configuration has the same capabilities of a distributed architecture.

This default single EASA machine provides a simple way to get going, see Get started with EASA

After installing the 'off-the-shelf' system above, one may:

  • Run an example EASAP as a User
  • Author a new EASAP from the steps in a tutorial

This architecture is seldom used in production as it will likely struggle under any significant User load.

Excel memory and CPU requirements (memory and CPU) will nearly always a single machine's capacity above a modest number of simultaneous Users.

The diagram above illustrates three EASA computational roles in an EASA system:

  1. An EASA Server is a single machine and occupies a central role in every EASA system
    On an EASA Server, a User, an Author or an Administrator perform their respective duties
    • A User may select a published EASAP which is then dispatched to be run on an EASAP Server
    • An Author may select an EASAP in development, modify, save or test it via the EASAP Builder
    • An Administrator may manage the operation and administration of the entire EASA system
  2. An EASAP Server hosts the Java application that serves the EASAP user interface to a browser
    • A User is allocated a unique instance of the EASAP for the duration of the task
  3. An Excel Server hosts the spreadsheet and live Excel instance that is linked to each running EASAP
    • An EASAP/Excel Server pairs two server roles

As the number of Users grows, more EASAP/Excel Servers may be needed.


Database Backend EASAP

One common configuration involves a backend database and a combined EASA/EASAP Server, below.

The EASA/EASAP Server hosts a user interface, creates database queries, and retrieves result sets.

In general this system will scale well with increasing Users for two reasons:

  • A database is a scalable product
  • The EASA/EASAP Server has a lightweight role as a database client

Specialized Compute Server EASAP

A similar architecture involves specialized computation on a machine called a Compute Server.

This computation may require Matlab, a C program, a batch script, or other proprietary software.

This type of system may utilize a single-user license on the Compute Server and allow the EASA/EASAP Server to manage a queue of submissions. One User's EASAP may be granted temporary software license access to execute a task. When the task completes, the license will be released to the next User EASAP instance in the queue.


Excel Server EASAP

One of the most common and computationally intensive cases involves a 'live' Excel-linked EASAP which may:

  • Contain a large spreadsheet
  • Involve lengthy computational dependencies between cells
  • Need to be available for many simultaneous Users

This case highlights EASA's impressive ability to scale, a single EASA Server will balance User load across multiple EASAP/Excel Servers

The diagram below shows two EASAP/Excel Servers though typically in practice there are many more.


Excel Client EASAP

It is very common to use an Excel spreadsheet to conduct an analysis of a business 'case' or 'case record'.

Historically an Author would use the Excel Range Wizard to automatically generate an EASAP with an Excel 'look and feel' with GUI elements were linked to an actual 'live' spreadsheet running on an Excel Server.

The Excel Desktop Client provides an alternative interface. This functionality involves very specific GUI objects to select a single business case and VBA support via the EASA Ribbon allows an analysis of the case within a temporary spreadsheet called an Excel Client.

An Excel Client is an Excel spreadsheet on the User's desktop machine initialized with existing case data from a database.

An Excel Client has the built-in capability to write a case record back to the database via an 'EASA Ribbon > Save' click.

An EASAP launches an Excel Client after a case is selected by a User with a CASE VIEWER.

With CASE VIEWER and child FILTER's an EASAP may:

  1. Query the database for cases that meet User-specified criteria
  2. Let a User select a single case
  3. Deliver a database-linked spreadsheet, initialized with case data
  4. Let a User modify the case within Excel
  5. Let a User save that case back to the database instance from within Excel

This novel architecture is outlined below,